Aplikasi Game Dengan Menggunakan Visual Basic 6.0

(1)

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