JUDUL
SUBJUDUL
:
:
PENYUSUN
NPM
:
:
GAME KATABRAK
PERMAINAN KOSAKATA BAHASA INDONESIA DI
LINGKUNGAN ANDROID
KRISTIAN MAULANA
TI1091010
Pembimbing II
( Marwondo, S.T. )
NIDN : 04 061079 02
Informatika dan Bisnis Indonesia di Bandung, sejauh yang saya ketahui bukan
merupakan tiruan atau duplikasi dari skripsi yang sudah dipublikasikan dan atau
pernah dipakai untuk mendapat gelar sarjana di lingkungan Universitas
Informatika dan Bisnis Indonesia maupun di perguruan tinggi atau instansi
( KRISTIAN MAULANA )
NPM : TI 1091010
iii
ABSTRAK
Katabrak adalah permainan berbasis edukasi yang menggunakan Bahasa
Indonesia sebagai alat bantu utamanya. Katabrak dibangun tak sekedar sebagai
hiburan yang berfungsi mengisi waktu luang tetapi berguna untuk menambah
kosakata. Kelebihan katabrak dari aplikasi yang sebelumnya seperti carikata dan
teka-teki silang game katabrak lebih variatif baik dari cara bermain, dari sisi
grafis, maupun media yang digunakan. Aplikasi katabrak ini dikembangkan untuk
perangkat dengan sistem operasi Android sehingga dapat dimainkan pada
smartphone dan PC tablet.
Aplikasi katabrak dikembangkan dengan teknik rekayasa perangkat lunak
berbasis RUP. Dengan melalui beberapa tahapan seperti insepsi, elaborasi,
konstruksi dan transisi seperti yang dijelaskan oleh Ivar Jacobson. Selain itu
Katabrak ini juga dapat menyimpan data-data hasil permainan seperti total nilai
permainan dan kata-kata yang dimainkan, sehingga aplikasi lebih menyenangkan
apalagi disertakan fitur misi untuk lebih menantang.
ABSTRACT
Katabrak is edugame with Bahasa Indonesia to be main of game.
Katabrak builded not just entertain for wasting time but this application can be
add new vocabulary. Diferent katabrak with other edugame like find word or cros
word is more variatif with how to play, design and media in use. Katabrak
developed for Android smartphone and PC tablet.
Katabrak developed by RUP software engineering. Whit some phase like
inception, elaboration, construction, and transition what Ivar Jacobson was
publish. Whicis katabrak can record total score and words was played, and those
make katabrak more fun with mission.
KATA PENGANTAR
Segala puji syukur penulis panjatkan bagi Allah SWT yang dengan
keutamaan, Dia-lah pemilik segala pujian yang baik nan indah, atas rahmat dan
karunia-Nya penulis dapat menyelesaikan skripsi ini dengan baik.
program studi Sarjana Strata Satu (S1) di Jurusan Teknik Informatika Fakultas
menyadari bahwa baik dalam penyusunan laporan skripsi ini tidak mungkin dapat
diselesaikan tanpa bantuan dari berbagai pihak, sehingga pada kesempatan ini
penulis mengucapkan terimakasih yang sebesar-besarnya atas bantuan, dorongan,
dan saran dari berbagai pihak.
Dengan kesempatan ini pula, dengan tulus hati penulis ingin mengucapan
Marwondo, S.T. dan R. Yadi Rakhman A., S.T. sebagai dosen pembimbing
2.
3.
4.
5.
Arif Akuma kurami sebagai Music Creator dan Sound Effect Editor aplikasi
Katabrak.
Penulis berharap skripsi ini bermanfaat bagi yang membacanya dan semoga
Allah SWT membalas segala kebaikan semua pihak yang telah membantu dalam
vi
Penulis
vii
DAFTAR ISI
.......................................................................................................
....................................................................................................... Laman
ABSTRAK ........................................................................................ iv
ABSTRACT ........................................................................................ v
DAFTAR TABEL
....................................................................................................... Laman
xi
DAFTAR GAMBAR
....................................................................................................... Laman
xii
DAFTAR DIAGRAM
....................................................................................................... Laman
xiii
DAFTAR LAMPIRAN
....................................................................................................... Laman
74-1
74-25
xiv
74-3
BAB I
PENDAHULUAN
pikiran
dan
perasaan
seseorang
disimbolisasikan
supaya
dapat
menyampaikan arti kepada orang lain. Dari berbagai macam suku bangsa, dan
negara yang ada di bumi bahasa yang merupakan identitas negara. Bahasa
Indonesia saat ini sudah dikenal di mancanegara sebagai identitas bahasa Negara
dewasa khususnya pada umur 12 tahun keatas menjadi suatu perhatian penulis.
Permasalahan yang ada saat ini salah satu penyebabnya adalah karena Bahasa
Indonesia mulai tergerus oleh penggunaan bahasa asing. Penulis mencoba mencari
tahu media yang ada untuk meningkatkan perbendaharaan Bahasa Indonesia
masih sebatas TTS (cross-word) dan cari kata (find-word).
Dari
penulis mencoba
Android. Penulis berharap aplikasi dengan media interaktif ini dapat menjadi
uraian
latar
belakang
masalah
diatas
penulis
1.
2.
3.
digunakan di masyarakat.
Perkembangan
teknologi
informasi
belum
dimanfaatkan
secara
maksimal sehingga aplikasi yang ada masih berupa TTS dan cari kata.
meluas, maka penulis membatasi materi yang akan dibahas sebagai berikut
perangkat lunak Pembelajaran Kosakata Bahasa Indonesia akan dibangun hingga
pengenalan kata-kata tunggal.
1.3 Rumusan Masalah
menjadi inspirasi dalam penyusunan proposal tugas akhir ini. Dengan mengangkat
judul
GAME
KATABRAK:
PERMAINAN
KOSAKATA
BAHASA
ilmu yang telah didapat oleh penulis selama masa perkuliahan di Universitas
Informatika dan Bisnis Indonesia (UNIBI).
Penulis memberikan gambaran secara sistematis dan akurat mengenai fakta dan
data dan menguraikannya secara menyeluruh, berdasarkan sifat dan hubungan antara
fenomena yang diteliti. Penulis mencoba mengumpulan data dengan cara studi
pustaka atau studi literature dimana penulis mengumpulkan data dan informasi
yang dibutuhkan melalui buku, jurnal yang pernah diterbitkan baik melalui
internet ataupun karya tulis yang ada hubungannya dengan judul penelitian yang
diambil. Dalam tahapan penerapan perangkat lunak dapat dilakukan dengan
pemodelan Rational Unified Process (RUP), RUP ialah metode dengan tahapan
proses Unified Process yang iterative dalam mengembangkan software, model
RUP dikembangkan oleh salah satu divisi IBM bernama Rational Software
Corporation sejak tahun 2003. Dalam metode RUP terdapat empat tahapan.
Adapun tahapan yang digunakan adalah sebagai berikut :
1.
2.
3.
4.
Target utama dari tahapan inception ini ialah hanya memfokuskan pada
sistem yang akan dibangun sebagai dasar untuk menginisial cost dan budget
Pada tahapan Elaboration ini target utama yang dicapai ialah memperkirakan
resiko dan menganalisa dari awal hingga akhir dari tahapan ini.
Pada tahapan ini merupakan tahapan yang objektif dimana tahapan ini
merupakan tahapan pembuatan aplikasi sistem
BAB II
TINJAUAN PUSTAKA
adalah semua kata yang terdapat dalam suatu bahasa (Soedjito, 1992:1).
Penguasaan kosakata dapat memengaruhi keterampilan berbahasa seseorang.
sesuai dengan perkembangan zaman, sehingga tanpa kita sadari kosakata Bahasa
Indonesia tersebut selalu mengalami perkembangan yang sangat pesat sesuai
dengan perkembangan dan kemajuan teknologi. Oleh karena itu, siswa juga
words, compon words and idiom. (Richards, 1985:307), Kosakata ialah arti
kata, pembendaharaan kata atau kata yang sama artinya. (W.J.S.Poerwadarminto,
e. Daftar sejumlah kata dari suatu bahasa yang disusun secara urut
berdasar huruf abjad disertai keterangan
sama dan saling melengkapi, sehingga bermanfaat bagi siswa yang belajar
berbahasa. Namun didalam pelaksanaannya, penggunaan kosa kata harus
(EYD) yang terdapat pada Kamus Besar Bahasa Indonesia (KBBI) kata baku
memiliki pokok utama sebagai tolok ukur yang berlaku untuk kuantitas atau
Menurut Mulyono sebutan bahasa baku lazim disebut dengan istilah bahasa
standar atau ragam bahasan (Mulyono, 1995:7), sedangkan Tarigan
menjelaskan tentang kosakata baku sebagai berikut.
Kosakata baku adalah kata yang sesuai dengan EYD, atau kata
yang biasa digunakan dalam forum resmi, misalnya rapat,
diskusi. Kegiatan belajar mengajar, dan juga untruk penulisan
karya ilmiah, sedangkan kata nonbaku adalah kata yang
digunakan dalam kahidupan sehari-hari atau acara non-formal,
misalnya percakapan antarteman akrab. (Tarigan, 1984:30)
dari beberapa metode sehingga dapat menemukan suatu metode baru yang
tepat dalam proses belajar mengajar.
2.2.1 Definisi Metode Belajar
Menurut Djamaluddin dan Abdullah Aly Metode berasal dari kata meta
dan hodos, meta berarti melalui, dan hodos jalan jadi metode ialah jalan yang
harus dilalui untuk mencapai suatu tujuan (Kapita Selekta Pendidikan Islam,
1999:114). Menurut Poerwadarminta Metode adalah cara yang telah teratur dan
terpikir baik-baik untuk mencapai suatu maksud (KBBI, 1999:767). Menurut
Gagne belajar ialah sebagai suatu proses dimana suatu organisme berubah
perilakunya akibat suatu pengalaman (Gagne, 1984). Galloway dalam belajar
3.
Perubahan tersebut harus bersifat permanen dan tetap ada untuk waktu yang
2.
Soekamto 1992:10). Dari pengertian di atas dapat dibuat kesimpulan bahwa agar
terjadi proses belajar atau terjadinya perubahan tingkah laku sebelum kegiatan
internal dan bersifat pribadi dalam diri, agar proses belajar tersebut mengarah
pada tercapainya tujuan dalam kurikulum maka guru harus merencanakan dengan
jalan atau cara yang ditempuh seseorang untuk mencapai tujuan pembelajaran
yang diharapkan yang mencakup ingatan, retensi, pengolahan informasi, emosi
dan factor-faktor lain berdasarkan pengalaman-pengalaman sebelumnya.
2.2.2 Jenis Metode Belajar
Sudjana dalam buku Dasar-dasar Proses Belajar Mengajar tahun 1989, terdapat
bermacam-macam metode dalam mengajar, yaitu:
1.
Metode ceramah
3.
Metode Diskusi
2.
4.
5.
6.
7.
8.
9.
dasarnya
setiap metode
diharapkan menjadi
suatu
sistem
pembelajaran yang kooperatif, dimana setiap metode harus melibatkan materi ajar
dapat mendukung dan membantu ketika dalam suatu system pembelajaran.
2.2.3 Kriteria Pemilihan Metode Pembelajaran
Menurut Dick dan Cary (1985) kriteria yang baik untuk pemilihan metode
1.
2.
apakah untuk membeli atau memproduksi sendiri tersebut ada dana, tenaga
3.
4.
terdapat pada sumber-sumber yang ada, maka harus dibeli atau dibuat sendiri
dan fasilitasnya
yaitu: (a) kelaikan praktis; (b) kelaikan teknis; dan (c) kelaikan biaya.
2.3 Media Pembelajaran
Menurut AECT (Association
of
Education
and
Communication
2003:6). Gagne pada tahun 1970 mendefinisikan media adalah berbagai jenis
belajarnya, dalam kaitan ini Arief Sadiman dkk (2003:5) membagi beberapa jenis
sumber belajar yaitu:
a.
Bahan (Materials) atau yang biasa dikenal dengan perangkat lunak (software)
b.
c.
Teknik yaitu prosedur rutin atau acuan yang disiapkan untuk menggunakan
alat, bahan, orang dan lingkungan untuk menyajikan pesan. Seperti teknik
demontrasi, ceramah, tanya jawab, belajar mandiri.
d.
membantu proses pembelajaran Edgar Dale dalam Arief Sadiman dkk (2003c:7)
Kerucut Edgar Dale merupakan suatu acuan yang dalam pemilihan media
untuk sumber dan sarana belajar dengan tetap mengacu pada karakteristik serta
10
pemahaman
peserta
belajar
terhadap
informasi
yang
disampaikan.
peserta belajar. Berikut ini beberapa contoh dari banyak manfaat yang dapat
kita lihat dari penggunaan media dalam pembelajaran:
1. Media Asli/Tiruan
2. Media Grafis
Media grafis ialah semua media yang berupa tulisan/gambar, antara lain;
11
c. Media Poster
d. Karikatur
e. Still Picture/foto
f. Media Papan
g. Media Peta
3. Media proyeksi Ada dua macam, ialah media proyeksi diam dan bergerak,
dan ada pula disertai suara
4. Media Audio Media yang termasuk mesia audio ialah kaset audio, audio
CD, dan radio.
5. Media pandang dengar /Media audio visual diam, ialah slide suara
2.4 Platform Komputer
Dalam ilmu komputer, platform atau serambi merupakan kombinasi
antara sebuah arsitektur perangkat keras dengan sebuah kerangka kerja
1. Platform Server
2. Platform PC
3. Platform Mobile
4. Platform Tablet
12
mobile pada
tahun 2010,
dimana
platform
mobile mulai
oleh adanya virtual mesin atau emulator sebagai aplikasi yang menjembatani
aplikasi dapat berjalan pada platform yang berbeda. Adapun segementasi
dalam perhitungan komoditas
1.
2.
3.
4.
Wintel, yaitu perangkat keras komputer dengan Intel x86 atau yang
adalah perintah dalam bentuk program komputer yang bila dikerjakan atau
dieksekusi memberikan fungsi dan suatu layanan yang diharapkan, struktur data
13
lunak mungkin dibangun untuk memberikan hasil untuk beberapa pengguna atau
dibangun untuk pengguna yang lebih luas.
yang andal ialah perangkat lunak yang baik dapat memberikan kinerja sesuai
dengan fungsi dan dokumen yang berketerkaitan yang diperlukan oleh pengguna.
2.5.1 Komponen Perangkat Lunak
yang memiliki kosa kata yang terbatas, sebuah tata bahasa yang dibatasi secara
ekspilsit serta aturan-aturan sintak yang dibentuk secara baik.
Berikut
ini
klasifikasi
bahasa
pemrograman
menurut
tingkat
1.
2.
14
contohnya {, }, ?, <<, >>, &&, ||, dan lain sebagainya. Disebut tingkat
for, while, and, or, dsb. Komputer dapat mengerti bahasa manusia itu
3.
Sebagian perangkat lunak dibuat secara Custom Built, serta tidak dapat
2.
berbagai
banyak
aplikasi
yang
ada
Ian
Sommerville
1.Stand-alone applications
15
Embedded control systems aplikasi yang berkerja pada control system dan
aplikasi ini akan mengontrol serta memanage komponen perangkat
Suatu sistem yang didesain untuk memproses dengan kebutuhan data yang
besar dengan melakukan proses pengiriman secara Batch.
5. Entertainment systems
proses fisika atau situasi, dimana banyak termasuk sistem sepasasi dan
interaksi antar objek. Sistem ini memungkinkan perangkat PC bekerja secara
intensif dan memerlukan performa tinggi dalam mengerjakan pekerjaan
dengan sistem paralel
Aplikasi ini fungsinya mengoleksi data dari peralatan yang terhubung dengan
sensor dan aplikasi ini akan menerima dan meneruskan data tersebut untuk
diproses oleh aplikasi yang lain.
8. Systems of systems
seperti berikut:
1. System software.
yang ditulis untuk layanan program lain. Beberapa perangkat lunak sistem
16
2. Real-time software.
sesuai dengan data nyata (biasanya mulai dari 1 milidetik untuk 1 detik) dapat
dipertahankan.
3. Business software.
Biasanya software ini digunakan untuk suatu usaha, aplikasi ini merupakan
suatu sistem aplikasi yang cukup besar dan sering digunakan dalam mengolah
informasi. Penjelasan penggunaan aplikasi ini biasanya berhubungan dengan
5.Embedded software.
Produk ini sudah banyak digunakan hampir setiap pasar konsumen dan
industri. Perangkat lunak yang ada tertanam dan read-only pada memory yang
digunakan untuk mengontrol produk dan sistem untuk pasar konsumen dan
17
Pasar personal computer sofware telah berdiri selama dua dekade terakhir.
Komputer
grafis
pengolah
kata,
spreadsheet,,
multimedia,
hiburan,
7. Web-based software.
perangkat lunak hampir tak terbatas yang dapat diakses oleh siapa saja yang
terhubung dengan sistem jaringan website yang ada.
ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap
handal dan efisien. Ada beberapa pengertian menurut beberapa ahli dibidang
18
perangkat lunak. Pengertian Rekayasa Perangkat Lunak menurut para ahli adalah
sebagai berikut:
Terjemahan bebas dari kutipan Ian Sommervile ialah, apa itu rekayasa
perangkat lunak? rekayasa perangkat lunak adalah salah satu displin teknik yang
berkonstrasi dengan semua aspek produksi perangkat lunak. Menurut IEEE
Computer Society dalam buku Software Engineering Apractitioners Approach:
lunak adalah (1) Aplikasi yang sistematik, terurut, dibangun dengan pendekatan
yang terukur, dapat digunakan dan perangkat lunak dapat dipelihara; itulah
aplikasi perangkat lunak. Termasuk matapelajaran pendekatan perangkat lunak.
Menurut Fritz Bauer dalam buku Software Engineering Apractitioners Approach:
19
adalah lapisan atau tahapan teknologi. Jumlah kualitas manajemen dan prose
lunak. Rekayasa perangkat lunak mendukung sebagai dasar untuk fokus pada
kualitas. Berikut Software engineering layer yang diutarakan Roger S. Pressman.
bekerja secara efisien untuk fokus pada kualitas. Berikut ini metode
pengembangan perangkat lunak yang dipaparkan oleh menurut Ian Sommerville
Waterfall model
Incremental model
dibagi menjadi:
20
1.
3.
2.
4.
5.
6.
7.
8.
9.
10.
dibentuk oleh salah satu divisi IBM yang bernama Rational Software Corporation.
Rational
Software
Corporation
memperkenalkan
salah
satu
metode
pengembangan perangkat lunak yang mengacu pada UML sebagai alat bantu
dengan nama RUP (Rational Unified process). RUP diperkenalkan oleh Ivar
Jacobson pada tahun 1996, RUP adalah suatu metode pengembangan perangkat
lunak iteratif yang dibuat oleh Rational Software.
Process dengan aturan yang konkrit, Unified Process melainkan suatu kerangka
proses yang dapat diadaptasi dan dimaksudkan untuk disesuaikan oleh organisasi
pengembang dan tim proyek perangkat lunak yang akan memilih elemen proses
sesuai dengan kebutuhan.
A. Dimensi pertama
dalam tahapan pengembangan atau fase. Setiap fase akan memiliki suatu major
milestone yang menandakan akhir dari awal dari phase selanjutnya. Setiap phase
dapat berdiri dari satu beberapa iterasi. Dimensi ini terdiri atas Inception,
21
disajikan dalam bentuk umum mirip dengan pendekatan air terjun (waterfall),
walaupun esensi kunci dari proses terdapat dalam iterasi dalam setiap fasenya.
Setiap fase memiliki sebuah objektif kunci dan titik pencapaian akhir yang
menandakan ketercapaian objektif. Visualisasi dari fase RUP berikut dengan
sumbu waktu dinamakan sebagai grafik RUP.
1.
Inception
Elaboration
Construction
dilakukan pada tahap ini. Pada akhir tahap ini, perangkat lunak versi akhir yang
sudah disetujui administrator dirilis beserta dokumentasi perangkat lunak.
4.
Transition
tahap ini.
B. Dimensi kedua
aspek-aspek
statis
dari
proses
pengembangan
perangkat
lunak
yang
lunak yang dijelaskan kedalam beberapa disiplin terdiri dari empat elemen
penting, yakni who is doing, what, how dan when. Dimensi ini terdiri atas
Business Modeling, Requirement, Analysis, Design, Implementation, Test,
Deployment, Configuration and Change Manegement, Project Management,
Environtment.
22
Software pada tahun 1990, dan metode ini di adopsi oleh Object Management
Group (OMG) pada tahun 1997. Pada modeling ini terdapat sembilan diagram
UML. Menurut Booch (1999, p13), UML adalah bahasa standar untuk menuliskan
rencana pembuatan software. UML dapat digunakan untuk memvisualisasikan,
dari software. Pemodelan UML ini pun di akui oleh International Organization for
Standardization (ISO) sebagai standar industry untuk pemodelan suatu sistem
1. Use Case Diagram
cara melakukannya (Booch, 1999, p223). Flow of events (aliran kejadiankejadian) mendeskripsikan perilaku dari use case dengan menggunakan teks untuk
23
membuat orang lain dapat mengerti dengan mudah. Ketika menuliskan flow of
events ini, penulis memasukan bagaimana dan kapan use case dimulai dan
berakhir, kapan use case berinteraksi dengan aktor dan objek apa yang diubah,
dan basic flow dan alternatif flow dari perilaku tersebut (Booch, 1999, p223).
2. Class Diagram
sebuah set yang terdiri dari classes, interfaces, dan kolaborasi dan hubungan
diantara mereka (Booch, 1999, p107).
3. Sequence Diagram
lainnya. Aktifitas pada akhirnya menghasilkan aksi, yang dibentuk dari komputasi
executable atomic yang menghasilkan sebuah perubahan pada bagian (state) dari
sistem atau sebuah return value (Booch, 1999, p259).
5. Deployment Diagram
Sebuah
deployment
diagram
merupakan
sebuah
diagram
yang
menampilkan konfigurasi dari node proses run time dan komponen yang berada
padanya (Booch, 1999, p409).
6. Object Diagram
7. Component Diagram
24
8. Collaboration Diagram
State diagram mengambarkan status dari mesin, terdiri dari status (state),
Object Diagram
Component Diagram
Deployment Diagram
Behavioral Diagrams
Collaboration Diagram
Use-Case
Activity Diagram
State Diagram
Sequence Diagram
Structural diagram merupakan diagram-diagram yang fokus pada aspek
merupakan kumpulan diagram yang berfokus aspek yang bersifat dinamis atau
berubah-ubah dalam pengembangan software. Berikut cara menggambarkan
notasi-notasi yang digunakan pada UML.
25
26
konsep object oriented maka dari itu tepat jika UML sebagai kaidah atau aturan
untuk menggambarkan model dan proses yang akan dan sedang berjalan. Berikut
27
28
kasus uji untuk diujikan kepada perangkat lunak. Proses ini lebih terkesan
berusaha untuk membongkar perangkat lunak yang sudah dibangun. Proses
pengujian merupakan tahapan dalam RPL dimana secara fisik terlihat lebih
banyak sisi desktruktifnya dibandingkan sisi konstruktifnya karena tujuannya
adalah untuk menemukan kesalahan pada perangkat lunak.
antara user dan hardware komputer. Dia juga menyatakan bahwa tujuan dari
perangkat lunak yang masuk dalam satu paket dengan sistem komputer sebelum
seperti program pengolah kata, program sprite sheet, program presentasi, program
keamanan komputer dan lain sebagainya.
29
Sistem operasi-sistem operasi utama dibagi dari alat atau device yang
digunakan, jika dari device sistem operasi dibagi menjadi beberapa kelompok
yaitu:
Jika sistem opersai yang biasa dipergunakan dan dikenal yang ada di
2.
3.
Mac OS, adalah sistem operasi untuk komputer keluaran Apple yang biasa
disebut Mac atau Macintosh yang diperkenalkan oleh Steve Jobs
(disingkat Mobile OS) adalah suatu sistem operasi yang mengontrol sistem dan
kinerja pada barang elektronik yang mobile, mirip dengan fungsi Windows, Mac
OS X, dan Linux pada Desktop PC atau Laptop atau Notebook tetapi lebih
sederhana. Biasanya penggunaannya hadir di ponsel pintar, PDA, dan tablet
komputer. Berikut Mobile Operating System yang ada pada saat ini:
a. Android dari Google Inc. (open source, Apache)
30
diproduksi oleh Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson,
Toshiba Corp, dan Vodafone Group Plc.
2.
3.
4.
5.
6.
7.
GSM, Bluetooth, EDGE, 3G, 4G, EVDO dan WiFi (tergantung piranti
keras)
Kamera,
Global
Positioning
System
(GPS),
kompas,
NFC
dan
Android adalah sistem operasi yang berbasis Linux berbasis mobile yang
terbuka bagi para pengembang untuk menciptakan aplikasi mereka sendiri untuk
digunakan oleh bermacam peranti mobile. Sejak Android dirilis pada bulan
November 2007 hingga sekarang telah dilakukan berbagai pembaruan berupa
perbaikan bug dan penambahan fitur canggih yang diterapkan. Berikut ini versi
android yang pernah ada sejak 2007 hingga 2013.
1.
2.
31
3.
5.
4.
6.
7.
8.
9.
BAB III
METODOLOGI PENELITIAN
Metodologi penelitian merupakan suatu mekanisme, teknik atau cara untuk
Bahasa Indonesia Berbasis Android dapat dilihat pada gambar skema berikut ini:
32
33
a.
Identifikasi Masalah
b.
c.
Rumusan Masalah
Studi Pustaka
empat bagian dimana masing-masing terdapat tahapan tertentu karena setiap fase
menghasilkan akhir yang berbeda-beda dimasing-masing bagian.
3.2.1 Insepsi
A. Requirement:
C. Implementasi:
34
D. Testing:
3.2.2 Elaborasi
A. Requirement:
Fase inilah yang menjadi pusat perkembangan dari analisis dan desain, karena
domain, scope project, peninjauan kembali baik software yang akan dibangun.
Bentuk konseptual aplikasi terjadi pada fase ini mulai dirancang model class
diagram, aktivitas diagram, arsitektur aplikasi, dan storyboard aplikasi.
C. Implementasi:
D. Testing:
3.2.3 Konstruksi
A. Requirement:
C. Implementasi:
Fase konstruksi, pada fase inilah implementasi desain dan yang dibentuk dari
versi alpha, beta hingga menghasilkan aplikasi siap pakai.
D. Testing:
Tahapan ini dilakukan uji coba baik uji coba produk maupun pendistribusian
ke pengguna.
35
3.2.4 Transisi
A. Requirement:
C. Implementasi:
D. Testing:
BAB IV
4.1 Insepsi
Tahapan insepsi penulis melakukan analisa kebutuhan baik fungsional
maupun
non-fungsional.
Berikut
ini
mengklasifikasikan
macam-macam
untuk
mengetahui
Analisis peragkat keras yang digunakan ialah smarphone atau tablet untuk
36
37
aplikasi katabrak diperlukan aplikasi smartphone atau tablet yang sudah terinstal
androd 3.0.
ialah anak usia Usia 12 tahun ke atas yang mengerti Bahasa Indonesoa. Dimana
anak usia 12 tahun keatas tingkat perbendaharaan kosakata Bahasa Indonesia
sudah mulai banyak.
4.1.2.
menetapkan stake holder (peran) yang ikut serta dalam pembangunan aplikasi ini
ialah:
Developer
Advertiser
Kebutuhan Brainware
Kebutuhan Hardware
: text Editor
38
: Microsoft XP
dalam membangun perangkat lunak. Berikut gambaran kerangka kerja yang akan
dibentuk dalam bentuk use case diagram sebagai berikut:
1.
Sistem : Membuat kata sesuai dengan list kata yang ada pada database
3.
kosakata
39
Sistem : memberikan tanda secara spesifik baik nama objek, posisi, dan
4.
Sesuai dengan use case dan penjelasan atas use case diatas untuk actor
40
RefBalok
-idRefBalok
-posisiRefBalokX
-posisiRefBalokY
-idBalok
+Create()
+Read()
+Update()
ObjekBalok
1
1..N
-idBalok
-gambarBalok
-posisiBalokX
-posisiBalokY
-tujuanPosisiBalokX
-tujuanPosisiBaloky
-hurufBalok
+Create()
+Read()
+Update()
+Delete()
Kosakata
3..N
A. Class RefBalok
1. Atribut RefBalok
2. Operasi RefBalok
a. Create
b. Read
c. Update
B. Class Kosakata
1. Atribut Kosakata
2. Operasi Kosakata
a. Create
b. Read
C. Class RefBalok
1. Atribut RefBalok
-idKata
-kata
+Create()
41
2. Operasi RefBalok
a.
Create
c.
Update
b.
d.
Read
Delete
42
4.2 Elaborasi
Pada tahapan elaborasi ini pusat perkembangan dari analisis dan desain,
karena domain, scope project, peninjauan kembali baik software yang akan
dibangun. Bentuk konseptual aplikasi terjadi pada fase ini. Pada fase ini mulai
dirancang model use case, arsitektur software, dan pengembangan aplikasi.
dan desain tampilan yang telah dilakukan pada tahapan insepsi sebagai mock-up
pertama. Pada tahapan iterasi pertama ini kebutuhan yang sudah di siapkan ialah
database Bahasa Indonesia sesuai dengan KBBI.
43
ulang untuk perubahan karena masih ada masalah dengan sistem permainan yang
dikembangkan pada tahapan ke dua. Pada tahapan ini penulis mulai merancang
sistem permainan secara keseluruhan dengan menambahkan sistem penilaian.
Berikut ini desain tampilan use case jika menggunakan sistem penilaian.
44
1.
tentukan
Indonesia
45
Actor : Database
Tujuan : mendapatkan kata yang sesuai dengan kata yang dibuat pada use
case sebelumnya
oleh pengguna
6.
baru
Sistem : menandai nilai berdasarkan huruf yang ada pada balok lalu
diakumulasikan pada saat balok dipecahkan
Menurut penggambaran use case diatas perlu digambarkan alur kerja dari
penggunaan aplikasi karena pada use case diagram diatas hanya menggambarkan
penggunaan aplikasi. Pada tahapan ini penulis sudah membuat class diagram
untuk halaman permainan yang digunakan sebagai halaman inti dimana
permainan akan berjalan. Berikut ini class diagram yang telah direfisi yang dibuat
46
ObjectBalok
RefBalok
-idRefBalok
-posisiRefBalokX
-posisiRefBalokY
-statusRefBalok
-idBalok
+Create()
+Read()
+Update
-idBalok
-gambarBalok
-gambarAnimasiBalok
-nilaiBalok
-posisiBalokX
-posisiBalokY
-tujuanPosisiBalokX
-tujuanPosisiBaloky
-hurufBalok
-statusBalok
+Create()
+Read()
+Update()
+Delete()
0...N
TransKosakata
Kosakata
-idKata
-kata
+Create()
+Read()
-idTransKosakata
-idUser
-idKata
-jumlahKataTerbentuk
+Create()
+Read()
+Update()
+Delete()
0...N
Nilai
User
-idNilai
-idUser
-totalNilai
+Create()
+Read()
0...N
-idUser
-namaUser
+Create()
+Read()
+Delete()
A. Class RefBalok
1. Atribut RefBalok
2. Operasi RefBalok
a.
Create
c.
Update
b.
Read
3...N
1
0...N
47
B. Class Kosakata
1. Atribut Kosakata
2. Operasi Kosakata
a.
b.
Create
Read
C. Class User
1. Atribut User
2. Operasi User
a.
Create
c.
Delete
b.
Read
D. Class Nilai
1. Atribut Nilai
2. Operasi Nilai
a.
Create
c.
Delete
b.
Read
E. Class TransKosakata
1. Atribut TransKosakata
2. Operasi TransKosakata
48
a.
Create
c.
Update
b.
d.
Read
Delete
F. Class RefBalok
1. Atribut RefBalok
2. Operasi RefBalok
a.
Create
c.
Update
b.
d.
Read
Delete
objek, dan dilanjutkan dengan membuat objek. Setelah objek dibuat maka
pengguna dapat menandai objek dan mengumpulkan identitas berupa huruf dari
dari objek-objek yang ditandai. Setelah objek ditandai maka hasilnya
dikumpulkan hingga menjadi kata dan dicocokan dengan database kosakata yang
ada. Jika kata dengan kosakata ada yang cocok maka objek yang ditandai dapat
49
50
51
Sistem akan menyediakan menu Game Play, config, misi, skor tertinggi, help
(bantuan), akun, kamus yang dapat di pilih oleh pemain.
Setelah pemain memilih menu yang akan di akses maka sistem memberikan
layanan sesuai dengan permintaan pemain, contoh seting suara maka sistem
8.
9.
Setelah pemain melakukan konfigurasi pada music, atau akun, pemain dapat
kembali ke menu utama lalu melanjutkan ke permainan.
Saat permainan dimulai maka di bagian sistem akan men generate kata bonus
dan stand-bye menunggu inputan masuk daribalok yang tersentuh.
Jika kata yang terbentuk sama dengan salah satu kata yang ada di kamus
maka skor akan bertambah jika tidak maka tidak ada penambahan skor dan
permaian terus berlanjut.
Saat blok menyentuh batas atas maka pemain diberikan waktu sesaat untuk
menurunkan posisi balok yang paling tinggi, jika berhasil alaremnya akan
mati jika gagal maka akan dilanjutkan tampilan finish
sekor tertinggi. Pada halaman ini disediakan 2 opsi yaitu mainkan lagi atau ke
tampilan menu utama.
52
UserName
LOGO
Play
kamus
Misi
Data Poin
Pada tampilan ini terdapat 7 tombol utama dan 3 tombol turunan. Tombol
b) Tombol Misi: digunakan jika pemain ingin melihat misi baik yang belum atau
telah dicapai.
53
2. Tombol music
sound efek.
music.
pengembang.
untuk
melihat
data
informasi
Tombol sfx
54
menimpa halaman permainan) pada tampilan tunda ini terdapat beberapa tombol
yang berfungsi sebagai berikut:
55
LOGO
Misi
Kembali ke menu
Diagram 4.2.9 Tampilan Misi
56
LOGO
Poin tertinggi
Perolehan Poin
Daftar kata
Kembali ke menu
BAB V
Bab ini merupakan lanjutan dari bab sebelumnya, yaitu tahap konstruksi
5.1. Konstruksi
Proses Konstruksi merupakan tahapan dimana aplikasi yang sudah dibuat
dan dirancang lalu diuji kelayakannya. Pada tahap ini akan dijelaskan mengenai
aplikasi yang dirancang.
Pada iterasi pertama atau aplikasi seri alpha ini proses konstruksi aplikasi
for i=1,8 do
newBox[i] = {}
for j=1,11 do
newBox[i][j] = display.newRect(0,0,86,86)
newBox[i][j].x,newBox[i][j].y = -4+ i*(newBox[i][j].width), 945 j*(newBox[i][j].height)
newBox[i][j].i = i
newBox[i][j].j = j
newBox[i][j].isVisible = false
newBox[i][j].matces = nil
groupInti:insert( newBox[i][j] )
end
end
Kode tersebut bertujuan untuk mengatur posisi dan menjadi tujuan objek
yang dibuat.
57
58
nama objek, serta file yang dipanggil sebagai atribut atau identitas pada objek.
5.1.1.3 Fungsi membuat kata
Kode tersebut berfungsi menandai objek yan disentuh untuk disusun dari
59
end
end
Kode tersebut berfungsi mencocokan kata dengan yang ada pada database
kata jika ada dan sesuai dengan yang ada pada database maPka objek akan di
hancurkan dan mendapatkan nilai sedangkan jika tidak maka akan menset ulang
objek uang telah ditandai.
newGemActive[i]:removeSelf();newGemActive[i] = nil
objek tersebut.
Kode tersebut berfungsi mendapatkan nilai dari setiap objek jika kata yang
dibantuk sesuai dengan data yang ada pada tabek kata di database. Lau di
akumulasikan dengan nilai yang sudah terkumpul.
5.1.2 Implementasi Iterasi ke Dua
Pada iterasi ke dua atau aplikasi seri beta dimulai penerapan desain
60
Pada tampilan main menu ini difungsikan user atau pengguna dapat
memilih halaman yang akan dituju, atau sebagai halaman induk dari aplikasi
dimana pengguna dapat beralih halaman menuju kamus dimana pada halaman
kamus terdapat daftar kosakata yang pengguna dapat ciptakan di permainan, misi
kosakata yang tercipta, poin pada halaman ini merupakan daftar hasil review
sepuluh poin tertinggi yang dihasilkan oleh pemain dan atau main aplikasi yang
langsung menuju ke halaman permainan.
61
Pada tampilan GamePlay ini sebagai inti dari aplikasi permainan. Disana
terdapat tombol konfigurasi dan tombol tunda dimana tombol konfigurasi disana
berfungsi untuk mengatur suara dan efek suara, sedangkan tombol tunda berfungsi
62
Pada tampilan Misi ini bertujuan untuk mengukur kemampuan dari user
dengan system misi-misi yang dapat diraih setelah permianan berakhir. Dalam
aplikasi ini di definisikan 90 misi yang dapat dibuka oleh pengguna dari misi yang
63
64
Pada tampilan Selesai ini sebagai hasil dari perhitungan dan kata apa saja
Pada iterasi ke tiga atau aplikasi seri rilis penulis memperbaiki beberapa
tampilan pada beberapa halaman agar aplikasi siap diujicoba langsung oleh user.
Berikut ini tampilan dan hasil perubahan pada beberapa halaman yang dilakukan.
Pada tampilan ini terdapat 7 tombol utama dan 3 tombol turunan. Tombol
b) Tombol Misi : digunakan jika pemain ingin melihat misi baik yang belum
atau telah dicapai.
65
1. Tombol sfx
2. Tombol musik
sound efek.
musik.
pengembang.
untuk
melihat
data
informasi
pada saat tombol tunda ditekan berikut tampilan saat tombol tunda ditekan
66
Pada tampilan pause ini terdapat beberapa tombol yang berfungsi sebagai
berikut:
Saat permainan selesai maka muncul resume atau hasil permainan berikut
67
kelompokan dalam tabel di bawah. Berikut ini adalah hasil dari pengujian dari
Game Edukasi Bahasa Indonesia:
no
Komponen Yang
Diuji
Tampilan awal
Skenario Butir
Uji
Memilih ikon
lalu dilanjutkan
ke halaman
splash screen
dan halaman
loading
Memilih Tombol
Misi
Metode
Pengujian
Black Box
Black Box
68
no
Komponen Yang
Diuji
Skenario Butir
Uji
Metode
Pengujian
Memilih Tombol
Cara Bermain
Black Box
Memilih Tombol
High Score
Memilih Tombol
Akun
3
4
Perolehan Skor
Permainan
10
Pilih Tombol
Konfigurasi Musik
11
12
Pilih Tombol
Konfigurasi Musik
Efek
Memilih Tombol
Kamus
Memilih Tombol
Play
Memilih Tombol
Pause, Resume
dan Menu
Utama dalam
setiap
permainan
Memperoleh
skor kalau
jawaban benar,
kalo salah tidak
memperoleh
skor
Memilih Tombol
Konfigurasi
Musik
Memilih Tombol
Konfigurasi
Musik Efek
Muncul di akhir
Permianan
Black Box
Black Box
Black Box
Black Box
Black Box
Black Box
Black Box
Black Box
Black Box
69
No
Komponen Yang
Diuji
Skenario Butir
Uji
Tampilan awal
Memilih tombol
masuk lalu
dilanjutkan ke
halaman splash
screen dan
halaman loading
Memilih Tombol
Misi
Memilih Tombol
High Score
Memilih Tombol
Cara Bermain
Memilih Tombol
Akun
Memilih Tombol
Kamus
Memilih Tombol
Play
Hasil Yang
Diharapkan
Ketika memilih
tombol skor
tertinggi maka
halaman skor
tertinggi akan
mucul.
Ketika memilih
tombol cara
bermain maka akan
muncul halaman
cara bermain akan
mucul
Ketika memilih
tombol akun maka
akan muncul
halaman akun akan
muncul
Ketika memilih
tombol kamus
maka akan muncul
halaman kamus
akan muncul
beserta daftar kata
Ketika memilih
tombol play maka
permainan
katabrak akan
dimulai
Hasil Pengujian
berhasil gagal
X
70
No
Komponen Yang
Diuji
Memilih Tombol
Pause, Resume
dan Menu Utama
dalam setiap
permainan
Perolehan Skor
Permainan
Memperoleh
skor kalau
jawaban benar,
kalo salah tidak
memperoleh skor
10
11
12
Pilih Tombol
Konfigurasi Musik
Pilih Tombol
Konfigurasi Musik
Efek
Skenario Butir
Uji
Memilih Tombol
Konfigurasi
Musik
Memilih Tombol
Konfigurasi
Musik Efek
Muncul di akhir
Permianan
Hasil Yang
Diharapkan
Ketika memilih
tombol paus maka
tampilan pause
pada halaman play
akan muncul
beserta tombol
menu utama,
lanjutkan, ulangi,
serta komfigurasi
suara
Perolehan skor
dihasilkan dari kata
yang terbentuk,
nilai diperoleh dari
jumlah nilai dari
masing2 huruf
yang ditentukan
Ketika timbol
dipilih maka
tampilan tombol
berubah musik
dapat di aktif dan
di non-aktifkan
Ketika timbol
dipilih maka
tampilan tombol
berubah musik
efek dapat di aktif
dan di non-aktifkan
Muncul di akhir
permainan dan
memberikan
rekapitulasi
permainan
Hasil Pengujian
berhasil gagal
71
5.2 Transisi
Pada tahapan ini penulis melakukan distribusi melalui play store serta
melakukan publikasi melalui media sosial, website reviewer, dan surat kabar
harian elektronik. Setelah menerima tanggapan atau respon dari pengguna maka
dari tim reviewer dari 5000 orang yang mendownload aplikasi ini. Dari hasil
aplikasi berbasis Android dapat menarik jika dikemas dengan baik. Untuk
kedepannya aplikasi Katabrak ini dapat memungkinkan untuk menggunakan
bahasa internasional atau bahasa inggris sebagai bahan referensi berikutnya.
BAB VI
PENUTUP
Bab ini merupakan bab terakhir dari tugas akhir ini, bab ini akan
memberikan hasil implementasi dari aplikasi yang telah dibuat. Setelah aplikasi
6.1 Simpulan
Berdasarkan dari pembahasan sebelumnya penulis berhasil membangun
aplikasi katabrak dengan dibuktikan berupa test aplikasi di pembahasan bab 5,
sub- bab 1 pada pembahasan konstruksi dan dipublikasikan pada pembahasan bab
5, sub-bab 2 pada pembahasan transisi. Sehingga aplikasi ini dapat digunakan dan
dimainkan pada smarphone dan PC tablet dengan operasi sistem Android.
6.2 Saran
Adapun saran-saran yang ingin penulis berikan adalah sebagai berikut:
1.
3.
2.
72
DAFTAR PUSTAKA
73
LAMPIRAN - LAMPIRAN
.......................................................................................................
74
74-1
db:exec[[
begin transaction;
CREATE TABLE IF NOT EXISTS tachv (id, description, icon);
CREATE TABLE IF NOT EXISTS tUser ( id, UserName, statusActive,
qtyMagic, qtyFreeze, qtyBomb, qtyRainbow, qtyQuake, qtyGold, hlpOpen );
CREATE TABLE IF NOT EXISTS tscore ( id, tu_id , Score , dateCreate );
CREATE TABLE IF NOT EXISTS ttempwords ( id, tw_id, qty );
CREATE TABLE IF NOT EXISTS tuser_achv ( id, tu_id , ta_id );
CREATE TABLE IF NOT EXISTS tuser_word ( id, tu_id , tw_id ,Word ,Qty );
CREATE TABLE IF NOT EXISTS tmagic ( id , tw_id , Word );
CREATE TABLE IF NOT EXISTS twords ( id, Word, Trivia , Picture , Sound );
end transaction
]]
end
db:exec( tablesetup2 )
74-2
Modul Kata Bonus
function GenerateMagicWords()
for row in db:nrows("SELECT Word FROM tmagic ORDER BY RANDOM()
LIMIT 1") do
return row.Word
end
end
74-3
74-4
74-5
File gameplay.lua
local scene = storyboard.newScene()
local ui = require("ui")
local initTable = require "initTable"
local createBoxDB = require("createBoxDB")
local pausePage = require('pausePage')
local textdb, score,test, hasil, restart, standby, munculBox, maxScore, statusbtn,
textBonusdb, katabonus, textkata, warning_line, score_stat, groupLoadingFinish
local object = {}
local object2 = {}
local loadingFinish
local function buttonHandler(event)
if event.phase == "release" and createBoxDB.setStatusGame() ~= "pause" then
sound.playsfx("button")
createBoxDB.getStatusGame("pause")
createPause = pausePage.newpauseScn()
statusbtn = "pause"
restart.isActive = false
end
end
function scene:createScene( event )
local group = self.view
local statMusic = storyboard.statusMusic
local statSFX = storyboard.statusSFX
storyboard.removeAll()
storyboard.statusMusic = statMusic;storyboard.statusSFX = statSFX
musicbg = storyboard.statusMusic
end
function scene:enterScene( event )
score_stat = 0
initTable.resetTempwords()
math.randomseed(os.time())
local group = self.view
local function updateSize()
if (createBoxDB.getScoreSack() > 0) then
if (score_stat == 1) then
score_stat = 2
transition.to(score, { time=200, yScale =0.8, xScale=0.8, transition=easing.easeInOut,
onComplete = updateSize} )
elseif (score_stat == 2) then
score_stat = 1
transition.to(score, { time=200, yScale =1.2, xScale=1.2, transition=easing.easeInOut,
onComplete = updateSize} )
end
74-6
74-7
score.text = comma_value(createBoxDB.setScore())
if score.width ~= nil then
score.x = 600 - score.width /2
if (score.width > 200) then
score.size = score.size - 2
elseif (score.text == "0") then
score.size = 40
end
end
if (createBoxDB.getScoreSack() ~= 0) then
if (score_stat == 0) then
score_stat = 2
updateSize()
end
end
statusbtn = createBoxDB.setStatusGame()
if (createBoxDB.getWarning() == true) then---- warning image Control
local tempWarn = createBoxDB.getWarnTime()
local temp = 500
local temp2 = 0
while (tempWarn > temp) do
tempWarn = tempWarn - temp
temp2 = temp2 + 1
if (temp > 100) then
temp = temp - (50 * math.floor(temp2/4))
end
end
if (temp2%2 > 0)then
warning_line.isVisible = true
warning_line2.isVisible = false
else
warning_line.isVisible = false
warning_line2.isVisible = true
end
else
warning_line.isVisible = false
warning_line2.isVisible = true
end
if statusbtn == "finish" then
--loadingFinish.isVisible = true
Runtime:removeEventListener( "enterFrame", myListener )
if frame2~= nil then
frame2:removeSelf(); frame2 = nil
end
if textdb~= nil then
textdb:removeSelf(); textdb = nil
end
74-8
if maxScore~= nil then
maxScore:removeSelf(); maxScore = nil
end
if restart~= nil then
restart:removeSelf(); restart = nil
end
if score~= nil then
score:removeSelf(); score = nil
end
if textBonusdb~= nil then
textBonusdb:removeSelf(); textBonusdb = nil
end
if warning_line~= nil then
warning_line:removeSelf(); warning_line = nil
end
if warning_line2~= nil then
warning_line2:removeSelf(); warning_line2 = nil
end
--warning_line2.isVisible = false
initTable.insertTusermagic()
initTable.insertTuserword()
initTable.insertScore(IdUser, createBoxDB.setScore())
initTable.cleanBonusKata()
createBoxDB.getStatusGame("finishPage")
statusbtn = "nil"
end
if pausePage.setMenu() == "play" then
storyboard.gotoScene( "restartGame_2" )
pausePage.getMenu()
statusbtn = "play"
Runtime:removeEventListener( "enterFrame", myListener )
createBoxDB.getStatusGame("pause")
elseif pausePage.setMenu() == "menu" then
isMusicPlaying=false
storyboard.gotoScene( "mainIndex" )
createBoxDB.getStatusGame("pause")
pausePage.getMenu()
statusbtn = createBoxDB.setStatusGame()
Runtime:removeEventListener( "enterFrame", myListener )
elseif pausePage.setMenu() == "resume" then
pausePage.getMenu()
createBoxDB.getStatusGame("resume")
restart.isActive = true
end
end
74-9
local function setBonusText(text)
if (katabonus ~= text) then
katabonus = text
local i = 0
if (#object>1) then
for x=0,#object do
object[x]:removeSelf()
object[x] = nil
end
end
for c in text:gmatch"." do
object[i] = display.newImage( "Gambar/ALPHABET OFF/"..c..".png",true )
object[i]:scale(.5,.5)
object[i].x = i*42
i = i + 1;
end
for j=0,i-1 do
textBonusdb:insert(object[j])
end
end
end
local function setText(text)
if (textkata ~= text) then
textkata = text
local i = 1
if (#object2 ~= 0) then
for x=1,#object2 do
object2[x]:removeSelf()
object2[x] = nil
end
end
if (text ~= "") then
for c in textkata:gmatch"." do
object2[i] = display.newImage( "Gambar/ALPHABET OFF/"..c..".png",true )
object2[i]:scale(.5,.5)
object2[i].x = i*42
i = i + 1;
end
for j=1,i-1 do
textdb:insert(object2[j])
end
end
end
end
74-10
File createboxDB.lua
module(..., package.seeall)
local loqsprite = require('loq_sprite')
local sf = loqsprite.newFactory('FaceFrame','goldFaceFreme')
local easing = require('easing')
-- local createDB = require "CreateDB"
local initTable = require "initTable"
local timer1, semuanya, groupInti, grouponActive, groupEfect, StatusGame,
kataBonus,statusTimer, lastID, hasilPoint, katagenerator, speed, now_t, last_t,
delat_t, local_t, score_sack, warn_time, isWarning, kolomSpawn
local war = false
function setWord()
return string.upper(katagenerator)
end
local ads = require "ads" -- monotize (iklan)
local provider = "admob
local appID = "katabrak"--"696727651"
local function adsListener( event )
local msg = event.response
print("Message received from the ads library: ", msg)
if event.isError then
showAd( "banner" )
end
end
local function showAd( adType )
local adX, adY = display.screenOriginX, display.screenOriginY
ads.show( adType, { x=adX, y=adY } )
end
function getWarning() -- set pemberitahuan
return isWarning
end
function getWarnTime() -- set timer pemberitahuan
return warn_time
end
function setStatusGame() -- cek kondisi permainan
return StatusGame
end
function setHighScoreGame() -- set nilai tertingggi
if tonumber(initTable.maxScore()) >= tonumber(setScore()) then
return tostring(comma_value(initTable.maxScore()))
else
return comma_value(setScore())
end
end
74-11
74-12
74-13
74-14
local function playNext(self, _e) -- self is the SpriteGroup instance and _e is the event
if _e.phase == 'end' then
self:removeSelf();self=nil
end
end
local function salahSituation( )
sound.playsfx("batal")
for i=1,8 do
for j=1,11,1 do
if newBox[i][j].ismarkAble== true then
newBox[i][j].ismarkAble = false
end
end
end
for i = #newGemActive,1, -1 do
newGemActive[i]:removeSelf();newGemActive[i] = nil
end
for i=#newGem, 1,-1 do
if newGem[i] ~=nil and newGem[i].ismarkAble
(newGem[i].isEliminir) then
newGem[i].ismarkAble = false
newGem[i].isVisible = true
end
end
end
==
true
and
not
function newGemActiveUpdate()
for i=1,#newGemActive do
if (newGemActive[i] ~= nil) then
local temp = newGemActive[i].id
newGemActive[i].x,newGemActive[i].y = newGem[temp].x,newGem[temp].y
end
end
end
function wiggle2(obj)
transition.to(obj, { time=100, rotation=5, transition=easing.outExpo, onComplete =
function(obj) wiggle1(obj) end})
end
function wiggle1(obj)
transition.to(obj, { time=100, rotation=-5, transition=easing.outExpo, onComplete =
function(obj) wiggle2(obj) end})
end
74-15
function create_Box ()
local NamaFile, namaFont, pointFont, colorFont, NamaFileOn
hasilPoint = 0
local specialBlock = math.floor(initTable.countAchv()/10)
local rand = 0
local newGem ={}-- array block yang ada
local newGemActive ={}-- array block yang dipilih
local newBox = {}-- array 2D
local score = {}
katagenerator = ""
hasilPoint,speed,score_sack,local_t,warn_time = 0,0,0,0,0
kolomSpawn = {}
for i=1,8 do
kolomSpawn[i] = 0
end
isWarning = false
semuanya = display.newGroup()
groupInti = display.newGroup()
grouponActive = display.newGroup()
groupEfect = display.newGroup()
local function setRand2()
rand2 = math.random(1, 8 )
local tempmax, tempmin = 1,1
for i=1,8 do
if (kolomSpawn[tempmax] ~= math.max(kolomSpawn[tempmax], kolomSpawn[i]))
then
tempmax = i
end
if (kolomSpawn[tempmin] ~= math.min(kolomSpawn[tempmin], kolomSpawn[i]))
then
tempmin = i
end
end
local temp = kolomSpawn[tempmax]-kolomSpawn[tempmin]
if (math.random(1,100) < (temp*temp)*4) then
rand2 = tempmin
end
kolomSpawn[rand2] = kolomSpawn[rand2] + 1
end
74-16
local function firstInit()
math.randomseed(os.time())
for j=1,2 do
for i=1,8 do
rand2 = i
setRandom()
if (namaFont == "rainbow") then
local sheetData = { width=85, height=85, numFrames=8, sheetContentWidth=680,
sheetContentHeight=85 }
local mySheet = graphics.newImageSheet(NamaFile, sheetData )
local sequenceData = {name = "changeColor", start=1, count=8, time=16000,
loopDirection = "forward"}
newGem[#newGem+1] = display.newSprite( mySheet, sequenceData )
newGem[#newGem]:setFrame(math.random(8))
newGem[#newGem]:play()
else
newGem[#newGem+1] = display.newImage(NamaFile, true)
end
newGem[#newGem].nomor = #newGem
newGem[#newGem].myName = tostring(namaFont)
newGem[#newGem].point = pointFont
newGem[#newGem].colorFont = colorFont
newGem[#newGem].NamaFileOn = NamaFileOn
newGem[#newGem].j = j-- baris
newGem[#newGem].x,
newGem[#newGem].y
=newBox[rand2][j].x,
newBox[rand2][j].y
newGem[#newGem].i = rand2-- kolom
newGem[#newGem].touch = onTap
newGem[#newGem]:addEventListener( "touch", newGem[#newGem] )
newGem[#newGem].destination_y = newBox[rand2][j].y
newGem[#newGem].Name = "j["..#newGem.."]"-- transition.to fungsi dari lua, jalan
ke destinasi yang ditentukan
newGem[#newGem].canJatuh = false
newGem[#newGem].isVisible = true
newBox[rand2][j].matces = newGem[#newGem]
groupInti:insert( newGem[#newGem] )
end
end
end
74-17
local function create_Box1 ()
math.randomseed(os.time())
setRand2()
setRandom()
local boxPos = 0
for i=1,#newGem,1 do
if (newGem[i].isVisible == false and boxPos == 0) then
boxPos = i
break
end
end
if (boxPos == 0) then
boxPos = #newGem+1
end
if (namaFont == "rainbow") then
local sheetData = { width=85, height=85, numFrames=8, sheetContentWidth=680,
sheetContentHeight=85 }
local mySheet = graphics.newImageSheet(NamaFile, sheetData )
local sequenceData = {name = "changeColor", start=1, count=8, time=16000,
loopDirection = "forward"}
newGem[boxPos] = display.newSprite( mySheet, sequenceData )
newGem[boxPos]:play()
else
newGem[boxPos] = display.newImage(NamaFile, true)
end
newGem[boxPos].nomor = boxPos
newGem[boxPos].myName = tostring(namaFont)
newGem[boxPos].point = pointFont
newGem[boxPos].colorFont = colorFont
newGem[boxPos].NamaFileOn = NamaFileOn
newGem[boxPos].j = 11-- baris
newBox[rand2][11].matces = newGem[boxPos]
newGem[boxPos].x, newGem[boxPos].y =newBox[rand2][11].x, -86
newGem[boxPos].i = rand2-- kolom
newGem[boxPos].touch = onTap
newGem[boxPos]:addEventListener( "touch", newGem[boxPos] )
newGem[boxPos].destination_y = newBox[rand2][11].y
newGem[boxPos].Name = "j["..boxPos.."]"-- transition.to fungsi dari lua, jalan ke
destinasi yang ditentukan
newGem[boxPos].canJatuh = true
transition.to(newGem[boxPos],
{
time=(11-newGem[boxPos].j)*200,
y
=newGem[boxPos].destination_y, transition=easing.easeInOut, onComplete =
updateJatuh} )
groupInti:insert( newGem[boxPos] )
end
74-18
local function onTap(self, event)
if (self.canJatuh == false) then
local phase = event.phase
local posI = self.i
local posJ = self.j
local nama = self.id
local fileOn = self.NamaFileOn
local huruf = self.myName
if phase == "began" and StatusGame ~= "pause" then
if huruf == "bomb" then--- Belum kepake
initTable.insertBomb()
sound.playsfx("bomb")
local brak = {}
for i = #newGemActive,1, -1 do-- yang kepilih dihilangkan semua
newGemActive[i]:removeSelf();newGemActive[i] = nil
end
for i=posI-1,posI+1 do
for j=posJ-1,posJ+1 do
if (i>=1 and i<=8 and j>=1 and j<=11) then
if (newBox[i][j].matces ~= nil and newBox[i][j].matces.canJatuh == false) then
-- buat effect tulisannya
brak[#brak+1] = sf:newSpriteGroup()
brak[#brak].x,brak[#brak].y =newBox[i][j].matces.x,newBox[i][j].matces.y
if (i == posI and j == posJ) then
score[#brak]
=
display.newText(100,
newBox[i][j].matces.x
newBox[i][j].matces.width/3, newBox[i][j].matces.y - newBox[i][j].matces.width/3,
font_1, 45)
score[#brak].point = 100
transition.to(score[#brak], {time=(brak[#brak].y - 100)*1.5, x=350, y= 100, alpha = 0
, transition=easing.easeInOut, onComplete=addScore} )
groupEfect:insert(score[#brak])
end
brak[#brak].sprite = playNext
brak[#brak]:addEventListener('sprite', brak[#brak])
brak[#brak]:play(newBox[i][j].matces.colorFont)
groupEfect:insert(brak[#brak])
newBox[i][j].matces.isEliminir = true
newBox[i][j].matces.isVisible = false
newBox[i][j].matces = nil
newBox[i][j].ismarkAble = false
semuanya:insert(groupEfect)
end
end
end
end
for i=1,8 do
for j=1,11 do
74-19
if (newBox[i][j].matces ~= nil) then
if (newBox[i][j].matces.isVisible ~= false and newBox[i][j].matces.canJatuh == false)
then
updateJatuh(newBox[i][j].matces)
end
end
end
end
katagenerator = ""
elseif huruf == "quake" then
initTable.insertQuake()
sound.playsfx("gempa")
for i = #newGemActive,1, -1 do-- yang kepilih dihilangkan semua
newGemActive[i]:removeSelf();newGemActive[i] = nil
end
local brak, score
brak = sf:newSpriteGroup()
brak.x, brak.y = newBox[self.i][self.j].matces.x, newBox[self.i][self.j].matces.y
score
=
display.newText(100,
newBox[self.i][self.j].matces.x
newBox[self.i][self.j].matces.width/3,
newBox[self.i][self.j].matces.y
newBox[self.i][self.j].matces.width/3, font_1, 45)
score.point = 100
transition.to(score, {time=(brak.y - 100)*1.5, x=350, y= 100, alpha = 0 ,
transition=easing.easeInOut, onComplete=addScore} )
groupEfect:insert(score)
brak.sprite = playNext
brak:addEventListener('sprite', brak)
brak:play(newBox[self.i][self.j].matces.colorFont)
groupEfect:insert(brak)
newBox[self.i][self.j].matces.isEliminir = true
newBox[self.i][self.j].matces.isVisible = false
newBox[self.i][self.j].matces = nil
newBox[self.i][self.j].ismarkAble = false
semuanya:insert(groupEfect)
function boom()
sound.playsfx("pecah")
if (local_t < 0)then
getStatusGame("freeze")
else
getStatusGame("play")
end
local prob = 0.3
local braks = {}
local score = 0
74-20
for i=1,8 do
braks[i] = {}
for j=1,11 do
if (newBox[i][j].matces ~= nil and newBox[i][j].matces.canJatuh == false) then
if (math.random() < prob) then
braks[i][j] = sf:newSpriteGroup()
braks[i][j].x, braks[i][j].y = newBox[i][j].matces.x, newBox[i][j].matces.y
braks[i][j].sprite = playNext
braks[i][j]:addEventListener('sprite', braks[i][j])
braks[i][j]:play(newBox[i][j].matces.colorFont)
groupEfect:insert(braks[i][j])
newBox[i][j].matces.isEliminir = true
newBox[i][j].matces.isVisible = false
newBox[i][j].matces = nil
newBox[i][j].ismarkAble = false
semuanya:insert(groupEfect)
end
end
end
end
for i=1,8 do
for j=1,11 do
if (newBox[i][j].matces ~= nil) then
if (newBox[i][j].matces.isVisible ~= false and newBox[i][j].matces.canJatuh == false)
then
updateJatuh(newBox[i][j].matces)
end
end
end
end
end
local tremor = 11
function shake()
local speed
if (tremor % 2 == 0) then
speed = 0
else
speed = 10
end
if tremor > 0 then
transition.to(semuanya,
{time=50,
x=speed,
transition=easing.easeInOut,
onComplete=shake})
else
transition.to(semuanya,
{time=50,
x=speed,
transition=easing.easeInOut,
onComplete=boom})
end
74-21
tremor = tremor-1
end
getStatusGame("pause")
local_t = local_t - 550
shake(1)
katagenerator = ""
elseif huruf == "freeze" then
initTable.insertFreeze()
sound.playsfx("beku")
for i = #newGemActive,1, -1 do-- yang kepilih dihilangkan semua
newGemActive[i]:removeSelf();newGemActive[i] = nil
end
local brak, score
brak = sf:newSpriteGroup()
brak.x, brak.y = newBox[self.i][self.j].matces.x, newBox[self.i][self.j].matces.y
score
=
display.newText(100,
newBox[self.i][self.j].matces.x
newBox[self.i][self.j].matces.width/3,
newBox[self.i][self.j].matces.y
newBox[self.i][self.j].matces.width/3, font_1, 45)
score.point = 100
transition.to(score, {time=(brak.y - 100)*1.5, x=350, y= 100, alpha = 0 ,
transition=easing.easeInOut, onComplete=addScore} )
groupEfect:insert(score)
brak.sprite = playNext
brak:addEventListener('sprite', brak)
brak:play(newBox[self.i][self.j].matces.colorFont)
groupEfect:insert(brak)
newBox[self.i][self.j].matces.isEliminir = true
newBox[self.i][self.j].matces.isVisible = false
newBox[self.i][self.j].matces = nil
newBox[self.i][self.j].ismarkAble = false
semuanya:insert(groupEfect)
for i=1,8 do
for j=1,11 do
if (newBox[i][j].matces ~= nil) then
if (newBox[i][j].matces.isVisible == true) then
newBox[i][j].matces.canJatuh = false
end
end
end
end
local_t = local_t - 5000
getStatusGame("freeze")
katagenerator = ""
elseif huruf == "rainbow" then
initTable.insertRainbow()
sound.playsfx("pecah")
for i = #newGemActive,1, -1 do-- yang kepilih dihilangkan semua
newGemActive[i]:removeSelf();newGemActive[i] = nil
end
74-22
74-23
brak[#brak]:addEventListener('sprite', brak[#brak])
brak[#brak]:play(newBox[i][j].matces.colorFont)
groupEfect:insert(brak[#brak])
newBox[i][j].matces.isEliminir = true
newBox[i][j].matces.isVisible = false
newBox[i][j].matces = nil
newBox[i][j].ismarkAble = false
semuanya:insert(groupEfect)
end
elseif (self.frame == 4) then
if (newBox[i][j].matces.myName == 'i' or newBox[i][j].matces.myName == 'm' or
newBox[i][j].matces.myName == 'v') then
brak[#brak+1] = sf:newSpriteGroup()
brak[#brak].x,brak[#brak].y =newBox[i][j].matces.x,newBox[i][j].matces.y
brak[#brak].sprite = playNext
brak[#brak]:addEventListener('sprite', brak[#brak])
brak[#brak]:play(newBox[i][j].matces.colorFont)
groupEfect:insert(brak[#brak])
newBox[i][j].matces.isEliminir = true
newBox[i][j].matces.isVisible = false
newBox[i][j].matces = nil
newBox[i][j].ismarkAble = false
semuanya:insert(groupEfect)
end
else
brak[#brak+1] = sf:newSpriteGroup()
brak[#brak].x,brak[#brak].y =newBox[i][j].matces.x,newBox[i][j].matces.y
brak[#brak].sprite = playNext
brak[#brak]:addEventListener('sprite', brak[#brak])
brak[#brak]:play(newBox[i][j].matces.colorFont)
groupEfect:insert(brak[#brak])
newBox[i][j].matces.isEliminir = true
newBox[i][j].matces.isVisible = false
newBox[i][j].matces = nil
newBox[i][j].ismarkAble = false
semuanya:insert(groupEfect)
end
end
end
end
end
for i=1,8 do
for j=1,11 do
if (newBox[i][j].matces ~= nil) then
if (newBox[i][j].matces.isVisible ~= false and newBox[i][j].matces.canJatuh == false)
then
updateJatuh(newBox[i][j].matces)
end
end
end
74-24
end
katagenerator = ""
else
if self.ismarkAble ~= true then
sound.playsfx("pilih")
self.ismarkAble = true
lastID = nama
katagenerator = katagenerator..tostring(huruf)
newBox[posI][posJ].ismarkAble = true
-- self.isVisible = false
newGemActive[#newGemActive + 1] = display.newImage(fileOn, true)
newGemActive[#newGemActive].x,newGemActive[#newGemActive].y
newBox[posI][posJ].x,newBox[posI][posJ].y
newGemActive[#newGemActive].id = self.nomor
Curriculum Vitae
Nama
: Kristian Maulana
Jenis Kelamin
: Pria
Berat/Tinggi Badan
: 60 kg/170 cm
: kristian.maulana@hotmail.co.id atau
Bandung - 40175
kristian.maulana@hotmail.com
PENGALAMAN KERJA
2) Programmer di Techno Multi Utama yang berlokasi kota Cimahi, dimulai dari
Mei 2009 sampai Juni 2010, ikut berpartisipasi pada proyek :
a) KALK di STIP Jakarta.
c) CBT Aircraft General, Wong Bee dan Grob di SKADIK 104 TNI AU
KEAHLIAN
2. Data Base (MS Access, MySql, PostgreSQL dan SQL Server, SQLite)
3. CoronaSDK
Hormat Saya,
Kristian Maulana