Slider 1 mini Slider 2 mini

Senin, 18 November 2013

Masihkah Kita Minum ‘Kola’ dan Makan ‘Fried Chicken’?

Filled under:



Oleh: Abu Umar
SEORANG teman saya mengatakan prinsip saya dan keluarga saya lebay. Salah satunya karena saya dan keluarga saya—istri dan anak-anak saya—sejak tahun 2009, tak pernah lagi mau membeli semua produk yang dibuat oleh Yahudi.
“Lo ini cuman sendirian. Kagak ngaruh kali,” ujarnya ketika itu kira-kira. Tapi saya tidak terkejut. Di tahun 2001, Ketika masih jadi seorang wartawan sebuah majalah Islam di Ibukota, saya pernah mewawancarai seorang tokoh Islam, meminta pendapatnya bagaimana soal boikot produk Amerika (Yahudi), dan jawabannya: “Boikot produk Yahudi tidak realistis. Mau pake apa kita kalau tak memakai produk mereka? Dari mulai kamar mandi, sampai teras rumah, semua yang bikin orang Yahudi.”
Awalnya saya ketika itu masih merasa aman-aman saja membeli minuman kola. Namun ketika Gaza 2009 meletus dan anak-anak saya melihat sendiri lewat internet akan kebiadaban Israel kepada anak-anak Palestina, saya dan keluarga sepakat, kami memakai produk-produk dari mereka, hanya ketika itu sudah jadi opsi terakhir.
Banyak perjuangan yang kami rasakan ketika kami memulai hidup tanpa produk Yahudi. Misalnya saja, belanja bulanan. Jika sebelumnya kami hanya cukup pergi ke satu swalayan saja, tapi kemudian sekarang kami harus muter-muter berbagai toko, masuk ke pasar-pasar. Sepanjang kami bisa, kami melakukannya. Capek memang, kelihatannya. Dan ribet—di zaman seperti sekarang ini yang notabene belanjaan bisa didrop di satu tempat saja.
Tapi istri saya mengingatkan, “Capeknya kita tidak seberapa dibandingkan dengan perjuangan rakyat Palestina di sana. Ini juga akan menjadi sesuatu yang berkesan bagi anak-anak. Ini bukan semata-mata urusan boikot satu keluarga kita saja terhadap produk-produk Yahudi, tapi juga mudah-mudahan ada pembelajaran buat mereka dalam soal aqidah.”
Kalau sudah begitu, saya selalu bersemangat kembali.
Namun, yang membuat saya dan istri haru adalah sebuah peristiwa. Ketika kami berdua tengah berada di luar kota berhari-hari menunggui bayi kami di rumah sakit, dua orang anak kami diajak jalan-jalan oleh nenek, bibi-bibi, dan sepupunya. Mereka makan fried chicken yang sudah sangat terkenal. Semua orang yang mengajak mereka, makan freid chicken tersebut. Kedua anak kami, yang masih di bawah delapan tahun, dengan tegas menolaknya dan memilih makanan yang lain.
Ketika bibinya memberitahukan kami soal itu lewat telepon, istri saya diam-diam menangis.
Sekarang, empat tahun dari 2009 dari sejak Gaza diinvasi Israel, kami sekeluaga menyaksikan kembali bagaimana Palestina dibantai oleh Yahudi. Empat tahun dari 2009, Alhamdulillah kami masih tetap pada pendirian kami menolak membeli produk Yahudi. Kami masih bisa hidup. Ada beberapa hal lain yang memang tak bisa dihindarkan, namun seperti itulah kami menjalani hidup. Kami sama sekali tak merasa jadi orang besar karena ini. Namun kami yakin, sekecil apapun perjuangan kami, semoga bisa memberi arti untuk Palestina. Aamiin.

Posted By Jabir Al Hayyan07.31

Cara Melaksanakan Shalat Dhuha

Filled under:




SHALAT Dhuha adalah shalat sunah yang dilakukan setelah terbit matahari sampai menjelang masuk waktu zhuhur. Afdhalnya dilakukan pada pagi hari disaat matahari sedang naik (kira-kira jam 9.00). Shalat Dhuha lebih dikenal dengan shalat sunah untuk memohon rizki dari Allah, berdasarkan hadits Nabi : “Allah berfirman : ‘Wahai anak Adam, jangan sekali-kali engkau malas mengerjakan empat rakaat pada waktu permulaan siang (Shalat Dhuha), niscaya pasti akan Aku cukupkan kebutuhanmu pada akhir harinya’,“ (HR.Hakim dan Thabrani).
Hadits Rasulullah SAW terkait Shalat Dhuha
“Barang siapa shalat Dhuha 12 rakaat, Allah akan membuatkan untuknya istana di surga” (H.R. Tirmiji dan Abu Majah)
“Siapapun yang melaksanakan shalat dhuha dengan langgeng, akan diampuni dosanya oleh Allah, sekalipun dosa itu sebanyak buih di lautan.” (H.R Tirmidzi)
“Dari Ummu Hani bahwa Rasulullah SAW shalat dhuha 8 rakaat dan bersalam tiap dua rakaat.” (HR Abu Daud)
“Dari Zaid bin Arqam ra. Berkata,”Nabi SAW keluar ke penduduk Quba dan mereka sedang shalat dhuha‘. Beliau bersabda,?Shalat awwabin (duha‘) berakhir hingga panas menyengat (tengah hari).” (HR Ahmad Muslim dan Tirmidzi)
“Rasulullah bersabda di dalam Hadits Qudsi, Allah SWT berfirman, “Wahai anak Adam, jangan sekali-kali engkau malas mengerjakan empat rakaat shalat dhuha, karena dengan shalat tersebut, Aku cukupkan kebutuhanmu pada sore harinya.” (HR Hakim & Thabrani)
“Barangsiapa yang masih berdiam diri di masjid atau tempat shalatnya setelah shalat shubuh karena melakukan i’tikaf, berzikir, dan melakukan dua rakaat shalat dhuha disertai tidak berkata sesuatu kecuali kebaikan, maka dosa-dosanya akan diampuni meskipun banyaknya melebihi buih di lautan.” (HR Abu Daud)
Cara melaksanakan Shalat Dhuha :
Shalat Dhuha minimal dua rakaat dan maksimal duabelas rakaat, dilakukan secara Munfarid (tidak berjamaah), caranya sebagai berikut :
  1. Berniat
  2. Membaca doa Iftitah
  3. Membaca surat al Fatihah
  4. Membaca satu surat dalam Alquran.
  5. Ruku’ dan membaca tasbih tiga kali
  6. I’tidal dan membaca bacaannya
  7. Sujud pertama dan membaca tasbih tiga kali
  8. Duduk di antara dua sujud dan membaca bacaanya
  9. Sujud kedua dan membaca tasbih tiga kali
  10. Setelah rakaat pertama selesai, lakukan rakaat kedua sebagaimana cara diatas, kemudian Tasyahhud akhir setelah selesai maka membaca salam dua kali. Rakaat-rakaat selanjutnya dilakukan sama seperti contoh di atas.

Posted By Jabir Al Hayyan07.23

50 Badan Amal Dunia Ternyata Penipu

Filled under:



SAAT Anda memberikan donasi kepada badan amal, maka yang diharapkan adalah Anda dapat menolong orang-orang yang tertimpa bencana alam, kelaparan, sakit kanker, menyelamatkan hewan dan lingkungan, serta tujuan mulia lainnya.
Namun, sedikit orang berpikir bahwa uang yang diberikan ke badan amal ternyata masuk ke kantung pribadi pengelolanya. Namun, baru-baru ini terungkap bahwa sekira 50 badan amal besar dunia hanya menyalurkan kurang dari 4% dana yang mereka terima untuk tujuan sebenarnya. Sisanya, 96% sumbangan yang mereka terima masuk ke kantong pendiri amal, penyelenggara, dan pengacara.
Contohnya adalah Yayasan Kids Wish Network di AS, sebuah badan amal untuk anak-anak terlantar. Mereka berhasil mendapatkan sumbangan tak kurang dari 125 juta dolar (sekira Rp 1,25 trilyun). Dari keseluruhan dana tersebut, 110 juta dolar langsung masuk kantong pengacara dan 4 juta dolar ke kantong si pendiri amal. Badan amal ini telah dikenal berbohong kepada donatur dan mengatur konsultasi penggalangan dana demi rekening bank mereka.
Bahkan, ada badan amal yang seolah “Mengejek,” si penerima dana yang seharusnya. Contohnya Badan Amal Cancer Fund of America, yang telah menerima 100 juta dolar (sekira Rp 1 trilyun) adalah untuk kepentingan pasien kanker. Namun, kenyataannya badan amal ini hanya memberi pernak-pernik kurang berguna bagi pasien, seperti piring kertas dan serbet ke penderita kanker yang sedang berjuang antara hidup dan mati. [sm/islampos/smartison].

Posted By Jabir Al Hayyan07.17

Curhat Guru Ngaji

Filled under:



Oleh: Dedih Mulyadi
SAMPAI sekarang saya MASIH BERTANYA?
1. Kenapa ANAK SEKOLAH diharuskan mengikuti KURSUS/LES di luar jam SEKOLAH untuk membantu materi-materi yang akan diujikan di UN.
2. Kenapa guru-guru juga menganjurkan murid-muridnya untuk ikut kursus? Terus mereka ngapain aja di sekolah?
3. Kalau demikian, apa FUNGSI belajar di sekolah? Yang mewajibkan murid-muridnya untuk:
- masuk selama seminggu,
- masuk dari pagi sampai siang/sore
- Memberikan setumpuk PR dan tugas-tugas lainnya
- Membayar uang SPP, Bangunan, Buku dll
- tetapi belum bisa menjamin kelulusan ANAK DIDIKNYA, lalu menganjurkan mereka masuk LES/KURSUS tambahan?
4. Apa fungsi sekolah kalau sudut pandang anak didiknya hanya ingin lulus dan dapet ijazah saja?

Dampaknya ketika di RUMAH:
1. Pulang dari sekolah plus LES sampai sore kadang MALAM,
2. Waktu mereka semua terforsir untuk sekolah dan LES
3. Ketika di Rumah sudah dalam kondisi lelah seharian.
4. Berangkat MENGAJI dari sisa-sisa tenaga yang sudah terforsir seharian.
5. Guru NGAJI sepi peminat, karena anak-anak NGAJInya jadi BELANG BENTONG (Istilah sering tidak hadir)
6. Hilanglah nilai-nilai AGAMA dalam kehidupan mereka
7. Melampiaskan dengan kegiatan-kegiatan GALAU: Curhat di jejaring sosial, mengidolakan BOY BAND euuuh… sms-an, bahkan hingga TAWURAN dll.. Na’udzubillah
8. MAU SAMPAI KAPAN? []

SOLUSI:
1. BUAT SEKOLAH,
- tingkatkan kualitas dan produktivitas GURU dan MURID jadi gak perlu lagi ada les tambahan segala.
- Guru dan SEKOLAH harus memiliki JIWA PENGAJAR bukan BISNIS ORIENTED
2. BUAT PEMERINTAH,
- membimbing, memperhatikan dan mengkoordinir GURU NGAJI dan IMAM MASJID supaya materi-materi dan wawasan keagamaan mereka lebih terpadu sehingga kualitasnya pun terjamin
- Membuat kebijakan bahwa ilmu Agama adalah syarat mutlak KELULUSAN SEKOLAH
3. BUAT ORANG TUA, Jangan menyerahkan pendidikan anak hanya kepada SEKOLAH.
4. BUAT SEMUA, ini adalah tugas bersama. sudah saatnya PEMERINTAH, SEKOLAH, dan MASYARAKAT duduk BERSAMA mencari solusi-solusi kongkrit lainnya.

Posted By Jabir Al Hayyan07.16

Minggu, 17 November 2013

TUGAS 2 REKAYASA PERANGKAT LUNAK - B. Ratih

TUGAS 2 REKAYASA PERANGKAT LUNAK C, D dan F
Jawaban dengan Bahasa Indonesia
Aturan Pengerjaan dan Pengumpulan:
a. Tugas dari materi Pertemuan 4-Rekayasa Kebutuhan, 5-Pemodelan Sistem dan 6-Arsitektur Sistem
b. Tugas dikerjakan berkelompok 2 orang
c. Jawaban sama atau terindikasi saling menyontek atau sekedar copy paste dari slide, NILAI TOTAL = 0
d. File jawaban dalam bentuk pdf dengan format judul: Tugas2-NRP1-NRP2
e. Tugas dikumpulkan oleh salah seorang anggota kelompok melalui link yang diberikan di elearning maksimal Kamis, 17 Oktober 2013 pukul 19.00 WIB


1. apa yang dimaksud dengan kebutuhan fungsional, non fungsional, dan domain. berikan contoh masing-masing?
jawab :

a. kebutuhan fungsional
kebutuhan fungsional adalah pernyataan layanan sistem yang harus disediakan, bagaimana sistem bereaksi pada input tertentu dan bagaimana prilaku sistem pada situasi tertentu. sedangkan kebutuhan fyngsional user merupakan pernyataan level tinggi dari apa yang seharusnya dilakukan sistem tetapi kebutuhan fungsional sistem menggambarkan layanan sistem secara detail.
contoh kebutuhan fungsional :
1. user dapat mencari semua kumpulan database inisial atau memilih subset dari database tersebut
2. sistem menyediakan tampilan yang tepat untuk user yang membaca dokumen dalam penyimpanan dokumen
3. setiap pesanan dapat dialokasikan sebagai identifiery yang unik (ORDER_ID) dimana user dapat meng-copy daeraha penyimpan account permanen

b. kebutuhan non-fungsional
kebutuhan non-fungsional adalah batasan layanan atau fungsi yang ditawarkan sistem seperti batasan waktu, batasan pengembangan proses, standarisasi dll. kebutuhan non-fungsional lebih kritis daripada kebutuhan fungsional. jika tidak dapat bertemu, sistem menjadi tidak berguna.
contoh kebutuhan non-fungsional :
1. kebutuhan produk
2. kebutuhan organisasi
3. kebutuhan eksternal
c. kebutuhan domain

kebutuhan domain adalah kebutuhan yang datang dari domain aplikasi dari sistem dan yang menyatakan karakteristik dari domain tersebut, berupa kebutuhan fungsional baru, batasan pada kebutuhan yang sudah ada atau mendefinisikan komputasi tertentu, sistem mungkin tidak dapat bekerja.
permasalahan kebutuhan domain :
1. kemampuan untuk dimengerti
2. ketidak lengkapan
contoh :
a. sistem yang hanya bisa dimengerti oleh orang tertentu, tidak semua orang mengerti tentang sistem tersebut
b. sistem keamanan pesawat

2. sebut dan jelaskan 4 teknik pemunculan kebutuhan beserta contoh penerapannya!
Jawab:
a. penemuan kebutuhan:
pertama kali yang harus dilakukan adalah penemuan kebutuhan, cara yan dilakukan yaitu bekonsultasi dengan stakeholder, agar apa yang dbutuhkan bisa diketahui. Pada tahap ini kebutuhan domain juga di temukan.
b. Klasifikasi dan penyusunan kebutuhan
setelah mengetahui kebutuhannya, tahap selanjutnya yaitu mengelompokkan datanya, dan di urutkan atau disusun secara sistematis, agar data tersebut mudah dibaca dan digunakan untuk tahap selanjutnya.
c. Penyusunan prioritas dan negosiasi
prioritasnya disusun terlebuih dahulu agar bisa diketahui mana prioritas yg paling utama, yang harus diselesaikan lebih dahulu, dan mana yang akhir-akhir. Dan menyelesaikan konflik kebutuhan yang terjadi pada sistem
d. Spesifikasi kebutuhan
mencatat atau mendokumentasikan semua kebtuhan dari data yang sudah diperolah dari tahap-tahap sebelumnya.
Contoh penerapannya : stakeholder sistem manajemen laundry
o Data pelanggan disimpan pada sistem
o Pekerja menimbang berat pakaian yang akan dilaundry
o Pekerja memberikan info ke pelanggan tentang berat pakaiannya
o Pekerja mencuci pakaian pelanggan yang dilaundry
o Pekerja memberi tahu harga pembayaran
o Bagian IT bertugas mencatat semua data tentang pelanggan tersebut

3. masalah apa yang biasanya muncul ketika spesifikasi kebutuhan dituliskan dalam bahasa natural? jelaskan!
Jawab :
Bahasanya sulit untuk dimengerti oleh orang secara umum, sehingga menimbulkan berbagai masalah. Seperti :
- Pembuat sistem sulit mengartikan bahasa tersebut, sehingga bisa terjadi kesalahan dalam pembuatan sistem
- Sistem tersebut belum tentu sesuai dengan apa yang dibutuhkan oleh customer
- Pada saat proses kebutuhan bisa berubah kapan saja
- Bisa terjadi kesalah pahaman antara pembuat dan pengembang sistem tersebut

4. jelaskan 4 aktivitas dalam proses rekayasa kebutuhan perangkat lunak!
jawab :
a. spesifikasi perangkat lunak
fungsionalitas perangkat lunak dan batasan kemampuan operasinya harus didefinisikan
b. pengembangan perangkat lunak
perangkat lunak yang memenuhi spesifikasi harus diproduksi
c. validasi perangkat lunak
perangkat lunak lunak harus divalidasi untuk menjamin bahwa perangkat lunak melakukan apa yang diinginkan pelanggan
d. evolusi perangkat lunak
perangkat lunak harus berkembang untuk memenuhi kebutuhan pelanggan

