BAB 2
TINJAUAN PUSTAKA
2.1. Algoritma
Istilah algoritma digunakan dalam ilmu komputer untuk menggambarkan metode pemecahan masalah yang terbatas, deterministik, dan efektif yang cocok untuk implementasi sebagai program komputer (Sedgewick & Wayne, 2011).
Algoritma yang akan diajarkan kepada user dalam video game ini adalah beberapa Sorting algorithm yaitu Bubble Sort, Selection dan Insertion Sort. Hal ini dikarenakan menurut banyak peneliti komputer menganggap bahwa "Sorting" adalah masalah yang paling mendasar dalam studi mengenai algoritma (Cormen et al, 2009).
Dalam bukunya Data Structure and Algorithms in Java, Lafore (2003) mengatakan "Karena Sorting sangat penting dan berpotensi sangat memakan waktu, Sorting telah menjadi subyek penelitian luas dalam ilmu komputer, dan beberapa metode yang sangat canggih telah dikembangkan". Dan untuk itu berikut adalah penjelasan tentang Bubble Sort, Selection Sort dan Insertion Sort yang berasal dari buku tersebut.
2.1.1. Bubble Sort
Bubble Sort terkenal lambat. Tetapi secara konseptual Bubble Sort adalah algoritma Sorting yang paling sederhana. Dan untuk alasan itu Bubble Sort adalah awal yang baik bagi kita dalam eksplorasi teknik - teknik Sorting.
hambatan ini, bagaimana Anda akan mengurutkan mereka? Mari kita asumsikan ada N banyak pemain, dan posisi mereka berdiri diberi nomor dari 0 di sebelah kiri sampai N-1 di sebelah kanan. Rutinitas Bubble Sort bekerja seperti ini: Anda mulai di ujung kiri baris dan membandingkan dua anak di posisi 0 dan 1. Jika anak di sebelah kiri (di 0) lebih tinggi, Anda swap (tukar) mereka. Jika anak di sebelah kanan lebih tinggi, Anda tidak melakukan apa-apa. Kemudian Anda pindah satu posisi dan membandingkan anak-anak dalam posisi 1 dan 2. Sekali lagi, jika anak di sebelah kiri lebih tinggi, Anda swap mereka. Proses Sorting ini ditunjukkan pada Gambar 2.1 bagian a).
anak tertinggi, Anda akan swap dia setiap kali Anda membandingkan dua anak, sampai akhirnya dia akan mencapai ujung kanan baris. Inilah sebabnya mengapa disebut Bubble Sort: Selama algoritma berlangsung, item terbesar "Bubble Up" (bergerak ke atas seperti gelembung) ke ujung array. Gambar 2.2 menunjukkan pemain bisbol pada akhir pass pertama.
Gambar 2.2 : BubbleSort, akhir dari pass pertama (Lafore, 2003).
Setelah pass pertama melalui semua data, Anda telah membuat N-1 perbandingan dan antara 0 dan N-1 swap, tergantung susunan awal para pemain. Item pada akhir array sudah diurutkan dan tidak akan pindah lagi. Sekarang Anda kembali dan mulai pa ss lain dari ujung kiri baris. Sekali lagi, Anda bergerak ke kanan, membandingkan dan swap jika diperlukan. Namun, kali ini Anda dapat berhenti satu pemain sebelum ujung baris, di posisi N-2, karena Anda tahu posisi terakhir, di N-1, sudah berisi pemain tertinggi. Aturan ini dapat dinyatakan sebagai:
1. Bandingkan dua pemain.
2. Jika anak di sebelah kiri adalah tinggi, swap mereka. 3. Pindah satu posisi ke kanan.
4. Ketika Anda mencapai pemain yang telah diurutkan pertama, mulai lagi dari ujung kiri baris. Anda melanjutkan proses ini sampai semua pemain terurutkan.
2.1.2. Selection Sort
record besar yang harus bergerak secara fisik di dalam memori, menyebabkan waktu swap jauh lebih penting daripada waktu perbandingan.
Mari kita perhatikan para pemain bisbol lagi. Dalam Selection Sort, Anda tidak lagi dapat membandingkan pemain yang hanya berdiri di samping satu sama lain. Dengan demikian, Anda harus ingat tinggi pemain tertentu; Anda dapat menggunakan notebook untuk menuliskannya. Handuk berwarna magenta juga akan berguna.
Apa yang terjadi dalam Selection Sort adalah melakukan pass melalui semua pemain dan mengambil (atau selecting (memilih), karena itu namanya SelectionSort ) yang terpendek. Pemain terpendek ini kemudian di-swap dengan pemain di ujung kiri garis, pada posisi 0. Sekarang pemain paling kiri telah diurutkan dan tidak perlu pindah lagi. Perhatikan bahwa dalam algoritma ini pemain yang telah diurutkan berakumulasi di sebelah kiri (indeks yang lebih rendah), sedangkan pada Bubble Sort mereka berakumulasi di sebelah kanan. Ketika Anda melakukan pass berikutnya melewati sederet pemain, Anda memulainya pada posisi 1, dan, menemukan nilai minimum, swap dengan posisi 1. Proses ini berlanjut sampai semua pemain diurutkan.
Secara lebih rinci, mulai dari ujung kiri garis pemain. Catat ketinggian pemain paling kiri di notebook Anda dan lemparkan handuk magenta di tanah di depan orang ini. Kemudian bandingkan ketinggian pemain di sebelah kanan dengan ketinggian pemain yang ada di notebook Anda. Jika pemain ini lebih pendek, coret ketinggian pemain pertama dan catat ketinggian pemain kedua sebagai gantinya. Pindahkan handuk, tempatkan di depan pemain "terpendek" baru ini (untuk saat ini). Lanjutkan menyusuri baris, bandingkan setiap pemain dengan nilai minimum. Ubah nilai minimum di notebook Anda dan pindahkan handuk setiap kali Anda menemukan pemain yang lebih pendek. Setelah selesai, handuk magenta akan berada di depan pemain terpendek. Swap pemain terpendek ini dengan pemain yang berada di ujung kiri baris. Anda sekarang telah mengurutkan satu pemain. Anda telah membuat N-1 perbandingan, tetapi hanya satu swap.
lebih sedikit untuk dipertimbangkan ketika mencari nilai minimum baru. Gambar 2.1 bagian b) menunjukkan bagaimana SelectionSort ini terlihat untuk tiga pass pertama.
2.1.3. Insertion Sort
Dalam kebanyakan kasus Insertion Sort adalah yang terbaik dari Algoritma Sorting dasar yang dijelaskan dalam bab ini. Tetap mengeksekusi dalam O (N2) waktu, tapi sekitar dua kali lebih cepat dari Bubble Sort dan agak lebih cepat daripada Selection Sort dalam situasi normal. Algoritma ini juga tidak terlalu rumit, meskipun sedikit lebih rumit daripada Bubble dan Selection Sort. Algortima ini sering digunakan sebagai tahapan akhir untuk melanjut ke Sort yang lebih rumit, seperti QuickSort.
Untuk memulai Insertion Sort, mulai dengan pemain bisbol yang berbaris dalam urutan acak. (Mereka ingin bermain, tapi jelas tidak ada waktu untuk itu.) Lebih mudah untuk berpikir tentang Insertion Sort jika kita mulai di tengah-tengah proses, ketika setengah tim ini sudah diurutkan.
Pada titik ini ada sebuah ma rker (penanda) imajiner di suatu tempat di tengah-tengah baris. (Mungkin Anda dapat melemparkan T-shirt merah di tanah di depan pemain.) Para pemain di sebelah kiri penanda ini "pa rtially Sorted" sebagian sudah diurutkan. Ini berarti bahwa mereka diurutkan antara mereka sendiri; masing-masing dari mereka lebih tinggi dari orang yang berada di sebelah kirinya. Namun, para pemain tidak harus dalam posisi terakhir mereka karena mereka mungkin masih perlu dipindahkan ketika pemain yang belum disortir dimasukkan di antara mereka. Perhatikan bahwa Partial Sorting tidak terjadi di BubbleSort dan SelectionSort. Pada algoritma - algoritma tersebut sekelompok item data benar - benar diurutkan pada waktu tertentu; di Insertion Sort sekelompok item hanya sebagian saja yang diurutkan.
Gambar 2.3 : InsertionSort, pada pemain Baseball (Lafore, 2003).
kelompok pemain yang sudah diurutkan. Langkah ini ditunjukkan pada Gambar 2.3.c. Sekarang kelompok yang sebagian sudah diurutkan bertambah satu pemain, dan kelompok yang belum disortir berkurang satu pemain. T-shirt penanda dipindahkan satu ruang ke kanan, agar berada di depan pemain yang belum disortir paling kiri lagi. Proses ini diulang sampai semua pemain yang belum diurutkan telah dimasukkan (karena itu algortima ini bernama Insertion) ke tempat yang sesuai dalam kelompok yang sebagian telah diurutkan.
2.2. Video game
Dalam bukunya Rules of Play – Game Design Fundamentals, Salen & Zimmerman (2004) mengatakan sebuah game adalah sebuah sistem di mana pemain terlibat dalam konflik buatan, ditentukan oleh aturan, yang menghasilkan hasil yang terukur. Elemen-elemen kunci dari definisi ini adalah fakta bahwa game adalah sebuah sistem, pemain berinteraksi dengan sistem, game adalah contoh konflik, konflik di dalam game adalah konflik buatan, aturan membatasi perilaku pemain dan mendefinisikan game, dan setiap game memiliki hasil terukur atau tujuan.
Selain itu mereka juga menjelaskan bahwa Definisi "game" yang mereka diusulkan tidak memiliki perbedaan antara game-digital dan non-digital, artinya kualitas yang mendefinisikan game dalam satu media juga mendefinisikannya di media lainnya. Sebagian besar pemikir yang definisinya mereka explore sedang menulis sebelum penemuan computer games, apalagi sebelum ledakan terbaru dari industri video game. Namun computer dan video game adalah bagian penting dari lanskap game, karena mereka membawa sejumlah kualitas dan perhatian unik untuk praktek game design.
Menurut Rogers (2014) dalam bukunya Level Up! The Guide to Great Video Game Design, game adalah sebuah aktivitas yang membutuhkan paling tidak satu orang pemain, memiliki aturan dan memiliki kondisi menang/kalah. Sedangkan video game adalah game yang dimainkan di layar video.
2.2.1. Action – Adventure Game
game jenis baru, salah satunya adalah sebuah hybrid dari action game dan adventure game yang disebut action-adventure game. Genre ini menggabungkan fitur-fitur yang terdapat dalam kedua genre tersebut. Genre ini fast paced jika dibandingkan dengan adventure game murni dan mengandung tantangan fisik maupun konseptual. Sehingga game jenis ini membutuhkan skill fisik yang cukup banyak, tetapi game bergenre action-adventure ini juga menawarkan fitur dari adventure game, seperti storyline, jumlah character yang banyak, inventory system, dialog, dan fitur-fitur lainnya.
Indiana Jones and the Infernal Machine adalah contoh yang baik dari jenis ini. Game Zelda modern mungkin dianggap contoh game action-adventure lainnya, walaupun dengan level dan boss yang ada dalam video game tersebut, mereka lebih dekat untuk disebut action game murni. Titik dimana sebuah game berhenti menjadi sebuah adventure game dan menjadi sebuah action game adalah masalah interpretasi. Beberapa mungkin mempertimbangkan Tomb Raider menjadi sebuah action-adventure game karena dalam game tersebut terdapat puzzle, tapi puzzle tersebut cukup sederhana, dan game ini begitu sangat bergantung pada tantangan fisik yang membuatnnya menjadi benar-benar sebuah action game.
Banyak pemain adventure game murni tidak peduli dengan action-adventure game; umumnya, mereka tidak suka tantangan fisik apapun atau tekanan waktu. Tetapi bagaimanapun juga, action-adventure hybrid sekarang pastinya lebih populer daripada gameadventure tradisional.
Fitur-fitur yang terdapat dalam action-adventure game ini dapat berupa sebagian atau bahkan semua fitur yang terdapat dalam a ction game dan adventure game. Action game adalah sebuah game yang dimana mayoritas tantangan yang disajikan berupa tes keterampilan fisik dan koordinasi. Puzzle solving, tactical conflict, dan tantangan eksplorasi sering hadir juga. Berikut ini adalah beberapa fitur yang dimiliki oleh action game (Adams, 2010).
a) Lives
lainnya menghilangkan nyawa avatar. Pemain mendapatkan kehidupan ekstra dengan mengambil PowerUp atau mencapai skor tertentu.
b) Energy
Game biasanya dimulai dengan avatar pemain yang memiliki energi dalam jumlah terbatas, kadang-kadang ditandai sebagai hit point atau health. Berhadapan dengan musuh atau fitur berbahaya lain dari game world menguras energi ini; dalam beberapa Game‘waktu’ itu sendiri, hanya hidup di dunia game, mengkonsumsi energi.
c) Powerups
Sebagai hadiah untuk progress, pemain dapat diberikan PowerUp, yaitu, kesempatan untuk meningkatkan kekuatan avatarnya atau beberapa atribut lainnya sementara waktu atau bahkan permanen. Dalam shooter game, PowerUP bisa muncul dalam bentuk senjata yang lebih kuat atau perisai. d) Collectibles
Collectibles adalah bonus objek yang bisa diambil oleh pemain, objek ini tidak penting untuk permainan dan sering digunakan hanya untuk menambah skor pemain. Pemain tidak dihukum karena gagal untuk mengumpulkan obyek ini, tetapi jika ia mengambil risiko mengumpulkannya, maka imbalan yang tinggi dapat diperoleh.
e) Time Limit
Banyak game menggunakan timer yang menghitung mundur dari suatu nilai awal hinnga nol. Ketika timer mencapai nol, suatu peristiwa besar dalam game terjadi.
f) Score
Sedangkan adventure game merupakan cerita interaktif tentang karakter protagonis yang dimainkan oleh pemain. Stroytelling dan eksplorasi merupakan elemen penting dari permainan. Puzzle solving dan tantangan konseptual membentuk mayoritas gameplay. Combat, manajemen ekonomi, dan tantangan action sedikit atau tidak ada. Berikut ini adalah beberapa fitur yang terdapat dalam adventure game (Adams, 2010).
a) Setting and Emotional Tone
Dalam beberapa jenis permainan, seperti catur dan Quake, setting hampir tidak relevan. Pemain yang serius mengabaikan gagasan bahwa catur adalah permainan perang abad pertengahan atau Quake yang melibatkan space marines di sebuah planet alien. Mereka berkonsentrasi pada inti terpenting dari gamepla y: strategi yang pertama dan action yang kedua. Jika setting “menyela”, setting hanya dianggap sebagai pengalih perhatian. Adventure game membalikkan situasi ini. Setting memberikan kontribusi lebih untuk nilai hiburan dari sebuah adventure game daripada setting di genre lain. Apakah itu suram dan menyedihkan, fantastis dan aneh, atau lucu dan ceria, setting menciptakan dunia yang dieksplorasi dan ditinggali oleh pemain. Bagi banyak pemain, setting adalah alasan utama untuk bermain adventure game.
b) Interaction Model
Adventure game selalu menggunakan model interaksi berbasis avatar karena desainer ingin menempatkan pemain dalam sebuah cerita. Namun, sifat dari avatar dalam adventure game terus mengalami perubahan.
c) Camera Model
Model kamera yang disukai adventure game grafis berubah. Pendekatan context-sensitive adalah pendekatan tradisional, namun third person dan first person camera menjadi semakin umum digunakan.
d) Player Roles
game fighting. Tapi adventure game bisa diisi dengan segala macam puzzle dan masalah yang tidak terkait dengan peran pemain. Indiana Jones seharusnya seorang arkeolog, tapi kita tidak melihat dia banyak menggali. Peran pemain dalam adventure game muncul bukan dari tantangan (kecuali Anda secara khusus ingin), tapi dari cerita. Pemain masih bisa menjadi pilot, jika itu yang ceritanya membutuhkan, tapi itu tidak selalu menjamin bahwa dia harus menerbangkan pesawat. Dan dia mungkin menjadi apa pun atau bahkan tidak ada yang khusus sama sekali - hanya orang biasa yang hidup dalam situasi yang luar biasa.
e) Story dan Spatial Structure
Adventure game memetakan sebuah story ke sebuah ruang (lingkungan). mereka membangun hubungan antara lokasi yang berbeda di game world dengan bagian yang berbeda dari story. Sifat hubungan ini terus berkembang. f) Storytelling
Kebanyakan video game akan mendapatkan keuntungan dari penambahan cerita yang bagus, salah satu yang kredibel, koheren, dan secara dramatis bermakna. Seorang desainer tidak harus berusaha untuk menulis film atau novel ketika membuat cerita video game, namun; ia harus ingat bahwa interaktivitas adalah alasan orang bermain game. Apakah Anda memutuskan untuk membuat linear, nonlinear, atau foldback, multiple ending untuk permainan Anda akan tergantung pada gameplay dan genre yang telah dirancang dalam tahap konsep. Untuk gameplay yang lebih menarik, respon emosional yang lebih dalam dari pemain, dan kepuasan yang lebih besar setelah menyelesaikan permainan, desainer harus bekerja pada sebuah cerita yang baik yang mempertahankan ketertarikan pemain, yang menunjukkan pertumbuhan karakter, yang menyeimbangkan unsur naratif dengan gameplay, dan di atas segalanya , tetap menyenangkan untuk dimainkan.
g) Challenges
h) Conversations with Nonplayer Characters
Desainer adventure game menghadapi masalah bagaimana untuk membuat NPC realistis. Desainer Computer role-playing game (CRPG) juga harus mengatasi masalah ini, tapi di sebagian CRPGs, percakapan NPC ini didefinisikan oleh peran karakter: blacksmith, healer, tavern keeper, dan sebagainya. Pemain tidak berharap untuk dapat mendiskusikan senjata dan baju besi dengan tavern keeper (meskipun permainan mungkin akan lebih menarik dan tentu saja kurang terasa diformulasikan jika dia bisa). Tetapi karena adventure game adalah cerita interaktif, pemain mengharapkan karakter dalam game tersebut untuk menjadi lebih seperti manusia dan kurang mekanis. i) Mapping
Ketika bermain text adventures, pemain biasanya diperlukan untuk membuat peta untuk diri mereka sendiri selama bermain, karena mereka merasa sulit untuk mengingat bagaimana ruangan di dunia game terkait satu sama lain. Dengan kedatangan graphical adventures, pemetaan menjadi kurang penting karena grafis memberikan isyarat tentang bagaimana lokasi pemain saat itu berkaitan dengan daerah-daerah lain di dunia ga me. Namun, masih ide yang baik untuk memberikan peta untuk pemain. Beberapa permainan sengaja tidak membuat peta untuk membuat permainan menjadi lebih sulit, tapi ini adalah desain yang jelek. Sangat jarang orang merasa senang ketika tersesat. Jika Anda memaksa pemain untuk membuat peta sendiri, ia harus terus-menerus berpaling dari layar untuk membuat sketsa di sisinya.
j) Journal Keeping
2.2.2. Minigames
Sebuah miniga me bisa berupa genre apa saja, tetapi hanya dimainkan dalam waktu yang terbatas. Minigame digunakan untuk menambah variasi ke dalam game bergenre lainnya, seperti permainan menembak asteroid dalam Dead Space atau permainan mencocokkan kartu dalam Super Mario Bros 3. Biasanya minigame ini bersifat Stand-in untuk sebuah aktivitas seperti Ha cking miniga me dalam game Bioshock atau Lock Picking minigame dalam game Fallout 3. Bahkan terdapat kompilasi dari minigame seperti Mario Party, Ape Escape: Pumped & Primed, Sonic Shuffle, dan Big League Sports (Rogers,2014).
2.2.3. Video gameMechanic
Mechanic memiliki beberapa defenisi. Desainer permainan papan (Board Games) mengatakan bahwa mechanic adalah sistem gameplay yang digunakan untuk memainkan permainan. Sistem – sistem ini dapat berupa turns, action points, resource management, bidding, dan bahkan melemparkan dadu.
Video game mechanic adalah objek – objek yang menciptakan gameplay ketika player berinteraksi dengannya. Objek – objek ini dapat dilompati, diaktivasi dengan menekan tombol, atau didorong (Rogers, 2014).
2.3. GameEngine
Menurut Allen Sherrod (dalam Stumfol, 2014) istilah Game engine digunakan untuk menggambarkan satu atau lebih set dari code untuk membangun sebuah aplikasi game. Game engine terdiri dari kumpulan dari tools, utility dan interface yang berbeda – beda yang menyembunyikan berbagai macam low level tasks yang membentuk sebuah video game.
di kedua versi ini, perbedaanya terdapat dari fitur-fitur yang diberikan dimana versi UnityPro memiliki fitur-fitur yang lebih baik. (Unity Technologies, 2015).
2.4. Game Design Document (GDD)
Menurut Jeroen Dobbe ( dalam Shabanah, 2010) Game Design Document adalah dokumen yang disiapkan oleh desainer game, Game Design Document berisi informasi tentang elemen inti yang membentuk sebuah game. Salah satu bagian penting dari setiap Game Design Document adalah game mechanic, yang menggambarkan game-play dari permainan. Game Design Document ini menggambarkan bagaimana permainan ini dimainkan, game flow, dan memberikan informasi rinci tentang pergerakan setiap objek dalam permainan. Bagian kedua dari Game Design Document memberikan rincian tentang game story, atau level yang harus dilalui player.Bagian lain dari dokumen ini adalah pengaturan dari permainan, yang didukung oleh cerita, artwork (grafis), video, dan suara yang digunakan di seluruh permainan. Semua Game Design Document mengandung beberapa rincian tentang bagaimana permainan harus merasa, apa mood keseluruhan dan setidaknya beberapa sketsa atau concept a rt permainan. Selain mendefinisikan mekanisme permainan, cerita dan pengaturan, interaksi dengan pengguna harus ditentukan dalam Game Design Document. Bagaimana pengguna mengendalikan game world ; apa saja elemen GUI dalam permainan, seperti Head-Up-Displays (HUD), menu, dan help screen semua harus ditentukan.
2.5. Penelitian Terdahulu
perbandingan sebelumnya, banyaknya perbandingan yang dilakukan, dan nilai dari semua balok di akhir permainan.
Shabanah (2010) telah mengembangkan system Serious A-V yang merupakan sebuah educational gaming system yang menggunakan pendekatan Algorithm Visualization using Serious Games (AvuSG). Terdapat dua sub-sytem utama dari system ini, yang pertama adalah Serious A-V Viewer yang dapat digunakan untuk memvisualisasikan tiga jenis visualisai dari algoritma yaitu : text, flowchart dan computer games. System ini digunakan untuk mengajarkan algortima binary sea rch, bubble sort, selection sort dan insertion sort kepada para pelajar. Sub-system yang kedua adalah Serious A-V designer yang digunakan untuk mendesain algorithm text, algorithm flowcha rt dan algortihm games. Untuk algoritma binary search, computer games yang divisualisasikan oleh system Serious A-V ini berupa menembak blok array dengan bola menggunakan sebuah paddle. Sedangkan untuk algoritma bubble sort, selection sort, dan insertion sort, computer games yang divisualisasikan berupa mengurutkan sebuah dek kartu dalam waktu yang ditentukan. Semua computer games yang divisualisasikan dalam system ini disajikan dalam bentuk 2D.
Debabi & Bensebaa (2016) berhasil membangun sebuah video game pembelajaran beberapa algoritma dasar yaitu (Alternatif "if"; iterasi "loop"; urutan perintah) atau algoritma yang menggabungkan konsep-konsep ini. Salah satunya adalah algoritma SelectionSort. Video game yang mereka bangun adalah sebuah video game 2D yang bergenre Role Playing (RPG). Dalam game tersebut, player akan disituasikan berada pada sebuah tempat parkir dari Departemen Ilmu Komputer. Player harus menyortir, dalam waktu tertentu, kendaraan yang diparkir di garasi. penyortiran ini akan dilakukan sesuai dengan berat kendaraan, dari yang paling ringan sampai yang terberat. Untuk dapat melakukan hal tersebut, player harus dapat menyelesaikan serangkaian tahapan penyortiran yang terdapat pada Selection Sort sebelum waktu habis.
menyusuri jalan keluar dari wilayah musuh. Sedangkan proses pembelajaran atau pelatihan algortima sorting akan berlangsung dalam sebuah minigame yang akan muncul ketika pemain melakukan reload senjata. Pemain harus mampu mengaktifkan ability yang dimiliki senjata tersebut dengan cara melakukan reload untuk dapat melawan musuh dan melewati rintangan-rintangan yang ada dalam game world.
Tabel 2.1 : Tabel Penelitian Terdahulu
No Judul penelitian Penulis Keterangan