makalah rpl

Upload: tya-kandya

Post on 10-Jan-2016

10 views

Category:

Documents


1 download

DESCRIPTION

Makalah RPL

TRANSCRIPT

BAB IPENDAHULUANA. Latar BelakangRekayasa perangkat lunak (RPL, atau dalam bahasa Inggris: Software Engineering atau SE) adalah satu bidang profesi yang mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembanganan perangkat lunak dan manajemen kualitas.IEEE Computer Society mendefinisikan rekayasa perangkat lunak sebagai penerapan suatu pendekatan yang sistematis, disiplin dan terkuantifikasi atas pengembangan, penggunaan dan pemeliharaan perangkat lunak, serta studi atas pendekatan-pendekatan ini, yaitu penerapan pendekatan engineering atas perangkat lunakRekayasa atau teknik adalah penerapan ilmu dan teknologi untuk menyelesaikan permasalahan manusia. Hal ini diselesaikan lewat pengetahuan, matematika, dan pengalaman praktis yang diterapkan untuk mendesain objek atau proses yang berguna. Para praktisi teknik professionaldisebut perekayasa (sarjana teknik).Menurut sejarahnya, banyak para ahli yang meyakini kemampuan teknik manusia sudah tertanam secara alami. Hal ini ditandai dengan kemampuan manusia purba untuk membuat peralatan-peralatan dari batu. Dengan kata lain, teknik pada mulanya didasari dengan metode coba dan ralat (trial and error) untuuk menciptakan alat yang mempermudah kehidupan manusi. Seiring dengan berjalannya waktu, ilmu pengetahuan mulai berkembang dan mulai mengubah cara pandang manusia terhadap bagaimana alam kerja.Perkembangan ilmu pengetahuan inilah yang kemudian mengubah cara teknik bekerja hingga seperti sekarang ini. Orang tidak lagi begitu mengandalkan metode coba dan ralat dalam menciptakan atau mendesain peralatan, melainkan lebih mengutamakan ilmu pengetahuan sebagai dasar dalam mendesain.Istilah software engineering, pertama kali digunakan pada akhir tahun 1950-an dan sekitar awal 1960-an. Pada tahun 1968, NATO menyelenggarakan konferensi tentang software engineering di Jerman dan kemudian dilanjutkan pada tahun 1969. Meski penggunaan istilah software engineering dalam konferensi tersebut menimbulkan perdebatan tajam tentang aspek engineering dari pengembangan perangkat lunak, ada banyak pihak yang menganggap bahwa konferensi tersebutlah yang menjadi awal tumbuhnya profesi rekayasa perangkat lunak.B. Rumusan MasalahRumusan masalah dari rekayasa perangkat lunak yaitu : Jelaskan definisi Rekayasa perangkat lunak ? Jelaskan tujuan dari RPL ? Bagaimana ruang lingkup kerja dari RPL ? Bagaimana prospek kerja dari RPL ? Kemukakan faktor dan aspek dari Rekayasa Perangkat Lunak ?

C. Tujuan Penulisan

Adapun tujuan dalam penulisan makalah ini antara lain:

Untuk memenuhi tugas dari dosen mata kuliah TeknikInformatika. Untuk menambah wawasan ilmu pengetahuan bagi semua pembaca termasuk penulis yang telah mencari infomasi perkembangan teknologi dan referensi mengenai teknologi tentang RPL tersebut.

D. Tujuan Penelitian

Mengetahui definisi dari Rekayasa perangkat lunak, Mengetahui tujuan dari Rekayasa perangkat lunak, Menetahui ruang lingkup kerja dari RPL. Mampu mengetahui bagaimana prospek kerja dari RPL ? Dapat mengkemukakan faktor dan aspek dari Rekayasa Perangkat Lunak ?

