Sabtu, 22 September 2012

Model Proses Pengembangan Perangkat Lunak


A. Linear Sequential Model
Linear sequential model (atau disebut juga “classic life cycle” atau “waterfall model”) adalah metode pengembangan perangkat lunak dengan pendekatan sekuensial dengan cakupan aktivitas :
1.       Rekayasa sistem dan Analisis (Sistem Engineering and Analysis)
Karena perangkat lunak adalah bagian dari sistem yang lebih besar, pekerjaan dimulai dari pembentukan kebutuhan-kebutuhan untuk seluruh elemen sistem dan kemudian memilah mana yang untuk pengembangan perangkat lunak. Hal ini penting, ketika perangkat lunak harus berkomunikasi dengan hardware, orang dan basis data
2.      Analisis kebutuhan perangkat lunak (Software Requirements Analysis)
Pengumpulan kebutuhan dengan fokus pada perangkat lunak, yang meliputi:
Domain informasi, fungsi yang dibutuhkan, unjuk kerja/performansi dan antarmuka. Hasilnya harus didokumentasi dan direview ke pelanggan
3.      Perancangan (Design)
Ada 4 atribut untuk program yaitu : Struktur Data, Arsitektur perangkat lunak, Prosedur detil dan Karakteristik Antarmuka. Proses desain mengubah kebutuhan-kebutuhan menjadi bentuk karakteristik yang dimengerti perangkat lunak sebelum dimulai penulisan program. Desain ini harus terdokumentasi dengan baik dan menjadi bagian konfigurasi perangkat lunak.
4.      Pembuatan kode (Coding)
Penterjemahan perancangan ke bentuk yang dapat dimengerti oleh mesin, dengan menggunakan bahasa pemrograman
5.      Pengujian (Testing)
Setelah kode program selesai testing dapat dilakukan. Testing memfokuskan pada logika internal dari perangkat lunak, fungsi eksternal dan mencari segala kemungkinan kesalahan dan memriksa apakah sesuai dengan hasil yang diinginkan.
6.      Pemeliharaan (Maintenance)
Merupakan bagian paling akhir dari siklus pengembangan dan dilakukan setelah perangkat lunak dipergunakan. Kegiatan :
Corrective Maintenance : Mengoreksi kesalahan pada perangkat lunak, yang baru terdeteksi pada saat perangkat lunak dipergunakan
Adaptive Maintenance : Penyesuaian dengan lingkungan baru, misalnya sistem operasi atau sebagai tuntutan atas perkembangan sistem komputer, misalnya penambahan printer driver
Perfektive Maintenance : Bila perangkat lunak sukses dipergunakan oleh pemakai. Pemeliharaan ditujukan untuk menambah kemampuannya seperti memberikan fungsi-fungsi tambahan, peningkatan kinerja dan sebagainya.

B. Prototyping Model
Pendekatan prototyping model digunakan jika pemakai hanya mendefenisikan objektif umum dari perangkat lunak tanpa merinci kebutuhan input, pemrosesan dan outputnya, sementara pengembang tidak begitu yakin akan efesiensi algoritma, adaptasi sistem operasi, atau bentuk antarmuka manusia-mesin yang harus diambil. Cakupan aktivitas dari prototyping model terdiri dari :
1.      Mendefinisikan objektif secara keseluruhan dan mengidentifikasi kebutuhan yang sudah diketahui.
2.      Melakukan perancangan secara cepat sebagai dasar untuk membuat prototype.
3.      Menguji coba dan mengevaluasi prototype dan kemudian melakukan penambahan dan perbaikan-perbaikan terhadap prototype yang sudah dibuat.
Kelemahan prototyping model :
1. Pelanggan yang melihat working version dari model yang dimintanya tidak menyadari, bahwa mungkin saja prototype dibuat terburu-buru dan rancangan tidak tersusun dengan baik
2. Pengembang kadang-kadang membuat implementasi sembarang, karena ingin working version bekerja dengan cepat

C. RAD (Rapid Application Development) Model
Merupakan model proses pengembangan perangkat lunak secara linear sequential yang menekankan pada siklus pengembangan yang sangat singkat. Jika kebutuhan dipahami dengan baik, proses RAD memungkinkan tim pengembangan menciptakan “sistem fungsional yang utuh” dalam periode waktu yang sangat pendek (kira-kira 60-90 hari).
Pendekatan RAD model menekankan cakupan :
1.      Pemodelan bisnis (Bussiness Modelling)
Aliran informasi diantara fungsi-fungsi bisnis dimodelkan dengan suatu cara untuk menjawab pertanyaan-pertanyaan berikut : Informasi apa yang mengendalikan proses bisnis ? Kemana informasi itu pergi? Siapa yang memprosesnya ?
2.      Pemodelan data (Data Modelling)
Aliran informasi yang didefinisikan sebagai bagian dari fase pemodelan bisnis disaring ke dalam serangkaian objek data yang dibutuhkan untuk menopang bisnis tersebut. Karakteristik/atribut dari masing-masing objek diidentifikasi dan hubungan antara objek-objek tersebut didefinisikan.
3.      Pemodelan proses (Process Modelling)
Aliran informasi yang didefinisikan dalam fase pemodelan data ditransformasikan untuk mencapai aliran informasi yang perlu bagi implementasi sebuah fungsi bisnis. Gambaran pemrosesan diciptakan untuk menambah, memodifikasi, menghapus atau mendapatkan kembali sebuah objek data.
4.      Pembuatan aplikasi (Application generation)
Selain menciftakan perangkat lunak dengan menggunakan bahasa pemrograman generasi ketiga yang konvensional, RAD lebih banyak memproses kerja untuk memakai lagi komponen program yang telah ada atau menciftakan komponen yang bias dipakai lagi. Pada semua kasus, alat-alat Bantu otomatis dipakai untuk memfasilitasi kontruksi perangkat lunak.
5.      Pengujian dan pergantian (Testing and turnover)
Karena proses RAD menekankan pada pemakaian kembali, banyak komponen yang telah diuji. Hal ini mengurangi keseluruhan waktu pengujian. Tapi komponen baru harus diuji.
Kelemahan RAD model :
1.    Untuk proyek dengan skala besar, RAD membutuhkan sumber daya manusia yang cukup untuk membentuk sejumlah tim RAD.
2.    RAD membutuhkan pengembang dan pemakai yang mempunyai komitmen untuk melaksanakan aktivitas melengkapi sistem dalam kerangka waktu yang singkat.
3.    Akan menimbulkan masalah jika sistem tidak dapat dibuat secara modular.
4.    RAD tidak cocok digunakan untuk sistem yang mempunyai resiko teknik yang tinggi.

D. Spiral Model
Merupakan model proses perangkat lunak yang memadukan wujud pengulangan dari model prototyping dengan aspek pengendalian dan sistematika dari linear sequential model, dengan penambahan elemen baru yaitu analisis resiko. Model ini memiliki 4 aktivitas penting, yaitu :
1.    Perencanaan (Planning), penentuan tujuan, alternatif dan batasan
2.    Analisis resiko (Risk Analysis), analisis alternatif dan identifikasi/pemecahan resiko
3.    Rekayasa (Engineering), pengembangan level berikutnya dari produk
4.    Evaluasi Pemakai (Customer Evaluation) penilaian terhadap hasil rekayasa

Kelemahan spiral model :
1.    Sulit untuk meyakinkan pemakai (saat situasi kontrak) bahwa penggunaan pendekatan ini akan dapat dikendalikan.
2.    Memerlukan tenaga ahli untuk memperkirakan resiko, dan harus mengandalkannya supaya sukses.
3.    Belum terbukti apakah metode ini cukup efisien karena usianya relatif baru.

E. Fourth Generation Techniques (4GT)
Istilah generasi ke empat, mengarah ke perangkat lunak yang umum yaitu tiap pengembang perangkat lunak menentukan beberapa karakteristik perangkat lunak pada level tinggi.
Saat ini pengembangan perangkat lunak yang mendukung 4GT, berisi tool-tool berikut :
• Bahasa non prosedural untuk query basis data
Report generation
Data manipulation
• Interaksi layar
• Kemampuan grafik level tinggi
• Kemampuan spreadsheet
Menggunakan perangkat bantu (tools) yang akan membuat kode sumber secara otomatis berdasarkan spesifikasi dari pengembang perangkat lunak. Hanya digunakan untuk menggunakan perangkat lunak yang menggunakan bahasa khusus atau notasi grafik yang diselesaikan dengan syarat yang dimengerti pemakai. Cakupan aktivitas 4GT :
1.    Pengumpulan kebutuhan, idealnya pelanggan akan menjelaskan kebutuhan yang akan ditranslasikan ke prototype operasional.
2.    Translasi kebutuhan menjadi prototype operasional, atau langsung melakukan implementasi secara langsung dengan menggunakan bahasa generasi keempat (4GL) jika aplikasi relatif kecil.
3.    Untuk aplikasi yang cukup besar, dibutuhkan strategi perancangan sistem walaupun 4GL akan digunakan.
4.    Pengujian.
5.    Membuat dokumentasi.
6.    Melaksanakan seluruh aktivitas untuk mengintegrasikan solusi-solusi yang membutuhkan paradigma rekayasa perangkat lunak lainnya.
Salah satu keuntungan penggunaan model 4GT adalah pengurangan waktu dan peningkatan produktivitas secara besar, sementara kekurangannya terletak pada kesulitan penggunaan perangkat bantu (tools) dibandingkan dengan bahsa pemrograman, dan juga kode sumber yang dihasilkannya tidak efisien.


Metodologi Pengembangan Perangkat Lunak



Metodologi Pengembangan Perangkat Lunak dapat diartikan sebagai proses membuat suatu perangkat lunak baru untuk menggantikan perangkat lunak lama secara keseluruhan atau memperbaiki perangkat lunak yang telah ada. Metodologi pengembangan perangkat lunak ini sangat diperlukan agar dapat lebih cepat dan tepat dalam mendeskripsikan solusi dan mengembangkan perangkat lunak. Dengan metodologi pengembangan ini nantinya juga dapat membantu untuk mengahasilkan perangkat lunak yang berkualitas. Metodologi pengembangan perangkat lunak adalah suatu proses pengorganisasian kumpulan metode dan konvensi notasi yang telah didefinisikan untuk mengembangkan perangkat lunak. Penggunaan suatu metodologi sesuai dengan persoalan yang akan dipecahkan dan memenuhi kebutuhan pengguna akan menghasilkan suatu produk perekayasaan yang berkualitas dan terpelihara serta dapat menghindari masalah-masalah yang sering terjadi seperti estimasi penjadwalan dan biaya, perangkat lunak yang tidak sesuai dengan keinginan pengguna dan sebagainya.
Metodologi pengembangan perangkat lunak (atau disebut juga model proses atau paradigma rekayasa perangkat lunak) adalah suatu strategi pengembangan yang memadukan proses, metode, dan perangkat (tools).
Menurut Pressman (1997) Komponen metodologi pengembangan perangkat lunak dapat dibagi dalam tiga unit, yaitu :
1.      Metode, yaitu suatu cara atau teknik pendekatan yang sistematik yang dipergunakan untuk mengembangkan perangkat lunak. Metode ini mencakup : Perencanaan proyek dan perkiraan, analisis keperluan sistem dan perangkat lunak, perancangan struktur data, arsitektur program, prosedur algoritma, Coding, uji coba dan pemeliharaan.
2.    Alat bantu (Tools), yaitu alat-alat (manual atau otomatis) yang mendukung pengembangan perangkat lunak. Terdapat 2 alat Bantu yang dapat digunakan yaitu : alat Bantu manual dan alat Bantu otomatis.
3.    Prosedur, yang dipergunakan untuk mendefinisikan urut-urutan pekerjaan (daur) dari metode dan alat bantu tersebut.
Secara umum daur hidup pengembangan perangkat lunak meliputi tahapan-tahapan atau aktivitas pengembangan yang terdiri dari tahap analisis, tahap perancangan, tahap implementasi serta tahap pengujian dan perawatan perangkat lunak. Tahap analisis dan perancangan merupakan tahapan awal yang penting dalam suatu paradigma pemgembangan perangkat lunak, karena sangat mempengaruhi tahapan selanjutnya. Sehingga jika terjadi kesalahan pada tahap analisis dan perancangan, maka akan terdapat juga kesalahan pada tahap implementasi dan tahapan-tahapan selanjutnya. Tahap implementasi perangkat lunak bertujuan untuk menerapkan spesifikasi kebutuhan perangkat lunak ke dalam bahasa pemrograman tertentu. Tahap pengujian perangkat lunak dilakukan untuk menemukan kesalahan (bug) yang mungkin terdapat di dalam sebuah perangkat lunak. Sedangkan tahap perawatan perangkat lunak fokusnya adalah pengubahan. Ada tiga pengubahan yaitu : pembetulan, adaptasi (perbaikan terhadap lingkungan) dan perluasan (penambahan karena permintaan pemakai).
Model proses pengembangan perangkat lunak terbagi menjadi 5 metode yaitu:
a.       Linear Sequential Model atau waterfall
b.      Prototyping Model
c.       RAD (Rapid Application Development) Model
d.     Spiral Model
e.      Fourth Generation Techniques (4GT)

