Interaksi Manusia dan Komputer

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: