TUGAS AKHIR
OLEH :
DESILIA SELVIDA
NIM : 072406124
PROGRAM STUDI D-3 ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
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
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
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
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 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
DAFTAR ISI
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
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:
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
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
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
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
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,
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
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
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
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
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,
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
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.
= 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,
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
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
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
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 TETRIS Desilia Selvida
2 - CenterScreen
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
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
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
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
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
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
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
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
4. Jika ingin bermain lagi klik command button New Game.
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
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
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
L
A
M
P
I
R
A
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
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
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
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
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) = 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
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
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
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
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) = 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)
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(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
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
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
'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
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
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(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
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
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 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(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(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(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(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(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
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
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(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
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