Anda di halaman 1dari 118

LEMBAR PENGESAHAN

JUDUL
SUBJUDUL

:
:

PENYUSUN
NPM

:
:

GAME KATABRAK
PERMAINAN KOSAKATA BAHASA INDONESIA DI
LINGKUNGAN ANDROID
KRISTIAN MAULANA
TI1091010

Telah diperiksa dan disetujui oleh :


Pembimbing I

Pembimbing II

( Marwondo, S.T. )
NIDN : 04 061079 02

( R. Yadi Rakhman A., S.T. )


NIDN : 04 120184 02
Disahkan oleh :

Ketua Program Studi Teknik Perangkat Lunak


Universitas Informatika dan Bisnis Indonesia

(R. Yadi Rakhman A., S.T.)


NIDN : 04 120184 02

PERNYATAAN KEASLIAN SKRIPSI


Saya menyatakan dengan sesungguhnya bahwa skripsi ini dengan judul : GAME
KATABRAK dengan subjudul PERMAINAN KOSAKATA BAHASA

INDONESIA DI LINGKUNGAN ANDROID, yang dibuat untuk memenuhi


persyaratan menempuh Ujian Akhir Strata Satu pada Program Studi Teknik
Perangkat Lunak di Fakultas Teknologi Dan Informatika pada Universitas

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

manapun, kecuali bagian yang sumber informasinya dicantumkan sebagaimana


mestinya.

Bandung, November 2014

