BAB 2 LANDASAN TEORI

advertisement
BAB 2
LANDASAN TEORI
2.1 Teori Umum
Teori Umum adalah teori yang dipakai sebagai landasan bagi teori-teori lainnya.
2.1.1 Model Waterfall
M enurut Pressman (2005, p79-80), waterfall model memberikan pendekatan
yang sistematis dan sekuensial bagi pengembangan software yang dimulai dari level
sistem dan melalui tahapan communication, planning, modeling, construction, dan
deployment.
Communication
Planning
Modelling
Construction
Deployment
Gambar 2.1 Waterfall Model
Berikut adalah penjelasan dari tahapan-tahapan tersebut:
1. Communication
Terdiri dari project initiation dan requirement gathering. M erupakan tahapan
pengumpulan kebutuhan yang dilakukan secara intensif dan fokus terutama
kepada software.
8
9
2. Planning
Terdiri dari estimating, scheduling, dan tracking. Pada tahap ini, pengemban g
software membuat perkiraan waktu yang diperlukan. Pada tahap ini juga
dilakukan penjadwalan untuk menyelesaikan tahap-tahap pembuatan software
sesuai dengan waktu yang telah diperkirakan.
3. M odelling
Terdiri dari analysis dan design. Pada saat mendesain software, biasanya
memiliki beberapa proses yang memfokuskan pada empat atribut bagian dari
program. Atribut tersebut adalah struktur data, arsitektur software, representasi
interface, dan detail algoritma. Proses desain mengubah kebutuhan menjadi
representasi dari software yang dapat dinilai untuk kualitas sebelum penulisan
code dimulai.
4. Construction
Terdiri dari code dan test. Pada tahap ini, desain diterjemahkan menjadi bentuk
yang dapat dibaca oleh mesin. Setelah penulisan code selesai dibuat, pengujian
terhadap program dilakukan. Proses pengujian menekankan pada logika internal
pada software, meyakinkan semua pernyataan telah diuji, dan pada fungs i
external.
5. Deployment
Terdiri dari delivery, support, dan feedback. Pada tahap ini, pengemban g
software menyediakan software yang menyediakan fungsi dan fitur yang
bermanfaat. Pengembang software juga menyediakan dokumentasi untuk semua
fitur dan fungsi. Pada tahap ini juga, pengembang software mendapatkan umpan
balik terhadap software yang berujung pada pemodifikasian fungsi dan fitur.
10
2.1.2 Multimedia
M enurut Tay Vaughan (2006, p3), multimedia adalah kombinasi dari teks, foto,
seni grafis, suara, animasi, dan elemen-elemen video yang dimanipulasi secara digital.
Elemen-elemen yang terdapat dalam multimedia adalah sebagai berikut:
1. Teks
M enurut Tay Vaughan (2006, p49), suatu kata dapat memuat banyak arti
sehingga disaat mulai bekerja dengan teks, sangat penting untuk menerapkan
keakuratan dan kepadatan dalam kata tertentu yang Anda pilih. Dalam
multimedia, kata tersebut merupakan kata yang akan muncul dalam judul, menu,
bantuan navigasi, juga dalam narasi dan isi dari multimedia.
Typeface merupakan
famili dari karakter
grafis
yang terkadang
menyertakan banyak type size dan sytle. Font merupakan kumpulan karakter dari
satu ukuran dan style yang dimiliki oleh famili typeface tertentu. (Vaughan,
2006, p50)
Cara yang paling sederhana dalam mengelompokkan sebuah typeface
adalah dengan cara serif versus sans serif. Sans dalam bahasa Perancis berarti
“tanpa” dan serif merupakan dekorasi kecil pada akhir huruf. Font serif biasanya
digunakan untuk badan teks karena serif dapat membantu menuntun mata
pembaca melihat baris-baris teks. Sebaliknya, font sans serif digunakan untuk
headline dan pernyataan yang dicetak tebal. (Vaughan, 2006, p553)
2. Suara
M enurut Tay Vaughan (2006, p92), ketika sesuatu bergetar di udara saat
digerakkan maju mundur, akan menciptakan gelombang. Gelombang tersebut
11
menyebar dan ketika mencapai telinga akan mengalami perubahan tekanan, atau
getaran, sebagai suara.
Audio digital dibuat saat mengkonversikan sebuah gelombang suara ke
dalam angka (digitizing). Suara digital merupakan sampel suara. Setiap fraksi n
dalam satu detik, sampel suara diambil dan disimpan sebagai informasi digital
dalam bit dan byte. Kualitas dari audio digital tergantung pada seberapa serin g
sampel
diambil
dan
berapa
banyak
angka
yang
digunakan
untuk
merepresentasikan nilai dari tiap sampel. (Vaughan, 2006, p94-95)
Format
file
suara
sebenarnya
menggunakan
metodologi
untuk
mengorganisasikan bit dan byte data suara digital ke dalam file data. Struktur file
tersebut tentu saja harus diketahui sebelum data tersebut di-load ke dalam sebuah
komputer. Salah satu contoh dari format file audio digital adalah .wav (WA V
Audio). (Vaughan, 2006, p105-106)
3. Gambar
M enurut Tay Vaughan (2006, p125), gambar dapat berbentuk kecil atau
besar, atau bahkan dalam layar penuh. Gambar dapat berwarna, ditempatkan
secara acak pada layar, dapat berbentuk geometris atau dibentuk secara aneh.
Salah satu cara menjalankan gambar pada komputer adalah sebagai lukisan grafis
atau yang biasa disebut dengan bitmap.
Bit merupakan elemen paling sederhana dalam dunia digital, benda
elektronik yang dapat dihidupkan atau dimatikan, hitam atau putih, atau benar (1)
atau salah (0). Map merupakan matriks dua dimensi dari bit ini. Sehingga dapat
disimpulkan bahwa bitmap merupakan matriks sederhana dari titik-titik kecil
12
yang membentuk sebuah image dan ditampilkan di layar komputer atau dicetak.
(Vaughan, 2006, p126)
M enurut Dastbaz (2002, p58-59), terdapat beberapa format file gambar
yang sudah dikenal oleh banyak orang, yaitu:
a.
JPEG (.jpg)
Format kompresi gambar yang digunakan untuk menampilkan fotofoto dan gambar lainnya dan dapat menangani berbagai kedalaman
warna.
b.
PNG (.png)
Format kompresi file yang dapat menampilkan gambar 24-bit.
4. Animasi
M enurut Tay Vaughan (2006, p160), animasi adalah membuat presentasi
statis menjadi hidup. Animasi merupakan perubahan visula sepanjang waktu dan
memberi kekuatan besar pada proyek multimedia.
Animasi dapat dilakukan karena adanya fenomena biologi yang disebut
persistensi penglihatan dan fenomena psikologi yang disebut phi. Sebuah objek
yang dilihat oleh mata manusia masih tersimpan secara kimia di retina mata
selama beberapa saat setelah penglihatan. Jika dikombinasikan dengan kebutuhan
pemikiran manusia untuk mengonsep secara lengkap aksi yang ditangkap, maka
menjadi mungkin bagi seri image yang berubah secara perlahan dan sangat cepatsatu sesudah yang lain-agar seolah-olah bercampur menjadi satu dalam ilus i
visual dari pergerakan. (Vaughan, 2006, p161)
Untuk animasi 3 dimensi, kebanyakan pekerjaan yang dilakukan adalah
membuat model dari masing-masing objek dan mendesain karakteristik dari
13
bentuk
dan
tampilan
mereka.
Selanjutnya,
perangkat
lunaklah
yang
mengomputasi pergerakan objek dalam ruang 3 dimensi. (Vaughan, 2006, p163)
5. Video
M enurut Tay Vaughan (2006, p178), video merupakan elemen multimedia
yang dapat menggambarkan hembusan napas dari ramainya perdagangan atau
meyakinkan seorang siswa agar tertarik dalam proyek belajar berbasis komputer.
Dari semua elemen multimedia, video menempati tuntutan performa yang
tertinggi dalam komputer dan untuk memori dan penyimpanannya
2.1.3 Interaksi Manusia dan Komputer (IMK)
M enurut Ben Shneiderman (2010, p5), Ada delapan hal yang perlu diperhatikan
dalam membuat desain antarmuka atau yang sering kita kenal sebagai user interface.
M enurut Shneiderman (2010, p32), terdapat lima faktor manusia terukur yang
dapat dijadikan sebagai pusat evaluasi, yaitu:
1. Waktu belajar, berapa lama waktu yang diperlukan user untuk mempelajari cara
yang relevan untuk melakukan suatu tugas?
2. Kecepatan kinerja, berapa lama waktu yang diperlukan untuk mengerjakan suatu
tugas?
3. Tingkat kesalahan user, berapa banyak kesalahan dan kesalahan apakah yang
bisa terjadi saat user mengerjakan tugas tersebut?
4. Daya ingat, bagaimana user mengatur pengetahuan setelah beberapa waktu?
Ingatan mungkin dapat dihubungkan dengan waktu belajar dan frekuens i
penggunaan merupakan peran yang penting.
14
5. Kepuasan yang subjektif, seberapa banyak user menyukai penggunaan bermacam
aspek dalam antarmuka? Jawaban dapat dipastikan melalui wawancara atau
melakukan survey, termasuk skala kepuasan dan tempat untuk komentar bebas
dari user.
M enurut Shneiderman (2010, p88-89), terdapat delapan aturan emas dalam
merancang antarmuka:
1. Berusaha untuk konsisten
Tindakan konsisten diperlukan dalam situasi yang serupa. Hal ini biasa
digunakan dalam pembuatan prompt, menu, dan help screens. Begitu juga
dengan pembuatan command user. 2. Memungkinkan pengguna untuk menggunakan shortcut
Seiring meningkatnya frekuensi penggunaan, pengguna juga ingin mengurangi
jumlah interaksi dan meningkatkan laju dari interaksi tersebut. Singkatan, tombol
fungsi, perintah tersembunyi, dan fasilitas makro sangat membantu expert users.
3. M enawarkan umpan balik yang informatif
Untuk setiap tindakan dari operator, harus ada sistem umpan balik. Untuk
tindakan-tindakan sering dan kecil, tanggapan dapat bersifat sederhana,
sedangkan untuk tindakan jarang dan utama, respon harus lebih bersifat detail.
4. Desain dialog untuk menghasilkan penutupan
Urutan-urutan dari tindakan-tindakan yang ada harus diatur menjadi bagian awal,
tengah, dan akhir. Umpan balik informatif pada sekumpulan tindakan-tindakan
yang ada memberikan kepuasan penyelesaian, rasa lega, tanda untuk
menghentikan suatu rencana dan pilihan dari pikiran mereka, dan indikasi bahw a
15
caranya jelas yaitu untuk mempersiapkan sekelompok tindakan-tindakan yang
ada berikutnya.
5. Penawaran penanganan error yang sederhana
Sebisa mungkin, buat desain dari s istem yang ada agar pengguna tidak berbuat
kesalahan yang serius. Namun jika kesalahan dibuat, sistem harus dapat
mendeteksi kesalahan yang sederhana dan mekanisme yang mudah dipahami
untuk penanganan kesalahan.
6. M engizinkan pembalikan tindakan
Fitur ini bertujuan untuk mengurangi kecemasa, karena pengguna tahu bahw a
kesalahan dapat dibatalkan. Sehingga mendorong pengguna dalam menjelajah
pilihan-pilihan tindakan yang asing. Bentuk dari pembalikan tindakan dapat
berupa satu tindakan, entri data, atau sekelompok lengkap dari tindakan-tindakan
yang ada.
7. Dukungan internal lokus control
Operator berpengalaman berkeinginan kuat mengenai rasa mereka bertanggun g
jawab atas sistem dan sistem pun merespon tindakan mereka.Buat desain dari
sistem untuk membuat pengguna berperan sebagai pengambil inisiatif daripada
para responden yang ada.
8. Kurangin beban memori jangka pendek
Keterbatasan manusia dalam mengolah informasi dalam jangka waktu pendek
memerlukan sesuatu yang dapat ditampilkan namun disimpan dalam bentuk
sederhana.Halaman-halaman ganda diperketat, frekuensi dari window-motion
dikurangi, waktu pelatihan yang memadai dialokasikan untuk kode, mnemonik,
dan urutan tindakan.
16
2.1.4 UML (Unified Modeling Language)
M enurut Bentley dan Whitten (2007, p371), UM L adalah satu set dari ketentuan
modeling yang digunakan untuk menspesifikasi atau mendeskripsikan sebuah sistem
software dalam suatu kondisi dari objek. UM L dibagi menjadi beberapa komponen:
1. Class Diagram
M enurut Bentley dan Whitten (2007, p400), class diagram menggambarkan
struktur sistem suatu object. Diagram ini menampilkan class-class objek yang
sistemnya tersusun seperti hubungan antara class-class objek.
Gambar 2.2 Contoh Class Diagram
2. Use Case Diagram
M enurut
Bentley
dan
Whitten
(2007,
p246-250), use case diagram
menggambarkan interaksi antara sistem dan sistem eksternal dan user. Dengan
kata lain, secara grafikal mendeskripsikan siapa yang akan menggunakan sistem
dan dengan cara seperti apa yang diharapkan user untuk berinteraksi dengan
sistem.
17
Gambar 2.3 Contoh Use Case Diagram
Use case diagram memiliki komponen sebagai berikut:
a. Pelaku
Pada use case diagram, pelaku adalah segala sesuatu yang perlu berinteraksi
dengan sistem untuk pertukaran informasi
b. Relationship (hubungan)
Pada use case diagram, hubungan digambarkan dalam sebuah garis di antara
dua simbol.
3. Sequence Diagram
M enurut Bentley dan Whitten (2007, p394), secara grafikal, sequence diagram
menggambarkan bagaimana objek berinteraksi satu sama lain melalui pesan
dalam eksekusi use case atau operasi. Diagram ini menggambarkan langkahlangkah pesan dikirim dan diterima antara obyek.
18
Gambar 2.4 Contoh Sequence Diagram
4. Activity Diagram
M enurut Bentley dan Whitten (2007, p390), activity diagram menggambarkan
alur yang berurutan dari aktifitas use case atau proses bisnis. Diagram ini juga
dapat digunakan untuk memodelkan logika dengan suatu sistem.
Gambar 2.5 Contoh Activ ity Diagram
19
Activity diagram memiliki komponen sebagai berikut:
a. Titik solid
Pada activity diagram, titik solid menggambarkan awal sebuah proses.
b. Segi empat dengan sudut tumpul
Pada activity diagram, segi empat dengan sudut tumpul menggambarkan
tugas yang perlu dilakukan.
c. Panah
Pada activity diagram, panah menggambarkan sasaran yang mengawali
kegiatan.
d. Diamond
Pada activity diagram, diamond menggambarkan sebuah sebuah kegiatan
keputusan.
e. Titik solid di dalam lingkaran
Pada activity diagram, titik solid di dalam lingkaran menggambarkan akhir
sebuah proses.
2.1.5 File Based
M enurut Connoly dan Begg (2010, p57-58), sistem file based merupakan
kumpulan dari program aplikasi yang menampilkan layanan untuk end user seperti
penghasilan laporan. Setiap program mendefinisikan dan mengatur datanya sendiri.
Sistem file based merupakan upaya awal untuk panduan pengisian sistem yang
komputerisasi yang sudah dikenal. Sistem pengisian manual bekerja dengan baik selama
data yang diletakan kecil. Sistem file based dibangun dalam merespon kebutuhan
industri untuk mengakses data dengan lebih efisien. Selain itu, dibandingkan dengan
20
menciptakan penyimpanan yang tersentralisasi untuk data operasional perusahaan, lebih
baik memilih pendekatan yang bersifat desentralisasi.
M enurut Indrajani (2009, p8-9) , kelebihan dari file based system adalah:
1. Biaya yang lebih murah
Implementasi dari file based tidak memerlukan software pendukung yang
banyak dan juga tidak memerlukan biaya tambahan hardware dan konversi.
2. Ukuran lebih kecil
Hal ini dikarenakan file based tidak memerlukan banyak software pendukung.
3. Sederhana
Tidak adanya pengaturan fungsi-fungsi, sehingga file based lebih sederhana.
4. Dampak yang lebih rendah terhadap kegagalan
Jika terjadi kerusakan pada suatu file, maka file yang berhubungan tidak
mengalami kerusakan.
2.1.6 Object Oriented Programming
M enurut Anban Pillay (2007, p11), object oriented programming (OOP)
merepresentasikan suatu usaha untuk membuat program lebih dekat dengan model
seseorang berpikir bagaimana berususan dengan dunia. Object oriented programming
adalah suatu set dari peralatan dan metode yang memperbolehkan software engineers
untuk membuat software yang reliable, user friendly, maintainable, well documented,
reusable.
21
Bahasa dari object oriented programming menyediakan kebutuhan untuk konsepkonsep object oriented yaitu object dan class, inheritance, dan polymorphism.
1. Object dan Class
M enurut Anban Pillay (2007, p16), object adalah suatu bundel perangkat
lunak yang terdiri dari variables dan methods. Variables adalah suatu data yang
dinamai oleh sebuah identifier. Methods adalah suatu fungsi yang berkaitan
dengan sebuah objek. Sebuah objek juga dikenal dengan sebutan instance.
Sebuah instance dapat mengacu pada sebuah obyek tertentu.
Class adalah sebuah blueprint yang mendefinisikan variables dan methods
yang umum untuk semua objek dari jenis tertentu. Class mendeklarasikan
instance dari variables yang dibutuhkan untuk menampung state dari seluruh
objek. Class juga akan mendeklarasikan dan menyediakan implementasi dari
instance methods yang dibutuhkan untuk beroperasi pada state dari objek.
M embungkus suatu variables obyek dengan perlindungan methodnya
disebut dengan encapsulation.
Gambar 2.6 Object dan Encapsulation
Encapsulation yang terkait dengan variables dan methods menjadi sebuah
bundel perangkat lunak yang rapi adalah hal yang mudah namun merupakan ide
yang bagus dan menyediakan dua keuntungan kepada pengembang software:
22
a. M odularity
Source dari code untuk sebuah objek dapat ditulis dan dijaga secara
terpisah dari source code untuk objek yang lain. Obyek juga dapat dengan
mudah beredar melalui sistem.
b. Information-hiding
Sebuah obyek memiliki sebuah public interface yang objek lain dapat
gunakan untuk berkomunikasi dengan objek tersebut. Obyek dapat
menjaga informasi yang private dan method yang dapat diganti kapan pun
tanpa mempengaruhi objek yang yang bergantung kepadanya.
2. Inheritance
M enurut Anban Pillay (2007, p80), inheritance mengacu pada fakta bahwa
sebuah class dapat mewarisi sebagian atau seluruh strukturnya dari class yang
lain. Class yang diwarisi disebut sebagai subclass dan class yang mewaris i
disebut sebagai superclass. Sebuah subclass dapat menambahkan ke dalam
struktur dan aksi yang diwariskannya. Subclass juga dapat mengganti atau
memodifikasi perilaku yang diwariskan.
Gambar 2.7 Inheritance
23
3. Polymorphism
M enurut Deitel (2002, p472-473), dengan polymorphism, memungkinkan
untuk merancang dan mengimplementasikan sistem yang mudah ditambahkan
(easily extensible). Class yang tidak terdapat saat pembuatan program dapat
ditambahkan dengan sedikit atau tanpa modifikasi pada bagian program yang
diproses secara general. Terdapat dua tipe dari polymorphism, yaitu:
a. Overloading
Overloading mengacu pada kemampuan untuk mendefinisikan beberapa
method dengan nama yang sama dalam sebuah class selama method
tersebut memiliki parameter yang berbeda. (Deitel, 2002, p288)
b. Overriding
Overriding terjadi ketika sebuah subclass mempunyai method yang
memiliki signature yang sama dengan superclassnya. Method pada
subclass akan meng-override method pada superclass. (Deitel, 2002,
p455-456)
2.1.7 Bahasa Pemrograman Java
M enurut James Gosling, Bill Joy, Guy Steele, dan Gilad Bracha (2005, p80),
bahasa pemrograman java adalah general-purpose, concurrent, class-based, object
oriented language. Bahasa pemrograman java adalah high-level language secara
keseluruhan. Hal tersebut termasuk manajemen penyimpanan otomatis, yang biasanya
menggunakan garbage collector untuk menghindari permasalahan keamanan dari
dealokasi eksplisit. Bahasa pemrograman java umumnya di-compile menjadi set intruksi
bytecode dan format binary.
24
M enurut Y. Daniel Liang (2006), karakteristik java dibagi sebagai berikut:
1. Simple
Tidak ada bahasa yang mudah, namun java sedikit lebih mudah dari bahas a
pemrograman C++ yang populer yang sudah menjadi bahasa pengembangan
software yang dominan sebelum java. Java sebagian dimodelkan berdasarkan
bahasa C++, namun secara dipermudah dan ditingkatkan. Java mengganti
multiple inheritance pada C++ dengan interface dan menghilangkan pointer.
Java juga menggunakan memori alokasi otomatis dan garbage collector,
sedangkan C++ meminta programmer untuk mengalokasi dan mendealokas i
memori.
2. Object-oriented
Java sejak awal sudah dirancang sebagai bahasa pemrograman berbasis objek.
3. Distributed
Distributed computing melibatkan beberapa komputer yang bekerja bersama
dalam suatu jaringan. Java dirancang untuk membuat distributed computing
menjadi lebih mudah. Dikarenakan kemampuan jaringan terintegrasi pada java,
menulis program jaringan seperti mengirim dan menerima data ke dan dari file.
4. Interpreted
Program pada java di-compile menjadi java virtual machine code yang disebut
bytecode. Bytecode tidak terikat pada mesin tertentu dan dapat berjalan pada
semua mesin yang memiliki java interpreter, dimana merupakan bagian dari java
virtual machine (JVM ).
25
5. Robust
Robust berarti dapat diandalkan. Java menekankan pada pengecekan awal untuk
kesalahan yang mungkin terjadi, dikarenakan java compiler dapat mendeteksi
kesalahan-kesalahan yang muncul pertama kali di waktu pengeksekusian. Java
juga memiliki fitur runtime exception handling untuk membantu programmer.
6. Secure
Sebagai internet programming language, java digunakan di dalam sebuah
jaringan dan lingkungan terdistribusi. Saat menjalankan sebuah program java,
program
tersebut
tidak
akan
merusak
sistem
dikarenakan
java
mengimplementasikan beberapa mekanisme keamananan untuk melindungi
sistem dari ancaman.
7. Architecture-neutral
Dikarenakan java yang interpreted, memungkinkan java untuk menjadi
architecture-neutral. Dengan adanya java virtual machine (JVM ), program yang
dibuat dapat dijalankan pada platform mana pun.
8. Portable
Dikarenakan java yang architecture-neutral, program java juga portable.
Program tersebut dapat dijalankan pada platform mana pun tanpa perlu dicompile ulang. Lingkungan java portable untuk hardware dan sistem operasi
yang baru. Java compiler sendiri juga ditulis dengan java.
9. High-performance
Eksekusi dari bytecode tidak secepat pada compiled language, seperti C++.
Dikarenakan java yang interpreted, bytecode tidak secara langsung dieksekus i
26
oleh sistem, tapi dijalankan melalui interpreter. Namun, kecepatannya sudah
lebih dari cukup untuk aplikasi yang paling interaktif.
10. Multithreaded
Multithreaded adalah suatu kemampuan dari suatu program untuk menjalankan
beberapa tugas secara bersama-sama. Multithreaded programming telah
diintegrasikan pada java, sedangkan pada bahasa lain dimana harus memanggil
prosedur yang spesifik pada sistem operasi untuk mengaktifkan multithreading.
11. Dynamic
Java dirancang untuk beradaptasi pada lingkungan yang berkembang. Class yang
baru dapat dimasukkan tanpa harus di-compile ulang. Dimana tidak diperlukan
developer untuk membuat dan pengguna untuk meng-install versi baru dari
software.
2.1.8 Artificial Intelligence
M enurut Guy W. Lecky-Thompson (2008, p3-5), artificial intelligence
merupakan suatu sistem penalaran. Salah satu aspek dari AI adalah, AI membuat
keputusan berdasarkan informasi dari model yang telah ada. Suatu modul AI akan
menerima input, menganalisis input tersebut, dan menghasilkan output. Proses
menganalisis input tersebut merupakan aspek “cerdas” dari sistem tersebut. Penggunaan
AI dalam sebuah game dapat dilakukan melalui prescribed pattern ataupun melalui ingame knowledge-driven decision architectures. Dalam prescribed pattern, AI akan
mengambil keputusan berdasarkan pola yang telah ditentukan sebelumnya tanpa
dipengaruhi keadaan lingkungannya. Sedangkan pada in-game knowledge-driven
decision architectures, AI akan mengikutsertakan keadaan lingkungannya sebagai bahan
27
pertimbangan dalam pengambilan keputusan. Pendekatan tersebut mengakibatkan
keputusan yang diambil terlihat lebih alami.
M enurut David M . Bourg dan Glenn Seemann (2004, p2), artificial intelligence
merupakan suatu perilaku cerdas yang dilakukan oleh mesin yang telah dibuat
sebelumnya. AI dibagi menjadi dua kategori, strong AI dan weak AI. Strong AI dianggap
harus memiliki keterkaitan dengan emosi dan kemampuan untuk belajar dan beradaptasi.
Weak AI melibatkan tujuan penggunaan dan teknologi yang lebih luas untuk
memberikan kecerdasan yang lebih khusus kepada mesin. Game AI termasuk dalam
kategori weak AI.
M enurut David M . Bourg dan Glenn Seemann (2004, p2), definisi untuk game
AI sangatlah luas dan fleksibel. Semua hal yang memberikan ilusi kecerdasan ke tinggat
yang sesuai sehingga membuat permainan lebih mendalam, menantang, dan
menyenangkan dapat dianggap sebagai game AI.
Dengan demikian dapat disimpulkan bahwa AI memberikan kecerdasan kepada
mesin hingga batas tertentu untuk dapat membuat penalaran yang mendekati perilaku
manusia.
2.2 Teori Khusus
Teori Khusus adalah teori yang berhubungan dengan topik yang dibahas dalam
skripsi ini.
2.2.1 Teori Game
M enurut Jesse Schell (2008, p37), game adalah suatu kegiatan pemecahan masalah
yang dilakukan dengan pendekatan yang bersifat bersifat menyenangkan.
28
M enurut Jesse Schell (2008, p41-43), terdapat empat buah elemen dasar yang
membentuk sebuah game, yaitu Mechanics, Story, Aesthetics, dan Technology. Keempat
elemen tersebut disebut Elemental Tetrad.
Gambar 2.8 Elemental Tetrad
1.
Mechanics merupakan prosedur dan peraturan yang berlaku dalam game.
2.
Story merupakan urutan kejadian yang terjadi dalam game.
3.
Aesthetics
merupakan
bagaimana penampilan
sebuah
game yang dapat
mempengaruhi pengalaman permain.
4.
Technology merupakan media yang menghubungkan mechanics, story, dan
aesthetics.
M enurut Lindsay Grace (2005,p1), dalam mendeskripsikan suatu gameplay, game
dibedakan menjadi beberapa jenis, yaitu:
1. Action
Action game adalah game yang menekankan pada intensitas dari aksi sebagai
atraksi utamanya. Respon reflek adalah kemampuan utama yang diperlukan dalam
memainkan game bertipe action.
29
2. Adventure
Adventure game adalah game yang menyediakan eksplorasi dan pemecahan
misteri sebagai atraksi utamanya. Adventure game umumnya menawarkan cerita
yang mengasyikan. Pemikiran, creatifitas, dan rasa penasaran adalah kemampuan
umum yang diperlukan untuk menjadi pemain adventure game.
3. Puzzle
Puzzle game adalah game yang menyediakan puzzle sebagai atraksi utamanya.
Game bertipe puzzle biasanya diluncurkan dalam anggaran yang rendah melalui
web.
4. Role Playing
Role Playing game (RPG) adalah game yang menyediakan pemain sebuah peluan g
untuk menghayati situasi dari karakter game. Role playing game memiliki karakter
yang tergolong banyak, memiliki durasi yang panjang, dan manajemen karakter
merupakan hal teknis.
5. Simulation
Elemen utama dari game bertipe simulation adalah kemampuan untuk menyamai
situasi pada dunia nyata. Simulation game menyediakan kesenangan melalui
pemeragaan.
6. Strategy
Strategy game adalah game yang menghibur melalui pemikiran dan pemecahan
misteri.
30
2.2.2 Game Design
M enurut Jesse Schell (2008, pXXIV), game design adalah suatu aksi untuk
menentukan seperti apakah sebuah game seharusnya. M enurut Bob Bates (2004, p3),
pembuatan game dimulai dengan membuat sebuah gameplay treatment yang dasar, yaitu
sebuah dokumen berisi sekitar lima sampai enam halaman. Treatment tersebut pada
akhirnya akan berkembang menjadi menjadi sebuah spesifikasi penuh untuk game
tersebut, tetapi menulis treatment awal akan membantu untuk mematangkan pemikiran
akan game yang akan dibuat.
Tujuan utama dari membuat game desain dokumen adalah untuk menarik minat
pembaca dan untuk menginformasikan kepada pembacanya mengenai gambaran
keseluruhan game yang akan dibuat sehingga nantinya gambaran-gambaran ini dapat
dikumpulkan menjadi suatu requirement.
2.2.3 A* Path Finding
M enurut David Brackeen(2003, p661), A* merupakan algoritma pencarian yang
bekerja seperti algoritma breadth-first search (BFS), tetapi dengan dua faktor tambahan
yaitu setiap edge memiliki cost yang berbeda satu sama lain dan cost dari setiap node ke
node tujuan dapat diperkirakan sehingga dapat membantu mengurangi pencarian ke arah
yang salah.
Perkiraan cost antara sebuah node dengan node tujuan dapat berupa perkiraan
jarak, waktu, atau faktor lainnya. Semakin baik perkiraan cost yang dihitung, maka
pencarian yang dilakukan akan semakin cepat. Namun algoritma A* hanya dapat bekerja
dengan baik apabila perhitungan perkiraan cost tidak melebihi cost yang sebenarnya.
31
Algoritma A* dimulai dengan menambahkan node awal ke dalam sebuah open list.
Open list tersebut berfungsi untuk menyimpan node yang berikutnya akan dikunjungi
oleh algoritma tersebut. Berbeda dengan open list pada BFS, open list pada A* diurutkan
berdasarkan jumlah antara cost dari node awal hingga node tersebut dan perkiraan cost
dari node tesebut ke node tujuan, atau dengan kata lain berupa priority queue.Algoritma
dilanjutkan dengan mengunjungi setiap node pada openlist dan akan terus berlangsung
selama masih ada node pada open list atau selama node tujuan belum ditemukan. Node
dikunjungi mulai dari node yang memiliki total cost paling kecil. Setiap kali sebuah
node dikunjungi, node lain yang bersebelahan dengan node tersebut dan belum pernah
dikunjungi akan dimasukkan ke dalam open list.
2.2.4 Finite S tate Machine
M enurut David M . Bourg dan Glenn Seemann (2004, p165), finite state machine
(FSM ) merupakan sebuah mesin abstrak yang dapat ada pada salah satu dari beberapa
state yang berbeda dan telah ditetapkan sebelumnya. Sebuah FSM juga dapat
mendefinisikan sekumpulan kondisi yang menentukan kapan dan bagaimana sebuah
state harus berubah. FSM cukup sering digunakan dalam game karena FSM relatif
mudah dimengerti dan diimplementasikan.
M enurut David Brackeen (2003, p695-696), pada implementasinya dalam game,
FSM dapat digunakan untuk menggambarkan keadaan maupun behavior dari suatu
obyek dalam game tersebut. Suatu FSM dapat saja memiliki berbagai macam state
seperti misalnya berjalan, menghindar, menyerang, bersembunyi, dan lain-lain. FSM
juga mendefinisikan bagaimana dan kapan state dari sebuah obyek dapat berubah. FSM
juga dapat berupa hierarki dari state yang berarti sebuah state dapat terdiri dari beberapa
32
state lainnya, seperti contohnya state bertarung dapat terdiri dari state menyerang,
menghindar, dan melarikan diri.
Gambar 2.9 Contoh Finite State Machine
2.2.5 Konsep 3D
M enurut David Brackeen (2003, 345-360), berbeda dengan grafik 2D yang hanya
memiliki sumbu x dan y, grafik 3D memiliki sumbu z yang biasanya digunakan untuk
menggambarkan kedalaman. Ketiga sumbu pada grafik 3D tersebut tidak akan dapat
digambarkan secara langsung pada layar monitor yang hanya memiliki kordinat x dan y.
Oleh karena itu grafik 3D harus diterjemahkan atau diproyeksikan ke bidang dua
dimensi untuk dapat ditampilkan di layar.
Pada umumnya terdapat dua macam sistem koordinat 3D, left-handed dan righthanded coordinate system. Jari telunjuk menunjuk pada sumbu y, jari tengah menunjuk
pada sumbu z, dan jari jempol pada sumbu x. Sistem koordinat yang paling umum
digunakan adalah right-handed coordinate system dimana sumbu x menunjuk ke kanan,
sumbu y menunjuk ke atas, dan sumbu z menunjuk ke belakang.
33
Gambar 2.10 Right-handed coordinate system
Sistem koordinat lainnya adalah left-handed coordinate system dimana sumbu x
menunjuk ke kanan, sumbu y menunjuk ke atas, dan sumbu z menunjuk ke depan.
Namun sistem koordinat ini jarang digunakan.
Gambar 2.11 Left-handed coordinate system
Dalam grafik 3D, digunakan kamera untuk melihat objek-objek yang berada di
dunia 3D. Pengelihatan kamera tersebut biasanya dibatasi oleh piramida dengan ujung
terpotong yang disebut dengan viewfrustum. View frustum memungkinkan hanya objekobyek yang berada di dalamnya saja yang perlu digambar oleh aplikasi. Obyek-obyek
tersebut akan diproyeksikan pada view window yang biasanya berukuran sama dengan
layar monitor. View window tersebut yang kemudian akan ditampilkan pada layar
monitor.
34
Gambar 2.12 Camera View Frustrum
Operasi pada dunia 3D melibatkan transformasi 3D yaitu translasi, rotasi dan
skala. Translasi dapat dilakukan dengan menambahkan vektor translasi ke setiap titik
pada objek yang akan dipindahkan. Skala dapat dilakukan dengan memindahkan objek
hingga pusat skala berada pada koordinat (0, 0, 0), lalu mengalikan faktor skala ke setiap
titik pada objek tersebut, dan mengembalikan objek tersebut ke posisi awal. Untuk rotasi
pada ruang 3D, biasanya melibatkan operasi rotasi terhadap sumbu x, y, dan z secara
terpisah.
2.2.6 Model 3D
Dalam website Wikipedia, model 3D merupakan representasi dari objek 3D
dengan menggunakan kumpulan titik-titik yang berada pada ruang 3D yang terhubung
oleh berbagai macam bentuk geometri seperti contohnya segitiga, garis, kurva, dan lainlain (http://en.wikipedia.org/wiki/3D_modeling, 2010). Karena berupa kumpulan data,
model 3D dapat dibuat dengan menggunakan tangan(dibantu dengan 3D modelling
tools), algoritma, atau discan. M odel 3D banyak digunakan dalam berbagai bidang
35
seperti bidang medis, industri film dan game, sains, geologi, arsitektur, dan lain-lain.
Terdapat lima cara populer untuk merepresentasikan sebuah model:
1. Polygonal modelling: titik-titik dalam ruang 3D dihubungkan dengan garis
sehingga membentuk polygonal mesh. Cara ini banyak digunakan karena cukup
fleksibel dan dapat dirender dengan cepat. Namun polygon tidak dapat membuat
permukaan yang melengkung.
2. NURBS modelling: permukaan NURBS dihasilkan dari garis kurva yang
dipengaruhi oleh control points. Tidak seperti polygon, NURBS dapat membentuk
permukaan melengkung sehingga cocok untuk membuat model organik.
3. Splines modelling: seperti NURBS, spline modelling juga dipengaruhi oleh garis
lengkung.
4. Primitives modelling: menggunakan objek primitif seperti contohnya bola, kubus,
silinder, dan lain-lain untuk membentuk model yang kompleks.
5. Sculpt modelling: menggunakan mesh dengan resolusi tinggi dan bantuan
displacement map untuk menyimpan posisi setiap titik pada mesh tersebut. Jenis
lain dari sculpt modelling adalah volumetric yang berbasis pada penggunaan voxel.
Untuk penggunaan dalam game, biasanya mesh dengan resolusi tinggi tersebut
diubah menjadi normal map.
2.2.7 jMonkeyEngine 2.0
M enurut website jM onkeyEngine, jM onkeyEngine (jM E) dirancang untuk menjadi
real-time graphics engine berkecepatan tinggi. jM E dibuat untuk mengatasi kurangnya
graphics
engine
dengan
fitur
lengkap
yang
(http://jmonkeyengine.org/wiki/doku.php/about_jme, 2010).
ditulis
dalam
Java.
36
jM E menggunakan scene graph untuk mengatur data yang ada pada dunia 3D.
Scene graph merupakan sebuah struktur data berbentuk tree yang menyimpan informasi
dan relasi antara data dalam dunia 3D. Scene graph menyimpan data dalam jumlah yang
sangat besar dan kemudian dibagi menjadi kelompok-kelompok kecil yang lebih mudah
diatur. Biasanya kelompok tersebut dikelompokkan berdasarkan suatu hubungan, yaitu
spatial locality. Pengelompokkan tersebut memungkinan dilakukannya frustum culling
secara cepat tanpa perlu memeriksa setiap objek yang ada. Frustum culling akan
dilakukan dari root node pada scene graph dan dilanjutkan pada branch node hingga
mencapai leaf node. Jika sebuah node ternyata tidak perlu dirender, maka semua node
yang berada di dalamnya tidak perlu diperiksa. Dengan demikian, waktu proses menjadi
lebih singkat.
Download