World of Zuul
Dalam mempelajari bahasa pemrograman Java hal yang perlu kita pelajari selanjutnya adalah designing classes. Sekarang kita akan mempelajari beberapa bentuk designing classes di dalam Java, yaitu coupling dan cohesion.
Coupling adalah derajat ketergantungan suatu
modul terhadap modul lainnya. Kita harus pastikan bahwa suatu modul seminimal
mungkin tergantung atau berpengaruh terhadap modul lainnya. Tujuannya jika ada
update secara internal di dalam suatu modul, modul-modul lainnya tidak akan
terlalu kena pengaruh.
Sedangkan cohesion adalah keterikatan fungsi-fungsi di dalam
suatu modul. Maksudnya adalah modul yang dibuat memiliki fungsi-fungsi yang
serupa untuk satu tanggung jawab. Karena itu high cohesion sangat penting dalam
perancangan software.
Untuk mempermudah dalam memahami Coupling dan cohesion, berikut adalah contoh program dalam bahasa Java yang mengimplementasikan kedua hal tersebut yaitu program game dengan nama "World of Zuul". World of Zuul adalah sebuah game sederhana bertema adventure dimana pemain diharuskan untuk mencari jalan keluar dari sebuah map.
Di dalam program game ini terdapat 3 macam class, yaitu :
a. Game c. Room e. CommandWords
b. Parser d. Command
GamE
Class Game adalah kelas utama atau main class dari
program. Fungsi dari class ini adalah mengatur jalannya permainan dan memasuki loop untuk
membaca dan menjalankan perintah dari user. Di dalam class ini juga terdapat kode yang berfungsi untuk mengimplementasikan perintah dari pengguna.
Parser
Class Parser berfungsi untuk membaca baris input dari terminal dan mencoba menerjemahkannya sebagai sebuah Command. Ini menjadikan objek dari class Command yang mewakili perintah tersebut. Saat dipanggil, class ini akan membaca baris input dari terminal dan menerjemahkannya sebagai 2 kata Command, dan me-return Command sebagai objek dari Class Command. Selain itu class ini juga berfungsi untuk melakukan pengecekan terhadap input dari user, dimana jika input berupa command tidak ada di dalam program (class command) maka akan dicetak sebagai perintah yang tidak diketahui.
RooM
Class Room merupakan objek yang mewakili
lokasi di dalam game. Setiap lokasi atau dalam hal ini ruangan di dalam game memiliki pintu
keluar (north, south, east, west) yang mengarah ke lokasi atau ruangan lainnya.
Untuk setiap input game akan mengarahkan
player untuk menuju ruangan yang bersebelahan dengan mencetak jalan keluar dari empat arah mata angin di atas, namun
jika tidak ada jalan keluar menuju ruangan tersebut maka akan dianggap null.
Command
Class Command merupakan sebuah objek perintah dan mewakili
perintah yang dimasukkan oleh pengguna. Kelas ini memudahkan user untuk melakukan
pengecekan apakah command yang di-input adalah command yang valid, selain itu
class ini juga berfungsi untuk mendapatkan kata pertama serta kedua dari
perintah tersebut sebagai string yang terpisah.
CommandWords
Class CommandWords mendefinisikan command apa saja yang valid di dalam game, dimana command yang dianggap valid adalah "go, help, quit". Ini
dilakukan dengan menyimpan array objek string yang mewakili kata-kata perintah.
Di dalam class ini juga dilakukan enumerasi (pencacahan satu persatu/penjumlahan) pada semua kata
perintah yang dikenal dalam game dimana hal ini dilakukan untuk mengenali command
dalam pengetikan oleh user.
Setelah kelima class diatas di-compile, dihubungkan, dan di run pada main class dari program yaitu class Game maka dengan melakukan input - input tertentu akan didapatkan output seperti berikut :
Nama : Arvel Gavrilla Raissananda
NRP : 05111940000040
Kelas : PBO - A
0 comments:
Post a Comment