BAB IIPEMBAHASAN1. Definisi Rekayasa Perangkat LunakDefinisi Rekayasa Perangkat Lunak Menurut Fritz Bauer : Penerapan dan pemanfaatan prinsip-prinsip rekayasa untuk menghasilkan perngkat lunak yang ekonomis yang handal dan bekerja secara efisisen pada mesin-mesin yang nyata Karakteristik Perangkat Lunak Dikembangkan atau direkayasa, tidak dibuat dalam pengertian pada umumnya. Tidak lapuk atau mengalami penyusutan secara fisis.Pada umumnya dibuat secara khusus, tidak disusun dari komponen-komponen yang telah ada. Problem Perangkat Lunak Perangkat lunak tidak berfungsi secara baik (kualitas yang kurang).Ketidaktepatan penjadwalan proses dan biaya produksi. Produktivitas yang belum dapat memenuhi tuntutan kebutuhan pemakai. Pemeliharaan yang sukar. Perkembangan teknologi perangkat keras di luar kemampuan programmer untuk membuat perangkat lunak yang dapat memanfaatkan potensi perangkat keras secara maksimal.Rekayasa perangkat lunak (RPL atau SE [Software Engineering]) adalah satu bidang profesi yang mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembangan perangkat lunak, dan sebagainya.Pada tahun 2004, istilah rekayasa perangkat lunak secara umum digunakan dalam tiga arti, yaitu:1) Sebagai istilah umum untuk berbagai kegiatan yang dulunya bernama pemrograman atau analisis sitem,2) Sebagai istilah yang luas untuk analisis teknis dari semua aspek-aspek praktis yang bertentangan dengan teori pemrograman computer, dan3) Sebagai istilah yang mewujudkan advokasi suatu pendekatan spesifik ke pemrograman computer, satu hal yang mendesak yang diperlakukan sebagai profesi rekayasa daripada sebuah seni atau kerajinan, dan advokasi dari kodifikasi praktis yang disarankan dalam bentuk metodologi rekayasa perangkat lunak.Rekayasa perangkat lunak adalah disiplin rekayasa dengan perangkat lunak yang dikembangkan. Biasanya proses melibatkan penemuan pada keinginan klien, menyusunnya di dalam daftar kebutuhan, perancangan, pengodean, pengujian, dan pengintegrasian bagian yang terpisah, menguji keseluruhan, penyebaran dan pemeliharaan perangkat lunak. Disiplin masih berada dalam pertumbuhannya (tahap awal perkembangan/pengembangan) sebagai suatu disiplin rekayasa. Kita tidak pernah mempunyai pengalaman yang cukup, maupun kumpulan data empiris yang cukup untuk secara sistematis memahami dan meramalkan siklus hidup proyek perangkat lunak.The Software Engineering Body of Knowledge (SWEBOK) membagi rekayasa perangkat lunak ke dalam 10 area pengetahuan, yaitu:1) Kebutuhan perangkat lunak,2) Perancangan perangkat lunak3) Konstruksi perangkat lunak,4) Pengujian perangkat lunak,5) Pemeliharaan perangkat lunak,6) Manajemen konfigurasi perangkat lunak,7) Manajemen perangkat lunak,8) Proses perangkat lunak,9) Metode dan tool perangkat lunak, dan10) Kualitas perangkat lunak.

2. Perkembangan Rekayasa Perangkat Lunak

Meskipun baru dicetuskan pada tahun 1968, namun RPL telah memiliki sejarah yang cukup panjang. Dari sisi disiplin ilmu, RPL masih relatif muda dan akan terus berkembang. Arah perkembangan yang saat ini sedang dikembangkan antara lain meliputi :

3. Tujuan Rekayasa Perangkat Lunak

Dari gambar diatas dapat diartikan bahwa bidang rekayasa akan selalu berusaha menghasilkan output yang kinerjanya tinggi, biaya rendah dan waktu penyelesaian yang tepat. Secara lebih khusus kita dapat menyatakan tujuan RPL adalah :a) Memperoleh biaya produksi perangkat lunak yang rendah.b) Menghasilkan perangkat lunak yang kinerjanya tinggi, andal dan tepat waktu.c) Menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis platform.d) Menghasilkan perangkat lunak yang biaya perawatannya rendah.

4. Ruang Lingkup Rekayasa Perangkat LunakRuang lingkup RPL dapat digambarkan sebagai berikut :

Software requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak. Software design mencakup proses penentuan arsitektur, komponen, antarmuka, dan karakteristik lain dari perangkat lunak. Software construction berhubungan dengan detil pengembangan perangkat lunak, termasuk algoritma, pengkodean, pengujian, dan pencarian kesalahan. Software testing meliputi pengujian pada keseluruhan perilaku perangkat lunak. Software maintenance mencakup upaya-upaya perawatan ketika perangkat lunak telah dioperasikan. Software configuration management berhubungan dengan usaha perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu. Software engineering management berkaitan dengan pengelolaan dan pengukuran RPL, termasuk perencanaan proyek perangkat lunak. Software engineering tools and methods mencakup kajian teoritis tentang alat bantu dan metode RPL. Software engineering process berhubungan dengan definisi, implementasi, pengukuran, pengelolaan, perubahan dan perbaikan proses RPL. Software quality menitikberatkan pada kualitas dan daur hidup perangkat lunak.

