Tahapan Object Oriented Analysis and Design

- Menetapkan Domain Models Analisis berorientasi objek berfokus pada menciptakan suatu deskripsi permasalahan dari perspektif pengklasifikasian objek. Hal-hal terkait penguraian permasalahan seperti identifikasi konsep, atribut dan asosiasi yang dinilai penting. Hasil dari proses tersebut dapat diwujudkan dalam bentuk domain model yang terdiri dari susunan diagram yang menunjukkan domain konsep atau objek. Tahapan-tahapan dalam proses ini yaitu : 1. Visualisasi konsep dalam bentuk conceptual class Visualisasi konsep dilakukan dengan menetapkan suatu conceptual class yang berisikan konsep-konsep yang ada dalam sistem beserta atribut dan asosiasi antar konsep tersebut. Conceptual class merupakan model permasalahan yang dibuat melalui sudut pandang ”dunia nyata” terhadap sistem. Dalam mengidentifikasi konsep-konsep yang terdapat pada sistem dapat dilakukan melalui 2 pendekatan, yaitu melalui daftar kategori konseptual kelas serta identifikasi kata benda yang terdapat pada skenario dalam use case. 2. Menambahkan Asosiasi dalam conceptual class Asosiasi atau relasi merupakan hubungan antar konsep pada suatu sistem. Hubungan tersebut antara lain seperti suatu konsep secara fisik maupun logika merupakan bagian dari konsep lain, suatu konsep terdapat dalam konsep lain serta suatu konsep “terekam” dalam konsep lainnya. Setiap asosiasi selanjutnya disebut sebagai role, suatu role akan memiliki nama, ekspresi multiplicity serta navigasi. Multiplicity menyatakan banyaknya instance yang dimiliki suatu kelaskonsep terhadap kelaskonsep lainnya. 3. Menambahkan Atribut dalam conceptual class Atribut merupakan suatu nilai data logis dari suatu objek. Atribut merupakan nilai-nilai data yang dimiliki suatu objek atau dalam hal ini suatu konsep. Dalam identifikasi atribut pada conceptual class, atribut yang dihasilkan harus tetap sederhana serta mereflesikan nilai data yang mungkin dimiliki suatu konep dalam dunia nyata. - Menetapkan Interaction Diagrams Desain berorientasi obyek berkaitan dengan mendefinisikan objek perangkat lunak dan kolaborasinya. Notasi umum yang digunakan untuk menggambarkan kolaborasi ini adalah interaction diagrams SequenceCollaboration Diagram. Diagram ini menunjukkan aliran pesan antara objek perangkat lunak dalam bentuk metode. Tahapan yang harus dilakukan adalah melalui realisasi use case menggunakan pola GRASP General Responsibilities Assignment Software Pattern. GRASP merupakan pola-pola yang dapat digunakan untuk memberikan tanggung jawab Responsibilities suatu kelas terhadap kelas lainnya. Hal ini dilakukan untuk mengidentifikasi metode yang dimiliki masing-masing kelas yang diperoleh melalui ekstraksi terhadap interaction diagram yang dihasilkan melalui implementasi pola GRASP. Tabel 2.2 GRASP General Responsibilities Assignment Software Pattern Pola Penjelasan Information Expert Berikan tanggung jawab kepada kelas yang memiliki informasi untuk menyelesaikan suatu tugas. Creator Berikan tanggung jawab kepada kelas B untuk menciptakan instance dari kelas A jika salah satu syarat ini terpenuhi : - B memuat A - B kumpulan dari A - B memiliki data inisialisasi untuk A - B me-record A - B menggunakan A Controller Berikan tanggung jawab penanganan pesan dalam system event kepada kelas yang menggambarkan : - Menggambarkan keseluruhan sistem, peralatan dan sub sistem. - Menggambarkan scenario pada use case dimana terjadinya system event. Low Coupling Tetapkan tanggung jawab pada masing-masing kelas sehingga ketergantungan antar kelas yang tidak diperlukan berkurang. High Cohesion Tetapkan tanggung jawab pada kelas-kelas sehingga kompleksitas sistem tetap terkontrol. Polymorphism Tetapkan tanggung jawab pada behaviour-behaviour menggunakan operasi polymorph. Pure Fabrication Berikan tanggung jawab pada behaviour class buatan yang tidak merepresentasikan domain proses dengan tujuan mengurangi coupling dan mempertahankan cohesion antar kelas. Indirection Berikan tanggung jawab pada objek penengah untuk menghubungkan komponen-komponen sehingga komponen tersebut tidak langsung berkaitan. Protected Variation Berikan tanggung jawab pada interface yang stabil antar objek sehingga objek-objek tersebut tidak saling mempengaruhi. - Menetapkan Design Class Diagrams Sebagai tambahan bagi sudut pandang dinamis terhadap kolaborasi objek dalam diagram interaksi, akan sangat berguna untuk menciptakan suatu sudut pandang statis terhadap definisi kelas dalam bentuk design class diagrams DCD. Diagram ini merepresentasikan atribut dan metode dari objek dalam sistem. DCD terdiri dari class beserta atribut serta asosiasi, interface, metode, tipe data atribut, navigasi serta dependencies ketergantungan. Class beserta atribut dan asosiasi diperoleh melalui conceptual class, sedangkan metode diperoleh melalui aktivitas yang tertera dalam interaction diagram. Navigasi diperoleh juga melalui interaction diagram sedangkan dependencies diperoleh melalui analisa pemenuhan fungsi, dimana pemenuhan fungsi suatu kelas bergantung pada parameter yang terdapat pada kelas lainnya. - Implementasi Desain ke dalam bahasa pemrograman Tahap akhir dalam proses pengembangan yaitu pengimplementasian desain yang telah dihasilkan ke dalam bahasa pemrograman. Pendefinisian kelas dalam perangkat lunak diperoleh dari design class diagram, sedangkan metode dari kelas-kelas tersebut dibuat berdasarkan rancangan dalam interaction diagrams. Berikut ini merupakan contoh sampel artifak dalam OOAD pada proses penjualan suatu produk : Gambar 2.16 Contoh Relasi antar Tahapan dalam OOAD Pada gambar diatas terlihat urutan proses OOAD melaui artifak- artifak UML. Tahapan pertama yaitu pembuatan use case berupa skenario keseluruhan proses yang dapat juga di presentasikan dalam bentuk use case diagram. Kemudian diterjemahkan ke dalam system sequence diagram untuk mengetahui aktivitas apa saja yang terjadi antara aktor diluar sistem dengan sistem, selain itu juga untuk mengetahui batasan dari sistem yang akan dibuat. Tahap selanjutnya adalah pembuatan domain model berupa conceptual class yang berisikan objekkonsep yang terdapat dalam sistem beserta atribut dan asosiasi antar objek-objek tersebut. Tahap selanjutnya adalah realisasi use case ke dalam interaction diagram menggunakan pola GRASP. Pola GRASP digunakan untuk menetapkan tanggung jawab tiap kelas yang telah dihasilkan untuk kemudian tanggung jawab tersebut digunakan untuk menetapkan metode bagi masing-masing kelas. Tahap selanjutnya yaitu pembuatan design class diagram berdasarkan conceptual class serta interaction diagram yang telah dihasilkan. Entitas kelas beserta atribut dan asosiasinya diperoleh dari conceptual class sedangkan metode, navigasi serta dependencies diperoleh dari interaction diagram. Tahap akhir adalah implementasi design class diagram yang telah ditetapkan ke dalam bahasa pemrograman. Desain kelas yang telah dihasilkan diimplementasikan ke dalam souce code pembangun sistem.

2.12 Game

Game komputer computer game adalah permainan video yang dimainkan pada komputer pribadi PC dan bukan pada konsol permainan, maupun mesin ding-dong. Permainan komputer telah berevolusi dari sistem grafis sederhana sampai menjadi kompleks dan mutakhir. Game komputer dibuat oleh satu atau lebih developer game, seringkali berhubungan dengan spesialis lain seperti artis game dan dipublikasikan baik secara mandiri maupun melalui pihak ketiga publisher. Game komputer didistribusikan melalui media fisik seperti DVD dan CD, bisa juga didownload di internet atau melalui layanan pengiriman online seperti Direct2Drive dan Steam. Game komputer seringkali membutuhkan hardware khusus di komputer pengguna untuk dapat memainkannya, seperti persyaratan spesifikasi graphic card atau kecepatan koneksi internet yang dibutuhkan untuk bermain game online, meskipun persyaratan ini berbeda antar game lainnya Ilham, 2008. Video game memiliki banyak jenis atau genre, antara lain: - Aksi Shooting, Genre game ini sangat memerlukan kecepatan refleks, koordinasi mata-tangan, juga timing, inti dari game jenis ini adalah tembak menembak, - Petualangan, Game genre ini murni petualangan yang lebih menekankan pada jalan cerita dan kemampuan berpikir pemain dalam menganalisa tempat secara visual, memecahkan teka-teki maupun menyimpulkan rangkaian peristiwa dan percakapan karakter hingga penggunaan benda-benda tepat pada tempat yang tepat. - Konstruksi dan simulasi manajemen, Genre game ini seringkali menggambarkan dunia di dalamnya sedekat mungkin dengan dunia nyata dan memperhatikan dengan detail berbagai faktor. Dari mencari jodoh dan pekerjaan, membangun rumah, gedung hingga kota, mengatur pajak dan dana kota hingga keputusan memecat atau menambah karyawan. - Simulasi kehidupan, Game simulasi kehidupan atau game kehidupan buatan melibatkan suatu kehidupan atau mengendalikan satu atau lebih kehidupan buatan. Sebuah game simulasi kehidupan di sekitar individu dan hubungan atau bisa menjadi simulasi ekosistem. - Role playing, Genre game ini sesuai dengan terjemahannya, bermain peran, memiliki penekanan pada tokohperan perwakilan pemain di dalam permainan, yang biasanya adalah tokoh utamanya, dimana seiring kita memainkannya, karakter tersebut dapat berubah dan berkembang ke arah yang diinginkan pemain biasanya menjadi semakin hebat, semakin kuat, semakin berpengaruh, dll dalam berbagai parameter yang biasanya ditentukan dengan naiknya level, baik dari status kepintaran, kecepatan dan kekuatan karakter, senjata yang semakin sakti ataupun jumlah teman maupun mahluk peliharaan. - Strategi, Kebalikan dari game jenis action yang berjalan cepat dan perlu refleks secepat kilat, video game jenis strategi, layaknya bermain catur, justru lebih memerlukan keahlian berpikir dan memutuskan setiap gerakan secara hati-hati dan terencana. - Puzzle, Game jenis ini sesuai namanya berintikan mengenai pemecahan teka-teki, baik itu menyusun balok, menyamakan warna