5. jelaskan 4 perspektif dalam pemodelan sistem!
jawab :
a. perspektif fungsional sistem
-->Tahapan berangkai ;
-dari mencari fungsi,
-di-analisis,
-upaya membangun sistem lain yang baru. (karakteristik fungsi sangat majemuk, meliputi; proses, tujuan, totalitas, perilaku, pertalian, keperluan ).
-->Penetapan desain sistem
-->Teknik teknik penggunaan sistem untuk teori keputusan
b. perspektif kelakuan sistem
-->Menghasilkan satu atau lebih model;
-Gambarkan sifat sistem
-Adanya keterbatasan.
-->Model ditetapkan dari beberapa model;
-Pilihan secara kontekstual setempat
-Pilihan secara waktu saat itu
-Pilihan secara peramalan masa depan
Kelakuan sistem dapat lebih dari satu untuk satu sistem
c. perspektif informasi sistem
Menjelaskan konfigurasi hubungan elemen elemen pembentuk sistem dengan sifat sifat hubungan tergambar akurat, biasanya dapat dibuat matrik hubungannya (nilai hubungan nol = tidak ada relasi, nilai hubungan satu = hubungan sangat kuat, nilai antara nol - satu sebagai perkiraan bobot hubungan antara.
d. perspektif lingkungan sistem
– Sifat lingkungan ;
• 1. Tidak pasti,
• 2. Bisa sebagai ancaman
– lingkungan luar sistem penting untuk mencari batasan sistem dimana pada titik singgungnya terdapat pertukaran informasi.
– Lingkungan luar didefinisikan sebagai sesuatu yang tidak berhingga dibandingkan terhadap sistem yang dibatasinya.
– Dampak lingkungan sistem;
• Ketergantungan
• saling menyesuaikan (biasanya sistem yang kalah)
• muncul tugas baru dari sistem untuk mengawasi hubungan dengan lingkungan
6. Apakah fungsi dari model konteks dalam pemodelan sistem? Diagram apa yang dapat digunakan untuk menunjukkan model konteks?
Jawab :
 Model konteks menggambarkan sistem dengan lingkungan diluarnya, lingkungan luar mungkin mengirimkan data ke system yang terhubung langsung ke system dan membagi datanya ke system, untuk itu detail progamharus disediakan dalam model proses.
 Model konteks digunakan untuk mengilustrasikan batasan dari sistem
 Lingkungan sosial dan organisasi mempengaruhi batasan sistem
 Model arsitektur akan menggambarkan atau mengilustrasikan struktur lingkungan sistem informasi
Diagram yang digunakan dalam model konteks adalah Diagram Aliran Data atau (Data Flow Diagram/DFD)


7. Apa yang dimaksud dengan model structural dan perilaku? Dipetakan ke dalam diagram UML apakah kedua model ini?
Jawab :
 Model Struktural
- Model Struktural perangkat lunak menampilkan organisasi dari suatu system yang membentuk sistem dan hubungannya.
- Model Struktural diklasifikasikan menjadi 2 macam yaitu
o Model statis yang menunjukkan struktur dari desain sistem atau model
o Model dinamis yang menunjukkan organisasi sistem ketika mengeksekusi
Model Struktural ini jika dipetakan menjadi diagram UML menjadi diagram class

 Model Perilaku
- Model perilaku merupakan model perilaku dinamis. Artinya model ini akan terjadi apabila ada rangsangan dari lingkungannya
 Terdapat dua jenis rangsangan:
 Data :Sejumlah data datang dan harus diproses oleh sistem
 Kejadian : Ada sejumlah kejadian yang mendorong sistem melakukan pemrosesan. Kejadian ini bisa memiliki data, bisa juga tidak.
Model Perilaku ini jika dipetakan menjadi diagram UML menjadi diagram aktivitas

8. Jelaskan 4 karakteristik arsitektur PL!
Jawab :
 Performa (performance)
 Melokalikasi operasi penting dan meminimalisir komunikasi.
 Keamanan (security)
 Menggunakan arsitektur berlapis dengan aset-aset penting di lapisan dalam.
 Keselamatan (safety)
 Melokalisasi fitur rawan keselamatan di dalam sub-sistem.
 Ketersediaan (availability)
 Membuat komponen ganda dan mekanisme untuk menangani terjadinya kegagalan.
 Keterawatan (maintainability)
 Menggunakan komponen kecil yang dapat dengan mudah diganti.

9. Terdiri atas gambaran apa sajakah model 4+1 untuk mendesain arsitektur PL? Jelaskan!
Jawab :



 Gambaran Logika (Logical View) : Gambaran ini menunjukkan komponen (objek) dari sistem serta interaksi / hubungannya
 Gambaran Proses (Process View) : Gambaran ini menunjukkan proses / alur kerja aturan sistem dan bagaimana proses-proses berkomunikasi satu sama lain.
 Gambaran pengembangan (development view) : Gambaran ini memberikan pandangan bangunan blok dari system yang dipecah untuk pengembangan
 Gambaran fisik (physical view) : Gambaran ini menunjukan bagaimana perangkat keras dan perangkat lunak terdistribusi didalam sistem.

10. Jelaskan 4 pola arsitektur PL! Kondisi seperti apa yang cocok digunakan untuk setiap pola serta berikan satu contoh aplikasinya
Jawab :
 Arsitektur Berlapis (layered architecture)
- Sistem atau jaringan komponen yang terisolasi dalam lapisan sehingga perubahan dapat dibuat dalam satu lapisan tanpa mempengaruhi yang lain.
- Sebuah arsitektur di mana data bergerak dari satu tingkat proses ke tingkat proses yang lain. Protokol komunikasi adalah contoh utama
- Mengatur sistem menjadi sekumpulan lapisan dimana setiap lapisan tersebut menyediakan antarmuka terdefinisi yang berisi layanan-layanan.
- Mendukung pembangunan incremental untuk setiap lapisannya.
- Perubahan sebuah antarmuka lapisan hanya akan mempengaruhi layer terdekatnya.
Kondisi ketika digunakan :
- Digunakan ketika membangun fasilitas baru di atas sistem yang ada
- Digunakan ketika ada persyaratan untuk keamanan multi-level.



 Arsitektur Repositori (repository architecture)
- Data diletakakkan dalam sebuah system terpusat yang kemudian dapat diakses oleh seluruh sub-system
- Sub system dapat mengirimkan data kepada sub system yang lain
- Cocok untuk aplikasi isu sentral karena bersifat membangun, menambah, dan mempertahankan tubuh yang kompleks sebagai pusat informasi.
Kondisi yang digunakan :
Digunakan ketika Anda memiliki sistem dengan volume yang besar dan disimpan untuk waktu yang lama. Anda juga dapat menggunakannya dalam sistem data-driven di mana masuknya data dalam repositori memicu tindakan atau alat.



 Arsitektur Klien-Server (client-server architecture)
- Aplikasi terdistribusi yang didistribusi dalam komponen-komponen yang terpisah dantara penyedia pelayanan, yang disebut server , pemohon pelayanan, disebut klien, dan jaringan yang memungkinkan klien bisa mengakses server
Kondisi ketika digunakan :
Digunakan ketika data dalam database pusat harus diakses dari berbagai lokasi.


 Arsitektur Pipe dan Filter (pipe and filter architecture)
- Data dikirimkan dari sati proses ke proses lain
- Sebuah komponen data yang melalui proses-proses ini disebut sebagai inputan dan menghasilkan data sebagai outputan.
- Cocok untuk aplikasi yang memerlukan serangkaian pendefinisian dan perhitungan independen yang akan dilakukan pada data.

Kondisi kettika digunakan :
Umumnya digunakan dalam aplikasi pengolahan data (baik batch dan transaksi berbasis) dimana input diproses dalam tahap yang terpisah untuk menghasilkan output yang terkait

Contoh Arsitektur Pipe dan Filter


Posted By Jabir Al Hayyan06.49

TUGAS 1 REKAYASA PERANGKAT LUNAK – B. Ratih

1. Jelaskan beberapa konsep RPL

a.       Definisinya
b.      Mengapa diperlukan
c.       Cakupannya
Jawab :
a.       Rekayasa Perangkat Lunak adalah Aplikasi ilmu computer untuk membangun sistem perangkat lunak praktis yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal yaitu analisa kebutuhan pengguna, menentukan spesifikasi dari kebutuhan pengguna, desain, pengkodean, pengujian sampai pemeliharaan sistem setelah digunakan.
b.      - Semua negara maju ekonominya bergantung pada perangkat lunak (PL), makin banyak sistem yang dikendalikan oleh PL, makin banyak pula anggaran yang dihabiskan untuk perangkat lunak
- Rekayasa perangkat lunak dalam skala yang besar tidak bisa dikerjakan oleh seorangan, karena akan menghabiskan keefektifan dan keefisienan waktu. Oleh sebab itu dibutuhkan kerja tim/orang-orang yang terlibat dalam pengembangannya seperti : programmer, system analis, software engineer, database engineer dll.
- Harga PL sering lebih mendominasi harga sistem komputer. Harga PL pada PC sering lebih mahal dari pada harga perangkat kerasnya.
c.       Disiplin ilmu dasar Rekayasa Perangkat Lunak ada 3 macam :
1.      Proses
Semua kumpulan aktivitas yang saling terkait guna untuk menyelesaikan masalah tertentu atau menghasilkan prodak atau layanan, mulai tahap awal (spesifikasi) sampai tahap akhir (evolusi)
2.      Produk
Sesuatu yang dihasilkan dari beberapa proses yang telah dilakukan berupa perangkat lunak yang siap digunakan oleh pengguna
3.      Manajemen

Pengelolaan manajemen yang diperlukan untuk teknis-teknis pengembangan perangkat lunak, contoh : manajemen biaya, waktu, resiko, tim kerja/orang, strategis dll.


2.  Sebut dan jelaskan lima atribut PL

Jawab :
1.      dapat terus dirawat dan dipelihara(maintainability)
perangkat lunak harus dibuat sedemikian rupa sehingga bisa awet/tidak mudah rusak dalam penggunaannya
2. dapat mengikuti perkembangan teknologi(dependability)
Tuntutan evolusi tidak bisa dihindari akibat perkembangan teknologi dan permintaan pelanggan yang bermacam-macam
3. dapat mengikuti keinginan pengguna(robust)
Arti keinginan pengguna disini adalah dapat diterima oleh jenis dan sifat pengguna dalam mengoperasikan perangkat lunak di system yang diinginkan pengguna
4. efektif dan efisien dalam menggunakan energi dan penggunaannya (efficiency)
Perangkat lunak yang efisien yaitu perangkat lunak yang tidak boros dalam penggunaan sumber daya sistem
5. dapat memenuhi kebutuhan (usability)[2]
Kebutuhan pelanggan bermacam-macam, oleh karenanya kita harus siap ketika sewaktu-waktu dimintai untuk membuatkan perangkat lunak yang  dibutuhkan pelanggan


3. Jelaskan dua jenis produk PL dan berikan contohnya
Jawab :

a.      Produk Generik (Umum)
Sistem stand-alone standar yang diproduksi oleh organisasi pengembang dan dijual ke pasar terbuka kesiapapun yg membelinya. Biasa disebut sebagai software shrink-wrapped. Contoh : pengolah kata (word processor).
b.      Produk pesanan (yang disesuaikan)
Sistem yang dipesan oleh pelanggan tertentu. Dikembangkan khusus bagi pelanggan oleh kontraktor perangkat lunak. Contoh : Sistem untuk mendukung proses bisnis tertentu dan sistem kontrol lalu lintas udara.

4. Tanggung jawab apa saja yang harus dimiliki oleh seorang software engineer? Jelaskan!
Jawab :
  Kerahasiaan
  Seorang perekayasa PL harus menghormati kerahasiaan data-data pelanggan
  Kompetensi
  Seorang perekayasa  harus mempunyai kemampuan untuk melaksanakan atau melakukan suatu pekerjaan yang dilandasi atas keterampilan dan pengetahuan
  Hak cipta intelektual
  Seorang perekayasa PL harus memastikan dan melindungi hak cipta pemikiran/intelektualitas
  Penyalahgunaan komputer
  Seorang perekayasa PL tidak seharusnya menyalahgunakan kemampuannya untuk  melakukan kejahatan atau kriminalitas

5. Sebut dan jelaskan 4 proses PL!
Jawab :
a. Spesifikasi Perangkat Lunak : Fungsionalitas perangkat lunak dan batasan kemampuan operasinya harus didefinisikan.

b. Pengembangan Perangkat Lunak : Perangkat lunak yang memenuhi spesifikasi harus diproduksi.

c. Validasi Perangkat Lunak : Perangkat lunak harus divalidasi untuk menjamin bahwa perangkat lunak melakukan apa yang diinginkan oleh pelanggan.

d. Evolusi Perangkat Lunak : Perangkat lunak harus berkembang untuk memenuhi kebutuhan pelanggan.

1.   6. Gambar dan jelaskan tahap2 dalam model proses Waterfall! Apa kekurangan dan kelebihan model proses Waterfall?
Jawab :


Tahap-Tahap Model Proses Waterfall :
· Software Requirements Analysis. Proses pencarian kebutuhan diintensifkan dan difokuskan pada software. Untuk mengetahui sifat dari program yang akan dibuat, maka para software engineer harus mengerti tentang domain informasi dari software, misalnya fungsi yang dibutuhkan, user interface, dsb. Dari 2 aktivitas tersebut (pencarian kebutuhan sistem dan software) harus didokumentasikan dan ditunjukkan kepada pelanggan.
· Design & Architecture. Proses ini digunakan untuk mengubah kebutuhan-kebutuhan diatas menjadi representasi ke dalam bentuk “blueprint” software sebelum coding dimulai. Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan pada tahap sebelumnya. Seperti 2 aktivitas sebelumnya, maka proses ini juga harus didokumentasikan sebagai konfigurasi dari software.
· Development & Coding. Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer, maka desain tadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh mesin, yaitu ke dalam bahasa pemrograman melalui proses coding. Tahap ini merupakan implementasi dari tahap design yang secara teknis nantinya dikerjakan oleh programmer.
· Quality Assurance & Software Testing / Verification. Sesuatu yang dibuat haruslah diujicobakan. Demikian juga dengan software. Semua fungsi-fungsi software harus diujicobakan, agar software bebas dari error, dan hasilnya harus benar-benar sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya.
· Implementation.  selama tahap ini, desain perangkat lunak disadari sebagai sebuah program lengkap atau unit program. Desain yang telah disetujui, diubah dalam bentuk kode-kode program. Tahap ini, kode-kode program yang dihasilkan masih pada tahap modul. Diakhir tahap ini, tiap model di testing tanpa diintregasikan.
· Maintenance & Support. Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu. Ketika dijalankan mungkin saja masih ada errors kecil yang tidak ditemukan sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada software tersebut. Pengembangan diperlukan ketika adanya perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya.
     Kelebihan model Waterfall: 
  • Kualitas dari sistem yang dihasilkan akan baik. Ini dikarenakan oleh pelaksanaannya secara bertahap. Sehingga tidak terfokus pada tahapan tertentu.
  •  Document pengembangan system sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya. Jadi  setiap fase atau tahapan akan mempunyai dokumen tertentu.
  • Metode ini masih lebih baik digunakan walaupun sudah tergolong kuno, daripada menggunakan pendekatan asal-asalan. Selain itu, metode ini juga masih masuk akal jika kebutuhan sudah diketahui dengan baik.

    Kekurangan model Waterfall:

  •   Diperlukan majemen yang baik, karena proses pengembangan tidak dapat dilakukan secara berulang sebelum terjadinya suatu produk.
  • Kesalahan kecil akan menjadi masalah besar jika tidak diketahui sejak awal pengembangan yang berakibat pada tahapan selanjutnya.
  • Pelanggan sulit menyatakan kebutuhan secara eksplisit sehingga tidak dapat mengakomodasi ketidak pastian pada saat awal pengembangan.
  • Pelanggan harus sabar, karena pembuatan perangkat lunak akan dimulai ketika tahap desain sudah selesai. Sedangkan pada tahap sebelum desain bisa memakan waktu yang lama.

    7. Sebutkan beberapa ciri-ciri model incremental sebutkan pula kelebihan dan kekurangannya!
Jawab  :

Model incremental menggabungkan elemen-elemen model sekuensial linier (diimplementasikan secara berulang) dengan filosofi prototype interatif. Model ini memakai urutan-urutan linier di dalam model yang membingungkan, seiring dengan laju waktu kalender. Setiap urutan linier menghasilkan pertambahan perangkat lunak yang kemudian dapat disampaikan kepada pengguna.
Pada saat model incremental (pertambahan) ini digunakan, pertambahan pertama sering merupakan produk inti (core product), yaitu sebuah model pertambahan yang dipergunakan, tetapi beberapa muka tambahan (beberapa diketahui dan beberapa tidak) tetap tidak disampaikan. Produk inti tersebut dipergunakan oleh pelanggan (atau mengalami pengkajian detail). Sebagai hasil dari pemakaian dan/atau evaluasi maka dikembangkan rencana bagi pertambahan selanjutnya. Rencana tersebut menekankan modifikasi produk inti untuk secara lebih baik memenuhi kebutuhan para pelanggan dan penyampaian fitur serta fungsional tambahan. Proses ini mengikuti penyampaian setiap pertambahan sampai bisa menghasilkan produk yang lengkap.
Model proses incremental tersebut, seperti model prototype dan pendekatan-pendekatan evolusioner yang lain, bersifat iterative. Tetapi tidak seperti model prototype, model pertambahan berfokus pada penyampaian produk operasional dalam setiap pertambahannya. Pertambahan awal ada di versi stripped down dari produk akhir, tetapi memberikan kemampuan untuk melayani pemakai dan juga menyediakan platform untuk evaluasi oleh pemakai.
Perkembangan pertambahan, khususnya berguna pada saat staffing, tidak bisa dilakukan dengan menggunakan implementasi lengkap oleh batasan waktu bisnis yang sudah disepakati untuk proyek tersebut. Jika produk inti diterima dengan baik, maka staf tambahan (bila dibutuhkan) bisa ditambahkan untuk mengimplementasi pertambahan selanjutnya. Sebagai tambahan, system mayor yang sedang pada masa perkembangan serta waktu penyampaiannya belum pasti, mungkin membutuhkan keberadaan perangkat keras yang baru. Bisa juga rencana tertentu dibuat untuk menghindari pemakaian perangkat lunak ini, sehingga memungkinkan fungsionalitas partial disampaikan kepada pemakai tanpa harus banyak tertunda.

Contoh Penggunaan Incremental Model
Misalnya, perangkat lunak pengolah kata yang dikembangkan dengan menggunakan paradigma penambahan akan menyampaikan manajemen file dasar, editing serta fungsi penghasilan dokumen pada penambahan pertama; kemudian editing dan kemampuan penghasilan dokumen yang lebih canggih pada pertambahan kedua; pengecekan spelling dan tata bahasa pada pertambahan ketiga; serta kemampuan pengaturan halaman tingkat lanjut pada tahap pertambahan keempat. Harus dicatat bahwa aliran proses untuk berbagai pertambahan tersebut dapat menggabungkan paradigma prototype.


Kelebihan Penggunaan Model Incremental
·   Merupakan model dengan manajemen yang sederhana
·   Pelanggan tidak perlu menunggu sampai seluruh system dikirim untuk mengambil keuntungan dari system tersebut. Inkremen yang pertama sudah memenuhi persyaratan mereka yang paling kritis, sehingga perangkat lunak dapat segera digunakan.
·   Pelanggan dapat memakai inkremen yang pertama sebagai bentuk prototype dan mendapatkan pengalaman yang dapat menginformasikan persyaratan untuk inkremen system berikutnya
·   Resiko untuk kegagalan proyek secara keseluruhan lebih rendah. Walaupun masalah dapat ditemukan pada beberapa inkremen, bias saja beberapa inkremen diserahkan dengan sukses kepada pelanggan.
·   Karena layanan dengan prioritas tertinggi diserahkan pertama dan inkremen berikutnya diintegrasikan dengannya, sangatlah penting bahwa layanan system yang paling penting mengalami pengujian yang paling ketat. Ini berarti bahwa pelanggan akan memiliki kemungkinan kecil untuk memenuhi kegagalan perangkat lunak pada inkremen system yang paling kecil.

Kekurangan Penggunaan Model Incremental
·   Inkremen harus relative lebih kecil (tidak lebih dari 20.000 baris kode) dan setiap inkremen harus menyediakan sebagian dari fungsional system
·   Adanya kesulitan untuk memetakan persyaratan pelanggan pada inkremen dengan ukuran yang 


    8. Apa saja yang dapat menyebabkan perubahan PL? sebut dan jelaskan 2 cara untuk menekan biaya terkait perubahan PL!

Jawab  :
Banyak factor yang menyebabkan perubahan perangkat lunak, antara lain :
a.       Kemajuan teknologi
Teknologi adalah keseluruhan sarana untuk menyediakan barang-barang yang digunakan bagi kelangsungan dan kenyamanan hidup manusia. Teknologi telah mempengaruhi manusia dan sekelilingnya dalam banyak cara.
Tidak dapat dipungkiri makin lama kemajuan teknologi berkembang sangat pesat, hal tersebut terjadi karena manusia semakin lama semakin ingin instan tidak usah bertele-tele.
Dan hal ini juga menyebabkan perubahan akan Perangkat Lunak semakin cepat, jika tertinggal sedikit saja maka Perangkat Lunak tersebut tidak akan laku, karena semua orang pasti menginginkan Perangkat Lunak yang paling canggih dan terbaru. Sebagai contohnya yaitu smart phone, hampir tiap bulan bahkan bisa jadi tidak sampai satu bulan sudah ada smart  phone yang baru, dimana kualitasnya lebih baik, lebih canggih dan lebih simple.
Maka dari itu pembuat perangkat lunak harus bisa membuat suatu perangkat lunak yang sangat canggih, sesuai perubahan zaman, agar perangkat lunak tersebut bisa diterima masyarakat luas.
b.      Kebutuhan manusia
Kebutuhan manusia akan sesuatu barang atau jasa setiap harinya semakin banyak, hal ini karena tuntutan zaman, dimana setiap manusia pasti inginnya hal yang serba instan,  maka dari itu pembuat perangkat lunak harus bisa mengetahui kebutuhan apa saja yang diinginkan oleh manusia pada saat akan membuat perangkat lunak, agar  perangkat lunak yang dibuat bisa diterima oleh masyarakat umum, agar hal itu bisa terealisasi maka pembuat perangkat lunak harus mau bertanya langsung atau meminta pendapat kepada masyarakat umum (konsumen).
Cara untuk menekan biaya terkait perubahan perangkat lunak adalah dengan mengguna metode yang tepat, yaitu metode incremental, karena metode incremental mampu mengakomodasi terhadap adanya perubahan secara fleksibel dan produk yang dihasilkan pada increment pertama bukanlah prototype, tapi produk yang sudah bisa berfungsi dengan spesifikasi dasar, jadi perangkat lunak tersebut masih bisa di revisi sesuai perubahan yang di inginkan, selain itu biaya yang digunakan juga relative kecil, beda dengan metode lainnya. Hal ini akan memberi keuntungan pagi kedua pihak (konsumen dan produsen) baik dalam hal biaya maupun hasilnya (perangkat lunak tersebut).


9. Apa yang dimaksud dengan extreme programming? Jelaskan beberapa prinsip XP!

Jawab  :
Proyek Pemrograman Extreme pertama dimulai 6 Maret 1996. Extreme Programming adalah salah satu dari beberapa Proses Agile populer. Sudah terbukti sangat sukses di banyak perusahaan dari berbagai ukuran dan industri di seluruh dunia.
Extreme Pemrograman berhasil karena menekankan kepuasan pelanggan. Alih-alih memberikan semua yang anda mungkin inginkan pada tanggal beberapa jauh di masa depan proses ini memberikan perangkat lunak yang Anda butuhkan saat Anda membutuhkannya. Extreme Pemrograman memberdayakan pengembang Anda untuk percaya diri menanggapi perubahan kebutuhan pelanggan, bahkan terlambat dalam siklus hidup.
Extreme Pemrograman menekankan kerja sama tim. Pengelola, pelanggan, dan pengembang semua mitra setara dalam sebuah tim kolaboratif. Extreme Pemrograman menerapkan, sederhana namun efektif yang memungkinkan tim lingkungan menjadi sangat produktif. Tim mengorganisir diri mengatasi masalah untuk menyelesaikannya seefisien mungkin.
Extreme Pemrograman meningkatkan proyek perangkat lunak dalam lima cara penting; komunikasi, kesederhanaan, umpan balik, rasa hormat, dan keberanian. Extreme Programmer selalu berkomunikasi dengan pelanggan mereka dan programer sesama. Mereka terus desain mereka yang sederhana dan bersih. Mereka mendapatkan umpan balik dengan menguji perangkat lunak mereka dimulai pada hari pertama. Mereka memberikan sistem ke pelanggan sebagai perubahan sedini mungkin dan melaksanakan seperti yang disarankan. Setiap keberhasilan kecil memperdalam rasa hormat mereka atas kontribusi yang unik dari masing-masing dan setiap anggota tim. Dengan dasar Extreme pemrogram dapat berani merespon perubahan kebutuhan dan teknologi.
Aspek yang paling mengejutkan dari Extreme Programming adalah aturan sederhana. Extreme Pemrograman sangat mirip jig gergaji teka-teki. Ada banyak potongan-potongan kecil. Individual potongan
Extreme Programming adalah metode pengembangan perangkat lunak yang ringan dan termasuk salah satu agile methods yang dipelopori oleh Kent Beck, Ron Jeffries, dan Ward Cunningham. Extreme Programming merupakan agile methods yang paling banyak digunakan dan menjadi sebuah pendekatan yang sangat terkenal. Sasaran Extreme Programming adalah tim yang dibentuk berukuran antara kecil sampai medium saja, tidak perlu menggunakan sebuah tim yang besar. Hal ini dimaksudkan untuk menghadapi requirements yang tidak jelas maupun terjadinya perubahan-perubahan requirements yang sangat cepat.
Tugas utama developer dalam membangun suatu sistem perangkat lunak adalah mengkomunikasikan kebutuhan sistem kepada pengembang perangkat lunak. Komunikasi dalam Extreme Programmning dibangun dengan melakukan pemrograman berpasangan (pair programming). Developer didampingi oleh pihak klien dalam melakukan coding dan unit testing sehingga klien bisa terlibat langsung dalam pemrograman sambil berkomunikasi dengan developer. Tujuannya untuk memberikan pandangan pengembang sesuai dengan pandangan pengguna sistem.
1.      Kesederhanaan (Simplicity)
XP mencoba untuk mencari solusi paling sederhana dan praktis. Perbedaan metode ini dengan metodologi pengembangan sistem konvensional lainnya terletak pada proses desain dan coding yang terfokus pada kebutuhan saat ini daripada kebutuhan besok, seminggu lagi atau sebulan lagi. Lebih baik melakukan hal yang sederhana dan mengembangkannya besok jika diperlukan.
2.      Umpan Balik (Feedback)
Hal ini diperlukan untuk mengetahui kemajuan dari proses dan kualitas dari aplikasi yang dibangun. Informasi ini harus dikumpulkan setiap interval waktu yang singkat secara konsisten. Ini dimaksudkan agar hal-hal yang menjadi masalah dalam proses pengembangan dapat diketahui sedini mungkin. Setiap feed back ditanggapi dengan melakukan tes, unit test atau system integration dan jangan menunda karena biaya akan membengkak (uang, tenaga, waktu).
3.      Keberanian (Courage)
Berani mencoba ide baru. Berani mengerjakan kembali dan setiap kali kesalahan ditemukan, langsung diperbaiki. Contoh dari courage adalah komitmen untuk selalu melakukan design dan coding untuk saat ini dan bukan untuk esok. Ketika ada kode yang terlalu rumit, sulit dibaca dan dipahami, tidak sesuai dengan kemauan pelanggan, dll maka seharusnya kode program seperti itu di refactor (kalau perlu dibangun ulang). Hal ini menjadikan pengembang merasa nyaman dengan refactoring program ketika diperlukan.
Extreme Programming menggunakan pendekatan berorientasi objek. Pada aktifitas Perencanaan terjadi pengumpulan user stories dari klien yang klien tetapkan prioritasnya. Setiap story ditetapkan harga dan lama pembangunan, jika terlalu besar, story dapat dipecah menjadi beberapa story yang lebih kecil. Terjadi pemeriksaan dan pertimbangkan resiko dan aktifitas Desain kegiatannya sederhana yaitu memanfaatkan kartu CRC (Class-Responsibility-Collaborator) untuk identifikasi dan mengatur class-class di konsep OO. Jika temuikan kesulitan, prototype dibangun [ini namanya spike solution].
Dilakukannya refactoring, yaitu mengembangkan desain dari program setelah ditulis. Pada aktifitas Pengkodean adalah penyiapan unit test sebelum pengkodean dipakai sebagai focus pemrogram untuk membuat program. Pair programming dilakukan untuk real time program solving dan real time quality assurance. Proses pengujiannya menggunakan unit test yang dipersiapkan sebelum pengkodean Menggunakan pendekatan berorientasi objek
Dalam penerapannya, Extreme Programming memiliki lima prinsip utama, yaitu:
1.      Rapid Feedback Menurut ilmu psikologi, waktu antara sebuah aksi dengan feedbacknya sangat penting untuk dipelajari. Dalam sebuah proyek XP, developer memperoleh feedback sesegera mungkin, menginterpretasikannya, lalu mengambil inti sarinya dan meletakkannya ke dalam system. Feedback dari pelanggan terhitung harian, bukan bulanan, dan feedback dari developer terhitung menitan, bukan mingguan!
2.      Assume Simplicity Hanya mendesain untuk masalah saat ini dan menghemat waktu 98% dari masalah tersebut dan hanya menekuni sekitar 2% untuk bagian yang sulit. XP berencana untuk masa depan sehingga desainnya bias di-reuse, lakukan pekerjaan yang penting, dan percayalah bahwa untuk kekompleksitasan bias ditambahkan kemudian.
3.      Incremental Change Pemecahan problem yaitu dengan bagian-bagian kecil perubahan saja. Jadi perubahan-perubahan yang terjadi pada XP melalui tahap-tahap kecil dan waktu yang singkat.
4.      Embracing Change Mencari dan menyediakan terlebih dahulu sebanyak mungkin pilihan ketika menyelesaikan masalah yang begitu menekan.
5.      Quality Work Setiap orang suka mengerjakan pekerjaan yang bagus dan layak dan kualitas yang dimaksud di sini adalah kualitas yang sempurna dan kualitas yang sempurna secara ekstrim. Karena tanpa kualitas kita tidak akan suka melakukan pekerjaan tersebut, hasilnya tidak akan sempurna dan proyeknya akan jatuh berantakan. 

   10. Jelaskan tentang metode agile
a.       Definisinya
b.      Prinsip-prinsipnya
c.       Kekurangan dan kelebihannya
Jawab  :
A.    definisi
Agile Software development adalah salah satu metodelogi dalam pengembangan sebuah perangkat lunak (software). Kata Agile berarti bersifat cepat, ringan, bebas bergerak, waspada. Kata ini digunakan sebagai kata yang menggambarkan konsep model proses yang berbeda dari konsep model-model proses yang sudah ada. Konsep Agile software development dicetuskan oleh Kent Beck dan 16 rekannya dengan menyatakan bahwa Agile Software Development adalah cara membangun software dengan melakukannya dan membantu orang lain membangunnya sekaligus.
Dalam Agile Software Development interaksi dan personel lebih penting dari pada proses dan alat, software yang berfungsi lebih penting daripada dokumentasi yang lengkap, kolaborasi dengan klient lebih penting daripada negosiasi kontrak, dan sikap tanggap terhadap perubahan lebih penting daripada mengikuti rencana. Namun demikian, sama seperti model proses yang lain, agile software development memiliki kelebihan dan tidak cocok untuk semua jenis proyek, produk, orang dan situasi. Agile Software Development memungkinkan model proses yang toleransi terhadap perubahan kebutuhan sehingga perubahan dapat cepat ditanggapi. Namun di sisi lain menyebabkan produktiitas menurun.

B.     prinsip-prinsip metode Agile
Salah satu cirri dari Agile Software Development adalah tim yang tanggap terhadap perubahan. Karena perubahan adalah hal yang utama dalam membangun software: perubahan kebutuhan software, perubahan anggota tim, perubahan teknologi dll. Selain itu Agile Software Development juga melihat pentingnya komunikasi antara anggota tim, antara orang-orang teknis dan businessmen, anatara developer dan managernya. Cirri lain adalah klien menjadi bagian dari tim pembangun software. Ciri-ciri ini didukung oleh 12 prinsip yang diterapkan oleh Agile Alliance. Menurut Agile Alliance, 12 prinsip ini adalah bagi mereka yang ingin berhasil dalam penerapan Agile Software Development :
·         Kepuasan klien adalah prioritas utama dengan menghasilkan produk lebih awal     dan terus menerus.
·         Menerima perubahan kebutuhan, sekalipun diakhir pengembangan.
·         Penyerahan hasil/software dalam hitungan waktu beberapa minggu sampai beberapa bulan.
·         Pihak bisnis dan pengembang harus bekerja sama setiap hari selama pengembangan berjalan.
·         Membangun proyek dilingkungan orang-orang yang bermotivasi tinggi yang bekerja dalam lingkungan yang mendukun dan yang dipercaya untuk dapat menyelesaikan proyek.
·         Komunikasi dengan berhadapan langsung adalah komunikasi yang efektif dan efisien
·         Software yang berfungsi adalah ukuran utama dari kemajuan proyek
·         Dukungan yang stabil dari sponsor, pembangun, dan pengguna diperlukan untuk menjaga perkembangan yang berkesinambungan
·         Perhatian kepada kehebatan teknis dan desain yang bagus meningkatkan sifat agile
·         Kesederhanaan penting
·         Arsitektur, kebutuhan dan desain yang bagus muncuk dari tim yang mengatur dirinya sendiri
·         Secara periodik tim evaluasi diri dan mencari cara untuk lebih efektif dan segera melakukannya.
Dua belas prinsip tersebut menjadi suatu dasar bagi model-model proses yang punya sifat agile. Dengan prinsip-prinsip tersebur Agile Process Model berusaha untuk menyiasati 3 asumsi penting tentang proyek software pada umumnya:
a.       Kebutuhan software sulit diprediksi dari awal dan selalu akan berubah. Selain  itu, prioritas klien juga sering berubah seiring berjalannya proyek.
b.      Desain dan pembangunan sering tumpang tindih. Sulit diperkirakan seberapa jauh desain yang diperlukan sebelum pembangunan.
c.       Analisis, desain, pembangunan dan testing tidak dapat diperkirakan seperti yang diinginkan.

C.  kelebihan dan kekurangan
Kelebihan dari metode Agile
1.      Meningkatkan kepuasan kepada klien
2.      Pembangunan system dibuat lebih cepat
3.      Mengurangi resiko kegagalan implementasi software dari segi non-teknis
4.      Jika pada saat pembangunan system terjadi kegagalan,kerugian dar segi materi relative kecil.
5.      Bisa melakukan review pelanggan mengenai software yang di buatlebih awal.

Kekurangan metode agile:
1.      Total lama pengembangan menjadi lebih lama
2.      Meningkatkan resiko kesalahan teknis
3.      Proses pengembangan menjadi agak kurang terorganisir

11. Apa yang disebut dengan pair programming? Apa keuntungan memakai pair programming?

Jawab        :
Pair Progamming adalah dua pemrogram yang bekerja pada satu sistem komputer yamg sama. Pair Progamming dapat dianalogikan seperti rally mobil dimana salah seorang bertindak sebagai driver, yang mengetik source code dan yang lain sebagai navigatornya, memikirkan strategi secara logika dan apa yang harus dilakukan oleh driver. PAda beberapa penelitian terdahulu Pair Progamming memiliki keuntungan dabandingkan dengan individual programming. Antara lain meningkatnya ketepatan secara fungsional dari system yang dibangun dan menghemat waktu pengerjaan. Sedangkan pada penelitian yang lain diperoleh hasil sebaliknya. Hal ini mungkin terjadi dikarenakan perbedaan sample pada pengujian misalnya tingkat kemahiran pemrogram atau kekompleksitasan dari sistem.
Pertanyaan yang muncul dari hasil peneltian terdahulu adalah apa hubungan dari waktu(duration), usaha (effort), dan Ketepatan  (correctness) dari Pair Progamming untuk tiap level kompleksitas dari system dan kemahiran pemrogram pada saat mengerjakan sebuah system ?.
Penelitian saat ini mengilustrasikan dengan jelas bagaimana kompleksitas dari pemrograman bergantung pada kemahiran dari subjeknya. Hipotesa dari study ini dapat dilihat pada tabel 1. H01,H04, dan H07 menunjukan pengaruh Pair Progamming yang berkaitan dengan durasi, effort dan correctness. Sepanjang pengetahuan peneliti, tidak ada studi mengenai Pair Progamming yang dapat digunakan untuk menilai secara langsung mengenai bagaimana hubungan kekompleksitasan dari system dan kemahiran pemrogram untuk membandingkan Pair Progamming dan Individual programming. Untuk membuktikan hubungan dari kekompleksitasan system peneliti mebuat null hipotesis H02, H05, dan H06. Dan dalam hubungan dengan kemahiran pemrogram dibuat null hipotesis H03, H06, dan H09.

Keuntungan pair programming :
Programmer bekerja berpasangan biasanya menghasilkan program yang lebih pendek, dengan desain yang lebih baik dan lebih sedikit bug, daripada programmer bekerja sendiri. Penelitian telah menemukan pengurangan tingkat cacat dari 15% sampai 50%, bervariasi tergantung pada pengalaman programmer dan kompleksitas tugas. Pasangan biasanya mempertimbangkan alternatif desain yang lebih daripada programmer bekerja sendiri, dan tiba di sederhana, desain yang lebih-dipelihara, mereka juga menangkap cacat desain awal Pasangan biasanya menyelesaikan pekerjaan lebih cepat dari satu programmer ditugaskan untuk tugas yang sama.. Pasangan sering menemukan bahwa tampaknya "mustahil" masalah menjadi mudah atau bahkan cepat, atau setidaknya mungkin untuk memecahkan ketika mereka bekerja bersama-sama.
            Pengetahuan lewat di antara pasangan programmer saat mereka bekerja. Mereka berbagi pengetahuan spesifik dari sistem, dan mereka mengambil teknik pemrograman dari satu sama lain. New mempekerjakan cepat mengambil praktik tim dan mempelajari secara spesifik dari sistem. Dengan "promiscuous pasangan "-masing bersepeda programmer melalui semua programmer lain di tim daripada pasangan hanya dengan satu pasangan-pengetahuan tentang sistem menyebar ke seluruh seluruh tim, mengurangi risiko kepada manajemen jika salah satu programmer meninggalkan tim.

            Pairing biasanya membawa peningkatan disiplin dan manajemen waktu. Programmer cenderung untuk melewatkan menulis unit test, menghabiskan waktu surfing web atau email pribadi atau jalan pintas ketika mereka bekerja dengan mitra pasangan. Mitra pair "membuat mereka jujur​​". Orang lebih enggan untuk mengganggu sepasang dari mereka untuk mengganggu seseorang yang bekerja sendirian.
            keuntungan tambahan dilaporkan meliputi peningkatan moral dan kepercayaan yang lebih besar dalam kebenaran kode.


1
2.      Jelaskan tentang plan driven development


a.       Definisinya
b.      Tepat digunakan dalam kondisi seperti apa
c.       Kelebihan
d.      Kekurangan
Jawab  :

A.    definisi
            Metode plan driven adalah pendekatan khusus yang lebih formal untuk membuat aplikasi . Metodologi plan-driven menggabungkan : pengulangan dan prediktabilitas , suatu proses inkremental ditetapkan , dokumentasi yang ekstensif , arsitektur sistem muka , rencana rinci , proses pemantauan , pengendalian dan pendidikan , manajemen risiko , verifikasi dan validasi .
            Rencana biasanya dihasilkan oleh berikut :
a.        Proyek dipecah menjadi tahap / tugas
b.      Setiap tugas dipecah menjadi kegiatan komposit
c.       Setiap tugas individu diperkirakan (mungkin menggunakan metrik )
d.      Perkiraan pengumpulan untuk memberikan usaha total
e.       Daftar tugas dianalisis untuk concurrencies dan dependensi untuk memberikan jadwal
f.       Jadwal dan tanggal pengiriman bantuan menyediakan ukuran tim dan komposisi tim
g.       Tim dirakit dan proyek dimulai
h.      Pemantauan dan pengendalian seluruh pembangunan
i.        Pengiriman

Metodologi Rencana -driven dikenal sebagai " Heavy -weight " metodologi atau " tradisional " metodologi .

Tiga yang paling menonjol metodologi plan -driven adalah Proses Personal Software ( PSP ) , Tim Perangkat Lunak Proses ( TSP ) , dan Rational Unified Process ( RUP ) .    

Sebuah proses pengembangan perangkat lunak adalah proses dimana kebutuhan pengguna dijabarkan ke dalam produk perangkat lunak . Proses ini melibatkan menerjemahkan kebutuhan pengguna ke dalam persyaratan perangkat lunak , mengubah persyaratan perangkat lunak ke dalam desain , menerapkan desain dalam kode , pengujian kode, dan kadang-kadang menginstal dan memeriksa perangkat lunak untuk penggunaan operasional .
        
Proses Personal Software ( PSP ) , Tim Perangkat Lunak Proses ( TSP ) , dan Rational Unified Process ( RUP ) , yang semuanya menggunakan model inkremental

B.     Metode plan driven cocok digunakan untuk berbagai hal, antara lain :
1.   Jika customer lepas tangan terhadap pembuatan perangkat lunak, customer tersebut tidak mau ikut campur dalam pembuatannya, baik itu karena alas an sibuk, malas dan sebagainya.
2.      Timnya besar (terdiri dari banyak orang).
3.      Analisisnya besar.
4.      Perangkat lunak tersebut dirancang agar bisa digunakan dalam tempo yang lama, tidak hanya 1 atau 2 tahun saja.
5.      Teknologi yang tersedia kurang mendukung.
6.  Tim pengembangnya tersebar dimana-mana, tidak harus kumpul satu lokasi agar bisa membuat suatu perangkat lunak

C.    Kelebihan
1.      Pembuatan progam tersebut terencana, mulai dari spesifikasi, perancangan, validasi evolusi
2.      Customer tidak perlu repot-repot untuk memikirkan pembuatan perangkat lunak tersebut, karena Cuma membuat kontrak (berisi kebutuhan) diawal saja.
3.      Perangkat lunak tersebut bisa digunakan dalam jangka waktu yang panjang, sampai puluhan tahun.
4.      Bisa dikerjakan oleh tim, dimana mereka tidak harus kumpul satu lokasi.
5.      Biaya relative ringan karena pekerjaan nya dilakukan berurutan
6.      Hasilnya sangat bagus karena pengolahannya sangat terperinci

D.    Kekurangan
1.  Tidak bisa dilakukan perubahan terhadap perangkat lunak di tengah-tengah pekerjaan. Sehingga tidak bisa menyesuaikan kemajuan dan keinginan masyarakat saat itu.
2.   Hasilnya kurang sesuai dengan kebutuhan dan keinginan masyarakat pada saat perangkat lunak tersebut selesai.

Posted By Jabir Al Hayyan06.26