BAB II
TINJAUAN PUSTAKA 2.1 Artificial Intelligence
Pada awal kemunculannya di tahun 1950, Alan Turing dalam papernya yang berjudul Computing Machinery and Intelligence mengadakan tes dimana sebuah mesin di program membuktikan kemampuan sebuah mesin berpikir layaknya manusia. "I propose to consider the question, ‘Can machines think?’ " adalah pertanyaan yang dilontarkan Turing.
Setelah tes tersebut, banyak pakar yang mengemukakan definisi artificial intelligence
berdasarkan sudut pandangnya. Terkait masalah ini, definisi yang tepat untuk artificial intelligence yang akan diterapkan adalah definisi dari sudut pandang penelitian dimana artificial intelligence adalah “studi bagaimana membuat agar komputer dapat melakukan sesuatu sebaik yang dilakukan manusia”. (Kusumadewi, 2003) Struktur untuk membangun sebuah artificial intelligence terdiri dari dua bagian utama seperti pada gambar 2, yaitu : 1. Basis pengetahuan (knowledge base), berisi fakta – fakta, teori, pemikiran dan hubungan antar satu dengan lainnya. 2. Motor inferensi (inference engine), yaitu kemampuan menarik kesimpulan berdasarkan pengalaman.
Gambar 2.
Penerapan konsep artificial intelligence di komputer
7
Tinjauan Pustaka
8
Untuk membangun sebuah A.I diperlukan dua hal yaitu basis pengetahuan dan inference
engine. Inference engine merupakan sebuah program atau algoritma yang digunakan untuk mengambil keputusan. Berbagai informasi yang dipertimbangkan oleh inference engine
didapat dari basis pengetahuan. (Kusumadewi, 2003)
Basis pengetahuan adalah kumpulan informasi mengenai fakta, teori atau aturan. Informasi ini akan di gunakan sebagai dasar pertimbangan bagi inference engine. Untuk inference engine, mesin atau algoritma yang digunakan akan bergantung kepada domain dari A.I yang dibuat. (Kusumadewi, 2003)
Sedangkan untuk basis pengetahuan bergantung kepada struktur inference engine yang di gunakan. Inference engine pada domain game juga terbagi berdasarkan kepada genre game
yang dibuat. Karena algoritma A.I. pada game First Person Shooter dengan A.I. pada sebuah game strategi akan sangat berbeda. Dimana FPS akan lebih menitik beratkan pada pola pergerakan sebuah objek, sedangkan game strategi akan menitik beratkan kepada pengambilan keputusan yang terbaik atas informasi yang diberikan. (Kusumadewi, 2003) Lingkup utama dalam artificial intelligence (Kusumadewi, 2003) diantaranya adalah: 1. Sistem Pakar (Expert System). Disini komputer digunakan sebagai sarana untuk menyimpan pengetahuan para pakar. Dengan demikian komputer akan memiliki keahlian untuk menyelesaikan permasalahan dengan meniru keahlian yang dimiliki oleh pakar. 2. Pengolahan Bahasa Alami (Natural Language Processing). Dengan pengolahan bahasa alami ini diharapkan user dapat berkomunikasi dengan komputer menggunakan bahasa sehari-hari. 3. Pengenalan Ucapan (Speech Recognition). Melalui pengenalan ucapan diharapkan manusia dapat berkomunikasi dengan komputer menggunakan suara. 4. Robotika & Sistem Sensor (Robotics & Sensory Systems). 5. Computer Vision. Mencoba untuk dapat menginterpretasikan gambar atau objekobjek tamapk melalui komputer. 6. Intelligent Computer-aided Instruction. Komputer dapat digunakan sebagai tutor yang dapat melatih dan mengajar. 7. Game Playing. Pembuatan Aplikasi Game Dam-daman Untuk Perangkat Berbasis iOS Menggunakan Algoritma Minimax
Tinjauan Pustaka
9
2.1.1 Artificial Intelligence Game Playing Game playing adalah salah satu dari sekian banyak cabang ilmu dari artificial intelligence.
Ada
beberapa
alasan
mengapa
game
merupakan
domain
yang
baik
dalam
pengimplementasian artificial intelligence (Kusumadewi, 2003), yaitu:
1. Sangat mudah untuk menentukan ukuran kesuksesan dan kegagalannya (menang atau
kalah). 2. Ruang keadaannya dapat direpresentasikan. 3. Operator-operator yang digunakan tidak terlalu banyak.
4. Sebagian besar game dapat dimodelkan dengan mudah.
5. Sangat mungkin untuk dibandingkan dengan kemampuan manusia.
Pada penerapannya, artificial intelligence sendiri memiliki beberapa metoda untuk menentukan ruang keadaan dan metode pencarian. Untuk game playing dapat diterapkan pohon pencarian untuk menentukan ruang keadaan, dan untuk metode pencariannya sendiri, dapat dilakukan dengan dua cara (Kusumadewi, 2003), yaitu: 1.
Membentuk suatu prosedur sedemikian sehingga hanya gerakan yang baik saja yang dibangkitkan.
2.
Membentuk suatu prosedur pengujian sehingga gerakan (path) yang terbaik yang akan diuji pertama kali.
Proses evaluasi merupakan hal yang penting, cara dari perhitungan atau penilaian terhadap kualitas langkah yang mungkin dilakukan akan menjadi aturan dasar dari inference engine yang akan di bangun. Proses evaluasi dapat dilakukan secara rekursif atau secara statis. Pada evaluasi rekursif, dilakukan penilaian terhadap langkah yang mungkin dengan cara memberikan nilai pada setiap keadaan yang mungkin dan kemudian mengambil nilai yang terbaik untuk di ikuti. Pada fungsi evaluasi statis, dapat diperkirakan seberapa baik suatu elemen pada permainan dari pandangan manusia (Kusumadewi, 2003). Sebagai contoh: 1. Memberi bobot pada setiap bidak catur (anak = 1, kuda, benteng, mentri = 5, ratu = 10, raja = 100). 2. Dam-daman, Memberi bobot pada posisi di papan (sudut dari area persegi = 10, pingiran/sisi area persegi = 5, posisi lain = 1). Pembuatan Aplikasi Game Dam-daman Untuk Perangkat Berbasis iOS Menggunakan Algoritma Minimax
Tinjauan Pustaka
10
Pohon pencarian di buat untuk menghindari hal yang menjadi permasalahan pada graph
keadaan dimana proses pelacakan suatu node sangat mungkin menjadi siklus (berulang). Struktur pohon di gunakan untuk menggambarkan keadaan secara hirarkis. Pohon yang terdiri
dari node level -0 disebut dengan root. Node root menunjukan keadaan awal dari suatu ruang keadaan. Node yang merupakan percabangan dari node root dan node sebelum node itu sendiri adalah node suksesor yang sering di sebut dengan child. Node yang tidak memiliki child disebut node leaf dan menunjukan keadaan akhir suatu pencarian dari sebuah ruang
keadaan, dapat berupa tujuan (goal) atau jalan buntu (dead end). (Kusumadewi, 2003)
Untuk cabang game playing, teori artificial intelligence yang umum digunakan dalam board
game diantaranya adalah minimax, greedy dan weighted.
2.2 Algoritma Minimax Metode heuristik merupakan suatu strategi untuk melakukan proses pencarian ruang keadaan (state space) suatu problematika secara selektif yang memandu proses pencarian yang dilakukan sepanjang jalur yang memilik kemungkinan paling tinggi. Hal ini sangat membantu dalam mengembangkan efisiensi dalam proses pencarian, namun dengan kemungkinan mengorbankan kelengkapan pencarian. Salah satu metode heuristik yang banyak di gunakan pada bidang game adalah pengembangan dari teori Minimax. Minimax adalah teknik pencarian terhadap pohon pencarian menggunakan breadth first search dengan kedalaman terbatas. Fungsi evaluasi yang di gunakan pada Minimax adalah statis, dengan mengasumsikan bahwa lawan akan membuat langkah terbaik. Pada Minimax terdapat istilah ply yang pada umumnya dikenal dengan giliran. Nilai satu ply adalah satu giliran dari satu pemain, jika giliran sudah kembali kepada pemain yang telah melakukan gerakan, maka nilai ply-nya adalah 3 dan jika kembali lagi, maka menjadi 5 dan seterusnya bertambah berdasarkan giliran. (Kusumadewi, 2003) Pada algoritma minimax ada 2 prosedur yang dijalankan, yaitu maksimisasi (dilakukan oleh ‘saya’) dan minimisasi (dilakukan oleh ‘lawan’). Dalam hal ini diperlukan suatu fungsi evaluasi statis yang menyatakan nilai yang mungkin didapat oleh pemain untuk setiap pergerakan yang dilakukan. (Kusumadewi, 2003)
Pembuatan Aplikasi Game Dam-daman Untuk Perangkat Berbasis iOS Menggunakan Algoritma Minimax
Tinjauan Pustaka
11
Algoritma minimax yang banyak dituliskan sebagai contoh pseudocode adalah algoritma
minimax native. Menurut Wikipedia, berikut ini adalah pseudecodenya : function minimax(node,depth) if depth <= 0 then -- positive values are good for the maximizing player -- negative values are good for the minimizing player return objective_value(node) end -- maximizing player is (+1) -- minimizing player is (-1) local alpha = -node.player * INFINITY
local child = next_child(node,nil) while child = ~nil do local score = minimax(child,depth-1) alpha = node.player==1 and math.max(alpha,score) math.min(alpha,score) child = next_child(node,child) end
or
return alpha end
2.2.1 Alpha-beta Pruning Alpha-beta pruning adalah sebuah cara untuk mengurangi jumlah simpul yang dieksplorasi dalam algoritma minimax. Dengan alpha-beta, waktu yang diperlukan dalam pencarian akan berkurang dengan cara membatasi waktu yang terbuang percuma pada saat mengevaluasi pohon permainan. Implementasi alpha-beta akan memberikan jalur terbaik dalam setiap kemungkinan permainan dalam pohon permainan yang terbentuk. Dalam algoritma alpha-beta, urutan jalannya algoritma akan dimulai sama seperti algoritma minimax. Untuk simpul MIN, nilai yang dihitung dimulai dengan +infinity dan akan menurun seiring jalannya permainan. Untuk simpul MAX, nilai akan dihitung mulai dengan –infinity dan akan naik seiring berjalannya waktu. Efisiensi prosedur alpha-beta akan sangat tergantung pada urutan simpul berikutnya dari sebuah simpul yang sedang dieksplorasi. Jika beruntung, maka sebuah simpul MIN akan dianggap sebagai simpul dengan urutan nilai dari rendah ke tinggi, dan simpul MAX dari tinggi ke rendah. Secara umum, dapat diperlihatkan bahwa dalam kondisi terbaik, alpha-beta akan membuka jumlah terminal nodes yang sama dengan minimax dalam pohon permainan, dengan dua kali lipat tingkat kedalaman pohon. Gambar 3 adalah contoh gambar alpha-beta. Pembuatan Aplikasi Game Dam-daman Untuk Perangkat Berbasis iOS Menggunakan Algoritma Minimax
Tinjauan Pustaka
12
Gambar 3.
Contoh alpha-beta pruning
Algoritma alpha-beta akan mendata dua nilai: alpha dan beta, yang akan merepresentasikan nilai minimum untuk MAX, dan nilai maksimum untuk MIN. Pada awalnya nilai alpha adalah –infinity, dan beta bernilai awal +infinity. Selama jalannya rekursif, perbedaan nilai alpha dan beta akan semakin mengecil. Ketika nilai beta menjadi lebih kecil dari alpha, berarti keadaan saat ini bukan merupakan hasil terbaik dari kedua pemain, dan dengan demikian tidak perlu dieksplorasi lebih jauh. Menurut Wikipedia, berikut ini adalah pseudecode-nya: function alphabeta(node, depth, a, ß, Player) if depth = 0 or node is a terminal node return the heuristic value of node if Player = MaxPlayer for each child of node a := max(a, alphabeta(child, depth-1, a, ß, not(Player) )) if ß = a break (* Beta cut-off *) return a else for each child of node ß := min(ß, alphabeta(child, depth-1, a, ß, not(Player) )) if ß = a break (* Alpha cut-off *) return ß (* Initial call *) alphabeta(origin, depth, -infinity, +infinity, MaxPlayer)
Pembuatan Aplikasi Game Dam-daman Untuk Perangkat Berbasis iOS Menggunakan Algoritma Minimax
Tinjauan Pustaka
13
2.3 Tree
Tree merupakan salah satu bentuk struktur data bukan linier yang menggambarkan bentuk hierarki antara elemen-elemen. Tree biasanya terdiri dari root (akar) dan node (simpul-
simpul) yang berada di bawah root. Struktur seperti tree sangat banyak sekali digunakan dalam dunia nyata, misalnya: struktur organisasi suatu perusahaan, pengaturan file system,
daftar isi sebuah buku, dan masih banyak lagi (Halimsetiawan, 2009). Ilustrasinya seperti gambar 4.
Gambar 4.
Ilustrasi tree
Keterangan : 1. A adalah node root (akar). 2. B adalah parent dari D dan E. 3. C adalah sibling dari B. 4. D dan E adalah child dari B. 5. D, E, F, G dan I adalah external node atau leaves (daun). 6. A, B, C dan H adalah internal node. 7. Kedalaman dari E adalah dua. 8. Ketinggian tree adalah tiga.
Pembuatan Aplikasi Game Dam-daman Untuk Perangkat Berbasis iOS Menggunakan Algoritma Minimax
Tinjauan Pustaka
14
2.4 Metode Pencarian Dalam Tree
Beradasarkan artikel yang didapat dari University os New South Wales, Dalam sebuah tree, ada beberapa metode untuk menelusuri semua anggota tree tersebut diantaranya :
1. Depth-first search Depth-first search dimulai dengan cara menelusuri leaf dari node yang akan ditelusuri. Ilustrasinya seperti gambar 5.
Gambar 5.
Ilustrasi depth-first search
a. Dengan menelusuri node pertama, maka urutannya (pre-order traversal): a, b, d, h, e, i, j, c, f, k, g. b. Dengan menelusuri node children-nya, maka urutannya (post-order traversal): h, d, i, j, e, b, k, f, g, c, a. c. Dengan menelusuri beberapa node children-nya, lalu ke node lalu ke children lain maka urutannya (in-order traversal) : h, d, b, i, e, j, a, f, k, c, g.
Pembuatan Aplikasi Game Dam-daman Untuk Perangkat Berbasis iOS Menggunakan Algoritma Minimax
Tinjauan Pustaka
15
2. Breadth-first search
Gambar 6.
Ilustrasi breadth-first search
Ilustrasi pada gambar 6, breadth-first search dimulai dengan cara menelusuri tree berurutan berdasarkan level, maka urutannya : a, b, c, d, e, f, g, h, i, j, k. 3. Best-first search Best-first search digunakan untuk menelusuri tree berdasarkan nilai terbaik (minimum atau maksimum) yang dimiliki tiap node pada tree. Misalnya pada gambar 7.
Gambar 7.
Ilustrasi best-first search
Pembuatan Aplikasi Game Dam-daman Untuk Perangkat Berbasis iOS Menggunakan Algoritma Minimax
Tinjauan Pustaka
16
Secara umum, menurut Wikipedia logika best-first search adalah sebagai berikut: OPEN = [initial state]
CLOSED = [] while OPEN is not empty do 1. Remove the best node from OPEN, call it n, add it to CLOSED. 2. If n is the goal state, backtrace path to n (through recorded parents) and return path. 3. Create n's successors. 4. For each successor do: a. If it is not in CLOSED: evaluate it, add it to OPEN, and record its parent. b. Otherwise: change recorded parent if this new path is better than previous one. done
2.5 Graph Graph adalah istilah untuk suatu model stuktur data yang bersifat interkoneksi n-ke-n. Dalam matematika diskrit graph merupakan pokok bahasan penting yang membahas analisis & teori serta algoritma terkait dengannya. Dalam struktur data, hal-hal tersebut diperdalam dengan bahasan bagaimana model itu diterjemahkan menjadi struktur data yang dapat diimplementasikan. Pada dasarnya ada tiga cara implementasi graph: adjacent matrix, edge list, dan adjacent vertex list. Masing-masing memiliki keunggulannya sendiri terkait dengan query yang dilakukan pada cara-cara tersebut. (Setiawan, 2010) Graph merupakan kumpulan dari simpul dan busur yang secara matematis dinyatakan sebagai: G = (V, E) Dimana: G = Graph. V = Simpul atau vertex atau node. E = Busur atau edge atau arc.
Pembuatan Aplikasi Game Dam-daman Untuk Perangkat Berbasis iOS Menggunakan Algoritma Minimax
Tinjauan Pustaka
17
Beberapa sifat graph diantaranya :
1. Sebuah graph mungkin hanya terdiri dari satu simpul. 2. Sebuah graph belum tentu semua simpulnya terhubung dengan busur. 3. Sebuah graph mungkin mempunyai simpul yang tak terhubung dengan simpul
yang lain. 4. Sebuah graph mungkin semua simpulnya saling berhubungan.
2.6 Dam-Daman
merupakan sebuah permainan asah otak tradisional yang berasal dari Pulau Jawa. Dam-daman Permainan ini mirip dengan permainan checkers, dimana permainannya dimainkan oleh dua
orang. Tujuannya adalah menghabiskan bidak lawannya dengan cara melangkahi atau melompati bidak yang akan dimakan. Perbedaan yang mendasarnya adalah bentuk papan dan arah gerak bidak, dimana pada checkers arah gerak bidak adalah diagonal, sementara pada permainan dam-daman bidak bergerak dapat vertikal, horizontal, atau diagonal sesuai dengan garis yang tersedia pada posisi masing-masing bidak. (Sudradjat, 2012) Berikut ini komponen-komponen pada permainan dam-daman. 1. Papan Papan permainan dam-daman dapat dibuat dengan menggunakan kapur tulis/ spidol/ krayon di kertas, papan tulis, tanah atau lantai dan dapat hanya berupa kerangka (garis-garis). Ilustrasinya seperti pada gambar 8.
Gambar 8.
Papan permainan dam-daman
Pembuatan Aplikasi Game Dam-daman Untuk Perangkat Berbasis iOS Menggunakan Algoritma Minimax
Tinjauan Pustaka
18
2. Bidak
Dalam permainan dam-daman, terdapat 32 bidak dengan masing-masing 16 bidak yang dapat dimainkan oleh masing-masing kubu. Pion/bidaknya dapat diganti dengan batu dan bata kecil-kecil, kancing, kwuk, atau kertas yang dibentuk bulat-bulat.
Ilustrasinya seperti gambar 9 berikut saat bidak diletakkan dalam papan permainan.
Gambar 9.
Posisi bidak dalam papan permainan dam-daman
2.7 Xcode Berdasarkan artikel dari Apple Developer Tools, Xcode adalah sebuah paket yang menyediakan segala sesuatu yang dibutuhkan untuk membangun aplikasi untuk Mac, iPhone, and iPad. Xcode sangat erat integrasinya dengan Cocoa dan Cocoa Touch framework, menciptakan sebuah development environtment yang produktif dan mudah digunakan, sebagaimana Apple menggunakan tools untuk memproduksi Mac OS X dan iOS. Xcode dilengkapi dengan Xcode IDE, dengan Interface Builder sebagai alat untuk desain dan Apple LLVM compiler yang terintegrasi penuh. Instrument Analysis juga disertakan, bersama dengan tools lainnya untuk memfasilitasi para developer. Xcode IDE mengakomodasi setaip detail project yang dibuat, mengidentifikasi kesalahan dalam syntax dan logic, dan bahkan akan memperbaiki code dengan memberikan saran/sugesti dengan code yang berkaitan. Xcode memiliki GNU Compiler Collection dan mendukung bahasa pemrograman C, C++, Objective-C, Java, AppleScript, Phyton dan Ruby dengan banyak variasi model pemrograman termasuk Cocoa dan Carbon. Xcode menggunakan GNU Debugger sebagai back-end untuk debugger-nya dan telah digunakan untuk memproduksi ratusan ribu aplikasi untuk Mac OS X dan iOS.
Pembuatan Aplikasi Game Dam-daman Untuk Perangkat Berbasis iOS Menggunakan Algoritma Minimax
Tinjauan Pustaka
19
Engine 2.8 Game
Game engine adalah sebuah perangkat lunak yang dirancang untuk membangun sebuah game. Game engine biasanya menyediakan berbagai library yang dapat digunakan dalam pembuatan
game. Beberapa library tersebut antara lain physic engine, rendering machine baik untuk grafis 2D maupun 3D, pengelolaan suara, jaringan, animasi, threading, dan library lainnya
sesuai dengan jenis dari game engine itu sendiri. Sebuah perangkat lunak dapat dikatakan game engine apabila setidaknya dapat melakukan berbagai pengelolaan yang dibutuhkan
dalam pembuatan game seperti: pengelolaan model (2D atau 3D), menyediakan berbagai dibutuhkan dalam pembuatan game, menyediakan editor, script serta compiler library yang yang dapat digunakan untuk kebutuhan programming.
Dengan adanya game engine, proses pembuatan dan pengembangan sebuah game bisa menjadi lebih mudah. Ada berbagai jenis game engine yang tersedia, baik yang dibuat spesifik untuk sebuah platform maupun multi-platform. Beberapa game engine 2D untuk iOS yang terkenal diantaranya adalah cocos2d, Corona, iTorque2D, GameSalad, dan lain-lain. (Mobile Game Engines, 2012) Perbandingan dijelaskan pada tabel 1 berikut: Tabel 1. Game engine 2D untuk iOS
Game Engine App Game Kit BatteryTech Cocos2d for iPhone Corona SDK GameSalad iTorque 2D
Free Ware
Orientations
Skill
√ Free trial Basic -
2D 2D, 3D 2D 2D, 3D 2D 2D
Intermediate Intermediate Intermediate Intermediate Beginner Intermediate
Keaktifan Komunitas Aktif Aktif Sangat aktif Sangat aktif Sangat aktif Sangat aktif
Pembuatan Aplikasi Game Dam-daman Untuk Perangkat Berbasis iOS Menggunakan Algoritma Minimax
Tinjauan Pustaka
20
2.9 Scalable Vector Graphics
SVG adalah singkatan dari Scalable Vector Graphics dan merupakan format file baru untuk menampilkan grafik dalam pengembangan web yang berbasis XML (eXtensible Markup
Language). (Januar, 2008) SVG telah direkomendasikan oleh World Wide Web Consortium (W3C) untuk menampilkan grafik serta mendeskripsikan gambar 2 dimensi dalam pengembangan web yang berbasis
XML. (Widiatmoko dan Wahid 2006) SVG terdiri dari tiga tipe obyek grafis, yaitu bentuk vektor grafis (misalkan jalur yang terdiri dari garis lurus dan kurva), gambar dan teks. Hasil
dari SVG cukup interaktif dan dinamis. Animasi dapat didefinisikan dan ditimbulkan dengan
cara menempelkan elemen animasi SVG pada isi SVG atau dengan menggunakan scripting. SVG dapat digunakan untuk menghasilkan berbagai macam variasi dari obyek grafis, dan juga menyediakan bentuk dasar umum seperti bujur sangkar dan elips. SVG memberikan pengendalian kualitas melalui sistem koordinat dari obyek grafis yang telah didefinisikan dan transformasi yang akan digunakan selama proses render. (Januar, 2008) Penyimpanan berkas (file) SVG dilakukan dengan cara memberi nama ekstensinya dengan “.svg” (memakai huruf kecil semua), dan untuk menyimpan file SVG yang terkompresi memakai ekstensi “.svgz” (semua memakai huruf kecil).
2.10 Object-Oriented Software Engineering OOSE salah satu teknik desain perangkat lunak yang digunakan pada object-oriented programming. OOSE terdiri atas 4 alur kerja utama yaitu: analisis berorientasi objek, perancangan berorientasi objek, implementasi yang ada didalamnya terdapat teknik pemograman berorientasi objek, dan pengujian perangkat lunak.
Pembuatan Aplikasi Game Dam-daman Untuk Perangkat Berbasis iOS Menggunakan Algoritma Minimax
Tinjauan Pustaka
21
Gambar 10.
Struktur OOSE
Gambar diatas merupakan gambar struktur dari OOSE yang dikembangkan Ivar Jacobson, pada tahun 1992. OOSE sendiri merupakan salah satu pendahulu dari UML, seperti Booch dan OMT. Untuk setiap alur kerja yang dilakukan akan menggunakan tools dari UML seperti berikut: 1. Requirement model : Use case diagram 2. Analysis model : Penentuan scenario untuk setiap use case 3. Design model : Sequence diagram, state transition diagram 4. Implementation model : Deployment diagram
Pembuatan Aplikasi Game Dam-daman Untuk Perangkat Berbasis iOS Menggunakan Algoritma Minimax
Tinjauan Pustaka
22
2.10.1 Use Case Diagram Konsep use case diperkenalkan pertama kali oleh Ivar Jacobson dalam metode object-
oriented software engineering. Fungsionalitas dari sebuah sistem dideskripsikan dalam use
case yang berbeda, dimana masing-masingnya merepresentasikan alur kejadian yang spesifik
yang terjadi dalam sistem. (Bahrami, 1999)
Deskripsi dari sebuah use case menjelaskan apa yang terjadi di dalam sistem ketika use case dilakukan. Intinya, use case model mendefinisikan aktor dan use case dari perilaku sebuah case diinisiasi oleh aktor dan aliran-aliran kejadian yang dapat dilakukan oleh sistem. Use
aktor dijelaskan. Aktor adalah sesuatu yang berinteraksi dengan sebuah use case. Aktor bisa
jadi adalah human user, external hardware atau sistem lain. (Bahrami, 1999) Use case diagram adalah sebuah diagram yang menggambarkan aktor, kumpulan use case yang dibatasi oleh system boundary, komunikasi (partisipasi), asosiasi diantara aktor dan use case dan generalisasi diantara use case. (Bahrami, 1999)
2.10.2 Class Diagram Class diagram merupakan struktur diagram yang menggambarkan struktur class, package dan objek beserta hubungan satu sama lain. Class merupakan sebuah spesifikasi yang jika diinstansiasi akan menghasilkan objek. Class menggambarkan atribut suatu sistem. Class diagram terdiri dari tiga komponen, yaitu: 1. Nama class. 2. Atribut. 3. Method. Sebuah class sangat memungkinkan memiliki hubungan dengan class yang lainnya, hubungan antar class dalam class diagram diantaranya adalah: 1. Association. 2. Composition. 3. Dependency. 4. Composition.
Pembuatan Aplikasi Game Dam-daman Untuk Perangkat Berbasis iOS Menggunakan Algoritma Minimax
Tinjauan Pustaka
23
2.10.3 Sequence Diagram Sequence diagram adalah diagram yang mendeskripsikan perilaku dari sebuah sistem dengan
cara melihat interaksi antara sistem dengan environtment-nya. Sequence diagram merupakan
salah satu cara alternatif untuk mengerti alur kontrol sebuah program secara keseluruhan.
(Bahrami, 1999)
Sebuah sequence diagram menunjukkan interaksi yang diurutkan berdasarkan urutan waktu. Sequence diagram memperlihatkan objek-objek yang berpartisipasi dalam sebuah interaksi melalui lifeline dan message yang dikirim dan diterima. (Bahrami, 1999)
Sebuah sequence diagram memiliki dua dimensi: dimensi vertikal yang merepresentasikan waktu dan dimensi horizontal yang merepresentasikan objek yang berbeda. Garis vertikal
biasa disebut object lifeline. Lifeline merepresentasikan waktu kemunculan objek saat terjadinya sebuah interaksi. Sebuah objek ditunjukkan dalam sebuah box yang berada di atas garis vertikal. (Bahrami, 1999)
Pembuatan Aplikasi Game Dam-daman Untuk Perangkat Berbasis iOS Menggunakan Algoritma Minimax