5. Faktor-Faktor Rekayasa Perangkat LunakBerbagai faktor yang memengaruhi perncanaan, manajemen, dan pemilihan aktivitas SQM dan teknik-teknik adalah sebagai berikut:1) Daerah system yang akan ditempati perangkat lunak (safety-critical, mission-critical, dan business critical),2) Kebutuhan system dan perangkat lunak,3) Komponen komersial (eksternal) atau standar (internal) untuk digunakan di dalam sistem,4) Standar rekayasa perangkat lunak spesifik yang bisa diterapkan,5) Metode dan tool perangkat lunak yang digunakan untuk pengembangan dan pemeliharaan, dan untuk peningkatan dan evaluasi kualitas,6) Anggaran, staf, organisasi proyek, rencana, dan penjadwalan dari semua proses-proses,7) Pengguna yang diharapkan dan penggunaan system, dan8) Tingkat integritas system.Informasi pada factor ini memengaruhi bagaimana proses SQM diorganisasikan dan didokumentasikan, bagaimana aktivitas SQM spesifik dipilih, dan sumber daya apa yang diperlukan dan yang akan memaksakan batas atau usaha.a. KeterkaitanDalam situasi dengan kegagalan system yang mungkin mempunyai konsekuensi yang sangat hebat, keterkaitan keseluruhan (perangkat keras, perangkat lunak, dan manusia) adalah kebutuhan kualitas yang utama disamping kemampuan dasar. Keterkaitan perangkat lunak mencakup karakteristik toleransi kesalahan, keselamatan, keamanan, dan usabilitas. Keandalan juga menjadi sebuah ukuran yang dapat digambarkan dalam hubungannya dengan keterkaitan.Badan literature untuk system harus sangat dapat tergantung (kepercayaan tinggi atau system integritas tinggi). Istilah untuk mekanisme tradisional dan system elektrik yang tidak boleh mencakup perangkat lunak telah di import untuk mendiskusikan ancaman atau risiko, integritas system, dan konsep yang berhubungan, dan mungkin menemukan acuan yang dikutip untuk bagian ini.b. Tingkat integritas perangkat lunakTingkat integritas ditentukan berdasarkan pada konsekuensi kegagalan dari perangkat lunak. Dalam perangkat lunak yang mementingkan keselamatan atau keamanan, teknik-teknik seperti analisis risiko untuk keselamatan atau analisis ancaman untuk keamanan mungkin digunakan untuk mengembangkan suatu aktivitas perencanaan yang akan mengidentifikasi daerah yang potensial terhadap kekacauan. Sejarah kegagalan dari perangkat lunak juga bisa membantu mendeteksi kesalahan dan menilai kualitas. Tingkatan integritas ( miasalnya, gradasi integritas) akan di usulkan di dalam suatu perangkat lunak.c. Faktor TimTim dapat digambarkansebagai suatu kelompok perseorangan yang telah terorganisasi untuk kepentingan bekerja bersama untuk mencapai sekumpulan tujuan yang tidak bisasecara efektif dicapai oleh perseorangan yang bekerja sendiri. Efektivitas suatu tim mungkin diukur dalam hasil terhadap penerimaa pelanggan, kemampuan tim, dan kepuasan perseorangan.Masukan perseorangan dan organisasi dengan mantap memengaruhi masukan tim. Proses pekerjaan tim ditandai oleh usaha yang mengarah pada tujuan, pengetahuan dan keahlian yang digunakan, strategi pengadopsian, dadan dinamika kelompok. Konstruksi tim dan manajemen merupakan sebuah tantangan kritis di dalam pemecahan masalah yang dikendalikan perangkat lunak (software-driven). Sebuah tim akan memerlukan: Identifikasi tujuan, Definisi strategi, Manajemen tugas, Manajemen waktu, Penempatan sumber daya, Komposisi tim antardispilin ilmu, Waktu control, Pelatihan, Komunikasi tim, Keterpaduan tim, dan Evaluasi dan jaminan kualitas.

d. Faktor PelangganAda suatu kebenaran yang mutlak, yaitu rekayasa perangkat lunak harus bisa menjadi pengendali pelanggan (customer-driver). Bagian ini mempertimbangkan beberapa karakteristik dan teknik khusus dari lingkungan pengembangan perangkat lunak yang dikendalikan pelanggan (customer-driven), yang meliputi:a) Pengembangan yang dikendalikan pelanggan bersifat padat kebutuhan dan dikendalikan fitur Karena kebutuhan pelanggan adalah prioritas yang tertinggi, kebutuhan pelanggan harus secara hati-hati dikumpulkan, dikenali, ditetapkan, divisualisasikan, dan secara internal, diprioritaskan anatarkebutuhan sendiri. Sebagai konsekuensinya, kebutuhan rekayasa menjadi kunci tahap strategis antarproses rekayasa perangkat lunak.b) Pengembangan yang dikendalikan pelanggan bersifat iterative Pengembangan iterative menjadi penting karena mengizinkan umpan balik yang luas dan pemberian jawaban untuk umpan balik.c) Pengembangan yang dikendalikan pelanggan bertujuan untuk mengembangkan aplikasi-aplikasi terbaik (killer application) Teknik ini adalah satu-satunya cara untuk bertahan pada pasar yang sangat tinggi kompetisisnyad) Pengembangan yang dikendalikan pelanggan sangat menghargai waktu pemasaran. Waktu berarti kesempatan sehingga aplikasi harus direkayasa secara cepat dan efisien, cukup untuk menangkap peluang pasar yang bergantung waktu.e) Pengembangan yang dikendalikan pelanggan berusaha untuk memberikan kepuasan pada banyak stakeholder melalui situasi yang saling menguntungkan. Setiap aktivitas pengembangan perangkat lunak melibatkan banyak orang, masing-masing mempunyai tujuan dan pandangan yang berbeda. Oleh karena itu, rekonsiliasi yang efektif dari konflik atas kebutuhan system menjadi sebuah factor kunci dalam meyakinkan kepuasan pelanggan.f) Pengembangan yang dikendalikan pelanggan berfokus pada kualitas produk dan layanan. Jaminan kualitas menyiratkan pengaturan proses perangkat lunak, seperti pengembang dan pelanggan yang dicukupi dengan kualitas dan konsistensi barang-barang atau jasa yang dihasilkan atau yang disediakan. Pengembangan yang dikendalikan pelanggan memandang pelanggan sebagai mitra, tidak hanya sebagai pembeli. Dalam meyakinkan harapan pelanggan, pelanggan perlu duduk bersama dengan pengembang pada masing-masing tahap proses pengembangan perangkat lunak. Hal tersebut dapat memperkecil resiko dan mengurangi siklus waktu selama proses pengembangan.g) Pengembangan yang dikendalikan pelanggan dapat dikostumisasi, dipersonalisasi, dan sesuai dengan kebutuhan individu dan perubahan pada kebutuhan. Tidak ada dua bisnis atau perseorangan yang sama (permintaan dan kebutuhan bertukar-tukar dan meningkat bahkan antarorganisasi tunggal). Mengenali perbedaan perseorangan dan keanekaragaman organisasi menjadi suatu kerumitan dalam penyediaan solusi yan efektif.h) Pengembangan yang dikendalikan pelanggan diarahkan oleh psikologi kognitif, Psikologi kognitif mendapat pemikiran seperti bahasa untuk program sumber perangkat lunak. Oleh karena itu, suatu pendekatan pengembangan perangkat lunak yang dikendalikan pelanggan perlu menguji luas perancangan perangkat lunak denagn teliti untuk mencerminkan kebutuhan pelanggan sebagai kebutuhan yang dirasakan oleh pelanggan.i) Pengembangan yang dikendalikan pelanggan harus informative dan mudah diakses, Perancangan suatu solusi perangkat lunak di dalam era pelanggan (customer age) memerlukan layanan pelanggan yang penuh, dan mendukung bantuan yang terdokumentasi dengan baik dan web interaktif. Aplikasi tidak menyediakan informasi pendukung, seperti subjek kepada keluhan pelanggan, ketidakpuasan, dan penolakan.j) Keamanan dan privasi adalah suatu pertimbangan dalam solusi yang dikendalikan pelanggan. Untuk mendapatkan kepercayaan pelanggan, perekayasa perangkat lunak harus merancang system yang dapat dipercaya, dan peka akan invasi privasi atau serangan peretas (hacker). Keamanan dan privasi merupakan perhatian utama dari pelanggan perangkat lunak.

