I-STATEMENT STIMIK ESQ | I-4 Volume 2 Nomor 1, Januari 2016
ISSN : 2442-8337
Membandingkan Empat Paradigma Rekayasa Perangkat Lunak Muhammad Rusli1), Mira Ziveria2). Sistem Informasi, Institut Teknologi dan Bisnis Kalbis, Jakarta Email: 1)
[email protected] Email: 2)
[email protected]
Abstract: This study aimed to compare the four paradigms of software engineering. Software became the machine that controls decision-making in the business world, serves as the basis of all forms of services and modern scientific research. The software is attached to any kind of system: transportation, medical, telecommunications, military, industrial processes, entertainment, office products and others. The method used to compare four software paradigm that Waterfall Model, Prototyping, Spiral Model, and Fourth-Generation. The software really can not escape from modern life. Therefore, it needs the technology to be used by people who build computer software and we also have to be able to develop it in a proper way. Technology includes a process, a series of methods and a series of tools called software engineering. Keywords: Waterfall Model, Prototyping, Spiral Model, and Fourth-Generation Abstrak: Penelitian ini bertujuan untuk membandingkan empat paradigma rekayasa perangkat lunak. Perangkat lunak menjadi mesin yang mengendalikan pengambilan keputusan di dalam dunia bisnis, berfungsi sebagai dasar dari semua bentuk pelayanan serta penelitian keilmuan modern. Perangkat lunak dilekatkan dengan segala bentuk sistem: transportasi, medis, telekomunikasi, militer, proses industri, hiburan, produk-produk kantor dan lainnya. Metode yang digunakan dalam membandingkan empat paradigma perangkat lunak yaitu Waterfall Model, Prototyping, Model Spiral, dan Fourth-Generation. Perangkat lunak benar-benar tidak dapat lepas dari kehidupan modern. Oleh karena itu dibutuhkan teknologi yang harus dipakai oleh orangorang yang membangun perangkat lunak komputer dan kita juga harus dapat mengembangkannya dengan cara yang tepat. Teknologi meliputi sebuah proses, serangkaian metode dan sederetan alat yang disebut dengan software engineering. Kata Kunci: Waterfall Model, Prototyping, Model Spiral, dan Fourth-Generation
1. PENDAHULUAN Perangkat lunak (software) kini sudah menjadi kekuatan yang menentukan. Perangkat lunak menjadi mesin yang mengendalikan pengambilan keputusan di dalam dunia bisnis, berfungsi sebagai dasar dari semua bentuk pelayanan serta Muhammad Rusli, Mira Ziveria
Page 31
penelitian keilmuan modern. Perangkat lunak dilekatkan dengan segala bentuk sistem: transportasi, medis, telekomunikasi, militer, proses industri, hiburan, produkproduk kantor dan lainnya. Perangkat lunak benar-benar tidak dapat lepas dari kehidupan modern. Semua itu mengubah pandangan masyarakat tentang perangkat
Prototyping, Fourth Generation
I-STATEMENT STIMIK ESQ | I-4 Volume 2 Nomor 1, Januari 2016 lunak. Program-program perangkat lunak sudah tersebar luas, dan masyarakat memandangnya sebagai kejayaan teknologi dalam kehidupan. Dalam banyak contoh, orang-orang sudah mulai mempertaruhkan pekerjaan, kenyamanan, keselamatan, hiburan, keputusan dan banyak segi dalam kehidupannya pada teknologi. Oleh karena itu dibutuhkan teknologi yang harus dipakai oleh orang-orang yang membangun perangkat lunak komputer dan kita juga harus dapat mengembangkannya dengan cara yang tepat. Teknologi meliputi sebuah proses, serangkaian metode dan sederetan alat yang disebut dengan software engineering. Untuk dapat mengembangkan sebuah perangkat lunak secara tepat, ada 4 paradigma yang akan diuraikan dibawah ini, beserta kelebihan dan kekurangannya serta contoh penggunaannya. Permasalahan yang akan dibahas adalah bagaimana perbandingan beberapa paradigma rekayasa perangkat lunak jika dilihat dari definisi, contoh penggunaan, keuntungan, dan kelemahan masing-masing paradigma tersebut? Penelitian ini bertujuan untuk membandingkan empat paradigma rekayasa perangkat lunak yaitu Waterfall Model, Prototyping, Model Spiral, dan FourthGeneration ditinjau dari definisi, contoh penggunaan, keuntungan, dan kelemahan masing-masing paradigma tersebut. 2. METODE PENELITIAN Metode yang digunakan dalam membandingkan empat paradigma perangkat lunak yaitu Waterfall Model, Prototyping, Model Spiral, dan FourthGeneration adalah membandingkan dari sudut pandang:
Definisi yang berisi tahapan pengembangan perangkat lunak setiap paradigma Contoh penggunaan masing-masing paradigma. Keuntungan masing-masing paradigma. Kelemahan masing-masing paradigma.
Muhammad Rusli, Mira Ziveria
Page 32
3. PEMBAHASAN 3.1.
Perangkat Lunak
Menurut [1], perangkat lunak didefinisikan sebagai berikut:
dapat
1. Perintah (program komputer) yang bila dieksekusi memberikan fungsi dan unjuk kerja seperti yang diinginkan. 2. Struktur data yang memungkinkan program memanipulasi informasi secara proporsional. 3. Dokumen yang menggambarkan informasi dan kegunaan program. 3.2.
Karakteristik Perangkat Lunak
Untuk memperoleh pemahaman tentang perangkat lunak (serta pemahaman tentang software engineering), penting juga untuk meneliti karakteristik perangkat lunak berbeda dari hal-hal lain yang dibangun oleh manusia. Ketika perangkat lunak dibuat, proses kreatif manusia (analisis, desain, konstruksi, pengujian) diterjemahkan ke dalam bentuk fisik. Jika kita membuat komputer baru, sketsa dasar, penggambaran desain formal, dan prototipe bread boarder berkembang ke dalam suatu produk fisik (VLSI chip, papan rangkaian, catu daya, dll). Perangkat lunak lebih merupakan elemen logika dan bukan merupakan elemen sistem fisik. Dengan demikian, perangkat lunak memiliki ciri yang berbeda dari perangkat keras: Perangkat lunak dibangun dan dikembangkan, tidak dibuat dalam bentuk yang klasik. Meskipun banyak kesamaan di antara pabrik perangkat keras dan perangkat lunak, aktivitas keduanya secara mendasar sangat berbeda. Dalam keduanya tersebut, kualitas yang tinggi dicapai melalui perancangan yang baik, tetapi di dalam fase pembuat an perangkat keras, selalu saja ditemukan masalah kualitas yang tidak mudah untuk disesuaikan dengan
Prototyping, Fourth Generation
I-STATEMENT STIMIK ESQ | I-4 Volume 2 Nomor 1, Januari 2016 perangkat lunak. Kedua aktivitas itu tergantung pada manusia, tetapi hubungan antara penerapan yang dilakukan manusia dengan usaha yang diperoleh sangat berbeda. Kedua aktivitas itu membutuhkan konstruksi sebuah “produk” tetapi pendekatan yang dipakai berbeda. Biaya untuk perangkat lunak dikonsentrasikan pada pengembangan. Hal ini berarti proyek perangkat lunak tidak dapat diatur seperti pengaturan proyek pemanufakturan. Perangkat lunak tidak pernah usang. Perangkat lunak tidak rentan terhadap pengaruh lingkungan yang merusak yang menyebabkan perangkat keras menjadi usang. Kesalahan-kesalahan yang tidak dapat ditemukan akan menyebabkan tingkat kegagalan menjadi sangat tinggi pada awal hidup program. Tetapi hal itu dapat diperbaiki dan diharapkan tidak lagi ditemukan kesalahan yang lain. Aspek lain dari keusangan menggambarkan perbedaan antara perangkat keras dan perangkat lunak. Bila komponen suatu perangkat telah usang, komponen dapat diganti dengan suku cadangnya. Namun tidak ada suku cadang bagi perangkat lunak. Setiap kegagalan perangkat lunak menggambarkan kesalahan dalam perancangan atau proses di mana rancangan diterjemahkan ke dalam kode mesin yang dapat dieksekusi. Demikianlah, pemeliharaan perangkat lunak menjadi lebih kompleks daripada pemeliharaan perangkat keras. Sebagian besar perangkat lunak dibuat secara custom-built, serta tidak dapat dirakit dari komponen yang sudah ada. Saat perangkat keras untuk produk berbasis mikroprosesor dirancang dan dibuat, pengembang desain menggambar sebuah skema sederhana dari rangkaian digital, melakukan serangkaian analisis dasar untuk memastikan bahwa fungsi yang tepat dicapai serta kemudian menyesuaikan ke katalog komponen digital. Setiap IC (chip) mempunyai nomor bagian tersendiri, sebuah fungsi yang sudah terdefinisi dan tervalidasi, interface yang didefinisikan dengan baik, serta rangkaian standar tuntutan
Muhammad Rusli, Mira Ziveria
Page 33
terintegrasi. Setelah masing-masing komponen diseleksi, perangkat keras dapat dipesan secara terpisah. Sayangnya para perancang perangkat lunak tidak diberi fasilitas seperti yang digambarkan di atas. Dengan sedikit pengecualian, tidak ada katalog komponen perangkat lunak. Memang memungkinkan untuk memesan perangkat lunak secara terpisah, tetapi tetap merupakan satu kesatuan yang lengkap, bukan sebagai komponen yang dapat dipasangkan ke dalam programprogram yang baru. 3.3.
Komponen Perangkat Lunak
Komponen perangkat lunak dibangun dengan bahasa pemrograman yang memiliki kosakata yang terbatas, sebuah tata bahasa yang dibatasi secara eksplisit serta aturan-aturan syntax dan semantik yang dibentuk secara baik. Pada tingkat yang paling rendah, bahasa-bahasa itu mencerminkan serangkaian instruksi perangkat keras. Pada tingkat sedang, bahasa pemrograman seperti Ada 95, C, atau Smalltalk, dipakai untuk membuat deskripsi prosedural dari program. Pada tingkat yang paling tinggi, bahasa-bahasa tersebut menggunakan ikon grafik atau simbol lain untuk mewakili kebutuhan akan sebuah pemecahan. Instruksi-instruksi yang dapat dieksekusi dibuat secara otomatis. Bahasa tingkat mesin merupakan perwakilan simbolik dari serangkaian instruksi CPU. Ketika pengembang perangkat lunak yang baik memproduksi sebuah program yang didokumentasikan dengan baik dan juga dapat diperbaharui, maka bahasa tingkat mesin dapat secara ekstrem menggunakan memori dan kecepatan eksekusi program secara efisien. Bila program tidak dirancang dengan baik dan hanya memiliki sedikit dokumentasi, maka bahasa tingkat mesin tidak akan menghasilkan sesuatu yang diharapkan. Bahasa tingkat menengah memungkinkan pengembang perangkat lunak serta program tidak tergantung pada mesin. Ketika digunakan penerjemah yang
Prototyping, Fourth Generation
I-STATEMENT STIMIK ESQ | I-4 Volume 2 Nomor 1, Januari 2016 lebih canggih, maka kosakata, tata bahasa, syntax dan semantik dari bahasa tingkat menengah dapat menjadi lebih canggih dari pada bahasa tingkat mesin. Pada kenyataannya, bahasa tingkat menengah meng-compile dan menginterpretasikan hasil bahasa tingkat mesin sebagai keluaran. Meskipun sekarang ini dipakai ratusan bahasa pemrograman, tetapi bahasa pemrograman tingkat menengah yang masih dipakai secara luas di dalam industri kurang dari 10. Bahasa seperti COBOL dan FORTRAN masih tetap dipakai secara luas lebih dari 30 tahun setelah masa pengenalannya. Banyak bahasa pemrograman seperti Ada 95, C, C++, Eiffel, Java dan SmallTalk mendapat sambutan yang cukup antusias. Kode mesin, bahasa assembly (tingkat mesin), bahasa pemrograman tingkat menengah, sering disebut tiga generasi bahasa komputer yang pertama, dengan bahasa-bahasa tersebut, pemrogram harus melihat dengan baik kekhususan struktur informasi maupun kontrol pemrograman itu sendiri. Demikianlah bahasa di dalam tiga generasi yang pertama dimasukkan ke dalam jenis bahasa prosedural.
determinasi merupakan faktor penting dalam menentukan sifat aplikasi perangkat lunak. Content mengarah pada arti dan bentuk dari informasi yang masuk dan keluar. Contohnya, banyak aplikasi bisnis memakai data input yang terstruktur secara tinggi (sebuah database) dan menghasilkan laporan yang sudah terformat. Perangkat lunak yang mengontrol sebuah mesin otomatis (misal kontrol numerik) menerima bentuk-bentuk data diskrit dengan struktur yang terbatas dan menghasilkan perintah mesin individual dalam suksesi yang cepat. Memang cukup sulit untuk menentukan kategori umum untuk aplikasi perangkat lunak. Ketika kompleksitas perangkat lunak mulai muncul, maka penggolongan yang rapi menjadi hilang. Area perangkat lunak berikut ini menunjukkan luasnya aplikasi potensial: 1. Perangkat Lunak Sistem.
Bahasa generasi keempat, disebut juga Bahasa non-prosedural, menggerakkan pengembang perangkat lunak untuk mengkhususkan pada detail prosedural. Bahasa non-prosedural secara tidak langsung menyatakan sebuah program melalui spesifikasi hasil yang diharapkan. Dan tidak pada aksi yang dibutuhkan untuk mencapai hasil tersebut. Perangkat lunak penopang menerjemahkan spesifikasi hasil ke dalam sebuah program mesin yang dapat dieksekusi.
Perangkat lunak sistem merupakan sekumpulan program yang ditulis untuk melayani program-program yang lain. Banyak perangkat lunak sistem (misal kompiler, editor, dan utilitas pengatur file) memproses struktur-struktur informasi yang lengkap namun tetap. Aplikasi-aplikasi sistem yang lain (komponen sistem operasi, driver, prosesor telekomunikasi) memproses secara luas data yang bersifat tetap. Di dalam setiap kasus tersebut, area perangkat lunak sistem ditandai dengan eratnya interaksi dengan perangkat keras komputer; penggunaan oleh banyak pemakai; operasi konkuren yang membutuhkan penjadwalan, tukar menukar sumber dan pengaturan proses yang canggih; struktur data yang kompleks, serta interface eksternal ganda.
3.4.
2. Perangkat Lunak Real-Time.
Aplikasi Perangkat Lunak
Perangkat lunak dapat diaplikasikan ke berbagai situasi di mana serangkaian langkah prosedural (seperti algoritma) telah didefinisikan (pengecualian yang di dapat pada aturan ini adalah sistem pakar dan perangkat lunak jaringan syaraf kecerdasan buatan). Kandungan (content) informasi dam
Muhammad Rusli, Mira Ziveria
Page 34
Program-program yang memonitor/menganalisis/mengontrol kejadian dunia nyata pada saat terjadinya disebut perangkat lunak real-time. Elemen-elemen perangkat lunak real-time mencakup komponen pengumpul data yang mengumpulkan dan memformat informasi dari lingkungan Prototyping, Fourth Generation
I-STATEMENT STIMIK ESQ | I-4 Volume 2 Nomor 1, Januari 2016 eksternal, sebuah komponen analisis yang mentransformasikan informasi pada saat dibutuhkan oleh aplikasi, sebuah komponen kontrol/output yang memberikan respon kepada lingkungan eksternal, serta sebuah komponen monitor yang mengoordinasi semua komponen lain agar respons realtime-nya (khususnya untuk jangkauan dari 1 milidetik sampai 1 menit) dapat terjaga. Perlu diingat bahwa real time berbeda dengan interaksi atau timesharing. Sistem real-time harus merespons di dalam suatu rentang waktu yang tetap. Waktu respons sebuah sistem interaktif (atau timesharing) secara normal dapat diperpanjang tanpa memberikan risiko kerusakan pada hasil. 3. Perangkat Lunak Bisnis. Pemrosesan informasi bisnis merupakan area aplikasi perangkat lunak yang paling luas. Sistem diskrit telah mengembangkan perangkat lunak sistem informasi manajemen (MIS) yang mengakses satu atau lebih database besar yang berisi informasi bisnis. Aplikasi dalam area ini menyusun kembali struktur data yang ada dengan suatu cara tertentu untuk memperlancar operasi bisnis atau pengambilan keputusan manajemen. Sebagai tambahan ke dalam aplikasi pengolahan data konvensional, aplikasi perangkat lunak bisnis juga meliputi penghitungan klien/server serta penghitungan interaktif (misal pemrosesan transaksi point-of sale). 4. Perangkat Lunak Pengetahuan.
Teknik
dan
Ilmu
Perangkat lunak teknik dan ilmu pengetahuan ditandai dengan algoritma number crunching. Perangkat lunak ini memiliki jangkauan aplikasi mulai dari astronomi sampai vulkanologi, dari analisis otomotif sampai dinamika orbit pesawat ruang angkasa, dan dari biologi molekuler sampai pabrik yang sudah diotomatisasi. Tetapi aplikasi yang baru di dalam area teknik dan ilmu pengetahuan sedang bergerak menjauhi algoritma numeris yang konvensional. Computer-aided design,
Muhammad Rusli, Mira Ziveria
Page 35
simulasi sistem dan aplikasi interaktif yang lain, sudah mulai memakai ciri-ciri perangkat lunak sistem genap dan real-time. 5. Embedded Software. Produk pintar telah menjadi bagian umum bagi hampir semua konsumen dan pasar industri. Embedded software ada dalam read-only memory dan dipakai untuk mengontrol hasil serta sistem untuk keperluan konsumen dan pasar industri. Embedded software dapat melakukan fungsi yang terbatas serta fungsi esoterik (misal keypad control untuk microwave) atau memberikan kemampuan kontrol dan fungsi yang penting (contohnya fungsi digital dalam sebuah automobile seperti kontrol bahan bakar, penampilan dashboard, sistem rem, dll) 6. Perangkat Lunak Komputer Personal. Pasar perangkat lunak komputer personal telah berkembang selama dekade terakhir. Pengolah kata, multimedia, hiburan, manajemen database, aplikasi keuangan bisnis personal, jaringan eksternal atau akses database hanya merupakan beberapa saja dari ratusan aplikasi yang ada. 7. Perangkat Lunak Kecerdasan Buatan. Perangkat lunak kecerdasan buatan (Artificial Intelligent_AI) menggunakan algoritma non-numeris untuk memecahkan masalah kompleks yang tidak sesuai untuk perhitungan atau analisis secara langsung. Area kecerdasan buatan yang aktif adalah sistem pakar, disebut juga sistem berbasis ilmu pengetahuan. Tetapi area aplikasi lainnya untuk perangkat lunak kecerdasan buatan adalah pengakuan pola (image dan voice), pembuktian teorema dan permainan game. Di tahun-tahun terakhir, cabang perangkat lunak kecerdasan buatan yang baru, yang disebut artificial neural network (jaringan syaraf tiruan), telah berkembang. Jaringan syaraf mensimulasi struktur prosesproses otak (fungsi syaraf biologis) dan kemudian membawanya kepada perangkat
Prototyping, Fourth Generation
I-STATEMENT STIMIK ESQ | I-4 Volume 2 Nomor 1, Januari 2016 lunak kelas baru yang dapat mengenali polapola yang kompleks serta belajar dari pengalaman-pengalaman masa lalu. 8. Rekayasa Perangkat Lunak. Rekayasa perangkat lunak merupakan sebuah teknologi yang dibentangkan. Banyak pendekatan keteknikan (termasuk software engineering) yang harus berada pada sebuah komitmen dasar menuju kualitas. Manajemen kualitas total serta filosofinya mengangkat budaya pengembangan proses yang terus-menerus, dan budaya itu sendiri membawa kepada pengembangan pendekatan yang semakin matang terhadap rekayasa perangkat lunak. Landasan yang menopang rekayasa perangkat lunak merupakan fokus pada kualitas. Fondasi untuk rekayasa perangkat lunak merupakan bentangan proses. Prosesproses rekayasa perangkat lunak adalah perekat yang menjaga bentanganbentangan teknologi secara bersama-sama dan memungkinkan perkembangan perangkat lunak komputer yang tepat waktu dan rasional. Proses-proses tersebut membatasi kerangka kerja untuk serangkaian area proses kunci (key process area) yang harus dibangun demi keaktifan penyampaian teknologi pengembangan perangkat lunak. Area proses kunci ini membentuk dasar bagi kontrol manajemen proyek perangkat lunak serta membangun konteks dimana metode teknis diaplikasikan, produk usaha (model, dokumen, data, laporan, form dan lain-lain) dihasilkan, fondasi dibangun, kualitas dijamin, dan perubahan diatur secara rapi. Metode-metode rekayasa perangkat lunak memberikan teknik untuk membangun perangkat lunak. Metode-metode itu menyangkut serangkaian tugas yang luas yang menyangkut analisis kebutuhan, konstruksi program, desain, pengujian dan pemeliharaan. Rekayasa perangkat lunak mengandalkan pada serangkaian prinsip dasar yang mengatur setiap area teknologi dan menyangkut aktivitas pemodelan serta
Muhammad Rusli, Mira Ziveria
Page 36
teknik-teknik deskriptif yang lain. Alat-alat rekayasa perangkat lunak memberikan topangan yang otomatis ataupun semiotomatis pada proses-proses dan metodemetode yang ada. Ketika alat-alat tersebut diintegrasikan sehingga informasi yang diciptakan oleh satu alat bisa digunakan oleh yang lain, sistem untuk menopang perkembangan perangkat lunak yang disebut computer-aided software engineering (CASE). CASE menggabungkan perangkat lunak, perangkat keras dan database rekayasa perangkat lunak (repository yang berisi informasi penting tentang analisis, desain, konstruksi program, serta pengujian) untuk menciptakan lingkungan rekayasa perangkat lunak yang analog dengan CAD/CAE (computer-aided design/engineering) untuk perangkat keras. Untuk mengembangkan perangkat lunak secara memadai, proses pengembangan perangkat lunak harus didefinisikan terlebih dahulu. Usaha yang berhubungan dengan rekayasa perangkat lunak dapat dikategorikan ke dalam tiga fase umum dengan tanpa mempedulikan area aplikasi, ukuran proyek atau kompleksitasnya. 1. Fase Definisi (Definition Phase). Fase ini berfokus pada “apa” (what); di mana pada definisi ini pengembang perangkat lunak harus mengidentifikasi informasi apa yang akan diproses, fungsi dan unjuk kerja apa yang dibutuhkan, tingkah laku sistem seperti apa yang diharapkan, interface apa yang akan dibangun, batasan desain apa yang ada, dan kriteria validasi apa yang dibutuhkan untuk mendefinisikan sistem yang sukses. Kebutuhan (requirement) adalah kunci dari sistem dan perangkat lunak yang didefinisikan. Metode yang diaplikasikan selama fase definisi berbeda, tergantung pada paradigma rekayasa perangkat lunak (atau kombinasi paradigma) yang diaplikasikan. Ada tiga tugas utama yang berada dalam bentuk yang sama yaitu: -
Sistem atau rekayasa informasi Perencanaan proyek perangkat lunak
Prototyping, Fourth Generation
I-STATEMENT STIMIK ESQ | I-4 Volume 2 Nomor 1, Januari 2016 -
Analisis kebutuhan
2. Fase Pengembangan Phase).
(Development
Fase ini berfokus pada how (bagaimana); di mana selama masa pengembangan perangkat lunak, teknisi harus mendefinisikan bagaimana data dikonstruksikan, bagaimana fungsi-fungsi diimplementasikan sebagai sebuah arsitektur perangkat lunak, bagaimana detail prosedur akan diimplementasikan, bagaimana interface ditandai (dikarakterisasi), bagaimana rancangan akan diterjemahkan ke dalam bahasa pemrograman (atau bahasa nonprosedural), serta bagaimana pengujian akan dilakukan. Metode-metode yang diaplikasikan selama masa pengembangan program akan bervariasi, tetapi ada tiga tugas teknis yang khusus yang harus selalu ada, yaitu: -
-
-
Rancangan perangkat lunak Pemunculan kode Pengujian perangkat lunak
3. Fase Pemeliharaan (Maintenance Phase). Fase ini berfokus pada perubahan (change), yang dihubungkan dengan koreksi kesalahan, penyesuaian yang dibutuhkan ketika lingkungan perangkat lunak berkembang, serta perubahan sehubungan dengan perkembangan yang disebabkan oleh perubahan kebutuhan pelanggan. Fase pemeliharaan mengaplikasikan lagi langkahlangkah pada fase definisi dan fase pengembangan, tetapi semuanya tetap tergantung pada konteks perangkat lunak yang ada. Ada empat tipe perubahan yang terjadi selama masa fase pengembangan yaitu: -
-
Koreksi. Meskipun dengan jaminan kualitas yang terbaik, sepertinya pelanggan akan tetap menemukan cacat pada perangkat lunak. Pemeliharaan korektif (corrective maintenance) mengubah perangkat lunak, membetulkan cacat atau rusak. Adaptasi. Dari waktu ke waktu,
Muhammad Rusli, Mira Ziveria
Page 37
lingkungan original (contohnya CPU, sistem operasi, aturan-aturan bisnis, karakterisasi produk eksternal) dimana perangkat lunak dikembangkan akan terus berubah. Pemeliharaan adaptif (adaptive maintenance) menghasilkan modifikasi kepada perangkat lunak untuk mengakomodasi perubahan pada kebutuhan fungsional original. Perkembangan (Enhancement). Ketika perangkat lunak dipakai, pemakai/pelanggan akan mengenali fungsi-fungsi tambahan yang memberi mereka keuntungan. Perfective maintenance memperluas perangkat lunak sehingga melampaui kebutuhan fungsi original-nya. Pencegahan. Keadaan perangkat lunak semakin memburuk sehubungan dengan waktu, dan karena itu, preventive maintenance yang sering juga disebut software engineering (rekayasa perangkat lunak), harus dilakukan untuk memungkinkan perangkat lunak melayani kebutuhan para pemakainya. Pada dasarnya preventive maintenance melakukan perubahan pada program komputer sehingga bias menjadi lebih mudah untuk dikoreksi, disesuaikan dan dikembangkan.
Fase dan langkah-langkah yang berhubungan harus diimbangi dengan sejumlah aktivitas pelindung (umbrella activities). Kegiatan-kegiatan khusus di dalam kategori ini menyangkut: -
Kontrol dan pelacakan proyek perangkat lunak Review teknis formal Jaminan kualitas perangkat lunak Penghasilan dan penyiapan dokumen Manajemen reusabilitas Pengukuran Manajemen risiko
Aktivitas pelindung diaplikasikan ke seluruh proses perangkat lunak. Untuk menyelesaikan masalah aktual di dalam sebuah setting industri, rekayasa perangkat lunak atau tim perekayasaan harus
Prototyping, Fourth Generation
I-STATEMENT STIMIK ESQ | I-4 Volume 2 Nomor 1, Januari 2016 menggabungkan strategi pengembangan yang melingkupi lapisan proses, metode, dan alat-alat bantu serta fase-fase generik. Strategi ini sering diacu sebagai model proses atau paradigma rekayasa perangkat lunak. Model proses untuk rekayasa perangkat lunak dipilih berdasarkan sifat aplikasi dan proyeknya, metode dan alatalat bantu yang akan dipakai, dan kontrol serta penyampaian yang dibutuhkan.
Untuk dapat mengembangkan sebuah perangkat lunak secara tepat, ada 4 paradigma yang akan diuraikan dibawah ini, beserta kelebihan dan kekurangannya serta contoh penggunaannya.
Model proses tersebut harus disesuaikan dahulu sebelum digunakan oleh tim proyek perangkat lunak. Untuk melakukannya telah dikembangkan alat bantu teknologi proses untuk membantu organisasi perangkat lunak menganalisa proses mereka yang sedang berlangsung, mengorganisasikan tugas-tugas kerja, mengontrol dan memonitor kemajuan serta mengatur kualitas teknis.
Alat bantu teknologi proses memperbolehkan organisasi perangkat lunak untuk membangun sebuah model kerangka kerja proses umum otomatis, sejumlah tugas dan aktivitas pelindung. Model tersebut, yang biasanya diwakilkan sebagai sebuah jaringan, kemudian dapat dianalisis untuk menentukan aliran kerja khusus dan mengamati struktur proses alternatif yang menyebabkan pengurangan waktu dan biaya pengembangan. Sekali sebuah proses yang diterima diciptakan, alat-alat bantu teknologi proses yang lain dapat dipergunakan untuk mengalokasikan, memonitor dan bahkan mengontrol semua tugas rekayasa perangkat lunak yang didefinisikan sebagai bagian dari model proses. Setiap anggota tim proyek perangkat lunak bisa mempergunakan alat bantu tersebut untuk mengembangkan checklist dari tugas-tugas kerja yang dilakukan, hasil-hasil kerja yang akan diproduksi dan aktivitas penjaminan kualitas yang akan dilakukan. Alat-alat bantu teknologi proses juga dapat dipergunakan untuk mengoordinasi penggunaan alat-alat bantu perangkat lunak komputer bantuan yang sesuai untuk tugas-tugas kerja khusus.
Muhammad Rusli, Mira Ziveria
Page 38
3.5.
Waterfall Model
1. Pendefinisian Pemodelan ini menyangkut aktivitas berikut:
Rekayasa Sistem dan Analysis. Pekerjaan dimulai dari pembentukan kebutuhan dari semua sistem dan mengalokasikan suatu subset kedalam pembentukan perangkat lunak. Rekayasa sistem dan analisis menekankan pada pengumpulan kebutuhan pada level sistem dengan sedikit perancangan dan analisis. Analisis Kebutuhan Perangkat Lunak. Proses pengumpulan kebutuhan diintensipkan ke dalam perangkat lunak. Harus dapat dibentuk domain informasi, fungsi yang dibutuhkan, performa dan antar muka. Hasilnya didokumentasikan dan di-review ke pelanggan. Desain. Proses desain mengubah kebutuhan menjadi bentuk karakteristik yang dimengerti perangkat lunak sebelum dimulai penulisan program. Penulisan Program. Desain harus diubah menjadi bentuk yang dimengerti mesin maka dilakukan langkah penulisan program. Testing. Testing memfokuskan pada logika internal dari perangkat lunak, fungsi eksternal, dan mencari segala kemungkinan kesalahan serta memeriksa apakah sesuai dengan hasil yang diinginkan. Pemeliharaan. Setelah diberikan kepada pelanggan, mungkin ditemui error ketika dijalankan. Atau pelanggan meminta penambahan fungsi, yang menyebabkan faktor pemeliharaan penting dalam penggunaan metode ini.
Prototyping, Fourth Generation
I-STATEMENT STIMIK ESQ | I-4 Volume 2 Nomor 1, Januari 2016 Gambar 1. Waterfall Model 2. Contoh Penggunaan MIL-STD-2167 adalah suatu kasus yang menerapkan model Waterfall. Dasarnya terdiri dari kebutuhan akan pengembangan dan karena mendapatkan kritik dari sistem komputer. Masing-masing dari standar, menetapkan suatu keseragaman proses pengembangan software yang diterapkan berdasarkan model Waterfall. MIL-STD-2167 membangun sebuah software sebagai suatu fase dalam sistem daur kehidupan yang lebih umum.
konsep eksplorasi demonstrasi dan validasi pengembangan secara penuh produksi
Fase produksi dikombinasikan dengan periode overlap. Masa produksi dimulai dari persetujuan produksi sampai sistem terakhir diserahkan dan diterima.” Siklus pengembangan software terdiri dari 6 fase Muhammad Rusli, Mira Ziveria
Penyerahan software didesain suatu computer software configuration item (CSCI) oleh MIL-STD-2167. Fase b.6 berhubungan dengan sistem testing pada klasifikasi sebelumnya. Aspek penting dari MIL-STD2167 adalah bahwa masing-masing fase dari siklus software, standarnya memberikan spesifikasi yang detail. 3. Keuntungan
Menurut MIL-STD-2167, “konsep fase eksplorasi adalah masa perencanaan awal ketika teknik, strategi, dan ekonomi berdasarkan pada penetapan melalui studi komprehensif, pengembangan eksperimen, dan konsep evaluasi. Fase demonstrasi dan validasi adalah periode ketika karakteristik sistem yang besar ditemukan pada studi, pengembangan sistem, pengembangan dari prototype software komputer dan test serta evaluasi. Pengembangan secara penuh adalah suatu fase dimana sistem, software, fasilitas subsistem personal, training perlu untuk mendukung desain, pengetesan dan pengevaluasi.
Page 39
analisis kebutuhan software desain preliminary desain secara detail coding dan testing modul pengumpulan komponen software dan testing konfigurasi software
Metode ini menjadi template bagi pengembangan teknik analisis, desain, coding, testing dan pemeliharaan. Proses didokumentasikan dengan baik. Konteks dokumen kriterianya didefinisikan dengan baik. Prosesnya memasukkan review dan dokumen-dokumen, dapat dihubungkan dengan kebutuhan yang unik dari proyek atau produk khusus. Model ini adalah pengalaman yang nyata dengan prosesnya. Penerapan yang standar.
4. Kelemahan
Prosesnya tidak secara normal melibatkan pemakai dan operator. Prosesnya diperkirakan sangat mahal. Proses ini tidak kompatibel dengan penggunaan bahasa Ada. Pada project yang sebenarnya, jarang mengikuti urutan sekuensial seperti yang diusulkan. Iterasi sering terjadi menyebabkan masalah baru. Sulit bagi pelanggan untuk menentukan semua kebutuhan secara eksplisit. Pelanggan harus sabar, versi yang bekerja dari perangkat lunak yang dimintanya tidak tersedia sebelum sampai pada waktu yang telah ditentukan.
Prototyping, Fourth Generation
I-STATEMENT STIMIK ESQ | I-4 Volume 2 Nomor 1, Januari 2016 3.6.
Prototyping
transaksi tersebut direncanakan dan tertuang dalam anggaran dasar tahunan. Dalam hal ini studi kasusnya dibagi 2, yaitu:
1. Pendefinisian Prototyping adalah proses yang membantu pengembang perangkat lunak dalam membentuk model dari perangkat lunak yang harus dibuat.
Model dapat berupa tiga bentuk:
Bentuk prototype di atas kertas/model berbasis komputer (PC) yang menggambarkan interaksi manusia yang mungkin terjadi. Working prototype, yang mengimplementasikan sebagian dari fungsi yang ditawarkan perangkat lunak. Program jadi yang melakukan sebagian atau seluruh fungsi yang akan dilakukan, tetapi masih dikembangkan.
Prototyping dimulai dari pengumpulan kebutuhan. Dengan perencanaan yang cepat akan dibentuk konstruksi dari prototype-nya. Prototype ini dievaluasi oleh pelanggan dan digunakan untuk mengolah kembali kebutuhan dari perangkat lunak yang dikembangkan. Suatu proses iterasi terjadi, setelah prototype disesuaikan dengan kebutuhan pelanggan.
Pengenalan masalah. Evolusi sistem
3. Keuntungan
Metode prototyping cukup efektif sebagai paradigma dalam rekayasa perangkat lunak. Mendapatkan kebutuhan dan aturan yang jelas yang disetujui pelanggan dalam membuat perangkat lunak.
4. Kelemahan
3.7.
Pelanggan yang melihat working version dari model yang dimintanya tidak menyadari, bahwa mungkin saja prototype dibuat terburu-buru dan rancangan tidak tersusun dengan baik. Pembuat kadang-kadang membuat implementasi sembarangan, karena ingin working version bekerja dengan cepat. Model Spiral
1. Pendefinisian Model spiral telah dibangun sebagai akibat kritikan bahwa model Waterfall menghalangi sedikit sekali yang menggunakan prototyping. Model spiral suatu pendekatan yang mengendalikan risiko untuk sebuah pembuatan software dan meningkatkan feature yang terbaik dari model Waterfall dan Prototyping.
Gambar 2. Prototyping 2. Contoh Penggunaan Penerapan metode prototyping adalah pada sistem pengontrolan biaya. Setiap perusahaan pasti mempunyai anggaran biaya, yang dilakukan untuk memonitor transaksi penting dan menjaga agar tidak keluar dari rencana semula. Secara umum,
Muhammad Rusli, Mira Ziveria
Page 40
Model spiral adalah pendekatan yang paling realistik untuk sistem skala besar. Metode ini menggunakan pendekatan evolusioner, sehingga pelanggan dan pengembang dapat mengerti dan bereaksi terhadap suatu risiko yang mungkin terjadi. Model ini membutuhkan konsiderasi langsung terhadap risiko teknis, sehingga diharapkan dapat mengurangi terjadinya risiko yang besar [4]. Bentuk spiral memberikan gambaran bahwa makin membesar iterasinya, menunjukkan Prototyping, Fourth Generation
I-STATEMENT STIMIK ESQ | I-4 Volume 2 Nomor 1, Januari 2016 semakin lengkap versi perangkat lunak yang digunakan. Selama awal dari sirkuit, objektif, alternatif dan batasan diidentifikasi dan dianalisis.
dll). Pada kuadran D adalah penilaian terhadap hasil engineering dan memungkinkan untuk melanjutkan ke level berikutnya dari model ini.
Model ini memiliki 4 aktivitas penting, yaitu:
Model spiral dari A ke B, dari B ke C, dari C ke D dan dari D kembali ke A (yang tentu saja pada level yang berbeda) sampai pada suatu sistem yang kompleks dibangun/dilakukan tanpa pengecualian.
Perencanaan, penentuan tujuan, alternative, dan batasan. Analisis Risiko, analisis, alternative, dan identifikasi/pemecahan risiko. Engineering, pengembangan level berikutnya dari produk. Customer Evaluation, penilaian terhadap hasil engineering.
Gambar dibawah ini melukiskan bagaimana proses pembuatan software pada model spiral:
2. Contoh Penggunaan Model spiral digunakan dalam pendefinisian dan pengembangan TRW Software Productivity System (TRW-SPS) atau Sistem Produktivitas Software TRW, sebuah kumpulan dari lingkungan pembuatan software. Misi awal pada kesempatan yang sama dengan inisiatif untuk memperbaiki produktivitas dalam seluruh operasi dan suatu hipotesis awal bahwa pembuatan software adalah sebuah area yang tepat untuk menginvestigasi [5]. Tabel 1, 2, dan 3 adalah ringkasan dari penggunaan model spiral untuk 3 tahap pertama dari pendefinisian SPS. Feature terbesar dari masing-masing tahap adalah:
Gambar 3. Model Spiral Pada kuadran A adalah tahap Perencanaan. Pada kuadran B adalah tahap analisis risiko. Kuadran C pengembangan keragaman produk (konsep desain, spesifikasi, desain,
Tahap 0: study pengerjaan Tahap 1: konsep operasi Tahap 2: spesifikasi kebutuhan level utama
Tabel 1: Penggunaan model spiral: Sistem produktivitas software TRW, Tahap 0 Objektif
Produktivitas kenaikan software yang signifikan
Batasan
Pada biaya yang pantas Di dalam konteks kultur TRW
Alternatif
Kontrak pemerintah, keamanan
teknologi,
orientasi masyarakat,
Manajemen: organisasi proyek, perencanaan, pengontrolan. Personal: Staff, training Teknologi: alat-alat, workstation, metode Fasilitas: kantor, komunikasi Risiko
Mungkin tidak ada pengaruh kuat dalam perbaikan
Muhammad Rusli, Mira Ziveria
Page 41
Prototyping, Fourth Generation
I-STATEMENT STIMIK ESQ | I-4 Volume 2 Nomor 1, Januari 2016 Perbaikan mungkin melanggar batasan yang telah ditetapkan Survey internal Solusi risiko
Analisis pemodelan biaya Analisis pengecualian proyek Literatur penelitian Beberapa alternatif yang infisible
Hasil solusi risiko
Sistem waktu-andal tunggal
Campuran dari beberapa alternatif dapat menghasilkan produk yang signifikan. Rencana untuk berikutnya
Faktor dua buah dalam lima tahun
Membutuhkan study selanjutnya untuk menentukan campuran yang baik
fase
Tugas enam orang yang dapat dilaksanakan dalam waktu enam bulan
Komitmen
Survey dan analisis yang lebih baik
Internal, eksternal, ekonomi
Pengembangan konsep operasi perbandingan ekonomi Persediaan fase selanjutnya
Tabel 2: Penggunaan model spiral: Sistem produktivitas software TRW, Tahap 1 Objektif Batasan
Produktivitas software rangkap dalam 5 tahun Penanaman modal $10,000 per orang Dalam konteks kultur TRW
Kontrak pemerintah, teknologi tinggi, orientasi masyarakat, keamanan
Preferensi untuk produk TRW Kantor: private/modular/… Alternatif
Komunikasi: LAN/star/… Terminal: private/shared; smart/dumb Alat-alat: SREM/PSL-PSA/… ; PDL/SADT/… CPU: IBM/DEC/CDC/… Bertemu dengan option pengaruh kuat
Risiko
Harga TRW LAN Harga workstation Survey eksternal ekstensif, kunjungan pemasaran TRW LAN
Solusi risiko
Memproyeksikan harga workstation. Konsep operasi, kantor pribadi, TRW LAN, terminal perorangan, VAX Mulai dengan terminal utama, percobaan dengan workstation yang pintar
Hasil solusi risiko
Memilih alat-alat
Muhammad Rusli, Mira Ziveria
Page 42
Prototyping, Fourth Generation
I-STATEMENT STIMIK ESQ | I-4 Volume 2 Nomor 1, Januari 2016 Membagi usaha kedalam lingkungan pengembangan software (SDE), fasilitas, manajemen
Desain biaya: 15 % tim untuk 1 tahun
Pengembangan prototype SDE Rencana untuk fase berikutnya
Menetapkan suatu proyek untuk menggunakan SDE Menetapkan SDE untuk mendukung proyek
Komitmen
Tabel 3: Penggunaan model spiral: Sistem produktivitas software TRW, Tahap 2 Objektif
Sistem pemakai yang ramah Pengumpulan software, alat-alat kantor Mendukung semua proyek personel Mendukung semua fase daur kehidupan
Batasan
Pelanggan, penyerahan SDE Layanan yang dapat dipercaya
Alternatif
OS: VMS/AT&T Unix/ Berkeley Unix/ISC Host-target/kumpulan alat yang dapat dibawa. Workstation: Zenith/LSI-11/…
Risiko
Kesalahan untuk proyek pemakai yang dibutuhkan, prioritas Sistem pemakai yang tak ramah
Solusi risiko
12 language syndrome
Penampilan Unix, mendukung Workstation Survey proyek pemakai, kebutuhan partisipasi Survey organisasi pemakaian Unix Study workstation Spesifikasi kebutuhan level-pertama Hasil solusi risiko
Host target dengan Unix host Membangun pemakai yang ramah untuk Unix Fokus permulaan pada alt-alat untuk mendukung fase yang jelas Rencana pengembangan
Rencana untuk fase berikutnya Komitmen
untuk alat-alat: SREM, RTT. PDL, alat-alat kantor
untuk front end: menyediakan alat-alat
untuk LAN: fasilitas
Berjalan terus dengan sejumlah rencana
Muhammad Rusli, Mira Ziveria
Page 43
Prototyping, Fourth Generation
I-STATEMENT STIMIK ESQ | I-4 Volume 2 Nomor 1, Januari 2016 3. Keuntungan
Dapat digunakan dengan efektif untuk penambahan sistem pada sebuah pembuatan software. Kebanyakan model yang lama dapat dipertimbangkan lagi sebagai suatu kasus yang khusus dari model spiral. Dengan adanya analisis risiko pada model ini membangun sebuah model yang menghindarkan banyak perbedaan yang timbul pada model-model yang lain.
menjelaskan kebutuhan, yang akan langsung ditranslasikan ke prototipe operasional. Prototipe ini tidak bekerja. Pelanggan mungkin tidak pasti akan hal yang dibutuhkannya, atau tidak dapat ditangani 4GT tool. Metode 4GT dapat dilihat pada gambar dibawah ini:
4. Kelemahan
3.8. GT)
Agak sulit meyakinkan pelanggan besar bahwa pendekatan evolusioner ini dapat diatur. Hal ini membutuhkan keahlian tersendiri. Jika risiko utama tidak ditemukan, maka masalah bisa muncul.
Gambar 4. Metode 4GT 2. Keuntungan •
Fourth-Generation Technique (4th –
1. Pendefinisian Istilah Generasi keempat, mengarah ke perangkat lunak yang umum yaitu, tiap pengembang perangkat lunak menentukan beberapa karakteristik perangkat lunak pada level yang tinggi. Tool akan otomatis menghasilkan program sumber berdasarkan spesifikasi tersebut. Teknik 4GT menekankan pada kemampuan menentukan perangkat lunak pada level mesin dengan bahasa yang lebih alami [2]. Pengembangan perangkat lunak yang mendukung 4GT berisi tool-tool berikut:
Bahasa non prosedural untuk query basis data. Report generation Data manipulation Interaksi layar dan definisi Code generation Kemampuan grafik level tinggi Kemampuan spreadsheet
Metode 4GT dimulai dari pengumpulan kebutuhan. Idealnya pelanggan akan
Muhammad Rusli, Mira Ziveria
Page 44
Untuk aplikasi yang kecil, adalah mungkin untuk langsung berpindah dari pengumpulan kebutuhan ke implementasi menggunakan bahasa non prosedural (Fourth Generation Language-4GL)
3. Kelemahan •
•
•
•
Untuk usaha yang besar, dibutuhkan pengembangan strategi desain untuk sistem, walau digunakan bahasa 4GL Penggunaan 4GL tanpa perencanaan matang (untuk proyek besar), akan menyebabkan kesulitan yang sama (kualitas dan pemeliharaan yang jelek, ketidakpuasan pelanggan) Tool 4GT yang sudah ada tidak cukup canggih untuk mengakomodasikan bahasa alami. Pelanggan-pengembang yang ada pada paradigma sebelumnya tetap menjadi bagian penting dari teknik 4GT.
4. KESIMPULAN •
Perangkat lunak dapat menjadi elemen kunci bagi evolusi sistem dan produk yang berbasis komputer. Perangkat lunak dirancang dari program-program, data, dan dokumen. Masing-masing dari
Prototyping, Fourth Generation
I-STATEMENT STIMIK ESQ | I-4 Volume 2 Nomor 1, Januari 2016
•
•
•
•
•
item-item tersebut terdiri dari sebuah konfigurasi yang diciptakan sebagai bagian dari proses pengembangan perangkat lunak Rekayasa perangkat lunak adalah sebuah disiplin yang mengintegralkan proses, metode dan alat-alat bantu bagi pengembangan proses perangkat lunak komputer. Tujuan rekayasa perangkat lunak adalah menyediakan sebuah kerangka kerja guna membangun perangkat lunak dengan kualitas yang lebih tinggi. Spesifikasi kebutuhan perangkat lunak harus diperhatikan sebagai gabungan dari responsibilitas dengan sistem dan pengembangan perangkat lunak. Keberhasilan dari suatu pekerjaan adalah sesuatu yang memegang peranan penting dalam suatu proses pengembangan perangkat lunak yang efektif. Definisi, kuantifikasi dan penerapan atribut-atribut perangkat lunak harus diperhatikan dalam merencanakan sistem dan pengembangan perangkat lunak. Atribut tersebut menyangkut pengukuran hardware dan software, membuat perkiraan biaya dan jadwal, mengidentifikasi area dan risiko tinggi, memperhatikan kualitas agar dapat dipercaya user, mengukur karakteristik suatu produk perangkat lunak. Pengembangan atribut perangkat lunak dengan memperhatikan teknik dan penerapannya merupakan bagian yang sangat penting dalam mengaplikasikan metode scientific dalam pengembangan perangkat lunak. Semua hal yang dijabarkan diatas harus diperhatikan dalam menerapkan ke-4 paradigma dalam pengembangan perangkat lunak. Masing-masing paradigma pengembangan perangkat lunak mempunyai kelebihan dan kekurangan. Dalam banyak kasus, paradigmaparadigma diatas dapat dikombinasikan dalam rangka usaha pengembangan perangkat lunak.
Muhammad Rusli, Mira Ziveria
Page 45
DAFTAR PUSTAKA
[1] Loudon, J.P. and Loudon, K. C., (2013).
[2] [3]
[4]
[5]
Management Information System, Managing the Digital Firm. Twelfth edition. England: Pearson Education. Sutabri, T., (2012). Analisa Sistem Informasi. Yogyakarta: Andi. Raghu.R and Johanes. G., (2003). Sistem Managemen Database.Yogyakarta: Andi and McGraw-Hill Education. Kroenke, D.M. and Auer, D.J., (2014). Database Processing, Fundamentals, Design, and Implementation.Thirteen Edition. England: Pearson Education. Sutabri, T., (2012). Konsep Sistem Informasi. Yogyakarta: Andi.
Prototyping, Fourth Generation
I-STATEMENT STIMIK ESQ | I-4 Volume 2 Nomor 1, Januari 2016
This page intentionally left blank
Muhammad Rusli, Mira Ziveria
Page 46
Prototyping, Fourth Generation