Karakteristik Perangkat Lunak
Perangkat lunak lebih dikenal sebagai elemen lojik daripada fisik, oleh karena itu perangkat lunak memiliki karakteristik yang berbeda dari perangkat keras :
1.      Perangkat lunak dikembangkan atau direkayasa, jadi tidak diproduksi dalam pengertian klasik.
2.      Merupakan produk yang unik (tidak ada seri produksi).
3.      Perangkat lunak tidak pernah akan rusak/aus karena selalu diperbaharui
4.      Tidak terlihat (invisible).
5.      Perangkat lunak pada umumnya dibangun sesuai keinginan, jadi tidak dibentuk dari komponen yang sudah ada.
6.      Fleksibel, sehingga mudah dimodifikasi.
7.      Dihubungkan (linked) dengan sistem komputer.


Metode Pengembangan Perangkat Lunak
Extreme Programming”
Extreme Programming yang selanjutnya disingkat dengan XP merupakan salah satu dari sekian banyaknya metodologi dalam rekayasa perangkat lunak dan juga merupakan bagian dari metodologi pengembangan perangkat lunak agile yang dikembangkan oleh Beck, Cunningham, dan Jeffries. Secara umum Extreme Programming (XP) dapat dijabarkan sebagai sebuah pendekatan pengembangan perangkat lunak yang mencoba meningkatkan efisiensi dan fleksibilitas dari sebuah proyek pengembangan perangkat lunak dengan mengkombinasikan berbagai ide simpel/sederhana tanpa mengurangi kualitas software yang akan dibangun.
Metode Extreme Programming ini  merupakan lightweight discipline pengembangan perangkat lunak berdasarkan empat core value yaitu :
a.    Komunikasi (Communication)
Kurangnya komunikasi merupakan penyebab utama kegagalan pengembangan software, maka XP mengfokuskan pada hubungan komunikasi yang baik antar tim-klien, anggota tim, dan manajer proyek.Komunikasi dalam XP dibangun dengan melakukan pemrograman berpasangan (pair program-ming). Klien harus dilibatkan dalam proses pengembangan perangkat lunaknya dengan tujuan untuk memberikan pandangan pengembang sesuai dengan pandangan pengguna sistem yang dibangun.
b.    Kesederhanaan (Simplicity)
XP melakukan semua dengan sederhana dan praktis tanpa mengurangi fungsi utamanya. Diusahakan mengunakan method yang pendek dan simpel, jangan terlalu rumit dalam membuat desain, hilangkan fitur yang tidak ada gunanya atau menghapus fungsi yang tidak terpakai.
c.    Umpan balik (Feedback)
Selalu mengevaluasi perkembangan terhadap perangkat lunak yang sedang dikerjakan, segala informasi harus dikumpulkan setiap interval waktu yang konsisten dan diskusikan kesalahan-kesalahan yang muncul selama proses pengembangan. Umpan balik tersebut berfungsi sebagai indikator kemajuan proyek dan menginformasikan pemimpin proyek apabila perubahan perlu dibuat.
d.   Keberanian (Courage).
Programmer XP didorong untuk berani bereksperimen dan menulis ulang kode jika mereka tidak puas dengan kode yang sudah ada atau desain. Hal ini membantu mempertahankan moral serta integeritas para pengembang proyek dan dapat mendukung lebih lanjut komunikasi dengan anggota proyek lainnya.

Sabtu, 01 September 2012

Bagian – bagian Komputer


