Aplikasi Game Dengan Menggunakan Visual Basic 6.0
TUGAS AKHIR
OLEH :
DESILIA SELVIDA
NIM : 072406124
PROGRAM STUDI D-3 ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2008
(2)
PROPOSAL TUGAS AKHIR
APLIKASI GAME DENGAN MENGGUNAKAN PROGRAM VISUAL BASIC
Diajukan sebagai salah satu syarat dalam menyelesaikan pendidikan program studi Diploma III Ilmu Komputer
DESILIA SELVIDA 072406124
PROGRAM STUDI DIII ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
MEDAN 2009
(3)
PERSETUJUAN
Judul : APLIKASI GAME DENGAN MENGGUNAKAN VISUAL BASIC 6.0
Kategori : TUGAS AKHIR Nama : DESILIA SELVIDA Nomor Induk Mahasiswa : 072406124
Program Studi : D3 ILMU KOMPUTER Departemen : MATEMATIKA
Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, Mei 2010
Diketahui/Disetujui oleh
Departemen Matematika FMIPA USU
Ketua, Pembimbing
Dr. Saib Suwilo, M.Sc Drs. F. Bu’ulolo M.Si NIP : 196440109 198803 1 004 NIP : 19531218 19800 003
(4)
PERNYATAAN
APLIKASI GAME DENGAN MENGGUNAKAN VISUAL BASIC 6.0 TUGAS AKHIR
Saya mengakui bahwa Tugas Akhir ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Mei 2010
DESILIA SELVIDA 072406124
(5)
PENGHARGAAN
Syukur Alhamdulillah KepadaMu Ya Allah SWT, berkat ridho dan kesehatan yang Engkau berikan kepada penulis, penulis dapat menyelesaikan tugas akhir ini tepat pada waktunya.
Penulis mengucapkan banyak terima kasih kepada:
1. Bapak Drs. F.Bu’ulolo M,Si selaku Dosen Pembimbing tugas akhir Program Studi D-3 Ilmu Komputer Fakultas MIPA Universitas Sumatera Utara yang telah memberikan bimbingan dan arahan selama ini kepada penulis dalam penyelesaian tugas akhir ini.
2. Bapak Dr. Saib Suwilo, M.Sc selaku Ketua Program Studi D-3 Ilmu Komputer.
3. Bapak Prof. Dr. Eddy Marlianto, M.Sc selaku Dekan Fakultas MIPA Universitas Sumatera Utara.
4. Teristimewa kepada Papa dan Mama beserta kakak seamata wayang tercinta yang selalu memberi dukungan baik moril maupun materil sehingga penulis dapat menyelesaikan Tugas Akhir dengan baik.
5. Teman - teman seperjuangan : Nusye Rahmadian Amelia, Ikarani Talin, Fitriah Savira, Bintang P yang telah membantu dan mensupport penulis dalam penyelesaian tugas akhir ini.
6. Teman – teman di KOM B 2007 dan pihak-pihak yang telah banyak membantu penulis, yang tidak dapat penulis sebutkan namanya satu per satu.
(6)
Penulis berharap semoga tugas akhir ini mendapat manfaat bagi pembaca terutama bagi penulis sendiri,
Akhir kata, penulis mengharapkan kritik dan saran guna sempurnanya tugas akhir ini. Terima kasih.
Medan, Mei 2010 Penulis
(7)
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Daftar Isi vi
Bab 1 Pendahuluan 1
1.1 Latar Belakang 1 1.2 Identifikasi Masalah 1 1.3 Perumusan Masalah 2 1.4 Batasan Masalah 2 1.5 Manfaat Penelitian 3 1.6 Metode Penelitian 3 1.7 Sistematika Penelitian 4
Bab 1 Landasan Teori 5
2.1 Pengertian Komputer 5 2.2 Sekilas Mengenai Visual Basic 6 2.2.1 Struktur Aplikasi Visual Basic 8 2.4 Analisa Game 16
Bab 3 Perancangan Sistem 19
3.1 Pengaturan Properties Form Aplikasi Game Tetris 19
3.2 Flow Chart 31
3.3 Algoritma Program 32
Bab 4 Implementasi Sistem 34
4.1 Pengertian dan Tujuan Implementasi 34 4.2 Penerapan Sistem 34 4.3 Desain Aplikasi Game Tetris 37 4.4 Cara Menjalankan Aplikasi Game Tetris 37 Bab 5 Kesimpulan dan Saran 40
5.1 Kesimpulan 40
5.2 Saran 40
Daftar Pustaka 42
(8)
BAB 1
PENDAHULUAN
1.1. Latar Belakang Masalah
Visual Basic adalah salah satu development tool untuk membangun aplikasi dalam lingkungan Windows. Dalam pengembangan aplikasi, Visual Basic mengggunakan pendekatan visual untuk merancang user interface dalam bentuk form, sedangkan untuk kode programnya menggunakan bahasa basic yang cenderung mudah dipelajari. Visual Basic telah menjadi tool yang terkenal bagi para pemula maupun para developer.
Pada pemrograman Visual, pengembangan aplikasi dimulai dengan membentuk user interface, kemudian mengatur properti dari objek – objek yang digunakan dalam user interface, kemudian dilakukan penulisan kode program untuk menangani kejadian – kejadian ( event ). Tahap pengembangan aplikasi demikian dikenal dengan istilah pengenalan aplikasi dengan pendekatan Bottom – up.
1.2. Identifikasi Masalah
Pada pemrograman Visual Basic, pengembangan aplikasi dimulai dengan membentuk user interface, kemudian mengatur property dari objek – objek yang digunakan dalam user interface, kemudian dilakukan penulisan kode program untuk menangani
(9)
kejadian – kejadian ( event ). Tahap pengembangan aplikasi demikian dikenal dengan istilah pengembangan aplikasi dengan pendekatan bottom up. Dalam hal ini cukup sulit jika pengembangan tersebut dilakukan dalam waktu yang singkat karena diperlukan adanya observasi dan pembelajaran lebih lanjut.
Adapun beberapa hal yang harus dipahami dalam mempelajari Visual basic: 1. Objek
2. Poperty
3. Event
4. Metode
1.3. PERUMUSAN MASALAH
Visual basic memungkinkan kita untuk menggunakan variabel tanpa deklarasi. Namun hal ini kurang baik untuk program yang terstruktur dan menghindari kesalahan pengolahan yang diakibatkan oleh kesalahan dalam pengetikan nama variabel.
1.4. BATASAN MASALAH
Batasan masalah yang yang akan dibahas ialah:
(10)
MANFAAT PENELITIAN
Manfaat dari penelitian ini adalah:
1. Penulis dapat lebih mengetahui dan lebih menguasai bahasa pemograman visual basic.
1.6. METODE PENELITIAN
Metode penelitian sangat menentukan suatu penelitian, karena menyangkut cara yang benar dalam pengumpulan data, analisa data dan pengambilan kesimpulan hasil penelitian. Adapun metode penelitian yang penulis gunakan untuk menyelesaikan berbagai permasalahan yang terjadi adalah:
1. Observasi.
Yaitu pencarian data/informasi dengan melakukan pengamatan langsung terhadap objek yang diteliti.
2. Metode Penelitian Kepustakaan ( Library Research Method ).
Merupakan jenis penelitian yang dilakukan dengan mengumpulkan data yang berhubungan dengan topik permasalahan dari judul yang penulis buat. Hal ini dilakukan dengan cara membaca buku-buku, makalah, bahan kuliah maupun artikel-artikel untuk mendapatkan landasan teoritis yang mencukupi.
3. Metode Penelitian Lapangan ( Field Research Method ).
Yaitu metode dengan melakukan browsing melalui internet dengan melihat website – website yang berkaitan dengan masalah yang diteliti.
(11)
SISTEMATIKA PENELITIAN
Adapun sistematika penulisan dari Tugas Akhir ini adalah :
BAB 1 PENDAHULUAN
Membahas tentang latar belakang, perumusan masalah, maksud dan tujuan, metode penelitian, kegunaan penelitian, sistematika penulisan.
BAB 2 LANDASAN TEORI
Membahas tentang Visual Basic 6.0 secara singkat, pengertian komputer, struktur program Visual Basic 6.0, analisa game.
BAB 3 PERANCANGAN SISTEM
Membahas tentang pengaturan properties form aplikasi game, algoritma, flowchart game.
BAB 4 IMPLEMENTASI SISTEM
Membahas tentang pengertian dan tujuan implementasi serta penerapan sistem dan tampilan game.
BAB 5 KESIMPULAN DAN SARAN
Membahas tentang kesimpulan yang dapat diambil oleh penulis dan saran – saran yang dapat diberikan oleh penulis.
(12)
BAB 2
LANDASAN TEORI
2.1. Pengertian Komputer
Istilah komputer berasal dari bahasa latin computare yang artinya alat hitung, sedangkan dalam bahasa inggris yaitu to compute yang artinya menghitung. Komputer merupakan alat pengolahan data yang bekerja dengan kecepatan dan ketelitian yang sangat tinggi dan mampu mengerjakan proses data berdasarkan program yang tersimpan dalam memori masing – masing komputer dengan keterlibatan manusia yang minimum.
Maka suatu sistem yang berbasis komputer mengandung arti sebagai seperangkat sumber daya ( komponen – komponen ) baik itu hardware ( perangkat keras ), software ( perangkat lunak ), brainware (perangkat manusia, data dan prosedur – prosedur yang saling berkaitan untuk menyediakan data dan informasi yang tepat pada waktunya.
Adapun komponen – komponen yang dimiliki computer yaitu :
a. Hardware ( Perangkat Keras )
Hardware adalah komponen – komponen yang membentuk suatu sistem
komputer yang berhubungan dengan peralatan lainnya, sehingga memungkinkan komputer dapat melakukan tugasnya. Umumnya peralatan
(13)
tersebut harus terdiri dari jenis, perangkat masukan ( input device ), perangkat pengolahan ( processor ), dan perangkat keluaran ( output device ).
b. Software ( Perangkat Lunak )
Software adalah seluruh fasilitas daripada suatu sistem pengolahan data bukan
merupakan peralatan komputernya atau suatu susunan instruksi yang harus diberikan kepada unit pengolahan agar komputer dapat menjalankan pekerjaannya sesuai dengan semestinya. Fasilitas software itu terdiri dari sistem desain, program – program dan prosedur – prosedur.
c. Brainware
Brainware merupakan aspek manusia yang menangani pengolahan komputer
maupun pengembangannya. Yang termasuk kedalam Brainware adalah sistem analisis, programmer, operator komputer, dan data entri komputer.
Ketiga komponen tersebut, harus saling berhubungan dan membentuk suatu kesatuan. Hardware tanpa adanya software, maka tidak akan berfungsi seperti yang diharapkan, hanya berupa benda mati saja karena software yang akan mengoperasikan hardwarenya. Hardware yang sudah didukung oleh software juga tidak akan berfungsi kalau tidak ada manusia yang akan mengoperasikanya. Oleh sebab itulah komput er tersebut harus saling mendukung satu sama lainnya.
2.2. Sekilas Mengenai Visual Basic 6.0
Visual Basic pada dasarnya adalah bahasa pemograman komputer. Bahasa pemograman adalah perintah – perintah atau instruksi yang dimengerti oleh komputer
(14)
untuk melakukan tugas-tugas tertentu. Bahasa pemograman visual basic merupakan bahasa yang mudah dipahami sehingga manusia sekarang lebih banyak memilih pemograman Visual Basic.
Visual Basic selain disebut sebagai bahasa pemograman, juga sering disebut sarana (tool) untuk menghasilkan program – program aplikasi berbasis windows. Beberapa kemampuan atau menfaat dari Visual Basic diantaranya seperti:
a. Untuk membuat program aplikasi berbasis Windows.
b. Untuk membuat objek-objek pembantu program seperti control Activex, File, Help, Aplikasi internet dan sebagainya.
c. Menguji program dan menghasilkan program akhir berakhiran EXE yang bersifat Executable, atau dapat langsung dijalankan.
Bagi programmer pemula yang baru ingin belajar program, lingkungan Visual Basic dapat membantu membuat program berbasis Windows dengan mudah. Sedangkan bagi programmer tingkat lanjut, dengan kemampuannya yang besar dapat digunakan untuk membuat program yang kompleks, misalnya dalam lingkungan Netwoking atau Clien Server. Bahasa pemograman Visual Basic cukup sederhana dan menggunakan kata-kata bahasa inggris yang umum digunakan dan tidak perlu lagi menghapal sintaks-sintaks maupun format-format bahasa yang bermacam-macam. Didalam Visual Basic semuanya sudah disediakan dalam pilihan-pilihan yang tinggal diambil sesuai kebutuhan. Selain itu, sarana pengembangannya yang bersifat visual lebih memudahkan untuk mengembangkan program aplikasi berbasis Windows ini, bersifat Mouse Driven (digerakkan dengan mouse) dan berdaya guna tinggi.
(15)
Kesimpulannya, Visual Basic adalah sebuah sarana pembuat program aplikasi yang lengkap dan mudah dipahami.
Gambar 2.1. Tampilan Dasar MS Visual Basic
2.2.1. Struktur Aplikasi Visual Basic 6.0
Lingkungan pemograman visual basic mengandung semua sarana yang anda butuhkan untuk membangun program – program yang hebat untuk windows dengan cepat dan efisien, visual basic merupakan bahasa pemrograman terstruktur. Struktur aplikasi visual basic terdiri dari :
1. Form, yaitu windows atau jendela dimana anda akan membuat user interface atau tampilan yang merupakan antarmuka program yang akan dibuat.
2. Kontrol, yaitu tampilan berbasis grafis yang dimasukkan pada form untuk membuat interaksi dengan pemakai (textbox, label, frame, dan lain-lain).
(16)
3. Propertis, yaitu nilai atau karakteristik yang dimiliki oleh sebuah objek visual basic. Contoh : Name, Caption, Size, dan lain-lain.
4. Metode, yaitu serangkaian perintah yang sudah tersedia suatu yang dapat diminta untuk mengerjakan tugas khusus.
5. Prosedure Kejadian/Event Prosedure, yaitu kode yang berhubungan dengan suatu objek yang dapat diminta untuk mengerjakan tugas khusus. Kode ini akan mengeksekusi ketika ada respon dari pemakai kode ketika ada event tertentu.
6. Prosedure Umum, yaitu kode yang tidak berhubungan dengan suatu objek. Kode ini harus diminta oleh aplikasi.
7. Modul/Module, yaitu kumpulan dari prosedure umum, deklarasi variable dan defenisi konstanta yang digunakan oleh aplikasi.
Untuk membuat aplikasi visual basic, mempunyai langkah-langkah sebagai berikut :
1. Membuat user interface atau tampilan. 2. Mengatur property.
3. Menulis kode program. 4. Menjalankan program.
Visual basic juga mempunyai tampilan layar yang terdiri dari : 1. Main Windows ( Jendela Utama )
Yang terdiri dari title bar ( baris judu l ), menu bar, dan tool bar, baris judu l berisi nama proyek. Baris judul juga berisi mode operasi. Visual basic sekarang dan form yang aktif. Menu bar merupakan menu drop-down dimana dapat mengontrol operasi lingkungan visual basic. Toolbar berisi kumpulan gambar yang mewakili perubahan yang ada di menu. Jendela utama juga
(17)
menampilkan lokasi dari form aktif di sudut kiri atas layar, lebar serta panjang form.
Gambar 2.2. Jendela Utama Visual basic
2. Form Windows ( Jendela Form ) adalah pusat dari pengembangan aplikasi visual basic. Disinilah tempat merancang aplikasi yang akan atau kita inginkan.
Gambar 2.3. Jendela Form
3. Project Windows (Jendela Proyek), menampilkan daftar form dan modul proyek. Proyek merupakan kumpulan dari modul form, modul class, modul standart, dan file sumber yang membentuk suatu aplikasi.
(18)
Gambar 2.3. Jendela Proyek
4. Toolbox adalah kumpulan dari proyek yang digunakan atau membuat user interface serta control bagi program aplikasi. Ada dua cara untuk menempatkan kontrol pada suatu form
a. Klik ganda kontrol dalam toolbox, selanjutnya anda dapat mengubah besar dan ukuran serta memindahkannya dengan metode drag dan drop. b. Klik kontrol dalam toolbox, kemudian pindahkan pointer mouse pada
jendela form, kursor akan berubah menjadi crosshairt(+).
Gambar 2.5. kontrol box
5. Properti Windows (Jendela Properti) berisi daftar struktur setting property yang digunakan pada sebuah objek yang terpilih. Kotak drop-down pada bagian atas jendela berisi daftar semua objek pada form yang aktif. Ada dua tab tampilan : Alphabetic (urut abjat) dan Catagorized (urut berdasarkan kelompok).
(19)
Gambar 2.6. Jendela Properti
6. Form Layout Windows (Jendela Layout Form) menampilkan posisi form relatif terhadap layar monitor pada saat program dijalankan atau dieksekusi (Running/Compiling).
Gambar 2.7. Jendela Layout Form
Visual Basic 6.0 juga memiliki beberapa keistimewaan antara lain :
a. Menggunakan platform pembuatan program yang diberi nama dexplorer studio, yang memiliki tampilan dan saran yang sama dengan visual basic J ++. Dengan begitu anda dapat belajar bahasa pemograman lainnya dengan mudah, tepat dan cepat tanpa harus belajar lagi.
(20)
b. Memiliki compiler yang handal yang dapat mendefenisikan file Executable efisien.
c. Memiliki beberapa tambahan saran wizard yang baru. Wizard adalah sarana yang mempermudah didalam pembuatan aplikasi dengan mengotoritaskan tugas–tugas tertentu.
d. Kemampuan membuat active X dan fasilitas internet yang lebih banyak.
e. Sarana akses data yang lebih cepat dan handal untuk membuat database yang mempunyai kemampuan yang lebih tinggi.
f. Visual baic 6.0 memiliki variasi atau edisi yang disesuaikan dengan kebutuhan pemakainya.
Visual Basic menyediakan berbagai tipe data seperti pada tabel dibawah ini antara lain :
Tipe–tipe data yang digunakan dalam Visual Basic 6.0 antara lain :
Tipe
Ukuran
Byte karakter
Integer 2 %
Long 4 ε
Single 4 !
Double 8 #
Currency 8 @
String 1 $
Byte 1
Boolean 2
(21)
Object 4
16+1
per
Variant Karakter
Untuk melakukan berbagai manipulasi dan pengolahan data Visual Basic menyediakan berbagai operator antara lain :
Operator Operator Aritmatika
Operator aritmatika digunakan untuk operasi aritmatika
Operasi ^ Pemangkatan - Tanda Negatif
* , / Perkalian dan pembagian \ Pembagian integer
Mod Modulus sisa pembuangan + , - Penambahan dan pengurangan
+ , ε Penggabungan string
Operator
Operator Perbandingan
Operator perbandingan digunakan untuk membandingkan suatu data dengan data yang lain dan menghasilkan nilai logika benar atau salah, tetapi antara kedua data tersebut harus mempunyai nilai atau tipe data yang sama.
(22)
= Sama dengan < > Tidak sama dengan < Lebih kecil
> Lebih besar
<= Lebih kecil atau sama dengan >= Lebih besar atau sama dengan
Operator Operator Logika
Operator logika digunakan untuk mengekspresikan satu atau lebih dari dua data (ekspresi) dan data logika (bolean) sehingga menghasilkan data logika yang baru.
Operasi Not Tidak And Dan Or Atau
Xor Exclusive Or Eqv Ekivalen Imp Implikasi
2.4. Analisa Game
Jika dahulu game hanya menjadi monopoli anak kecil, lain halnya dengan yang terjadi sekarang. Kini sudah bukan hal aneh lagi jika seorang ayah dapat duduk berjam-jam bersama anaknya dalam adu kecepatan sebuah game. Dan inilah yang terjadi saat ini, game bukan monopoli anak kecil lagi. Yang namanya game saat ini sudah bisa
(23)
dibilang sebagai mainan universal. Mulai dari balita, anak muda sampai dengan orang dewasa pun sudah tidak merasa asing lagi dengan yang namanya game. Jika dahulu orang mungkin hanya mengenal GameWatch ataupun GameBoy, kini orang dapat memilih beragam media permainannya. Untuk bermain game, saat ini kita tinggal memilih, ingin memakai komputer desktop saja (PC) atau melalui laptop, atau dapat juga melalui perlengkapan game pabrikan seperti PlayStation atau Xbox. Bahkan saat ini PlayStation juga telah mengeluarkan perlengkapan game-nya tersebut dalam versi personal, yang disebut PSP. Sepintas, PSP sendiri mungkin mengingatkan kita pada era GameBoy, dimana sebuah game dapat dimainkan dimana pun melalui sebuah alat yang ukurannya hanya agak lebih besar dari sebuah handphone.
Perlengkapan pendukung permainan yang ditawarkan pun sekarang sangat beragam, mulai dari mouse & keyboard standart, QuickCam, headset, joystick,
gamepad, racing wheel, PlayGear, dan lain sebagainya. Seolah ingin semakin dapat
terserap dengan baik oleh semua kalangan usia, game pun dibuat dengan berbagai tingkat kesulitan. Mulai dari level ‘Beginner’ sampai dengan ‘Advance’-pun dibuat untuk disesuaikan dengan tingkat kemahiran si pemain. Kalau sudah begini, maka game-pun mungkin juga sudah dapat dimainkan oleh balita hingga orang dewasa. Masing-masing telah dibuatkan porsi permainan mereka. Masih tentang porsi permainan, tidak hanya tingkat kesulitan saja yang disediakan secara beragam. Tipe permainan sendiri juga disediakan secara beragam. Mulai dari ‘career’ atau yang bersifat karir personal, hingga yang bersifat kompetisi dimainkan dengan banyak kompetitor atau musuh juga ada. Dan yang semakin menarik lagi dari perkembangan game adalah sifat personalisasi. Entah itu dalam jenis game balapan, perang hingga sepakbola, setiap pemain dimungkinkan untuk mendandani mobil, atau mengatur siasat perang, atau juga menyusun team atau kesebelasan sesuai dengan keinginan
(24)
mereka sendiri. Hal yang sangat luar biasa, karena pemain diijinkan untuk mempersonalisasikan diri mereka dalam setiap game yang dimainkan. Hal ini semakin mendekatkan imajinasi pemain ke dalam bentuk real virtual sebuah game.
Pengertian Game Menurut Agustinus Nilwan dalam bukunya “Pemrograman Animasi dan Game Profesional” terbitan Elex Media Komputindo, atau bisa juga game di artikan sebagai suatu aktivitas tersetruktur atau juga digunakan sebagai alat pembelajaran.
Sebuah game bisa dikarakteristikan dari apa pemain lakukan misal :
a. perlatan, contoh bola, kartu, papan, atau sebuah komputer
b. peraturan, biasanya menentukan giliran pemain, hak dan keharusan masing-masing pemain, dan tujuan permainan
c. skill, strategi dan keberuntungan. Game dengan dengan skill misalnya dengan kekuatan fisik, contoh gulat, menembak dan kekuatan mental seperti catur
d. Single Player Game (pemain satu orang) dan Double Player (lebih dari satu pemain). jika pemain tunggal, pemain harus bermain dengan keahlian, berpacu dengan waktu dan kebruntungan sedangkan pemain Double, pemain diharuskan untuk menggunakan suatu strategi dan kekompakan sesama pemain, untuk mencapai tujuan tertentu atau sebaliknya pemain harus berlomba dengan pemain lainnnya untuk mencapai sesuatu tujuan. Dalam suatu permainan (Game), pemain dituntut untuk tunjuk kreativitas dan keahlihan yang kita miliki untuk mencapai tujuan tertentu. untuk mencapai tujuan tertentu pemain harus mempunyai strategi dan harus tepat untuk mengambil suatu keputusan, maka disinilah pemain akan mengalami suatu pembelajaran dari suatu alur permainan.
(25)
Ada beberapa jenis game yang saat ini di gemari penduduk dunia, yaitu Game online dan Game offline. Game Online adalah game yang menggunakan internet network sehingga game ini dapat di mainkan atau di akses oleh siapa saja. Selain itu game ini juga tidak hanya dapat di akses oleh penduduk lokal saja tetapi bahkan hingga keluar negri.
(26)
BAB 3
PERANCANGAN SISTEM
3.1. Pengaturan Properties Form Aplikasi Game Tetris
Pengaturan atau setting properties dilakukan sesuai dengan kebutuhan tampilan form dan penulisan kode program aplikasi game tetris.
Tabel 3.1. Setting Properties Form1 ( MainF.frm )
OBJEK PROPERTIES PENGATURAN
Form
( Name ) AutoRedraw BackColor Caption StartUpPosition Form1 False &H00FF80FF& TETRIS Desilia Selvida
2 - CenterScreen
CommandButton
( Name ) BackColor Caption Index A &H00C0C0FF& 1 CommandButton
( Name ) BackColor Caption Index A &H00C0C0FF& 11 CommandButton
( Name ) BackColor Caption Index A &H00C0C0FF& 12
(27)
CommandButton
( Name ) BackColor Caption Index A &H00C0C0FF& 13 CommandButton
( Name ) BackColor Caption Index A &H00C0C0FF& 14 CommandButton
( Name ) BackColor Caption Index A &H00C0C0FF& 2 CommandButton
( Name ) BackColor Caption Index A &H00C0C0FF& 21 CommandButton
( Name ) BackColor Caption Index A &H00C0C0FF& 22 CommandButton
( Name ) BackColor Caption Index A &H00C0C0FF& 23 CommandButton
( Name ) BackColor Caption Index A &H00C0C0FF& 24 CommandButton
( Name ) BackColor Caption Index A &H00C0C0FF& 3
(28)
CommandButton
( Name ) BackColor Caption Index C &H00000000& 117 CommandButton
( Name ) BackColor Caption Index C &H00FFC0FF& 118 CommandButton
( Name ) BackColor Caption Index C &H00000000& 119 CommandButton
( Name ) BackColor Caption Index C &H008080FF& 12 CommandButton
( Name ) BackColor Caption Index C &H00FFC0C0& 120 CommandButton
( Name ) BackColor Caption Index C &H00000000& 121 CommandButton
( Name ) BackColor Caption Index C &H008080FF& 122 CommandButton
( Name ) BackColor Caption Index C &H00000000& 123
(29)
CommandButton
( Name ) BackColor Caption Index C &H00C0FFFF& 124 CommandButton
( Name ) BackColor Caption Index C &H00000000& 125 CommandButton
( Name ) BackColor Caption Index C &H00FFFFC0& 126 CommandButton
( Name ) BackColor Caption Index C &H00000000& 127 CommandButton
( Name ) BackColor Caption Index C &H00FFC0FF& 128 CommandButton
( Name ) BackColor Caption Index C &H00000000& 129 CommandButton
( Name ) BackColor Caption Index C &H00000000& 13 CommandButton
( Name ) BackColor Caption Index C &H00FFC0C0& 130
(30)
CommandButton
( Name ) BackColor Caption Index C &H00000000& 131 CommandButton
( Name ) BackColor Caption Index C &H008080FF& 132 CommandButton
( Name ) BackColor Caption Index C &H00000000& 133 CommandButton
( Name ) BackColor Caption Index C &H00C0FFFF& 134 CommandButton
( Name ) BackColor Caption Index C &H00000000& 135 CommandButton
( Name ) BackColor Caption Index C &H00FFFFC0& 136 CommandButton
( Name ) BackColor Caption Index C &H00000000& 137 CommandButton
( Name ) BackColor Caption Index C &H00FFC0FF& 138
(31)
CommandButton
( Name ) BackColor Caption Index C &H00000000& 139 CommandButton
( Name ) BackColor Caption Index C &H00FFC0C0& 140 CommandButton
( Name ) BackColor Caption Index C &H000000FF& 141 CommandButton
( Name ) BackColor Caption Index C &H000000FF& 142 CommandButton
( Name ) BackColor Caption Index C &H000000FF& 143 CommandButton
( Name ) BackColor Caption Index C &H000000FF& 144 CommandButton
( Name ) BackColor Caption Index C &H000000FF& 145 CommandButton
( Name ) BackColor Caption Index C &H000000FF& 146
(32)
CommandButton
( Name ) BackColor Caption Index C &H000000FF& 147 CommandButton
( Name ) BackColor Caption Index C &H000000FF& 148 CommandButton
( Name ) BackColor Caption Index C &H000000FF& 149 CommandButton
( Name ) BackColor Caption Index C &H00000000& 15 CommandButton
( Name ) BackColor Caption Index C &H000000FF& 150 CommandButton
( Name ) BackColor Caption Index C &H00000000& 151 CommandButton
( Name ) BackColor Caption Index C &H00000000& 152 CommandButton
( Name ) BackColor Caption Index C &H00000000& 153
(33)
CommandButton
( Name ) BackColor Caption Index C &H00000000& 154 CommandButton
( Name ) BackColor Caption Index C &H00000000& 155 CommandButton
( Name ) BackColor Caption Index C &H00000000& 156 CommandButton
( Name ) BackColor Caption Index C &H00000000& 157 CommandButton
( Name ) BackColor Caption Index C &H00000000& 158 CommandButton
( Name ) BackColor Caption Index C &H00000000& 159 CommandButton
( Name ) BackColor Caption Index C &H00000000& 17 CommandButton
( Name ) BackColor Caption Index C &H00FFC0FF& 18
(34)
CommandButton
( Name ) BackColor Caption Index C &H00000000& 19 CommandButton
( Name ) BackColor Caption Index C &H000000FF& 2 CommandButton
( Name ) BackColor Caption Index C &H00FFC0C0& 20 CommandButton
( Name ) BackColor Caption Index C &H00000000& 21 CommandButton
( Name ) BackColor Caption Index C &H008080FF& 22 CommandButton
( Name ) BackColor Caption Index C &H00000000& 23 CommandButton
( Name ) BackColor Caption Index C &H00C0FFFF& 24 CommandButton
( Name ) BackColor Caption Index C &H00000000& 25
(35)
CommandButton
( Name ) BackColor Caption Index C &H00FFFFC0& 26 CommandButton
( Name ) BackColor Caption Index C &H00000000& 27 CommandButton
( Name ) BackColor Caption Index C &H00FFC0FF& 28 CommandButton
( Name ) BackColor Caption Index C &H00000000& 29 CommandButton
( Name ) BackColor Caption Index C &H000000FF& 3 CommandButton
( Name ) BackColor Caption Index C &H00FFC0C0& 30 CommandButton
( Name ) BackColor Caption Index C &H00000000& 31 CommandButton
( Name ) BackColor Caption Index C &H008080FF& 32
(36)
CommandButton
( Name ) BackColor Caption Index C &H00000000& 33 CommandButton
( Name ) BackColor Caption Index C &H00C0FFFF& 34 CommandButton
( Name ) BackColor Caption Index C &H00000000& 35 CommandButton
( Name ) BackColor Caption Index C &H00FFFFC0& 36 CommandButton
( Name ) BackColor Caption Index C &H00000000& 37 CommandButton
( Name ) BackColor Caption Index C &H00FFC0FF& 38 CommandButton
( Name ) BackColor Caption Index C &H00000000& 39 CommandButton
( Name ) BackColor Caption Index C &H000000FF& 4
(37)
CommandButton
( Name ) BackColor Caption Index C &H00FFC0C0& 40 CommandButton
( Name ) BackColor Caption Index C &H00000000& 41 CommandButton
( Name ) BackColor Caption Index C &H008080FF& 42 CommandButton
( Name ) BackColor Caption Index C &H00000000& 43 CommandButton
( Name ) BackColor Caption Index C &H00C0FFFF& 44 CommandButton
( Name ) BackColor Caption Index C &H00000000& 45 CommandButton
( Name ) BackColor Caption Index C &H00FFFFC0& 46 CommandButton
( Name ) BackColor Caption Index C &H00000000& 47
(38)
3.2. Flowchart
z
F F F
T T T T
KeyCode START
Rotate shape
Shape move down Shape
move left Shape
move right
end KeyCo
de = 48
KeyCo de = 54
KeyCo de = 52
KeyCo de = 53
(39)
3.3. Algoritma Program
Di sini penulis menggunakan algoritma. Adapun algoritma yang akan dibahas antara lain yaitu:
1. Algoritma Menu Utama
Langkah 1 : Klik Start
Buka Menu Utama Tampil file, start game
Langkah 2 : Jika Klik File Baca Menu File Langkah 3 : Jika Klik start game
Mainkan game
2. Algoritma Menu File
Langkah 1 : Baca menu file
Tampil pilihan menu project1 ( TETprg.vbp ), form, module dan exit Langkah 2 : Jika klik project1 ( TETprg.vbp )
Baca kode program project1 ( TETprg.vbp ) Langkah 3 : Jika klik module
Baca kode program module Langkah 4 : Jika klik exit
Keluar dari program
3. Algoritma Game Tetris
(40)
Maka permainan akan dimulai Langkah 2 : jika klik New Game
Permainan akan mengulang ke permainan baru Langkah 3 : jika klik Clear High Score
Nilai tertinggi yang telah ada akan terhapus Langkah 4 : jika klik tanda X
Keluar dari permainan
(41)
BAB 4
IMPLEMENTASI SISTEM
4.1. Pengertian dan Tujuan Implementasi
Implementasi sistem adalah prosedur yang dilakukan untuk menyelesaikan desain sistem yang ada dalam dokumen desain sistem yang disetujui dan menguji, menginstal dan memulai menggunakan sistem yang baru atau sistem yang diperbaiki.
Tujuan dari implementasi sistem adalah sebagai berikut :
1. Menyelesaikan desain sistem yang ada dalam dokumen desain sistem yang disetujui
2. Menulis, menguji dan mendokumentasikan program dan prosedur yang diperlukan oleh dokumen desain sistem yang disetujui
3. Memastikan bahwa personal dapat mengoperasikan sistem baru 4. Memperhitungkan bahwa sistem memenuhi permintaan pemakai 5. Memastikan bahwa konversi ke sistem baru berjalan dengan benar.
4.2Penerapan Sistem
Agar dapat memeperoleh hasil yang telah direncanakan dan demi mencapai keinginan yang dimaksud dalam perancangan atau desain sistem yang telah penulis buat ini
(42)
tentunya membutuhkan beberapa komponen untuk menunjang proses pengerjaannya, antara lain :
1. Hardware (Perangkat Keras)
Hardware adalah seluruh komponen-komponen peralatan yang membentuk suatu sistem komputer dan peralatan lainnya yang memungkinkan komputer dapat melaksanakan tugasnya. Dalam penyusunan aplikasi game tetris ini, dibutuhkan hardware sebagai berikut :
a. Satu unit CPU ( komputer ) atau Laptop
b. RAM 64 MB atau juga dapat dipakai RAM dengan kapasitas yang lebih besar
c. CD-ROM
d. Harddisk dengan ruang kapasitas di atas 5 GB. e. Keyboard dan mouse
f. Printer sebagai media pencetakan.
2. Software (Perangkat Lunak)
Dengan adanya fasilitas hardware (perangkat keras) atau komputer, tentu tidak akan dapat memecahkan masalah (problem) atau tidak dapat digunakan tanpa adanya bantuan penuh dari software (perangkat lunak).
Yang dimaksud dengan software adalah komponen dari pada sistem pengolahan data yang diluar dari peralatan komputernya sendiri. Adapun software yang digunakan dalam membuat aplikasi game tetris ini adalah sebagai berikut :
a. Sistem Operasi
Yang digunakan merupakan sistem yang dapat mendukung software yang akan digunakan, misalnya Windows 98, Windows XP, Windows ME,
(43)
Windows 2000 Server, Windows Vista dan Windows laninnya yang dapat mendukung Program tersebut.
b. Bahasa Pemrograman Visual Basic Versi 6.0.
3. Brainware
Konsekuensi daripada dibentuknya atau dikembangkannya proyek sistem komputerisasi atau adanya mesin komputer sebagai alat bantu yang mampu dibidang pemrograman, maka aspek manusia yang menangani proyek tersebut harus juga dipikirkan. Inilah yang digolongkan kepada aspek brainware. Untuk menjalankan sistem aplikasi yang dibuat oleh penulis yang dibutuhkan seorang yang tahu bagaimana mengoperasikan software visual basic 6.0. Dengan membutuhkan orang yang memiliki keahlian dalam bidang komputer dan pemrograman, diharapkan desain aplikasi game yang dirancang dapat dikembangkan ke arah yang lebih baik guna memudahkan untuk penggunaanya. Faktor Brainware dalam hal ini adalah manusia yang dibutuhkan adalah :
a. User, yaitu orang yang mengoperasikan permainan aplikasi game tetris b. Programer, yaitu orang yang mengerti bahasa pemograman yang
(44)
4.3. Desain Aplikasi Game Tetris
Gambar 4.1. Desain Game
4.4. Cara Menjalankan Aplikasi Game Tetri
Berikut cara menjalankan aplikasi game Tetris
1. Tekan tombol F5 ( start ), maka aplikasi game tetris dapat dimainkan. Perhatikan Gambar 4.1. kotak yang berada diatas score menampilkan balok berikutnya yang akan muncul dilayar permainan. Aturlah balok – balok tersebut berurutan secara horizontal dengan tidak membiarkan celah bujur sangkar kosong. Jika berhasil menyusunnya dengan secara demikian, maka score akan bertambah.
(45)
Gambar 4.2. Tampilan aplikasi Game Tetris
2. Untuk mengatur posisi balok – balok tersebut, tekan tobol 4 untuk mengatur ke kiri, tombol 6 untuk menggeser kekanan, tombol 5 untuk mempercepat laju ke bawah dan 0 untuk berputar
Gambar 4.3 Tampilan kalah game Tetris
3. Jika kalah dalam permainan game tetris ini akan muncul kotak pesan YOU LOSE GAME! Klik command button OK untuk keluar dari kotak pesan tersebut.
(46)
4. Jika ingin bermain lagi klik command button New Game.
(47)
BAB 5
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Berdasarkan dari uraian bab terdahulu maka penulis dapat mengambil kesimpulan antara lain :
1. Aplikasi ini dibuat agar penikmat game mengetahui pembuatan dan pengembangannya jangan hanya tahu mengoperasikannya saja.
2. Merancang suatu aplikasi dan menghasilklan program akhir yang berakhiran EXE yang bersifat executable dapat langsung dijalankan dengan mudah.
3. Game ini sangat sederhana dan dapat di operasikan dengan mudah oleh siapa saja terutama bagi anak – anak sangat cocok untuk melatih kemampuan otak
6.1. Saran
Saran dari tugas akhir ini adalah :
1. Dengan adanya pembuatan sederhana game tetris pada lingkungan visual basic 6.0 ini diharapkan dapat memberi sedikit pengetahuan tentang cara pembuatannya yang sederhana.
(48)
2. Dengan adanya penyusunan tugas akhir ini dapat diharapkan berguna bagi para mahasiswa yang akan terjun langsung ketengah – tengah masyarakat.
3. Penulis menyadari kekurangan akan program ini, maka untuk melanjutkan agar pendapat hasil yang paling maksimal sebaiknya program dikembangkan sebagai fasilitas untuk penyajian informasi berdasarkan yang di kehendaki.
(49)
F. DAFTAR PUSTAKA
1. Hasballah, Fajrillah, 2005. “Aplikasi Game dan Multimedia dengan VB” Yogyakarta, Andi
2.
3. Andi, dkk, 2004. “Aplilkasi Database Visual Basic 6.0 dengan Crystal
(50)
L
A
M
P
I
R
A
N
(51)
Penulisan Kode Program Aplikasi Game Tetris
A. Kode program aplikasi game tetris untuk form1 ( MainF.frm ) adalah sebagai berikut.
Dim BANK As Database Dim RS As DAO.Recordset
Private Sub C_GotFocus(Index As Integer) KeyDownC.SetFocus
End Sub
Private Sub Check1_Click() KeyDownC.SetFocus End Sub
Private Sub Check1_KeyDown(KeyCode As Integer, Shift As Integer) KeyDownC.SetFocus
End Sub
Private Sub Command1_Click() RS.MoveFirst
RS.Edit
(52)
RS.Update
HIS.Caption = "Hi Score : " + CStr(RS("hiscoref")) If KeyDownC.Enabled Then KeyDownC.SetFocus End Sub
Private Sub Form_GotFocus() KeyDownC.SetFocus
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 39 Then Call MOVErigth
If KeyCode = 37 Then Call MOVEleft
End Sub
Private Sub Form_Load() 'KeyDownC.SetFocus
Set BANK = DBEngine.OpenDatabase(App.Path + "\hiscore.mdb") Set RS = BANK.OpenRecordset("his")
RS.MoveFirst
HIS.Caption = "Hi Score : " + CStr(RS("hiscoref")) BEGflag = True
If SND.Value = 1 Then j = sndPlaySound(App.Path + "\startGAME.wav", 0) nextSHAPE
(53)
MAINtimer.Enabled = True End Sub
Private Sub Form_Unload(Cancel As Integer)
If SND.Value = 1 Then j = sndPlaySound(App.Path + "\gameOVER.wav", SND_ASYNC Or SND_LOOP)
End Sub
Private Sub KeyDownC_KeyPress(KeyCode As Integer) KeyDownC.Caption = KeyAscii
'Form1.BackColor = GRRc.BackColor If KeyCode = 48 Then
If SELshape = 4 Then SELshape = 1 Else
SELshape = SELshape + 1 End If
End If
If KeyCode = 48 Then Call ROTATEshape If KeyCode = 54 Then Call MOVErigth If KeyCode = 52 Then Call MOVEleft If KeyCode = 53 Then Call MOVEdown 'If KeyCode = 51 Then Call nextSHAPE If KeyCode = 32 Then
(54)
Call MOVEdown End If
If KeyCode = 112 Or KeyCode = 80 Then Call pouseKEY
End If End Sub
Function GetMEi() 'If BEGflag Then ' BEGflag = False ' Call GetMEi 'End If
COLORt = S(6) 'PRi = i
'rewFLAG = True Randomize Timer pishi1 = Rnd * 1000 For i = 1 To 8
If pishi1 > i * 142 - 142 And pishi1 <= i * 142 Then Exit For Next i
TEMPi = PRi DEFshape
If Not BEGflag Then PRi = i
(55)
Call PRIshape Else
BEGflag = False Call GetMEi End If
i = TEMPi 'BEGflag = False End Function
Function nextSHAPE() KeepFLAG = True MainI = 4
SELshape = 1 'For k = 1 To 160 ' MM(k) = False 'Next k
If KeepFLAG = True Then GetMEi
DEFshape End If
For j = 0 To 3
MM(MainI + S(j)) = S(6) Next j
For cleaner = 1 To 160 If MM(cleaner) <> 0 Then
(56)
If MM(cleaner) = 1 Then C(cleaner).BackColor = BCOLOR(1).BackColor If MM(cleaner) = 2 Then C(cleaner).BackColor = BCOLOR(2).BackColor If MM(cleaner) = 3 Then C(cleaner).BackColor = BCOLOR(3).BackColor If MM(cleaner) = 4 Then C(cleaner).BackColor = BCOLOR(4).BackColor If MM(cleaner) = 5 Then C(cleaner).BackColor = BCOLOR(5).BackColor If MM(cleaner) = 6 Then C(cleaner).BackColor = BCOLOR(6).BackColor If MM(cleaner) = 7 Then C(cleaner).BackColor = BCOLOR(7).BackColor Else
C(cleaner).BackColor = BLAKc.BackColor End If
Next cleaner
If SND.Value = 1 Then j = sndPlaySound(App.Path + "\fallDOWN.wav", SND_ASYNC Or SND_LOOP)
End Function
Private Sub LEVEL_KeyPress(KeyAscii As Integer) If KeyAscii = 112 Then
Call pouseKEY End If
End Sub
Private Sub MAINtimer_Timer() MOVEdown
(57)
Function ROTATEshape() KeepFLAG = True
'MainI = 4 For j = 0 To 3
MM(MainI + S(j)) = 0 Next j
'If KeepFLAG = True Then 'GetMEi
DEFshape 'End If
temp = MainI Mod 10 If temp = 0 Then temp = 10 row = ((MainI - (temp)) / 10) + 1
If MainI > S(4) + ((row - 1) * 10) Then fillFLAG = True For q = 0 To 3
If MM(MainI + S(q)) Then fillFLAG = True Next q
If fillFLAG Then
If SELshape = 1 Then SELshape = 4 Else
SELshape = SELshape - 1 End If
End If DEFshape
(58)
fillFLAG = False For j = 0 To 3
MM(MainI + S(j)) = S(6) Next j
For cleaner = 1 To 160 If MM(cleaner) <> 0 Then
If MM(cleaner) = 1 Then C(cleaner).BackColor = BCOLOR(1).BackColor If MM(cleaner) = 2 Then C(cleaner).BackColor = BCOLOR(2).BackColor If MM(cleaner) = 3 Then C(cleaner).BackColor = BCOLOR(3).BackColor If MM(cleaner) = 4 Then C(cleaner).BackColor = BCOLOR(4).BackColor If MM(cleaner) = 5 Then C(cleaner).BackColor = BCOLOR(5).BackColor If MM(cleaner) = 6 Then C(cleaner).BackColor = BCOLOR(6).BackColor If MM(cleaner) = 7 Then C(cleaner).BackColor = BCOLOR(7).BackColor Else
C(cleaner).BackColor = BLAKc.BackColor End If
Next cleaner
End Function
Function MOVErigth() KeepFLAG = True For j = 0 To 3
MM(MainI + S(j)) = False Next j
(59)
temp = MainI Mod 10 If temp = 0 Then temp = 10 row = ((MainI - (temp)) / 10) + 1
If MainI > S(4) + ((row - 1) * 10) Then MainI = MainI - 1
If i = 7 And (SELshape = 2 Or SELshape = 4) And temp = 1 Then MainI = MainI - 1 For q = 0 To 3
If MM(MainI + S(q)) Then fillFLAG = True Next q
If fillFLAG Then MainI = MainI - 1 fillFLAG = False
For j = 0 To 3
MM(MainI + S(j)) = S(6) Next j
For cleaner = 1 To 160 If MM(cleaner) <> 0 Then
If MM(cleaner) = 1 Then C(cleaner).BackColor = BCOLOR(1).BackColor If MM(cleaner) = 2 Then C(cleaner).BackColor = BCOLOR(2).BackColor If MM(cleaner) = 3 Then C(cleaner).BackColor = BCOLOR(3).BackColor If MM(cleaner) = 4 Then C(cleaner).BackColor = BCOLOR(4).BackColor If MM(cleaner) = 5 Then C(cleaner).BackColor = BCOLOR(5).BackColor If MM(cleaner) = 6 Then C(cleaner).BackColor = BCOLOR(6).BackColor If MM(cleaner) = 7 Then C(cleaner).BackColor = BCOLOR(7).BackColor Else
C(cleaner).BackColor = BLAKc.BackColor End If
(60)
Next cleaner
End Function
Function MOVEleft() KeepFLAG = True For j = 0 To 3
MM(MainI + S(j)) = 0 Next j
MainI = MainI - 1
row = ((MainI - (MainI Mod 10)) / 10) + 1
If MainI < 1 + ((row - 1) * 10) Then MainI = MainI + 1 For q = 0 To 3
If MM(MainI + S(q)) <> 0 Then fillFLAG = True Next q
If fillFLAG Then MainI = MainI + 1 fillFLAG = False
'If KeepFLAG = True Then '******************************** 'GetMEi
' DEFshape 'End If
For j = 0 To 3
MM(MainI + S(j)) = S(6) Next j
For cleaner = 1 To 160 If MM(cleaner) <> 0 Then
(61)
If MM(cleaner) = 1 Then C(cleaner).BackColor = BCOLOR(1).BackColor If MM(cleaner) = 2 Then C(cleaner).BackColor = BCOLOR(2).BackColor If MM(cleaner) = 3 Then C(cleaner).BackColor = BCOLOR(3).BackColor If MM(cleaner) = 4 Then C(cleaner).BackColor = BCOLOR(4).BackColor If MM(cleaner) = 5 Then C(cleaner).BackColor = BCOLOR(5).BackColor If MM(cleaner) = 6 Then C(cleaner).BackColor = BCOLOR(6).BackColor If MM(cleaner) = 7 Then C(cleaner).BackColor = BCOLOR(7).BackColor Else
C(cleaner).BackColor = BLAKc.BackColor End If
Next cleaner
End Function
Function MOVEdown() Dim lineFLAG As Boolean
SCORE.Text = Val(SCORE.Text) + 5 'If MAINtimer.Interval < 200 Then ' MAINtimer.Interval = 500
' LEVEL.Text = Val(LEVEL.Text) + 1 'End If
'MAINtimer.Interval = MAINtimer.Interval - 2
'If SND.Value = 1 Then j = sndPlaySound(App.Path + "\falldown.wav", SND_ASYNC)
(62)
For j = 0 To 3
MM(MainI + S(j)) = 0 Next j
MainI = MainI + 10 'If MainI > S(5) Then 'p = i
'End If
For q = 0 To 3
If MM(MainI + S(q)) <> 0 Then fillFLAG = True Next q
If S(5) < MainI Or fillFLAG Then MainI = MainI - 10
For p = 0 To 3
MM(MainI + S(p)) = S(6) Next p
fillFLAG = False
If MainI < 10 And Not BEGflag1 Then MAINtimer.Enabled = False
If Val(SCORE.Text) > RS("hiscoref") Then RS.Edit
RS("hiscoref") = Val(SCORE.Text) RS.Update
End If
HIS.Caption = "Hi Score : " + CStr(RS("hiscoref")) C(44).BackColor = Smile.BackColor
(63)
C(47).BackColor = Smile.BackColor C(62).BackColor = Smile.BackColor C(73).BackColor = Smile.BackColor C(84).BackColor = Smile.BackColor C(85).BackColor = Smile.BackColor C(86).BackColor = Smile.BackColor C(87).BackColor = Smile.BackColor C(78).BackColor = Smile.BackColor C(69).BackColor = Smile.BackColor
If SND.Value = 1 Then j = sndPlaySound(App.Path + "\gameOVER.wav", SND_ASYNC Or SND_LOOP)
MsgBox "YOU LOSE THE GAME ! " KeyDownC.Enabled = False
Exit Function End If
BEGflag1 = False For w = 0 To 15 lineFLAG = True For e = 1 To 10
If MM(w * 10 + e) = 0 Then lineFLAG = False Next e
If lineFLAG = True Then
SCORE.Text = Val(SCORE.Text) + 100 For r = w To 1 Step -1
(64)
MM(r * 10 + t) = MM((r - 1) * 10 + t) MM((r - 1) * 10 + t) = 0
'If MM(r * 10 + t) Then C(r * 10 + t).BackColor = GRRc.BackColor Else C(r * 10 + t).BackColor = BLAKc.BackColor
Next t Next r 'GoTo 1
If SND.Value = 1 Then j = sndPlaySound(App.Path + "\LINEFILL.wav", SND_ASYNC)
End If Next w
For cleaner = 1 To 160 If MM(cleaner) <> 0 Then
If MM(cleaner) = 1 Then C(cleaner).BackColor = BCOLOR(1).BackColor If MM(cleaner) = 2 Then C(cleaner).BackColor = BCOLOR(2).BackColor If MM(cleaner) = 3 Then C(cleaner).BackColor = BCOLOR(3).BackColor If MM(cleaner) = 4 Then C(cleaner).BackColor = BCOLOR(4).BackColor If MM(cleaner) = 5 Then C(cleaner).BackColor = BCOLOR(5).BackColor If MM(cleaner) = 6 Then C(cleaner).BackColor = BCOLOR(6).BackColor If MM(cleaner) = 7 Then C(cleaner).BackColor = BCOLOR(7).BackColor Else
C(cleaner).BackColor = BLAKc.BackColor End If
Next cleaner
(65)
nextSHAPE Else
If FASTdownFLAG Then Call MOVEdown End If
'If MainI > 140 Then MainI = MainI - 10 'If KeepFLAG = True Then
'GetMEi 'DEFshape 'End If
For j = 0 To 3
MM(MainI + S(j)) = S(6) Next j
For cleaner = 1 To 160 If MM(cleaner) <> 0 Then
If MM(cleaner) = 1 Then C(cleaner).BackColor = BCOLOR(1).BackColor If MM(cleaner) = 2 Then C(cleaner).BackColor = BCOLOR(2).BackColor If MM(cleaner) = 3 Then C(cleaner).BackColor = BCOLOR(3).BackColor If MM(cleaner) = 4 Then C(cleaner).BackColor = BCOLOR(4).BackColor If MM(cleaner) = 5 Then C(cleaner).BackColor = BCOLOR(5).BackColor If MM(cleaner) = 6 Then C(cleaner).BackColor = BCOLOR(6).BackColor If MM(cleaner) = 7 Then C(cleaner).BackColor = BCOLOR(7).BackColor Else
C(cleaner).BackColor = BLAKc.BackColor End If
(66)
'If lineFLAG = True Then ' lineFLAG = False ' Exit Function 'End If
End Function
Private Sub NEW_GAME_Click()
HIS.Caption = "Hi Score : " + CStr(RS("hiscoref")) MainI = 4
For lk = 0 To 160 MM(lk) = 0 Next lk
SCORE.Text = 0 LEVEL.Text = 1
MAINtimer.Enabled = True KeyDownC.Enabled = True
If KeyDownC.Enabled Then KeyDownC.SetFocus
If SND.Value = 1 Then j = sndPlaySound(App.Path + "\startGAME.wav", SND_ASYNC Or SND_LOOP)
End Sub
Private Sub NEW_GAME_KeyPress(KeyAscii As Integer) If KeyAscii = 112 Or KeyAscii = 80 Then
(67)
End If
End Sub
Function pouseKEY()
MAINtimer.Enabled = Not MAINtimer.Enabled KeyDownC.Enabled = Not KeyDownC.Enabled If KeyDownC.Enabled Then KeyDownC.SetFocus End Function
Private Sub SCORE_KeyPress(KeyAscii As Integer) If KeyAscii = 112 Or KeyAscii = 80 Then
Call pouseKEY End If
End Sub
Function PRIshape() For m = 1 To 4
A(m).BackColor = PINKc.BackColor A(m + 10).BackColor = PINKc.BackColor A(m + 20).BackColor = PINKc.BackColor A(m + 30).BackColor = PINKc.BackColor Next m
If S(6) = 0 Then Exit Function Select Case PRi
(68)
Case 1 GoTo 1 Case 2 GoTo 2 Case 3 GoTo 3 Case 4 GoTo 4 Case 5 GoTo 5 Case 6 GoTo 6 Case 7 GoTo 7 End Select 1
A(2).BackColor = BCOLOR(S(6)).BackColor A(3).BackColor = BCOLOR(S(6)).BackColor A(11).BackColor = BCOLOR(S(6)).BackColor A(12).BackColor = BCOLOR(S(6)).BackColor Exit Function
2
A(1).BackColor = BCOLOR(S(6)).BackColor A(2).BackColor = BCOLOR(S(6)).BackColor A(12).BackColor = BCOLOR(S(6)).BackColor
(69)
A(13).BackColor = BCOLOR(S(6)).BackColor Exit Function
3
A(1).BackColor = BCOLOR(S(6)).BackColor A(11).BackColor = BCOLOR(S(6)).BackColor A(21).BackColor = BCOLOR(S(6)).BackColor A(22).BackColor = BCOLOR(S(6)).BackColor Exit Function
4
A(2).BackColor = BCOLOR(S(6)).BackColor A(12).BackColor = BCOLOR(S(6)).BackColor A(21).BackColor = BCOLOR(S(6)).BackColor A(22).BackColor = BCOLOR(S(6)).BackColor Exit Function
5
A(2).BackColor = BCOLOR(S(6)).BackColor A(11).BackColor = BCOLOR(S(6)).BackColor A(12).BackColor = BCOLOR(S(6)).BackColor A(13).BackColor = BCOLOR(S(6)).BackColor Exit Function
(70)
A(1).BackColor = BCOLOR(S(6)).BackColor A(2).BackColor = BCOLOR(S(6)).BackColor A(11).BackColor = BCOLOR(S(6)).BackColor A(12).BackColor = BCOLOR(S(6)).BackColor Exit Function
7
A(1).BackColor = BCOLOR(S(6)).BackColor A(2).BackColor = BCOLOR(S(6)).BackColor A(3).BackColor = BCOLOR(S(6)).BackColor A(4).BackColor = BCOLOR(S(6)).BackColor Exit Function
End Function
Private Sub SND_Click()
If KeyDownC.Enabled Then KeyDownC.SetFocus End Sub
(71)
B. Kode program untuk Modules yg diberi nama ( PhisiM.bas ).
Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Global S(6) As Integer 'global s2(3) As Integer 'Global s3(3) As Integer 'Global s4(3) As Integer 'Global s5(3) As Integer 'Global s6(3) As Integer 'Global s7(3) As Integer
Global MM(160) As Integer 'if 0 then null if 1 then blue if 2 red Global SELshape As Integer
Global MainI As Integer Global KeepFLAG As Boolean Global rewFLAG As Boolean Global i As Integer
Global row As Integer Global fillFLAG As Boolean
Global FASTdownFLAG As Boolean Global ShColor As Integer
Global PRi As Integer Global BEGflag As Boolean Global TEMPi As Integer
(72)
Global BEGflag1 As Boolean Global COLORt As Integer
Function DEFshape() Select Case SELshape Case 1
'KIND a Select Case i Case 1 S(0) = 1 S(1) = 2 S(2) = 10 S(3) = 11 S(4) = 8 S(5) = 140 Case 2 S(0) = 0 S(1) = 1 S(2) = 11 S(3) = 12 S(4) = 8 S(5) = 140 Case 3 S(0) = 0
(73)
S(1) = 10 S(2) = 20 S(3) = 21 S(5) = 130 S(4) = 9 Case 4 S(0) = 1 S(1) = 11 S(2) = 20 S(3) = 21 S(4) = 9 S(5) = 130 Case 5 S(0) = 1 S(1) = 10 S(2) = 11 S(3) = 12 S(4) = 8 S(5) = 140 Case 6 S(0) = 0 S(1) = 1 S(2) = 10 S(3) = 11 S(4) = 9
(74)
S(5) = 140 Case 7 S(0) = 0 S(1) = 1 S(2) = 2 S(3) = 3 S(4) = 7 S(5) = 150 End Select Case 2 'KIND b Select Case i Case 1 S(0) = 0 S(1) = 10 S(2) = 11 S(3) = 21 S(4) = 9 S(5) = 130 Case 2 S(0) = 1 S(1) = 10 S(2) = 11 S(3) = 20 S(4) = 9
(75)
S(5) = 130 Case 3 S(0) = 0 S(1) = 1 S(2) = 2 S(3) = 10 S(4) = 8 S(5) = 140 Case 4 S(0) = 0 S(1) = 10 S(2) = 11 S(3) = 12 S(4) = 8 S(5) = 140 Case 5 S(0) = 0 S(1) = 10 S(2) = 11 S(3) = 20 S(4) = 9 S(5) = 130 Case 6 S(0) = 0 S(1) = 1
(76)
S(2) = 10 S(3) = 11 S(4) = 9 S(5) = 140 Case 7 S(0) = 0 S(1) = 10 S(2) = 20 S(3) = 30 S(4) = 10 S(5) = 120 End Select Case 3 'KIND c Select Case i Case 1 S(0) = 1 S(1) = 2 S(2) = 10 S(3) = 11 S(4) = 8 S(5) = 140 Case 2 S(0) = 0 S(1) = 1
(77)
S(2) = 11 S(3) = 12 S(4) = 8 S(5) = 140 Case 3 S(0) = 0 S(1) = 1 S(2) = 11 S(3) = 21 S(4) = 9 S(5) = 130 Case 4 S(0) = 0 S(1) = 1 S(2) = 10 S(3) = 20 S(4) = 9 S(5) = 130 Case 5 S(0) = 0 S(1) = 1 S(2) = 2 S(3) = 11 S(4) = 8 S(5) = 140
(78)
Case 6 S(0) = 0 S(1) = 1 S(2) = 10 S(3) = 11 S(4) = 9 S(5) = 140 Case 7 S(0) = 0 S(1) = 1 S(2) = 2 S(3) = 3 S(4) = 7 S(5) = 150 End Select Case 4 'KIND d Select Case i Case 1 S(0) = 0 S(1) = 10 S(2) = 11 S(3) = 21 S(4) = 9 S(5) = 130
(79)
Case 2 S(0) = 1 S(1) = 10 S(2) = 11 S(3) = 20 S(4) = 9 S(5) = 130 Case 3 S(0) = 2 S(1) = 10 S(2) = 11 S(3) = 12 S(4) = 8 S(5) = 140 Case 4 S(0) = 0 S(1) = 1 S(2) = 2 S(3) = 12 S(4) = 8 S(5) = 140 Case 5 S(0) = 1 S(1) = 10 S(2) = 11
(80)
S(3) = 21 S(4) = 9 S(5) = 130 Case 6 S(0) = 0 S(1) = 1 S(2) = 10 S(3) = 11 S(4) = 9 S(5) = 140 Case 7 S(0) = 0 S(1) = 10 S(2) = 20 S(3) = 30 S(4) = 10 S(5) = 120 End Select End Select Select Case i Case 1 S(6) = 1 Case 2 S(6) = 2 Case 3
(81)
S(6) = 3 Case 4 S(6) = 4 Case 5 S(6) = 5 Case 6 S(6) = 6 Case 7 S(6) = 7 End Select End Function
(1)
S(2) = 10 S(3) = 11 S(4) = 9 S(5) = 140 Case 7 S(0) = 0 S(1) = 10 S(2) = 20 S(3) = 30 S(4) = 10 S(5) = 120 End Select Case 3 'KIND c Select Case i Case 1 S(0) = 1 S(1) = 2 S(2) = 10 S(3) = 11 S(4) = 8 S(5) = 140 Case 2 S(0) = 0
(2)
S(4) = 8 S(5) = 140 Case 3 S(0) = 0 S(1) = 1 S(2) = 11 S(3) = 21 S(4) = 9 S(5) = 130 Case 4 S(0) = 0 S(1) = 1 S(2) = 10 S(3) = 20 S(4) = 9 S(5) = 130 Case 5 S(0) = 0 S(1) = 1 S(2) = 2 S(3) = 11 S(4) = 8 S(5) = 140
(3)
Case 6 S(0) = 0 S(1) = 1 S(2) = 10 S(3) = 11 S(4) = 9 S(5) = 140 Case 7 S(0) = 0 S(1) = 1 S(2) = 2 S(3) = 3 S(4) = 7 S(5) = 150 End Select Case 4 'KIND d Select Case i Case 1 S(0) = 0 S(1) = 10 S(2) = 11 S(3) = 21 S(4) = 9
(4)
S(1) = 10 S(2) = 11 S(3) = 20 S(4) = 9 S(5) = 130 Case 3 S(0) = 2 S(1) = 10 S(2) = 11 S(3) = 12 S(4) = 8 S(5) = 140 Case 4 S(0) = 0 S(1) = 1 S(2) = 2 S(3) = 12 S(4) = 8 S(5) = 140 Case 5 S(0) = 1 S(1) = 10 S(2) = 11
(5)
S(3) = 21 S(4) = 9 S(5) = 130 Case 6 S(0) = 0 S(1) = 1 S(2) = 10 S(3) = 11 S(4) = 9 S(5) = 140 Case 7 S(0) = 0 S(1) = 10 S(2) = 20 S(3) = 30 S(4) = 10 S(5) = 120 End Select End Select Select Case i Case 1 S(6) = 1 Case 2 S(6) = 2
(6)
S(6) = 4 Case 5 S(6) = 5 Case 6 S(6) = 6 Case 7 S(6) = 7 End Select End Function