6. Aspek Rekayasa Perangkat LunakAspek multidisiplin ilmu factor manusiamenjelma pada tingkat masalah, isu yang dibahas adalah disiplin yang terkait dengan orang-orang yang dapat membantu seseorang untuk memahami dasar masalah. Pada tingkat solusi, perhatian yang utama adalah disiplin yang terkait dengan orang-orang yang memungkinkan seseorang untuk ditunjuk di dalam pemecahan masalah yang lebih baik.Suatu proyek dapat dipikirkan sebagai kelompok trugas dan aktivitas yang dilakukan di dalam periode dan pertemuan spesifik. Sebuah proyek melibatkan suatu kumpulan sumber daya temporer yang ada bersama-sama untuk memecahkan sebuah masalah spesifik.Tatnall dan Shackleton (1995), Rosenau (1998), dan Meredith dan Mantel (1995) mengidentifikasi beberapa fitur karakteristik proyek dan menjelaskn bahwa proyek itu unik. Proyek harus diselesaikan pada periode waktu tertentu. Definisi proyek yang benar menjadi penting pada manajemen proyek. Definisi proyek membantu menetapkan suatu lingkup yang jelas untuk proyek dan bertindak sebagai dasar perencanaan proyek.Langkah-langkah yang diperlukan untuk menggambarkan sebuah awal proyek dilakukan dengan menggambarkan peluang proyeknya, penyediaan uraian latar belakang yang menerapkan kebutuhan pada proyek, dan kemudian menggambarkan tujuan untuk proyek. Setelah mengidentifikasi stakeholder dan sumber daya yang tersedia, seseorang harus mengidentifikasi proyek yang terkait yang akan memengaruhi atau dipengaruhi oleh proyek dalam pertimbangan.Seseorang kemudian mengidentifikasi kriteria-kriteria untuk memutuskan apakah suatu proyek itu baik, pemahamannya mencakup batasan proyek, asumsi, dan risiko, seerti halnya implikasi seperti batasan dan asumsi untuk risiko proyek. Manajemen proyek dapat digambarkan sebagai sekumpulan prinsip, metode, alat, dan teknik untuk perencanaan, pengorganisasian, penempatan pekerja, pengarahan, dan pengendalian aktivitas yang berkaitan dengan proyek untuk mencapai tujuan proyek di dalam waktu, di bawah biaya, dan batasan kinerja.7. Prospek Kerja Rekayasa Perangkat LunakSebagai salah satu disiplin ilmu yang mempelajari tentang teknologi khusunya yang berhubungan dengan software, prospek kerja RPL cukup cerah banyak sekali profesi yang berhubungan dengan RPL yakni :1) Game Developer - Dengan berbagai bekal ilmu yang diperolehnya termasuk computer graphic, human computer interaction, dll, seorang yang menggeluti RPL juga dapat berperan sebagai pengembang perangkat lunak untuk multimedia game.2) Software Tester - Terkait dengan ukuran perangkat lunak, ia dapat juga berperan khusus sebagai penguji perangkat lunak yang bertanggung jawab atas kebenaran fungsi dari sebuah perangkat lunak.3) Computer Network / Data Communication Engineer - Bertugas merancang arsitektur jaringan, serta melakukan perawatan dan pengelolaan jaringan dalam suatu instansi atau perusahaan.4) Web Engineer / Web Administrator - Bertugas merancang dan membangun website beserta berbagai layanan dan fasilitas berjalan di atasnya. Ia juga bertugas melakukan pemeliharaan untuk website tersebut dan mengembangkannya.5) Software Engineer - Berperan dalam pengembangan perangkat lunak untuk berbagai keperluan. Misalnya perangkat lunak untuk pendidikan, telekomunikasi, bisnis, hiburan dan lain-lain, termasuk perangkat lunak untuk model dan simulasi.6) System Analyst dan System Integrator - Berperan dalam melakukan analisis terhadap sistem dalam suatu instansi atau perusahaan dan membuat solusi yang integratif dengan memanfaatkan perangkat lunak.7) Intelligent System Developer - Dengan berbagai teknik artificial intelligence yang dipelajarinya, seorang sarjana informatika juga dapat berperan sebagai pengembang perangkat lunak yang intelejen seperti sistem pakar, image recognizer, prediction system, data miner, dll8) Programmer - Baik sebagai system programmer atau application developer, sarjana informa tika sangat dibutuhkan di berbagai bidang, misalnya bidang perbankan, teleko munikasi, industri IT, media, instansi pemerintah, dan lain-lain.9) Konsultan IT - Berperan dalam perencanaan dan pengevaluasian penerapan IT pada sebuah organisasi.10) Database Engineer / Database Administrator - Berperan dalam perancangan dan pemeliharaan basis data (termasuk data warehouse) untuk suatu instansi atau perusahaan.

8. Rekayasa Perangkat Lunak dan Pemecahan Masalah

Secara konsep, rekayasa perangkat lunak memiliki kedekatan dengan prinsip-prinsip pemecahan masalah. Pemahaman tentang masalah, strategi dan proses pemecahan masalah, serta pendekatan sistem pada pemecahan masalah akan sangat membantu proses rekayasa perangkat lunak.

Masalah dan Gejala

Masalah (problem) adalah perbedaan antara kondisi yang terjadi dan kondisi yang diharapkan atau boleh juga diartikan sebagai perbedaan antara kondisi sekarang dengan tujuan yang diinginka. Sebagai contoh seorang siswa berharap memperoleh nilai di atas 80 untuk ujian mata pelajaran Pemrograman C++, namun pada kenyataannya dia hanya memperoleh nilai 60. Adanya perbedaan ini menunjukkan adanya masalah. Seringkali kita kesulitan membedakan antara gejala dan masalah.

Gejala adalah tanda/petunjuk terjadinya suatu masalah. Perhatikan seorang yang berprofesi sebagai dokter. Seorang dokter dalam usaha mengobati penyakit pasien selalu bertanya dulu tentang gejala-gejala yang dirasakan pasien kemudian menyimpulkan bahwa pasien menderita penyakit tertentu dan menentukan obat yang tepat. Pusing, demam, batuk, dan pilek merupakan gejala atau tanda dari penyakit flu. Apabila dokter hanya member obat sakit kepala, maka penyakit flu tidak akan sembuh. Satu masalah mungkin memiliki satu gejala tetapi mungkin juga lebih, seperti gambar dibawah ini :

Mungkin kita bertanya-tanya apa hubungan masalah dan gejala dengan RPL. Perangkat lunak yang merupakan hasil dari RPL merupakan alat bantu yang digunakan untuk menyelesaikan tugas / masalah tertentu. Apabila kita tidak mengetahui dengan benar masalahnya mustahil kita dapat menentukan bagaimana menyelesaikannya. Dan, untuk mengetahui dengan baik masalah, maka pengetahuan tentang gejala dari masalah menjadi sangat penting.

