KAPAL PERANG ( BATTLESHIP )
Laporan Tugas Akhir
Diajukan untuk melengkapi persyaratan mencapai gelar sarjana strata satu (S1)
Program Studi Teknik Informatika
oleh RUDI SETIYADI
NIM 01502-053
PROGRAM STUDI TEKNIK INFORMATIKA UNIVERSITAS MERCU BUANA
JAKARTA 2008
Perangkat komputer saat ini tidak hanya digunakan untuk keperluan pekerjaan saja, namun juga telah digunakan sebagai alat hiburan digital. Salah satu hiburan yang dapat dinikmati melalui perangkat komputer dan saat ini sedang digemari oleh anak-anak dan dewasa adalah aplikasi permainan (computer game).
Aplikasi permainan komputer berkembang dengan pesatnya. Diantara aplikasi-aplikasi permainan yang telah ada saat ini, banyak yang rumit alur permainannya sehingga membuat bosan para penggunanya. Dengan latar belakang tersebut dan terinspirasi dari sebuah buku tentang pemrograman permainan komputer, penulis membuat dan mengembangkan aplikasi permainan komputer sederhana dengan karakter kapal perang yang disebut dengan Battleship yang dapat dijadikan alternatif bagi para penggemar aplikasi permainan komputer dan dapat dipelajari dengan mudah bagi para pemula dibidang pemrograman komputer.
Aplikasi permainan kapal perang (Battleship) dibangun menggunakan Microsoft Visual Basic versi 6.0 edisi Profesional. Dalam melakukan analisis kebutuhan untuk aplikasi permainan tersebut penulis menggunakan alat pemodelan visual Unified Modeling Language (UML). Diagram-diagram UML yang digunakan oleh penulis adalah diagram Use Case, Class Diagram, diagram Sekuensial, dan diagram Aktivitas, Diagram Deployment.
Kata kunci: aplikasi permainan komputer, aplikasi permainan kapal perang, pemrograman permainan dengan Visual Basic.
Today computer is not only used as a tool for helping human works, however computer is also used as a digital entertainment device. One of the entertainments which can be enjoyed from a computer system and very popular for children and adult is computer game.
Computer game is growing rapidly. Among the computer game which has been released lately, many of them are much complicated in the flow of the game scenarios. This situation makes the player bored. Based on this background and inspired by a game programming book, I developed a simple battleship game called as Battleship that can be used as an alternative game for the game lover and can be learned by beginner programmer who wants to understand the basic of game programming.
The Battleship game is built on Microsoft Visual Basic version 6.0 professional edition. I used Unified Modeling Language (UML) to analyze the requirements of the game. UML diagrams which I used are; Use Case diagram, Class diagram, Sequence diagram, and Activity diagram, Deployment diagram.
Keywords: computer game, battleship game, game programming with Visual Basic
Yang bertanda tangan dibawah ini menyatakan bahwa laporan Tugas Akhir dari mahasiswa berikut ini:
Nama : Rudi Setiyadi
NIM : 01502-053
Fakultas : Teknologi Industri Program Studi : Teknik Informatika
Judul : Pengembangan Aplikasi Permainan Kapal Perang ( Battleship ) Telah disidangkan, diperiksa, dan disetujui sebagai laporan Tugas Akhir.
Jakarta, ...Agustus 2008
Menyetujui,
(Joko Adianto, MInfSys) Pembimbing I Tugas Akhir
Menyetujui,
(Nurani, ST. MMSI) Pembimbing II Tugas Akhir
Mengesahkan,
(Abdusy Syarif, ST.,MT) Ketua Program Studi
Teknik Informatika
Mengetahui,
(Raka Yusuf, ST., MTI) Koordinator Tugas Akhir
Dengan memanjatkan puji syukur kepada Allah SWT, atas rahmat dan izin-Nya penulis telah dapat menyelesaikan laporan Tugas Akhir ini. Laporan Tugas akhir yang telah penulis susun berjudul ”Pengembangan Aplikasi Permainan Kapal Perang (Battleship)”.
Penulisan Tugas Akhir ini dapat terwujud karena adanya motivasi dan bantuan dari berbagai pihak. Dalam kesempatan ini dengan tulus dan ikhlas penulis mengucapkan terima kasih kepada:
1. Penulis mengucapkan terima kasih kepada kedua orang tua yang telah memberi semangat dan do’a yang tiada henti untuk dapat menyelesaikan tugas akhir ini. 2. Bapak Joko Adianto MInfSys, selaku pembimbing ke I bagi penulis yang dengan
sabar telah membimbing, mengarahkan, dan memberi semangat untuk segera menyelesaikan Tugas Akhir ini.
3. Ibu Nurani, ST, MMSI, selaku pembimbing ke II bagi penulis yang dengan sabar telah membimbing dan mengarahkan penulis dalam menyusun Tugas Akhir ini serta memberi semangat untuk segera menyelesaikan laporan ini.
4. Bapak Abdusy Syarif, ST., MT., selaku Ketua Program Studi Teknik Informatika Universitas Mercu Buana
5. Bapak Raka Yusuf, ST., MTI., selaku pembimbing akademik penulis dan koordinator Tugas Akhir di Program Studi Teknik Informatika Universitas Mercu Buana yang telah membantu penulis dalam memberi ide-ide dalam melakukan analisis kebutuhan sistem.
akhir ini.
7. Penulis mengucapkan terima kasih kepada adik saya Teti Nurfaedah A.Md, dan Fery Fadhilah yang telah memberikan dukungan supaya penulis dapat menyelesaikan laporan tugas akhir ini.
8. Penulis mengucapkan terima kasih kepada Ryan Andriatno, SKom. Suseno Yusuf Ilhami, SKom, Respati Hanantyo, Chandra Nugroho, Agung, yang telah membantu dan memberikan dukungan supaya penulis dapat menyelesaikan laporan tugas akhir ini.
9. Seluruh teman-temanku di Jakarta, termasuk para mahasiswa Universitas Mercu Buana jurusan Teknik Informatika angkatan 2002.
10.Seluruh pihak yang tidak dapat penulis sebutkan namanya satu persatu, terima kasih atas bantuan, do’a, dan dukungannya hingga terselesaikannya penyusunan Tugas Akhir ini semoga kalian semua dirahmati Allah SWT.
Penulis menyadari bahwa laporan Tugas Akhir ini masih jauh dari sempurna. Untuk itu penulis selalu terbuka terhadap segala saran dan kritik yang bersifat membangun. Demikian penulis berharap semoga laporan Tugas Akhir ini dapat bermanfaat.
Jakarta, Agustus 2008
Rudi Setiyadi
Abstrak ... ii
Abstract ... iii
Lembar Pengesahan ... iv
Kata Pengantar ... v
Daftar Isi ... vii
Daftar Gambar... xi
Daftar Tabel ... xiii
Daftar Kode... xiv
BAB I : PENDAHULUAN ... 1
1.1 Latar Belakang ... 1
1.2 Perumusan masalah... 2
1.3 Tujuan Pembahasan ... 3
1.4 Ruang Lingkup... 3
1.5 Metodologi Rekayasa Perangkat Lunak... 4
1.6 Sistematika Penulisan ... 5
BAB II : LANDASAN TEORI... 6
2.1Pengertian Permainan Komputer ... 6
2.1.1 Sejarah Singkat Permainan Komputer ... 6
2.2Model Waterfall ... 7
2.3Unified Modeling Language ... 9
2.3.1 Diagram Use Case (Use Case Diagram) ... 11
2.3.2 Class Diagram ... 14
2.3.4 Diagram Aktifitas (Activity Diagram) ... 17
2.3.5 Diagram Deploymen (Deployment Diagram)... 19
2.4Pengantar Algoritma ... 20
2.5Diagram Alur (Flowchart) ... 20
2.6Pengantar Visual Basic 6.0 ... 22
2.6.1 Koordinat Grafik dalam Visual Basic 6.0 ... 22
2.6.2 Win32 Application Programming Interface (Win32 API).... 23
2.6.3 Teknik Masking ... 24
BAB III : ANALISIS DAN PERANCANGAN ... 27
3.1 Analisis Masalah ... 27
3.1.1 Spesifikasi Kebutuhan Sistem... 28
3.1.2 Parameter Keberhasilan ... 29
3.2 Diagram Use Case... 29
3.3 Struktur Tabel ... 32
3.4 Class Diagram ... 32
3.5 Diagram Sekuensial ... 34
3.6 Diagram Aktifitas... 37
3.7 Diagram Deploymen ... 40
3.8 Algoritma Perhitungan Skor ... 41
3.9 Diagram Alur (Flowchart) ... 41
3.10 Perancangan Antarmuka Permainan ... 42
3.10.1 Perancangan Jendela Inisialisasi ... 43
3.10.4 Perancangan Jendela petunjuk ... 45
3.10.5 Perancangan Jendela nama... 46
3.10.6 Perancangan Jendela ranking ... 47
BAB IV : IMPLEMENTASI DAN PENGUJIAN ... 48
4.1 Implementasi ... 48
4.1.1 Lingkungan Implementasi... 48
4.1.2 Pengkodean ... 49
4.1.3 Antarmuka Permainan... 56
4.1.3.1 Tampilan jendela Inisialisasi... 56
4.1.3.2 Tampilan jendela Meletakkan Kapal Perang ... 57
4.1.3.3 Tampilan jendela Permainan... 58
4.1.3.4 Tampilan jendela Petunjuk... 59
4.1.3.5 Tampilan jendela Nama ... 60
4.1.3.4 Tampilan jendela Ranking ... 60
4.2 Pengujian... 61
4.2.1 Metode Pengujian ... 61
4.2.2 Pengujian Basis Path ... 62
4.2.3 Skenario Pengujian... 64
4.2.2 Hasil Pengujian ... 65
4.2.5 Analisis Hasil Pengujian ... 66
BAB V : PENUTUP... 68
5.1 Kesimpulan ... 68
Lampiran ... L1
Tabel 2.1 Tipe diagram UML ... 10
Tabel 2.2 Notasi-notasi dalam diagram Use Case menurut Booch, Rumbaugh, dan Jacobson ... 12
Tabel 2.3 Notasi dalam pemodelan diagram Sekuensial ... 15
Tabel 2.4 Simbol-simbol yang sering digunakan pada diagram Aktifitas ... 17
Tabel 2.5 Notasi pada diagram Deployment... 19
Tabel 3.1 Kebutuhan sistem, aktor dan use case pada aplikasi permainan kapal perang (Battleship)………...28
Tabel 3.2 Tabel Ranking ... 32
Tabel 4.1 Tabel pengujian white box pada grafik alir meletakkan kapal perang... 63
Tabel 4.2 Tabel Jalur pengujian white box pada grafik alir set kapal perang secara horizontal dan vertical………63
Tabel 4.3 Tabel pengujian white box pada grafik alir mengumpulkan nilai (score)64 Tabel 4.4 Tabel skenario pengujian ... 65
Tabel 4.5 Tabel hasil pengujian ... 66
Gambar 2.1 Model Waterfall ... 9
Gambar 2.2 Contoh diagram Use Case sistem ATM... 13
Gambar 2.3 Class diagram dan sintaksnya ... 14
Gambar 2.4 Contoh diagram Sekuensial (Dennis dkk, 2005:239) ... 16
Gambar 2.5 Macam-macam Flow & Edge ... 18
Gambar 2.6 Contoh diagram Aktifitas terima order barang ... 18
Gambar 2.7 Contoh diagram Deployment system klien/server ... 20
Gambar 2.8 Simbol-simbol diagram alur (Jogiyanto, 2005:796-798)... 21
Gambar 2.9 Penggunaan simbol-simbol proses flowchart... 21
Gambar 2.10 Sistem koordinat pada Visual Basic... 23
Gambar 2.11 Gambar sumber dan gambar Mask... 24
Gambar 2.12 Menampilkan obyek tanpa teknik Masking ... 25
Gambar 2.13 Contoh penggunaan BitBlt untuk teknik Masking... 25
Gambar 2.14 Menampilkan obyek dengan teknik Masking ... 25
Gambar 3.1 Diagram Use Case permainan pesawat perang (Battleship) ... 29
Gambar 3.2 Class Diagram pada aplikasi permainan Battleship ... 33
Gambar 3.3 Diagram Sekuensial untuk Use Case memulai permainan... 35
Gambar 3.4 Diagram Sekuensial untuk Use Case mengumpulkan nilai (score) ... 36
Gambar 3.5 Diagram Aktifitas untuk Use Case memulai permainan... 37
Gambar 3.6 Diagram Aktifitas untuk Use Case mengumpulkan nilai (score)... 39
Gambar 3.7 Diagram Deployment dari aplikasi permainan Battleship ... 40
Gambar 3.8 Diagram alur perhitungan nilai (skor)... 42
Gambar 3.11 Perancangan jendela permainan ... 45
Gambar 3.12 Perancangan jendela petunjuk... 46
Gambar 3.13 Perancangan jendela nama ... 46
Gambar 3.14 Perancangan jendela ranking... 47
Gambar 4.1 Tampilan jendela inisialisasi ... 56
Gambar 4.2 Tampilan jendela meletakkan kapal perang yang belum terisi kapal perang... 57
Gambar 4.3 Tampilan jendela meletakkan kapal perang yang sudah terisi kapal perang... 57
Gambar 4.4 Tampilan jendela permainan ... 58
Gambar 4.5 Tampilan jendela ledakan yang terjadi karena proses tembakan dari pemain... 59
Gambar 4.6 Tampilan jendela petunjuk ... 59
Gambar 4.7 Tampilan jendela nama ... 60
Gambar 4.8 Tampilan jendela ranking... 60
Gambar 4.9 Bagan alir meletakkan kapal perang ... 62
Gambar 4.10 Grafik alir meletakkan kapal perang ... 62
Gambar 4.11 Bagan alir set kapal perang secara horizontal dan vertical ... 63
Gambar 4.12 Grafik alir set kapal perang secara horizontal dan vertical ... 63
Gambar 4.13 Bagan alir mengumpulkan nilai (score) ... 64
Gambar 4.14 Grafik alir mengumpulkan nilai (score) ... 64
BAB I PENDAHULUAN
1.1 Latar Belakang
Perangkat komputer saat ini tidak hanya digunakan untuk keperluan pekerjaan saja, namun juga telah digunakan sebagai alat hibur digital. Salah satu hiburan yang dapat dinikmati melalui perangkat komputer dan saat ini sedang digemari oleh anak-anakda dewasa adalah aplikasi permainan (computer game). Program aplikasi permainan pada komputer hingga saat ini telah menjadi bagian yang tak terpisahkan dari para pengguna komputer. Banyak pengguna komputer yang penulis temui menghabiskan waktu mereka di depan komputer untuk bermain program aplikasi permainan selama berjam-jam. Program aplikasi permainan menjadi wujud perpaduan antara ilmu dan seni, dan memiliki potensi media dalam memperkenalkan budaya, ide, pendidikan, dan kreativitas.
Seiring dengan beraneka ragamnya permainan komputer saat ini, dari permainan komputer 2D hingga 3D yang kompleks dan tidak jarang pula permainan komputer yang sangat rumit alur permainannya membuat bosan para penggunanya, maka penulis akan membuat sebuah permainan komputer sederhana dengan objek kapal perang yang dapat dipelajari dengan mudah oleh pemula dibidang pemrograman komputer dan dapat dijadikan alternatif bagi para penggemar permainan komputer. Salah satu alasan mengapa permainan komputer merupakan proyek pemrograman yang bagus adalah pembuatan program aplikasi permainan membutuhkan individu yang sangat kreatif. Selain hal tersebut, membuat program aplikasi permainan memberikan wawasan keahlian pemrograman yang sangat luas bagi pemula maupun bagi yang sudah mahir. Diantara keahlian tersebut yaitu kemampuan merancang antarmuka permainan, kemampuan grafika komputer, membuat kecerdasan buatan, membuat simulasi fisik, menggubah musik, optimisasi kode sumber, dan lain sebagainya.
Dalam membuat program permainan komputer tersebut, penulis menggunakan bahasa pemrograman Visual Basic 6.0 edisi profesional.
1.2 Perumusan Masalah
Terciptanya sebuah pengembangan program permainan komputer menggunakan Visual Basic versi 6.0 dengan menyertakan fungsi Win32 Application Programming Interface (Win32 API) yaitu fungsi yang terkandung dalam berbagai berkas bertipe *.dll di dalam sistem operasi Windows yang menjadi tulang punggung sistem operasi tersebut.
1.3 Tujuan Pembahasan
Tujuan yang ingin dicapai dalam penulisan Tugas Akhir ini adalah untuk menghasilkan sebuah pengembangan aplikasi permainan komputer dengan objek kapal perang yang berjalan pada komputer berbasis sistem operasi Windows khususnya Windows XP Profesional.
1.4 Ruang Lingkup
Permasalahan yang diangkat dalam penulisan Tugas Akhir ini adalah bagaimana mengembangkan sebuah program permainan komputer kapal perang dengan menggunakan bahasa pemrograman Visual Basic versi 6.0 dan fungsi Win32 API. Proses awal pembuatan program permainan kapal perang tersebut yaitu dengan memasukan gambar latar, gambar objek kapal pemain, deteksi mouse terhadap objek, dan memasukkan suara (suara efek) ke dalam pembuatan permainan komputer tersebut sehingga permainan tersebut dapat dimainkan dan dinikmati oleh pengguna komputer. Program permainan yang akan dibangun hanya dapat dimainkan oleh satu orang pemain. Perolehan nilai (score) disimpan ke dalam basis data dan akan ditampilkan ke dalam ranking.
Diluar hal-hal yang disebutkan diatas, termasuk pembahasan mengenai kecerdasan buatan dan DirectX adalah diluar penulisan Tugas Akhir ini, karena penulis tidak menggunakan kecerdasan buatan dan DirectX di dalam pembuatan program permainan tersebut.
1.5 Metodologi Rekayasa Perangkat Lunak
Metodologi rekayasa perangkat lunak yang digunakan oleh penulis dalam laporan Tugas Akhir ini adalah dengan menggunakan model Waterfall. Model Waterfall memiliki beberapa tahapan yaitu:
1. Analisis
Pada tahap ini penulis menentukan kebutuhan fungsional dari program permainan yang akan dibangun menggunakan alat pemodelan Unified Modeling Language (UML) khususnya dengan diagram Use Case, diagram Sequensial, diagram Aktivitas.
2. Perancangan
Pada tahap ini penulis melakukan perancangan antarmuka dari aplikasi yang akan dibuat sesuai dengan kebutuhan hasil tahap analisis.
3. Implementasi
Pada tahap ini hasil tahap perancangan diimplementasikan melalui proses pengkodean menggunakan Microsoft Visual Basic versi 6.0.
4. Pengujian
Setelah pembuatan program permainan selesai, maka program permainan tersebut diuji untuk mengetahui sesuai tidaknya dengan kebutuhan pada tahap analisis.
5. Penggunaan dan Perawatan
Dalam penulisan Tugas Akhir ini, penulis tidak menyertakan tahap penggunaan dan perawatan dikarenakan pembuatan program permainan kapal perang ini hanya sampai pada tahap pengujian.
1.6 Sistematika Penulisan
Laporan Tugas Akhir ini disusun dengan sistematika terstruktur. Lima (5) bab yang disusun agar pembaca dapat memahami secara jelas pokok pembahasan penulis. Sistematika penulisannya adalah sebagai berikut:
BAB I : PENDAHULUAN
Bab ini menguraikan latar belakang penulisan, perumusan masalah, tujuan pembahasan, ruang lingkup, metodologi rekayasa perangkat lunak, dan sistematika penulisan.
BAB II : LANDASAN TEORI
Pada bab ini akan dijelaskan mengenai teori-teori dasar yang digunakan dalam merancang dan membangun program permainan komputer dalam penulisan Tugas Akhir ini.
BAB III : ANALISIS DAN PERANCANGAN
Bab ini menjelaskan mengenai analisis masalah dan proses perancangan dari program permainan yang akan dibangun sehingga siap untuk diimplementasikan menggunakan bahasa pemrograman Visual Basic versi 6.0.
BAB IV : IMPLEMENTASI DAN PENGUJIAN
Bab ini menjelaskan mengenai proses pengkodean, tampilan antarmuka sistem, dan pengujian sistem.
BAB V : PENUTUP
Bab ini merupakan bagian akhir dari penulisan Tugas Akhir ini yang berisi kesimpulan dan saran-saran yang mengarah kepada pengembangan program permainan yang dibuat.
BAB II
LANDASAN TEORI
2.1 Pengertian Permainan Komputer
Permainan komputer (computer game) atau disebut juga dengan permainan video (video game) adalah sebuah program yang ditulis dalam sebuah bahasa pemrograman, seperti C++ atau Visual Basic, yang mengijinkan seorang pemain berinteraksi dan bereaksi terhadap kejadian-kejadian di dalam sebuah dunia imajinasi (Harbour, 2002:16).
2.1.1 Sejarah Singkat Permainan Komputer
Permainan komputer pertama kali dibuat pada tahun 1966 oleh Ralph Baer bersama dengan 500 insinyur dan teknisi. Permainan yang diproduksi oleh Baer hanya dapat dimainkan pada komputer berharga US$ 40.000. Siapakah yang mau mendanai proyek Baer tersebut? Jawabannya adalah pihak militer Amerika Serikat, Pentagon.
Pada tahun 1965, Pentagon datang kepada Baer dan meminta dibuatkan simulasi komputer yang dapat membantu pasukan militer Amerika Serikat untuk belajar strategi dan mengukur kemampuan refleks. Proyek ini dikerjakan dengan tingkat pengamanan yang tinggi ditengah situasi perang dingin saat itu.
Setelah satu bulan bekerja keras, Baer berhasil menampilkan dua titik putih yang berkejar-kejaran di layar monitor. Hal ini membuat pihak militer kagum dan memberikan dana jauh lebih besar kepada Baer sehingga ia dapat menyewa asisten lebih banyak. Tim Baer berhasil membuat permainan antara papan dan bola yang pada akhir tahun 1966 dipresentasikan di depan pejabat Pentagon. Ternyata hal tersebut tidak membuat Pentagon tertarik sehingga Baer kemudian berusaha memperoleh izin agar memproduksi mesin permainan secara komersial.
Pada tahun 1970, Bill Enders yang tergabung dalam perusahaan Magnavox berusaha meyakinkan eksekutif perusahaannya untuk memberikan kesempatan kepada Baer dan mesin permainannya. Hasilnya adalah munculnya permainan video (video game) komersial pertama yaitu Magnavox Odyssey yang terjual lebih dari 100.000 unit dengan harga US$ 100 per unit (Hakim, 2003:1).
2.2 Model Waterfall
Salah satu metodologi untuk merancang sistem-sistem perangkat lunak adalah model Waterfall. Pendekatan model Waterfall berupaya membangun suatu lingkungan yang sangat terstruktur dimana proses pengembangan dilaksanakan secara sekuensial. Model Waterfall terdiri dari dari beberapa tahap yaitu:
1. Analisis
Tahap pengembangan rekayasa perangkat lunak dimulai dengan analisis yang sasaran utamanya adalah mengidentifikasikan apa yang harus mampu dilaksanakan oleh sistem yang diajukan.
2. Perancangan
Apabila analisis menitikberatkan pada apa yang harus mampu dilakukan oleh sistem yang diajukan, perancangan menitikberatkan pada bagaimana sistem melakukan hal tersebut. Pada tahap inilah struktur sistem perangkat lunak dibangun.
3. Implementasi
Implementasi melibatkan penulisan aktual program-program, pembuatan berkas-berkas data, dan pengembangan basis data.
4. Pengujian
Pengujian sangat terkait erat dengan implementasi, karena setiap modul sistem biasanya diuji ketika diimplementasikan.
5. Penggunaan dan modifikasi/perawatan
Dalam penulisan Tugas Akhir ini, penulis tidak menyertakan tahap penggunaan dan perawatan karena pembuatan program permainan hanya sampai pada tahap pengujian. Gambar 2.1 memperlihatkan metodologi pengembangan rekayasa perangkat lunak model Waterfall (Brookshear, 2003:284).
Pengembangan perangkat lunak Analisis Perancangan Implementasi Pengujian Penggunaan Perawatan
Gambar 2.1. Model Waterfall
2.3 Unified Modeling Language (UML)
Pengembangan sistem adalah aktifitas manusia. Tanpa adanya kemudahan untuk memahami notasi, proses pengembangan sistem kemungkinan besar akan mengalami kesalahan. Unified Modeling Language (selanjutnya disebut dengan UML) adalah sistem notasi yang sudah dibakukan di dunia pengembangan sistem, hasil kerja bersama dari Grady Booch, James Rumbaugh, dan Ivar Jacobson.
Menurut Munawar(2005:17)UMLadalah alat bantu yang sangat handal di dunia pengembangan sistem yang berorientasi obyek. Hal ini disebabkan karena UML menyediakan bahasa pemodelan visual yang memungkinkan bagi pengembang sistem untuk membuat cetak biru atas visi mereka dalam bentuk yang baku, mudah dimengerti serta dilengkapi dengan mekanisme yang efektif untuk berbagi dan mengkomunikasikan rancangan mereka dengan klien, programmer, dan tiap orang yang terlibat dalam proses pengembangan tersebut.
Paling tidak ada tiga karakter penting yang melekat di UML, yaitu sketsa, cetak biru, dan bahasa pemrograman. Sebagai sebuah sketsa, UML bisa berfungsi sebagai jembatan dalam mengkomunikasikan beberapa aspek dari sistem. Dengan demikian sebuah tim akan mempunyai gambaran yang sama tentang suatu sistem. UML bisa berfungsi sebagai sebuah cetak biru karena sangat lengkap dan detil. Dengan cetak biru ini maka akan bisa diketahui informasi detil tentang pengkodean program atau bahkan membaca program dan menginterpretasikannya kembali ke dalam diagram. Sebagai sebuah bahasa pemrograman, UML dapat menterjemahkan diagram yang ada di UML menjadi kode program yang siap untuk dijalankan.
Di proyek pengembangan sistem apapun, fokus utama dalam analisis dan perancangan adalah model dan diagram. Model menggambarkan pandangan yang lengkap tentang suatu sistem pada suatu tahapan tertentu dan dari perspektif tertentu. Sedangkan diagram menggambarkan atau mendokumentasikan beberapa aspek dari sebuah sistem. Sebuah model mungkin mengandung satu atau lebih diagram. untuk model sederhana, satu diagram mungkin akan mencukupi. Akan tetapi biasanya sebuah model terdiri dari banyak diagram. Tabel 2.1 menampilkan beberapa tipe diagram UML.
Tabel 2.1. Tipe diagram UML
No Diagram Tujuan
1. Activity Perilaku prosedural & paralel
2. Class Class, fitur dan relasinya
3. Communication Interkasi diantara obyek. Lebih menekankan ke link
4. Component Struktur dan koneksi dari komponen
5. Composite Structure Dekomposisi sebuah class saat runtime
6. Deployment Penyebaran/instalasi ke klien
7. Interaction Overview Gabungan antara Activity & Sequence diagram
8. Object Contoh konfigurasi instance
9. Package Struktur hierarki saat kompilasi
10. Sequence Interaksi antar obyek. Lebih menekankan pada urutan
11. State Machine Bagaimana event mengubah sebuah obyek
12. Timing Interaksi antar obyek. Lebih menekankan pada waktu
Pada penulisan Tugas Akhir ini, diagram UML yang akan dibahas adalah diagram Use Case (Use Case diagram) untuk mendefinisikan kebutuhan fungsional dari aplikasi permainan yang akan dibangun, diagram State Machine (State Machine diagram) untuk menelusuri kejadian yang diterima obyek, diagram Sekuensial (Sequence diagram) untuk menggambarkan perilaku sistem, diagram Aktifitas (Activity diagram) untuk menunjukkan operasi sebuah obyek, dan diagram Deploymen (Deployment diagram) untuk melihat sistem secara fisik.
2.3.1 Diagram Use Case (Use Case Diagram)
Use Case adalah deskripsi fungsi dari sebuah sistem dari perspektif pengguna. Use Case bekerja dengan cara mendeskripsikan tipikal interaksi antara pengguna sebuah sistem dengan dengan sistemnya sendiri melalui sebuah cerita bagaimana sebuah sistem dipakai. Urutan langkah-langkah yang menerangkan antara pengguna dan sistem disebut skenario. Setiap skenario mendeskripsikan urutan kejadian. Setiap urutan diinisialisasi oleh orang, sistem yang lain, perangkat keras, atau urutan waktu. Dengan demikian secara singkat Use Case adalah serangkaian skenario yang digabungkan secara bersama-sama oleh tujuan umum pengguna.
Dalam pembicaraan tentang Use Case, pengguna biasanya disebut dengan aktor. Aktor adalah sebuah peran yang bisa dimainkan oleh pengguna dalam interaksinya dengan sistem. Aktor mewakili peran orang, sistem yang lain, atau alat ketika berkomunikasi dengan Use Case. Di dalam Use Case terdapat Stereotype yaitu sebuah model khusus yang terbatas untuk kondisi tertentu. Untuk menunjukkan Stereotype digunakan simbol ”<<” diawalnya dan ditutup ”>>” diakhirnya. <<include>> digunakan untuk menggambarkan bahwa suatu Use Case seluruhnya
merupakan fungsionalitas dari Use Case lainnya. Biasanya <<include>> digunakan untuk menghindari penggandaan suatu Use Case karena sering dipakai. <<extend>> digunakan untuk menunjukkan bahwa suatu Use Case merupakan tambahan fungsional dari Use Case yang lain jika kondisi atau syarat tertentu dipenuhi (Munawar, 2005:66).
Di dalam Use Case juga terdapat generalisasi. Generalisasi diantara aktor adalah spesialisasi aktor yang bisa berpartisipasi di semua Use Case yang diasosiasikan dengan aktor yang lebih umum. Tabel 2.2 menampilkan notasi-notasi dalam pemodelan diagram Use Case menurut Booch dkk (1998:187). Sedangkan contoh dari diagram Use Case diperlihatkan oleh Gambar 2.2.
Tabel 2.2. Notasi-notasi dalam pemodelan diagram Use Case menurut Booch dkk
No. Notasi Keterangan
1. Aktor
2. Use Case
3. Batas sistem (system boundary)
4. Garis penghubung (pengendali arah)
5. Gabungan (association)
6. Generalisasi (generalization)
7. Realisasi (realization)
Nama sistem
8. Stereotype penyertaan (include)
9. Stereotype perluasan (extend)
<< include >>
ATM System
Gambar 2.2. Contoh diagram Use Case sistem ATM
(www.sparxsystems.com/resources/uml2_tutorial/uml2_usecasediagram.html)
Menurut Munawar (2005:179) setiap Use Case harus didokumentasikan dalam dokumen yang disebut dengan dokumen flow of event. Dokumen ini mendefinisikan apa yang harus dilakukan oleh sistem ketika Aktor mengaktifkan Use Case. Struktur dari dokumen Use Case bisa bermacam-macam, tetapi umumnya deskripsi Use Case ini setidaknya harus mengandung:
a. Deskripsi singkat b. Aktor yang terlibat
c. Pra kondisi, kondisi yang penting bagi Use Case untuk memulai d. Deskripsi rinci dari aliran kejadian yang mencakup:
1. Tindakan utama dari kejadian 2. Tindakan alternatif dari kejadian
e. pasca kondisi, yang menjelaskan status dari sistem setelah Use Case berakhir. Withdraw
<<include>>
Card identification
2.3.2 Class Diagram
Menurut Martin Fowler (2005:53) diagram kelas mendeskripsikan jenis – jenis objek dalam sistem dan berbagai macam hubungan statis yang terdapat di antara mereka. Diagram kelas juga menunjukan properti dan operasi sebuah kelas dan batasan – batasan yang terdapat dalam hubungan – hubungan objek tersebut.
Diagram kelas juga menggambarkan struktur dan deskripsi kelas, package dan objek beserta hubungan satu sama lain seperti generalization, realization, association, dan agregation. Dimana generalization adalah hubungan superclass dengan subclass atau parent dengan child, realization adalah dimana sebuah class harus mengikuti aturan class lainnya, association adalah hubungan structural antar class dan aggregation adalah hubungan antar class, dimana class yang satu adalah bagian dari class yang lainnya. Berikut pada Gambar 2.3 adalah contoh diagram kelas beserta sintaksnya.
2.3.3 Diagram Sekuensial (Sequence Diagram)
Diagram sekuensial digunakan untuk menggambarkan perilaku pada sebuah skenario. Diagram ini menunjukkan sejumlah contoh obyek dan pesan (message) yang diletakkan diantara obyek-obyek ini di dalam Use Case (Munawar, 2005:87).
Komponen utama diagram sekuensial terdiri atas obyek atau disebut juga peserta (participant) yang dituliskan dengan kotak segi empat bernama, pesan diwakili oleh garis dengan tanda panah, dan waktu yang ditunjukkan dengan garis tegak lurus. Setiap obyek terhubung dengan garis titik-titik yang disebut garis hidup (lifeline). Sepanjang garis hidup terdapat kotak yang disebut penggerakan (activation). Tabel 2.3 memperlihatkan notasi-notasi dalam pemodelan diagram Sekuensial. Contoh diagram Sekuensial ditunjukkan oleh Gambar 2.4.
Tabel 2.3. Notasi-notasi dalam pemodelan diagram Sekuensial
No. Notasi Keterangan
1. Aktor 2. Obyek 3. Batas (boundary) 4. Kendali (control) 5. Entitas (entity) 6. Penggerakan (activation)
7. Garis hidup (lifeline)
8. Pesan selaras (Synchronous message)
9. Pesan tidak selaras (Asynchronous message)
10. Pesan kembali yang tidak selaras (asynchronous
return message)
11. Pesan rekursif (self message)
12. Pesan hilang (lost message)
13. Pesan ditemukan (found message)
14. Pesan pembuatan obyek baru
15. Pesan penghapusan obyek
New
Gambar 2.4. Contoh diagram Sekuensial (Dennis dkk, 2005:239)
aPatient Request Appt() aReceptionist Patient: List UnPaindBills: List Appointments: List LookUpPatient() anAppt: Appointments New,Cancel, or Change Appt?() [PatientExist] LookUpBills() ApptTimes?() Match Appt() Create Appt()
2.3.4 Diagram Aktifitas (Activity Diagram)
Diagram Aktifitas adalah teknik untuk mendeskripsikan logika prosedural, proses bisnis, dan aliran kerja dalam banyak kasus. Diagram Aktifitas mempunyai peran seperti halnya bagan alir (Flowchart), akan tetapi perbedaannya dengan bagan aliradalah diagram Aktifitasdapat mendukung perilaku paralel sedangkan bagan alir tidak bisa (Munawar 2005:109).
Tabel 2.4 memperlihatkan simbol-simbol yang sering digunakan pada saat pembuatan diagram Aktifitas. Sedangkan contoh dari penggunaan simbol-simbol yang terdapat pada Tabel 2.4 ditunjukkan oleh Gambar 2.5.
Tabel 2.4. Simbol-simbol yang sering digunakan pada diagram Aktifitas
No Simbol Keterangan
1. Titik awal
2. Titik akhir
3. Aktifitas (activity)
4. Pilihan untuk mengambil keputusan
5. Fork; digunakan untuk menunjukkan kegiatan yang
dilakukan secara paralel atau untuk menggabungkan dua kegiatan paralel menjadi satu
6. Rake; menunjukkan adanya dekomposisi
7. Tanda waktu
8. Tanda pemgiriman
9. Tanda penerimaan
Untuk mendeskripsikan hubungan diantara dua aktifitas biasanya digunakan Flow
Semua bentuk setara. Semua bisa
digun
& Edge. Ada empat cara yang bisa digunakan untuk menghubungkan dua aktifitas yang ditunjukkan oleh Gambar 2.5.
Gambar 2.5. Macam-macam Flow & Edge
Terima faktur Buat pembayaran
Terima faktur A A Buat pembayaran
konektor
hubungan pada Gambar 2.6 adalah
akan sesuai dengan keperluan. Dalam banyak kasus cara yang pertama/paling atas adalah yang paling sering dipakai (Munawar, 2005:115).
Gambar 2.6. Contoh diagram Aktifitas terima order barang
Terima order
isi order Kirim invoice
Regular delivery
Overnight delivery Terima
pembayaran
close order
Terima faktur Order Buat pembayaran
2.3.5 Diagram Deploymen (Deployment Diagram)
sebuah sistem secara fisik, menam
a perangkat keras adalah node, yaitu nama umum untuk semua jenis
ndung Artifact, dimana Artifact adalah perwujudan fisik dari peran
Diagram Deploymen menunjukkan tata letak
pakkan bagian-bagian perangkat lunak yang berjalan pada bagian-bagian perangkat keras.
Bagian utam
sumber komputasi. Ada dua tipe node yang mungkin. Prosesor adalah node yang bisa mengeksekusi sebuah komponen, sedangkan Device tidak. Device adalah perangkat keras (seperti printer atau monitor) yang biasanya menjadi antarmuka dengan dunia luar.
Node menga
gkat lunak, biasanya berbentuk berkas. Berkas-berkas ini biasanya dapat dieksekusi (seperti: berkas bertipe .EXE, .JAR, binner, Assembly, dan lain-lain), atau berkas-berkas data, berkas-berkas konfigurasi, dokumen berbasis web seperti HTML, dan lain-lain. Daftar sebuah Artifact di dalam sebuah node menunjukkan bahwa Artifact tersebut disebar (deployed) ke node tersebut pada saat sistem sedang dijalankan (Munawar, 2005:125). Notasi-notasi yang digunakan pada diagram Deploymen ditunjukkan oleh Tabel 2.5.
Tabel 2.5. Notasi pada diagram Deploymen
No Simbol Keterangan
1. Node
2. Koneksi (association)
Sedangkan contoh penerapan diagram Deploymen ditunjukkan oleh Gambar 2.7 ya
.4 Pengantar Algoritma
an langkah-langkah logis penyelesaian masalah yang disu
2.5 iagram Alur (Flowchart)
kan alur di dalam program atas prosedur sistem secara
itu diagram Deploymen pemodelan sebuah sistem klien/server (Booch dkk, 1998:343).
Gambar 2.7. Contoh diagram Deploymen sistem klien/server
2
Algoritma adalah urut
sun secara sistematis. Kata logis merupakan kata kunci dalam sebuah algoritma. Langkah-langkah di dalam algoritma harus logis, ini berarti hasil dari urutan langkah-langkah tersebut harus dapat ditentukan benar atau salah.
D
Diagram alur menunjuk
logika. Diagram alur digunakan terutama untuk alat bantu komunikasi dan untuk dokumentasi (Jogiyanto, 2005:795). Simbol-simbol tersebut dapat dilihat pada Gambar 2.8.
Gambar 2.8. Simbol-simbol diagram alur (Jogiyanto, 2005:796-798)
Berikut adalah gambar sebuah dasar diagram alir sebagai contoh dari penggunaan simbol-simbol yang telah diberikan, lihat Gambar 2.9
7 Choice 3 Action 6 Action YES 5 Action NO YES 7 Choice 8 End 4 Action NO 1 Start
2.6 Pengantar Visual Basic 6.0
Visual Basic 6.0 merupakan sebuah bahasa pemrograman komputer yang berjalan pada sistem operasi Windows. Bahasa pemrograman adalah sekumpulan perintah/instruksi yang dimengerti oleh komputer untuk mengerjakan tugas-tugas tertentu (Yuswanto, 2003:1). Visual Basic (dalam penulisan Tugas Akhir ini yang dimaksud oleh penulis dengan Visual Basic adalah Visual Basic versi 6.0) adalah pemimpin diantara bahasa tingkat tinggi dalam dukungannya dengan paradigma kejadian terkontrol (event-driven paradigm) dan pengembangan aplikasi secara cepat (rapid application development). Secara khusus, popularitas Visual Basic terlihat dalam banyak segi pengembangan aplikasi, seperti aplikasi pengaksesan basis data, purwarupa antarmuka pengguna secara grafis (graphical user interface), pembuatan komponen yang terdistribusi (distributable components), pemrograman berbasis internet (internet scripting), perancangan aplikasi Client/Server, dan bahkan pengembangan aplikasi permainan (Vine, 2001:1).
2.6.1 Koordinat Grafik dalam Visual Basic 6.0
Grafik merupakan salah satu bagian yang sangat penting di dalam program aplikasi permainan. Grafik yang bagus dan animasi yang halus merupakan kunci program aplikasi permainan yang menarik. Visual Basic menangani grafik secara baik, sehingga memungkinkan kita untuk membuat program aplikasi permainan yang memiliki gambar yang menarik.
Berbeda dengan koordinat kartesian, dalam Visual Basic sistem koordinat yang digunakan memiliki titik (0,0) pada posisi kiri atas seperti yang diperlihatkan pada Gambar 2.10.
x,y
Gambar 2.10. Sistem koordinat pada Visual Basic
Satuan yang digunakan dalam koordinat Visual Basic ini secara standar (default) adalah Twips, dimana 1 Twip = 1/1440 inchi. Satuan ini menyulitkan dalam perhitungan, sehingga dalam program aplikasi permainan yang akan dibangun menggunakan satuan Pixel yang lebih umum dikenal. Pixel merupakan titik dalam monitor, misal pada resolusi 800 x 600 Pixel, maka pada koordinat X akan terdapat 800 titik dan pada koordinat Y akan terdapat 600 titik (Hakim, 2003:7).
2.6.2 Win32 Application Programming Interface (Win32 API)
Bahasa Visual Basic menyediakan sekumpulan fungsi, perintah, dan objek yang kaya. Tetapi di dalam banyak kasus, kumpulan fungsi, perintah, dan objek tersebut tidak dapat memenuhi semua kebutuhan seorang pemrogram profesional. Pemogram yang sudah mahir telah belajar untuk mengatasi masalah keterbatasan bahasa Visual Basic tersebut dengan memanggil secara langsung satu atau lebih fungsi Win32 Application Programming Interface (selanjutnya disebut dengan Win32 API). Win32 API merupakan fungsi yang terkandung dalam berbagai berkas
Dynamic Link Library (berkas bertipe *.dll, selanjutnya disebut dengan DLL) di dalam sistem operasi Windows yang menjadi tulang punggung sistem operasi tersebut (Hakim, 2003:13).
Dynamic Link Library (DLL) adalah kode yang telah disusun yang hanya dapat diakses oleh program lain pada tingkat pemrograman (programming level). Di dalam sistem operasi Windows terdapat lebih dari 2000 fungsi Win32 API yang digunakan untuk melakukan semua jenis layanan sistem operasi Windows. Pengguna akhir (end user) tidak dapat mengakses fungsi-fungsi tersebut. Tetapi, pemrogram dapat mengakses kode yang ditulis dalam DLL melalui Win32 API dan menggunakan kode-kode tersebut di dalam program mereka (Reselman, 1999:23).
2.6.3 Teknik Masking
Mask dalam Visual Basic adalah gambar hitam putih dimana daerah hitam menunjukkan posisi/tempat yang harus digambar, sedangkan daerah putih adalah posisi/tempat yang tidak perlu digambar/ditampilkan (Hakim, 2003:19). Gambar Mask umumnya disertakan beserta dengan gambar sumber. Gambar 2.11 memperlihatkan contoh gambar sumber dan gambar Mask-nya:
Gambar 2.11. Gambar sumber dan gambar Mask-nya
Perhatikan koordinat pada gambar 2.11 secara Visual Basic. Koordinat gambar asli adalah 0, 0. Sedangkan koordinat untuk Mask-nya adalah tinggi gambar asli, 0.
Untuk menampilkan gambar pada Visual Basic 6.0 jika tidak disertai dengan gambar Mask tersebut hanya akan menghasilkan gambar obyek berbentuk kotak dengan warna hitam. Lihat contoh pada Gambar 2.12.
Gambar 2.12. Menampilkan obyek tanpa teknik Masking
Agar gambar yang dihasilkan tidak berbentuk kotak, maka digunakan teknik Masking. Teknik ini menggunakan fungsi Win32 API yaitu BitBlt. Contoh penggunaan fungsi BitBlt dalam penggunaan teknik Masking ditunjukkan oleh Gambar 2.13.
BitBlt field2.hDC, curX * 30, curY * 30, 30, 30, hitMask.hDC, frameNum * 32, 0, vbSrcAnd BitBlt field2.hDC, curX * 30, curY * 30, 30, 30, hit.hDC, frameNum * 32, 0, vbSrcPaint
Gambar 2.13. Contoh penggunaan BitBlt untuk teknik Masking
Pada Gambar 2.13. Kode BitBlt pada baris pertama akan menempatkan gambar Mask pada layar dengan raster operation vbSrcAnd (lihat pada akhir baris pertama) dan kode BitBlt yang kedua menempatkan gambar asli dengan raster operation vbSrcPaint (lihat pada akhir baris kedua). Perpaduan kedua gambar dengan raster operation tersebut menghasilkan obyek yang tidak berbentuk kotak. Lihat Gambar 2.14.
Raster operation menentukan operator logika yang digunakan untuk mengkombinasikan gambar tujuan dengan gambar sumber (Hakim, 2003:21).
Ada beberapa konstanta raster operation yang akan digunakan dalam pengkodean aplikasi permainan yang akan penulis bangun, yaitu sebagai berikut: 1. vbSrcCopy, meletakkan gambar secara utuh.
2. vbSrcAnd, untuk meletakkan gambar Mask.
BAB III
ANALISIS DAN PERANCANGAN
3.1 Analisis Masalah
Dalam membangun aplikasi permainan komputer ini, penulis melakukan analisa yang diperlukan dalam pembuatan aplikasi tersebut. Berikut ini adalah analisa yang dilakukan terhadap kebutuhan dasar sistem:
Pemain dapat meletakkan kapal perang di area atau tempat permainan atau menyusun strategi terlebih dahulu sebelum memulai permainan kapal perang ini, setelah pemain meletakkan seluruh kapal perang di area permainan barulah pemain dapat memainkan permainannya dan berperang dengan musuh.
Aktor dan use case ditentukan atas dasar kebutuhan sistem. Kebutuhan sistem ini diakomodir di use case. Selanjutnya use case menyediakan nilai hasil kepada aktor. Atas dasar spesifikasi di atas ada satu aktor yaitu pemain.
Untuk mendeskripsikan use case apa saja dan aktor yang terlibat dalam use case tersebut, dapat dilihat pada Tabel 3.1.
Tabel 3.1 Kebutuhan sistem, aktor dan use case pada aplikasi permainan kapal perang (Battleship)
No Kebutuhan Sistem Aktor Use Case
1 Pemain dapat memulai permainan , namun terlebih dahulu pemain haru meletakkan kapal ke area permainan atau menyusun strategi terlebih dahulu, barulah pemain dapat bertempur dengan musuh
Pemain Mulai permainan
3.1.1 Spesifikasi Kebutuhan Sistem
Untuk aplikasi permainan yang sesuai dengan skenario permainan yang telah diuraikan di atas dapat diketahui kebutuhan sistem dari aplikasi permainan yang akan dibangun yaitu sebagai berikut:
1. Elemen permainan, terdiri dari: a. Gambar latar belakang
b. Kapal (kapal pemain dan kapal musuh) c. Ledakan
d. Suara efek
2. Proses Perhitungan Skor dan kehancuran kapal, yaitu sebagai berikut:
a. Skor dapat diperoleh apabila pemain berhasil menghancurkan kapal musuh yang berada di daerah atau tempat lawan.
b. Kapal musuh dapat hancur apabila kapal musuh tersebut tertembak oleh kapal pemain.
3. Aplikasi permainan dengan karakter kapal perang tersebut menerima respon dari pengguna melalui Mouse untuk mengontrol atau mengendalikan kapal pemain dan menembak atau menghancurkan kapal musuh.
3.1.2 Parameter Keberhasilan
Aplikasi permainan dengan karakter kapal perang ini dinyatakan berhasil dibangun apabila sebagai berikut:
1. Pemain dapat meletakkan seluruh kapal perang ke area permainan.
2. Muncul ledakan akibat dari proses tubrukan, yaitu apabila kapal musuh terkena bom oleh pemain.
3.2 Diagram Use Case
Diagram Use Case sangat membantu menganalisa kebutuhan-kebutuhan dari permainan yang akan dibangun. Karena diagram Use Case memperlihatkan apa yang dilakukan oleh pengguna terhadap sistem (dalam hal ini permainan komputer dengan karakter kapal perang yang akan dibangun). Kebutuhan fungsional dari aplikasi permainan dengan karakter kapal perang ditunjukkan oleh Gambar 3.1.
BATTLESHIP
Gambar 3.1. Diagram Use Case Permainan Kapal perang (Battleship)
Penjelasan dari masing-masing use case dari Gambar 3.1 dapat dilihat berikut ini. << include >> Mengumpulkan nilai (Score) Mulai permainan Pemain
Use Case : Mengumpulkan nilai (Score)
Deskripsi Singkat : Use Case ini memungkinkan pemain untuk mengumpulkan nilai (score).
Aktor : Pemain
Kondisi Awal : Permainan telah dimulai dan sedang berjalan.
Aliran Utama : 1. Pemain menekan tombol pada mouse untuk menembak atau menghancurkan kapal musuh.
2. Pemain menggerakan kursor mouse untuk mencari dimana posisi kapal musuh yang berada di area permainan. Apabila pemain berhasil menemukan letak kapal musuh maka kapal musuh tersebut akan hancur dan pemain mendapatkan nilai (score).
3. Sistem akan menampilkan kotak dialog yang berisikan pesan bahwa kapal telah hancur.
4. Apabila pemain tidak berhasil menemukan letak kapal musuh maka kapal musuh akan tetap utuh.
Aliran Alternatif : 1. Pada langkah 4, jika tidak mengenai sasaran sistem kembali kelangkah 2.
Kondisi Akhir : Jika Use Case berhasil dijalankan maka pemain dapat mengumpulkan nilai (score) sebanyak mungkin.
Use Case : Mulai permainan
Deskripsi Singkat : Use Case ini memungkinkan pemain untuk memulai permainan.
Aktor : Pemain
Kondisi Awal : Aplikasi siap untuk dimainkan.
Aliran Utama : 1. Pemain menekan tombol mulai untuk melanjutkan ketahapan memulai permainan.
2. Sistem akan menjalankan ketahapan berikutnya untuk memulai permainan dengan menampilkan jendela untuk mengatur strategi permainan.
3. Pemain meletakkan posisi kapal di area permainan.
4. Pemain menekan tombol start untuk memulai permainan.
5. Sistem akan menjalankan ketahapan berikutnya untuk memulai permainan dengan menampilkan jendela arena pertempuran.
Aliran Alternatif : 1. Pada langkah 1, jika pemain tidak menekan tombol mulai maka sistem tidak akan melakukan langkah 2. 2. Pada langkah 4, jika pemain tidak menekan tombol start
maka sistem tidak akan melakukan langkah 5.
Kondisi Akhir : Jika Use Case berhasil dijalankan maka permainan dimulai dan pemain dibawa ke suasana pertempuran.
3.3 Struktur Tabel
Tabel 3.2 Tabel Ranking
Atribut Tipe Panjang Keterangan
Nama varchar 15 Nama pemain
Score varchar 3 Nilai pemain
3.4 Class Diagram
Diagram kelas mendeskripsikan jenis – jenis objek dalam sistem dan berbagai macam hubungan statis yang terdapat di antara mereka. Diagram kelas juga menunjukan properti dan operasi sebuah kelas dan batasan – batasan yang terdapat dalam hubungan – hubungan objek tersebut.
Diagram kelas juga menggambarkan struktur dan deskripsi kelas, package dan objek beserta hubungan satu sama lain seperti generalization, realization, association, dan agregation. Dimana generalization adalah hubungan superclass dengan subclass atau parent dengan child, realization adalah dimana sebuah class harus mengikuti aturan class lainnya, association adalah hubungan structural antar class dan aggregation adalah hubungan antar class, dimana class yang satu adalah bagian dari class yang lainnya (Martin Fowler (2005:53)..
<<boundary>> form Main - lblAreaPemain : label - lblAreaLawan : label - lblscore : label - pic1: piturebox - pic2 : picturebox - cmdmulai : commandbutton - cmdptnjk : commandbutton - cmdranking : commandbutton - cmdstart : commandbutoon - option1 : optionbutton - option2 : optionbutton - option3 : optionbutton - option4 : optionbutton - option5 : optionbutton - image1 : image - image2 : image - image3 : image - image4 : image - fireAnim_timer : timer - hitAnim_timer : timer - missAnim_timer : timer + lblAreaPemain_click() + lblAreaLawan_click() + lblscore_click() + pic1: piturebox + pic2 : picturebox + cmdmulai _click() + cmdptnjk_click() + cmdranking_click() + cmdstart_click() + option1_click() + option2_click() + option3_click() + ption4_click() + option5_click() + image1_click() + image2_click() + image3_click() + image4_click() + fireAnim_Timer_click() + hitAnim_Timer_click() + missAnim_Timer_click() <<boundary>> form nama - txtnama : txtbox - lblnama : label - cmdok : commandbutton + txtnama_click() + lblnama_click() + cmdok_click() <<boundary>> form high - lblranking : label - lblnama : label - lblscore : label - cmdok :commandbutton + lblranking_click() + lblnama_click() + lblscore_click() + cmdok_click() <<boundary>> form petunjuk - lblptnjk : label - image1 : picturebox - cmdback : commandbutton + lblptnjk_click() + image1_click() + cmdback_click() <<entity>> score
+ mengumpulkan nilai score() + menampilkan nilai score()
Pada class diagram diatas dijelaskan bahwa terdapat lima kelas yang saling berhubungan. Kelas form main yang termasuk ke dalam boundary mempunyai hubungan aggregation (dimana kelas yang satu merupakan bagian dari kelas yang lain) dengan kelas form petunjuk, form nama, form high yang juga termasuk ke dalam boundary, disebut kelas boundary karena kelas tersebut berupa tampilan user interface yang merupakan sarana komunikasi antara system dengan user. Form petunjuk, form nama, form high tidak akan berjalan jika tidak ada proses dari form Main, oleh sebab itu kelas form petunjuk, form nama, form high merupakan bagian dari kelas form Main. Lalu pada form Main mempunyai hubungan generalization (hubungan antara parent dengan child) dimana kelas score yang juga entity adalah bagian dari form Main. Disebut kelas entity karena memperlihatkan proses apa saja yang akan ditawarkan oleh sistem kepada user.
3.5 Diagram Sekuensial
Diagram Sekuensial digunakan ketika ingin mengetahui perilaku beberapa obyek pada Use Case tunggal. Diagram Sekuensial bagus dalam menunjukkan kolaborasi diantara obyek, namun tidak begitu bagus dalam memberikan definisi yang pasti tentang perilaku tersebut (Munawar, 2005:98).
Diagram Sekuensial untuk Use Case memulai permainan ditunjukkan oleh Gambar 3.3, dan diagram Sekuensial untuk Use Case mengumpulkan nilai (sore) ditunjukkan oleh Gambar 3.4.
Kapal perang Pemain
Mulai permainan
Klik tombol untuk memulai permainan
Kapal musuh
Meletakkan posisi kapal
Hancurkan musuh
Permainan dimulai
Gambar 3.3. Diagram Sekuensial untuk Use Case memulai permainan
Pada Gambar 3.3, jika aktor pemain ingin memulai permainan, maka ia diharuskan meletakkan posisi kapal perang yang akan dimainkan. Setelah meletakkan kapal perang, pemain harus menekan tombol untuk memulai permainan pada aplikasi permainan tersebut untuk memulai permainan. Selanjutnya jika permainan telah dimulai pemain dapat menghancurkan musuh (bertempur dengan musuh).
Kapal perang menembak Pemain
Menekan tombol pada mouse
Kapal musuh hancur
Kapal musuh tidak hancur
Tembakan mengenai musuh
Tembakan tidak mengenai musuh Score bertambah
Gambar 3.4. Diagram Sekuensial untuk Use Case mengumpulkan nilai (score)
Pada Gambar 3.4, ketika aktor pemain menekan tombol mouse sebelah kiri atau kanan, maka obyek kapal perang akan menembak, namun tidak diketahui obyek kapal perang yang mana akan menembak untuk menghancurkan kapal musuh dikarenakan pemain memiliki 10 kapal perang. Dan peluru dari kapal perang tersebut digambarkan berupa kursor mouse. Sebelum menghancurkan kapal musuh pemain harus mencari letak kapal musuh terlebih dahulu. Jika tembakan pemain mengenai obyek kapal musuh, maka obyek kapal musuh tersebut akan hancur dan pemain mendapatkan nilai (score). Namun jika tembakan pemain tidak mengenai obyek kapal musuh, maka obyek kapal musuh tersebut tidak hancur.
3.6 Diagram Aktifitas
Diagram aktifitas merupakan pemodelan aliran kerja (workflow) sebuah proses, atau urutan aktifitas dalam suatu proses. Dengan diagram aktifitasini kita akan lebih dapat memahami alur dari proses-proses tersebut atau dengan kata lain diagram ini akan menggambarkan langkah-langkah dari setiap aplikasi yang disediakan dalam sistem.
Diagram Aktifitas untuk Use Case memulai permainan ditunjukkan oleh Gambar 3.5, dan diagram Aktifitas untuk Use Case bertempur dengan musuh ditunjukkan oleh Gambar 3.6.
Mulai permainan
Meletakkan kapal perang
Bertempur dengan musuh
Permainan berakhir
Gambar 3.5. Diagram Aktifitas untuk Use Case memulai permainan.
Pada Gambar 3.5, aktifitas dimulai dengan meletakkan kapal perang di arena permaianan atau menyusun strategi yang akan dimainkan. Setelah aktifitas meletakkan kapal perang atau menyusun strategi, aktifitas selanjutnya adalah
memulai permainan. Setelah permainan dimulai, aktifitas selanjutnya adalah mengumpulkan nilai (score). untuk lebih jelas mengenai aktifitas mengumpulkan nilai (score) lihat Gambar 3.6.
Pada Gambar 3.6, aktifitas diawali menggerakkan kursor untuk mencari letak kapal yang tersembunyi dan menekan tombol mouse sebelah kiri untuk menghancurkan kapal musuh. Apabila berhasil menemukan atau mengenai kapal musuh, maka akan terdengar suara ledakan dan pemain mendapatkan nilai (score). Apabila tidak mengenai kapal musuh maka giliran musuh atau lawan yang menyerang atau mencari kapal pemain. Apabila musuh atau lawan berhasil menemukan atau mengenai kapal pemain maka kapal pemain hancur. Jika tidak maka giliran pemain yang kembali menyerang musuh atau lawan. Aktifitas selanjutnya adalah menentukan apakah kapal musuh atau kapal pemain sudah habis atau tidak, jika ya maka permainan berakhir dan jendela ranking yang berisi nama-nama dan nilai skor yang mempunyai nilai tertinggi akan ditampilkan, jika tidak maka pemain mendapat giliran lagi untuk menyerang lawan.
Menggerakkan kursor dan Menekan tombol pada mouse
Tidak
Ya
Lawan menyerang kapal pemain
Tidak
Ya Ya
Mengenai kapal musuh?
Apakah kapal musuh atau kapal pemain habis? Mengenai kapal Pemain? Permainan berakhir Kapal hancur Tidak Suara ledakan
Gambar 3.6. Diagram Aktifitas untuk Use Case mengumpulkan nilai (score)
Tampilkan ranking Score bertambah
3.7 Diagram Deploymen (Deployment Diagram)
Diagram Deploymen menyediakan gambaran bagaimana sistem secara fisik akan terlihat (Munawar, 2005:127). Diagram Deploymen dari aplikasi permainan komputer dengan karakter kapal perang (Battleship) ditunjukkan oleh Gambar 3.7.
Game Application PC (Microsoft Windows OS)
Visual Basic Runtime Files: Msvbvm60.dll Stdole2.tlb Oleaut32.dll Olepro32.dll Comcat.dll Asyncfilt.dll Ctl3d32.dll Battleship.exe
Gambar 3.7. Diagram Deploymen dari aplikasi permainan Battleship
Pada Gambar 3.7, aplikasi permainan komputer dengan karakter kapal perang tersebut dipasang pada komputer pribadi bersifat stand alone. Pada gambar tersebut terdapat node lingkungan pengeksekusian yaitu perangkat lunak yang menjadi Host atau mengandung perangkat lunak yang lain. Node lingkungan pengeksekusian tersebut yaitu Sistem Operasi Microsoft Windows. Node tersebut berfungsi sebagai tempat pengeksekusian Visual Basic Runtime files dan aplikasi permainan komputer dengan karakter kapal perang (Battleship.exe). Visual Basic Runtime files adalah berkas-berkas yang dibutuhkan bagi semua aplikasi yang dibangun dengan bahasa
pemrograman Visual Basic agar aplikasi-aplikasi yang dibangun dengan bahasa tersebut dapat berjalan sebagaimana mestinya pada komputer yang tidak mempunyai perangkat lunak Microsoft Visual Basic (Vine, 2001:311).
3.8 Algoritma Perhitungan Skor
Berikut ini adalah algoritma perhitungan nilai (skor) yang akan diterapkan pada aplikasi permainan yang akan dibangun:
1. Skor awal adalah nol (0).
2. Bila bagian-bagian kapal musuh terkena bom oleh pemain maka tambahkan nilai skor dengan sepuluh (skor = skor + 10). Dan jika pemain berhasil menembak semua bagian kapal (kapal hancur) maka nilai skor ditambahkan 20 (skor = skor + 20)
3. Ulangi langkah nomor 2 hingga permainan berakhir.
3.9 Diagram Alur (flowchart)
Berikut ini adalah Diagram Alur (flowchart) perhitungan nilai (skor) yang akan diterapkan pada aplikasi permainan yang akan dibangun.
Pada diagram alur perhitungan nilai (skor) dimulai dengan kondisi nilai skor awal adalah 0. jika kapal hancur nilai skor bertambah. Jika tidak hancur nilai skor tidak bertambah. Dan sistem menampilkan nilai skor ke layar. Lihat Gambar 3.8.
selesai Nilai skor = 0 T Y Nampilkan nilai skor Nilai skor bertambah Kapal hancur mulai
Gambar 3.8. Diagram alur perhitungan nilai (skor)
3.10 Perancangan Antarmuka Permainan
Perancangan antarmuka dibutuhkan dalam rekayasa perangkat lunak agar aplikasi yang dibangun mudah digunakan oleh pengguna (user friendly). Untuk itu perlu diciptakan suatu antarmuka pengguna yang baik.
Pada aplikasi permainan yang akan dibangun, terdapat empat (4) buah jendela yang berfungsi sebagai antarmuka bagi pengguna dengan aplikasi permainan yang akan dibangun tersebut dengan fungsi jendela yang berbeda-beda. Jendela-jendela tersebut yaitu jendela inisialisasi, jendela meletakkan kapal perang, jendela permainan, jendela petunjuk. Pada subbab berikut akan dijelaskan mengenai perancangan dari jendela-jendela tersebut.
3.10.1 Perancangan Jendela Inisialisasi
Gambar 3.9 memperlihatkan jendela inisialisasi yang berfungsi sebagai jendela pertama yang muncul di layar monitor ketika program aplikasi permainan Battleship dijalankan.
Pada Gambar 3.9 Pemain dapat meletakkan atau menyiapkan strategi kapal perang yang akan dimainkan sebelum permainan dimulai dengan mengklik tombol mulai. Pemain dapat melihat petunjuk cara penggunaan permainan kapal perang yang akan dimainkan dengan mengklik tombol petunjuk. Pemain dapat melihat nilai tertinggi dengan mengklik tombol ranking.
Gambar
Mulai
Ranking Petunjuk
Gambar Latar Belakang
Gambar 3.9. Perancangan jendela inisialisasi
3.10.2 Perancangan Jendela Meletakkan Kapal Perang
Apabila pemain mengklik tombol mulai permainan, maka jendela untuk meletakkan atau menyusun strategi kapal perang muncul di layar monitor dan jendela inisialisasi akan dihilangkan dari layar monitor. Pada jendela meletakkan kapal
perang, pemain dapat meletakkan kapal perang yang berbeda ketempat area permainan. Jendela meletakkan kapal perang ditunjukkan oleh Gambar 3.10.
O Battleship 1 left
Gambar 3.10. Perancangan jendela meletakkan kapal perang
3.10.3 Perancangan Jendela Permainan
Apabila pemain telah meletakkan seluruh atau semua kapal perang pada jendela meletakkan kapal perang, maka jendela permainan akan muncul di layar monitor dan jendela meletakkan kapal perang akan dihilangkan dari layar monitor. Untuk memulai permainan, pemain dapat mengklik tombol bertuliskan Start yang ada di jendela meletakkan kapal perang. Apabila permainan mulai berjalan maka kapal perang (battleship) akan ditampilkan pada layar permainan dan pemain sudah
O Cruiser 2 left O Submarine 3 left O Destroyer 4 left O Clear Current Selection
Choose a ship to pleace on your field AREA PEMAIN Gambar Gambar Gambar Gambar Gambar BATTHELSHIP Start
dapat memulai permainan. Perancangan dari jendela permainan ditunjukkan oleh Gambar 3.11. SCORE Gambar AREA LAWAN AREA PEMAIN
Gambar 3.11. Perancangan jendela permainan
3.10.4 Perancangan Jendela Petunjuk
Pemain dapat melihat atau membaca petunjuk yang digunakan untuk mejelaskan bagai mana cara menggunakan permainan yang akan dimainkan dengan mengklik tombol Petunjuk pada jendela inisialisasi. Perancangan untuk jendela petunjuk ditunjukkan oleh Gambar 3.12.
Petunjuk game battleship Gambar disertai teks yang berisi penjelasan bagaimana cara menggunakan game battleship.
Tombol untuk kembali ke jendela inisialisasi.
Gambar 3.12. Perancangan jendela petunjuk
3.10.5 Perancangan Jendela Nama
Setelah permainan selesai pemain dapat mengisikan namanya di jendela nama yang kemudian pemain akan dapat melihat namanya apakah masuk ke dalam ranking lima besar atau tidak. Perancangan jendela nama ditunjukkan oleh Gambar 3.13.
OK ENTER YOUR NAME
3.10.6 Perancangan Jendela Ranking
Pemain dapat melihat daftar nama-nama dan nilai-nilai tertinggi yang ada di jendela ranking dengan mengklik tombol Ranking pada jendela inisialisasi. Perancangan untuk jendela ranking ditunjukkan oleh Gambar 3.14.
RANKING Nama Score
Ok
BAB IV
IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1 Implementasi
Setelah tahap analisis dan perancangan selesai dilakukan, maka tahap selanjutnya adalah tahap implementasi. Pada subbab berikut akan dijelaskan implementasi dari aplikasi permainan komputer dengan karakter kapal perang yang penulis bangun yang terdiri dari lingkungan implementasi, pengkodean, dan antarmuka dari aplikasi permainan tersebut.
4.1.1 Lingkungan Implementasi
Aplikasi permainan komputer dengan karakter kapal perang dibangun dan diimplementasikan pada seperangkat komputer pribadi (Personal Computer) dengan spesifikasi sebagai berikut:
1. Perangkat Keras yang digunakan:
a. Prosesor : Intel Celeron 1.7 Ghz. b. Motherboard : Matsonic MS9138D
c. Memori : 256 MB SDRAM
d. VGA : NVidia GeForce2 MX/MX400 64 MB e. Harddisk : Maxtor 40 Gb 7200 Rpm
2. Perangkat Lunak yang digunakan:
a. Microsoft Windows XP Professional, sebagai Sistem Operasi.
b. Microsoft Visual Basic versi 6.0 edisi profesional, sebagai alat (tool) untuk membangun aplikasi permainan tersebut.
4.1.2 Pengkodean
Pada subbab ini penulis akan menjelaskan potongan-potongan dari kode sumber (source code) aplikasi permainan komputer dengan karakter kapal perang. Kode sumber untuk aplikasi permainan tersebut dibangun dengan menggunakan bahasa pemrograman Visual Basic versi 6.0.
Pada setiap potongan kode program untuk menampilkan gambar ke layar permainan akan terdapat kode program berawalan BitBlt (kepanjangan dari Bit Block Transfer). Kode program ini merupakan bagian dari fungsi Win32 API yang digunakan untuk menggambar dan memanipulasi gambar yang akan ditampilkan di layar permainan. Fungsi BitBlt tersebut sering digunakan untuk menghasilkan animasi yang cepat dan halus. Fungsi BitBlt harus dideklarasikan terlebih dahulu seperti berikut ini:
Declare Function BitBlt Lib ”gdi32” (ByVal hDestDC as long, ByVal x as long, ByVal y as long, ByVal nWidth as long, ByVal nHeight as long, ByVal hSrcDC as long, ByVal xSrc as long, ByVal ySrc as long, ByVal dwRop as long) as long
Fungsi BitBlt tersebut di atas pertama kali menspesifikasikan area yang menjadi tujuan penggambaran yang ditunjukkan oleh kode ByVal hDestDC as long,
misalnya tujuan penggambaran tersebut adalah sebuah kontrol PictureBox pada Visual Basic versi 6.0. Kemudian koordinat kiri atas gambar diletakkan pada PictureBox tersebut yang ditunjukkan oleh kode ByVal x as long, ByVal y as long. Kemudian ditentukan panjang dan lebar gambar yang akan ditampilkan ditunjukkan oleh kode ByVal nWidth as long, ByVal nHeight as long. Selanjutnya spesifikasikan area sumber gambar, yang ditunjukkan oleh kode ByVal
hSrcDC as long, dan tentukan koordinat kiri atas dari gambar yang diambil dari
gambar sumber yang ditunjukkan oleh kode ByVal xSrc as long, ByVal ySrc as long. Yang terakhir adalah spesifikasikan cara kita menempatkan gambar tersebut (dalam Visual Basic disebut dengan raster operation, telah dibahas pada Bab II), ditunjukkan oleh kode ByVal dwRop as long.
Contoh penggunaan dari deklarasi fungsi BitBlt tersebut di atas adalah sebagai berikut:
BitBlt area_pic.hDC, 0, 0, BACKGROUNDWIDTH, BACKGROUNDHEIGHT, _ background_pic.hDC, 0, 0, vbSrcCopy
Aplikasi permainan komputer dengan karakter kapal perang (Battleship) dibangun dengan menyatukan beberapa unsur permainan seperti yang telah diuraikan pada tahap analisis pada Bab III. Berikut ini adalah potongan-potongan kode program dari elemen penyusun aplikasi permainan tersebut:
1. Potongan kode program untuk tampilan jenis-jenis gambar kapal perang, yang terdiri dari Battleship, Cruiser, Submarine, Destroyer Kode 4.1 memperlihatkan pengkodean untuk jenis kapal perang Battleship.
Kode 4.1. Potongan kode program menggambar kapal Battleship
Pada kode 4.1, baris pertama merupakan awal permulaan fungsi bernama
draw_battleship. Baris ke 2 adalah komentar. Baris ke 3 hingga baris ke 4 adalah fungsi Win32 API untuk menampilkan Mask dari gambar sumber bagian belakang kapal. Baris ke 5 hingga baris ke 6 adalah fungsi Win32 API untuk menampilkan gambar sumber bagian belakang kapal ke layar permainan. Baris ke 7 hingga baris ke 8 adalah fungsi Win32 API untuk menampilkan Mask dari gambar sumber bagian badan kapal1. Baris ke 9 hingga baris ke 10 adalah fungsi Win32 API untuk menampilkan gambar sumber bagian badan kapal1 ke layar permainan. Baris ke 11 hingga baris ke 12 adalah fungsi Win32 API untuk menampilkan Mask dari gambar sumber bagian badan kapal2. Baris ke 13 hingga baris ke 14 adalah fungsi Win32 API untuk menampilkan gambar sumber bagian badan kapal2 ke layar permainan. Baris ke 15 hingga baris ke 16 adalah fungsi Win32 API untuk menampilkan Mask dari gambar sumber bagian depan kapal. Baris ke 17 hingga baris ke 18 adalah fungsi Win32 API untuk menampilkan
1 Sub draw_battleship()
2 ' prosedur menggambar kapal perang
3 BitBlt picCurrent.hDC, 0, 0, tile.ScaleWidth,
4 tile.ScaleHeight, shipLeftEndMask.hDC, 0, 0, vbSrcAnd 5 BitBlt picCurrent.hDC, 0, 0, tile.ScaleWidth,
6 tile.ScaleHeight, shipLeftEnd.hDC, 0, 0, vbSrcPaint 7 BitBlt picCurrent.hDC, 30, 0, tile.ScaleWidth, 8 tile.ScaleHeight, shipMid1Mask.hDC, 0, 0, vbSrcAnd 9 BitBlt picCurrent.hDC, 30, 0, tile.ScaleWidth, 10 tile.ScaleHeight, shipMid1.hDC, 0, 0, vbSrcPaint 11 BitBlt picCurrent.hDC, 60, 0, tile.ScaleWidth, 12 tile.ScaleHeight, shipMid2Mask.hDC, 0, 0, vbSrcAnd 13 BitBlt picCurrent.hDC, 60, 0, tile.ScaleWidth, 14 tile.ScaleHeight, shipMid2.hDC, 0, 0, vbSrcPaint 15 BitBlt picCurrent.hDC, 90, 0, tile.ScaleWidth,
16 tile.ScaleHeight, shipRightEndMask.hDC, 0, 0, vbSrcAnd 17 BitBlt picCurrent.hDC, 90, 0, tile.ScaleWidth,
18 tile.ScaleHeight, shipRightEnd.hDC, 0, 0, vbSrcPaint 19 End Sub
gambar sumber bagian depan kapal ke layar permainan. Baris ke 19 adalah akhir dari sub prosedur tersebut.
Kode 4.2. Potongan kode program menggambar kapal Cruiser
Pada kode 4.2, baris pertama merupakan awal permulaan fungsi bernama draw_cruiser.
Baris ke 2 adalah komentar. Baris ke 3 hingga baris ke 4 adalah fungsi Win32 API untuk menampilkan Mask dari gambar sumber bagian belakang kapal. Baris ke 5 hingga baris ke 6 adalah fungsi Win32 API untuk menampilkan gambar sumber bagian belakang kapal ke layar permainan. Baris ke 7 hingga baris ke 8 adalah fungsi Win32 API untuk menampilkan Mask dari gambar sumber bagian badan kapal1. Baris ke 9 hingga baris ke 10 adalah fungsi Win32 API untuk menampilkan gambar sumber bagian badan kapal1 ke layar permainan. Baris ke 11 hingga baris ke 12 adalah fungsi Win32 API untuk menampilkan Mask dari gambar sumber bagian depan kapal. Baris ke 13 hingga baris ke 14 adalah fungsi Win32 API untuk menampilkan gambar sumber bagian depan kapal ke layar permainan. Baris ke 15 adalah akhir dari sub prosedur tersebut.
1 Sub draw_cruiser()
2 ' prosedur menggambar kapal penjelajah
3 BitBlt picCurrent.hDC, 0, 0, tile.ScaleWidth,
4 tile.ScaleHeight, shipLeftEndMask.hDC, 0, 0, vbSrcAnd 5 BitBlt picCurrent.hDC, 0, 0, tile.ScaleWidth,
6 tile.ScaleHeight, shipLeftEnd.hDC, 0, 0, vbSrcPaint 7 BitBlt picCurrent.hDC, 30, 0, tile.ScaleWidth, 8 tile.ScaleHeight, shipMid1Mask.hDC, 0, 0, vbSrcAnd 9 BitBlt picCurrent.hDC, 30, 0, tile.ScaleWidth, 10 tile.ScaleHeight, shipMid1.hDC, 0, 0, vbSrcPaint 11 BitBlt picCurrent.hDC, 60, 0, tile.ScaleWidth,
12 tile.ScaleHeight, shipRightEndMask.hDC, 0, 0, vbSrcAnd 13 BitBlt picCurrent.hDC, 60, 0, tile.ScaleWidth,
14 tile.ScaleHeight, shipRightEnd.hDC, 0, 0, vbSrcPaint 15 End Sub