LUNAK DIVISI PUSAT TEKNOLOGI
PT. DIRGANTARA INDONESIA (PERSERO)
BANDUNG
BIDANG KAJIAN:
ANALISIS DAN PERANCANGAN ARTIFICIAL INTELLIGENCE
PADA SISTEM SIMULATOR TANK AMX-13
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
LUNAK DIVISI PUSAT TEKNOLOGI
PT. DIRGANTARA INDONESIA (PERSERO)
BANDUNG
BIDANG KAJIAN:
ANALISIS DAN PERANCANGAN ARTIFICIAL INTELLIGENCE
PADA SISTEM SIMULATOR TANK AMX-13
G64090065 Nur Muhammad Sidik
G64090114 Muhammad Ade Nurusani
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
PT. Dirgantara Indonesia (Persero) Bidang kajian /Nama/NRP :
AI pada Sistem Simulator Tank AMX-13
Nur Muhammad Sidik/G64090065 Muhammad Ade Nurusani/G64090114
Disetujui Komisi Pembimbing
Pembimbing Pembimbing Lapangan
Dr.
Eng. Wisnu Ananta Kusuma,ST, MT Wali Muhammad,ST
NIP. 19711110 200501 1005 NIK. 940130
Mengetahui,
Ketua Departemen Ilmu Komputer
KATA PENGANTAR
Puji syukur, penulis panjatkan kehadirat Allah SWT karena dengan rahmat dan karuniaNya tulisan ini berhasil diselesaikan. Semoga tulisan ini dapat memberikan suatu dampak positif bagi kita semua. Tulisan ini merupakan hasil Praktik Kerja Lapang(PKL) di PT Dirgantara Indonesia dengan bidang kajian
Artificial Intelligence pada simulator tank AMX-13. Kegiatan PKL ini dilaksanakan sebanyak 35 hari kerja dari tanggal 27 Juni 2012 hingga 14 Agustus 2012.
Terima kasih penulis ucapkan kepada pihak yang telah membantu menyelesaikan tulisan ini, kepada Bapak Dr. Wisnu Ananta Kusuma, ST, MT selaku pembimbing kampus dan Bapak Wali Muhammad, ST selaku pembimbing instansi. Terima kasih juga untuk kedua orang tua atas doa dan dukungannya selama penulis menjalankan PKL, rekan-rekan Ilmu Komputer angkatan 46, serta seluruh pihak yang turut membantu kelancaran pelaksanaan kegiatan PKL.
Penulis menyadari bahwa dalam penyusunan laporan ini masih banyak kekurangan dan masih jauh dari sempurna, maka dengan segala kerendahan hati penulis mengharapkan saran dan kritik yang bersifat membangun dari semua pihak demi perbaikan dan penyempurnaan laporan ini, serta pembuatan laporan-laporan lain dimasa mendatang.
Semoga setiap kata dan tulisan yang ada dalam tulisan ini dapat memberi kontribusi untuk membawa keilmuan kita ke arah yang lebih baik, amin.
Bogor, 26 Agustus 2012
DAFTAR ISI
4. Visi dan Misi PT Dirgantara Indonesia...3
5. Struktur Organisasi...3
6. Waktu dan Jadwal Kerja Praktek Kerja Lapangan...5
7. Deskripsi Singkat Kajian...5
BAB II LANDASAN TEORI...6
1. Simulasi...6
2. Simulator Terintegrasi Tank AMX-13...9
3. Spesifikasi Teknis Driving Simulator RANPUR Tank AMX-13...10
4. Kecerdasan Buatan(Artificial Intelligence)...13
5. Kecerdasan Buatan pada Game...15
6. Metodologi Pengembangan...18
7. Pengembangan Artificial Intelligence pada Sistem Simulator Tank AMX-13...19
BAB III PERENCANAAN DAN ANALISIS ARTIFICIAL INTELLIGENCE PADA SISTEM SIMULATOR TANK AMX-13...21
1. Lingkup Masalah...21
BAB IV PERANCANGAN DAN IMPLEMENTASI ARTIFICIAL INTELLIGENCE PADA SISTEM SIMULATOR...35
TANK AMX-13...35
1. Perancangan AI pada Simulator Tank AMX-13...35
2 Implementasi AI pada Simulator Tank AMX-13...39
BAB V PENUTUP...42
DAFTAR GAMBAR
Halaman
Gambar 1 Struktur Organisasi PT Dirgantara Indonesia...4
Gambar 2 Struktur Organisasi Divisi Pusat Teknologi PT Dirgantara Indonesia. 5 Gambar 3 Simulasi Dinamik Boeing 747...7
Gambar 4 Simulasi Pesawat Terbang Tempur F16...7
Gambar 5 Simulasi Kecepatan Pesawat Terbang...8
Gambar 6 Simulasi Antrian Bank...8
Gambar 7.AI pada Components Package Delta3D...18
Gambar 8 The Waterfall Model...19
Gambar 9 System Development Life Cycle (SDLC)...20
Gambar 10 Use Case trainer membuat skenario...22
Gambar 11 Use Case Skenario Trainee...25
Gambar 12 Use Case 3D World Console Trainer...25
Gambar 13 Use Case 3D World Console Trainee...26
Gambar 14 Class Diagram User...28
Gambar 15 Class Diagram AI...29
Gambar 16 Sequence diagram Actor Creation...30
Gambar 17 Sequence diagram Actor Deletion...31
Gambar 18 Sequence Diagram Trainer Console Usage...31
Gambar 19. Activity Diagram Login...32
Gambar 20. Activity Diagram Trainer...33
Gambar 21. Activity Diagram Trainee...34
Gambar 22. AI Related Classes...35
Gambar 23. Subsection of the Scenario File TestTownLt Map...37
Gambar 24. Subsection of the Senario File Marine.xml...38
Gambar 25. Method FindPathAndGoToWaypoint...40
Gambar 26. Method GoToWayPoint...40
Gambar 27. Fungsi Main...41
Gambar 28. Animation Soldier pada Delta3D...41
Gambar 29. Diagram dari contoh program pengambilan keputusan...45
Gambar 30. program pengambilan keputusan menggunakan FIS...47
DAFTAR TABEL
Halaman
Tabel 1: Rule FISKeputusan...46
Tabel 2: Rule FISLingkungan...46
Tabel 3: Rule FISKondisi_Tank...46
Tabel 4: Rule FISKondisi_Lapangan...47
DAFTAR LAMPIRAN
Halaman
BAB I PENDAHULUAN
1. Latar Belakang
Divisi Pusat Teknologi, Departemen Rekayasa Industri dan Perangkat Lunak PT. Dirgantara Indonesia sejak bulan Mei 2012 mulai mengerjakan sebuah projek Simulator Terintegrasi Tank AMX-13. Kami selaku mahasiswa PKL diberi tugas oleh pihak instansi untuk mengkaji dan ikut menganalisis bagaimana cara mengimplementasikan kecerdasan buatan pada simulator tank.
2. Tujuan
a. Pengenalan konsep Artificial Intelligence yang mampu mengendalikan
gerak teman maupun lawan pada simulator terintegrasi tank AMX-13.
b. Pemilihan metode Artificial Intelligence yang paling tepat untuk
diterapkan pada tank AMX-13.
c. Menerapkan metode terbaik dari Artificial Intelligence lalu
mengimplementasikan pada game engine Delta3D.
3. Ruang Lingkup
Ruang lingkup yang digunakan pada pengembangan perangkat lunak ini dalam pengerjaan praktek kerja lapangan adalah:
Peserta praktek kerja lapangan hanya mengerjakan sistem analisis dan perancangan sistem dikarenakan waktu yang sedikit sedangkan pengerjaan projek memakan waktu berbulan-bulan.
Peserta praktek kerja lapangan memberikan usul tentang metode yang akan
digunakan dalam pengembangan Artificial Intelligence pada simulator tank
produknya, tidak hanya bidang pesawat terbang, tetapi juga dalam bidang lain, seperti teknologi informasi, telekomunikasi, otomotif, maritim, militer, otomasi
dan kontrol, minyak dan gas, turbin industri, teknologi simulasi, dan engineering
services.
Divisi Pusat Teknologi merupakan salah satu unit dari Direktorat Teknologi dan Pengembangan yang berperan dalam proses pemilihan dan penentuan langkah yang diperlukan untuk mengembangkan teknologi yang akan diintegrasikan ke dalam produk yang terkait dengan teknologi kedirgantaraan serta menjaga kesiapan seluruh peralatan pengembangan teknologi sehingga dalam mengintegrasikan seluruh proses pengembangan teknologi dan peralatan yang dipilih akan dicapai rangkaian proses yang paling efisien, efektif dan kompetitif.
4. Visi dan Misi PT Dirgantara Indonesia
Visi :
Menjadi perusahaan kelas dunia dalam industri dirgantara yang berbasis pada penguasaan teknologi tinggi dan mampu bersaing dalam pasar global, dengan mengandalkan keuntungan biaya.
Misi :
Menjalankan usaha dengan selalu berorientasi pada aspek dan bisnis komersil dan dapat menghasilkan produk dan jasa yang memiliki keunggulan biaya.
Sebagai pusat keunggulan di bidang industri dirgantara, terutama dalam
rakayasa, rancang bangun, manufaktur, produksi dan pemeliharaan untuk kepentingan komersial dan milliter dan juga untuk aplikasi di luar industri dirgantara. membawahi enam direktorat, yaitu Direktorat Keuangan, Direktorat Umum dan
Sumber Daya Manusia, Direktorat Aerostructure, Direktorat Aircraft Integration,
Direktorat Aircraft Services serta Direktorat Teknologi dan pengembangan.
Divisi Pusat Teknologi merupakan salah satu bagian dari Direktorat Teknologi dan Pengembangan dimana dalam divisi ini terbagi menjadi lima departemen. Penulis sendiri berada di Departemen Rekayasa Industri dan Perangkat Lunak dalam Praktik Kerja Lapangan ini. Departemen Rekayasa
Industri dan Perangkat Lunak sendiri dibagi menjadi empat bidang, yaitu System
Definition and Integration, Sistem Perangkat Lunak, Sistem Perangkat Keras, serta Komunikasi dan Jaringan. Struktur organisasi Divisi Pusat Teknologi lebih lengkapnya dapat dilihat pada Gambar 2.
Environment System
Direktur Utama PT D.I
Asisten Direktur Utama Bidang Bisnis Pemerintah Asisten Direktur Utama Bidang
Bisnis Pemerintah
Asisten Direktur Utama Bidang Sistem Manajemen Mutu
Perusahaan Asisten Direktur Utama Bidang
Sistem Manajemen Mutu Perusahaan
Sekretariat Perusahaan
Sekretariat Perusahaan Satuan Pengawasan InternSatuan Pengawasan Intern Divisi Perencanaan & Pengembangan Perusahaan
Divisi Perencanaan &
Pengembangan Perusahaan Divisi PengamananDivisi Pengamanan
Direktorat Keuangan
Direktorat Keuangan Direktorat Umum & Sumber Daya Manusia
Divisi Akuntansi Divisi Jasa Material & Fasilitas Divisi Jasa Material &
Fasilitas
Aerostructure Direktorat IntegrationAircraft
Direktorat Aircraft
Integration Direktorat ServicesAircraft
Direktorat Aircraft
Services Direktorat Teknologi Direktorat Teknologi & Pengembangan& Pengembangan
Divisi Integrasi Usaha
Integration Divisi Perawatan & Divisi Perawatan & ModifikasiModifikasi
Asisten Direktur Bidang Sumber Daya Aerocraft
Structure Divisi Manajemen Sumber Daya Aerocraft
Structure
Divisi Jasa Teknologi & Rekayasa Divisi Jasa Teknologi &
Rekayasa
6. Waktu dan Jadwal Kerja Praktek Kerja Lapangan Senin – Kamis Pukul 07.30 -16.30 WIB.
Jumat Pukul 07.30 – 17.00 WIB.
7. Deskripsi Singkat Kajian
Artificial Intelligence merupakan disiplin ilmu untuk membuat aksi dan
reaksi otonom agen atau NPC (Non-Player Character), bagaimana tindakan dan
keputusan yang diambil NPC dalam strategi menyerang musuh atau bertahan dari
serangan musuh dengan FSM (Finite State Machine) untuk mendesain perilaku.
Selanjutnya digunakan logika fuzzy untuk penentuan strategi maupun respon perilaku NPC terhadap kondisi yang dihadapi. Dari keputusan yang didapat lalu
digunakan pathfinding untuk menentukan jalan mana yang diambil NPC untuk
mendapatkan jarak optimum baik ketika menyerang maupun bertahan. Pada PKL ini Artificial Intelligence dikerjakan oleh Nur Muhammad Sidik dan Muhammad Ade Nurusani.
Analisa Struktur Analisa SistemDepartemen Departemen Avionics & Flight Beck
System Avionics & Flight Beck
System
BAB II LANDASAN TEORI
1. Simulasi
Simulasi adalah proses implementasi model menjadi program komputer (software) atau rangkaian elektronik dan mengeksekusi software tersebut sehingga perilakunya menirukan atau menyerupai sistem nyata (realitas) tertentu untuk tujuan mempelajari perilaku (behaviour) sistem, pelatihan (training), atau perMainan (gamming) yang melibatkan sistem nyata (realitas). Jadi, simulasi adalah proses merancang model dari suatu sistem yang sebenarnya, mengadakan percobaan-percobaan terhadap model tersebut dan mengevaluasi hasil percobaan tersebut.
Simulasi merupakan suatu metode eksperimental dan terpakai untuk menjelaskan perilaku sistem, membangun teori atau hipotesis yang mempertanggungjawabkan perilaku dari sistem yang diamati, memakai teori-teori untuk meramalkan perilaku sistem yang akan datang, yaitu pengaruh yang akan dihasilkan oleh perubahan-perubahan variabel dan parameter sistem atau perubahan operasinya.
Berdasarkan perangkat keras yang digunakan, maka ada tiga jenis simulasi, yaitu : simulasi analog, simulasi digital, dan simulasi hybrid. Simulasi analog adalah simulasi yang implementasinya menggunakan rangkaian elektronika
analog, seperti opamp(operational amplifier) untuk integrasi, pembanding,
pembalik, penjumlah, dan lain-lain. Simulasi digital adalah simulasi yang
implementasinya menggunakan komputer digital. Simulasi hybrid adalah simulasi
yang implementasinya menggunakan gabungan rangkaian elektronika analog dan komputer digital.
Berdasarkan waktu simulasi, maka ada simulasi waktu nyata(real time) dan
simulasi offline. Simulasi waktu nyata adalah simulasi dimana waktu simulasi
adalah sama dengan satu detik waktu nyata. Contoh simulasi waktu nyata adalah
simulasi terbang(flight simulation), simulasi mobil, dan simulasi tank, dan
lain-lain. Simulasi offline adalah simulasi dimana definisi waktu simulasi adalah tidak
sama(diskalakan) dengan waktu nyata, bisa dipercepat bisa diperlambat. Data
masukan dan hasil keluaran simulasi offline tidak perlu interaktif. Contoh simulasi
Gambar 3 Simulasi Dinamik Boeing 747
Gambar 5 Simulasi Kecepatan Pesawat Terbang
2. Simulator Terintegrasi Tank AMX-13
Simulator Terintegrasi Tank AMX-13 (STTA13) merupakan wahana untuk
melatih awak/kru ranpur dalam mengoperasikan ranpur Tank AMX-13 baiksecara
modular maupun terintegrasi.
Awak/kru ranpur adalah Danran (Commander), Petembak (Gunner) dan
Pengemudi (Driver). Pelatihan secara modular adalah pelatihan secara
terpisah/masing-masing. Awak (Pengemudi, Petembak, Danran) sendiri-sendiri yang dipandu oleh Asisten atau Instruktur dengan skenario yang sesuai. Dalam pelatihan modular hanya satu awak ranpur saja yang mengoperasikan simulator dalam satu sesi latihan (satu waktu), yaitu Pengemudi saja atau Petembak saja. Pelatihan secara terintegrasi adalah pelaksanakan latihan yang melibatkan seluruh awak dengan skenario yang melibatkan koordinasi seluruh awak.
Dalam satu sesi latihan simulator digunakan oleh 2 atau 3 awak ranpur, yaitu pengemudi-petembak, pengemudi-danran, danran-petembak, dan pengemudi-petembak-danran (Pengemudi, Petembak, Danran) secara bersama-sama dengan dipandu oleh Asisten atau Instruktur.
Secara umum kemampuan STTA13 adalah sebagai berikut :
Mempunyai tampilan interior dan pelayanan (Human Machine Interface)
yang menyerupai ranpur Tank AMX-13 yang sebenarnya. Ekivalensi tata letak, ukuran, bentuk, penampakan, fungsi peralatan maupun kemampuan dan keterbatasannya.
Mampu menampilkan visualisasi kondisi medan operasi 3D yang dipilih
yaitu medan operasi : Pusdikkav, Cipatat, Cibenda, Aceh, Kalimantan dan
Irian, dalam pandangan (view) 360 derajat.
Mampu memvisualisasikan target 3D baik target diam (statik) dan
bergerak (dinamis).Target statik termasuk berbentuk lesan tembak.
Mampu membangkitkan efek kinetis dan suara sebagai akibat dari suara
mesin (automotive), kondisi medan dan tembakan.
Mampu membangkitkan tanda atau peringatan tertentu jika pada simulator
terjadi kondisi ketidaksesuaian dengan kamampuan operasional dan prosedur pelayanan yang sebenarnya dari ranpur.
Kubah (turret) dan Kanon (Cannon) tidak berputar secara fisik tetapi simulator mampu membangkitkan efek visual karena gerakan kubah yang bisa berputar 360 derajat.
(time of day), cuaca (visibility), angin, dan asap.
Mampu melakukan penilaian hasil latihan secara otomatis.
Mampu menyediakan Training Management System : manejemen data
Ranpur musuh dapat dikendalikan oleh instruktur atau bergerak secara otomatis.
Ranpur musuh berjumlah maksimal 10 objek yang memiliki skenario
gerakan masing-masing.
3. Spesifikasi Teknis Driving Simulator RANPUR Tank AMX-13 Driving Simulator
Driving simulator adalah alat simulasi mengemudi yang dalam konteks pendidikan merupakan alat bantu peraga dan bahan uji yang diperuntukkan bagi instruktur dan siswa. Alat ini juga merupakan sarana melatih teknik dan kesigapan pengemudi sehingga dapat dipergunakan sebagai sarana latih yang efektif dengan tingkat keamanan yang tinggi.
Driving simulator memiliki fungsi konfigurasi berupa :
Latihan mengemudi
Alat uji keterampilan mengemudi
Pengusutan gangguan mengemudi
Medan Simulasi
Latihan mengemudi disimulasikan pada medan yang berbeda-beda, berikut merupakan beberapa materi latihan mengemudi:
1. Mengemudi jalan datar/jalan raya
a. Tujuan: sebagai sarana pelatihan mengemudi dasar para pengemudi untuk melatih keterampilan teknik mengemudi sebelum latihan sebenarnya.
b. Visualisasi: view alam berupa medan datar dan terdapat jaring-jaring jalan yang dapat dilalui ranpur.
c. Efek Suara: seperti suara mesin ranpur
d. Efek Gerak: pengemudi merasakan getaran saat melewati jalan tidak rata.
2. Mengemudi di medan tanjakan/turun dan jalan berbelok
a. Tujuan : melatih mengendalikan ranpur pada saat jalan menanjak/turun dan jalan berbelok.
b. Visualisasi: lebih dominan berupa panorama daerah perbukitan yang banyak jalan menanjak/turun dan berbelok.
c. Efek Suara: seperti suara mesin ranpur.
d. Efek Gerak: pengemudi merasakan gerakan naik/turun tanjakan, belok seperti saat mengemudi sebenarnya.
3. Mengemudi di medan pasir dan lumpur
a. Tujuan: melatih kemampuan pengemudi agar dapat melintasi medan pasir dan berlumpur.
d. Efek Gerak: pengemudi merasakan selip rantai saat melewati medan pasir dan lumpur.
Automotive RANPUR Tank
Dalam tubuh TNI AD terdapat kecabangan Kavaleri dimana kecabangan tersebut salah satunya menggunakan Ranpur Tank dalam melaksanakan tugas pokoknya yaitu melaksanakan pertempuran mantra darat dengan mobilitas yang tinggi.
Ranpur tank yang terdapat disatuan Kavaleri TNI AD salah satunya adalah Ranpur Tank buatan Perancis yang terdiri dari beberapa jenis, antara
lain Tank AMX-13 Kanon, Tank AMX-13 APC, Tank AMX-13 Ambulance,
Tank AMX-13 Logistik, Tank AMX-13 Jembatan, dan lainnya. Setiap jenis ranpur tank tersebut memikili karakteristik dan system automotive yang berbeda dan harus dipahami setiap prajurit Kavaleri dan satuannya.
Karakteristik Ranpur Tank AMX-13 Kanon 75-105 mm Mesin Bensin
a. Awak Kendaraan : 3 orang.
b) Bagian samping : 20 mm.
c) Bagian belakang : 15 mm.
d) Atas/bawah : 10 mm.
e)
c. Automotive
1) Mesin : Sofam Type 8G X B 8 selinder 4-4 berbaring bertolak.
2) Bahan bakar : MT-87 isi tangki 480 liter (2 tangki bahan bakar).
d. Senjata
1) Senjata utama : 1 pucuk kanon 105/75 mm.
2) Senjata Coak : 1 Pucuk metraliur AA-52.
3) Pelontar granat : 3 pasang untuk kanon 105/2 pasang.
4) Amunisi : Kanon 37 butir AA-52
AA-52 10 peti @150 butir
e. Radio : SCR 50B dan AM/GRC-9
1) Aksi radius : 480 km.
2) Kecepatan
a) Dijalan maksimal : 60 km/jam
b) Dijalan rata-rata : 35-45 km/jam
c) Dilapangan : 12-15 km/jam
3) Mendaki : 310 (60%)
4) Melangkah parit : 1,60 m.
5) Membuat lubang dengan : 6,40 m dlm 1,30 m
garis tengah
6) Naik rintang tegak maju : 0,65 m.
Naik rintang tegak mundur: 0,45 m.
7) Mengarung : 0,60 m.
1) 1 orang Danran (Commander)
2) 1 orang Penembak (Gunner)
3) 1 orang Pengemudi (Driver)
b. Data Teknis
1) Berat kosong : 15700 kg.
2) Berat siap tempur : 17200 kg.
3) Besar tekanan jejak : 0,878 kg/cm2
a) Dengan kubah : 2,18 m.
b) Badan : 1,38 m.
4) Panjang dengan kanon : 6,36 m.
5) Panjang badan : 4,88 m.
6) Lebar : 2,510 mm.
7) Tinggi dengan kubah : 2,620 m.
8) Bebas dasar normal : 0,43m/beban tempur 0,39m/beban
9) Tebal baja
1) Kanon caliber 105 mm dan coaxial. 2) PSU 7,62 mm ditambah pelontar.
3) Granat asap caliber 81 mm, dengan kemampuan putaran kubah 3600
d. Automotive
1) Mesin type : V.6 Turbocharger.
2) Model : 6.V 53 T.
4) Putaran mesin maksimal : 2800 Rpm dan mengeluarkan tenaga 300 HP
5) Putaran stasioner : 700 Rpm
6) Jenis bahan bakar : Diesel (solar)
7) Transmisi/gearbox diganti dengan otomatis penuh dengan data sebagai berikut :
a) Type : Otomatis penuh
b) Model : 5 WG-180.
c) Buatan pabrik : ZF
d) Jumlah percepatan : 5 maju dan 2 mundur
8) Suspensi. Sistem suspense yang diganti adalah shock absorber diganti dengan sistem hidrolic PNEUMATIC.
e. Radio : ANVRC-64
f. Kemampuan
1) Kecepatan maksimum : 0.65 m
2) Melewati rintangan tegak
a) Maju : 0,65 m.
b) Mundur : 0,45 m.
3) Melangkah parit : 1,60 m.
4) Menanjak besar sudut : 310
5) Mengarung kedalam : 0,80 m
6) Pemakaian bahan bakar : 1:1
7) Aksi radius dijalanan : ±450-599 Km dijalanan
8) Radius putar gandar dalam: 7,80 m / 3,90 m luar
9) Aksi radius dilapangan : 16-19 jam.
10) Berputar ditempat : 3600 ke kiri/kanan
4. Kecerdasan Buatan(Artificial Intelligence)
Kecerdasan buatan adalah suatu studi yang mengupayakan bagaimana agar komputer berlaku cerdas sehingga dapat menyelesaikan suatu persoalan yang sulit dengan meniru bagaimana manusia dapat menyelesaikan permasalahan dengan cepat. Dengan cara menyederhanakan program, kecerdasan buatan dapat meniru proses belajar manusia sehingga informasi baru dapat diserap dan digunakan sebagai acuan di massa-masa yang akan datang. Manusia dapat menyerap informasi baru tanpa perlu mengubah atau mempengaruhi informasi lain yang telah tersimpan. Program kecerdasan buatan membutuhkan cara yang jauh lebih sederhana dibandingkan dengan memakai program standar tanpa kecerdasan buatan di dalamnya.
secara otomatis dapat mengatur cara kerjanya untuk menyesuaikan diri dengan fakta atau informasi yang baru tersebut.
Makin pesatnya perkembangan teknologi menyebabkan adanya perkembangan dan perluasan lingkup yang membutuhkan kehadiran kecerdasan buatan. Karakteristik cerdas sudah mulai dibutuhkan di berbagai disiplin ilmu dan teknologi. Irisan antara psikologi dan kecerdasan buatan melahirkan sebuah area yang dikenal dengan nama cognition & psycolinguistics. Irisan antara teknik elektro dengan kecerdasan buatan melahirkan berbagai ilmu yang seperti: pengolahan citra, teori kendali, pengenalan pola, dan robotika. Adanya irisan kecerdasan buatan di berbagai ilmu menyebabkan cukup rumitnya untuk mengklasifikasikan kecerdasan buatan menurut disiplin ilmu yang menggunakannya. Untuk memudahkan hal tersebut, maka pengklasifikasian lingkup kecerdasan buatan didasarkan pada output yang diberikan yaitu pada aplikasi komersial.
Lingkup utama dalam kecerdasan buatan adalah:
- Sistem Pakar(Expert System). Komputer digunakan sebagai sarana untuk
menyimpan pengetahuan pakar. Dengan demikian komputer akan memiliki keahlian untuk menyelesaikan permasalahan dengan meniru keahlian yang dimiliki oleh pakar.
- Pengolahan Bahasa Alami(Natural Language Processing). Dengan
pengolahan bahasa alami ini diharapkan user dapat berkomunikasi dengan
komputer menggunakan bahasa sehari-hari.
- Pengenalan Ucapan(Speech Recognition). Melalui pengenalan ucapan
diharapkan manusia dapat berkomunikasi dengan komputer menggunakan suara.
- Robotika & Sistem Sensor(Robotics & Sensory Systems) .
- Computer Vision, mencoba untuk dapat menginterpretasikan gambar atau obyek-obyek tampak melalui komputer.
- Intelligent Computer-aided Instruction. Komputer dapat digunakan sebagai tutor yang dapat melatih dan mengajar.
- Game Playing.
Seiring dengan perkembangan teknologi, muncul beberapa teknologi yang juga bertujuan untuk membuat agar komputer menjadi cerdas sehingga dapat menirukan kerja manusia sehari-hari. Teknologi ini juga mampu mengakomodasi adanya ketidakpastian dan ketidaktepatan data input. Dengan didasari pada teori
himpunan, maka pada tahun 1965 muncul Logika Fuzzy. Kemudian pada tahun
5. Kecerdasan Buatan pada Game
Kecerdasan buatan pada Game mengacu pada teknik yang digunakan dalam
perMainan komputer komputer dan video untuk menghasilkan ilusi kecerdasan
dalam perilaku NPC(Non Playing Character). Kemampuan komputer yang telah
diberi kecerdasan harus mampu memberi manusia rasa penasaran dengan tingkat kesulitan tinggi dan perilaku komputer yang sulit ditebak. Penekanannya untuk membuat kecerdasan komputer melebihi kinerja kecerdasan manusia. Kecerdasan
buatan pada Game RTS(Real Time Strategy) umumnya terdiri dari perencanaan
mencari jalan yang optimum(pathfinding), untuk berperang NPC juga diharapkan
mempunyai rule untuk melancarkan strategi-strategi khusus seperti halnya
manusia. Strategi yang dimaksud bisa berupa strategi mengejar lawan, menyerang lawan maupun menghindari lawan dimana untuk mendesain perilaku NPC digunakan Finite State Machine, dan untuk menentukan respon perilaku yang
dilakukan terhadap perubahan kondisi yang dihadapi NPC digunakan logika fuzzy
mamdani.
Non Player Character
Autonomous character adalah jenis otonomous agent yang ditujukan untuk
penggunaan komputer animasi dan media interaktif seperti Games dan virtual
reality. Agen ini mewakili tokoh dalam cerita atau perMainan dan memiliki kemampuan untuk improvisasi tindakan mereka. Inia dalah kebalikan dari seorang tokoh dalam sebuah film animasi, yang tindakannya ditulis di muka, dan untuk
“avatar” dalam sebuah perMainan atau virtual reality, tindakan yang diarahkan
secara real time oleh peMain. Dalam perMainan, karakter otonom biasanya disebut NPC (Non-Player Character). Divisi gerak perilaku otonom hirarki
karakter dibagi menjadi tiga lapisan: seleksi tindakan, steering, dan penggerak.
Finite State Machine
FSM(Finite State Machine) digunakan untuk merespon perilaku NPC terhadap parameter-parameter yang digunakan sebagai dasar untuk menentukan gerakan-gerakan dari keputusan yang akan diambil pada kondisi tertentu. FSM
mengatur state untuk setiap agent. Sebuah state machine dapat mengelola banyak
states, tapi hanya ada satu state yang aktif pada satu waktu. Selain agent dan
states, FSM biasanya dapat menerima event dari agent atau dari objek lain di
dalam Game. Setiap event memiliki parameter khusus yang spesifik untuk event
tersebut.
Logika Fuzzy Mamdani
Logika fuzzy adalah sebuah metode untuk menangani masalah
ketidakpastian dalam suatu masalah yang mengandung keraguan, ketidaktepatan, kurang lengkapnya informasi, dan nilai kebenaran yang bersifat sebagian. Fungsi
logika fuzzy yaitu untuk mendukung keputusan yang akan diambil oleh NPC.
Bentuk aturan logika fuzzy mamdani adalah sebagai berikut:
IF X1 is A1 AND ... AND Xn is An THEN Y is B. Dimana A1,...,An, B adalah
nilai-nilai linguistik, sedangkan “X1 is A1” menyatakan bahwa nilai dari variabel
X1 adalah anggota himpunan fuzzy.
A* adalah algoritma pencarian umum yang biasa digunakan yang secara intuitif mudah dimengerti dan sederhana untuk diimplementasikan. Pencarian
path digunakan dalam berbagai konteks mulai dari perencanaan AI sehingga memungkinkan kita untuk memecahkan sejumlah besar masalah dengan lebih mudah. Alasan A* baik untuk digunakan karena dapat direpresentasikan sebagai
ruang state yang cocok dengan suatu masalah dimulai dari kondisi dan keadaan
awal dari lingkungan kemudian menghasilkan tindakan yang sesuai dengan tujuan penyelesaian masalah tersebut. A* tidak hanya mencari solusi yang cepat, tetapi juga dapat mencari solusi terbaik.
Beberapa fungsi yang umum digunakan pada algoritma pathfinding A*
d adalah nilai biaya. Nilai d didapat dari nilai minimum cost
perpindahan antar node.
Xn adalah koordinat X dari node pertama pada grid.
Xgoal adalah koordinat X dari final node.
Yn adalah koordinat dari node pertama dari grid.
Ygoal adalah koordinat Y dari final node.
b. Straight Line Distance
Straight Line Distance adalah fungsi heuristic yang digunakan pada aplikasi yang dapat bergerak ke segala arah/sudut dengan fungsi:
h(n) = sqrt (abs (Xn - Xgoal)² + abs (Yn - Ygoal))² Dimana:
Xn adalah koordinat X dari node pertama pada grid.
Xgoal adalah koordinat X dari final node.
Yn adalah koordinat dari node pertama dari grid.
Ygoal adalah koordinat Y dari final node.
c. Diagonal Distance
Diagonal Distance adalah fungsi heuristic yang digunakan pada aplikasi yang memiliki delapan arah gerakan (dapat bergerak diagonal).
h(n) = d* max abs (Xn - Xgoal) + abs (Yn - Ygoal) Dimana:
d adalah nilai biaya. Dimana nilai d didapat dari nilai minimum
cost perpindahan antar node.
Xn adalah koordinat X dari node pertama pada grid.
Xgoal adalah koordinat X dari final node.
Yn adalah koordinat dari node pertama dari grid.
Kecerdasan Buatan pada Delta3D
Delta3D adalah open source game engine yang dibuat oleh MOVES Institute yang merupakan bagian dari Naval Postgraduate School. Salah satu kendala mengembangkan kecerdasan buatan pada Delta3D yaitu Delta3D kurang memiliki kemampuan spesifik untuk membuat hanya kecerdasan buatan tanpa
harus memiliki kemampuan mendesain karakter untuk mengontrol non player
character. Delta3D menyediakan tiga fasilitas basic untuk mendukung
pengembangan AI yaitu, finite state machine class, traditional waypoint-based
navigation, dan kesanggupan untuk code AI pada high level scripting language.
AI pada Delta3D terletak didalam modul components package.
Gambar 7.AI pada Components Package Delta3D
6. Metodologi Pengembangan
Metodologi yang digunakan untuk mengembangkan aplikasi bidang kajian
ini adalah Model Waterfall. Disebut waterfall(berarti air terjun) karena diagram
tahapan prosesnya mirip dengan air terjun yang bertingkat. Ada lima tahapan utama dalam Model Waterfall, antara lain :
Tahap investigasi dilakukan untuk menentukan apakah terjadi suatu
tahap ini dilakukan studi kelayakan untuk menentukan apakah aplikasi yang akan dikembangkan merupakan solusi yang layak.
Tahap analisis bertujuan untuk mencari kebutuhan pengguna dan organisasi serta menganalisa kondisi yang ada.
Tahap disain bertujuan untuk menentukan spesifikasi detil dari komponen-komponen aplikasi yang sesuai dengan tahap analisis.
Tahap implementasi merupakan tahapan untuk mengembangkan
software (pengkodean program), pengujian dan pelatihan software.
Tahap perawatan (Maintenance) dilakukan ketika software sudah dioperasikan. Pada tahap ini dilakukan monitoring proses, evaluasi dan perbaikan bila diperluakan.
Gambar 8 The Waterfall Model
Dalam pengembangan aplikasi ini tidak lepas dari penggunaan notasi-notasi yang biasa disebut sebagai UML (Unified Modeling Language). UML adalah bahasa pemodelan standar atau kumpulan teknik-teknik pemodelan untuk menspesifikasi, mem-visualisasi, mengkonstruksi dan mendokumentasi hasil kerja dalam pengenmabangan perangkat lunak (Fowler, 2004). Ada beberapa jenis diagram UML yang digunakan pada pengembangan aplikasi ini, yakni :
Use-case diagram. Diagram ini berguna untuk menggambarkan interaksi antara pengguna dengan sebuah perangkat lunak.
Activity diagram. Diagram ini berguna untuk menggambarkan prosedur-prosedur perilaku perangkat lunak.
Class diagram. Diagram ini berguna untuk menggambarkan class, fitur dan hubungan-hubungan yang terjadi.
Sequence diagram. Diagram ini berguna untuk menggambarkan interaksi antar obyek dengan penekanan pada urutan proses atau kejadian.
7. Pengembangan Artificial Intelligence pada Sistem Simulator Tank AMX-13
Pada pengembangan aplikasi ini, tahapan dan aktifitas yang dilakukan
mengacu pada proses pengembangan System Development Life Cycle (SDLC)
seperti pada gambar di bawah ini.
BAB III PERENCANAAN DAN ANALISIS ARTIFICIAL INTELLIGENCE PADA SISTEM SIMULATOR TANK AMX-13
1. Lingkup Masalah
AI pada Simulator Tank AMX-13 adalah perangkat lunak dalam sistem simulator tank AMX-13 yang dapat menggerakan kendaraan kawan maupun musuh atau infranteri lawan secara otomatis berdasarkan keadaan yang terdapat di lapangan agar dapat digunakan dalam pelatihan pertempuran menggunakan tank AMX-13. Perangkat lunak ini dapat menghasilkan keputusan sendiri berdasarkan keadaan yang dialami oleh peserta latihan dan lingkungan sekitar kendaraannnya sehingga membantu peserta latihan dalam bertempur menggunakan tank AMX-13.
2. Deskripsi Umum Sistem
AI pada Simulator Tank AMX-13 digunakan untuk menggerakan benda dinamis seperti tank kawan ataupun musuh secara otomatis.
Perangkat lunak ini dikembangkan dengan pemrograman OOP (Object
Oriented Programming) berbasis desktop. Perangkat lunak ini dapat membantu pengguna dalam berlatih dalam medan pertempuran seperti melawan musuh sungguhan yang dapat bergerak dan menembak sasaran, selain itu perangkat lunak ini dapat meningkatkan kerjasama tim dalam menyelesaikan sebuah misi. AI pada Simulator Tank AMX-13 didukung dengan pengambilan keputusan menggunakan
metode pengambilan keputusan Fuzzy Inference System dengan menggunakan
metode mamdani serta mencari jalan terbaik untuk pathfinding menggunakan metode A*. Operasi ini untuk membantu AI dalam mengambil keputusan ketika keadaan tertentu muncul seperti musuh yang terlihat sudah memasuki jarak tembak.
3. User Requirement
Pengguna perangkat lunak ini merupakan trainer dan trainee yang terlibat
dalam suatu misi latihan menggunakan tank AMX-13.
Dari hasil analisis karakteristik pengguna dan batasan sistem, maka
kebutuhan pengguna (user requirement) adalah sebagai berikut :
1. Anggota TNI atau nama lainnya trainee yang akan berlatih menggunakan
simulator Tank AMX-13 dapat melihat musuh-musuh yang digerakan oleh
AI yang dapat menyerang trainee. Sehingga trainee tidak bisa
memperkirakan pergerakan tank musuh dan harus menyusun strategi untuk mengalahkan AI.
2. Trainer dapat mengatur skenario maupun misi yang harus diselesaikan oleh
trainee.
3. Trainer dapat mengikutsertakan AI atau tidak dalam sebuah misi latihan. 4. Trainee dapat melihat bagaimana tank bergerak dan melawan tank lain yang
dikendalikan oleh AI.
3.1 User Characteristics
Trainer adalah kelas user yang berfungsi membuat skenario pada 2D world map
dan mengamatinya pada 3D world map untuk mengevaluasi trainee setelah tahap
simulasi. Tahap pertama trainer harus membuat skenario baru dan menambahkan
aktor untuk fasilitas 2D map. Selanjutnya pada tahap kedua trainer akan
mengamati hasil skenario yang dibuat pada 3D world map.
Trainee
Kelas trainee sebagian besar menggunakan 3D world map dibandingkan 2D
world map. Tahap pertama yaitu pada 2D world map peserta pelatihan atau
trainee dapat memilih tank untuk mengontrol skenario simulasi. Tahap kedua
trainee langsung bisa mengontrol tank yang dipilih dan bebas bergerak dalam 3D
world map. Semua tindakan trainee pada 3D world map akan diamati dan dievaluasi oleh trainer.
4. Use Case Diagram
Use Case diagram digunakan untuk menunjukkan interaksi antara pengguna
dan sistem. Selain itu, Use Case juga dapat menggambarkan aliran data yang
terjadi.
4.1 Use Case Trainer membuat skenario
4.1.1 New Map
Deskripsi : Trainer dapat memilih map mana yang akan dipilih pada suatu
skenario.
Asumsi : File-file program map telah diselesaikan pada produk akhir program.
Steps :
1)Trainer mengakses bagian map yang akan dipilih. 2)Trainer memilih map dan mengkonfirmasi pilihannya.
4.1.2 Create Scenario
Deskripsi : Trainer dapat membuat skenario dari map yang dipilih.
Asumsi : Keputusan pemilihan map sudah dibuat.
Steps :
1)Trainer mengakses tombol skenario yang dibuat.
4.1.3 Load Scenario
Deskripsi : Trainer dapat memuat, memodifikasi, dan mensimulasikan
skenario yang telah ditetapkan.
Asumsi : Harus ada skenario yang telah dibuat sebelumnya. Beberapa skenario dasar akan disediakan bersamaan dengan produk akhir.
Steps :
1)Trainer mengakses tombol loading skenario yang dibuat.
2)Trainer memilih skenario yang ditetapkan dan mengkonfirmasi keputusan.
4.1.4 Save Scenario
Deskripsi : Trainer dapat menyimpan skenario yang telah dibuat.
Asumsi : Trainer telah membuat skenario.
Steps :
1)Trainer mengakses tombol saving skenario yang dibuat.
4.1.5 Add Actor To Scenario
Deskripsi : Trainer dapat menambahkan standar unit untuk skenario yang
ia buat sebelumnya.
Asumsi : Trainer telah membuat skenario.
Steps :
1)Trainer mengakses aktor dan menambahkannya.
2)Trainer memilih terrain yang akan mengambil tempat di dalam skenario dan memutuskan berapa jumlah unit yang ditampilkan.
4.1.6 Add Mission To Actor
Deskripsi : Trainer dapat menetapkan misi yang berbeda kepada aktor
yang akan berlangsung di skenario.
Asumsi : Trainer telah membuat skenario dan menambahkan aktor ke
dalam skenario.
Steps :
1)Trainer mengakses aktor dan menambahkannya. 2)Trainer memilih aktor untuk menambahkan missinya. 3)Trainer mengkonfirmasi pemilihan aktor yang ditambahkan.
4.1.7 Delete Actor
Deskripsi : Trainer mungkin ingin menghapus aktor yang sebelumnya ia
tambahkan.
Asumsi : Trainer telah membuat skenario dan telah ditambahkan aktor
ke dalam skenario.
Steps :
1)Trainer mengakses aktor dan menambahkannya.
2)Trainer memilih aktor yang ditambahkan sebelumnya kemudian menghapusnya.
3)Trainer mengkonfirmasi keputusan menghapus aktor tersebut.
4.1.8 Set Environment
Deskripsi : Trainer dapat mengatur kondisi lingkungan dari skenario.
Asumsi : Trainer telah membuat skenario.
Steps :
1)Trainer mengakses pengaturan bagian lingkungan.
2)Trainer memilih kondisi lingkungan (siang atau malam, kondisi cuaca, dll).
3)Trainer mengkonfirmasi pemilihan kondisi lingkungan.
4.1.9 Observe Scenario
Deskripsi : Setelah trainer memilih skenario dan opsi-opsinya, proses
simulasi akan mulai untuk mengobservasi.
Asumsi : Trainer telah membuat skenario, memilih aktor untuk melakukan suatu misi, dan memilih kodisi lingkungan.
Steps :
1)Trainer mengkonfirmasi semua pilihannya dari pembuatan skenario.
2) Simulasi pertempuran dimulai dengan skenarioyang sudah dipilih lalu
4.2Use Case Skenario Trainee
Gambar 11 Use Case Skenario Trainee
4.2.1 Choose Actor
Deskripsi : Trainee dapat memilih aktor yang ia inginkan untuk
digunakannya didalam 3D world.
Asumsi : Skenario telah dibuat dan aktor telah ditambahkan ke skenario tersebut oleh trainer.
Steps :
1)Trainer memilih ikon 2D dari aktor pada 2D map.
4.3 Use Case 3D World Console Trainer
Gambar 12 Use Case 3D World Console Trainer
4.3.1 Change Camera
Deskripsi : Trainer dapat mengubah sudut kamera dan posisi kamera.
Asumsi : Defaultangle kamera dan posisi kamera sudah ditambahkan
ke map.
Steps :
1)Trainer mengakses bagian perubahan kamera dari konsol.
2)Trainer mengontrol sudut kamera dengan tombol arah dan gerakan
mouse.
4.3.2 Pause-Continue
Deskripsi : Trainer dapat menghentikan sementara atau melanjutkan observasi.
Asumsi : Proses simulasi telah dimulai untuk melakukan observasi.
Steps :
1)Trainer mengakses tombol Start/Stop yang merupakan bagian dari konsol.
4.3.3 Forward
Deskripsi : Trainer dapat mempercepat observasi.
Asumsi : Proses simulasi telah dimulai untuk melakukan observasi.
Steps :
1)Trainer mengakses tombol Forward yang merupakan bagian dari konsol.
4.4 3D World Consol Trainee
Gambar 13 Use Case 3D World Console Trainee
4.4.1 Movement
Deskripsi : Trainee mengontrol pergerakan unit yang dipilihnya.
Asumsi : Tidak ada hambatan apapun pada arah gerakan.
Steps :
4.4.2 Fire
Deskripsi : Trainee menembak untuk membunuh atau menghancurkan
beberapa target musuh.
Asumsi : Trainee memiliki peluru untuk menembak.
Steps :
1)Trainee mengatur kursor untuk menghancurkan target.
2)Klik tombol kiri mouse untuk menembak.
4.4.3 Change Position
Deskripsi : Trainee mengatur gerakan tertentu dari tank seperti patroli
atau bertahan.
Asumsi : Tidak ada hambatan apapun pada gerakan vertikal.
Steps :
1)Trainee mengatur kursor unit menggunakan keyboard dan mouse.
2)Tombol arah kiri dan kanan sesuai dengan gerakan horisontal.
4.4.4 Change Position of Cursor
Deskripsi : Kursor ditampilkan pada tengah layar. Kursor menunjukkan arah unit dan senjata.
Asumsi : Tiap unit telah dibatasi kemampuan pergerakan kursornya.
Steps :
1) Mouse mengontrol posisi kursor. Menurut gerakannya arah kursor terdiri dari kiri, kanan, atas, dan bawah.
5. Class Diagram
Gambar 14 Class Diagram User
Diagram ini menggambarkan kelas pengguna yang mendefinisikan
pengguna. Kelas dasar atau base class adalah kelas user yang terdiri dari UserId,
Password, dan SimulationId. Objek dari kelas ini dapat dibuat pada awal eksekusi
dengan memparsing file konfigurasi yang diperlukan. Unique id pada
SimulationId berfungsi untuk mendefinisikan apakah user termasuk Trainer atau
Gambar 15 Class Diagram AI
Pada level ini package AI mampu menyediakan waypoint untuk aktor dan
menetapkan target. BaseAIComponent menangani komunikasi antaran Game
Engine Delta3D dan aktor. Kelas Waypoint dan WaypointManager menyediakan
waypoints untuk aktor. Kelas Goal dan Conditional didesain untuk menentukan
target tujuannya dengan memilih aktor, mendefinisikan urutan conditional, dan
6. System Sequence Diagram
Gambar 17 Sequence diagram Actor Deletion
7. Activity Diagram
Penggunaan diagram ini untuk memvisualisasikan diagram aktivitas yang dilakukan oleh trainer, trainee dan juga proses login ke dalam sistem.
BAB IV PERANCANGAN DAN IMPLEMENTASI ARTIFICIAL
INTELLIGENCE PADA SISTEM SIMULATOR
TANK AMX-13
1. Perancangan AI pada Simulator Tank AMX-13
Gambar 22. AI Related Classes
BaseAIComponent menangani komunikasi antaran Game Engine Delta3D
dan aktor. Kelas Waypoint dan WaypointManager menyediakan waypoints untuk
aktor. Kelas Goal dan Conditional didesain untuk menentukan target tujuannya
dengan memilih aktor, mendefinisikan urutan conditional, dan goal. Semua game
actor pada simulasi memiliki misi tertentu.
1) Missions
Terdapat 3 tipe misi yaitu:
Moving
Pada misi ini, setelah aktor ditambahkan ke dalam skenario lalu
aktor akan diberikan waypoint untuk menentukan titik akhir dalam map.
Kemudian aktor akan berpindah posisi dari waypoint awal ke waypoint
selanjutnya.
Defending
Pada misi ini, aktor akan menjaga suatu daerah tertentu yang telah
diberikan oleh trainer. Peserta pelatihan diharapkan mampu
Patrolling
Misi ini mirip dengan misi Defending tetapi terdapat perbedaan
yaitu setelah trainer menambahkan aktor dengan skenario, ia akan memberikan waypoint dan misi berpatroli pada waypoint tersebut.
Trainee yang mengontrol actor akan diberi pesan tentang misi patroli
dan tempat dimana saja ia harus patroli akan ditampilkan dalam map.
2) Simulation Goals
Ada 2 tipe dari Simulation Goals:
Elimination Goal
Ketika Trainer memberikan goal kapada tim, Non-Controllable Actor atau AI akan menghancurkan musuh dan bangunan, dan
Controllable Actor atau Trainee akan diberi pesan bagaimana goal
mereka dan diharapkan Trainee dapat menghancurkan musuh.
Capturing/Defending Goal
Trainer dalam satu tim akan menetapkan goal untuk menyerang
area tim lain. Dimana Trainer tim lain akan menetapkan goal bertahan
untuk menjaga area timnya. Diharapkan pesan yang disampaikan
3) Terrain Data
Berikut contoh potongan dari terrain data ditunjukkan oleh gambar
dibawah ini. XML menyimpan berbagai data yang berhubungan dengan medan dari simulasi.
4) Actor’s Data
Aktor data menyimpan berbagai data yang berkaitan dengan aktor dan property aktor yang berada dalam simulasi.
2 Implementasi AI pada Simulator Tank AMX-13
Tahap implementasi baru berhasi pada penggunaan algoritma pathfinding
dalam menjalankan soldier. Soldier akan berjalan di kota secara otomatis mengikuti jalur tertentu sesuai navigasi. Tampilan grafis berupa model 3D yang terdiri dari objek statis yang berbeda seperti rumah, batu, pohon, dan dinding dengan tekstur lingkungan yang lebih realistis.
Aplikasi ini terdiri dari beberapa source files sebagai berikut:
• AICharacter.h – menyediakan kelas antarmuka untuk implementasi karakter AI. •AICharacter.cpp – Mengimplementasikan perilaku karakter prajurit. Kelas ini
berfungsi untuk menemukan logika dalam implementasi seperti metode path
planning. Perhitungan rute dilakukan oleh algoritma path planning yang ada pada
Delta3D. Pada saat runtime, API menyediakan metode yang akan merencanakan
rute antara dua titik yang akan dilakukan dengan mencari navigation graph
menggunakan algoritma A*. Fungsi ini mengembalikan jalur terpendek ke lokasi tujuan dalam bentuk daftar waypoints. Penggunaan sebenarnya dari arah titik
untuk pergerakan karakter tidak ditangani oleh Delta3D tetapi ditangani oleh code
pengguna dimana dalam hal ini oleh kelas AICharacter. Pada gambar dibawah ini
akan ditunjukkan bagaimana fungsi ini dilakukan oleh aplikasi WalkingSoldier.
Method dari FindPathAndGoToWaypoint adalah kelas member dari kelas
AICharacter. Method ini menentukan apakah ada jalan antara waypoint saat ini dan waypoint yang lain sebagai parameter input. Pemanggilan Delta3D A* Algorithm untuk menentukan apakah path ditemukan atau tidak. Jika jalur
ditemukan, bagian if statement akan mengeksekusi setiap waypoint dan diberi
warna hijau kecuali yang terakhir diberi warna merah. Jika tidak ada path yang
ditemukan FindPathAndGoToWaypoint mengembalikan nilai false.
• TestAI.h – menyediakan kelas antarmuka untuk menguji aplikasi
•TestAI.cpp – Menyediakan fungsi uji karakter AI dan menyiapkan konfigurasi
pemandangan, menempatkan kamera, memuat peta, dan memuat waypoint. Kelas
TestAI merupakan extends dari kelas Application yang berisi template untuk
menciptakan sebuah aplikasi Delta3D. Template ini terdiri dari sejumlah virtual
Methods yang menyediakan kerangka dasar untuk aplikasi. Kelas TestAI
meng-override virtual Methods dari kelas Application:
- Config: Mengatur pemandangan dengan menempatkan kamera dan memuat
model grafis dan menempatkan karakter di waypoint pertama.
- KeyPressed: Membuat pengguna dapat berinteraksi dengan aplikasi dengan
menggunakan keyboard.
- PreFrame: Dipanggil oleh aplikasi sebelum menggambar pemandangan dan disebut juga aplikasi loop.
Gambar 25. Method FindPathAndGoToWaypoint
Method FindPathAndGoToWaypoint menggunakan algoritma A*
pathfinding untuk menghitung path antara waypoints.
Gambar 26. Method GoToWayPoint
Gambar 27. Fungsi Main
Fungsi main berfungsi untuk menjalankan aplikasi dengan menggunakan mapName sesuai dengan yang sudah dikonfigurasi oleh pengguna dan mengambil
root path pada folder Delta3D /examples/data.
Gambar 28. Animation Soldier pada Delta3D
BAB V PENUTUP
Peserta praktek kerja lapang di PT. Dirgantara Indonesia (PERSERO), divisi Pusat Teknologi, Departemen Rekayasa Industri dan Perangkat Lunak mengikuti kegiatan pengembangan simulator Tank AMX-13 yang baru berjalan sekitar dua bulan. Peserta PKL diharapkan dapat menganalisis dan merancang serta mencoba mengimplementasikan AI pada simulator Tank AMX-13.
Kesimpulan
Implementasi AI pada simulator Tank AMX-13 belum dapat dilakukan
secara keseluruhan karena peserta PKL belum mempelajari ilmu dasar simulation
dan game engine di bangku kuliah. Peserta juga tidak memiliki waktu yang cukup karena banyaknya hal yang harus dipelajari terlebih dahulu sebelum membuatnya sampai selesai. Peserta PKL berhasil membuat sebuah rancangan pengambilan
keputusan menggunakan Fuzzy Inference System dengan metode mamdani namun
pembuatan rancangan masih menggunakan bahasa JAVA dengan bantuan aplikasi NetBeans 7. Rancangan ini masih menggunakan metode input dalam menghitung yang seharusnya input dilakukan secara otomatis dan berkala (setiap detik).
Rancangan ini menggunakan database yang ada pada library aplikasi Delta3D dan
beberapa asumsi yang diberikan oleh pebimbing lapangan.
Contoh program sederhana pathfinding Delta3D berada di tahap
implementasi. Sedangkan contoh program pengambilan keputusan telah dibuat oleh peserta PKL dan dimasukkan ke dalam halaman lampiran. Contoh program ini mampu menentukan keputusan berdasarkan informasi pada database berupa kondisi yang dihadapi oleh kendaraan AI.
Saran
Peserta harus lebih menguasai berbagai aplikasi yang dibutuhkan dalam
pembuatan simulator 3D seperti Delta3D serta beberapa dependencies yang ada.
Membuat animasi dan aktor juga perlu dipelajari contohnya menggunakan
software 3DS Max, setelah aktor dibuat maka tahapan implementasi artificial intelligence pada aktor tersebut dapat dilakukan. Peserta juga harus aktif bertanya
kepada user tentang apa yang dibutuhkan dalam simulator tersebut. Peserta juga
DAFTAR PUSTAKA
Arif, Yunia Miftachul, et al. Jurnal : Integrasi Hierarchy Finite State Machine dan
Logika Fuzzy untuk Desain Strategi NPC Game. Institut Teknologi Sepuluh
Nopember, [5 Agustus 2012].
Brandstetter, William E et al. Jurnal : SAI-BOTS:Scripted Artificial Intellegent Basic Online Tank Simulator. Department of Computer Science and Engineering University of Nevada, Reno, 2005.
Dewan, Lt Col Chetan. 2008. Disertasi : Customising Open-Source Rendering
Engine for Visual-based Simulation. Bombay : Indian Institute of Technology.
Dimyati, Akhmad dan Tjutju Tarliah Dimyati. 1987. Operations Research : Model-Model Pengambilan Keputusan. Bandung : Sinar Baru Bandung.
Martin, Robert C et al. Jurnal: UML Tutorial : Finite State Machines. Engineering
Notebook Column.
Mulyanto, Aunur. 2008. Rekayasa Perangkat Lunak Jilid 1. Departemen Pendidikan Nasional : Direktorat Pembinaan Sekolah Menengah Kejuruan. Novrisal, Dimas. Permodelan Sistem : Pusat Pengembangan Bahan Ajar-UMB.
Setiawan, Iwan. 2006. Perancangan Software Embedded System Berbasis FSM.
Universitas Diponegoro.
Benny Tsai. Introduction to the A-Star Algorithm.
http://upe.acm.jhu.edu/websites/Benny_Tsai/Introduction%20to %20AStar.htm [12 Agustus 2012].
Gronbaek, Bjorn. 2009. Thesis: Development of a Graphical Regression Test Tool
for use in 3D Virtual Environments.
http://www.delta3d.org. [29 Juni 2012].
Nottoo Soft REARTS. Detailed Design Report.
LAMPIRAN
Asumsi Membership Function TANK AMX-13
Lingkungan ---> (kondisi tanah --- tempat berlindung)
mendukung : 0-0-10-50 (trapesium)
kurang mendukung : 25-50-75 (segitiga)
tidak mendukung : 50-90-100-100 (trapesium)
Kondisi Tank ---> (kondisi mesin --- jumlah amunisi)
Bagus : 0-0-10-40 (trapesium)
kurang bagus : 25-40-60-70 (trapesium)
tidak bagus : 45-85-100-100 (trapesium)
Kondisi Lapangan ---> (jumlah tank lawan ---- kondisi tank kawan)
mendukung : 0-0-10-50 (trapesium)
kurang mendukung : 25-40-60-75 (trapesium)
tidak mendukung : 50-90-100-100 (trapesium)
Kondisi Tanah
aspal (jalan yang bagus) : 0-0-25 (segitiga)
tanah merah : 20-(30-40)-50 (trapesium)
berpasir : 40-55-75 (segitiga)
berlumpur : 60-90-100-100 (trapesium)
tempat berlindung
baik : 0-0-10-40 (trapesium)
kurang baik : 25-40-60-70 (trapesium)
tidak baik : 45-85-100-100 (trapesium)
Kondisi Mesin
baik : 0-0-10-40 (trapesium)
kurang baik : 25-40-50-70 (trapesium)
tidak baik : 50-85-100-100 (trapesium)
Jumlah Amunisi (pake selisih)
cukup : 0-25 (segitiga)
tidak cukup : 20-32 (segitiga)
Jumlah Tank Lawan
sedikit : 0-5 (segitiga)
banyak : 3-10 (segitiga)
kondisi tank kawan ---> (jumlah tank kawan --- jarak tank kawan)
mendukung : 0-0-10-50 (trapesium)
kurang mendukung : 25-50-75 (segitiga)
Jumlah tank kawan (pake selisih)
banyak : 0-3 (segitiga)
sedikit : 2-4 (segitiga)
jarak tank kawan
dekat : 0-0-10-30 (trapesium)
jauh : 25-70-100-100 (trapesium)
keputusan ---> (Lingkungan --- kondisi tank --- kondisi lapangan)
tembak : 0-0-15-35 (trapesium)
panggil bantuan tembak : 20-35-50 (segitiga)
panggil bantuan lari : 35-50-75 (segitiga)
lari : 50-90-100-100 (trapesium)
Contoh pembuatan perancangan pengambilan keputusan metode mamdani.
Gambar 29. Diagram dari contoh program pengambilan keputusan
Keputusan diambil dari perhitungan fuzzy kondisi lapangan, kondisi
lingkungan, dan kondisi Tank. Masing-masing kondisi juga merupakan hasil
perhitungan fuzzy dari data dinamis seperti jumlah tank lawan, kondisi mesin,
Tabel 1: Rule FISKeputusan
Hasil Keputusan Kondisi_Lingkungan Kondisi_Tank Kondisi_Lapangan
Tembak Mendukung Bagus Mendukung
Tembak Mendukung Kurang Bagus Mendukung
Tembak Kurang Mendukung Bagus Mendukung
Panggil Bantuan Tembak
Mendukung Bagus Kurang Mendukung
Panggil Bantuan
Lari Mendukung Bagus Tidak Mendukung
Panggil Bantuan Lari
Kurang Mendukung Bagus Kurang Mendukung
Panggil Bantuan
Lari Mendukung Kurang Bagus Kurang Mendukung
Lari Tidak Mendukung -
-Lari - Tidak Bagus
-Lari Kurang Mendukung Kurang Bagus
-Lari - Kurang Bagus Tidak Mendukung
Tabel 2: Rule FISLingkungan
Hasil Kondisi_Lingkungan Kondisi_Tanah Tempat_Berlindung
Mendukung Aspal
-Mendukung Tanah Merah Baik
Kurang Mendukung Tanah Merah Kurang Baik
Kurang Mendukung Tanah Merah Tidak Baik
Mendukung Berpasir Baik
Kurang Mendukung Berpasir Kurang Baik
Tidak Mendukung Berpasir Tidak Baik
Kurang Mendukung Berlumpur Baik
Tidak Mendukung Berlumpur Kurang Baik
Tidak Mendukung Berlumpur Tidak Baik
Tabel 3: Rule FISKondisi_Tank
Hasil Kondisi_Tank Kondisi_Mesin Jumlah_Amunisi
Bagus Baik Cukup
Kurang Bagus Baik Tidak Cukup
Kurang Bagus Kurang Baik Cukup
Tidak Bagus Kurang Baik Tidak Cukup
-Pada tabel 1 rule keputusan, input dari ‘Keputusan’ adalah
Kondisi_Lapangan, Kondisi_Tank, dan Kondisi_Lingkungan. Contoh rulenya
dapat dibaca sebagai berikut “IF Kondisi_Lingkungan = ‘mendukung’ AND
Kondisi_Tank = ‘bagus’ AND Kondisi_Lapangan = ‘mendukung’ THEN
Keputusan = ‘Tembak’”. Cara pembacaan juga berlaku untuk tabel keputusan lainnya.
Tabel 4: Rule FISKondisi_Lapangan
Hasil Kondisi_Lapangan Jumlah_Tank_Lawan Kondisi_Tank_Kawan
Mendukung Sedikit Mendukung
Mendukung Sedikit Kurang Mendukung
Kurang Mendukung Sedikit Tidak Mendukung
Kurang Mendukung Banyak Mendukung
Tidak Mendukung Banyak Kurang Mendukung
Tidak Mendukung Banyak Tidak Mendukung
Tabel 5: Rule FISKondisi_Tank_Kawan
Hasil Kondisi_Tank_Kawan Jumlah_Tank_Kawan Jarak_Tank_Kawan
Mendukung Banyak Dekat
Kurang Mendukung Sedikit Dekat
Kurang Mendukung Banyak Jauh
Tidak Mendukung Sedikit Jauh
Gambar 31. program pengambilan keputusan menggunakan FIS hasilnya
Pengambilan keputusan ini dimulai dengan perhitungan Fuzzy terhadap entitas Kondisi_Tank_Kawan dengan inputnya Jumlah_Tank_Kawan dan Jarak_Tank_Kawan. Setelah didapatkan hasilnya, entitas Kondisi_Lapangan mulai dihitung dengan inputnya Kondisi_Tank_Kawan dan Jumlah_Tank_Lawan. Kemudian secara bersamaan Kondisi_Lingkungan dan Kondisi_Tank dihitung berdasarkan inputnya masing-masing yaitu Kondisi_Tanah dan Tempat_Berlindung untuk Kondisi_Lingkungan serta Kondisi_Mesin dan Jumlah_Amunisi untuk Kondisi_Tank. Setelah output dari hitungannya didapat, Kondisi_Lapangan, Kondisi_Lingkungan, dan Kondisi_Tank menjadi input untuk
perhitungan terakhir yaitu pengambilan Keputusan. Salah satu asumsi rule yang