LANDASAN TEORI
Bab ini membahas tentang teori penunjang yang berhubungan dengan penerapan
metode rectangles collision detection untuk perancangan aplikasi belajar hijaiyah
pada android.
1. Jenis perangkat mobile yang didukung: notebook, Tablet PC, PDA, smart
phone, atau telepon seluler.
3. Dukungan edukasi secara sinkron dan/ atau asinkron, apakah pengguna dapat
berkomunikasi secara sinkron (chat, komunikasi suara) atau asinkron (e-mail,
SMS) dengan pengajar.
6. Lokasi pengguna.
2. Mendukung pembelajar : generasi yang ada saat ini lebih menyukai perangkat
mobile seperti PDA, hand phone, smart phone, tablet, dan perangkat handheld
games.
4. Jangkauan lebih luas : perangkat mobile cenderung lebih murah sehingga dapat
terjangkau oleh masyarakat secara lebih luas.
2. Mobilitas murni adalah ketika tidak ada koneksi tersedia sehingga semua data
yang dibutuhkan aplikasi harus di upload terlebih dahulu di dalam perangkat
dan digunakan secara offline.
1. Teks
Kebanyakan device saat ini telah mendukung penggunaan teks. Hampir semua
telepon seluler yang beredar saat ini telah mendukung penggunaan SMS (Short
Message Service). Kebutuhan memori yang relatif kecil memuat konten berbasis
teks lebih mudah diimplementasikan. Namun, keterbatasan jumlah karakter yang
dapat ditampilkan harus menjadi pertimbangan dalam menampilkan konten
pembelajaran sehingga perlu strategi khusus agar konten pembelajaran dapat
disampaikan secara tepat dan efektif meskipun dengan keterbatasan ini. Salah
satu contoh aplikasi pembelajaran berbasis teks/SMS adalah Study TXT yang
dikembangkan di salah satu Universitas di Selandia baru.
2. Gambar
Perangkat bergerak yang ada sekarang telah banyak mendukung pemakaian
gambar. Kualitas gambar yang dapat ditampilkan dapat beragam dari tipe
monokrom sampai gambar berwarna berkualitas tinggi tergantung kemampuan
device. File gambar yang didukung oleh device umumnya bertipe PNG, GIF, JPG.
Penggunaan gambar sebagai konten pembelajaran biasanya digabungkan dengan
konten lain, misalnya teks.
3. Audio
Banyak perangkat bergerak saat ini telah mendukung penggunaan audio.
Beberapa tipe file yang biasanya digunakan di lingkungan mobile device antara
lain RM, MP3, AMR dan lain-lain. Oleh karena file audio biasanya memiliki
ukuran yang cukup besar, menyebabkan file audio tersebut harus diolah terlebih
dahulu sehingga dapat digunakan di lingkungan mobile device yang memiliki
kapasitas memori yang relatif kecil.
13
4. Video
Konten yang cukup menarik adalah aplikasi perangkat lunak yang dipasang pada
device. Perangkat lunak dapat dikostumisasi sesuai kebutuhan sehingga akan
lebih mudah dan intuitif untuk digunakan. Aplikasi perangkat lunak ini juga
mampu menggabungkan konten-konten lain seperti teks, audio dan video
sehingga menjadi lebih interaktif. Jenis aplikasi yang saat ini banyak digunakan
antara lain aplikasi berbasis WAP/WML, aplikasi Java, aplikasi Symbian, dan
lain-lain.
2.2. Hijaiyah
Dari Husein bin Ali bin Abi Thalib as. : Seorang Yahudi mendatangi Nabi saw. Pada
saat itu Amirul Mukminin Ali bin Abi Thalib as bersama Nabi. Yahudi itu berkata
kepada Nabi saw : apa faedah dari huruf hijaiyah ? Rasulullah lalu berkata kepada Ali
bin Abi Thalib as. Jawablah lalu Rasulullah mendoakan Ali ya Allah, sukseskan
Ali dan bungkam orang Yahudi itu Lalu Ali berkata Tidak ada satu huruf-pun
kecuali semua bersumber pada nama-nama Allah swt kemudian Ali berkata :
1. Adapun alif artinya tidak ada Tuhan selain Dia yang Maha Hidup dan Kokoh.
3. Adapun ta, artinya yang maha menerima taubat, menerima taubat dari semua
hamba-Nya.
4. Adapun tsa artinya adalah yang mengokohkan semua makhluk Dialah yang
mengokohkan orang-orang beriman dengan perkataan yang kokoh dalam
kehidupan dunia.
5. Adapun jim maksudnya adalah keluhuran sebutan dan pujian-Nya serta suci
seluruh nama-nama-Nya.
14
17. Dzha artinya Yang maha nampak dan menampakan seluruh tanda-tanda.
19. Ghayn artinya tempat mengharap para pengharap dari semua ciptaan-Nya.
22. Kaf artinya yang Maha mencukupkan yang tidak ada satupun yang setara
dengan-Nya, Dia tidak beranak dan tidak diperanakan.
25. Nun maksudnya adalah cahaya bagi langit yang bersumber pada cahaya
arasynya.
26. Adapun waw artinya adalah, satu, esa, tempat bergantung semua makhluk dan
tidak beranak serta diperanakan.
28. Adapun ya artinya tangan Allah yang terbuka bagi seluruh makhluk-Nya.
Rasulullah lalu berkata Inilah perkataan dari orang yang telah diridhai Allah dari
semua makhluk-Nya. Mendengar penjelasan itu maka yahudi itu masuk Islam.
2.3. Android
Android adalah suatu sistem operasi yang didesain sebagai platform open source
untuk perangkat mobile berbasis linux yang mencakup sistem operasi, middleware,
dan aplikasi. Android menyediakan platform yang terbuka bagi para pengembang
untuk menciptakan aplikasi mereka. Android menyediakan semua tools dan
framework untuk mengembangkan aplikasi dengan mudah dan cepat. Dengan adanya
Android SDK (Software Developement Kit) pengembang aplikasi dapat memulai
pembuatan aplikasi pada platform Android menggunakan bahasa pemrograman Java.
Pada tahun 2005, Google membeli Android, Inc., yang merupakan pendatang
baru yang mengembangkan software untuk smartphone. Pada saat itu dunia mengira
bahwa Google akan memproduksi smartphone. Anggapan itu ternyata salah karena
Google menyatakan bahwa ambisi Android bukan hanya untuk mengembangkan
sebuah ponsel melainkan suatu platform yang dapat digunakan di banyak ponsel dan
perangkat lainnya.
Kemudian untuk mengembangkan Android dibentuklah Open Handset
Alliance, sebuah grup nonprofit yang terdiri dari beberapa perusahaan hardware,
software, telekomunikasi dan perusahaan lainnya termasuk Google, HTC, Intel
Motorola, Qualcomm, T-Mobile, dan Nvidia. Pada saat perilisan perdana Android
tanggal 5 November 2007, Android bersama Open Handset Alliance menyatakan
mendukung pengembangan open source pada perangkat mobile. Di lain pihak, Google
merilis kode-kode Android di bawah lisensi Apache, sebuah lisensi software dan open
platform perangkat seluler.
Di dunia terdapat dua jenis distributor sistem operasi Android. Pertama yang
mandapat dukungan penuh dari Google atau Google Mail Services (GMS) dan kedua
adalah yang benar-benar bebas distribusinya tanpa dukungan langsung Google atau
dikenal sebagai Open Handset Distribution (OHD).
Sekitar September 2007 Google mengenalkan Nexus One, smartphone yang
menggunakan sistem operasi Android versi 1.0. Ponsel ini diproduksi oleh HTC
Corporation dan mulai dipasarkan pada 5 Januari 2008. Pada tahun 2009
perkembangan perangkat berbasis Android semakin pesat. Lebih dari 20 jenis
perangkat mobile menggunakan sistem operasi Android. Versi Android yang dirilis
17
pada tahun 2009 antara lain Cupcake(1.5), Donut(1.6), dan Eclair (2.0 dan 2.1). Hal
ini didukung dengan lebih dari 20 gadget yang menggunakan versi tersebut.
Froyo(Android 2.2) dirilis pada tahun 2010. Pada tahun 2010 lebih dari 60
perangkat menggunakan Android sebagai sistem operasinya. Pada saat itu Android
menjadi platform ponsel dengan penjualan terbaik kedua setelah Blackberry. Samsung
Galaxy Tab GT-P1000 adalah salah satu smartphone/tabletp pc dengan sistem operasi
Android versi 2.2. Daftar versi-versi Android yang dapat dilihat pada Tabel 2.1.
Dari Tabel 2.1 dapat dilihat pada setiap perubahan versi android terdapat
perubahan API Level. API Level adalah nilai yang menunjukkan revisi framework
pada platform Android. Nomor versi android yang terus berubah dikarenakan
perubahan API Level. Setiap versi android mendukung tepat satu API Level, namun
tetap mendukung API Level sebelumnya. API Level akan menentukan apakah suatu
aplikasi bisa dijalankan pada suatu platform Android atau tidak.
18
Berikut ini susunan dari lapisan-lapisan tersebut jika di lihat dari lapisan dasar
hingga lapisan teratas:
1. Linux Kernel
Linux Kernel adalah layer dimana inti dari sistem operasi Android itu berada.
Layer ini berisi file-file sistem yang mengatur sistem processing, memory,
resource, drivers, dan sistem-sistem operasi android lainnya. Linux kernel yang
digunakan android adalah linux kernel release 2.6.
2. Libraries
Libraries adalah layer tempat fitur-fitur Android berada. Biasanya para pembuat
aplikasi mengakses libraries untuk menjalankan aplikasinya. Berjalan di atas
kernel, layer ini meliputi berbagai library C/C++ inti seperti Libc dan SSL, serta :
19
3. Android Runtime
Android Runtime adalah layer yang membuat aplikasi Android dapat dijalankan,
dimana dalam prosesnya menggunakan implementasi Linux. Dalvik Virtual
Machine (DVM) merupakan mesin yang membentuk dasar kerangka aplikasi
Android. Android runtime terbagi menjadi dua bagian yaitu :
a. Core Libraries
Aplikasi Android dibangun dalam bahasa Java, sementara Dalvik sebagai
virtual machine bukan virtual machine java, sehingga diperlukan sebuah
library yang berfungsi untuk menerjemahkan bahasa Java/C yaitu Core
Libraries.
4. Application Frameworks
Application Frameworks adalah layer dimana para pembuat aplikasi melakukan
pengembangan/pembuatan aplikasi yang akan dijalankan pada sistem operasi
Android, karena pada layer inilah aplikasi dapat dirancang dan dibuat, seperti
content providers yang berupa sms dan panggilan telepon.
20
a. Views
b. Content Provider
c. Resource Manager
d. Notification Manager
e. Activity Manager
1. Activities
Suatu activity akan menyajikan user interface (UI) kepada pengguna, sehingga
pengguna dapat melakukan interaksi. Sebuah aplikasi Android bisa jadi hanya
memiliki satu activity, tetapi umumnya aplikasi memiliki banyak activity tergantung
pada tujuan aplikasi dan desain dari aplikasi tersebut. Satu activity biasanya akan
dipakai untuk menampilkan aplikasi atau yang bertindak sebagai user interface (UI)
saat aplikasi diperlihatkan kepada user. Untuk pindah dari satu activity ke activity lain
kita dapat melakukannya dengan satu even, misalnya click tombol, atau memilih opsi.
21
2. Service
Service tidak memiliki Graphic User Interface (GUI), tetapi service berjalan secara
background, sebagai contoh dalam memainkan musik, service mungkin memainkan
musik atau mengambil data dari jaringan, tetapi setiap service harus berada dalam
kelas induknya. Misalnya, media player sedang memutar lagu dari list yang ada,
aplikasi ini akan memiliki dua atau lebih activity yang memungkinkan user untuk
memilih lagu misalnya, atau menulis sms ketika player sedang berjalan. Untuk
menjaga musik tetap dijalankan, activity player dapat menjalankan service. Service
dijalankan pada thread utama dari proses aplikasi.
3. Broadcast Receiver
Broadcast Receiver berfungsi menerima dan bereaksi untuk menyampaikan notifikasi.
Contoh broadcast seperti notifikasi zona waktu berubah, baterai low, gambar telah
selesai diambil oleh camera, atau pengubahan referensi bahasa yang digunakan.
Aplikasi juga dapat menginisiasi broadcast misalnya memberikan informasi pada
aplikasi lain bahwa ada data yang telah diunduh ke perangkat dan siap untuk
digunakan.
Broadcast Receiver tidak memiliki user interface (UI), tetapi memiliki sebuah
activity untuk merespon informasi yang mereka terima, atau mungkin menggunakan
Notification Manager untuk memberitahu kepada pengguna, seperti lampu latar atau
vibrating (getaran) perangkat, dan lain sebagainya.
4. Content Provider
Content provider membuat kumpulan aplikasi data secara spesifik sehingga bisa
digunakan oleh aplikasi lain. Data disimpan dalam file sistem. Content Provider
menyediakan cara untuk mengakses data yang dibutuhkan oleh suatu activity,
misalnya ketika kita menggunakan aplikasi yang membutuhkan peta (Map), atau
aplikasi yang membutuhkan untuk mengakses data kontak dan navigasi, maka
disinilah fungsi content provider.
1. Foreground Activity
Aplikasi yang hanya dapat dijalankan jika tampil pada layar dan tetap efektif
walaupun tidak terlihat. Aplikasi dengan tipe ini pasti mempertimbangkan siklus
hidup activity, sehingga perpindahan antar activity dapat berlangsung dengan
lancar.
2. Background Service
Aplikasi yang memiliki interaksi terbatas dengan user, selain dari pengaturan
konfigurasi, semua dari prosesnya tidak tidak tampak pada layar. Contohnya
aplikasi penyaringan panggilan atau sms auto respon.
3. Intermittent Activity
Aplikasi yang masih membutuhkan beberapa masukkan dari pengguna, namun
sebagian sangat efektif jika dijalankan di background dan jika diperlukan akan
memberi tahu pengguna tentang kondisi tertentu. Contohnya pemutar musik.
Untuk aplikasi yang kompleks akan sulit untuk menentukan kategori aplikasi
tersebut apalagi aplikasi memiliki ciri-ciri dari semua kategori. Oleh karenanya perlu
pertimbangan bagaimana aplikasi tersebut digunakan dan menentukan kategori
aplikasi yang sesuai.
1. Keterbukaan
Bebas pengembangan tanpa dikenakan biaya terhadap sistem karena berbasiskan
Linux dan open source. Pembuat perangkat menyukai hal ini karena dapat
membangun platform yang sesuai yang diinginkan tanpa harus membayar royality.
23
6. Portabilitas aplikasi
Aplikasi dapat digunakan pada perangkat yang ada saat ini maupun yang akan
datang. Semua program ditulis dengan menggunakan bahas pemrograman Java
dan dieksekusi oleh mesin virtual Dalvik, sehingga kode program portabel antara
ARM, X86, dan arsitektur lainnya. Sama halnya dengan dukungan masukan
seperti penggunaan Keyboard, layar sentuh, trackball dan resolusi layar semua
dapat disesuaikan dengan program.
24
2.4. Multimedia
Multimedia berasal dari kata multi dan media. Multi berarti banyak, sehingga
multimedia dapat diartikan sebagai gabungan dari berbagai media yang terintegrasi.
Kombinasi berbagai media dimanfaatkan secara harmonis dan terintegritas sehingga
menghasilkan satu program pembelajaran yang sinergi untuk mencapai tujuan
pembelajaran tertentu.
Multimedia merupakan kombinasi dari teks, gambar, seni grafik, suara,
animasi dan elemen-elemen video yang dimanipulasi secara digital. Tampilan dan cita
rasa dari proyek multimedia harus menyenangkan, estetis, mengundang dan mengikat.
Proyek harus memuat konsistensi visual, hanya dengan menggunakan elemen-elemen
yang mendukung pesan keseluruhan dari program. (Vaughan, 2004).
1. Multimedia interaktif dimana pengguna dapat mengontrol secara penuh apa dan
kapan elemen-elemen multimedia akan dikirim atau ditampilkan.
3. Mampu menggabungkan antara teks, gambar, audio, musik, animasi, atau video
dalam satu kesatuan yang saling mendukung.
4. Mampu memvisualisasikan materi yang abstrak.
5. Media penyimpanan yang relatif gampang dan fleksibel.
1. Konsep ( Concept )
Tahap konsep adalah tahap untuk menentukan tujuan dan siapa pengguna
program. Selain itu menentukan macam aplikasi (presentasi, interaktif, dll) dan
tujuan aplikasi (hiburan, pelatihan, pembelajaran, dll). Dasar aturan untuk
perancangan juga ditentukan pada tahap ini, misalnya ukuran aplikasi, target, dan
lain-lain.
2. Perancangan ( Design )
Design (perancangan) adalah tahap membuat spesifikasi mengenai arsitektur
program, gaya, tampilan antar muka dan kebutuhan bahan untuk program.
Spesifikasi dibuat serinci mungkin sehingga pada tahap berikutnya, yaitu material
collecting dan assembly, pengambilan keputusan baru tidak diperlukan lagi. Tahap
ini biasanya menggunakan storyboard untuk menggambarkan deskripsi tiap scene,
dengan mencantumkan semua objek multimedia dan tautan ke scene lain dan
bagan alir (flowchart) untuk menggambarkan aliran dari satu scene ke scene lain.
Tahapan ini menyarankan pengerjaan spesifikasi dilakukan serinci mungkin
karena akan berpengaruh di tahapan selanjutnya.
4. Pembuatan ( Assembly )
Assembly adalah tahap dimana semua objek atau bahan multimedia dibuat.
Pembuatan aplikasi didasarkan pada tahap design, seperti story board dan struktur
navigasi.
5. Pengujian ( Testing )
Testing Dilakukan setelah selesai tahap pembuatan ( assembly ) dengan
menjalankan aplikasi dan dilihat apakah ada kesalahan atau tidak. Tahap ini
27
disebut juga sebagai tahap pengujian alpha (alpha test) dimana pengujian
dilakukan oleh pembuat, setelah itu dilakukan betha test yang melibatkan
pengguna akhir. Fungsi dari tahap ini adalah melihat hasil pembuatan aplikasi
apakah sesuai dengan yang diharapkan atau tidak.
6. Distribusi ( Distribution )
Tahapan dimana aplikasi disimpan dalam suatu media penyimpanan untuk
didistribusikan ke pengguna akhir atau clienti. Pada tahap ini jika media
penyimpanan tidak cukup untuk menampung aplikasinya, maka dilakukan
kompresi terhadap aplikasi tersebut. Pada tahap ini juga akan dilakukan evaluasi
sebagai masukan.
Collision detection adalah proses pendeteksian tabrakan antara dua objek (Schwarzl,
2012). Sebenarnya dalam game sendiri tabrakan tidak hanya terjadi antara dua objek,
tetapi dapat terjadi juga antara satu objek dengan banyak objek atau banyak objek
dengan banyak objek. Dalam game membutuhkan collision detection yang akurat
karena setelah menentukan terjadinya collision atau tidak kita harus menentukan apa
yang terjadi pada objek yang ditabrak ataupun yang menabrak.
Collision detection ini juga berguna untuk menentukan posisi dari satu objek
dengan objek yang lain sehingga tidak ada objek yang saling menembus. Sehingga
game yang akan dibuat memiliki kesamaan dengan realita yang ada.
Collision detection memiliki teknik yg berbeda untuk diterapkan pada pembuatan
game 2D dan game 3D. Teknik Collision Detection pada 2D ada 2 cara yaitu :