1. VGA CARD
VGA card merupakan bagian komputer, di dalam CPU yang berperan penting untuk menampilkan output process ke monitor. Tanpa VGA card, layar komputer tidak akan menampilkan apa-apa alias blank. VGA card sendiri ada yang berupa slot tambahan ataupun bawaan produsen motherboard atau disebut juga VGA on board.
Berikut ini adalah gambar dari VGA…
Bagian-bagian dari VGA itu sendiri antara lain terdiri dari memory dan kipas sebagai pendingin. Fungsinya sama, yaitu menampilkan teks dan gambar ke monitor, hanya warna dan desain yang berbeda, tergantung pihak manufaktur. Kipas dibutuhkan untuk mendinginkan komponen VGA card yang panas, karena bagian ini bekerja cukup berat setiap saat.
VGA card yang terlihat diatas merupakan VGA tambahan, bukan on board (tidak menyatu dengan motherboard). Keuntungan VGA card non on board adalah kita dapat dengan mudah menggantinya dengan yang baru apabila terjadi kerusakan atau ingin meningkatkan performa grafis komputer kita.
2. CASING
Casing merupakan bagian komputer yang berfungsi sebagai pakaian atau pelindung dari CPU. Bentuk yang umum adalah kotak persegi, namun bisa dengan modifikasi bagi mereka yang senang mengotak-atik casing ini.
Selain sebagai pelindung CPU, casing juga bisa berfungsi sebagai pendingin tambahan. Karena biasanya, casing modern saat ini dilengkapi dengan kipas pendingin yang jumlah nya bisa lebih dari satu buah. Fungsi lainnya yang utama adalah sebagai pondasi untuk menempatkan berbagai bagian komputer lainnya, terutama CPU, seperti motherboard, vga card, soundcard dan lain-lain.
Sebagai pelindung, casing bermanfaat melindungi bagian dalamnya dari kotoran atau debu, dari benturan dengan benda lain, sehingga bagian-bagian yang vital akan aman dan tidak cepat rusak.
Selain fungsi primernya tersebut, casing juga dapat tampil dengan berbagai macam warna dan bentuk yang sesuai dengan keinginan kita. Tentu saja casing hasil modifikasi ini harganya lebih mahal.
Yang terpenting dalam pemilihan casing adalah fungsi utamanya. Sehingga komputer kita berada dalam keadaan yang aman dan terlindungi.
3. POWER SUPPLY
Masih bagian dalam komputer, yang tersimpan dalam CPU yaitu power supply. Sesuai dengan namanya power supply ini berfungsi mengalirkan listrik ke setiap bagian komputer agar dapat berjalan. Yang biasa dipakai di PC rumahan adalah jenis ATX. Untuk lebih jelasnya lihat gambar di bawah ini.
Bagian belakang terdiri dari socket penghubung ke monitor dan power listrik. Juga terdapat fan atau kipas angin, yang berfungsi mendinginkan udara di dalam kotak power supply tersebut. Bagian depan terdiri dari kabel-kabel kecil untuk mengalirkan listrik ke setiap bagian di dalam CPU atau motherboard.
Tentu saja listrik yang mengalir sudah minim atau diperkecil. Sedangkan di power supply itu sendiri voltase listrik masih besar, sehingga dilarang keras menyentuhnya.

4. PROCESSOR
Processor merupakan bagian yang sangat penting dari komputer. Ia bisa diibaratkan sebagai otaknya komputer. Yaitu suatu sirkuit elektronik yang berfungsi secara logik merespon dan mengolah segala intruksi yang menghidupkan komputer. Berikut ini merupakan contoh gambar dari processor…
5. MOTHERBOARD
Motherboard atau mainboard merupakan bagian induk atau utama yang berada dalam CPU. Berfungsi sebagai papan circuit dari berbagai macam komponen pendukung lainnya.
Di bawah ini adalah contoh gambar motherboard “Gigabyte GA-MA69GM-S2H”.
Bagian warna – warni itu merupakan tempat dudukan untuk memasang card-card yang diperlukan, seperti VGA card, memory card, TV Tuner, Video card, dan lain-lain.
6. KEYBOARD, MOUSE DAN MONITOR
Tahun 1990-an input device hanya berupa keyboard saja. Perkembangan selanjutnya mulai muncul mouse, pen (berbentuk pulpen). Saat ini sudah ada yang input device berupa sentuhan jari (touch screen) dan suara (kalima perintah). Yang umumnya dipakai untuk komputer rumahan adalah keyboard dan mouse. Fungsinya tentu saja untuk memasukan data.
Yang terakhir yaitu monitor, output sementara, karena hanya tampak buat sementara saja di layar. Fungsinya untuk melihat hasil input ataupun program yang sedang aktif.