( 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.

Kata Kunci: Edugame Bahasa Indonesia, Variatif, Design, RUP


iv

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.

Keyword: Edugame Bahasa Indonesia, variatif, design, RUP

KATA PENGANTAR
Segala puji syukur penulis panjatkan bagi Allah SWT yang dengan

nikmat-Nya sempurnalah segala kebaikan, Dia-lah pemilik segala anugerah dan

keutamaan, Dia-lah pemilik segala pujian yang baik nan indah, atas rahmat dan
karunia-Nya penulis dapat menyelesaikan skripsi ini dengan baik.

Skripsi merupakan salah satu syarat bagi mahasiswa untuk menyelesaikan

program studi Sarjana Strata Satu (S1) di Jurusan Teknik Informatika Fakultas

Teknologi dan Informatika Universitas Informatika dan Bisnis Bandung. Penulis

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

terimakasih yang sebesar-besarnya kepada :


1.

Marwondo, S.T. dan R. Yadi Rakhman A., S.T. sebagai dosen pembimbing

2.

Pramu Kristianto sebagai Graphic Designer aplikasi Katabrak.

3.
4.
5.

yang sudah membantu dalam penyusunan Skripsi ini.

Arif Akuma kurami sebagai Music Creator dan Sound Effect Editor aplikasi
Katabrak.

Tim Kumata Studio yang memberikan tempat mengembangkan dan riset


aplikasi Katabrak.

Sahabat, teman dan semua pihak-pihak baik yang berkontribusi secara


langsung maupun tidak langsung yang tidak bisa dicantumkan dan ikut serta
dalam membantu dalam penyusunan skripsi ini.

Melalui Skripsi ini penyusun merasa mendapatkan kesempatan besar untuk

memperdalam ilmu pengetahuan yang diperoleh selama di bangku perkuliahan.

Penulis berharap skripsi ini bermanfaat bagi yang membacanya dan semoga

Allah SWT membalas segala kebaikan semua pihak yang telah membantu dalam
vi

menyelesaikan penyusunan skripsi ini dengan limpahan rahmat dan karunia-Nya.


Penulis sangat mengharapkan saran dan kritik dari para pembaca maupun yang
mencoba aplikasi yang dibuat untuk pengembangan aplikasi lebih lanjut.

Bandung, November 2014

Penulis

vii

DAFTAR ISI

.......................................................................................................

....................................................................................................... Laman

ABSTRAK ........................................................................................ iv
ABSTRACT ........................................................................................ v

KATA PENGANTAR ........................................................................ vi

DAFTAR ISI ..................................................................................... viii


DAFTAR TABEL .............................................................................. xi

DAFTAR GAMBAR .......................................................................... xii

DAFTAR DIAGRAM ........................................................................ xiii


DAFTAR LAMPIRAN ....................................................................... xiv
BAB I PENDAHULUAN ................................................................... 1
1.1 Latar Belakang ................................................................ 1
1.2 Identifikasi Masalah......................................................... 2
1.3 Rumusan Masalah ............................................................ 2
1.4 Maksud dan Tujuan.......................................................... 2

1.5 Metode Penelitian ............................................................ 3

BAB II TINJAUAN PUSTAKA ......................................................... 4

2.1 Pengertian Kosakata ........................................................ 4

2.2 Metode Belajar ................................................................ 5

2.2.1 Definisi Metode Belajar .......................................... 6


2.2.2 Jenis Metode Belajar ............................................... 7
2.2.3 Kriteria Pemilihan Metode Belajar ........................... 7

2.3 Media Pembelajaran ......................................................... 8

2.3.1 Peranan Media Pembelajaran ................................... 9

2.3.2 Jenis Media Pembelajaran ....................................... 10

2.4 Platform Komputer .......................................................... 11


viii

2.5 Perangkat Lunak .............................................................. 12

2.5.1 Komponen Perangkat Lunak .................................... 13


2.5.1.1 Karakteristik Perangkat Lunak.................... 14

2.5.1.2 Kategori Perangkat Lunak .......................... 14

2.5.2 Pengertian Rekayasa Perangkat Lunak ..................... 17


2.5.3 RUP (Rational Unified Process) .............................. 20

2.5.4 UML (Unified Modeling Language) ......................... 22


2.5.5 Penerapan UML pada RUP ...................................... 26

2.5.6 Pengujian Software ................................................. 28

2.6 Pengertian Sistem Operasi ................................................ 28

2.6.1 Sistem Operasi Mobile ............................................ 29


2.6.2 Perkembangan Android ........................................... 30

BAB III METODE PENELITIAN ...................................................... 32

3.1 Skema Penelitian ............................................................. 32


3.2 Tahapan Pembangunan Perangkat Lunak .......................... 33

3.2.1 Insepsi .................................................................... 33


3.2.2 Elaborasi ................................................................ 34
3.2.3 Konstruksi .............................................................. 34

3.2.4 Transisi .................................................................. 35

BAB IV INSEPSI DAN ELABORASI .................................................... 36

4.1 Insepsi ............................................................................ 36


4.1.1 Analisis Kebutuhan Non Fungsional ........................ 36

4.1.1.1 Analisis Perangkat Keras ............................ 36


4.1.1.2 Analisis Perangkat Lunak ........................... 37

4.1.1.3 Analisis Pengguna ..................................... 37

4.1.2 Analisis Kebutuhan Fungsional ................................ 37

4.2 Elaborasi ......................................................................... 42


4.2.1 Iterasi Pertama ........................................................ 42

4.2.2 Iterasi ke Dua ......................................................... 43

BAB V KONSTRUKSI DAN TRANSISI ................................................ 57

5.1 Konstruksi ....................................................................... 57


ix

5.1.1 Iterasi Pertama ........................................................ 57

5.1.2 Iterasi ke Dua ......................................................... 59


5.1.3 Iterasi ke Tiga ......................................................... 64
5.1.4 Pengujian ................................................................ 67
5.1.4.1 Hasil dan Kasus Pengujian .............................. 68

5.1.4.2 Simpulan Pengujian ..................................... 70

5.2 Transisi ........................................................................... 71

BAB VI PENUTUP ........................................................................... 72


6.1 Simpulan ......................................................................... 72

6.2 Saran ............................................................................... 72

DAFTAR PUSTAKA ......................................................................... 73


LAMPIRAN - LAMPIRAN ................................................................ 74

DAFTAR TABEL

....................................................................................................... Laman

Tabel 2.1 Klasifikasi Diagram ........................................................... 24


Tabel 2.2 Daftar Simbol pada UML .................................................... 25
Tabel 2.3 Daftar hubungan pada UML ................................................ 26

Tabel 5.1.1 Rencana Pengujian .......................................................... 67


Tabel 5.1.2 Hasil Pengujian .............................................................. 69

xi

DAFTAR GAMBAR

....................................................................................................... Laman

Gambar 2.1 Kerucut pengalaman ....................................................... 9

Gambar 2.2 Software Engineering Layer ............................................ 19


Gambar 2.3 Arsitektur Rational Unified Process ................................. 22
Gambar 4.1.2 Desain model permainan tahap insepsi ......................... 41
Gambar 4.2.1.1 Mokeup permainan iterasi Pertama ............................. 42

Gambar 5.1.2.1 Main Menu ............................................................... 60

Gambar 5.1.2.2 GamePlay .................................................................. 61

Gambar 5.1.2.3 Misi ......................................................................... 62


Gambar 5.1.2.4 Kamus ........................................................................ 63

Gambar 5.1.2.5 Selesai ......................................................................... 63


Gambar 5.1.3.1 Main Menu .................................................................. 64

Gambar 5.1.3.2 GamePlay ................................................................... 65


Gambar 5.1.3.3 Tunda ......................................................................... 66

Gambar 5.1.3.4 Selesai ........................................................................ 67


Gambar 5.2 Playstore .......................................................................... 71

xii

DAFTAR DIAGRAM

....................................................................................................... Laman

Diagram 2.1 Hubungan Model dan Alur Kerja ................................... 27

Diagram 3.1 Skema Penelitian ........................................................... 32

Diagram 4.1.1 Use Case Diagram ....................................................... 38


Diagram 4.1.2 Class Diagram ............................................................ 40
Diagram 4.1.3 Desain tampilan permainantahap insepsi ..................... 41

Diagram 4.2.1 Use Case Diagram Game Play ..................................... 44


Diagram 4.2.2 Class Diagram Game Play ........................................... 46
Diagram 4.2.3 Sequence Diagram Permainan ...................................... 49
Diagram 4.2.4 Activity Diagram Permainan ........................................ 50

Diagram 4.2.5 Structur Storyboard ..................................................... 52

Diagram 4.2.6 Main Menu ................................................................. 52


Diagram 4.2.7 Desain Tampilan Game Play ........................................ 53

Diagram 4.2.8 Desain Tampilan Tunda ............................................... 54


Diagram 4.2.9 Desain Tampilan Misi ................................................. 55
Diagram 4.2.10 Desain Tampilan Kamus ............................................ 55

Diagram 4.2.11 Desain Tampilan Selesai ............................................ 56

xiii

DAFTAR LAMPIRAN

....................................................................................................... Laman

Lampiran 1 Fungsi dan Modul Aplikasi Katabrak ..........................

74-1

Lampiran 3 Hasil Survey Katabrak ..............................................

74-25

Lampiran 2 Kode Program Katabrak ............................................

xiv

74-3

BAB I

PENDAHULUAN

1.1 Latar Belakang

Bahasa Indonesia merupakan sarana komunikasi yang utama dalam

kehidupan. Dengan bahasa manusia dapat mengutarakan keinginan, menjelaskan


ide, mencurahkan isi pikiran dalam bentuk tulisan dan karya tulis. Menurut
Subyakto dan Nababan (1992:124) bahasa adalah segala bentuk komunikasi
ketika

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

Indonesia. Indonesia memiliki banyak suku, kepulauan, daerah dan masing


masing wilayah memiliki keanekaragaman budaya dan bahasa dan Bahasa
Indonesialah yang menjadi bahasa pemersatu diantara keaneka ragaman yang ada.

Rendahnya penguasaan kosakata Bahasa Indonesia di kalangan remaja dan

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

latar belakang yang dikemukakan maka

penulis mencoba

membangun media belajar alternative sebagai salah satu solusi meningkatkan


perbendaharaan menggunakan media informasi, media yang penulis maksud
berupa perangkat lunak berbasis smartphone dan tablet dengan sistem operasi

Android. Penulis berharap aplikasi dengan media interaktif ini dapat menjadi

media pembelajaran yang menarik, dan efektif untuk meningkatkan kemampuan


perbendaharaan kosakata yang dimiliki oleh yang menggunakan aplikasi tersebut.

1.2 Identifikasi dan Batasan Masalah


Berdasakan

uraian

latar

belakang

masalah

mengidentifikasikan masalah sebagai berikut:

diatas

penulis

1.

Masih rendahnya perbendaharaan kosakata Bahasa Indonesia yang

2.

Media pembelajaran yang ada masih terbatas di sekolah saja.

3.

digunakan di masyarakat.
Perkembangan

teknologi

informasi

belum

dimanfaatkan

secara

maksimal sehingga aplikasi yang ada masih berupa TTS dan cari kata.

Karena keterbatasan waktu dan kemampuan serta pembahasan tidak

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

Untuk membangun suatu aplikasi, maka perlu analisa dan perancangan

berbagai kebutuhan yang digunakan dalam membangun aplikasi tersebut. Oleh


kerena itu, penulis merumuskan masalah seperti berikut Bagaimana membangun

suatu aplikasi Pembelajaran Kosakata Bahasa Indonesia menggunakan permainan


di lingkungan Android?

Dari masalah yang penulis analisa, penulis bermaksud untuk memfasilitasi

menjadi inspirasi dalam penyusunan proposal tugas akhir ini. Dengan mengangkat
judul

GAME

KATABRAK:

PERMAINAN

INDONESIA DI LINGKUNGAN ANDROID

KOSAKATA

BAHASA

1.4 Maksud dan Tujuan

Maksud dari penulisan tugas akhir ini adalah mengimplementasikan ilmu-

ilmu yang telah didapat oleh penulis selama masa perkuliahan di Universitas
Informatika dan Bisnis Indonesia (UNIBI).

Tujuan dari penelitian ini adalah penulis dapat membangun perangkat

lunak untuk belajar Kosakata Bahasa Indonesia berbasis multimedia di lingkungan


Android.

1.5 Metode Penelitian


Metode penelitian yang digunakan oleh penulis ialah metode deskriptif.

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.

Tahapan Inception (Insepsi)

Target utama dari tahapan inception ini ialah hanya memfokuskan pada
sistem yang akan dibangun sebagai dasar untuk menginisial cost dan budget

Tahapan Elaboration (Elaborasi)

Pada tahapan Elaboration ini target utama yang dicapai ialah memperkirakan
resiko dan menganalisa dari awal hingga akhir dari tahapan ini.

Tahapan Construction (Konstruksi)

Pada tahapan ini merupakan tahapan yang objektif dimana tahapan ini
merupakan tahapan pembuatan aplikasi sistem

Tahapan Transition (Transisi)

Tahapan ini terakhit dimana merupakan perubahan sistem dari pengembangan

ke tahapan produksi, membuat produk berjalan dan mengerti apa yang


dibutuhkan oleh user.

BAB II

TINJAUAN PUSTAKA

2.1 Pengertian Kosakata

Bahasa tidak terlepas dari kosakata. Kosakata atau perbendaharaan kata

adalah semua kata yang terdapat dalam suatu bahasa (Soedjito, 1992:1).
Penguasaan kosakata dapat memengaruhi keterampilan berbahasa seseorang.

Begitu juga dengan kemampuan seseorang menggunakan dan mempelajari bahasa


banyak dipengaruhi oleh kosakata yang dimilikinya.

Kosakata Bahasa Indonesia adalah kosakata yang tumbuh dan berkembang

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

dituntut untuk lebih memperkaya kosakata mereka. Dengan demikian, penguasaan


kosakata dapat meningkatkan keterampilan berbahasa. Hal tersebut sesuai dengan
pendapat Keraf menerangkan sebagai berikut,

Kosakata memegang peranan penting sebagai unsur yang mendasar


dalam kemampuan berbahasa, khususnya dalam karang mengarang
karena menjadi petunjuk mengenai pengetahuan seseorang. Jumlah
kata yang dikuasai akan menjadi petunjuk indikator bahwa orang itu
menguasai sekian banyak pengetahuan. (Keraf, 1984:4).
Istilah kosakata (vocabulary) dapat pula disebut perbendaharaan kata

(Poerwadarminta, 1976: 526), Vocabulary is aset lexseme including single

words, compon words and idiom. (Richards, 1985:307), Kosakata ialah arti
kata, pembendaharaan kata atau kata yang sama artinya. (W.J.S.Poerwadarminto,

1982:524), Kosakata ialah kata-kata yang mempunnyai persamaan arti atau


perbendaharan kata. (Imam Syafi`ie dan Imam Machfudz, 1993: 4). Pengertian
yang lebih luas kosakata diartikan:

a. Semua kata yang terdapat dalam satu bahasa

b. Kosakata yang dipakai segolongan orang

c. Kosakata yang digunakan dalam satu bidang ilmu

d. Seluruh morfem yang ada dalam satu bahasa (linguistik)

e. Daftar sejumlah kata dari suatu bahasa yang disusun secara urut
berdasar huruf abjad disertai keterangan

Dari beberapa pendapat yang dikemukan tersebut, dapat diambil

kesimpulan bahwa para ahli dalam memberi pengertian kosakata hampir

sama dan saling melengkapi, sehingga bermanfaat bagi siswa yang belajar
berbahasa. Namun didalam pelaksanaannya, penggunaan kosa kata harus

disesuaikan dengan tingkat kemampuan atau kematangan anak, baik ditingkat


praTK, TK, SD kelas rendah, SD kelas tinggi, dan seterusnya.

Kosakata baku adalah kata yang cara pengucapan atau penulisannya

sesuai dengan kaidah-kaidah yang telah dibakukan. Kaidah yang telah

dibakukan yang dimaksud merupakan pedoman ejaan yang disempurnakan

(EYD) yang terdapat pada Kamus Besar Bahasa Indonesia (KBBI) kata baku
memiliki pokok utama sebagai tolok ukur yang berlaku untuk kuantitas atau

kualitas yang ditetapkan berdasarkan kesepakatan standar (KBBI, 1995:82).

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)

2.2 Metode Belajar


Saat ini metode pembelajaran semakin banyak macam dan jenisnya,

setiap jenis metode mengajar mempunyai kelemahan dan kelebihan masing-

masing, tidak menggunakan satu macam metode saja. Berkembang metode


belajar dikarenakan kebutuhan pendidikan yang mengikuti akan perkembangan
zaman sehingga dalam penerapannya metode belajar banyak dikombinasikan

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

merupakan suatu proses internal yang mencakup ingatan, retensi, pengolahan


informasi, emosi dan factor-faktor lain berdasarkan pengalaman-pengalaman
sebelumnya (Toeti Soekamto, 1992: 27). Sedangkan Morgan menyebutkan bahwa
suatu kegiatan dikatakan belajar apabila memiliki tiga ciri-ciri sebagai berikut.
1.

Belajar adalah perubahan tingkah laku

3.

Perubahan tersebut harus bersifat permanen dan tetap ada untuk waktu yang

2.

Perubahan terjadi karena latihan dan pengalaman, bukan karena pertumbuhan


cukup lama.

Belajar pada dasarnya berbicara tentang bagaimana tingkah laku

seseorang berubah sebagai akibat pengalaman (Snelbeker: 1974 dan Toeti

Soekamto 1992:10). Dari pengertian di atas dapat dibuat kesimpulan bahwa agar
terjadi proses belajar atau terjadinya perubahan tingkah laku sebelum kegiatan

belajar mengajar dikelas seorang guru perlu menyiapkan atau merencanakan


berbagai pengalaman belajar yang akan diberikan dan pengalaman belajar tersebut
harus sesuai dengan tujuan yang ingin dicapai. Proses belajar itu terjadi secara

internal dan bersifat pribadi dalam diri, agar proses belajar tersebut mengarah
pada tercapainya tujuan dalam kurikulum maka guru harus merencanakan dengan

seksama dan sistematis berbagai pengalaman belajar yang memungkinkan


perubahan tingkah laku sesuai dengan apa yang diharapkan. Berdasarkan definisi
yang ada, penulis dapat mengambil kesimpulan bahwa metode belajar merupakan

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

Metode mengajar banyak macam-macam dan jenisnya, setiap jenis metode

mengajar mempunyai kelemahan dan kelebihan masing-masing, dalam sistem


pembelajaran pada umumnya tidak menggunakan satu macam metode saja, tetapi
mengkombinasikan penggunaan beberapa metode yang ada. Menurut Nana

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.

Metode Tanya Jawab


Metode Resitasi

Metode Kerja Kelompok

Metode Demonstrasi dan Eksperimen


Metode sosiodrama (role-playing)
Metode problem solving

Metode sistem regu (team teaching)

10. Metode latihan (drill)

11. Metode karyawisata (Field-trip)


12. Metode survai masyarakat
13. Metode simulasi
Pada

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

pembelajaran antara lain:

1.

ketersediaan sumber setempat. Artinya bila media yang bersangkutan tidak

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

faktor yang menyangkut keluwesan, kepraktisan dan ketahanan media yang


bersangkutan untuk waktu yang lama, dan

kegunaan biayanya dalam jangka waktu yang panjang.

Pemilihan metode pembelajaran lazimnya didasarkan pada 3 kriteria,

yaitu: (a) kelaikan praktis; (b) kelaikan teknis; dan (c) kelaikan biaya.
2.3 Media Pembelajaran
Menurut AECT (Association

of

Education

and

Communication

Technology) mendefinisikan media sebagai segala bentuk dan saluran yang


digunakan orang untuk menyalurkan pesan atau informasi (Arief Sadiman dkk,

2003:6). Gagne pada tahun 1970 mendefinisikan media adalah berbagai jenis

komponen dalam lingkungan yang dapat merangsangnya untuk belajar. Berbeda

dengan definisi diatas NEA (National Education Association) mendefiniskan


media adalah bentuk-bentuk komunikasi baik tercetak maupun audio-visual serta
peralatanya.

Media hendaknya dapat dimanipulasi, dilihat, didengar dan dibaca. Media

pembelajaran merupakan sumber belajar dalam upaya peningkatan hasil

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.

Alat (Device) atau dikenal dengan perangkat keras (hardware) seperti

c.

seperti buku, modul, majalah, OHT.

projector film, projector overhead, video tape, cassette recorder, TV.

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.

Lingkungan atau Setting yaitu tempat yang memungkinkan dalam melakukan


kegiatan belajar seperti gedung sekolah, museum, perpustakaan dan lain-lain.

Selanjutnya dalam upaya pemanfaatan media pembelajaran untuk

membantu proses pembelajaran Edgar Dale dalam Arief Sadiman dkk (2003c:7)

memberikan acuan dalam menentukan pemilihan media yang akan digunakan


berupa klasifikasi pengalaman menurut tingkat yang paling konkret ke yang
paling abstrak yaitu kerucut pengalaman (Cone of experience) sebagai berikut:

Gambar 2.1 Kerucut pengalaman (Cone of experience)

Kerucut Edgar Dale merupakan suatu acuan yang dalam pemilihan media

untuk sumber dan sarana belajar dengan tetap mengacu pada karakteristik serta

tugas perkembangan peserta didik sehingga penggunaan dan pemanfaatan media

dalam pembelajaran dapat memperoleh hasil optimal dengan maksud media

membantu dan mempermudah proses pembelajaran bukan sebaliknya media


malah mempersulit proses pembelajaran.

2.3.1 Peranan Media pembelajaran

Sebuah media yang ideal dalam sebuah lingkungan belajar adalah

media yang mampu memfasilitasi proses belajar dan meningkatkan tingkat

10

pemahaman

peserta

belajar

terhadap

informasi

yang

disampaikan.

Penggunaannya pun sebaiknya tetap ditentukan dan diatur oleh pengajar


selaku pihak yang mengetahui tujuan dan arah proses belajar yang dilakukan.
Dalam kata lain, bukan media yang menentukan pesan apa yang akan

disampaikan, tetapi pengajarlah yang mengatur jalannya informasi kepada

peserta belajar. Berikut ini beberapa contoh dari banyak manfaat yang dapat
kita lihat dari penggunaan media dalam pembelajaran:

1. Media pembelajaran dapat memberikan pengalaman tambahan, sehingga


wawasan yang dimiliki para peserta belajar kurang lebih dapat disamakan
(menyamakan persepsi materi pembelajaran).

2. Media pembelajaran dapat menyajikan informasi dari berbagai tempat.


3. Media pembelajaran dapat membangun interaksi.

4. Media pembelajaran dapat menciptakan proses penelitian.

5. Media pembelajaran dapat dapat mempertahankan konsep mengajar


secara utuh sekaligus nyata.

6. Media pembelajaran dapat meningkatkan motivasi belajar.

7. Media pembelajaran dapat menjembatani antara hal kongkrit dengan


abstrak.

2.3.2 Jenis Media Pembelajaran

Jenis media pembelajaran banyak jenisnya, adapun jenis-jenis Media

Pembelajaran adalah sebagai berikut:

1. Media Asli/Tiruan

a. Spesimen Makhluk Hidup maupun tidak hidup


b. Benda Asli bukan Makhluk Hidup

c. Model Tiruan benda asli (yang diperkecil atau diperbesar)

2. Media Grafis

Media grafis ialah semua media yang berupa tulisan/gambar, antara lain;

a. Media Chart, yaitu penyajian diagramatik meliputi: Tree Chart, Root

Chart, Flow Chart, Media Bagan Petunjuk/Penuntun, Bagan Waktu,


Bagan Bongkah, Bagan Pandang Tembus.

11

b. Media Grafik: Grafik Batang, Grafik Gambar atau Pictograph, Grafik


Garis, Grafik Bentuk Peta, dan Grafik Lingkaran (Grafik Pie)

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

perangkat lunak (termasuk kerangka kerja aplikasi). Kombinasi tersebut


memungkikan sebuah perangkat lunak, khusus perangkat lunak aplikasi,

dapat berjalan. Platform yang umum sudah menyertakan arsitektur, sistem

operasi, bahasa pemrograman dan antarmuka yang terkait (pustaka sistem


runtime atau antarmuka pengguna grafis) untuk komputer. Platform adalah
unsur yang penting dalam pengembangan perangkat lunak. Platform mungkin
dapat didefinisikan secara sederhana sebagai tempat untuk menjalankan
perangkat lunak.

Platform komputer yang ada berdasarkan mesin yang digunakan

1. Platform Server
2. Platform PC

3. Platform Mobile
4. Platform Tablet

Di era saat ini perkembangan teknologi informasi sudah mulai

berkembang sehingga suatu platform dapat mengadaptasi fitur atau

12

kelebihan-kelebihan yang dimiliki platform yang lain. Seperti halnya


platform

mobile pada

tahun 2010,

dimana

platform

mobile mulai

mengadaptasi platform tablet dan atau sebaliknya platform tablet yang


mengadaptasi fiture pada platform mobile seperti yang ada dalam fitur
smartphone berbasis iOS atau Android, ada pula aplikasi-aplikasi berasal dari
suatu platform mesin dapat dijalankan di platfotm mesin lain itu disebabkan

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

kompatibel berserta sistem operasi Windows

Arsitektur ARM yang digunakan dalam perangkat mobile seperti salah

satu poduk yang dikembangkan dari ARM yaitu Gumstix, komputer


miniatur yang berfungsi penuh dengan Linux

x86 dengan sistem operasi bertipe Unix seperti varian BSD

CP/M, komputer berbasis bus S-100, mungkin merupakan platform

komputer mikro yang paling awal

2.5 Perangkat Lunak (Software)


Perangkat lunak atau software adalah sekumpulan perintah dan
fungsi yang terorganisasi dan terenkapsulasi dalam bentuk yang dapat
dieksekusi oleh komputer. Menurut Roger S. Pressman:

Software is (1) instructions (computer programs) that when


executed provide desired function and performance, (2) data
structures that enable the programs to adequately manipulate
information, and (3) documents that describe the operation and use
of the programs. ( Software Engineering Apractitioners Approach,
2001: 6)
Terjemahan bebas dari kutipan Roger S. Pressman ialah, perangkat lunak

adalah perintah dalam bentuk program komputer yang bila dikerjakan atau

dieksekusi memberikan fungsi dan suatu layanan yang diharapkan, struktur data

yang memungkinkan program cukup untuk memanipulasi informasi, dan

13

dokumen yang menggambarkan tahapan dan penggunaan program. Sedangkan


Menurut Ian Sommerville dalam buku Software Engineering:

What is software? Computer programs and associated


documentation. Software products may be developed for a particular
customer or may be developed for a general market. (Software Engineering
(ninth edition), 2006: 6)
Sedangkan terjemahan bebas dari pemaparan Ian Sommerville, apa itu

perangkat lunak? Program komputer dan dokumen yang berketerkaitan. Perangkat

lunak mungkin dibangun untuk memberikan hasil untuk beberapa pengguna atau
dibangun untuk pengguna yang lebih luas.

Dari terjemahan diatas dapat diambil kesimpulan bahwa Perangkat lunak

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

Komponen perangkat lunak dibangun dengan bahasa pemrograman

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

kedekatannya dengan mesin komputer, bahasa pemrograman terdiri dari:

tingkat

1.

Bahasa Mesin, yaitu memberikan perintah kepada komputer dengan

2.

Bahasa Tingkat Rendah, atau dikenal dengan istilah bahasa rakitan

memakai kode bahasa biner, contohnya 01100101100110

(bah.Inggris Assembly), yaitu memberikan perintah kepada komputer


dengan memakai kode-kode singkat (kode mnemonic), contohnya

[kode_mesin|MOV], SUB, CMP, JMP, JGE, JL, LOOP, dan lain


sebagainya. Bahasa pemrograman masuk tingkat ini karena bahasanya
3.

masih jauh dari bahasa manusia. Contohnya bahasa Assembly.

Bahasa Tingkat Menengah, yaitu bahasa komputer yang memakai


campuran instruksi dalam kata-kata bahasa manusia (lihat contoh
Bahasa Tingkat Tinggi di bawah) dan instruksi yang bersifat simbolik,

14

contohnya {, }, ?, <<, >>, &&, ||, dan lain sebagainya. Disebut tingkat

menengah karena bisa masuk ke dalam bahasa tingkat tinggi maupun


4.

rendah. Contohnya bahasa C.

Bahasa Tingkat Tinggi, yaitu bahasa komputer yang memakai instruksi


berasal dari unsur kata-kata bahasa manusia, contohnya begin, end, if,

for, while, and, or, dsb. Komputer dapat mengerti bahasa manusia itu

diperlukan program compiler atau interpreter. Bahasa pemrograman


masuk tingkat ini karena bahasa tersebut mendekati bahasa manusia.
Contohnya bahasa Basic, Visual Basic, Pascal, Java dan lainnya.
2.5.1.1 Karakteristik Perangkat Lunak

Perangkat lunak merupakan elemen logika dan bukan merupakan

elemen sistem fisik. Dengan demikian perangkat lunak memiliki karakteristik


yang berbeda, yaitu:
1.

Perangkat lunak dibangun dan dikembangkan tidak dengan bentuk klasik

3.

Sebagian perangkat lunak dibuat secara Custom Built, serta tidak dapat

2.

Perangkat lunak tidak pernah usang.


dirakit oleh komponen yang ada.

2.5.1.2 Kategory Perangkat Lunak


Dari

berbagai

banyak

aplikasi

mengkategorikan software seperti berikut:

yang

ada

Ian

Sommerville

1.Stand-alone applications

Stand-alone applications (aplikasi yg berdiri sendiri) aplikasi ini berjalan


pada komputer lokal, aplikasi ini bekerja tergantung kebutuhannya dan tidak
perlu terhubung dengan jaringan

2. Interactive transaction-based applications

Interactive transaction-based applications aplikasi ini berjalan dengan cara


di-remote dan menggunakan akses user dari pengguna PC atau jaringan.

15

3. Embedded control systems

Embedded control systems aplikasi yang berkerja pada control system dan
aplikasi ini akan mengontrol serta memanage komponen perangkat

keras(Hardware) dengan cara menyimpan sistem perhitungan numerik yang


di-include-kan pada sistem.

4. Batch processing systems

Suatu sistem yang didesain untuk memproses dengan kebutuhan data yang
besar dengan melakukan proses pengiriman secara Batch.

5. Entertainment systems

Entertainment system aplikasi yang kebutuhan utamanya untuk kebutuhan


pribadi dan berhubungan dengan hiburan. Sistem ini digambarkan seperti
Games, dan lain sebagainya.

6. Systems for modeling and simulation

Sistem ini dikembangkan oleh scientists dan engeineers dalam memodelkan

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

7. Data collection systems

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

Aplikasi ini dirancang sebagai aplikasi generik produk, seperti aplikasi


spreadsheet. Aplikasi ini dirancang dan digunakan hanya untuk keperluan
tertentu yang berhubungan dengan suatu kegiatan.

Sedangkan menurut Roger S. Pressman mengkategorikan software

seperti berikut:

1. System software.

Sistem software ialah perangkat lunak yang menjalankan kumpulan program

yang ditulis untuk layanan program lain. Beberapa perangkat lunak sistem

16

(misalnya, kompiler, editor, dan manajemen file utilitas) kompleks proses,


tetapi tentu, struktur informasi.

2. Real-time software.

Software yang memonitor atau menganalisis atau mengontrol kejadian dunia

nyata saat terjadi disebut real time. Elemen-elemen real-time software


meliputi pengumpulan data komponen yang mengumpulkan dan format

informasi dari lingkungan eksternal, komponen analisis yang mengubah

informasi yang diperlukan oleh aplikasi, komponen kontrol/output yang


tanggap terhadap lingkungan eksternal, dan komponen pemantauan yang
mengkoordinasikan semua komponen lain sehingga responnya real-time

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

"sistem" (misalnya, gaji, piutang atau hutang, persediaan) telah berkembang


menjadi sistem informasi manajemen (MIS) yang mengakses data yang lebih
besar lagi dari database yang berisi informasi bisnis.

4. Engineering and scientific software.

Engineering and scientific software ditandai dengan pengolahan algoritma


"angka-angka". Aplikasi berkisar dari astronomi sampai vulkanologi, dan dari
biologi molekuler untuk manufaktur otomatis. Namun, aplikasi modern dalam

wilayah rekayasa atau ilmiah bergerak menjauh dari algoritma numerik


konvensional.

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

industri. Perangkat lunak yang tertanam hanya melakukan fungsi-fungsi yang

sangat terbatas dan esoteris (misalnya, tombol kontrol untuk oven

17

microwave) atau menyediakan fungsi yang signifikan dan kemampuan


kontrol (misalnya, fungsi digital dalam sebuah mobil seperti kontrol bahan
bakar).

6. Personal computer software.

Pasar personal computer sofware telah berdiri selama dua dekade terakhir.
Komputer

grafis

pengolah

kata,

spreadsheet,,

multimedia,

hiburan,

manajemen database, aplikasi keuangan pribadi dan bisnis, jaringan eksternal,


dan akses database hanya beberapa dari ratusan aplikasi.

7. Web-based software.

Halaman Web yang diambil oleh browser adalah software yang

menggabungkan instruksi dieksekusi (misalnya, CGI, HTML, Perl, atau


Java), dan data (misalnya, hypertext dan berbagai format visual dan audio).

Pada dasarnya, jaringan komputer menjadi besar menyediakan sumber daya

perangkat lunak hampir tak terbatas yang dapat diakses oleh siapa saja yang
terhubung dengan sistem jaringan website yang ada.

8. Artificial intelligence software.

Arificial Inteligent (AI) memanfaatkan algoritma nonnumerical untuk


memecahkan masalah kompleks yang tidak setuju untuk perhitungan atau
dengan menganalisa secara langsung. para ahli menggunakan sistem ini
dengan menerapkan basis pengetahuan melalui pengenalan pola (gambar dan

suara), jaringan saraf tiruan, membuktikan teorema, dan sistem pengetahuan


permainan.

2.5.2 Pengertian Rekayasa Perangkat Lunak

Rekayasa perangkat lunak (Software Engineering) adalah suatu disiplin

ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap

awal requirement capturing (analisa kebutuhan pengguna), specification


(menentukan spesifikasi dari kebutuhan pengguna), design, coding, testing sampai
pemeliharaan sistem setelah digunakan untuk menghasilkan perangkat lunak yang

handal dan efisien. Ada beberapa pengertian menurut beberapa ahli dibidang

18

perangkat lunak. Pengertian Rekayasa Perangkat Lunak menurut para ahli adalah
sebagai berikut:

Menurut Ian Sommerville dalam buku Software Engineering:

What is software engineering? Software engineering is an


engineering discipline that is concerned with all aspects of software
production. (Software Engineering (ninth edition), 2006: 6)

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:

Software Engineering: (1) The application of a systematic,


disciplined, quantifiable approach to the development, operation,
and maintenance of software; that is, the application of engineering
to software. (2) The study of approaches as in (1). (Software
Engineering Apractitioners Approach (fifth edition), 2001: 20)
Terjemahan bebas dari IEEE Computer Society ialah, rekayasa perangkat

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:

Software engineering is the establishment and use of sound


engineering principles in order to obtain economically software that
is reliable and works efficiently on real machines. (Software
Engineering Apractitioners Approach (fifth edition), 2001: 20)

Terjemahan bebas dari Fritz Bauer, rekayasa perangkat lunak adalah .

pengembangan dan penggunaan prinsip pengembangan untuk memperoleh


perangkat lunak secara ekonomis yang reliable dan bekerja secara efisien pada

mesin nyata Menurut Roger S. Pressman dalam buku Software Engineering


Apractitioners Approach:

Software engineering is layered technology. Total quality


management and similar philosophies foster a continuous process
improvement culture, and this culture ultimately leads to the
development of increasingly more mature approaches to software
engineering. The bedrock that supports software engineering is a

19

quality focus. (Software Engineering Apractitioners Approach


(fifth edition), 2001: 20)
Terjemahan bebas dari Roger S. Pressman, rekayasa perangkat lunak

adalah lapisan atau tahapan teknologi. Jumlah kualitas manajemen dan prose

mengemkembangan secara berkelanjutan. Dan kebutuhan pokok yang mendorong


dalam membangun dan lebih meningkatkan dalam pendekatan rekayasa perangkat

lunak. Rekayasa perangkat lunak mendukung sebagai dasar untuk fokus pada
kualitas. Berikut Software engineering layer yang diutarakan Roger S. Pressman.

Gambar 2.2 Software Engineering Layer


Dari berbagai banyak pengertian tentang rekayasa perangkat lunak yang

diutarakan oleh beberapa ahli dibidang perangkat lunak penulis mengambil

kesimpulan bahwa rekayasa perakngat lunak adalah suatu aplikasi berdasarkan


ilmu pengetahuan yang sistematik, terurut, dibangun dengan pendekatan yang
terukur untuk memperoleh perangkat lunak secara ekonomis yang reliable dan

bekerja secara efisien untuk fokus pada kualitas. Berikut ini metode
pengembangan perangkat lunak yang dipaparkan oleh menurut Ian Sommerville

dan Roger S. Pressman. Metode pengembangan perangkat lunak menurut Ian


Sommerville metode rekayasa perangkat lunak dibagi menjadi:
1.
2.
3.

Waterfall model

Incremental model

Reused oriented software engineering model


Sedangkan menurut Roger S. Pressman metode rekayasa perangkat lunak

dibagi menjadi:

20

1.

The linear sequential model

3.

The RAD model

2.
4.
5.
6.
7.
8.
9.

10.

The prototyping model

The incremental model


The spiral model

The WINWIN spiral model

The component-based development model


The concurrent development model
The formal methods model

The fourth generation techniques model

2.5.3 RUP (Rational Unified Process)

RUP ialah salah satu metode pengembangan softwar. RUP sebenarnya

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.

RUP bukanlah suatu proses tunggal karena RUP berbasis Unified

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

Dimensi pertama digambarkan secara horizontal. Dimensi ini mewakili

aspek-aspek dinamis dari pengembangan perangkat lunak. Aspek ini dijabarkan

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,

Elaboration, Construction, dan Transition. Fasa-fasa ini memungkinkan untuk

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

Pada tahap ini pengembang mendefinisikan batasan kegiatan, melakukan

analisis kebutuhan user, dan melakukan perancangan awal perangkat lunak


(perancangan arsitektural dan use case). Pada akhir fase ini, prototipe perangkat
lunak versi Alpha harus sudah dirilis
2.

Elaboration

Pada tahap ini dilakukan perancangan perangkat lunak mulai dari

menspesifikasikan fitur perangkat lunak hingga perilisan prototipe versi Betha


dari perangkat lunak.
3.

Construction

Pengimplementasian rancangan perangkat lunak yang telah dibuat

dilakukan pada tahap ini. Pada akhir tahap ini, perangkat lunak versi akhir yang
sudah disetujui administrator dirilis beserta dokumentasi perangkat lunak.
4.

Transition

Instalasi, deployment dan sosialisasi perangkat lunak dilakukan pada

tahap ini.

B. Dimensi kedua

Dimensi kedua digambarkan secara vertikal. Dimensi ini mewakili

aspek-aspek

statis

dari

proses

pengembangan

perangkat

lunak

yang

dikelompokkan ke dalam beberapa disiplin. Proses pengembangan perangkat

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

Gambar 2.3 Arsitektur Rational Unified Process


2.5.4 UML (Unified Modeling Language)

Unified Modeling Language (UML) adalah standarisasi dalam bahsa

pemodelan khususnya pada pengembangan software berbasis objek. Metode RUP

dikembangkan Grady Booch, Ivar Jacobson dan Jim Rumbaugh di Rational

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,

menspesifikasikan mengkonstruksikan, dan mendokumentasikan artifak-artifak

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

Sebuah Use Case mendeskripsikan apakah yang dilakukan sebuah sistem

(atau subsistem, class atau interface) tetapi tidak menspesifikasikan bagaimana

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 class diagram merupakan sebuah diagram yang menampilkan

sebuah set yang terdiri dari classes, interfaces, dan kolaborasi dan hubungan
diantara mereka (Booch, 1999, p107).
3. Sequence Diagram

Sebuah sequence diagram menjabarkan behavior sebuah sekenario

tunggal. Diagram tersebut menunjukkan sejumlah objek contoh dan pesan-pesan


yang melewati objek-objek ini didalam use case (Fowler, 2005, p81).
4. Activity Diagram

Sebuah activity diagram menampilkan aliran dari satu aktifitas ke aktifitas

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

Object diagram menggambarkan kumpulan dari object dan hubungan antar

object tersebut. Object diagram digunakan untuk menggambarkan struktur data


dan instance dari class.

7. Component Diagram

Component diagram menggambarkan kumpulan komponenkomponen

dan hubungan antar komponen tersebut. Component diagram digunakan untuk


mengambarkan implementasi statis dari suatu sistem.

24

8. Collaboration Diagram

Collaboration diagram adalah diagram interaksi yang menekankan pada

organisasi struktural dari object yang mengirim dan menerima pesan.

Collaboration diagram menggambarkan kumpulan object, hubungan antar object


dan pesan yang dikirim dan diterima oleh object tersebut.
9. State Diagram

State diagram mengambarkan status dari mesin, terdiri dari status (state),

transisi, event, dan aktivitas. State diagram mengilustrasikan gambaran dinamis


dari suatu sistem.

Dari Sembilan diagram diatas dapat dijadikan dia klasifikasi yaitu

structural diagram dan behavioral diagram


Structural Diagrams

Tabel 2.1 Klasifikasi diagram


Class Diagram

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

yang statis saat pengembangan software, sedangkan Behavioral Diagrams

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

Tabel 2.2 Daftar simbol pada UML

26

Tabel 2.3 Daftar hubungan pada UML

2.5.5 Penerapan UML pada RUP

Karena RUP sistem pengembangan perangkat lunak menggunakan

konsep object oriented maka dari itu tepat jika UML sebagai kaidah atau aturan

untuk menggambarkan model dan proses yang akan dan sedang berjalan. Berikut

penjelasan dimana penerapan model dan diagram UML diterapkan berdasarkan


Ivar Jacobson pada Applaying UML in The Unified Process

27

28

2.5.6 Pengujian Software

Pada pengujian perangkat lunak, pelaku RPL menciptakan sekumpulan

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.

2.6 Pengertian Sistem Operasi


Menurut etimologi sistem ialah perangkat unsur yg secara teratur saling

berkaitan sehingga membentuk suatu totalitas, sedangkan operasi ialah


melaksanaan rencana yg telah dikembangkan sedangkan pengertian sistem operasi

(bahasa Inggris: operating system ; OS) adalah seperangkat program yang


mengelola sumber daya perangkat keras komputer, dan menyediakan layanan
umum untuk aplikasi perangkat lunak. Menurut Silberschatz/Galvin/Gagne
(2003), Sistem Operasi adalah Suatu program yang bertindak sebagai perantara

antara user dan hardware komputer. Dia juga menyatakan bahwa tujuan dari

sistem operasi adalah Melaksanakan program user memudahkan dalam


menyelesaikan masalah user. Membuat setiap aplikasi menjadi mudah berjalan
pada sistem komputer, sehingga penggunaan hardware komputer menjadi lebih
efisien.

Biasanya, istilah Sistem Operasi sering ditujukan kepada semua

perangkat lunak yang masuk dalam satu paket dengan sistem komputer sebelum

aplikasi-aplikasi perangkat lunak terinstal. Sistem operasi adalah perangkat lunak


sistem yang bertugas untuk melakukan kontrol dan manajemen perangkat keras

serta operasi-operasi dasar sistem, termasuk menjalankan perangkat lunak aplikasi

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:

A. Sistem operasi untuk PC (komputer)

B. Sistem operasi untuk handphone dan smartphone


C. Sistem operasi untuk tablet PC

Jika sistem opersai yang biasa dipergunakan dan dikenal yang ada di

komputer umum (termasuk PC, komputer personal, leptop, netbook) terbagi


menjadi 3 kelompok besar:
1.

Keluarga Microsoft Windows sistem operasi yang dikembangkan oleh Bill

2.

Keluarga Linux adalah aplikasi opensource yang menggunakan antarmuka

3.

Gates yang saat ini masih banyak dipergunakan di Indonesia

Gnome, dan KDE yang diperkenalkan oleh Linus Benedict Torvalds

Mac OS, adalah sistem operasi untuk komputer keluaran Apple yang biasa
disebut Mac atau Macintosh yang diperkenalkan oleh Steve Jobs

2.6.1 Sistem Operasi Mobile

Sedangkan Mobile Operating System atau Sistem Operasi Genggam

(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)

b. BlackBerry OS dari RIM (closed source, proprietary)


c. iOS dari Apple Inc. (closed source, proprietary)

d. Symbian OS dari the Symbian Foundation (open public license)


e. Windows Phone dari Microsoft (closed source, proprietary)

Awalnya, Google Inc. membeli Android Inc., pendatang baru yang

membuat peranti lunak untuk ponsel. Kemudian untuk mengembangkan Android,

dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan peranti keras,

30

peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola,


Qualcomm, T-Mobile, Nvidia, ARM Holdings, Atheros Communications,

diproduksi oleh Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson,
Toshiba Corp, dan Vodafone Group Plc.

Seiring pembentukan Open Handset Alliance (OHA) mengumumkan

produk perdana mereka Android, perangkat bergerak (mobile) yang merupakan


modifikasi kernel Linux 2.6. Fitur yang terdapat pada android yang terdapat pada
PC tablet atau ponsel pintar ialah
1.

Kerangka aplikasi: itu memungkinkan penggunaan dan penghapusan

2.

Dalvik mesin virtual: mesin virtual dioptimalkan untuk perangkat telepon

3.
4.
5.
6.
7.

komponen yang tersedia.


seluler.

Grafik: grafik di 2D dan grafis 3D berdasarkan pustaka OpenGL.


SQLite: untuk penyimpanan data.

Mendukung media: audio, video, dan berbagai format gambar (MPEG4,


H.264, MP3, AAC, AMR, JPG, PNG, GIF)

GSM, Bluetooth, EDGE, 3G, 4G, EVDO dan WiFi (tergantung piranti
keras)

Kamera,

Global

Positioning

System

accelerometer (tergantung piranti keras)

(GPS),

kompas,

NFC

dan

2.6.2 Perkembangan Android

Android adalah sistem operasi yang berbasis Linux berbasis mobile yang

digunakan oleh ponsel pintar dan PC tablet. Android menyediakan platform

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.

Android versi 1.0 (Alpha)


Android versi 1.1 (Beta)

31

3.

Android versi 1.5 (Cupcake)

5.

Android versi 2.0/2.1 (Eclair)

4.
6.
7.
8.
9.

Android versi 1.6 (Donut)

Android versi 2.2 (Froyo: Frozen Yoghurt)


Android versi 2.3 (Gingerbread)

Android versi 3.0/3.1 (Honeycomb)

Android versi 4.0 (ICS: Ice Cream Sandwich)

10. Android versi 4.1/4.2/4.3 (Jelly Bean)


11. Android versi 4.4 (KitKat)

12. Android versi 5.0 (Lollipop)

BAB III

METODOLOGI PENELITIAN
Metodologi penelitian merupakan suatu mekanisme, teknik atau cara untuk

mencari, memperoleh, mengumpulkan atau mencatat data yang dapat digunakan


untuk keperluan tertentu. Metode penelitian yang digunakan dalam penelitian ini
adalah metode deskriptif.
3.1 Skema Penelitian

Skema bagan alir dalam tahapan penelitian tentang Permainan Kosakata

Bahasa Indonesia Berbasis Android dapat dilihat pada gambar skema berikut ini:

Diagram 3.1 Skema penelitian

32

33

a.

Tahapan metodologi penelitian dijelaskan secara umum sebagai berikut:

Identifikasi Masalah

Melakukan identifikasi tentang masalah apa yang akan dibahas berkaitan


dengan bagaimana metode pembelajaran kosakata bahasa Indonesia

b.

c.

berdasarkan permasalahan yang ada di lapangan.

Rumusan Masalah

Melakukan rumusan tentang kebutuhan sistem pembelajaran yang menarik,


dan efektif untuk meningkatkan kemampuan perbendaharaan kosakata.

Studi Pustaka

Melakukan pencarian informasi berdasarkan rumusan masalah sesuai dengan


apa kebutuhan sistem pembelajaran yang menarik, dan efektif untuk
meningkatkan kemampuan perbendaharaan kosakata.

3.2 Tahapan Pembangunan Perangkat Lunak

Karena penulis menggunakan metode RUP dimana metode RUP memiliki

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:

Menentukan stakeholder (peran), Mengumpulkan keinginan dan kebutuhan

yang sesuai dengan permasalahan menurut stakeholder, Mendefinisikan


definisi ruang lingkup pekerjaan dan perkiraan biaya dan jadwal.

B. Analisis dan Desain:

Tahapan analisis dan desain belum dilakukan.

C. Implementasi:

Tahapan implementasi belum dilakukan tetapi mulai mengerjakan mock-up


aplikasi.

34

D. Testing:

Tahapan testing belum dilakukan

3.2.2 Elaborasi
A. Requirement:

Meninjau kembali requirement dari software, dan requirement non fungsional


dengan kasus-kasus tertentu sesuai dengan aplikasi yang dikembangkan yang
mana menjadi kebutuhan dan hanya keinginan.

B. Analisis dan Desain:

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:

Tahapan implementasi belum dilakukan tetapi mulai pengembangan mock-up


aplikasi, dan persiapan membangun versi alpha.

D. Testing:

Tahapan testing belum dilakukan

3.2.3 Konstruksi
A. Requirement:

Tahapan requirment tidak lagi dilakukan

B. Analisis dan Desain:

Tahapan analisis dan desain tidak lagi dilakukan

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:

Tahapan requirment tidak lagi dilakukan

B. Analisis dan Desain:

Tahapan analisisi dan desain tidak lagi dilakukan

C. Implementasi:

Perbaikan dan mempersiapkan versi berikutnya dengan model permainan


serupa

D. Testing:

Testing dilakukan sebelum penyerahan software kepada end users dengan


keadaan yang sebenarnya.

BAB IV

INSEPSI DAN ELABORASI


Bab ini merupakan lanjutan dari bab sebelumnya, yaitu tahap

pembangunan aplikasi kedalam representasi perangkat lunak, sesuai dengan hasil


metode penelitian dan data yang dihasilkan dan diolah pada proses sebelumnya.

4.1 Insepsi
Tahapan insepsi penulis melakukan analisa kebutuhan baik fungsional
maupun

non-fungsional.

Berikut

kebutuhan sesuai dengan tipenya.


4.1.1.

ini

mengklasifikasikan

Analisis Kebutuhan Non Fungsional


Analisis kebutuhan non fungsional dilakukan

macam-macam

untuk

mengetahui

spesifikasi kebutuhan untuk sistem. Spesifikasi kebutuhan melibatkan analisis

perangkat keras atau hardware, analisis perangkat lunak/software, analisis


pengguna atau user.

4.1.1.1. Analisis Perangkat Keras

Analisis peragkat keras yang digunakan ialah smarphone atau tablet untuk

penjelasan tentang spesifikasi perangkat peras dalam menggunakan aplikasi


katabrak tidak bias ditentukan secara spesifik hanya saja kebutuhan media

penyimpanan berupa media storage sebesar 100MB untuk aplikasi, sedangkan

kebutuhan media penyimpanan berupa media storage dapat di sesuaikan dengan


software system operasi yang dipergunakan.

36

37

4.1.1.2. Analisis Perangkat Lunak

Kebutuhan peragkat Lunak minimal yang digunakan untuk instalasi

aplikasi katabrak diperlukan aplikasi smartphone atau tablet yang sudah terinstal
androd 3.0.

4.1.1.3. Analisis Pengguna


Karakteristik user yang menjadi sasaran utama dari aplikasi katabrak ini

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.

Analisis Kebutuhan Fungsional


Salah satunya kebutuhan waktu yang diperlukan untuk masing-masing

fase, menganalisa kebutuhan calon pengguna maupun kebutuhan membangun


aplikasi baik Hardware, Software, maupun Brainware. Dari tahapan ini penulis

menetapkan stake holder (peran) yang ikut serta dalam pembangunan aplikasi ini
ialah:

Sasaran Pengguna : Usia 12 tahun ke atas


Distributor

: Google Play (Play Store)

Developer

: Pengembang aplikasi (programmer, designer, creator, music

Advertiser

: Sosial Media, Ads


editor)

Reviewer (Tester) : Pengguna aplikasi, Media elektronik, Media cetak

Pada tahapan ini penulis mencoba menganalisa kebutuhan dalam

membangun perangkat lunak seperti berikut:


Kebutuhan Software Compiler

: CoronaSDK, Java, SQLite

Kebutuhan Brainware

: mengerti Lua, mengerti algoritma, memahami

Kebutuhan Software Editor

Kebutuhan Hardware

: text Editor

konsep game, mengerti desain

: Processor 1 Ghz dengan grafis yang support


OpenGL 2.0 untuk versi corona 2013.2076

38

untuk versi sebelumnya OpenGL 1.0

Klasifikasi Implementasi Device : semua tipe android dengan OS diatas Android


3 dan menggunakan CPU Kernel ARMv7
keatas
Kebutuhan OS

: Microsoft XP

Penulis dari tahapan ini penulis mencoba menganalisa kerangka kerja

dalam membangun perangkat lunak. Berikut gambaran kerangka kerja yang akan
dibentuk dalam bentuk use case diagram sebagai berikut:

1.

Diagram 4.1.1 Use Case Diagram

Scenario Use Case Membangun Database Kosakata

Nama Use Case: Membangun Database Kosakata


Actor : Pengguna

Tujuan : Membuat database


2.

Sistem : membangun database list kosakata

Scenario Use Case Membuat Kata

Nama Use Case: Membuat Kata


Actor : Pengguna

Tujuan : Pengguna membuat kata untuk mengurangi jumlah objek

Sistem : Membuat kata sesuai dengan list kata yang ada pada database
3.

kosakata

Scenario Use Case Menandai Objek

Nama Use Case: Menandai Objek

39

Tujuan : memberikan tanda Objek

Sistem : memberikan tanda secara spesifik baik nama objek, posisi, dan
4.

lain-lain sebelum objek dihancurkan.

Scenario Use Case Membangun Referensi Objek

Nama Use Case: Membangun Referensi Objek


Actor : OpenGL

Tujuan : Membangun posisi referensi Objek


5.

Sistem : Membuat referensi tempat penempatan Objek

Scenario Use Case Membangun Objek

Nama Use Case: Membangun Objek

Tujuan : Membangun objek yang dapat dimainkan pada halaman


permainan

Sistem : Membangun Objek dengan sifat yang unik, serta dengan


6.

membawa kode huruf untuk pembuatan kata.

Scenario Use Case Mencocokan Kata

Nama Use Case: Mencocokan Kata

Tujuan : pencocokan kata yang dibuat dengan database kosakata

Sistem : mencocokan kosakata yang berada di database kosakata dengan


7.

kata yang dibuat oleh pengguna

Scenario Use Case Menghacurkan Objek

Nama Use Case: Menghacurkan Objek


Actor : OpenGL

Tujuan : Menghancurkan Objek

Sistem : Menghancurkan Objek jika kata yang dibuat sesuai dengan


database yang ada, objek yang hancur digantikan oleh objek yang
baru

Sesuai dengan use case dan penjelasan atas use case diatas untuk actor

database dan OpenGL di lakukan oleh disisi device yang menggunakan OS


Android. Pada tahapan insepsi ini penulis sudah mencoba mendesain tampilan

untuk halaman permainan yang digunakan sebagai halaman inti dimana


permainan akan berjalan. Berikut ini class diagram yang dibuat.

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

Diagram 4.1.2 Class Diagram Game Play

Berikut definisi dari class diagam pada iterasi pertama

A. Class RefBalok

1. Atribut RefBalok

a. idRefBalok type: Numeric (integer)

b. posisiRefBalokX type: Float (double)


c. posisiRefBalokY type: Float (double)
d. idBalok type: Numeric (integer)

2. Operasi RefBalok
a. Create
b. Read

c. Update

B. Class Kosakata

1. Atribut Kosakata

a. idKata type: Numeric (integer)


b. kata type: text (varchar)

2. Operasi Kosakata
a. Create
b. Read

C. Class RefBalok

1. Atribut RefBalok

a. idBalok type: Numeric (integer)

b. gambarBalok type: text (varchar)

c. posisiBalokX type: Float (double)


d. posisiBalokY type: Float (double)

-idKata
-kata
+Create()

41

e. posisiRefBalokX type: Float (double)


f. posisiRefBalokY type: Float (double)
g. hurufBalok type: Char (char)

2. Operasi RefBalok
a.

Create

c.

Update

b.
d.

Read

Delete

Berikut desain tampilan halaman permainan.

Diagram 4.1.3 Desain tampilan permainan tahap insepsi

42

Gambar 4.1.2 Desain model permainan tahap insepsi

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.

4.2.1. Iterasi Pertama


Pada iterasi pertama penulis membangun aplikasi sesuai dengan gambaran

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

Gambar 4.2.1.1 Mokeup permainan iterasi Pertama

4.2.2. Iterasi ke Dua


Pada iterasi ke dua pada tahapan elaboration penulis mencoba meninjau

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

Diagram 4.2.1 Use Case Diagram Game Play

1.

Scenario Use Case Membuat Objek

Nama Use Case: Membuat Objek


Actor : OpenGL

Tujuan : objek untuk permainan


2.

Sistem : membuat objek untuk permainan

Scenario Use Case Mengacak Posisi Objek

Nama Use Case: Mengacak Posisi Objek


Actor : OpenGL, Pengguna

Tujuan : merandom objek yang dibuat untuk diposisikan paada tempat


yang telah ditentukan

Sistem : memposisikan dan menyimpan objek ke tujuan yang telah di


3.

tentukan

Scenario Use Case Membuat Kata

Nama Use Case: Membuat Kata


Actor : Pengguna

Tujuan : membuat kata

Sistem : menandai objek yang sehingga membentuk kata dalam Bahasa


4.

Indonesia

Scenario Use Case Mencocokan Kata

Nama Use Case: Mencocokan Kata

45

Actor : Database

Tujuan : mendapatkan kata yang sesuai dengan kata yang dibuat pada use
case sebelumnya

Sistem : melakukan query di database dengan parameter kata yang dibuat


5.

oleh pengguna

Scenario Use Case Menghacurkan Objek

Nama Use Case: Menghacurkan Objek


Actor : OpenGL

Tujuan : Menghancurkan Objek

Sistem : Menghancurkan Objek jika kata yang dibuat sesuai dengan


database yang ada, objek yang hancur digantikan oleh objek yang

6.

baru

Scenario Use Case Beri Nilai


Nama Use Case: Berinilai
Actor : Pengguna

Tujuan : memberikan nilai pada setiap kata yang terbentuk

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

permasalahan dilihat dari pembangunan aplikasi permainannya bukan dari segi

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

dan disesuaikan dengan keperluan yang dibutuhkan untuk pengembangan


berikutnya.

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()

Diagram 4.2.2 Class Diagram Game Play

Berikut definisi dari class diagam pada iterasi pertama

A. Class RefBalok

1. Atribut RefBalok

a. idRefBalok type: Numeric (integer)

b. posisiRefBalokX type: Float (double)


c. posisiRefBalokY type: Float (double)

d. statusRefBalok type: Boolean(boolean)


e. idBalok type: Numeric (integer)

2. Operasi RefBalok
a.

Create

c.

Update

b.

Read

3...N

1
0...N

47

B. Class Kosakata

1. Atribut Kosakata

a. idKata type: Numeric (integer)


b. kata type: text (varchar)

2. Operasi Kosakata
a.

b.

Create
Read

C. Class User

1. Atribut User

a. idUser type: Numeric (integer)


b. namaUser type: text (varchar)

2. Operasi User
a.

Create

c.

Delete

b.

Read

D. Class Nilai

1. Atribut Nilai

a. idNilai type: Numeric (integer)


b. idUser type: Numeric (integer)

c. totalNila type: Numeric (integer)

2. Operasi Nilai
a.

Create

c.

Delete

b.

Read

E. Class TransKosakata

1. Atribut TransKosakata

a. idTransKosakata type: Numeric (integer)


b. idUser type: Numeric (integer)

c. idKata type: Numeric (integer)

d. jumlahKataterbentuk type: Numeric (integer)

2. Operasi TransKosakata

48

a.

Create

c.

Update

b.
d.

Read

Delete

F. Class RefBalok

1. Atribut RefBalok

a. idBalok type: Numeric (integer)

b. gambarBalok type: text (varchar)

c. gambarAnimasiBalok type: text (varchar)


d. nilaiBalok type: Numeric (integer)
e. posisiBalokX type: Float (double)
f. posisiBalokY type: Float (double)

g. posisiRefBalokX type: Float (double)


h. posisiRefBalokY type: Float (double)
i. hurufBalok type: Char (char)

j. statusBalok type: Boolean (boolean)

2. Operasi RefBalok
a.

Create

c.

Update

b.
d.

Read

Delete

Berasal dari class diagram penulis melanjutkan dengan sequence diagram

untuk menggambarkan tahapan-tahapan alur proses aplikasi. Dimulai dari


OpenGL membuat reverensi objek yang kasat mata untuk menentukan posisi

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

dihancurkan. Dari penjabaran tahapan aplikasi dapat digambarkan diagram


sequence sebagai berikut:

49

50

Berasal dari diagram sequence yang ada penulis mencoba menjabarkan

lebih detail lagi dalam Activity diagram berikut ini:

Diagram 4.2.4 Activity diagram permainan

51

Pada activity diagram permainan ini menunjukan cara kerja aplikasi

katabrak dari awal mula pemain mengakses permainan.


1.
2.
3.
4.

Pemain mengakses permainan dengan men-touch icon permainan katabrak.

Sistem akan menyediakan menu Game Play, config, misi, skor tertinggi, help
(bantuan), akun, kamus yang dapat di pilih oleh pemain.

Pemain dapat memilih menu yang akan diakses oleh pemain.

Setelah pemain memilih menu yang akan di akses maka sistem memberikan
layanan sesuai dengan permintaan pemain, contoh seting suara maka sistem

akan melakukan konfigurasi suara dari menyalakan dan mematikan music


5.
6.
7.

8.

9.

hingga menyalakan dan mematikan sound efek.

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

Pada tampilan finis di tunjukan data-data hasil perolehan selama permainan,


seperti kata yang terbentuk, misi yang terselesaikan, skor saat pertandingan,

sekor tertinggi. Pada halaman ini disediakan 2 opsi yaitu mainkan lagi atau ke
tampilan menu utama.

Setelah tahapan analisis selesai penulis mencoba membangun segi

tampilan merancanakan ulang fitur permainan yang dapat diimplementasikan.


Berikut desain storyboard permainan yang telah dirancang untuk permainan.

52

Diagram 4.2.5 Struktur storyboard

Setelah selesai pada tahapan iterasi sebelumnya penulis mencoba mendesain

tampilan mulai dari halaman menu.

UserName

LOGO
Play
kamus
Misi
Data Poin

Diagram 4.2.6 Main Menu

Pada tampilan ini terdapat 7 tombol utama dan 3 tombol turunan. Tombol

yang digunakan yaitu:

a) Tombol Play: digunakan jika pemain ingin mulai bermain.

b) Tombol Misi: digunakan jika pemain ingin melihat misi baik yang belum atau
telah dicapai.

53

c) Tombol Skor: digunakan melihat daftar 10 skor tertinggi.

d) Tombol cara bermain: digunakan melihat bagai mana cara permainan.


e) Tombol user: digunakan untuk mendaftar dan menghapus user.
f)

Tombol kamus: digunakan melihat daftar kata yang ada.

g) Tombol config: digunakan untuk melakukan seting audio.


1. Tombol sfx

: digunakan untuk meng-aktifkan atau non-aktifkan

2. Tombol music

: digunakan untuk meng-aktifkan atau non-aktifkan

sound efek.
music.

3. Tombol informasi : digunakan

pengembang.

untuk

melihat

data

informasi

Diagram 4.2.7 Desain Tampilan GamePlay

a) Tombol tunda: digunakan jika pemain ingin menghentikan permainan sesaat.


b) Tombol config: digunakan untuk melakukan seting audio.
1.

Tombol sfx

:digunakan untuk meng-aktifkan atau non-aktifkan


sound efek.

54

2. Tombol music :digunakan untuk meng-aktifkan atau non-aktifkan


music.

Diagram 4.2.8 Desain Tunda

Pada tampilan tunda ini merupakan tampilan pop up (halaman yang

menimpa halaman permainan) pada tampilan tunda ini terdapat beberapa tombol
yang berfungsi sebagai berikut:

a) Tombol menu: digunakan untuk kembali ke menu utama.

b) Tombol lanjutkan (resume): digunakan untuk melanjutkan permainan.


c) Tombol ulangi: digunakan mengulangi permainan.

55

LOGO
Misi

Kembali ke menu
Diagram 4.2.9 Tampilan Misi

a) Tombol kembali: digunakan untuk kembali ke menu utama.

Diagram 4.2.10 Tampilan Kamus

56

a) Tombol kembali: digunakan untuk kembali ke menu utama.

LOGO
Poin tertinggi

Perolehan Poin

Daftar kata

Kembali ke menu

Diagram 4.2.11 Tampilan Selesai

a) Tombol kembali: digunakan untuk kembali ke menu utama.

BAB V

KONSTRUKSI DAN TRANSISI

Bab ini merupakan lanjutan dari bab sebelumnya, yaitu tahap konstruksi

dan transisi dari tahapan elaborasidan insepsi yang menghasilkan data


requirement, analysis, dan design.

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.

5.1.1 Implementasi Iterasi Pertama

Pada iterasi pertama atau aplikasi seri alpha ini proses konstruksi aplikasi

mulai membuat framework atau fungsi-fungsi dasar dari pembangunan aplikasi.


Berikut fungsi-fungsi inti yang jadi dasar pengembangan aplikasi
5.1.1.1 Fungsi refrence object

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

5.1.1.2 Fungsi membuat object

local function create_Box1 ()


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.."]"
newGem[boxPos].canJatuh = true
end

Kode tersebut bertujuan untuk membuat objek, serta menentukan nilai,

nama objek, serta file yang dipanggil sebagai atribut atau identitas pada objek.
5.1.1.3 Fungsi membuat kata

local function onTap(self, event)


if event.phase == "began" then
display.getCurrentStage():setFocus( self )
self.isFocus = true
elseif self.isFocus then
if event.phase == "moved" then
elseif event.phase == "ended" or event.phase == "cancelled" then
display.getCurrentStage():setFocus( nil )
self.isFocus = nil
end
end
return true
end

Kode tersebut berfungsi menandai objek yan disentuh untuk disusun dari

atribut huruf yang disentuh hingga tersusun menjadi kata.

59

5.1.1.4 Fungsi mencocokan kata

function cekTword(idUser, word)


for row in db:nrows("SELECT id, Word FROM twords where twords.Word
='" ..word.."'") do
if (row.id) then
updateKata(row.id)
return true
else
return false
end

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.

5.1.1.5 Fungsi menghancurkan Objek

newGemActive[i]:removeSelf();newGemActive[i] = nil

Kode tersebut berfungsi menghancurkan serta mereset ulang nilaidari

objek tersebut.

5.1.1.5 Fungsi menghancurkan Objek


local function addScore(obj)
score_sack = score_sack + obj.point
end

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

tampilan sesuai pada tahapan elaborasi, berikut tampilannya:

60

Gambar 5.1.2.1 Main Menu

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

dihalaman misi pengguna disini dapat mengukur kemampuan dengan system


misi-misi yang dapat diselesaikan didalam permainan atau secara kolektif

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

Gambar 5.1.2.2 GamePlay

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

melakukan penundaan permainan jika pengguna akan melakukan kegiatan lain


dan meneruskan di lain waktu.

62

Gambar 5.1.2.3 Misi

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

mudah hingga tingkatan sulit. Sehingga pengguna dapat mengetahui seberapa


kemampuan pengguna dalam mengeksplorasi kosakata yang sering digunakan
dalam keseharian

63

Gambar 5.1.2.4 Kamus

Pada tampilan Kamus ini bertujuan membantu pengguna untuk mencari

dan memperkaya kosakata Bahasa Indonesia

Gambar 5.1.2.5 Selesai

64

Pada tampilan Selesai ini sebagai hasil dari perhitungan dan kata apa saja

yang terbentuk dalam satu kali permainan berlangsung.


5.1.3 Implementasi Iterasi ke Tiga

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.

Gambar 5.1.3.1 Main Menu

Pada tampilan ini terdapat 7 tombol utama dan 3 tombol turunan. Tombol

yang digunakan yaitu:

a) Tombol Play: digunakan jika pemain ingin mulai bermain.

b) Tombol Misi : digunakan jika pemain ingin melihat misi baik yang belum
atau telah dicapai.

c) Tombol nilai rekor: digunakan melihat daftar 10 skor tertinggi.

d) Tombol cara bermain: digunakan melihat bagai mana cara permainan.


e) Tombol user: digunakan untuk mendaftar dan menghapus user.
f)

Tombol kamus: digunakan melihat daftar kata yang ada.

g) Tombol Seting: digunakan untuk melakukan seting audio.

65

1. Tombol sfx

: digunakan untuk meng-aktifkan atau non-aktifkan

2. Tombol musik

: digunakan untuk meng-aktifkan atau non-aktifkan

sound efek.
musik.

3. Tombol informasi : digunakan

pengembang.

untuk

melihat

data

informasi

Gambar 5.1.3.2 GamePlay

Pada tampilan GamePlay tombol seting di hilangkan dan diimplementasikan

pada saat tombol tunda ditekan berikut tampilan saat tombol tunda ditekan

66

Gambar 5.1.3.3 Tunda

Pada tampilan pause ini terdapat beberapa tombol yang berfungsi sebagai

berikut:

a) Tombol menu: digunakan untuk kembali ke menu utama.

b) Tombol play (lanjutkan): digunakan untuk melanjutkan permainan.


c) Tombol ulangi: digunakan mengulangi permainan.

d) Tombol konfigurasi: digunakan untuk melakukan seting audio.


1. Tombol sfx:

digunakan untuk meng-aktifkan atau non-aktifkan sound


efek.

2. Tombol musik: digunakan untuk meng-aktifkan atau non-aktifkan musik.

Saat permainan selesai maka muncul resume atau hasil permainan berikut

tampilan setelah selesai permainan.

67

Gambar 5.1.3.4 Selesai

5.1.4 Rencana Pengujian

Adapun rancangan pengujian sistem yang akan diuji dengan teknik

pengujian Black Box pada setiap iterasi di tahapan kosntruksi, penyusun

kelompokan dalam tabel di bawah. Berikut ini adalah hasil dari pengujian dari
Game Edukasi Bahasa Indonesia:

Tabel 5.1.1 Rencana Pengujian

no

Komponen Yang
Diuji

Tampilan awal

Pilih Tombol Misi

Skenario Butir
Uji

Memilih ikon
lalu dilanjutkan
ke halaman
splash screen
dan halaman
loading

Memilih Tombol
Misi

Metode
Pengujian
Black Box

Black Box

68

Tabel 5.1.1 Rencana Pengujian (Lanjutan)

no

Komponen Yang
Diuji

Skenario Butir
Uji

Metode
Pengujian

Memilih Tombol
Cara Bermain

Black Box

Pilih Tombol High


Score

Memilih Tombol
High Score

Pilih Tombol Akun

Pilih Tombol Kamus

Memilih Tombol
Akun

Pilih Tombol Play

Pilih Tombol Pause,


Resume dan Menu
Utama dalam setiap
permainan

3
4

Pilih Tombol Cara


Bermain

Perolehan Skor
Permainan

10

Pilih Tombol
Konfigurasi Musik

11
12

Pilih Tombol
Konfigurasi Musik
Efek

Tampilan Game Over

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

5.1.4.1 Hasil dan Kasus Pengujian

Black Box

Black Box
Black Box
Black Box

Black Box

Black Box

Black Box
Black Box
Black Box

Berdasarkan rencana pengujian, maka dapat dilakukan pengujian pada

game edukasi Bahasa Indonesia sebagai berikut:

69

No

Komponen Yang
Diuji

Tabel 5.1.2 Hasil Pengujian

Skenario Butir
Uji

Tampilan awal

Memilih tombol
masuk lalu
dilanjutkan ke
halaman splash
screen dan
halaman loading

Pilih Tombol Misi

Memilih Tombol
Misi

Pilih Tombol High


Score

Memilih Tombol
High Score

Pilih Tombol Cara


Bermain

Memilih Tombol
Cara Bermain

Pilih Tombol Akun

Memilih Tombol
Akun

Pilih Tombol Kamus

Memilih Tombol
Kamus

Pilih Tombol Play

Memilih Tombol
Play

Hasil Yang
Diharapkan

Ketika memilih ikon


tampilan splash
screen, loading dan
menu akan muncul
secara berurutan
Ketika memilih
tombol misi maka
halaman misi akan
mucul.

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

Tabel 5.1.2 Hasil Pengujian (Lanjutan)

No

Komponen Yang
Diuji

Pilih Tombol Pause,


Resume dan Menu
Utama dalam setiap
permainan

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

Tampilan Game Over

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.1.4.2 Simpulan Pengujian

Berdasarkan hasil pengujian terakhir penyusun menarik simpulan bahwa

Game Edukasi Bahasa Indonesia ini secara fungsional berfungsi sebagaimana


yang diharapkan.

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

aplikasi dapat dilanjutkan dengan perbaikan pada versi-versi berikutnya. Berikut


tampilan hasil rilis aplikasi pada play store.

Gambar 5.2 Katabrak pada PlayStore

Dari hasil rilis aplikasi dan pendistribusian penulis melakukan pengamatan

bahwa aplikasi katabrak cukup disukai, dengan mendapatkan rating sekitar 3 4

dari tim reviewer dari 5000 orang yang mendownload aplikasi ini. Dari hasil

pengamatan tersebut dapat disimpulkan bahwa aplikasi pembelajaran dengan

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

diimplementasikan atau di publikasi pada umumnya aplikasi mendapatkan saran

(riview) dari penggunanya untuk pengembangan versi berikutnya atau


pembangunan model permainan berikutnya.

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.

Model permainan dapat terhubung secara on-line.

3.

Dapat memperbarui kosakata dengan mudah.

2.

Dapat menambah jenis bahasa selain Bahasa Indonesia.

72

DAFTAR PUSTAKA

Brown A.W. 1996. Component-Based Software Engineering, IEEE Computer


Society. Los Alamitos, CA.
Collard, M.L. 2002. Unified Modeling Language UML Introduction. Kentucky:
Department of Computer Science Kent State University.
Guritno, S., Sudaryono dan Untung Rahardja. Theory and Application of IT
Research MetodelogiPenelitian Teknologi Informasi. Yogyakarta: Andi
Jacobson I, Magnus Christerson, Patrik Jonson, and Gunnar Overgaard. 1992.
Object-Oriented Software Engineering: A Use Case Driven Approach,
Addison-Wesley.
Jacobson I, Grady Booch, and James Rumbaugh. 1999. The Unified Software
Development Process
Jacobson, I. 2004. Applying UML in The Unified Process. Rational Software.
Kruchten P. 1998. The Rational Unified Process: An Introduction
Suyono. 2009. Pengembangan Media Pembelajaran Kosakata Berbasis AudioVisual Untuk Peningkatan Kempetensi Berbahasa Indonesia Anak Usia
Dini. Malang:Universitas Negri Malang
Susilofy. 2010. Meningkatkan Hasil Belajar Siswa Dalam Pembelajaran
Kosakata Dengan Menggunakan Media Gambar Di Kelas IV SD.
susilofy.wordpress.com/2010/10/04/.
Sommerville, I. 2011. SOFTWARE ENGINEERING. Addison-Wesley.
Pressman, R S. 2001. Software Engineering A PRACTITIONERS APPROACH.
McGraw-Hill Higher Education
Team, LUA. 2007. Lua5.1 ReferenceManual. Tecgraf: Computer Sience
Departement

73

LAMPIRAN - LAMPIRAN

.......................................................................................................

Lampiran 1 Fungsi dan Modul Aplikasi Katabrak


Lampiran 2 Kode Program Katabrak
Lampiran 3 Hasil Survey Katabrak

74

74-1

LAMPIRAN 1 FUNGSI DAN MODUL APLIKASI


Modul Create DataBase dan Tabel

sqlite3 = require "sqlite3"


path = system.pathForFile("panicWords.db", system.DocumentsDirectory )
db = sqlite3.open( path, "w")
local function initTabel()

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

Modul Membuat User


function createUserLimited(newID, UserName)
tablesetup2 = [[INSERT INTO tUser ([id], [UserName], [statusActive],
[qtyMagic], [qtyFreeze], [qtyBomb], [qtyRainbow], [qtyQuake], [qtyGold],
[hlpOpen] ) VALUES(]]..newID..[[, ']]..UserName.. [[',1,0,0,0,0,0,0,0);]]
end

db:exec( tablesetup2 )

Modul Cek Kesediaan Kata


function cekTword(idUser, word)
for row in db:nrows("SELECT id, Word FROM twords where twords.Word
='" ..word.."'") do
if (row.id) then
updateKata(row.id)
return true
else
return false
end
end
end

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

Modul Cek Kata Yang Pernah Tebentuk


function initOpenWord(id, idUser)
local xid, yid
for row1 in db:nrows("SELECT count(*) as count FROM twords WHERE
Word LIKE '"..string.char(id+64).."%'") do
xid = row1.count
end
for row2 in db:nrows("SELECT count(*) as count FROM tuser_word WHERE
tu_id = "..idUser.." and Word LIKE '"..string.char(id+64).."%'") do
yid = row2.count
end
return tostring(yid.."/"..xid)
end

Modul Nilai Tertinggi


function maxScore()
for row in db:nrows("SELECT max(Score) as grandScore FROM tscore") do
if row.grandScore == nil or row.grandScore == 0 then
return 0
else
return row.grandScore
end
end
end

74-3

LAMPIRAN 2 KODE PROGRAM


File main.lua
display.setStatusBar( display.HiddenStatusBar )
storyboard = require "storyboard"
sound = require "sound"
GGFont = require( "GGFont" )
fontManager_1 = GGFont:new()
fontManager_1:add( "Menu", "ad lib", "adlibbtregular" )
font_1 = fontManager_1:get( "Menu" )
local initTable = require "initTable"
local access_token, access_token_secret, tablesetup
sqlite3 = require "sqlite3"
path = system.pathForFile("panicWords.db", system.DocumentsDirectory )
db = sqlite3.open( path, "w")
print(path)
storyboard.purgeOnSceneChange = true
local background, bkg, mask, pergeseran
countAch_before, countAch_after = 0,0
appIDAds = nil
IdUser = nil
userName = nil
kataBonusKunci = nil
tempMagic = {}
instance1 = nil
sheet1 = nil
storyboard.statusMusic = true;storyboard.statusSFX = true;storyboard.bgmplaying =
false
isMusicPlaying = false
storyboard.newAchie = {};storyboard.status=0
function onSystemEvent( event )
if( event.type == "applicationExit" ) then
if fontManager_1 ~= nil then
fontManager_1:destroy(); fontManager_1 = nil
end
db.close()
end
end
function comma_value(n)
local left,num,right = string.match(n,'^([^%d]*%d)(%d*)(.-)$')
return left..(num:reverse():gsub('(%d%d%d)','%1,'):reverse())..right
end

74-4

local function firstTable()


initTable.initTable()
initTable.setWord()
IdUser, userName = initTable.getUserActive()
local compgroup = display.newImage( "Gambar/kumata_corp.jpg", true)
local function pergi()
compgroup:removeSelf();compgroup = nil
storyboard.gotoScene( "loading")
end
timer.performWithDelay( 2000, pergi)
firstTable()

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

elseif (score_stat ~= 0) then


transition.to(score, { time=200, yScale =1, xScale=1, transition=easing.easeInOut,
onComplete = updateSize} )
score_stat = 0
end
end
local function myListener( event )
if maxScore.text ~= tostring(createBoxDB.setHighScoreGame()) then
maxScore.text = tostring(createBoxDB.setHighScoreGame())
if maxScore.width ~= nil then
maxScore.x = 320 - maxScore.width /2
if (maxScore.width > 330) then
maxScore.size = maxScore.size - 2
elseif (maxScore.text == "") then
maxScore.size = 40
end
end
end
textBonusdb.text = string.upper(createBoxDB.setMagicWordGame())
if textBonusdb.width ~= nil then
if (textBonusdb.width > 250) then
textBonusdb.size = textBonusdb.size - 2
elseif (textBonusdb.text == "") then
textBonusdb.size = 40
end
end
statusMusic,statusSFX = pausePage.getNilaiSuara()
if statusMusic==true then
if musicbg == false then
sound.unmuteMusic()
musicbg=true
end
else
sound.muteMusic()
musicbg=false
end
if statusSFX==false then
sound.muteSFX()
end
statusbtn = createBoxDB.setStatusGame()
textdb.text = createBoxDB.setWord()
if textdb.width ~= nil then
if (textdb.width > 330) then
textdb.size = textdb.size - 2
elseif (textdb.text == "") then
textdb.size = 35
end
end

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

function setMagicWordGame() -- Set kata bonus


return string.upper(kataBonus)
end
function destroyAllObj()
--initTable.cleanBonusKata()
if timer1~=nil then
timer.cancel(timer1);timer1=nil
end
if groupInti~=nil then
groupInti:removeSelf();groupInti=nil
end
if grouponActive~=nil then
grouponActive:removeSelf();grouponActive=nil
end
if groupEfect~=nil then
groupEfect:removeSelf();groupEfect=nil
end
if semuanya~= nil then
semuanya:removeSelf();semuanya = nil
end
return
end
function getStatusGame(_e) -- Cek status permainan
if _e == nil or _e == "resume" then
if local_t > 0 then
StatusGame = "play"
else
StatusGame = "freeze"
end
else
StatusGame = _e
end
end
local function tunda() -- Set tunda permainan
local gambar, sheet1, instance1
local groupLoadingFinish = display.newGroup()
local gambar = display.newImage("Gambar/page_tunggu.jpg",true)
groupLoadingFinish:insert(gambar)
local rand = math.random(1,8)
local hints = display.newImage("Gambar/HINTS PETUNJUK/"..rand..".png",true)
groupLoadingFinish:insert(hints)
hints.x = display.contentCenterX
hints.y = display.contentHeight - (hints.height/2 + 40)

74-12

local function mytimerlistener(event) -- get status permainan


if groupLoadingFinish~= nil then
groupLoadingFinish:removeSelf();groupLoadingFinish = nil
end
if appIDAds then
ads.init( provider, appIDAds, adsListener )
end
showAd( "interstitial" )
storyboard.gotoScene("finishPage")
end
timer.performWithDelay( 1000, mytimerlistener)
end
function setScore() -- get nilai
return tostring(hasilPoint)
end
function getScoreSack()
return (score_sack)
end
local function alakazam(_e)
math.randomseed(os.time())
setRandom()
end
local timer_z = timer.performWithDelay(1, alakazam, 0)
local function myListener( event )
if StatusGame == "pause" then
if statusTimer == nil then
statusTimer = timer.pause(timer1)
end
elseif StatusGame == "play" or StatusGame == "resume" then
if statusTimer ~= nil then
timer.resume(timer1);statusTimer = nil
end
end
end
local function addScore(obj)
score_sack = score_sack + obj.point
end

74-13

local function selesai (_e)


if (StatusGame ~= "finish") then
native.setActivityIndicator( true )
hasilPoint = hasilPoint + score_sack
score_sack = 0
if timer1~=nil then
timer.cancel(timer1);timer1=nil
end
StatusGame = "finish"
sound.stopwarning()
local b = os.time()
tunda()
end
end
local function updateJatuh(obj)-- status isCanJatuh = true, dicek apakah selanjutnya
bisa jatuh apa ga
local tempi = obj.i
local tempj = obj.j
if (StatusGame == "play") then
if (tempj > 1) then
if (newBox[tempi][tempj-1].matces == nil) then
newBox[tempi][tempj].matces = nil
newBox[tempi][tempj-1].matces = obj
obj.j = tempj-1
obj.destination_y = newBox[tempi][obj.j].y
obj.canJatuh = true
transition.to(obj, { time=200, y =obj.destination_y, transition=easing.easeInOut,
onComplete = updateJatuh} )
else
obj.canJatuh = false
sound.playrandom("jatuh",2)
if (tempj == 9) then
if (isWarning == false) then
isWarning = true
end
end
end
else
obj.canJatuh = false
end
elseif (StatusGame == "pause") then
transition.to(obj, { time=200, y =obj.destination_y, transition=easing.easeInOut,
onComplete = updateJatuh} )
end
end

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

if (self.frame == 1) then-- Warna yang akan pecah


self.colorFont = "oranye"
elseif (self.frame == 2) then
self.colorFont = "ungu"
elseif (self.frame == 3) then
self.colorFont = "magenta"
elseif (self.frame == 4) then
self.colorFont = "oranye"
elseif (self.frame == 5) then
self.colorFont = "biru"
elseif (self.frame == 6) then
self.colorFont = "hijau"
elseif (self.frame == 7) then
self.colorFont = "merah"
else
self.colorFont = "tosca"
end
local brak = {}
local score
brak[#brak+1] = sf:newSpriteGroup()
brak[#brak].x,
brak[#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[#brak].y - 100)*1.5, x=350, y= 100, alpha = 0 ,
transition=easing.easeInOut, onComplete=addScore} )
groupEfect:insert(score)
brak[#brak].sprite = playNext
brak[#brak]:addEventListener('sprite', brak)
brak[#brak]:play(newBox[self.i][self.j].matces.colorFont)
groupEfect:insert(brak[#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 and newBox[i][j].matces.canJatuh == false
and newBox[i][j].matces.colorFont == self.colorFont) then
if (self.frame == 1) then
if (newBox[i][j].matces.myName == 'a' or newBox[i][j].matces.nyName == 'f' or
newBox[i][j].matces.myName == 'j') 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

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

local obj = newGemActive[#newGemActive]


obj:setReferencePoint(display.CenterReferencePoint)
transition.to(obj, { time=100, rotation=2.5, transition=easing.outExpo, onComplete=
function(obj) wiggle1(obj) end})
grouponActive:insert(newGemActive[#newGemActive])
semuanya:insert(grouponActive)
elseif self.ismarkAble == true and string.len( katagenerator ) > 2 and
initTable.cekTword(IdUser, katagenerator) == true then
if statusTimer == nil and timer1 ~=nil then
statusTimer =timer.pause(timer1)
end
benarSituation()
if statusTimer ~= nil then
timer.resume(timer1);statusTimer = nil
end
katagenerator = ""
lastID = ""
else
salahSituation( )
katagenerator = ""
lastID = ""
end
end
end
end
end

Curriculum Vitae
Nama

: Kristian Maulana

Jenis Kelamin

: Pria

Berat/Tinggi Badan

: 60 kg/170 cm

Tempat, Tanggal Lahir : Jakarta, 16 Januari 1987


Alamat Rumah

: Jl. Gn Batu Gg. Rd Ganda II. No. 110, Rt.02 Rw.09

E-MAIL

: kristian.maulana@hotmail.co.id atau

Bandung - 40175

kristian.maulana@hotmail.com

PENDIDIKAN TERAKHIR (FORMAL)

1. Sekolah Menengah Kejuruan Negeri 12 kota Bandung, Jurusan Listrik. Lulus


tahun 2004

2. Universitas Informatika dan Bisnis Indonesia kota Bandung, Jurusan Teknik


Informatika Diploma Tiga. Lulus tahun 2007

PENGALAMAN KERJA

1) Asisten Dosen pada pelatihan komputer grafis di Universitas Informatika dan


Bisnis Indonesia kota Bandung, periode Maret-Juli 2006 dan Maret-Juni 2007.

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.

b) CBT di KODIKLAT TNI AD

3) Programmer di Aura Sakti Engineering yang berlokasi kota bandung, dimulai


dari Juni 2010 sampai 2012, ikut berpartisipasi pada proyek :
a) ICMS-GIS di ADBAN Bandara Djuanda

b) CBT Ejection Seat & BATK di SKADIK 302 TNI AU

c) CBT Aircraft General, Wong Bee dan Grob di SKADIK 104 TNI AU

d) CBT Basic Aircraft Teknology and Knowledge di SKADIK 303 TNI AU


e) Radar Simulator di SKADIK 202 TNI AU

f) Jurkom di SKADIK 202 TNI AU

g) Meteo Simulator di SKADIK 503 TNI AU

4) Game Programmer di Kumata Studio yang berlokasi kota Bandung, dimulai


dari 2012 hingga desember 2013 :

a) Tumblin Terracotta stabilize mobile game.


b) Katabrak word puzzle mobile game.

KEAHLIAN

1. Pemrograman Visual Basic dan Visual C++

2. Data Base (MS Access, MySql, PostgreSQL dan SQL Server, SQLite)
3. CoronaSDK

4. Windows, Linux(Ubuntu), Mac dan Office


5. Jaringan.
6. PHP
7. Lua

8. Disain grafis (Photoshop, Corel Draw)


Berikut Curriculum vitae ini saya buat dengan sebenar-benarnya.

Hormat Saya,

Kristian Maulana

Anda mungkin juga menyukai