Implementasi Struktur Data Tree Pada Game Snake Dengan C – (Dena Djayusman, Ida Suhartini, Fadhlan Naufal Gunawan, Naufal Taufik Alhakim, Thalissa Gunawan A)

## IMPLEMENTASI STRUKTUR DATA TREE PADA GAME SNAKE DENGAN C
Dena Djayusman 1 , Ida Suhartini 2 , Fadhlan Naufal Gunawan 3 , Naufal Taufik Alhakim 4 , Thalissa Gunawan A 5 Politeknik Negeri Bandung
Jl. Gegerkalong Hilir, Ciwaruga, Kec. Parongpong, Kabupaten Bandung Barat, Jawa Barat 40559 e-mail : dena.djayusman.tif19@polban.ac.id 1 , ida@jtk.polban.ac.id 2 , fadhlan.naufal.tif19@polban.ac.id 3 , naufal.taufik.tif19@polban.ac.id 4 , thalissa.gunawan.tif19@polban.ac.id 5

## ABSTRAK
Permainan Snake merupakan sebuah permainan dengan konsep dimana pemain mengendalikan tubuh karakter permainan yang memanjang berupa sebuah garis. Tubuh dari karakter permainan tersebut dapat  dijabarkan  dengan  struktur  data  tree.  Struktur  data  tree  digunakan  untuk  mengetahui  keterkaitan antara bagian tubuh karakter yang satu dengan yang lainnya. Penerapan struktur data tree pada program terbagi  dalam  fungsi-fungsi  yang  merupakan dasar  dari  struktur  program  C.  Dengan  penerapan  struktur data tree yang dibuat dalam program C, program permainan Snake ini dapat digunakan dan dikembangkan seperti  program  permainan  Snake  pada  umumnya.  Program  ini  dibuat  dengan  tujuan  hiburan  bagi pengguna-nya serta tujuan edukasi bagi tim pengembang, khususnya edukasi terkait ilmu struktur data tree.

## Kata kunci: Program, Permainan Snake, Struktur Data Tree, Bahasa C

## ABSTRACT
Snake game is a game with a concept where the player controls the body of a game character that extends in the form of a line. The body of the game character can be described using a tree data structure. The  data  tree  structure  is  used  to  determine  the  relationship  between  one  character's  body  parts  and another. The application of the tree data structure in the program is divided into functions which are the basis of the C program structure. With the application of the tree data structure created in the C program, this Snake game program can be used and developed like the Snake game program in general. This program was created with the aim of entertainment for its users as well as educational purposes for the development team, especially education related to the science of data tree structures.
Keywords: Programs, Snake Games, Data Tree Structures, C Language

## 1. PENDAHULUAN
Permainan  video  merupakan  permainan  yang  menggunakan  interaksi  dengan  antarmuka  pengguna melalui  gambar  yang  dihasilkan  oleh  peranti  video  yang  pada  umumnya  terdapat  perhitungan  tingkat keberhasilan  yang  dicapai  dalam  menyelesaikan  setiap  misi,  biasa  disebut  dengan  skor.  Salah  satu permainan video yang sering dijumpai yakni permainan Snake. Permainan Snake menuntut para pemain untuk  teliti  dan  konsentrasi  karena  ketika  memainkannya  diharuskan  untuk  berusaha  menghindar  dari menabrak tubuh/obstacle dan mencari letak makanan yang dapat menambah panjang tubuh dari karakter tersebut.
Dahulu permainan Snake berwarna hitam putih dengan visualisasi makanan berupa lingkaran hitam. Perkembangan antarmuka permainan video semakin meningkat seiring dengan berkembangnya teknologi dan  teknik  pengembangannya,  sehingga  saat  ini  permainan  Snake  dapat  dijumpai  dengan  visualisasi karakter yang berwarna. Pada program C, terdapat beragam pilihan antarmuka. Untuk membuat program permainan,  pilihan  yang  umumnya  dipilih  adalah  console  application  dan  console  graphic  application. Console  application  menampilkan  visualisasi  yang  terkesan  kaku,  berbeda  dengan  aplikasi  yang  dibuat dengan pengaturan console graphic application.
Salah  satu  cara  yang  ditempuh  agar  antarmuka  permainan  Snake  semakin  menarik  dalam visualisasinya adalah dengan memilih pengaturan program console graphic application dan menggunakan library  graphics.h  di  mana  library  tersebut  berisi  tentang  semua  definisi  dan  penjelasan  fungsi  grafik. Dengan adanya ini maka dapat ditampilkan objek dalam mode grafik. Dengan begitu program permainan Snake yang dikembangkan akan lebih menarik minat serta lebih menghibur pengguna yang menggunakan program  tersebut,  sesuai  dengan  tujuan  yang  ingin  dicapai.  Konsep  dasar dari  program permainan  yang akan dibuat berupa program permainan Snake dengan bahasa pemrograman C dan pemodelan struktur data tree, serta penggunaan file pustaka atau library graphics.

