2.4 Rekayasa Perangkat Lunak
Rekayasa perangkat lunak adalah sebuah teknologi rancangan yang memiliki beberapa lapisan. Dasar dari rekayasa perangkat lunak adalah fokus
terhadap kualitas. Setiap pendekatan rekayasa perangkat lunak harus didasari pada komitmen sebuah organisasi terhadap kualitas[5].
Fondasi dari rekayasa perangkat lunak adalah lapisan proses. Proses dari rekayasa perangkat lunak adalah pelekat yang menyatukan semua lapisan
teknologi secara utuh dan memberikan pengembangan perangkat lunak komputer secara rasional dan tepat waktu. Prose mendefinisikan sebuah kerangka kerja
harus ditetapkan agar rekayasa perangkat lunak menjadi efektif. Prose perangkat lunak membentuk dasar dari pengendalian proyek perangkat lunak dan
menetapkan konteks dimana cara-cara teknikal diterapkan, hasil kerjamodel- model, dokumentasi, data, laporan, dan lain-lain dihasilkan.
Ada banyak model pengembangan perangkat lunak, antara lain The Waterfall Model, Joint Application Development JAD, Information
Engineering IE, Rapid Application Development RAD termasuk di dalamnya Prototyping, Unified Process UP, Structural Analysis and Design
SAD dan Framework for the Application of System Thinking FAST. Salah satu yang akan dijelaskan yaitu tentang model waterfall.[5].
Model waterfall sebenarnya adalah “linear sequential model”. Model
ini sering disebut dengan “classic life cycle” atau model waterfall. Model ini adalah model yang muncul pertama kali yaitu sekitar tahun 1970 sehingga
sering dianggap kuno, tetapi merupakan model yang paling banyak dipakai
didalam Software Engineering SE. Model ini melakukan pendekatan secara sistematis dan urut mulai dari level kebutuhan sistem lalu menuju ke tahap
analisis, desain, coding, testing verification, dan maintenance. Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap
sebelumnya dan berjalan berurutan. Sebagai contoh tahap desain harus menunggu selesainya tahap sebelumnya yaitu tahap requirement.
Gambar 2.9 Model Waterfall[11]
Gambar 2.9 merupakan model Waterfall. Berikut adalah penjelasan dari tahap-tahap yang dilakukan di dalam model ini:
a. Requirements analysis and definition
Tahap ini Mengumpulkan kebutuhan secara lengkap kemudian kemudian dianalisis dan didefinisikan kebutuhan yang harus
dipenuhi oleh program yang akan dibangun. Fase ini harus
dikerjakan secara lengkap untuk bisa menghasilkan desain yang lengkap..
b. System and software design
Tahap ini merupakan kegiatan Tahap ini merupakan kegiatan mengumpulkan kebutuhan secara lengkap kemudian dianalisis
dan didefinisikan kebutuhan yang harus dipenuhi oleh aplikasi yang akan dibangun. Tahap ini harus dikerjakan secara lengkap
untuk bisa menghasilkan desain yang lengkap. Pada tahap ini juga dilakukan analisis algoritma yang akan dipakai dalam aplikasi
game Death Castle. c.
Implementation and unit testing Desain program diterjemahkan ke dalam kode-kode dengan
menggunakan bahasa pemrograman yang sudah ditentukan. Program yang dibangun langsung diuji baik secara unit.
d. Integration and system testing
Penyatuan unit-unit program kemudian diuji secara keseluruhan system testing.
e. Operation and maintenance
Mengoperasikan program
dilingkungannya dan
melakukan pemeliharaan, seperti penyesuaian atau perubahan karena adaptasi
dengan situasi sebenarnya[5].
2.5 OOP
Object Oriented Programming
OOP atau dikenal dengan Pemrograman Berorientasi Objek merupakan pemrograman yang semua data dan fungsi di dalam paradigma ini dibungkus
kedalam kelas-kelas atau objek-objek. Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang
lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih
mudah dipelajari dibandingkan dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.
Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut
terstruktur tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki
manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak
harus mengambilnya langsung tetapi dapat menyuruh petugas bagian administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus
mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas administrasi. Jadi untuk
menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri [2]. Pemrograman
orientasi-objek menekankan konsep berikut: