BAB II DASAR TEORI 2.1. Dasar Pemrograman GTGE

dokumen-dokumen yang mirip
SIMULASI AUTONOMOUS VEHICLE DI UNIVERSITAS KRISTEN SATYA WACANA SALATIGA

PEMBUATAN GAME EDUKASI PEMBELAJARAN BAHASA INGGRIS UNTUK SISWA TINGKAT SEKOLAH DASAR DI UPT TK DAN SD KECAMATAN PONJONG KABUPATEN GUNUNGKIDUL

PENGIMPLEMENTASIAN JAVA DENGAN GOLDEN-T GAME ENGINE DALAM PEMBUATAN ROLE PLAYING GAME SATRIA GARUDA

MODUL III ARRAYLIST TUGAS PENDAHULUAN

BAB IV HASIL PERANCANGAN DAN ANALISA

BAB 2 INPUT DARI KEYBOARD

BAB 5 Mendapatkan Input dari Keyboard

BAB 5 Mendapatkan Input dari Keyboard

TPI4202 e-tp.ub.ac.id. Lecture 4 Mas ud Effendi

PEMROGRAMAN GAME MOBILE Tugas III Contoh Sprite. Oleh : I Dewa Made Yuda Aditya Putra

BAB IV HASIL DAN UJI COBA

PAKET (PACKAGE) 20 Januari 2012

Array Sebagai Parameter Method

Penggunaan Netbeans IDE, Hello World, variable dan Operator aritmetika.

Tutorial A Menggambar Bendera Merah Putih Pada Frame

Pemrograman dengan Java

Modul 2. [access specifier] [tipe data] [nama variabel];

BAB 3 PERANCANGAN DAN PEMBUATAN. Engine akan dirancang agar memenuhi syarat maintainability, reusability dan

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

BAB IV HASIL DAN UJI COBA

Didalam menampilkan peta yang sudah kita buat, kita akan menggunakan Slick2D sebagai sebuah frameworknya.

Modul Praktikum 4 Pemograman Berorientasi Objek

TIPE DATA PADA JAVA. Pertemuan (K-04/L-04)

Percabangan & Perulangan

Modul Praktikum Pemrograman

PEMROGRAMAN JAVA. Yoannita, S.Kom. Input Kondisi (IF-ELSE, SWITCH)

Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class

BAB III ANALISIS MASALAH DAN PERANCANGAN PROGRAM

MK. Pemrograman Berorientasi Objek. Input dari Keyboard. Karmilasari

Badiyanto, S.Kom., M.Kom. PBO java

Graphics2D dan Geometry

BAHASA PEMROGRAMAN JAVA

BAB III ANALISIS DAN RANCANGAN PROGRAM

PRAKTEK 1 CLASS, ATTRIBUTE, METHOD, DAN OBJEK

Pengenalan Java, Tipe Data, Variabel dan Operator. Putu Putra Astawa

Sekarang, kita akan mencoba untuk menganalisa program Java pertama : public class Hello {

Inheritance dan Kata Kunci static

DASAR PEMROGRAMAN JAVA. Astrid Lestari Tungadi, S.Kom., M.TI.

TPI4202 e-tp.ub.ac.id

LAPORAN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN ( Implementasi Rekursi Pada Java)

Membuat dan Menggunakan Class

Menggambar Garis Horizontal, Vertikal dan Diagonal

2.1 if Jenis-jenis Percabangan if adalah if, if else, If else if else if - else

Anonymous Inner Class

TIPE DATA Pertemuan (K-03/L-03)

Dasar Pemrograman Java

NASKAH UTAMA ULANGAN AKHIR SEMESTER GANJIL TAHUN PELAJARAN 2013/2014

BAB III ANALISA DAN PERANCANGAN

PRAKTIKUM 5 PAKET, IMPORT DAN INTERFACE

BAB IV IMPLEMENTASI DAN EVALUASI

LAPORAN TUGAS AKHIR APLIKASI KALKULATOR BERBASIS JAVA

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL)

BAB III ANALISA DAN PERANCANGAN

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK. Maimunah, S.Si,M.Kom

Bahasa Pemrograman :: Dasar Pemrograman Java

PEMBUATAN GAME LITTLE ENGLISH MENGGUNAKAN GTGE FRAMEWORK SEBAGAI MEDIA PEMBELAJARAN BAHASA INGGRIS. Naskah Publikasi

BAB III ANALISA DAN PERANCANGAN

BAB III ANALISA DAN PERANCANGAN

ANALISIS MASALAH DAN RANCANGAN PROGRAM

Bab 6. Layer Manager

Variabel dengan tipe dasar hanya dapat menyimpan sebuah nilai

BAB III ANALISIS DAN PERANCANGAN

BAB I PENDAHULUAN. menghibur manusia. Game adalah salah satu media yang paling banyak dipakai

LAB02 : KODING PROGRAM

Rekomendasi Min Perangkat Keras. Prosesor dual core 1.5 GHz RAM 2 GB Monitor 10 " VGA Onboard Keyboard PS2 Mouse PS2

Modul Praktikum 3 Pemograman Berorientasi Objek

BAB I PENDAHULUAN I-1

IKG2I4 / Software Project I

Persiapan Sebelum mengikuti tutorial ini, ada baiknya pembaca telah membaca beberapa tutorial sebagai berikut:

Praktikum 3 Konsep Class, Attribute dan Method

Pemrograman Berorientasi. Class dan Obyek 2

SUMBER BELAJAR PENUNJANG PLPG

PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN

I. Tujuan Instruksional Umum Mengenal konsep dasar berorientasi objek Memahami dan dapat mengimplementasikan Kelas dan Objek pada java.

Tipe Data Floating Point Tipe data yng digunakan untuk menampung bilangan desimal

BAB III ANALISA DAN PERANCANGAN

2 TIPE DATA DAN VARIABEL

BAB II VARIABEL DAN TIPE DATA

MODUL 3 ARRAY. Pemograman Berorientasi Objek

BAB 5 SPRITE. Contoh sebuah Sprite

BAB IV HASIL DAN UJI COBA

BAB 4 IMPLEMENTASI DAN EVALUASI Spesifikasi Perangkat Keras yang dibutuhkan

BAB 1 PENDAHULUAN 1.1 Latar Belakang 1.2 Identifikasi Masalah

MINGGU II : DASAR C# Tujuan Pembelajaran. Materi

BAB VI ARRAY Mendeklarasikan Variabel Array int[ ] bilangan; int bilangan[ ]; Mendefinisikan Array Bilangan = new int[5]; Latihan 21. ArrSatu.

Parent dan Child di Java

I. Tujuan Instruksional Umum Komunikasi antar objek pada kelas yang berbeda Memahami berbagai macam modifier dan karakteristiknya II.

BAB III ANALISIS DAN PERANCANGAN

PERTEMUAN 3 TAHAPAN PEMBUATAN PROGRAM

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

BAB V IMPLEMENTASI KARYA. Laporan tugas akhir pada BAB V dijelaskan mengenai proses atau jalan cerita

Pertemuan 4 Array pada Java

Pendahuluan Dasar Pemrograman Java

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

IF PEMROGRAMAN LANJUT PERULANGAN. Oleh : Andri Heryandi, M.T.

Method / Fungsi / Sub Program

Pengenalan OOP. Object-Oriented programming (OOP) Menitikberatkan pada konsep object sebagai elemen dasar dari program.

Modul Pelatihan : Pembuatan Game Animasi Menggunakan Greenfoot

Transkripsi:

BAB II DASAR TEORI Pada bab ini akan dibahas dasar-dasar teori yang berkaitan dengan perancangan. Pada bab ini akan sedikit dijelaskan tentang engine Golden T Game Engine (GTGE) yang digunakan dalam perancangan yang mencakup dasar pemrograman dengan GTGE dan penjelasan komponen-komponen GTGE yang digunakan pada perancangan serta ada juga penjelasan tentang algoritma yang digunakan. 2.1. Dasar Pemrograman GTGE GTGE merupakan engine yang mampu membuat sebuah permainan (game) berbasis bahasa pemrograman Java [4,h.15]. Pustaka GTGE menyediakan berbagai metode (method) yang lengkap untuk membuat permainan 2D seperti penanganan akselerasi perangkat keras (hardware), input mouse dan keyboard, audio, jaringan, serta berbagai komponen antarmuka pengguna yang siap digunakan untuk membangun sebuah permainan dengan lebih mudah dan cepat. GTGE didesain sebagus mungkin agar tampil lebih sederhana dan mudah digunakan. Hampir semua komponen dasar pembuatan sebuah permainan telah ada pada GTGE sehingga pengguna GTGE mampu meminimalisasi masalah yang mungkin terjadi dalam proses pembuatan. Setiap bagian engine di dalam GTGE dapat digantikan (replace) dengan engine lain. Berikut ini adalah beberapa kelebihan dari GTGE : Cepat GTGE memiliki dukungan terhadap OpenGL sehingga kecepatan dan performa game dapat ditingkatkan. Mudah digunakan GTGE didesain semudah dan sesederhana mungkin untuk digunakan dan dikustomasisasi. Dapat berjalan diberbagai sistem operasi 5

6 GTGE dibangun menggunakan bahasa pemograman Java, maka permainan yang dibuat dapat berjalan diberbagai sistem operasi seperti Windows, Linux, dan MacOS selama ada dukungan Java di dalamnya. Gratis GTGE dapat diunduh secara gratis di http://www.goldenstudios.or.id. 2.2. Konsep Dasar GTGE Dalam bahasa pemrograman Java, setiap fungsi berada di dalam kelas (class), demikian juga dengan fungsi-fungsi GTGE. Untuk memudahkan pencarian dan penggunaan fungsi dari suatu kelas, Java mendukung pengelompokan kelas ke dalam suatu paket (package). GTGE memanfaatkan hal ini seoptimal mungkin untuk membuat GTGE Application Programming Interface terstruktur dengan baik dan memudahkan pencarian serta penggunaan fungsi GTGE [4, h.19]. GTGE membuat suatu kelas berdasarkan fungsi-fungsi tertentu (misalnya membuat kelas untuk fungsi grafis dan mengelompokkan berbagai kelas yang berkarakteristik sama (misalnya beberapa kelas engine) ke dalam sebuah paket. Secara garis besar terdapat tiga paket utama dalam GTGE [4,h.19-20], yaitu : 1. com.golden.gamedev Paket ini berisi kumpulan kelas inti yang menginisialisasi berbagai engine dari GTGE. 2. com.golden.gamedev.engine Paket ini berisi kelas engine GTGE, mulai dari graphics engine, input engine, sound engine dan timer engine. 3. com.golden.gamedev.object Paket ini berisi beberapa kelas objek, seperti sprite, latar belakang, gambar dan suara. Dengan disusunnya setiap kelas dengan rapi dan terstruktur maka pencarian fungsi dan kelas dapat dilakukan dengan lebih cepat dan mudah. Dalam bahasa pemograman Java untuk dapat menggunakan suatu paket digunakan kata kunci impor (import). Misalnya untuk dapat memakai kelas sprite yang berada dalam paket com.golden.gamedev,object, maka harus dilakukan impor terhadapat paket tersebut.

7 Ada tiga metode yang wajib digunakan dalam kelas utama GTGE [4,h.21], yaitu : 1. public void initresources() Digunakan untuk melakukan inisialisasi semua variabel-variabel, resource, dan komponen yang akan digunakan di dalam permainan, seperti pembuatan latar belakang, pemanggilan gambar dan suara. 2. public void update (long elapsedtime) Digunakan untuk meng-update seluruh variabel permainan, perubahan posisi, dan yang paling utama adalah memberikan logika atau algoritma terhadap jalannya permainan. 3. public void render (Graphics2D g) Digunakan untuk menggambar atau me-render semua komponen ke dalam layar monitor. Pertama kali engine akan memanggil metode initresources(), kemudian akan masuk ke dalam proses pengulangan (repeat) yang terdiri dari deteksi masukan pengguna, menjalankan fungsi update, diikuti dengan render. Metode initresources hanya akan dipanggil sekali saja, sedangkan pengulangan akan terus berlangsung hingga ada pemanggilan metode finish(). Yang terakhir dilakukan adalah membersihkan memory yang dipakai. 2.3. Komponen-komponen GTGE GTGE juga berisi berbagai macam komponen siap pakai yang akan mempermudah pengguna dalam membuat atau mengembangkan sebuah permainan. Berikut ini adalah daftar komponen yang terdapat di dalam pustaka GTGE [4,h.35] : 1. Komponen Latar Belakang (Background) Komponen ini adalah komponen yang berfungsi sebagai latar belakang permainan. Komponen ini terdiri dari berbagai tipe, antara lain: a. ColorBackground b. ImageBackground c. TileBackground d. IsometricBackground