## 2. KAJIAN PUSTAKA
Konsep-konsep yang diterapkan pada pengerjaan program permainan Snake ini diantaranya yaitu,

## 2.1  Struktur Data Tree
Karakter dari permainan Snake dimodelkan menggunakan tree atau pohon. Struktur tree adalah struktur yang mengandung aspek hirarki yang dibentuk melalui pengelompokkan elemen atau node dalam tingkatan tertentu.
Terdapat macam-macam jenis tree beserta cabang ilmu lainnya yang berkaitan dengan jenis-jenis tree tersebut. Salah satunya adalah binary tree. Jenis tree tersebut identik dengan ciri parent yang pasti hanya memiliki dua anak.

## 2.2  AVL Tree
Guna  meminimalisir  kompleksitas  waktu  dalam  proses  pengolahan  data  pada  tree  yang  diterapkan, maka  diperlukan  metode  otomatisasi  penyeimbangan  tinggi  pohon.  Metode  ini  disebut  AVL  tree  yang dimanfaatkan  pada  pohon  biner  (binary  tree).  Waktu  yang  dibutuhkan  dalam  pencarian  data,  dijamin bernilai konstan apabila metode ini diterapkan.
Penyeimbangan tinggi pohon dilakukan dengan proses rotasi. Proses rotasi tersebut menyebabkan adanya pergeseran  pointer  yang  menunjuk  root  pada  tree  serta  terbentuknya  jalur  node  baru.  Jalur  node  baru tersebut pastinya memiliki nilai seimbang ketika dihitung oleh otomatisasi AVL.

## 2.3 Analisis
Berdasarkan metode yang telah dipaparkan serta penggambaran program yang akan dikembangkan, analisis  terhadap  implementasi  pun  dilakukan.  Struktur  data tree beserta AVL  tree hanya  dapat diimplementasikan pada karakter permainan yaitu snake . Karakter  permainan snake digambarkan  memiliki  bentuk  tubuh  yang  dapat  terus memanjang dalam kondisi tertentu. Tubuh itu sendiri terbagi menjadi tiga bagian utama, yaitu kepala, badan, serta bagian tubuh belakang snake . Masing-masing  bagian  tubuh  karakter snake ditampung  dalam node yang  berbeda.  Pada  waktu terjadinya penambahan panjang tubuh karakter snake , maka jumlah node pada model tree akan turut bertambah jumlahnya.
Implementasi binary  tree dirasa  akan  lebih  efisien  karena  nantinya  dapat  diterapkan AVL yang mempercepat proses pengolahan data pada tree . Sehingga program dapat bekerja secara lebih optimal, dijelaskan pada gambar dibawah ini.

## ISSN : 2088-589X
Implementasi Struktur Data Tree Pada Game Snake Dengan C – (Dena Djayusman, Ida Suhartini, Fadhlan Naufal Gunawan, Naufal Taufik Alhakim, Thalissa Gunawan A)

## Gambar 1. Pemodelan karakter Snake menggunakan tree
3. METODE PENELITIAN