Tipe Tipe Masalah

Pemecahan Masalah

Secara umum proses pemecahan masalah dapat dilakukan dengan empat tahapan utama yaitu :1) Memahami dan mendefinisikan masalah.Bagian ini merupakan bagian yang sangat penting karena menjadi awal dari seluruh proses pemecahan masalah. Tujuan pada bagian ini adalah memahami masalah dengan baik dan menghilangkan bagian-bagian yang dirasa kurang penting.

2) Membuat rencana untuk pemecahan masalahPada bagian ini ada dua kegiatan penting yaitu :a) mencari berbagai cara penyelesaian yang mungkin diterapkanb) membuat rencana pemecahan masalah

Penyelesaian suatu masalah biasanya tidak hanya satu tapi mungkin bisa beberapa macam. Sebagai ilustrasi, apabila kita berada di kota Surabaya dan ingin pergi ke Jakarta, maka banyak cara yang mungkin bisa dilakukan, misalnya kita bisa menempuh dengan angkutan darat, laut atau udara. Dengan angkutan darat kita bisa menggunakan kereta api, bus atau angkutan yang lain. Jalurnya pun kita bisa lewat jalur utara, tengah atau selatan. Jadi banyak sekali cara penyelesaian yang bisa kita kembangkan. Masing-masing mempunyai karakteristik sendiri-sendiri. Dari sekian banyak penyelesaian ini kita harus memilih satu yang berdasarkan persyaratan tertentu merupakan cara yang paling baik untuk menyelesaikan permasalahan. Setelah terpilih, maka kita dapat membuat rencana kasar (outline) penyelesaian masalah dan membagi masalah dalam bagian-bagian Rekayasa Perangkat Lunak yang lebih kecil. Rencana kasar (outline) penyelesaian masalah hanya berisi tahapan-tahapan utama penyelesaian masalah.

3) Merancang dan menerapkan rencana untuk memperoleh cara penyelesaianPada bagian ini rencana kasar penyelesaian masalah diperbaiki dan diperjelas dengan pembagian dan urutan rinci yang harus ditempuh dalam penyelesaian masalah.

4) Memeriksa dan menyampaikan hasil dari pemecahan masalahBagian ini bertujuan untuk memeriksa apakah akurasi (ketepatan) hasil dari cara yang dipilih telah memenuhi tujuan yang diinginkan. Selain itu juga untuk melihat bagaimana daya guna dari cara yang dipilih yang dipilih.

9. Model Rekayasa Perangkat LunakPada rekayasa perangkat lunak, banyak model yang telah dikembangkan untuk membantu proses pengembangan perangkat lunak. Model-model ini pada umumnya mengacu pada model proses pengembangan sistem yang disebut System Development Life Cycle (SDLC).

Setiap model yang dikembangkan mempunyai karakteristik sendiri- sendiri. Namun secara umum ada persamaan dari model-model ini, yaitu: Kebutuhan terhadap definisi masalah yang jelas. Input utama dari setiap model pengembangan perangkat lunak adalah pendefinisian masalah yang jelas. Semakin jelas akan semakin baik karena akan memudahkan dalam penyelesaian masalah. Oleh karena itu pemahaman masalah merupakan bagian penting dari model pengembangan perangkat lunak. Tahapan-tahapan pengembangan yang teratur. Meskipun model-model pengembangan perangkat lunak memiliki pola yang berbeda-beda, biasanya model-model tersebut mengikuti pola umum analysis design coding testing - maintenance. Stakeholder berperan sangat penting dalam keseluruhan tahapan pengembangan. Stakeholder dalam rekayasa perangkat lunak dapat berupa pengguna pemilik, pengembang, pemrogram dan orang-orang yang terlibat dalam rekayasa perangkat lunak tersebut. Dokumentasi merupakan bagian penting dari pengembangan perangka lunak. Masing-masing tahapan dalam model biasanya menghasilkan sejumlah tulisan, diagram, gambar atau bentuk-bentuk lain yang harus didokumentasi dan merupakan bagian tak terpisahkan dari perangkat lunak yang dihasilkan. Keluaran dari proses pengembangan perangkat lunak harus bernilah ekonomis. Nilai dari sebuah perangkat lunak sebenarnya agak susah di- rupiah-kan Namun efek dari penggunaan perangkat lunak yang telah dikembangkan haruslah memberi nilai tambah bagi organisasi. Hal ini dapat berupa penurunan biaya operasi, efisiensi penggunaan sumberdaya, peningkatan keuntungan organisasi, peningkatan image organisasi dan lain-lain