8 e. ParallaxBackground Untuk menggunakannya pertama-tama dideklarasikan terlebih dahulu, kemudian dimasukkan ke fungsi InitResources() dan supaya dapat tampil pada layar maka harus juga dimasukkan ke dalam fungsi render (Graphics2D g), untuk lebih jelasnya dapat dilihat pada Kode Sumber 2.1. package gtge; import com.golden.gamedev.game; import com.golden.gamedev.gameloader; import com.golden.gamedev.object.background.colorbackground; import java.awt.color; import java.awt.dimension; import java.awt.graphics2d; public class GTGE extends Game ColorBackground cb; public void initresources() cb = new ColorBackground(Color.LIGHT_GRAY, 1250, 720); public void update(long l) cb.update(l); public void render(graphics2d gd) cb.render(gd); public static void main(string[] args) GameLoader gl=new GameLoader(); gl.setup(new GTGE(), new Dimension(1250,720), false); gl.start(); Kode Sumber 2.1. Pengaturan latar belakang Dari Kode Sumber 2.1 akan dihasilkan sebuah latar belakang berupa warna abu-abu muda dengan ukuran 1250 x 720 seperti yang terlihat pada Gambar 2.1.

9 2. Komponen Sprite Gambar 2.1. Latar belakang pada GTGE Komponen sprite adalah komponen yang berguna sebagai komponen gambar dan animasi yang memiliki karakteristiknya masing-masing. Sprite terdiri dari beberapa tipe seperti : a. Sprite Sprite merupakan komponen yang paling dasar. Pada perancangan, salah satu sprite yang digunakan adalah objek robot mobil/ agent. Pertama-tama objek tersebut dideklarasikan tersebih dahulu, kemudian dimasukkan kedalam fungsi InitResources(), fungsi update (long elapsedtime), dan yang terakhir ke dalam fungsi render(graphics2d g). Untuk lebih jelasnya dapat dilihat pada Kode Sumber 2.2. package gtge; import com.golden.gamedev.game; import com.golden.gamedev.gameloader; import com.golden.gamedev.object.background.colorbackground; import com.golden.gamedev.object.sprite; import java.awt.color; import java.awt.dimension; import java.awt.graphics2d; public class GTGE extends Game ColorBackground cb; Sprite agent; public void initresources() cb = new ColorBackground(Color.LIGHT_GRAY, 1250, 720); agent = new Sprite(getImage("images/agent.png"),1,1);

10 public void update(long l) cb.update(l); agent.update(l); public void render(graphics2d gd) cb.render(gd); agent.render(gd); public static void main(string[] args) GameLoader gl=new GameLoader(); gl.setup(new GTGE(), new Dimension(1250,720), false); gl.start(); Kode Sumber 2.2. Pengaturan sprite Dari Kode Sumber 2.2 dapat dilihat terdapat sebuah sprite yang disebut agent. Objeknya merupakan gambar yang diambil sesuai dengan nama yang tercantum. Objek tersebut akan diletakkan pada koordinat (x,y) 1,1. Karena robot pasti memiliki karakteristik-karakteristik tertentu yang menyebabkan terjadinya perubahan seperti perubahan posisi maka perlu selalu di-update dengan dimasukkan ke dalam fungsi update (elapsedtime). Untuk hasilnya dapat dilihat pada Gambar 2.2. b. AnimatedSprite Gambar 2.2. Komponen sprite