## 3.1  Metode Perancangan
Dalam  pembuatan  permainan Snake tentunya  dibutuhkan  sebuah  tahapan  perancangan  agar permainan  yang  dibuat  sesuai  dengan  yang  diinginkan. Secara garis besar terbagi menjadi beberapa tahapan berikut :
1. Tahap Riset dan Penyusunan Konsep Dasar
Pada  tahap  ini  konsep  dasar,  tema,  teknologi,  media  ( platform ),  serta  berbagai  batasan  lain dirumuskan.  Tahapan  riset  ini  menjadi  sebuah  tahapan  penting,  berbagai  elemen  dasar  dari permainan disusun di sini.
2. Perumusan Mekanika Permainan
Pada  tahap  ini  tim  pengembang  merumuskan  mekanika  permainan.  Mekanika  permainan merupakan  pola,  aturan,  atau  mekanisme  yang  mengatur  bagaimana  proses  interaksi  pemain dengan permainan yang dibuat.
3. Penyusunan Asset dan Level Design
Tahapan ini fokus pada penyusunan konsep dari semua karakter serta asset termasuk suara/musik yang  diperlukan.  Pada  tahap  ini  pula  tim  pengembang  melakukan  pengelompokan  tingkat kesulitan  serta  berbagai asset yang  tepat  sehingga  permainan  dapat  menghadirkan  pengalaman bermain yang optimal.
4. Development
Pada tahap ini seluruh konsep yang sebelumnya telah tersusun mulai dikembangkan secara penuh serta semua elemen mulai dipadukan.
5. Testing
Pada  tahap  ini  berfokus  untuk  mengetahui  apakah  semua  komponen  utama  permainan  mampu memberikan  pengalaman  bermain  yang  diharapkan  serta  dapat  diketahui  apakah  ada  masalah teknis yang belum terdeteksi sebelumnya.

## 3.2 Perancangan Modul
Dalam pembuatan program, tentu saja diperlukan beberapa modul yang mana dalam modul-modul tersebut  berisi  logika  yang  menjadi  dasar  berjalannya  program.  Modul-modul  utama  yang  akan diimplementasikan sebagai berikut :
1. Modul dengan fungsi umum yaitu menampilkan. Misalnya menampilkan arena permainan, papan jumlah  perolehan  skor  dan  nyawa  karakter,  menampilkan  karakter snake ,  dan  objek  makanan karakter snake .  Ciri  umum  dari  modul  dengan  fungsi  ini  adalah  kata  “ Display ”  pada  awal penamaannya.
2. Modul dengan fungsi yang bersangkutan dengan logika dalam pemodelan karakter snake dengan struktur  data  tree.  Modul  ini  nantinya  terdiri  atas  modul  InizializationSnake,  AddSnake, CreateSnake, Height, BalanceFactor.
3. Modul  dengan  fungsi  untuk  mengatur  gerakan  karakter.  Modul  ini  memiliki  ciri  umum  pada penamaan modulnya, yaitu terdapat kata yang merujuk ke macam-macam arah, misalnya kanan ( right ) dan kiri ( left ).

## 3.3 Perancangan Tampilan
Antarmuka dari program menjadi salah satu unsur penting, guna menarik minat pengguna serta kenyamanan  visual.  Antarmuka  yang  menjadi output dari  program  permainan snake ini  dirancang untuk menampilkan,
1. Karakter snake , terdiri dari kepala, tubuh, dan ekor,
2. Objek makanan karakter, terbagi menjadi makanan utama, makanan bonus, dan makanan jebakan,
3. Latar belakang/ background ,
4. Button , terdiri dari button play game , dan button exit,
5. Menu, terdiri dari menu utama, map menu, pause menu, menu tutorial dan game over menu, serta
6. Area permainan dengan dua pilihan map yang dirancang berbeda.

## 4. HASIL DAN PEMBAHASAN

## 4.1 Implementasi Modul
Modul-modul yang diimplementasikan pada pembuatan permainan Snake sebagai berikut :
Tabel 1. Pengimplementasian Modul Permainan Snake
No Nama Modul Deskripsi 1. MainMenu Modul ini berfungsi untuk menampilkan background main menu 2. Tutorial Modul ini bertujuan menampilkan jenis kontrol beserta fungsinya yang dapat digunakan dalam program permainan 3. MapMenu Menampilkan background berupa pilihan map yang dapat dipilih user 4. PlayGame Memulai permainan utama yaitu permainan Snake 5. DisplayMap Menampilkan background berupa arena permainan berdasarkan map pilihan user 6. DisplayScore Modul untuk menampilkan papan score ke layar

## ISSN : 2088-589X
7. DisplayLives Modul untuk menampilkan papan jumlah nyawa pemain ke layar 8. InitializationSnake Menginisiasikan agar terbentuk 3 buah node yang terhubung pada tree yaitu untuk node head, body, dan tail snake nantinya 9. AddSnake Menambahkan node baru sesuai ketentuan Binary Search Tree (BST) serta memperhatikan keseimbangan treenya 10. CreateSnake Mengalokasikan node baru serta menginisiasi semua isi nodenya 11. Height Modul untuk mencari height atau jumlah dari

## 4.2 Implementasi Alur Program
Berdasarkan rancangan dan implementasi modul, berikut ini alur program permainan snake secara keseluruhan
Gambar 2. Implementasi Alur program

## 4.3 Implementasi Tampilan
Berdasarkan rancangan tampilan yang sebelumnya sudah dibuat, berikut ini hasil implementasi yang dibangun dengan memanfaatkan desain dengan lisensi yang mengijinkan pihak lain mempergunakannya untuk keperluan pribadi.

## 4.3.1 Implementasi Bagian Tubuh Karakter Snake

## Gambar 3. Implementasi bagian tubuh karakter snake
Bagian tubuh karakter snake terdiri dari tiga bagian utama: kepala, tubuh, dan ekor. Bagian kepala dan ekor, masing-masing memiliki empat desain berbeda yang dibuat berdasarkan arah gerak karakter.  Berbeda  dengan  bagian  tubuh  yang  terurai  menjadi  enam  bagian,  empat  diantaranya merupakan desain tubuh ketika karakter snake melaju dengan arah berbelok, sedangkan dua lainnya merupakan bentuk tubuh karakter ketika melaju secara normal baik vertikal maupun horizontal.

## 4.3.2 Implementasi Objek Makanan Karakter

## Gambar 4. Implementasi objek makanan karakter snake
Objek makanan merupakan salah satu objek penting selain karakter snake , karena objek ini lah  yang  menjadi  arah  tujuan  gerak  karakter snake sekaligus  penentu  skor  yang  akan  dicapai  oleh pemain. Tim pengembang membuat tiga jenis desain makanan: makanan utama, makanan bonus, dan makanan  jebakan.  Sesuai  dengan  nama-nya,  ketiga makanan tersebut bisa menjadi keuntungan atau kerugian bagi pemain.

## ISSN : 2088-589X

## 4.3.3 Implementasi desain latar belakang, button, menu, dan arena map

## Gambar 5. Implementasi desain latar belakang
Desain  latar  belakang  menjadi  elemen  yang  cukup  krusial  dalam  tahapan  merancang antarmuka dari program. Objek atau komponen lainnya ditaruh di atas latar belakang tersebut, seperti karakter  permainan,  objek  makanan, serta button yang dipergunakan untuk pengguna berinteraksi dengan menu-menu yang ada pada program.
Gambar 6. Implementasi desain button
Gambar 7. Implementasi desain menu

## Gambar 8. Implementasi desain arena map
Arena map dibuat  bervariasi  untuk  menambah  tingkat  kesulitan  bagi  pengguna  yang memainkan program ini. Perbedaan dari kedua map yang diimplementasikan berada pada border yang terlihat  mengelilingi  arena  permainan. Border tersebut  di  program  dengan  perulangan  untuk ditampilkan pada arena.

## 5. KESIMPULAN
Kesimpulan yang dapat diambil dari analisis terhadap Implementasi Struktur Data Tree pada Game Snake dengan C adalah permainan snake dapat dimodelkan menjadi struktur data tree, juga dapat diterapkan ke dalam binary tree yang diotomatisasi dengan AVL. Pemodelan tree dilakukan terhadap bagian tubuh karakter  snake  pada  permainan  yang  memiliki  struktur  utama  yaitu  kepala,  tubuh,  dan  ekor.  Dengan pemodelan  tersebut,  program  dapat  diproses  dengan  lebih  optimal.  Sehingga  pengguna  mendapatkan kemudahan dalam menggunakan program.

## DAFTAR PUSTAKA
[1] M. W. Saputra, A. A. K. O. Sudana, dan I. M. Sukarsa, “Implementasi Struktur Data tree  pada Sistem Informasi Upacara yadnya Berbasis Android”, MERPATI, vol. 2,  no.  3,  Des 2014.
[2] D. Wirdasari, “Membuat Program dengan Menggunakan Bahasa C”, Jurnal SAINTIKOM, vol. 8, no. 1, Jan 2010.
[3] S.  Suwanty  dan  O.  Pribadi,  “METODE  AVL  TREE  UNTUK  PENYEIMBANGAN  TINGGI BINARY TREE”, JTM, vol. 4, no. 2, hlm. 61–65, Feb 2016.