Ada banyak model pengembangan perangkat lunak, antara lain :The Waterfall Model, Joint Application Development (JAD), Information Engineering (IE), Rapid Application Development (RAD), Prototyping, Unified Process (UP), Structural Analysis and Design (SAD) d Framework for the Application of System thinking (FAST) The Waterfall Model, Prototyping, Unified Process (UP).1. The waterfall modelModel siklus hidup (life cycle model) adalah model utama dan dasar dari banyak model. Salah satu model yang cukup dikenal dalam dunia rekayasa perangkat lunak adalah The Waterfall Model. Ada 5 tahapan utama dalam The Waterfall Model seperti terlihat pada Gambar 2.3. di sebut Waterfall ( berarti Air Terjun) memang diagram tahapan prosesnya mirip dengan air terjun yang bertingkat. Tahapan-tahapan dalam The Waterfall Model secara ringkas adalah sebagai berikut :a) Tahap investigasi dilakukan untuk menentukan apakah terjadi suatu masalah atau adakah peluang suatu sistem informasi dikembangkan. Pada tahapan ini studi kelayakan perlu dilakukan untuk menentukan apakah sistem informasi yang akan dikembangkan merupakan solusi yang layak.

b) Tahap analisis bertujuan untuk mencari kebutuhan pengguna dan organisasi serta menganalisa kondisi yang ada (sebelum diterapkan sistem informasi yang baru).

c) Tahap disain bertujuan menentukan spesifikasi detil dari komponen- komponen sistem informasi (manusia, hardware, software, network dan data) dan produk-produk informasi yang sesuai dengan hasil tahap analisis.

d) Tahap implementasi merupakan tahapan untuk mendapatkan atau mengembangkan hardware dan software (pengkodean program), melakukan pengujian, pelatihan dan perpindahan ke sistem baru.

e) Tahapan perawatan (maintenance) dilakukan ketika sistem informasi sudah dioperasikan. Pada tahapan ini dilakukan monitoring proses, evaluasi dan perubahan (perbaikan) bila diperlukan.

Gambar The Waterfall Model

2. Prototyping modelPrototyping adalah salah satu pendekatan dalam rekayasa perangkat lunak yang secara langsung mendemonstrasikan bagaimana sebuah perangkat lunak atau komponen-komponen perangkat lunak akan bekerja dalam lingkungannya sebelum tahapan konstruksi aktual dilakukan (Howard, 1997). Prototyping model dapat diklasifikasikan menjadi beberapa tipe seperti terlihat pada gambar dibawah ini.

Reusable prototype : Prototype yang akan ditransformasikan menjadi produk final. Throwaway prototype : Prototype yang akan dibuang begitu selesai menjalankan maksudnya. Input/output prototype : Prototype yang terbatas pada antar muka pengguna (user interface). Processing prototype : Prototype yang meliputi perawatan file dasar dan proses-proses transaksi. System prototype : Prototype yang berupa model lengkap dari perangkat lunak.Tahap-tahap dalam prototyping boleh dikata merupakan tahap-tahap yang dipercepat. Strategi utama dalam prototyping adalah kerjakan yang mudah terlebih dahulu dan sampaikan hasil kepada pengguna sesegera mungkin. Tahapan-tahapan secara ringkas dapat dijelaskan sebagai berikut: Identifikasi kandidat prototyping. Kandidat dalam kasus ini meliputi user interface (menu, dialog, input dan output), file-file transaksi utama, dan fungsi-fungsi pemrosesan sederhana. Rancang bangun prototype dengan bantuan software seperti word processor, spreadsheet, database, pengolah grafik, dan software CASE (Computer-Aided System Engineering). Uji prototype untuk memastikan prototype dapat dengan mudah dijalankan untuk tujuan demonstrasi. Siapkan prototype USD (Users System Diagram) untuk mengidentifikasi bagian-bagian dari perangkat lunak yang di-prototype-kan. Evaluasi dengan pengguna untuk mengevaluasi prototype dan melakukan perubahan jika diperlukan. Transformasikan prototype menjadi perangkat lunak yang beroperasi penuh dengan melakukan penghilangan kode-kode yang tidak dibutuhkan, penambahan program-program yang memang dibutuhkan dan perbaikan dan pengujian perangkat lunak secara berulang.

Tahapan-tahapan prototyping model (Harris, 2003)

3. Unified Proces dan Unified Modeling LanguangeUnified Process (UP) atau kadang disebut sebagai Unified Software Development Process (USDP) adalah kerangka proses pengembangan yang bersifat use-case-driven, berpusat pada arsitektur perangkat lunak, interatif dan tumbuh-kembang (Alhir, 2005). Kerangka pengembangan ini termasuk baru dalam metodologi pengembangan perangkat lunak. UP dapat diaplikasikan pada berbagai skala proyek, mulai dari skala kecil sampai dengan skala besar.

10. Tahap-tahap Rekayasa Perangkat Lunak

Seperti telah disebutkan, meskipun dalam pendekatan berbeda-beda, namun model-model di atas memiliki kesamaan, yaitu menggunakan pola tahapa analysis design coding(construction) testing maintenance.AnalisisAnalisis sistem adalah sebuah teknik pemecahan masalah yang menguraikan sebuah sistem menjadi komponen-komponennya dengan tujuan mempelajari seberapa bagus komponen-komponen tersebut bekerja dan berinteraksi untuk meraih tujuan mereka.Analisis mungkin adalah bagian terpenting dari proses rekayasa perangkat lunak. Karena semua proses lanjutan akan sangat bergantung pada baik tidaknya hasil analisis. Ada satu bagian penting yang biasanya dilakukan dalam tahapan analisis yaitu Pemodelan proses bisnis. Model proses adalah model yang memfokuskan pada seluruh proses di dalam sistem yang mentransformasikan data menjadi informasi (Harris, 2003). Model proses juga menunjukkan aliran data yang masuk dan keluaran pada suatu proses. Biasanya model ini digambarkan dalam bentu Diagram Arus Data (Data Flow Diagram / DFD). DFD meyajikan gambaran apa yang manusia, proses dan prosedur lakukan untuk mentransformasi data menjadi informasi.

Tahapan dan aktifitas dalam analisis.

Umumnya ada empat notasi yang sering digunakan dalam DFD seperti tampak gambar dibawah ini :External EntityExternal Entity melambangkan sumber daya ( dari mana data berasa) atau Penerima Informasi ( Tujuan ahir dari data) Contoh external Entity antara lain konsumen yang memesan suatu produk, manajer yang mengevaluasi laporan penjualan mingguan, dan lain-lain.

ProcessProses adalah serangkaian langkah yang dilakukan untuk memanipulasi data, misalnya pengumpulan, pengurutan, pemilihan, pelaporan, peringkasan,analisis, dan lain-lain.

Data StoreData Store adalah untuk menyimpan data untuk digunakan kemudian. Nama yang ada pada data store iniMerupakan Abstraksidari data yang di simpan. Namun detil etim data apa saja yang ada, bagaimana cara akses, atau bagaimana mengorganisasinya tidak dijelaskan dalam notasi ini

Data FlowData Flow menunjukkan aliran data dari suatu tempat ke tempat lain. Perpindahan data ini dapat dari external entity ke proses ke data store. Dalam penggambaranya setiap data flow harus diberi lebel yang menunjukkan data apa yang mengalir.

Notasi pada DFD

Dalam pembuatan DFD ada beberapa tahapan yang dilakukan secara berurutan gambar dibawah ini menunjukkan urutan tahapan tersebut.

Context diagram adalah DFD ruang lingkup dari sistem yang menunjukkan batas-batas sistem, external entitiy yang berinteraksi dengan sistem dan aliran data utama antara external entity dengan sistem. Context diagram menggambarkan keseluruhan sistem dalam suatu proses tunggal. Gambar dibawah ini menunjukkan sebuah contoh context diagram.

Context diagram sistem pemesanan makanan (Hoffer et al.,2002).

Selanjutnya adalah merinci kontek diagram tersebut ke DFD level 0. DFD Level 0 adalah DFD yang mempresentasikan proses-proses, data flow dan data storage utama dalam sistem. DFD level 0 ini akan digunakan sebagai dasar untuk membangun DFD yang level bawahnya (level1, 2, 3, ....dst). Di bawah ini gambar DFD level 0

Gambar DFD level 0

BAB IIIP E N U T U P Perangkat lunak adalah seluruh perintah yang digunakan untuk memproses informasi Program adalah kumpulan perintah yang dimengerti oleh komputer Prosedur adalah perintah yang dibutuhkan oleh pengguna dalam memproses informasi RPL adalah suatu disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal yaitu analisa kebutuhan pengguna, menentukan spesifikasi dari kebutuhan pengguna, disain, pengkodean, pengujian sampai pemeliharaan sistem setelah digunakan. Tujuan RPL adalah menghasilkan perangkat lunak dengan kinerja tinggi, tepat waktu, berbiaya rendah, dan multiplatform. RPL merupakan sub bidang ilmu komputer yang dalam penerapannya membutuhkan dukungan baik dari sub bidang ilmu komputer lainnya maupun bidang-bidang ilmu lain. Sertifikasi untuk bidang RPL belum tersedia, namun mengacu pada bidang Programmer Masalah (problem) adalah perbedaan antara kondisi yang terjadi dan kondisi yang diharapkan dan Gejala adalah tanda/petunjuk terjadinya suatu masalah. Model-model rekayasa perangkat lunak pada umumnya mengacu pada model proses pengembangan sistem yang disebut System Development Life Cycle (SDLC). Model pengembangan perangkat lunak yang sekarang umum digunakan adalah The Waterfall Model, Prototyping, dan Unified Process (UP). Tahapan-tahapan utama dalam rekayasa perangkat lunak meliputi : analisis, disain, konstruksi, pengujian dan perawatan.

1