11 AnimatedSprite merupakan turunan dari sprite yang dapat beranimasi. Sprite jenis ini memerlukan kumpulan citra (array of images) yang digunakan untuk animasi sprite tersebut. c. AdvancedSprite d. VolatileSprite 3. Komponen Font Komponen font adalah komponen yang digunakan untuk menampilkan tulisan. Font GTGE terdiri dari beberapa tipe seperti : a. SystemFont b. BitmapFont c. AdvanceBitmapFont Langkah-langkah penerapannya tidak berbeda jauh dengan komponen-komponen sebelumnya seperti yang telihat pada Kode Sumber 2.3. package gtge; import com.golden.gamedev.game; import com.golden.gamedev.gameloader; import com.golden.gamedev.object.background.colorbackground; import com.golden.gamedev.object.sprite; import java.awt.color; import java.awt.dimension; import java.awt.graphics2d; import java.awt.font; import com.golden.gamedev.object.gamefont; import com.golden.gamedev.object.font.systemfont; public class GTGE extends Game ColorBackground cb; SystemFont sf; public void initresources() cb = new ColorBackground(Color.LIGHT_GRAY, 1250, 720); sf =new SystemFont(new Font("Times New Roman",Font.BOLD,40), Color.yellow); public void update(long l) cb.update(l); public void render(graphics2d gd) cb.render(gd);

12 sf.drawstring(gd, "CONTOH PENGGUNAAN SYSTEM FONT PADA GTGE ", GameFont.CENTER,0,10,getWidth()); public static void main(string[] args) GameLoader gl=new GameLoader(); gl.setup(new GTGE(), new Dimension(1250,720), false); gl.start(); Kode Sumber 2.3. Pengaturan SystemFont Untuk hasilnya dapat dilihat pada Gambar 2.3. Gambar 2.3. Contoh penggunaan font pada GTGE 4. Komponen Grup (Group) Komponen grup adalah komponen yang dapat mengelompokkan komponen-komponen yang lain. Biasanya grup berfungsi untuk mempermudah manajemen komponen dan dapat digunakan untuk pengecekan tubrukan. Misalnya saja objek sprite yaitu robot yang digunakan lebih dari satu maka akan lebih mudah jika dimasukkan ke dalam grup. 2.4. Local Path Planning Ada dua jenis sistem navigasi yang biasa digunakan pada robot mobil [2], yaitu a. Global Path Planning Pada metode ini robot telah memiliki informasi tentang keseluruhan lingkungan termasuk objek-objek diam yang berada pada lingkungan tersebut. Pada pendekatan ini robot telah memiliki informasi lengkap jalur yang akan dilewati bahkan sebelum dia bergerak.

13 b. Local Path Planning Sedangkan pada metode ini robot tidak mengetahui informasi mengenai lingkungan dimana dia ditempatkan namun dengan pendekatan ini robot dapat membuat sendiri jalur yang baru untuk bisa ke tempat tujuan. Pada perancangan ini digunakan metode yang kedua karena pada pendekatan yang pertama dituntut adanya medan lingkungan yang statis sedangkan pada pendekatan yang kedua robot akan dapat beradaptasi dengan cepat dan mudah dengan perubahan lingkungan. 2.5. If-then Rules Pada perancangan selain engine GTGE, juga terdapat algoritma sebagai komponen pendukung dan dasar pergerakan dari robot mobil. Algoritma yang digunakan dibuat berdasarkan aturan-aturan tertentu sehingga robot mobil tersebut dapat melakukan fungsifungsinya dengan baik. Aturan-aturan tersebut (if then rules) dibuat dengan pendekatan perilaku manusia (human behavior based). Pada perancangan ini manusia yang dimaksud adalah operator yang merancang algoritma. Untuk lebih jelasnya dapat dilihat pada Gambar 2.4 dan Kode Sumber 2.5. If posisiakhir == didepan then agentmovement = Maju ; If posisiakhir == dikanan then agentmovement = KeKanan ; Kode Sumber 2.4. If then rules

14 Gambar 2.4. Contoh penerapan if-then rules Gambar 2.4 merupakan contoh sederhana pergerakan sebuah robot mobil menurut aturan yang sudah dibuat pada Kode Sumber 2.4.. Aturan-aturan tersebut akan ditambahkan sehingga robot tersebut dapat mencapai tujuan dan juga dapat menghindari objek-objek yang menghalangi.