BAB II TINJAUAN PUSTAKA
2.1.
State of the Art Design and Implementation for an Android based Massively Multiplayer
Online Augmented Reality Game dilakukan oleh Prof. Alejandro Buchmann dan Max Lehn. Thesis ini berisi perancangan game mobile berbasis Android dengan fitur Massive-Multiplayer Online Augmented Reality Game. Game ini berupa sebuah game tower defense dengan fitur multiplayer dengan map yaitu canvas dari Google Maps. Selain itu, pada thesis ini juga dijelaskan bahwa komunikasi jarak dekat (Wi-Fi, Bluetooth) memiliki beberapa kelebihan daripada server-based terutama untuk augmented reality games. (Basuki, L.R. & Dimas F 2013.) Rancang Bangun Permainan Ceki Online dibuat oleh I Putu Arya Kusuma Wijaya. Hal yang diangkat pada tulisan ini yaitu pembuatan permainan Ceki berbasis web. Permasalahan yang ditemui adalah Permainan Ceki yang dikembangkan ke dalam permainan komputer harus mampu mengakomodasi pemain sebanyak lima orang dalam satu meja. Aturan-aturan umum yang berlaku dalam permainan ceki seperti mecari, nyaga, dan menang harus dapat diimplementasikan ke dalam permainan. Aturan dalam judi pada permainan ini tidak diimplementasikan, hanya sebatas aturan umum dalam permainan sehingga penelitian tidak mengarah pada perjudian. Sistem permainan menggunakan Arsitektur Client-Server yang dimainkan pada jaringan Internet menggunakan web browser. Kekurangan dari sistem ini adalah tidak adanya fasilitas untuk komunikasi antar pemain. (Arya, K.W 2012.) Rancang Bangun Aplikasi Massive Multiplayer Online Role Playing Game Berbasis Client-Server dengan Optimalisasi Paket dibuat oleh Yogi Ario Kusuma dan Hadi Chandra Kusuma. Hal yang diangkat pada tulisan ini adalah pembuatan game Massive Multiplayer Online Role Playing Game (MMORPG) dengan optimalisasi pada paket agar konsumsi bandwidth antara client dan server
5
6
dapat digunakan semaksimal mungkin. Koneksi pada sistem menggunakan tipe koneksi TCP/IP karena pada MMORPG kecepatan tidak diutamakan. Hasil yang didapat dari perancangan sistem tersebut adalah semakin banyak client yang terhubung pada server, maka rata-rata bytes/detik yang dikirimkan semakin besar begitu juga dengan rata-rata paket/detik. Pengiriman paket dengan menggunakan optimalisasi paket akan menggunakan bandwidth yang jauh lebih sedikit dibandingkan dengan tidak menggunakan optimalisasi paket. (Olu. A. 2012.)
2.2.
Permainan Kartu Tradisional Bali Permainan Kartu Tradisional di Bali sangat beragam dimulai dari aturan
bermain, media permainan, dan budaya adat masing-masing daerah di Bali. Secara umum media permainan yang digunakan dalam permainan kartu tersebut dibagi menjadi tiga, yaitu permainan menggunakan Kartu Domino, Kartu Remi, dan Kartu Ceki. Permainan-permainan kartu tersebut memiliki ciri khas tersendiri dimulai dari tingkat popularitas dan tujuan dari permainan tersebut dimana beberapa pihak memainkan permainan kartu tersebut sebagai penghilang penat atau dijadikan sebagai ajang judi. Berikut penjelasan beberapa permainan pada tiap-tiap media permainan kartu. 2.2.1.
Permainan Cekian Permainan Ceki merupakan salah satu permainan kartu di Bali.
Permainan ini sebagian besar dimainkan saat ada kegiatan upacara keagamaan seperti ngaben untuk menghilangkan rasa bosan saat begadang. Permainan ini secara umum dikenal sebagai salah satu permainan judi, karena mempergunakan uang sebagai taruhan. (Arya, K. 2012, h.7) Permainan Ceki memiliki beberapa istilah atau aturan dalam memainkannya. Adapun istilah-istilah atau aturan Permainan Ceki pada daerah Kabupaten Jembrana adalah sebagai berikut. 1.
Mukak merupakan istilah untuk mengambil kartu hasil dari kocokan. Daerah lain di Bali sering menggunakan istilah ngupak.
2.
Ngejuk merupakan istilah untuk mengambil kartu buangan pemain sebelumnya. Selain istilah ngejuk beberapa daerah di Bali menggunakan
7
istilah nuduk. Pemain yang melakukan ngejuk atau nuduk disebut pengejuk atau penuduk. 3.
Ngutang merupakan istilah saat pemain membuang sebuah kartu dari tangan. Pemain yang melakukan ngutang disebut pengutang.
4.
Medua merupakan kartu kembar sebanyak dua lembar.
5.
Soca merupakan tiga lembar kartu di tangan yang memiliki bentuk tepi dan tengah kembar.
6.
Serigat merupakan tiga lembar kartu di tangan yang memiliki bentuk tepi yang sama. Serigat terdiri dari dua jenis, yaitu serigat dua dan serigat telu. Serigat dua merupakan kartu dengan komposisi medua dan sebuah tepi yang sama dengan kartu medua, sedangkan serigat telu merupakan kombinasi tiga lembar kartu yang memiliki motif tengah berbeda namun memiliki tepi yang sama.
7.
Mecari merupakan kondisi pemain menunggu kartu terakhir saat pemain sudah mengumpulkan satu buah soca, dua buah serigat, dan dua lembar kartu dengan motif kembar. Kondisi lain dari mecari adalah mecari lima. Mecari lima merupakan kondisi saat pemain memiliki kartu dengan tepi yang sama sebanyak lima lembar terdiri dari dua set medua dan satu lembar kartu yang disebut penyelah. Pemain harus memilih kartu set medua yang akan dijadikan carian untuk menang.
8.
Nyaga merupakan kondisi pemain menunggu kartu terakhir setelah mengumpulkan dua buah soca, satu buah serigat dan dua lembar kartu dengan tepi yang sama. Kondisi nyaga memiliki aturan setiap pemain yang melakukan “mukak”, kartu yang dibuka harus diperlihatkan ke pemain dalam kondisi nyaga. Kondisi lain dari nyaga adalah nyaga lima. Nyaga lima merupakan kondisi saat pemain memiliki kartu dengan tepi yang sama sebanyak lima lembar terdiri dari dua set medua dan satu lembar kartu yang disebut penyelah. Pemain harus memilih kartu set medua yang akan dijadikan jagaan untuk menang.
9.
Mbet merupakan istilah saat kartu terakhir yang di-cari atau di-jaga pada proses mecari atau nyaga sudah keluar atau terbuang, sehingga pemain
8
tidak bisa menang. Pemain yang mengalami mbet biasanya akan mengganti kartu yang dicari dan dijaga sehingga status mecari atau nyaga dihapus. 10.
Minde merupakan kondisi saat pemain pertama membuang kartu yang sama sebanyak dua kali dan kartu yang dibuang tersebut diambil oleh pemain berikutnya. Apabila pemain pertama ini menang, maka pemain ini tidak akan mendapat poin. Minde bisa ditiadakan saat pemain membuang kartu kedua saat akan mencapai kondisi mecari atau nyaga. Minde juga dapat dinegosiasikan antar pengejuk dan pengutang supaya si pengutang tidak mendapat hukuman. Terkadang minde juga tidak ketahuan bila pemain lain tidak melihat. Para pemain juga dapat mengatur apakah minde dipakai dalam permainan atau tidak. (Arya, K. 2012, h.7-10)
Adapun istilah atau aturan pemain dalam mendapatkan poin kemenangan adalah sebagai berikut. 1.
Ngambah merupakan kondisi saat pemain berada pada kondisi mecari atau nyaga dan mendapat kartu terakhir yang ditunggu, maka pemain akan mendapatkan poin satu.
2.
Ngandang merupakan kondisi saat pemain berada pada kondisi mecari dan nyaga, namun kartu yang menjadi carian atau jagaan berupa kartu kembar atau medua. Saat pemain yang nyaga ini membuka kartu dari kocokan dan mendapat kartu yang sama seperti jagaan atau carian, maka pemain dikatakan ngandang dan mendapat dua poin.
3.
Mebarak-barakan merupakan istilah dalam permainan ceki dimana kartu yang dipakai dalam sistem ini adalah kartu yang memiliki warna merah seperti raja, kenci dan besar. Apabila salah satu dari kartu yang berwarna merah dipakai mecari atau nyaga dan kartu tersebut muncul, maka pemain akan mendapat poin tambahan. Mebarak-barakan bisa dilakukan tergantung persetujuan pemain.
9
4.
Pacokan merupakan istilah permainan saat pemain memiliki kartu medua kemudian meletakkannya diatas meja, jika kartu yang dicari terbuka dan pemain pacokan yang membuka kartu sehingga membentuk soca, maka pemain mendapatkan poin tambahan. Pacokan bisa dilakukan tergantung persetujuan pemain.
5.
Sapih atau nyapih merupakan istilah saat permainan berakhir dengan kartu tumpukan habis. Sapih dapat disebut dengan seri, karena tidak ada pemain yang mendapatkan kemenangan.
Aturan Permainan Ceki ini sangat flexibel tergantung dari keinginan pemain yang sedang bermain dan daerah asal permainan. Nilai dari kemenangan juga dapat diatur oleh pemain. Jumlah pemain biasanya 2-5 dalam satu meja, namun dengan kondisi jumlah kartu yang banyak dan tantangan dalam permainan, permainan ini paling nyaman dimainkan oleh lima orang. (Arya, K. 2012, h.10-12)
2.2.2.
Permainan Kartu Remi Permainan Kartu Remi menggunakan Kartu Remi sebagai media
permainan. Permainan ini dimainkan oleh maksimal 6 orang. Pemenang permainan ini adalah pemain yang mampu nutup atau memiliki point kartu tertinggi. Nutup merupakan kondisi dimana pemain memiliki minimal 3 kartu dengan angka berurutan, simbol yang sama, dan satu buah kartu yang digunakan sebagai “penutup”. Permainan dimulai oleh seorang pemain membagikan kartu satu persatu ke setiap pemain sebanyak tujuh buah kartu dan sejumlah 8 buah kartu ke pemain yang membagikan kartu tersebut. Pemain yang memiliki 8 buah kartu membuang 1 kartu yang sekiranya tidak menguntungkan, kemudian pemain berikutnya (pemain dengan kurang dari 8 kartu) mengambil 1 buah kartu dari deck dan membuang kartu yang tidak menguntungkan. Kartu-kartu yang telah dibuang tadi dikumpulkan secara berurutan dan dapat diambil oleh pemain tetapi pemain tersebut tidak perlu mengambil kartu yang ada pada deck. Apabila tidak ada pemain yang nutup, maka pemenang ditentukan dengan cara perbandingan point masing-masing pemain. Point ditentukan oleh urutan-urutan kartu yang dimiliki oleh pemain. Kartu dengan
10
angka 2 sampai 9 memiliki nilai masing-masing sebesar 5, J sampai K sebesar 10, dan khusus Kartu As memiliki point sebesar 15. Pengurangan point juga akan terjadi apabila ada kartu yang tidak memiliki pasangan dengan pengurangan point yang sama dengan nilai-nilai di atas.
2.2.3.
Permainan Kartu Spirit Spirit merupakan permainan kartu yang berasal dari Bali dengan media
permainan berupa Kartu Domino. Permainan Spirit ini hampir mirip dengan permainan Qiu-qiu tetapi dengan jumlah kartu yang berbeda dan dengan aturan yang berbeda pula. Permainan Spirit dimulai dengan jumlah pemain sebanyak 2-6 orang dengan seorang pemain bertindak sebagai dealer. Dealer bertugas untuk membagikan kartu yang telah diacak kepada pemain sebanyak 3 tahapan dengan masing-masing tahapan pemain mendapatkan satu buah kartu. Dealer juga bertugas untuk membayar taruhan kepada pemain yang menang. Pemain dinyatakan menang apabila nilai kartu yang dimiliki oleh pemain itu lebih besar daripada kartu yang dimiliki oleh dealer. Nilai kartu ditentukan dengan menjumlahkan berapa dot yang ada pada keseeluruhan kartu pemain. Total kartu yang dimiliki oleh pemain adalah 2 dengan tambahan 1 kartu optional yang diberikan oleh dealer apabila pemain “meminta” kartu tambahan. Kartu optional hanya diberikan satu kali saja dengan fungsi untuk menambah nilai kartu yang dimiliki oleh pemain. Berikut gambaran contoh Permainan Spirit. Pembagian kartu pertama dilakukan oleh dealer ke semua pemain yang ada pada meja.
11
Dealer
player 3
player 1
player 2
Gambar 2. 1. Dealer Membagikan Kartu Pertama
Gambar 2.1 mengilustrasikan pembagian kartu pertama oleh dealer dan kartu yang dimiliki oleh masing-masing pemain dan dealer. Player 1 memiliki nilai kartu sebesar 6, player 2 sebesar 2, player 3 sebesar 3 dan dealer sebesar 0. Tahap kedua yaitu dealer melakukan pembagian kartu kedua dan menentukan udeg. Udeg merupakan berapa besar nilai taruhan yang bisa diperoleh oleh masing-masing pemain dengan kondisi menang. Misal dealer menentukan udeg sebesar 10.000 kemudian player 1 memasang taruhan sebesar 15.000, apabila player 1 tersebut menang maka total taruhan yang dia dapat hanya sebesar 10.000 dan player 2 dan 3 tidak akan mendapatkan bayaran taruhan meskipun mengalami kemenangan. Tahap kedua ini juga menentukan berapa besar taruhan yang dipasang oleh masing-masing pemain.
12
20.000 Dealer
5000
5000
player 3
player 1
7000
player 2
Gambar 2. 2. Tahap Kedua Permainan
Gambar 2.2 mengilustrasikan tahap kedua Permainan Spirit. Player 1 memiliki nilai kartu sebesar 17 tetapi pada Permainan Spirit nilai kartu hanya ditentukan oleh nilai satuan, dengan hal ini nilai kartu terbesar dari Permainan Spirit adalah 9 dan nilai terkecil adalah 0. Jadi pada ilustrasi ini, nilai kartu yang dimiliki oleh player 1 adalah 7, player 2 sebesar 4, player 3 sebesar 3, dan dealer sebesar 9. Dealer menentukan udeg sebesar 20.000, player 1 bertaruh sebesar 5.000, player 2 sebesar 7.000, dan player 3 sebesar 5.000. Tahap ketiga pada permainan ini adalah tahap tambahan dimana pemain diberi kesempatan untuk menambah nilai kartu yang telah dimiliki agar mendekati nilai terbesar yaitu 9. Selain nilai 9, terdapat nilai eksklusif yang dapt diperoleh oleh pemain yang disebut dengan triple. Nilai triple ini didapatkan apabila semua kartu yang dimiliki oleh pemain merupakan kartu palang (kartu dengan kedua jumlah dot-nya sama). Ilustrasi pada Gambar 2.2 menunjukkan player 2 memiliki 2 buah kartu palang yaitu 1,1 dan 6,6 dengan demikian player 2 memiliki peluang untuk mendapatkan nilai triple.
13
20.000 Dealer
5000
5000
player 3
player 1
7000
player 2
Gambar 2. 3. Tahap Ketiga Permainan
Gambar 2.3 menunjukkan tahapan ketiga pada Permainan Spirit. Player 2 meminta kartu tambahan karena adanya peluang untuk mendapatkan kartu triple. Player 3 meminta kartu tambahan karena kartu yang dimiliki oleh pemain tersebut cukup jauh dari nilai 9. Tahap akhir Permainan Spirit adalah penentuan pemenang dan pembayaran taruhan oleh dealer. Dealer pada contoh permainan di atas memiliki nilai kartu sebesar 9, player 1 sebesar 7, player 2 mendapatkan triple, dan player 3 sebesar 9. Player 1 memiliki nilai kartu lebih kecil dari dealer sehingga taruhan yang dipasang oleh pemain tersebut diambil oleh dealer. Player 2 juga mengalami kekalahan karena nilai kartu yang dimiliki oleh pemain tersebut tidak lebih dari nilai kartu yang dimiliki dealer. Kemenangan didapatkan oleh player 2 dengan nilai kartu yang dimiliki adalah triple, sehingga player 2 berhak mendapatkan bayaran taruhan dari dealer. Pembayaran taruhan yang harus dibayar oleh dealer ke player 2 adalah sebesar tiga kali lipat jumlah taruhan yang dipasang oleh player 2 yaitu sebesar 21.000 karena player 2 mendapatkan triple. Namun, udeg yang dipasang
14
oleh dealer sebesar 20.000 sehingga player 2 hanya mendapatkan bayaran sebesar 20.000. Aturan pembayaran lain yang terdapat pada Permainan Spirit adalah dua kali lipat taruhan dengan kondisi pemain mengalami kemenangan dengan nilai kartu sebesar 9.
2.3.
Game Teori game atau permainan adalah suatu cara belajar yang digunakan
dalam menganalisa interaksi antara sejumlah pemain maupun perorangan yang menunjukkan strategi-strategi yang rasional. Teori permainan pertama kali ditemukan oleh sekelompok ahli matematika pada Tahun 1944. Teori itu dikemukakan oleh John von Neumann and Oskar Morgenstern yang berisi: “Permainan terdiri atas sekumpulan peraturan yang membangun situasi bersaing dari dua sampai beberapa orang atau kelompok dengan memilih strategi yang dibangun
untuk
memaksimalkan
kemenangan
sendiri
atau
pun
untuk
meminimalkan kemenangan lawan. Peraturan-peraturan menentukan kemungkinan tindakan untuk setiap pemain, sejumlah keterangan diterima setiap pemain sebagai kemajuan bermain, dan sejumlah kemenangan atau kekalahan dalam berbagai situasi” (Theory of Games and Economic Behavior (3rd ed. 1953)). Permainan komputer (computer game) adalah permainan video yang dimainkan pada komputer pribadi, dan bukan pada konsol permainan, maupun mesin ding-dong. Permainan komputer telah berevolusi dari sistem grafis sederhana sampai menjadi kompleks dan mutakhir. Namun, pasar permainan komputer di Amerika Serikat mulai menurun sejak Tahun 1999. Game komputer dibuat oleh satu atau beberapa pengembang game, biasanya bersama dengan spesialis lainnya (seperti game artists) dan dipublikasikan baik secara sendiri atau melalui penerbit pihak ketiga. Mereka kemudian mendistribusikan pada media fisik seperti DVD dan CD, atau dapat didistribusikan secara bebas melalui internet, software, atau melalui jasa pengiriman online seperti Direct2Drive dan Steam. Game komputer membutuhkan hardware khusus di komputer pengguna untuk bermain, seperti generasi spesifik unit pemrosesan grafik
15
atau koneksi internet untuk bermain online, meskipun persyaratan sistem ini bermacam-macam pada setiap game.
Konsep Pengembangan Game Berikut ini merupakan konsep pengembangan game yang digunakan baik itu komponen game ataupun interaksi game. 2.3.1.1.
Komponen Game Terdapat beberapa komponen yang digunakan dalam game. Berikut ini
akan dijelaskan tentang komponen Game yaitu narrative dan Gameplay. 1.
Narrative banyak permainan memiliki unsur-unsur naratif yang memberikan konteks untuk sebuah event pada game, membuat aktivitas bermain kurang abstrak dan meningkatkan nilai hiburan, meskipun unsur-unsur naratif yang tidak selalu jelas hadir atau hadir di semua. Tetris adalah contoh permainan tanpa narasi. Perlu dicatat bahwa beberapa narratologists mengklaim bahwa semua permainan memiliki unsur narasi. Beberapa melangkah lebih jauh dan menyatakan bahwa permainan yang pada dasarnya merupakan bentuk naratif. Narrative dalam praktiknya dapat menjadi titik awal bagi pengembangan permainan, atau alternatif yang dapat ditambahkan ke desain yang dimulai sebagai serangkaian mekanika game. Elemen Narrative dari permainan adalah aspek utama dari permainan yang digunakan dalam pemasaran, karena kemudahan yang mereka dapat terkait media noninteraktif.
2.
Gameplay istilah yang umum digunakan untuk menggambarkan aspek desain interaktif video game. Gameplay melibatkan interaksi pemain dengan permainan, biasanya untuk tujuan hiburan, pendidikan atau pelatihan.
2.3.1.2.
Interaksi Interaksi yang dilakukan dalam game adalah ketika user dapat
berkomunikasi dengan user lainnya dalam waktu yang bersamaan walau tempat
16
mengakses game tersebut berbeda. Interaksi yang dilakukan bisa saja berupa chatting pada saat bermain, atau kerja sama team dalam game tersebut, contohnya seperti game online Ayo-dance, Counter-Strike (CS), ataupun Defense of the Ancients (DotA). Sebuah penelitian mengenai dampak dari game online terhadap kehidupan sosial pemainnya mengemukakan bahwa beberapa game online ternyata dapat mendorong terjadinya interaksi sosial dan cara baru memandang dunia. Penelitian tersebut dijalankan oleh Constance Steinkuehler dan Dmitri Williams. Steinkuehler adalah professor pendidikan dari University of Wisconsin di Madison dan Williams adalah professor komunikasi verbal dari University of Illinois di Urbana-Champaign. Menurut mereka, game online telah menjadi sebuah media sosial yang dinamakan Third Places. Istilah Third Places dikemukakan pertama kali oleh sosiologis bernama Ray Oldenburg pada Tahun 1999 untuk menjelaskan tempat fisik di luar rumah dan tempat kerja yang digunakan orang untuk interaksi sosial secara informal. Rangkuman dari penelitian tersebut diterbitkan pada Bulan Agustus ini di Journal of Computer-Mediated Communication dengan judul Where Everybody Knows Your (Screen) Name: Online Games as Third Places. Menurut mereka, selain sebagai tempat untuk interaksi sosial antara orang dengan kegemaran yang sama, game online juga dapat menjadi jembatan komunikasi untuk berbagi pandangan mengenai dunia dari orang yang berbeda pandangan dengan Anda.
Kategori Game Game dapat dibagi menjadi beberapa kategori sesuai jenis permainan, cara memainkan, maupun alat untuk memainkannya. Berikut merupakan beberapa kategori game. Fun Games Permainan
ini
biasanya
dibuat
untuk
hiburan
semata
tanpa
mengutamakan alur cerita, makna, maupun grafik yang terpenting adalah pemain yang memainkan game ini merasa terhibur. Contohnya, Flappy Bird.
17
Arcade Games Arcade Games merupakan jenis permainan dengan tingkat kesulitan yang semakin bertambah. Pertama pemain akan dihadapkan pada rintangan yang mudah kemudian semakin lama rintangan tersebut akan semakin sulit dan rumit.
Strategic Games Permainan dengan jenis game strategi ini mengharuskan pemain untuk memikirkan strategi agar dapat menang atau bertahan dari gempuran musuh maupun untuk menyerang musuh. Contoh permainan strategi antara lain Tower Defense, Stronghold Crusader, Age of Empires.
Adventure Games Adventure Games terbagi menjadi tiga macam yaitu petualangan biasa (Multi Layered Adventur), Dungeon-Underworld Adventure dan Roll Playing Game Adventure. Algoritma untuk membuat game ini adalah sedang sampai sulit. Tapi grafik jenis permainan ini biasanya menggunakan grafik 3D kelas tinggi. Contoh beberapa permainan jenis ini adalah Assassin Creed, Thief, Watchdog.
Simulation Games Simulation Games merupakan jenis game yang memberikan tantangan kepada pemain terhadap cara dalam menggunakan atau menjalankan sesuatu. Misalnya cara bermain gitar atau cara menerbangkan pesawat maupun life simulation. Contoh permainan ini adalah Rocksmith, The Sims, dan Gran Turismo.
2.4.
Multiplayer Multiplayer merupakan fitur yang memungkinkan permainan tersebut
dimainkan oleh lebih dari 1 orang pada saat yang bersamaan. Fitur multiplayer menyediakan sarana dalam berinteraksi dengan orang lain baik itu dalam partnership ataupun dalam berkompetisi. Multiplayer game ini menggunakan satu resource yang di-share ke beberapa system dengan menggunakan jaringan sehingga
18
memungkinkan untuk dimainkan secara bersamaan dan juga realtime. Terdapat 2 jenis multiplayer system yang dibedakan dari sistem networking-nya. 2.4.1
Non-Networked System Non-Networked System merupakan sistem multiplayer games yang tidak
memerlukan suatu jaringan untuk bisa dimainkan secara multiplayer. Sistem seperti ini biasanya terdapat pada game console dan memerlukan 2 atau lebih controller yang digerakkan oleh masing-masing pemain. Contoh non-networked sistem antara lain Sony PlayStation, Nintendo, dan Sega.
2.4.2
Networked System Networked System dikenal dengan nama netplay merupakan sistem
multiplayer games yang menggunakan jaringan internet, LAN, wireless, atau Bluetooth untuk menghubungkan pemain yang satu dengan pemain yang lainnya. Sistem ini mengharuskan dua atau lebih perangkat dengan aplikasi game yang sama dan menyambungkan perangkat–perangkat tersebut satu sama lain. Biasanya terdapat satu perangkat yang bertindak sebagai server dan perangkat lainnya sebagai client. Contoh networked system antara lain online games dan web-based games.
2.5.
Permainan Online (Online Games) Permainan online atau dialih bahasakan menjadi permainan daring
(Online Games) adalah jenis permainan komputer yang memanfaatkan jaringan komputer (LAN atau internet), sebagai medianya. Permainan online disediakan sebagai tambahan layanan dari perusahaan penyedia jasa online, atau dapat diakses langsung melalui sistem yang disediakan dari perusahaan yang menyediakan permainan tersebut. Menurut Andrew Rollings dan Ernest Adams, permainan online lebih tepat disebut sebagai sebuah teknologi, dibandingkan sebagai sebuah genre permainan atau sebuah mekanisme untuk menghubungkan pemain bersama, dibandingkan
pola
tertentu
dalam
sebuah
http://id.wikipedia.org/wiki/Permainan_daring).
permainan
(Sumber
:
19
Permainan online terdiri dari banyak jenis, mulai dari permainan sederhana berbasis teks hingga permainan yang menggunakan grafik kompleks dan membentuk dunia virtual yang ditempati oleh banyak pemain sekaligus. Unsur utama dalam permainan online adalah client dan server. Server melakukan administrasi permainan dan menghubungkan client, sedangkan client adalah pengguna permainan yang memakai kemampuan server. Permainan online bisa disebut sebagai bagian dari aktivitas sosial karena pemain bisa saling berinteraksi secara virtual dan seringkali menciptakan komunitas maya. Tipe-tipe permainan online dapat dibagi menjadi beberapa bagian sebagai berikut ini : 1.
Berdasarkan jenis permainan Adapun jenis permainan online dapat dikategorikan menjadi enam
kategori sebagai berikut ini : a.
First-person shooter games Tahun 1990, permainan online berkembang dari menggunakan protokol
LAN (Local Area Network) menjadi penggunaan internet (protokol TCP/IP). Doom merupakan salah satu permainan yang dikembangkan berbasiskan internet dan mempopulerkan konsep deathmatch, dimana banyak pemain bermain satu lawan satu dalam satu arena.
b.
Real-time strategy games Permainan jenis ini menekankan kepada kehebatan strategi pemain.
Permainan ini memiliki ciri khas dimana pemain harus mengelola suatu dunia maya dan mengatur strategi dalam waktu apapun. Tema permainan bisa berupa sejarah (misalnya seri Age of Empires), fantasi (misalnya Warcraft), dan fiksi ilmiah (misalnya Star Wars).
c.
Cross-platform online play Jenis permainan ini merupakan permainan yang dapat dimainkan secara
online dengan perangkat yang berbeda. Mesin permainan konsol (console games) mulai berkembang menjadi seperti komputer yang dilengkapi dengan jaringan
20
sumber terbuka (open source networks), seperti Dreamcast, PlayStation 2, dan Xbox yang memiliki fungsi online. misalnya Need for Speed Underground, yang dapat dimainkan secara online dari PC maupun Xbox 360.
d.
Online Browser Game Permainan yang dimainkan pada peramban seperti Mozilla Firefox,
Opera, atau Internet Explorer. Sebuah permainan daring sederhana dengan pemain tunggal dapat dimainkan dengan peramban melalui HTML dan teknologi scripting HTML (JavaScript, ASP, PHP, MySQL). Perkembangan teknologi grafik berbasis web seperti Flash dan Java menghasilkan permainan yang dikenal dengan "Flash games" atau "Java games" yang menjadi sangat populer. Permainan sederhana seperti Pac-Man bahkan dibuat ulang menggunakan pengaya (plugin) pada sebuah halaman web. Teknologi AJAX digunakan untuk mempermudah interaksi multiplayer pada permainan berbasis browser.
e.
Simulation games Permainan jenis ini bertujuan untuk memberi pengalaman melalui
simulasi. Beberapa jenis permainan simulasi, diantaranya life-simulation games, construction and management simulation games, dan vehicle simulation. Lifesimulation games merupakan permainan dimana pemain bertanggung jawab atas sebuah tokoh atau karakter dan memenuhi kebutuhan tokoh selayaknya kehidupan nyata, namun dalam ranah virtual. Kebutuhan dan kehidupan layaknya manusia dimiliki oleh karakter, seperti kegiatan bekerja, bersosialisasi, makan, belanja, dan sebagainya. Karakter ini hidup dalam sebuah dunia virtual yang dipenuhi oleh karakter-karakter yang dimainkan pemain lainnya. Contoh permainannya adalah Second Life. f.
Massively multiplayer online games (MMOG) Pemain bermain dalam dunia yang skalanya besar (>100 pemain),
dimana setiap pemain dapat berinteraksi langsung seperti halnya dunia nyata. MMOG muncul seiring dengan perkembangan akses internet broadband di negara
21
maju, sehingga memungkinkan ratusan bahkan ribuan pemain untuk bermain bersama-sama. MMOG sendiri memiliki banyak jenis, adapun jenisnya adalah: 1) MMORPG (Massively Multiplayer Online Role-Playing Game) 2) MMORTS (Massively Multiplayer Online Real-Time Strategy) 3) MMOFPS (Massively Multiplayer Online First-Person Shooter) 4) MMOSG (Massively Multiplayer Online Social Game)
2.
Berdasarkan grafis Berdasarkan grafisnya permainan online dibagi ke dalam 2 jenis yaitu
dua dimensi dan tiga dimensi. Penjelasannya adalah sebagai berikut: a.
2 Dimensi (2D) Permainan dengan grafis dua dimensi adalah permainan yang ringan dan
tidak membebani sistem. Kelemahan permainan ini terletak pada kualitas gambar yang kurang enak dilihat jika dibandingkan dengan permainan 3D. Permainan daring pada umumnya mengadopsi teknologi 2,5D di mana karakter yang dimainkan berbentuk 2D, namun dengan lingkungan yang sudah mengadopsi 3D.
b.
3 Dimensi (3D) Permainan bertipe 3D memiliki grafik yang lebih baik dalam
penggambaran sehingga mirip dengan realita. Sudut pandang dari permainan #D adalah 360 derajat sehingga pemain dapat melihat secara keseluruhan dunia dalam permainan. Spesifikasi komputer yang dibutuhkan dalam permainan 3D cukup tinggi.
3.
Berdasarkan cara pembayaran Berdasarkan cara pembayaran permainan online dapat dibagi menjadi 2
jenis, yaitu: a.
Pay to Play Jenis permainan dimana pemain harus membayar sejumlah uang untuk
bermain. Beberapa permainan dapat di-install atau dimainkan secara gratis, namun jika pemain ingin menaikkan level dengan cepat atau membeli barang (item) langka
22
pada permainan, maka pemain harus membayar sejumlah uang, misalnya Gunbound, Ragnarok Online, dan Ghost Online. Beberapa permainan lainnya membebankan pemain dengan biaya langganan untuk mendapatkan layanan mereka, seperti pada permainan Lineage II dan Final Fantasy XI.
b.
Free to Play Jenis permainan ini dapat dimainkan langsung secara cuma-cuma tanpa
perlu. Permainan free to play misalnya Subspace, Terra, dan Crossfire. Permainan free to play yang lain dapat diselingi oleh iklan, baik di dalam permainan atau popup, seperti permainan Anarchy Online. Permainan online memiliki beberapa dampak kepada orang yang menggunakannya. Adapun dampak tersebut adalah sebagai berikut ini: 1.
Dampak positif Adapun beberapa dampak positif dari bermain permainan online adalah
sebagai berikut ini : a.
Melalui jaringan internet memungkinkan pemain untuk melakukan sosialisasi virtual tanpa dibatasi ruang dan waktu.
b.
Permainan daring seringkali menuntut pemainnya untuk menyusun strategi dalam waktu singkat sehingga permainan yang tepat dapat melatih respon dan kecepatan berpikir seseorang.
c.
Permainan daring jika dimanfaatkan dapat membuka peluang bisnis dan lahan mandapatkan penghasilan tambahan dengan cara menjadi pengusaha game centre, berjualan voucher permainan, atau bahkan melakukan transaksi jual beli melalui permainan.
2.
Dampak Negatif Dampak negatif dari bermain permainan online adalah sebagai berikut
ini: a.
Sosialisasi fisik berkurang, karena pemain lebih banyak menghabiskan waktu untuk bersosialisasi di dunia maya.
23
b.
Permainan daring dimainkan melalui komputer dimana spektrum cahaya yang dikeluarkan dapat merusak mata jika dipandangi terus-menerus tanpa istirahat.
c.
Beberapa permainan daring memerlukan biaya untuk memainkannya, misalnya dalam kategori permainan pay-to-play atau sekedar biaya penyewaan komputer di warnet atau game centre
d.
Permainan daring dapat mengacaukan manajemen waktu jika tidak diatur dengan baik. Banyak kasus di mana pemain yang kecanduan permainan daring, bermain hingga lupa waktu dan melalaikan segala tanggung jawab dan pekerjaannya di dunia nyata, seperti bolos sekolah.
2.6.
Client Server Arsitektur jaringan Client server merupakan model konektivitas pada
jaringan yang membedakan fungsi komputer apakah sebagai server atau client. Arsitektur ini menempatkan sebuah komputer sebagai server yang bertugas memberikan layanan kepada terminal-terminal lain (client) yang terhubung dalam sistem jaringan itu. Server dapat bertugas untuk memberikan layanan berbagi pakai berkas (file server), printer (printer server), jalur komunikasi (server komunikasi). (Sumber: www.wimpermana.web.ugm.ac.id/budi_s/wp-content/client_server.pdf). Prinsip kerja jaringan dengan arsitektur ini sangat sederhana, dimana server akan menunggu permintaan dari client, memproses dan memberikan hasilnya kepada client, sedangkan client akan mengirimkan permintaan ke server, menunggu proses dan melihat visualisasi hasil prosesnya. 2.6.1.
Komponen dasar Client Server Client server dibentuk oleh tiga komponen dasar, yaitu client,
middleware, dan server. Hubungan antara ketiga komponen tersebut dapat digambarkan sebagai berikut :
24
Middleware
Permintaan
Layanan Server
Client
Gambar 2.7 Komponen Dasar Client Server (Sumber : Oetomo Dkk, 2006)
a.
Client Client merupakan terminal yang digunakan oleh pengguna untuk
meminta layanan tertentu yang dibutuhkan. Terminal client dapat berupa PC, ponsel, komunikator, robot, televisi, dan peralatan lain yang membutuhkan informasi. Peran client disini adalah mengirimkan pesan berupa permintaan ke server.
b.
Middleware Middleware merupakan komponen perantara yang memungkinkan client
dan server untuk saling terhubung dan berkomunikasi satu sama lain. Middleware ini dapat berupa Transaction Monitor (TC), Remote Procedure Calling (RPC), atau Object Request Broker (ORB). Middleware memiliki peran yang strategis karena dengan adanya middleware maka client dapat mengirimkan pesan atau permintaan kepada server, menerjemahkan pesan dari client agar dapat dimengerti oleh server, menerjemahkan hasil proses dari server agar dapat dipahami oleh client dan mengirimkan hasil proses yang telah diterjemahkan kembali ke client.
c.
Server Server merupakan pihak yang menyediakan layanan. Server ini dapat
berupa basis data SQL, monitor TP, server groupware, server objek, atau Web. Server berperan menerima pesan permintaan layanan dari client, memproses permintaan tersebut dan hasil permintaan dikirimkan kepada client.
25
2.6.2.
Ciri-ciri Client Server Client server memiliki ciri-ciri mendasar yang membedakan dirinya
dengan perangkat lunak terdistribusi lain. Ciri-ciri tersebut adalah sebagai berikut: 1.
Berbasis layanan Server memberikan sejumlah layanan yang dibutuhkan dan diminta oleh
client, antara lain: berbagi pakai berkas, dan peralatan pendukung, dan lain-lain.
2.
Sumber daya yang digunakan bersama Server mengelola sejumlah sumber daya yang dimilikinya agar dapat
diakses dan digunakan secara bersama-sama oleh terminal-terminal client yang terhubung pada server.
3.
Hubungan dan interaksi client server Hubungan yang terjadi antara server dan client adalah one-to-many, yang
berarti bahwa satu server melayani banyak client. Client memulai interaksi dengan meminta layanan, sedangkan server menanti permintaan layanan secara pasif.
4.
Client tidak perlu mengetahui lokasi fisik server Server dapat terletak di berbagai tempat yang belum tentu diketahui oleh
client. Walaupun demikian, client tetap dapat mengakses server untuk mendapatkan layanan sesuai kebutuhannya.
5.
Interoperabilitas perangkat lunak dan perangkat keras Perangkat keras dan perangkat lunak yang digunakan oleh masing-
masing client tidak harus sama dengan yang digunakan pada server, namun masih dapat saling terkoneksi antara satu dan yang lain.
6.
Pertukaran berbasis pesan Mekanisme dari client server berdasar pada pertukaran pesan. Pesan
yang dipertukarkan adalah permintaan layanan dan umpan balik dari permintaan layanan tersebut.
26
7.
Enkapsulasi layanan Client tidak perlu mengetahui proses pengolahan permintaan yang terjadi
dalam server sehingga client tidak dapat mengontrol peruses pengolahan permintaan.
8.
Skalabilitas Skalabilitas adalah kemampuan untuk diperbesar atau diperkecil. Ukuran
sistem client server dapat diubah secara horizontal maupun vertical. Pengubahan vertical berarti berpindah ke server yang lebih besar atau lebih cepat atau mendistribusikan tugas melayani client ke beberapa server. Pengubahan horizontal berarti menambah atau mengurangi jumlah client.
9.
Konsistensi data Data hanya dikelola pada server pusat sehingga konsistensi dan data
lebih terjamin dan biaya pemeliharaan pun menjadi lebih murah.
Client server adalah arsitektur jaringan dimana client dan server dipisahkan dengan aplikasi yang menggunakan GUI. Informasi dari server dapat diminta oleh masing-masing client. Konsep dari client server adalah dikirimkannya permintaan informasi atau perintah ke aplikasi server oleh client. Permintaan dari client akan diterima aplikasi server sebagai suatu hasil dari pemrosesan yang sudah dilakukan. Sistem client server didefinisikan sebagai sistem terdistribusi, tetapi ada beberapa perbedaan karakteristik yaitu: 1.
Service (Layanan) a.
Hubungan antara proses yang berjalan pada mesin yang berbeda
b.
Pemisahan fungsi berdasarkan ide layanannya.
c.
Server sebagai provider dan client sebagai konsumen
27
2.
Sharing resources Server bisa melayani beberapa client pada waktu yang sama, dan
meregulasi akses bersama untuk share sumber daya dalam menjamin konsistensinya.
3.
Asymmetrical protocol Many-to-one relationship antara client dan server. Client selalu
menginisiasikan dialog melalui layanan permintaan, dan request dari client ditunggu secara pasif oleh server.
4.
Transparansi lokasi Proses yang dilakukan server dapat terletak pada mesin yang sama atau
pada mesin yang berbeda melalui jaringan. Lokasi server harus mudah diakses dari client.
5.
Pesan Berbasiskan Komunikasi Interaksi server dan client melalui permintaan dan jawaban yang
disertakan pada pengiriman pesan.
6.
Pemisahan Interface dan Implementasi Server bisa di-upgrade tanpa mempengaruhi client selama interface
pesan yang diterbitkan tidak berubah.
2.7.
Appwarp Appwarp merupakan Game Cloud Management yang didesain khusus
untuk menangani manajemen dalam permainan online multiplayer. Alur umum yang digunakan dalam penanganan online multiplayer pada Appwarp yaitu,
1.
Connect Hal pertama yang harus dilakukan oleh user/client adalah melakukan
autentikasi ke server Appwarp dengan key yang telah ditentukan.
28
2.
Join and Subscribe Apabila autentikasi berhasil dan user/client telah terhubung pada server
Appwarp, user/client harus melakukan join pada sebuah lobby atau room agar dapat berinteraksi dengan user/client lain yang juga telah terhubung pada lobby/room yang sama. Subscribe digunakan agar user/client dapat mengetahui berapa orang yang terhubung pada lobby/room tersebut dan juga untuk bisa mendapatkan notification atau pemberitahuan dari lobby/room tersebut, misalnya pemberitahuan user meninggalkan room atau user memasuki room.
3.
Send Message User/client kemudian dapat mengirimkan pesan pada room dengan
sistem broadcast atau mengirimkan private message yang ditujukan kepada user/client tertentu.
4.
Handle Message User/client yang menerima sebuah pesan kemudian dapat menangani
atau mengolah pesan yang telah diterima tersebut baik untuk melakukan realtime update atau saling bertukar pesan antar user/client.
Gambar 2. 4. Appwarp Game Cloud Management
Appwarp
dapat
digunakan
secara
gratis
pada
website
http://appwarp.shephertz.com/ dengan mengunduh library sesuai SDK (Software Development Kit) yang digunakan oleh developer.
29
2.8.
Corona SDK Corona SDK adalah SDK (Software Develepmoent Kit) yang dibuat oleh
Walter Luh yang merupakan founder dari Corona Labs Inc. Programmer software dapat menggunakan Corona SDK untuk membangun sebuah aplikasi mobile untuk perangkat Android, iPhone, dan iPad. Walter Luh memulai Corona Labs setelah keluar dari Adobe pada Tahun 2007. Kemudian pada Juni 2009, Luh mengeluarkan Corona SDK pertama kali versi beta. Corona memakai bahasa pemrograman Lua yang sangat mudah sekali dipelajari bahkan untuk pemula dalam hal pemrograman.
Gambar 2. 5. Lambang Corona SDK
Beberapa keuntungan mengembangkan aplikasi mobile di Corona antara lain: 1.
Mengembangkan aplikasi 10x lebih cepat Corona SDK dapat mengembangkan aplikasi dengan lebih cepat.
Kuncinya ada di bahasa pemrograman yang mudah untuk dipahami bahkan untuk pemula sekalipun.
2.
Go cross-platform dengan mudah Program hasil dari Corona SDK secara otomatis dapat terbaca pada
Platform Android, iOS, Kindle Fire, dan Nook.
3.
Tanpa fragmentasi Corona otomatis memilih aset yang tepat berdasarkan resolusi layar dan
skala konten, tergantung pada ukuran layar perangkat pengguna.
30
2.9.
Algoritma Fisher-Yates Shuffle Shuffling adalah metode yang digunakan untuk mengacak setumpuk
kartu untuk memastikan unsur probabilitas dalam permainan kartu. Fisher-Yates Shuffle (diambil dari nama Ronald Fisher dan Frank Yates) atau juga dikenal dengan nama Knuth Shuffle (diambil dari nama Donald Knuth), adalah sebuah algoritma untuk menghasilkan suatu permutasi acak dari suatu himpunan terhingga. Jika diimplementasikan dengan benar, maka hasil dari algoritma ini tidak akan berat sebelah, sehingga setiap permutasi memiliki kemungkinan yang sama. Metode ini telah menghasilkan permutasi yang dihasilkan secara acak, hal ini sangat cocok bila tidak ada nomor acak yang dihasilkan berulang-ulang. (Olu. A., h.10-12, 2012) Contoh dalam permainan ada 20 kartu yang akan diacak, maka array-nya adalah urutan Kartu = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ,17, 18, 19,20]. Array tersebut dimasukkan kedalam prosedur shuffle dimana proses pengacakan terjadi. Langkah-langkah pengacakan soal dengan Fisher-Yates Shuffle adalah sebagai berikut: 1.
Ambil satu elemen secara acak dari elemen yang tersisa. Pengambilan elemen acak adalah berdasarkan elemen yang tersisa. Misalkan jika n = 20, maka elemen acak yang boleh diambil adalah 20(array[0…19]) .
2.
Tukar dengan elemen saat ini. Penukaran dilakukan dengan memasukkan elemen saat ini ke dalam suatu variabel baru bernama t. Kemudian elemen saat ini (array[n]) diisi nilai dari elemen acak tadi (array[i]). Dan elemen acak (array[i]) diisi nilai dari variabel t.
3.
Ulangi selama masih ada elemen yang tersisa Selanjutnya dilakukan pengulangan sebanyak 10 kali untuk mengacak urutan soal tersebut. Contoh iterasi dapat dilihat pada Tabel 2.1.
31
Tabel 2. 1. Contoh Perhitungan dengan Algoritma Fisher-Yates Shuffle
m
I
array[i] t /array[m]
Array fix
array setelah swap 1, 2, 3, 4, 5, 6, 20, 8, 9, 10, 11, 12, 13, 14, 15, 16 ,17, 18,
20
7
7
20
7
19,7 19, 2, 3, 4, 5, 6, 20, 8, 9, 10, 11, 12, 13, 14, 15, 16 ,17, 18,
19
1
1
19
1, 7
1,7 19, 18, 3, 4, 5, 6, 20, 8, 9, 10, 11, 12, 13, 14, 15, 16 , 17, 2,
18
2
2
18
2, 1, 7
1,7 19, 18, 17, 4, 5, 6, 20, 8, 9, 10, 11, 12, 13, 14, 15, 16 ,3, 2,
17
3
3
17
3, 2, 1, 7
1,7 19, 18, 17, 16, 5, 6, 20, 8, 9, 10, 11, 12, 13, 14, 15, 4 ,3, 2,
16
4
4
16
4, 3, 2, 1, 7
1,7 19, 18, 17, 16, 15, 6, 20, 8, 9, 10, 11, 12, 13, 14, 5, 4 ,3, 2,
15
5
5
15
5, 4, 3, 2, 1, 7
1,7 19, 18, 17, 16, 15, 14, 20, 8, 9, 10, 11, 12, 13, 6, 5, 4 ,3, 2,
14
6
6
14
6, 5, 4, 3, 2, 1, 7
1,7
32
19, 18, 17, 16, 15, 14, 20, 13, 9, 10, 8, 6, 5, 4, 3, 2, 1, 11, 12, 8, 6, 5, 4 ,3, 13
8
8
13
7
2, 1,7 19, 18, 17, 16, 15, 14, 20, 13, 12, 10,
9, 8, 6, 5, 4, 3, 2, 11, 9, 13, 8, 6 5, 4 12
9
9
12
1, 7
,3, 2, 1,7 19, 18, 17, 16, 15,14, 20, 13, 12,
10, 9, 8, 6, 5, 4, 3, 11, 10, 9, 13, 8,6, 5, 11
10
10
11
2, 1, 7
4 ,3, 2, 1,7 19, 18, 17, 16, 15, 14, 20, 13, 10, 11,
12, 10, 9, 8, 6, 5, 12, 9, 13, 8, 6, 5, 4 10
12
12
10
4, 3, 2, 1, 7
,3, 2, 1,7 19, 18, 17, 16, 15, 9, 20, 13, 10, 11,
14, 12, 10, 9, 8, 6, 12, 14, 13, 8, 6, 5, 9
14
14
9
5, 4, 3, 2, 1, 7
4 , 3, 2, 1,7 19, 18, 17, 16, 15,
13, 14, 12, 10, 9, 9, 20, 13, 10, 11, 8, 6, 5, 4, 3, 2, 1, 12, 14, 8, 13, 6, 5, 8
13
13
8
7
4 ,3, 2, 1,7 19, 18,17, 16, 15, 9,
20, 13, 14, 12, 10, 7, 13, 10, 11, 12, 9, 8, 6, 5, 4, 3, 2, 14, 8, 13, 6, 5, 4 ,3, 7
20
20
7
1, 7
2, 1,20
33
6, 18, 17, 16, 15, 9, 19, 20, 13, 14, 12, 20, 13, 10, 11, 12, 10, 9, 8, 6, 5, 4, 3, 14, 8, 13, 19, 5, 4 6
19
19
6
2, 1, 7
,3, 2, 1,7 6, 5, 17, 16, 15, 9,
18, 19, 20, 13, 14, 20, 13, 10, 11, 12, 12, 10, 9, 8, 6, 5, 14, 8, 13, 19, 18, 4 5
18
18
5
4, 3, 2, 1, 7
,3, 2, 1,7 6, 5, 17, 4, 15, 9, 20,
16, 18, 19, 20, 13, 13, 10, 11, 12, 14, 14, 12, 10, 9, 8, 6, 8, 13, 19, 18, 16 ,3, 4
16
16
4
5, 4, 3, 2, 1, 7
2, 1,7
17, 16, 18, 19, 20, 6, 5, 3, 4, 15, 9, 20, 13, 14, 12, 10, 9, 13, 10, 11, 12, 14, 8, 6, 5, 4, 3, 2, 1, 8, 13, 19, 18, 16 3
17
17
3
7
,17, 2, 1,7
11, 17, 16, 18, 19, 6, 5, 3, 4, 15, 9, 20, 20, 13, 14, 12, 10, 13, 10, 2, 12, 14, 8, 9, 8, 6, 5, 4, 3, 2, 13, 19, 18, 16 ,17, 2
11
11
2
1, 7
11, 1,7
15, 11, 17, 16, 18, 6, 5, 3, 4, 9, 20, 13, 19, 20, 13, 14, 12, 10, 2, 12, 14, 8, 13, 10, 9, 8, 6, 5, 4, 3, 19, 18, 16 ,17, 15, 1
15
15
1
2, 1, 7
1,7
Permutasi yang didapatkan adalah 6, 5, 3, 4, 9, 20, 13, 10, 2, 12, 14, 8, 13, 19, 18, 16 ,17, 15,1, 7. Kolom m menunjukkan index elemen saat ini. Kolom i menunjukkan index dari elemen yang akan ditukar, nilai i tersebut diambil secara acak dari range yang diperbolehkan (m). Kolom array[i] menunjukan nilai yang terdapat pada array ke-i. Kolom t menunjukan nilai yang terdapat pada array ke-m (elemen saat ini). Array yang sudah fix menunjukan array yang sudah tidak boleh
34
ditukar kembali nilainya, jumlahnya bertambah seiring bertambahnya iterasi. Kolom array yang sudah di swap menunjukan isi array setelah elemennya ditukar/swap ada setiap iterasi. Model Flowchart dari Algoritma Fisher-Yates Shuffle dapat dilihat pada Gambar 2.6.
START
Tentukan nilai n
Pilih angka acak(x) Dimana 1<=x<=n
Tukar posisi(x) dengan angka terakhir pada range 1 sampai dengan n
Pindahkan angka x ke list array
Y
? n>0
Atur ulang nilai n. dimana n=n-1
T
END
Gambar 2. 6. Flowchart Algoritma Fisher-Yates Shuffle
Flowchart pada Gambar 2.6 terlihat bahwa pengacakan selesai jika seluruh array telah diacak sehingga dihasilkan urutan array yang diacak.