Disiplin ilmu sistem engineering sendiri dewasa ini sedang berevolusi untuk mencari
jati diri. Sebagian besar masih bergabung dengan bidang ilmu lainnya seperti biologi,
teknik industri, teknik komputer, teknik kimia (instalasi sebuah processing plant
membutuhkan skill rekayasa sistem).
Dalam lingkup pengembangan perangkat lunak, rekayasa Sistem adalah kegiatan
untuk menentukan spesifikasi, perancangan, pengimplementasian, penyebaran,
dan pemeliharaan sistem sebagai satu kesatuan. Sehingga, rekayasa sistem atau lebih
tepatnya, rekayasa sistem berbasis komputer berhubungan dengan semua aspek
pengembangan dan evolusi sistem kompleks dimana perangkat lunak memainkan peran
utama. Rekayasa sistem merupakan disiplin yang lebih tua dibandingkan dengan
rekayasa perangkat lunak. Orang telah melakukan spesifikasi dan perakitan sistem
industri secara kompleks seperti kereta api dan pabrik kimia selama lebih dari 100 tahun.
Akan tetapi, seiring dengan bertambahnya persentase perangkat lunak
pada sistem, maka teknik rekayasa perangkat lunak seperti pemodelan use – case,
manajemen konfigurasi, dan lain sebagainya sering dipergunakan dalam proses rekayasa
sistem.
Pressman menyebut sistem yang didalamnya terdapat perangkat lunak sebagai sistem
berbasis komputer. Pada sistem berbasis komputer terdapat komponen – komponen
sebagai berikut :
2. PROPERTI SISTEM
Rekayasa sistem adalah kegiatan penspesifikasian, perancangan dan
pengimplementasianpemvalidasian, penyebaran dan pemeliharaan sistem sebagai
satu kesatuan.
Ada banyak definisi yang benar tentang sistem, mulai dari yang paling abstrak ke
ayangpaling konkret tetapi defnisi prktisnya yang berguna adalah sistem
merupakan sekeumpulan komponen yang saling berhubungan dan bekerja sama
untuk mencapai suatu tujuan.
Adanya hubungan yang kompleks anta komponen pada sistem memiliki arti
bahwa sistem tersebut lebi h dari sekedar penjumlahan abagian-bagianna.
Komponen sistemmemiliki properti yang merupakan properti sistem secara
keseluruhan.
Ada 3 pengaruh yang berhubungan erat pada keandalan menyeluruh suatu sistem :
1. Keandalan perangkat keras. Berapa besar probabilitas komponen perangkat
keras akan rusak dan berapa lama waktu yang diperlukan untuk memperbaikinya.
2. Keandalan perangkat lunak. Berapa besar komponen perangkat unak
menghasilkan output yang tidak benar? Kerusakan perangakt unak dapat
dibedakan dari kerusakan perangkat keras dalam artian bahwa perangakt lunak
tidak bertambah usang.
3. Keandalan operator.
Ada 2 alasan mengapa lingkungan sistem harus dipahami oleh perekayasa sistem.
1. Pada banyak kasus, sistem ditujukan untuk melakukan beberapa perubahan
dilingkungannya.
2. Fungsi sistem dapat dipengaruhi oleh perubahan pada oingkunganya dengan cara
yang mungkin sulit untuk diramalkan.
Faktor manusia dan organisasi yang diturunkan dari lingkungan sistem yang
mempengaruhi perancangan sistem mencakup :
1. Perubahan proses. Apkaha sistem membetulkan perubahan proses kerja pada
lingkungan? Jika perubahan tersebut signifikan, atau jika melibatkan pemecatan
beberapa orang maka ada bahaya bahwa sistem ini akan ditolak oleh usernya.
2. Perubahan kerja. Apakah sistem menyebabkan useri di lingkungan kehilangan
keahliannya atau menyebabkan mereka harus mengubah cara kerja.
3. Perubahan organisasi. Apakah sistem mengubah struktur kekuatan politik dalam
organisasi.
4. PEMODELAN SISTEM
Sebagai bagian dari persyaratan sistem dan kegiatan perancangan, sistem harus
doimodelkan sebagai suatu kumpulan komponen dan hubungan antara komponen-
komponen ini.
Arsitektur sistem biasanya digambarkan sebagai diagram blok yang menunjukkan
subsistem utama dan interkoneksi antara subsisteem-subsistem ini.
Setiap subsistem direpresentasikan sebagai segi empat pada diagram blok dan
dihubungkan antara mereka ditujukkan dengan tanda panah yang menghubungkan
persegi tersebut.
Suatu bagian penting dari fase pendefinisian persyraatan adalah menetapkan satu
set tujuan menyeluruh yang ahrus dipenuhi oleh sistem.
Tujuan ini tidak harus dinyatakan sebagai fungsionalitas sistem tetapi harus
mendefinisikan mengapa sistem dubuat untuk lingkungan tertentu.
Perancangan Sistem
Perancangan sistem berhubungan dengan bagaimana fungsionalitas sistem
disediakan oleh komponen sistem.
o Persyaratan pembagian : persyartan dianlisis dan dikumpulkan mnejadi
kelompok yang berhubungan.
o Identifikasi sistem : subsistem yang berbeda yang secara individu atau kolektif
memenuhi persyartaan diidentifikasi.
o Terapkan persyaratan pada subsistem : persyartan ditetapkan pada subsistem
o Tentukan fungsionalitas subsistem : fungsi spesifik yang diberikan setiap
subsistem dispesifikasi.
o Didefinisikan interface subsistem : kegiatan ini melibatkan pendefinisian
interface yang disediakan dan dibutuhkan oleh setiap subsistem.
Pengembangan Subsistem
Pengembangan subsitem diidentifikasikan pada perancangan sistem
diimplementasikan. Kegiatan ini melibatkan proses rekayasa sistem lain untuk
subsistem individu.
Subsistem yang berbeda biasanya dikembangkan secara pararel. Jika ditemukan
masalah yang melewati batasan subsistem, harus dilakukan permohonan modifikasi
sistem.
Intergrasi Sistem
Integrasi sistem mencakup pengumpulan subsistem yang dikembangkan seecara
independen dan menggabungkannya untuk membentuk sistem yang lengkap.
Adapun dua alasan mengapa proses inkremental ini merupakan pendekatan yang
paling sesuai :
1. Biasanya tidak mungkin menjadwalkan semua pengembangan subsistem sehingga
seluruhnya selesai pada waktu yang sama.
2. Integrasi inkremental memperkecil biaya lokasi kesalahan.
Instalasi Sistem
Pada saat instalasi sistem diletakkan di lingkungan dimana sistem akan beroperasi.
Walaupun proses ini tempak sederhana, banyak amsalah yang dapat timbul dan ini
berarti bahwa instalasi sistem yang kompleks bisa memakan waktu lama.
Contoh :
1. Lingkungan dimana sistem akan diintal tidak sama dengan lingkungan yang
diasumsikan oleh pengembang sistem.
2. User potensial sistem mungkin tidak suka dengan keberadaan sistem tersebut.
3. Sistem baru harus berdampingan dengan sistem yang sudah ada sampai organisasi
puas dengan sistem baru yang bekerja dengan benar.
4. Terdapat masalah pada instalasi fisik.
Operasi Sistem
Pengoperasian system bisa melibatkan pengaturan sesi pelatihan untuk operator
dan perubahan proses kerja normal untuk menggunakan system baru dengan efektif.
Masalah yang dapat timbul hanya setelah system dioperasikan adalah masalah
mengoperasikan system baru dengan system yang ada.
Evolusi Sistem
Sistem yang besar dan kompleks memiliki waktu hidup yang sangat lama. Selama
hidupnya sistem tersebut harus berubah untuk memperbaiki keslahan pada persyaratan
sistem yanga sli dan ememenuhi persyartan baru yang muncul.
6. PENGADAAN SISTEM
Proses pengadaan sistem berhubungan dengan pembuatan keutusan mengenai cara
terbaik organisasi mendapatkan sistem dan memutuskan pemaso terbaik dari sistem
tersebut.
Proses pengadaan berhubungan erat dengan proses rekayasa sistem. Beberap
spesifikasi sistem dan perancangan arsitektural dilakukan sebelum keputudan pengadaan
ini dibuat. Ada dua alasan :
1. Untuk membei dan menyewa kontrak perancangan dan pengembangan sistem,
spesifikasi tingkat tinggi mengenai apa yang harus dilakukan siste etersebut harus
diselesaikan.
2. Hampir selalu lebih murah untuk membeli sistem ketimbang merancang, membuat
dan membangunnya sebagai proyek yang terpisah.
Proses perangkat lunak adalah serangkaian kegiatan dan hasil-hasil relevannya yang
menghasilkan perangkat lunak (sebagian besar dilakukan oleh perekayasa perangkat
lunak).
Ada 4 macam kegiatan/aktivitas pada proses perangkat lunak :
1. Spesifikasi Perangkat Lunak : Fungsionalitas perangkat lunak dan batasan
kemampuan operasinya harus didefinisikan.
2. Pengembangan Perangkat Lunak : Perangkat lunak yang memenuhi spesifikasi
harus diproduksi.
3. Validasi Perangkat Lunak : Perangkat lunak harus divalidasi untuk menjamin
bahwa perangkat lunak melakukan apa yang diinginkan oleh pelanggan.
4. Evolusi Perangkat Lunak : Perangkat lunak harus berkembang untuk memenuhi
kebutuhan pelanggan.
A. Model Waterfall
Model Waterfall ini awalnya ditemukan oleh Winston W. Royce pada tahun
1970 . Dia menulis sebuah artikel ilmiah yang berisi pandangan pribadinya pada
pengembangan perangkat lunak . Pada paruh pertama dari artikel, ia membahas sebuah
proses yang dia sebut ” megah ” . Dia bahkan menggambar sosok model , dan lain yang
menunjukkan mengapa hal itu tidak bekerja ( karena persyaratan selalu berubah ) .
Model ini adalah air terjun . Dia menggunakannya sebagai contoh dari proses yang sama
sekali tidak bekerja. Di paruh kedua artikel ia menggambarkan proses berulang-ulang
bahwa ia dianggap jauh lebih baik .
Pada model Waterfall atau disebut model air terjun, ada beberapa fase yang harus kita
terapkan, yaitu:
Bisa digunakan jika suatu persyaratan untuk membuat suatu software sudah
dipahami dengan baik dan sudah lengkap semua persyaratan yang ada.
B. Model RAD
Rapid Aplication Model (RAD) adalah sebuah proses perkembangan perangkat
lunak sekuensial linier yang menekankan siklus perkembangan yang sangat pendek.
Model RAD ini merupakan sebuah adaptasi “kecepatan tinggi” dari model sekuensial
linier dimana perkembangan cepat dicapai dengan menggunakan pendekatan konstruksi
berbasis komponen.
Seperti semua proses model yang lain, pendekatan RAD memiliki kekurangan-
kekurangan sebagi berikut :
Bagi proyek yang besar tetapi berskala, RAD memerlukan sumber daya manusia
yang memadai untuk menciptakan jumlah tim RAD yang baik.
RAD menuntut pengembangan dan pelanggan yang memiliki komitmen di dalam
aktifitas rapid-fire yang diperlukan untuk melengkapi sebuah sistem, di dalam
kerangka waktu yang sangat diperpendek. Jika komitmen tersebut tidak ada,
proyek RAD akan gagal. RAD menekankan perkembangan komponen program
yang bisa dipakai kembali. Reusable menjadi batu pertama teknologi objek dan
ditemui di dalam proses rakitan komponen
Tidak semua aplikasi sesuai untuk RAD. Bila sistem tidak dapat dimodulkan
dengan teratur, pembangunan komponen penting pada RAD akan menjadi sangat
problematis.
RAD menjadi tidak sesuai jika risiko teknisnya tinggi. Hal ini terjadi bila sebuah
aplikasi baru memforsir teknologi baru atau bila perangkat lunak baru
membutuhkan tingkat interoperabilitas yang tinggi dengan program komputer
yang ada.
C. Model Prototyping
Kelemahan Prototyping :
D. Model Spiral
Model ini cukup baru ditemukan,yaitu tahun 1988 oleh Barry Boehm. Spiral
adalah salah satu bentuk evolusi yang menggunakan metode iterasi natural yang dimiliki
oleh model prototyping dan digabungkan dengan aspek sistematis yang dikembangkan
model waterfall.
Kelebihan model Spiral :
1. Dapat disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat
lunak komputer.
2. Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar
3. Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap
resiko setiap tingkat evolusi karena perangkat lunak terus bekerja selama proses
.
E. Model Incremental
Kelebihan Incremental :
Kekurangan Incremental
Permasalahan
Batasan proses tidak jelas
Sistem kurang terstruktur
Kemampuan aplikasi
Untuk sistem dengan interaksi skala kecil dan medium
Untuk antarmuka user
Untuk sistem dengan masa penggunaan pendek
Menyediakan akses yang mudah terhadap pengetahuan dasar bagi anggota tim.
Menyediakan petunjuk bagaimana menggunakan UML secara efektif.
Mendukung proses pengulangan dalam pengembangan software.
Memungkinkan adanya penambahan-penambahan pada proses.
Memungkinkan untuk secara sistematis mengontrol perubahan-perubahan yang
terjadi pada software selama proses pengembangannya.
Memungkinkan untuk menjalankan test case dengan menggunakan Rational Test
pengembangan perangkat lunak yang ringan dan termasuk salah satu agile
methods yang dipelopori oleh Kent Beck, Ron Jeffries, dan Ward Cunningham.
XP merupakan agile methods yang paling banyak digunakan dan menjadi sebuah
pendekatan yang sangat terkenal.
Sasaran XP adalah tim yang dibentuk berukuran antara kecil sampai medium
saja, tidak perlu menggunakan sebuah tim yang besar. Hal ini dimaksudkan
untuk menghadapirequirements yang tidak jelas maupun terjadinya perubahan-
perubahan requirements yang sangat
Keunggulan:
Menjalin komunikasi yang baik dengan klien. (Planning Phase)
Menurunkan biaya pengembangan (Implementation Phase)
Meningkatkan komunikasi dan sifat saling menghargai antar developer.
(Implementation Phase)
XP merupkan metodologi yang semi formal. (Planning Phase)
Developer harus selalu siap dengan perubahan karena perubahan akan selalu
diterima, atau dengan kata lain fleksibel. (Maintenance Phase)
Kelemahan :
Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga
anjuran untuk melakukan apa yang diperlukan hari itu juga).XP juga memiliki
keunggulan yang sekaligus menjadi kelemahannya, yaitu XP tidak memiliki
dokumentasi formal yang dibuat selama pengembangan. Satu-satunya
dokumentasi adalah dokumentasi awal yang dilakukan oleh user.
H. Timeboxing Model
B. Spesifikasi Persyaratan
1. User diberikan fasilitas untuk mendefinisikan tipe file eksternal
2. Setiap tipe file eksternal mempunyai alat untuk dihubungkan yang dapat diaplikasikan
ke file
3. Setiap tipe file eksternal direpresentasikan sebagai icon tertentu pada tampilan User
4. Fasilitas disediakan untuk icon yang merepresentasikan tipe file eksternal yang
didefinisikan oleh user
5. Jika user memilih icon untuk merepresentasikan file eksternal, efek
pemilihanmengaplikasikan alat yang menghubungkan antara tipe file eksternal ke file
yangdirepresentasikan oleh icon terpilih
a. Persyaratan Fungsional
Pernyataan layanan tentang bagaimana sistem harus bereaksi terhadap input, sistem
harus berlaku pada situasi-situasi tertentu. Secara khusus menyatakan apa yang tidak
boleh dilakukan sistem. Merupakan penjelasan tentang layanan yang perlu
disediakan oleh system,bagaimana system menerima dan mengolah masukkan,dan
bagaimana sistem mengatasi situasi-situasi tertentu. Selain itu kadang-kadang juga
secara jelas menentukan apa yang tidak dikerjakan oleh system. Fungsional
requirenment menggambarkan system requirenment secara detail seperti
input,output dan pengecualian yang berlaku.
User dapat mencari semua atau satu set awal database atau memilih subset darinya.
System akan menyediakan viewer yang sesuai bagi user untuk membaca dokumen pada
penyimpanan (store) dokumen.
Semua pemesanan diberi identifier yang unik (ORDER_ID) yang dapat di copy user ke
area penyimpanan permanent untuk account tersebut.
b. Persyaratan Non Fungsional
Pernyataan tentang batasan layanan dan fungsi yang diberikan sistem. Karena
berkaitan dengan kebutuhan system secara keseluruhan, maka kegagalan memenuhi
kebutuhan jenis ini berakibat pada system secara keseluruhan. Contoh kebutuhan
jenis ini adalah kecepatan akses, keamanan data, besarnya kapasitas penyimpanan
yang diperlukan, privasi masing - masing profil / account, bahasa pemrograman
yang digunakan, system operasi yang di gunakan. Persyaratan non-fungsional terdiri
dari :
1. Persyaratan Produk: persyaratan yang diambil dari spesifikasi produk yang berkaitan
dengan kehandalan, kecepatan, kemudahan digunakan, kapasitas memori yang
dibutuhkan dan efisiensi system seperti persyaratan hardware untuk mendukung kinerja.
2. Persyaratan Organisasi: persyaratan yang berasal dari kebijakan dan prosedur pada
organisasi yang berkaitan dengan standar, bahasa pemrograman dan metode rancangan
yang digunakan.
3. Persyaratan Eksternal: persyaratan yang berasal dari factor eksternal terhadap system
dan proses pengembangannya yang berkaitan dengan masalah etika penggunaan,
interoperabilitas dengan system lain, legalitas dan privasi.
2. Persyaratan Domain.
Persyaratan yang datang dari domain aplikasi sistem dan merefleksikan karakteristik
domain tersebut. Persyaratan-Persyaratan ini bisa berupa persyaratan fungsional yang
baru,membatasi persyaratan fungsional yang ada atau menentukan bagaimana komputasi tertentu
harus dilakukan. Jika persyaratan ini tidak dipenuhi,tidak menutup kemungkinan membuat
sistem bekerja dengan tidak memuaskan.
3. Persyaratan User
a. Ketidak jelasan.
Sulit untuk presesi tanpa membuat dokumen yang sulit dibaca.
b. Persyaratan yang membingungkan.
Persyaratan fungsional dan non fungsional cenderung dicampur aduk.
c. Penggabungan persyaratan.
Beberapa persyaratan yang berbeda dinyatakan bersama-sama.
1.Buat format standart dan pastikan bahwa semua defenisi persyaratan mengikuti format
tersebut.
2.Gunakan bahasa secara konsisten. Bedakan antara persyaratan yng diperintahkan dan
yang diinginkan.
3.Gunakan penonjolan text( tebal dan miring) untuk menentukan bagian kunci pada
persyaratan tersebut.
4. Persyaratan Sistem
Persyaratan system ini lebih rinci dari persyaratan user, dan berfungsi sebagai dasar
kontrak untuk implementasi system. Persyaratan system ini digunakan sebagai titik awal
perancangan system. Bahasa natural banyak digunakan dalam mendefinisikan persyaratan
system.
1. Pendahuluan
1.1. Tujuan Dokumen Persyaratan
1.2. Cakupan Produk
1.3. Definisi, Akronim dan Singkatan
1.4. Referensi
1.5. Tinjauan Bagian Dokumen Berikutnya
2. Deskripsi Umum
2.1. Perspektif Umum
2.2. Fungsi Produk
2.3. Karakteristik User
2.4. Batasan-Batasan Umum
2.5. Asumsi dan Ketergantungan
3. Persyaratan Khusus: mencakup persyaratan fungsional, non-fungsional, dan
interface
4. Lampiran
5. Indeks
MANAJEMEN PROYEK
1. Pengertian
Yang pertama adalah Metode Jalur Kritis ( CPM - Critical Path Method ) yang
dikembangkan pada suatu proyek sebagai usaha patungan antara DuPont Corporation
dan Remington Rand Corporation untuk mengelola proyek-proyek pemeliharaan
tanaman. Dan yang kedua adalah "Evaluasi Program dan Tinjauan Teknik" ( PERT -
Program Evaluation and Review Technique ), dikembangkan oleh Booz Allen Hamilton
sebagai bagian dari Angkatan Laut Amerika Serikat ( dalam hubungannya dengan
Lockheed Corporation ) dalam pengembangan Program rudal kapal selam Polaris;
Perhitungan teknik matematis ini kemudian cepat menyebar ke perusahaan-perusahaan
swasta untuk diterapkan.
Dalam waktu yang sama, model penjadwalan-proyek juga sedang
dikembangkan, teknik menghitung biaya proyek, manajemen biaya, dan ekonomi teknik
terus berkembang, dengan kepeloporannya oleh Hans Lang dan lainlain. Pada tahun
1956, American Association of Cost Engineers ( AACE ), yang sekarang disebut AACE
Internasional; Asosiasi Internasional untuk ahli Teknik Biaya yang pada awalnya
dibentuk oleh praktisi manajemen proyek dan spesialisasi terkait dengan perencanaan
dan penjadwalan, perkiraan biaya , dan pengenadalian jadwal proyek ( Pengendali
Proyek - Project Control ).
AACE terus bekerja sebagai perintis dan pada tahun 2006 pertama kali merilis
proses yang terintegrasi untuk manajemen portofolio, program dan proyek ( Total Cost
Management Framework ). AACE menawarkan beberapa sertifikasi seperti CCE, PSP
dan lain sebagainya. Pada tahun 1967, International Project Management Association (
IPMA ) didirikan di Eropa, sebagai sebuah federasi dari beberapa asosiasi manajemen
proyek nasional.
IPMA memelihara struktur federal hari ini dan sekarang termasuk asosiasi
anggota pada setiap benua kecuali Antartika. IPMA menawarkan Sertifikasi Tingkat
Empat program yang berdasarkan Baseline IPMA Kompetensi ( ICB ). ICB ini
mencakup kompetensi teknis, kompetensi kontekstual, dan kompetensi perilaku. Pada
tahun 1969, Project Management Institute ( PMI ) dibentuk di Amerika Serikat. PMI
menerbitkan buku Panduan yang sering disebut dengan PMBOK Guide ( Project
Management Body of Knowledge Guide ), yang menggambarkan praktek manajemen
proyek yang umum untuk "hampir semua proyek dan hampir semua waktu".
PMI juga menawarkan beberapa sertifikasi seperti PMP, CAMP dan lain
sebagainya. Di Indonesia sendiri Manajemen Proyek berkembang pada era tahun 1970 –
1990-an diawali dengan semakin banyaknya berkembang proyek-proyek infrastruktur
yang banyak memerlukan profesional di bidang Manajemen Proyek. Salah satunya yang
berdiri pertama kali adalah Project Management Institut Chapter Jakarta ( yan sekarang
disebut PMI – Indonesia ). PMI Indonesia didirikan pada tahun 1996 dan merupakan
organisasi yang didedikasikan untuk meningkatkan, konsolidasi dan penyaluran
manajemen proyek Indonesia dan bekerja untuk pengembangan pengetahuan dan
keahlian untuk kepentingan semua stakeholder.
Organisasi ini adalah salah satu cabang dari Project Management Institute ( PMI
), sebuah organisasi, nirlaba profesional di seluruh dunia terkemuka. Dan pada tanggal
16 Juli 1999 didirikanlah Ikatan Ahli Manajemen Proyek Indonesia ( IAMPI ) yang
merupakan asosiasi dari para Ahli Manajemen Proyek Indonesia dan didirikan di
Jakarta, sebagai salah satu asosiasi profesi anggota LPKJ. Lembaga IAMPI ini juga
menawarakan sertifikasi yang betaraf nasional di Indonesia. Dan terakhir adalah
lembaga ITAPPI ( Ikatan Tenaga Ahli Pengendali Proyek Indonesia ) yang didirikan
pada tahun 2008 dan merupakan organisasi profesional dengan bidang pengendali
proyek ( Project Control ).
7. Proses
Secara umum, siklus hidup proyek merupakan suatu metode yang digunakan
untuk
menggambarkan bagaimana sebuah proyek direncanakan, dikontrol, dan diawasi sejak
proyek disepakati untuk dikerjakan hingga tujuan akhir proyek tercapai. Terdapat lima
tahap kegiatan utama yang dilakukan dalam siklus hidup proyek yaitu :
1. inisiasi
2. perencanaan dan desain
3. pelaksanaan dan konstruksi
4. pemantauan dan sistem pengendalian
5. penyelesaian.
1. Tahap Inisiasi
Tahap inisiasi proyek merupakan tahap awal kegiatan proyek sejak sebuah
proyek disepakati untuk dikerjakan. Pada tahap ini, permasalahan yang ingin
diselesaikan akan diidentifikasi. Beberapa pilihan solusi untuk menyelesaikan
permasalahan juga didefinisikan. Sebuah studi kelayakan dapat dilakukan untuk memilih
sebuah solusi yang memiliki kemungkinan terbesar untuk direkomendasikan sebagai
solusi terbaik dalam menyelesaikan permasalahan. Ketika sebuah solusi telah ditetapkan,
maka seorang manajer proyek akan ditunjuk sehingga tim proyek dapat dibentuk.
5. Tahap Penutupan
Tahap ini merupakan akhir dari aktivitas proyek. Pada tahap ini, hasil akhir
proyek (deliverables project) beserta dokumentasinya diserahkan kepada pelanggan,
kontak dengan supplier diakhiri, tim proyek dibubarkan dan memberikan laporan kepada
semua stakeholder yang menyatakan bahwa kegiatan proyek telah selesai dilaksanakan.
Langkah akhir yang perlu dilakukan pada tahap ini yaitu melakukan post
implementation review untuk mengetahui tingkat keberhasilan proyek dan mencatat
setiap pelajaran yang diperoleh selama kegiatan proyek berlangsung.
8. Organisasi Proyek
Manajemen waktu proyek merupakan salah satu kompetensi yang harus dimiliki
oleh seorang manajer proyek. Manajemen waktu proyek dibutuhkan manajer proyek
untuk memantau dan mengendalikan waktu yang dihabiskan dalam menyelesaikan
sebuah proyek. Dengan menerapkan manajemen waktu proyek, seorang manajer proyek
dapat mengontrol jumlah waktu yang dibutuhkan oleh tim proyek untuk membangun
deliverables proyek sehingga memperbesar kemungkinan sebuah proyek dapat
diselesaikan sesuai dengan jadwal yang telah ditentukan.
Terdapat beberapa proses yang perlu dilakukan seorang manajer proyek dalam
melakukan manajemen ruang lingkup proyek, yaitu :
Suatu di siplin 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 memelihara
system setelah di gunakan
Kinerja
Biaya Waktu
Dari Gambar 1 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 :
Proses Software
Testing
Software
Engineering Software
Software
Maintenance
Quality
Configuration
Tool dan Management
Management
Method
Disiplin ilmu computer (Computer Science) lahir pada awal-awal tahun 1940-an
yang merupakan integrasi dari teori algoritma, logika matematika dan ditemukannya
cara penyimpanan program secara elektronik pada komputer.Sejak itu ilmu
komputer mengalami perkembangan yang terus menerus sehingga cakupannya
menjadi semakin meluas.Cakupan pengetahuan dalam ilmu komputer seringkali
didiskripsikan sebagai suatu studi sistematis pada proses-proses algoritma yang
menjelaskan dan mentransformasikan informasi (Denning, 2000). Termasuk di
sini adalah teori, analisis, disain, efisiensi penerapan dan aplikasinya. Ada beberapa
model pengelompokkan sub-bidang ilmu dalam disiplin ilmu komputer seperti
terlihat pada Gambar .
Komputer
Scince
Section A Section B
Komputer Perangkat
Section C Section D
Orgasisasi Sistem
Perangkat
Komputer
Section E Section F
Data Teori
Section G Section H
Matematika Sistem
Section I
Section J
Metodologi
Komputer di
Section K
Aspek Lain
Scince
Arsitektur Sistem
Operasi
Komputer
Dan
Intelegensi
Grafis
Buatan
Robotika
Interaksi Ilmu
Peengetahuan
Komputer
Manusia Komputasi
Pengorganisas Bio-
ian Informatics
Informatika
Scince
Dasar Teori
Matematika
Komputasi Komputasi
Concurrent, Rekayasa
Parallel dan
system
Perangkat
Pendistribusia
Lunak
Komunikasi
Basis Data
Intelegensia Komputer
Garfis dan
Buatan Visual
Berdasarkan pengelompokkan
Interaksi Denning (2000) dan Wikipedia (2007), RPL
Komputasi
merupakan sub-bidang ilmudan
Manusia komputer yang setara untuk dengan
ilmu sub-bidang lainnya
Sedangkan menurut Komputer
ACM (Association for Computing Pengetahuan Machinery), RPL
merupakan bagian dari Section D (Perangkat Lunak). Meskipun terlihat terpisah-
pisah, namun dalam penerapannya, sub-bidang RPL selalu membutuhkan
Gambar 5 Kalsifikasi ilmu Komputer menurut Wikipedia
dukungan dari sub-bidang lain, terutama sub-bidang Algoritma dan Struktur Data,
Bahasa Pemrograman, Basis Data, Sistem Operasi dan Jaringan, dan Sistem
Informasi.
E. Rekayasa Perangkat Lunak dan Disiplin Ilmu Lain
Cakupan ruang lingkup yang cukup luas, membuat RPL sangat terkait dengan
disiplin bidang ilmu lain. Tidak saja dengan sub-bidang dalam disiplin ilmu
komputer namun dengan beberapa disiplin ilmu lain di luar ilmu komputer.
Hubungan keterkaitan RPL dengan ilmu lain dapat dilihat pada Gambar 6.
Rekayasa
Perangkat Lunak
Indonesia. Sebagian besar orang Indonesia mungkin lebih familiar dengan sebutan
Ahli Teknologi Informasi, Analis Sistem Informasi, Programmer, Operator atau
sebutan profesi lainnya. Hal ini karena adanya kerancuan tentang istilah RPL seperti
telah disebutkan di awal bab.
Masalah (problem) adalah perbedaan antara kondisi yang terjadi dan kondisi
yang diharapkan atau boleh juga diartikan sebagai perbedaan antara kondisi
sekarang dengan tujuan yang diinginkan. 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 menunjukkan adanya masalah. antara gejala dan masalah. Gejala
adalah tanda/petunjuk terjadinya suatu masalah. Perhatikan seorang yang
berprofesi sebagai 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 memberi obat sakit
kepala, maka penyakit flu tidak
2. Tipe-Tipe Masalah
berbeda adalah, pada tipe ini tujuan yang ingin dicapai dapat berubah- ubah dan
3. Pemecahan Masalah
Pemecahan masalah adalah sebuah proses dimana suatu situasi diamati kemudian
bila ditemukan ada masalah dibuat penyelesaiannya dengan cara menentukan
masalah, mengurangi atau menghilangkan masalah atau mencegah masalah
tersebut terjadi. Ada banyak urutan proses pemecahan masalah yang diajukan oleh
para ahli, salah satunya seperti terlihat pada Gambar 9.
Gambar 9 Proses Pemecahan Masalah
Pada gambar 9 terlihat serangkaian tahapan proses yang berbeda yang dapat
digunakan dalam berbagai tingkatan, tergantung dari tipe dan sifat
masalahnya. Masalah yang berbeda membutuhkan penggunaan cara yang
berbeda, bahkan mungkin urutan yang berbeda. Tahapan kritis dari proses
pemecahan masalah adalah
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.
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
diperjelas dengan pembagian dan urutan rinci yang harus ditempuh dalam
penyelesaian masalah
cara yang dipilih telah memenuhi tujuan yang diinginkan. Selain itu juga
untuk melihat bagaimana daya guna dari cara yang dipilih yang dipilih.
METODE REKAYASA PERANGKAT LUNAK
Hal-hal seperti ini terkait dengan apa yang disebut dengan metode rekayasa perangkat
lunak. Isi dari bab ini tidak termasuk dalam standar kompetensi bidang keahlian RPL.
Namun penulis memandang perlu disampaikan agar kalian dapat mengetahui
bagaimana sebenarnya rekayasa perangkat lunak dilakukan dan metode-metode apa saja
yang biasa digunakan. Beberapa bagian dari bab ini mungkin agak sulit dipahami,
sehingga peran guru dalam membantu menjelaskan akan sangat diperlukan.
Pada 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) seperti terlihat pada Gambar 10.
Gambar 10 Sistem Development Life Cycle
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 seperti dijelaskan pada Bab 1,
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.
Model 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 :
2. Prototyping model
Prototyping 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 12
Gambar 12. Klasifikasi prototyping model (Harris, 2003)
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.
Uji prototype untuk memastikan prototype dapat dengan mudah dijalankan untuk
tujuan demonstrasi.
Siapkan prototype USD (User’s 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.
Gambar 13. Tahapan-tahapan prototyping model (Harris, 2003)
Unified 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).
Bagan ini biasa disebut sebagai “hump chart”. Pada bagan ini terlihat ada empat
tahap peengembangan yaitu inception, elaboration, construction, dan transition Selain
itu tampak pula sejumlah aktifitas yang harus dilakukan sepanjang pengembangan
perangkat lunak, yaitu business, modeling, requirements, analisys and design.
Impelemntasi, test. Tahap dan aktifitas tersebut akan dilakukan secara iteratiff (
Ambler, 2005).
.1. Analisis
Analisis mungkin adalah bagian terpenting dari proses rekayasa perangkat lunak.
Karena semua proses lanjutan akan sangat bergantung pada baik tidaknya hasil
analisis. Tahapan-tahapan dalam analisis rekayasa perangkat lunak secara ringkas
dapat dilihat pada Gambar 15.
Ada satu bagian penting yang biasanya dilakukan dalam tahapan analisis yaitu
Process
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 19 ini gambar DFD level 0
Gambar 19 DFD level 0