APLIKASI M-LEARNING
KESENIAN ALAT MUSIK DAN LAGU DAERAH DI INDONESIA
BERBASIS J2ME
Oleh :
1. Nisa Aulia Dalila
3.34.08.0.18
2. Umi Latifah
3.34.08.0.23
BUKTI PERSETUJUAN
Nama Penyusun
: 3.34.08.0.18
Jurusan/Program Studi
DAN
LAGU
DAERAH
Semarang,
Agustus 2011
Pembimbing Utama
Pembimbing Pembantu
NIP. 197101172003121001
NIP. 197610032003121002
ii
DI
BUKTI PERSETUJUAN
Nama Penyusun
: Umi Latifah
: 3.34.08.0.23
Jurusan/Program Studi
DAN
LAGU
DAERAH
Semarang,
Agustus 2011
Pembimbing Utama
Pembimbing Pembantu
NIP. 197101172003121001
NIP. 197610032003121002
iii
DI
BUKTI PENGESAHAN
Disahkan
Tanggal : Agustus 2011
Penguji I
Penguji II
Penguji III
T. R. Yudantoro, S.Kom
Idhawati H., M. Kom
NIP. 196810252000121001 NIP.197711192008012013
Ketua Penguji
Sekretaris Penguji
Drs. Sasongko
NIP.195901191988031001
Ketua Jurusan
iv
:
1. Nisa Aulia Dalila
/ 3.34.08.0.18 / IK.3A
2. Umi Latifah
/ 3.34.08.0.23 / IK.3A
Jurusan
: Teknik Elektro
Program Studi
: Teknik Informatika
Menyatakan bahwa dalam tugas akhir ini tidak terdapat karya yang pernah diajukan
untuk memperoleh sebutan keahlian di suatu perguruan tinggi dan tidak terdapat
karya atau pendapat yang pernah ditulis dan dibuat oleh orang lain, kecuali yang
secara tertulis pada acuan dalam naskah/karya tugas akhir ini dan disebutkan dalam
daftar pustaka.
Semarang,
Agustus 2011
Mahasiswa 1,
Mahasiswa 2,
Umi Latifah
NIM. 3.34.08.0.18
NIM. 3.34.08.0.23
PERSEMBAHAN
Umi Latifah
Ayah dan Bunda tercinta
Kakak dan adik-adikku tersayang
Teman Seperjuanganku, Nisa Aulia Dalila
Teman-teman Kaisar08 dan Lima Srikandi
vi
MOTTO
vii
KATA PENGANTAR
Puji syukur ke hadirat Allah SWT yang telah memberikan rahmat, berkah dan
anugerah-Nya sehingga penulis dapat menyelesaikan Tugas Akhir dengan judul
APLIKASI
M-LEARNING
KESENIAN
ALAT
MUSIK
DAN
LAGU
Dalam menyelesaikan Tugas Akhir ini penulis banyak memperoleh bantuan dari
berbagai pihak. Oleh karena itu pada kesempatan ini penulis ingin menyampaikan
ucapan terima kasih kepada :
1.
Bapak Dr. H. Totok Prasetyo, B.Eng., M.T. selaku Direktur Politeknik Negeri
Semarang.
2.
Bapak Akhmad Jamaah F., S.T. selaku Ketua Jurusan Teknik Elektro.
3.
Bapak Drs. Parsumo Rahardjo, M.Kom. selaku Ketua Program Studi Teknik
Informatika Politeknik Negeri Semarang.
viii
5.
Bapak Sukamto, S.Kom., M.T. dan Bapak Budi Suyanto, S.T. selaku dosen
pembimbing yang telah banyak membantu, memberikan dukungan dan bantuan
berupa solusi masalah, ide pengembangan, serta masukan yang berguna bagi
penulis.
6.
Seluruh dosen pengajar dan staf laboratorium komputer Program Studi Teknik
Informatika Politeknik Negeri Semarang yang turut memberikan bantuan dan
dukungan.
7.
Orang tua serta keluarga kami yang telah memberikan doa dan dukungan dalam
pembuatan Tugas Akhir ini.
8.
9.
Semua pihak yang telah membantu penulis dari awal hingga akhir yang tidak
dapat penulis sebutkan satu persatu.
Penulis menyadari bahwa dalam penyusunan laporan Tugas Akhir ini masih jauh dari
kesempurnaan, untuk itu penulis selalu mengharapkan kritik dan saran yang
membangun dari semua pihak. Penulis berharap semoga Tugas Akhir ini dapat
bermanfaat bagi pembaca.
Semarang,
Penulis
ix
Agustus 2011
DAFTAR ISI
HALAMAN PERSETUJUAN.........................................................................ii
HALAMAN PENGESAHAN ..........................................................................iv
SURAT PERNYATAAN PENJAMINAN KARYA TUGAS AKHIR ...........v
HALAMAN PERSEMBAHAN .......................................................................vi
MOTTO
...................................................................................................vii
KATA PENGANTAR......................................................................................viii
DAFTAR ISI ...................................................................................................x
DAFTAR TABEL ............................................................................................xiv
DAFTAR GAMBAR........................................................................................xvi
ABSTRAK
...................................................................................................xx
ABSTRACT
...................................................................................................xxi
PENDAHULUAN .....................................................................................1
...................................................................................................4
LANDASAN TEORI................................................................................9
...................................................................................................15
xi
PENUTUP .................................................................................................92
5.1 Kesimpulan.................................................................................................92
5.2 Saran
...................................................................................................93
xii
DAFTAR PUSTAKA.......................................................................................P
LAMPIRAN ...................................................................................................L
xiii
DAFTAR TABEL
xiv
xv
DAFTAR GAMBAR
xvi
xviii
xix
ABSTRAK
xx
ABSTRACT
xxi
1.1
PENDAHULUAN
Di era globalisasi seperti sekarang ini, teknologi semakin berkembang dengan cepat.
Sehingga semakin memudahkan masyarakat dalam mengakses informasi, baik dari luar
negeri maupun dalam negeri. Media untuk mengakses informasi pun tidak hanya melalui
PC (Personal Computer), tetapi juga dapat melalui media telepon selular yang dapat
diakses dimana saja dan kapan saja.
Saat ini media telepon selular atau yang biasa disebut dengan Handphone, juga memiliki
berbagai fasilitas yang lebih memudahkan para penggunanya. Selain digunakan untuk
media komunikasi seperti telepon dan SMS (Short Message Service), handphone juga
memudahkan kita untuk mengakses informasi, karena dilengkapi dengan fasilitas GPRS,
GPS, aplikasi Java, aplikasi berbasis teks seperti .txt dan .pdf.
Salah satu fasilitas dari media telepon selular yang cukup berkembang untuk saat ini
adalah aplikasi Java Mobile. Dengan aplikasi tersebut, dapat dikembangkan media
pembelajaran yang juga sangat berguna bagi pengguna telepon selular karena dapat
memberikan edukasi yang bermanfaat. Jenis pembelajarannya bermacam-macam,
disesuaikan dengan tingkat usia maupun pendidikan. Misalnya untuk di kalangan usia
pelajar anak-anak yang masih kurang mengenal kebudayaan daerah Indonesia dapat
dikembangkan media pembelajaran tentang kesenian musik daerah.
Kesenian musik daerah seperti alat musik tradisional dan lagu daerah adalah salah satu
kebudayaan bangsa Indonesia yang seharusnya menjadi salah satu kebanggaan warga
negara Indonesia. Tapi kenyataannya dalam kehidupan sehari-hari, anak-anak Indonesia
lebih menghafal lagu-lagu yang bertemakan cinta yang mana tidak sesuai dengan usia
anak-anak. Selain itu, para remaja juga lebih memilih untuk mendengarkan lagu-lagu
barat, dibanding untuk mendengar ataupun menghafalkan lagu-lagu daerah yang ada di
tanah airnya sendiri. Bahkan, dari segi alat musik tradisional seperti angklung, diklaim
oleh negara lain. Padahal kita tahu, bahwa alat musik tersebut berasal dari Indonesia,
tepatnya Jawa Barat.
Saat ini seluruh akses untuk transportasi dan komunikasi sangat fleksibel dan mudah.
Hal ini juga menyebabkan mudahnya kebudayaan bangsa lain untuk masuk ke negara
Indonesia, tanpa adanya pemilah antara segi positif dan negatif. Sehingga banyak
masyarakat Indonesia khususnya generasi muda yang terpengaruh oleh budaya bangsa
lain dan mulai acuh dengan budaya negeri sendiri. Jika hal ini berkelanjutan, maka ciri
khas bangsa Indonesia sebagai bangsa yang memiliki beragam seni dan budaya akan
luntur.
Langkah yang harus dilakukan sedini mungkin adalah mengajak generasi muda
khususnya anak-anak Indonesia agar lebih mengenal dan mencintai budaya yang ada di
tanah airnya, mulai dari Sabang sampai Merauke. Budaya di Indonesia juga beraneka
ragam, salah satu contohnya adalah kesenian musik seperti alat musik tradisional dan
lagu daerah. Dan sebagai generasi muda yang cinta tanah air harus dapat mengenal lagu
daerah ataupun alat musik tradisional dari setiap daerah yang ada di Indonesia dengan
beraneka ragam dan jenisnya.
Oleh karena itu, untuk mempermudah anak-anak Indonesia dalam mengenal dan
mencintai kesenian musik daerah penulis tertarik untuk membuat Tugas Akhir dengan
judul APLIKASI M-LEARNING KESENIAN ALAT MUSIK DAN LAGU DAERAH
DI INDONESIA BERBASIS J2ME.
1.2
Perumusan Masalah
Berdasarkan latar belakang tersebut, maka penulis merumuskan permasalahan yang ada,
yaitu untuk membantu anak-anak Indonesia supaya lebih mengenal dan mencintai
berbagai alat musik dan lagu daerah dengan menggunakan program aplikasi Mobile
Learning berbasis J2ME (Java 2 Micro Edition). Sehingga mempermudah dalam
mempelajari kesenian musik daerah melalui telepon selular, yang dapat diakses dimana
saja dan kapan saja.
1.3
Pembatasan Masalah
Dalam penulisan Tugas Akhir ini, penulis juga memiliki beberapa batasan masalah
untuk menghindari meluasnya pembahasan materi agar materi yang dibahas lebih
terarah. Oleh karena itu, penulis membatasi permasalahan dalam Tugas Akhir ini
hanya mencakup hal-hal sebagai berikut:
a.
Aplikasi ini memberikan pembelajaran kepada user mengenai berbagai jenis alat
musik dan lagu daerah yang ada di Indonesia.
b.
c.
d.
e.
Pada aplikasi ini user hanya dapat mendengarkan maksimal 3 lagu untuk masingmasing daerah.
f.
Dalam aplikasi ini, pengajar dapat menambahkan soal hanya dalam bentuk teks.
g.
Murid dapat mengakses video sebanyak 1 video untuk setiap list daerah.
1.4
b.
1.5
Metodologi
Dalam perancangan aplikasi pada tugas akhir ini penulis menggunakan metode
Waterfall. Metode Waterfall adalah metode yang menyarankan sebuah pendekatan yang
sistematis dan sekuensial melalui tahapan-tahapan yang ada pada SDLC (Software
Development Life Cycle ) untuk membangun sebuah perangkat lunak.
Langkah ini merupakan analisa terhadap kebutuhan sistem. Pengumpulan data dalam
tahap ini bisa melakukan sebuah penelitian, wawancara atau study literatur. Seorang
sistem analis akan menggali informasi sebanyak-banyaknya dari user sehingga akan
tercipta sebuah sistem komputer yang bisa melakukan tugas-tugas yang diinginkan oleh
user tersebut. Tahapan ini akan menghasilkan dokumen user requirment atau bisa
dikatakan sebagai data yang berhubungan dengan keinginan user dalam pembuatan
sistem. Dokumen ini lah yang akan menjadi acuan sistem analis untuk menterjemahkan
ke dalam bahasa pemprogram.
b.
c.
Pada tahap ini merupakan proses multi langkah dan berfokus pada beberapa atribut
perangkat lunak yang berbeda yaitu struktur data, arsitektur perangkat lunak, dan detil
algoritma. Perancangan sistem m-learning akan mentransformasi model hasil analisis
yang telah dibuat pada tahap analisis ke dalam suatu model desain. Hasil model desain
ini berfungsi sebagai cetak biru dari bangunan perangkat lunak atau sistem m-learning
yang akan dibuat.
d.
Implementasi (coding)
Implementasi atau penulisan source code dengan menerapkan desain sistem m-learning
yang telah dibuat ke dalam bahasa pemrograman sehingga diperoleh suatu aplikasi yang
siap pakai.
e.
1.6
Sistematika Penulisan
Adapun dalam penulisan Tugas Akhir ini, sistematika pembahasannya adalah sebagai
berikut:
I.
PENDAHULUAN
Dalam bab ini membahas tentang latar belakang masalah, perumusan masalah,
pembatasan masalah, tujuan pembuatan, metode penelitian, serta sistematika
penulisan dalam pembuatan Tugas Akhir.
2.1
LANDASAN TEORI
Kesenian
Kesenian adalah ciptaan dari segala pikiran dan perilaku manusia yang fungsional,
estetis dan indah, sehingga ia dapat dinikmati dengan panca inderanya yaitu penglihat,
penghidung, pengecap, perasa dan pendengar (Koentjaraningrat,2002:19). Kesenian
yang berkembang di masyarakat di antaranya adalah kesenian tradisional. Dalam
pelaksanaannya tidak lepas dari unsur-unsur/kaidah tradisional yang mengikat. Menurut
Oka A. Yoeti (1985:2) yang dimaksudkan dengan seni budaya tradisional adalah seni
budaya yang sejak lama turun-temurun telah hidup dan berkembang pada suatu daerah
tertentu.
2.2
Alat Musik
Alat musik adalah suatu instrumen yang dibuat atau dimodifikasi untuk tujuan
menghasilkan musik. Jenis jenis alat musik berdasarkan cara memainkan:
a.
Alat musik tiup menghasilkan suara sewaktu suatu kolom udara didalamnya
digetarkan. Tinggi rendah nada ditentukan oleh frekuensi gelombang yang
dihasilkan terkait dengan panjang kolom udara dan bentuk instrumen, sedangkan
timbre
dipengaruhi
oleh
bahan
dasar,
konstruksi
instrumen
dan
cara
Alat musik pukul menghasilkan suara sewaktu dipukul atau ditabuh. Alat musik
pukul dibagi menjadi dua yakni bernada dan tidak bernada. Bentuk dan bahan
9
10
bagian-bagian instrumen serta bentuk rongga getar, jika ada, akan menentukan suara
yang dihasilkan instrumen. Contohnya adalah kolintang (bernada), drums (tak
bernada), dan bongo (tak bernada).
c.
Alat musik petik menghasilkan suara ketika senar digetarkan melalui dipetik. Tinggi
rendah nada dihasilkan dari panjang pendeknya dawai.
d.
Alat musik gesek menghasilkan suara ketika dawai digesek. Seperti alat musik
petik, tinggi rendah nada tergantung panjang dan pendek dawai.
2.3
Lagu Daerah
Lagu daerah atau musik daerah atau lagu kedaerahan, adalah lagu atau musik yang
berasal dari suatu daerah tertentu dan menjadi populer dinyanyikan baik oleh rakyat
daerah tersebut maupun rakyat lainnya. Pada umumnya pencipta lagu daerah ini tidak
diketahui lagi alias noname.
Lagu kedaerahan mirip dengan lagu kebangsaan, namun statusnya hanya bersifat
kedaerahan saja. Lagu kedaerahan biasanya memiliki lirik sesuai dengan bahasa
daerahnya masing-masing.
Lagu daerah atau musik daerah ini biasanya muncul dan dinyanyikan atau dimainkan
pada tradisi-tradisi tertentu pada masing-masing daerah, misalnya pada permainan anakanak, hiburan rakyat, pesta rakyat, perjuangan rakyat, dan lain sebagainya.
11
2.4
Pengertian M-Learning
Perkembangan teknologi informasi dan komunikasi telah memberi pengaruh besar bagi
dunia pendidikan dan pelatihan. Munculnya teknologi telah melahirkan Computer Based
Learning (CBL), pembelajaran yang didukung oleh perangkat dan media elektronik
digital, e-Learning sampai m-Learning yang merupakan pembelajaran yang didukung
oleh perangkat bergerak dan transmisi nirkabel. Perangkat bergerak telah muncul
sebagai salah satu teknologi yang cukup potensial untuk mendukung pembelajaran.
Istilah Mobile Learning (m-Learning) mengacu kepada penggunaan perangkat teknologi
informasi (TI) genggam dan bergerak, seperti PDA, telepon genggam, laptop dan tablet
PC, dalam pengajaran dan pembelajaran. M-Learning merupakan bagian dari Electronic
Learning (e-Learning) sehingga, dengan sendirinya, juga merupakan bagian dari
Distance Learning (d-Learning).
d-learning
e-learning
m-learning
12
13
yang tepat dan sesuai dengan karakteristik perangkat maupun pengguna. Jenisjenis
konten mlearning antara lain:
a. Konten Teks
Saat ini banyak perangkat yang telah mendukung penggunaan teks. Hampir semua
telepon seluler yang beredar saat ini telah mendukung penggunaan SMS. 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.
b. Konten 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 perangkat. File gambar yang
didukung oleh perangkat umumnya bertipe PNG, GIF, JPG. Penggunaan gambar sebagai
konten pembelajaran biasanya digabungkan dengan konten lain, misalnya teks.
c. Konten Audio Video
Banyak perangkat bergerak saat ini telah mendukung penggunaan audio. Beberapa tipe
file yang biasanya digunakan di lingkungan perangkat bergerak antara lain rm, mp3, amr
dan lainlain. Oleh karena file audio biasanya memiliki ukuran yang cukup besar hal ini
14
menyebabkan file audio tersebut harus diolah terlebih dahulu sehingga dapat digunakan
di lingkungan perangkat bergerak yang memiliki kapasitas memori yang relatif kecil.
Meski dalam kualitas dan ukuran yang besar, beberapa tipe perangkat bergerak telah
mampu memainkan file video. Format file yang didukung oleh perangkat bergerak
antara lain adalah 3gp, MPEG, MP4, dan lainlain. Sama seperti file audio, kebanyakan
file video memiliki ukuran yang cukup besar sehingga harus dikonversi dan disesuaikan
dengan keterbatasan perangkat.
d. Konten Aplikasi
Konten yang cukup menarik adalah aplikasi perangkat lunak yang dipasang pada
perangkat. Perangkat lunak dapat diatur sesuai kebutuhan sehingga akan lebih mudah
digunakan. Aplikasi perangkat lunak ini juga mampu menggabungkan kontenkonten
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 lainlain.
2.4.3 Kelebihan dan Kekurangan M-Learning
Beberapa kelebihan m-learning dibandingkan dengan pembelajaran lain adalah:
a.
b.
kebanyakan device bergerak memiliki harga yang relatif lebih murah dibanding
harga PC desktop,
c.
15
d.
Meski memiliki beberapa kelebihan, m-learning tidak akan sepenuhnya menggantikan elearning tradisional. Hal ini dikarenakan m-learning memiliki beberapa kendala dan
permasalahan yang ditimbulkan. Berikut adalah kekurangan m-learning:
a.
Adanya kesulitan merubah paradigma belajar, dari belajar secara tatap muka,
terstuktur terjadwal kebelajar secara mandiri, kapanpun dimanapun dan berbasis
teknologi komunikasi dan perangkat bergerak
b.
c.
d.
Adanya kesulitan siswa untuk mulai terbiasa belajar menggunakan telepon seluler
(HP) untuk membaca materi dan berdiskusi serta menjawab kuis dengan
pembelajaran m-learning.
2.5
Java
Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk
telepon genggam. Bahasa ini awalnya dibuat oleh James Gosling saat masih bergabung
di Sun Microsystems saat ini merupakan bagian dari Oracle dan dirilis tahun 1995.
16
Menurut definisi dari Sun, Java adalah nama untuk sekumpulan teknologi untuk
membuat dan menjalankan perangkat lunak pada komputer standalone atau pada
lingkungan jaringan. Teknologi Java memiliki tiga komponen penting, yaitu:
a.
Programming-language specification
b.
Application-programming interface
c.
Virtual-machine specification
Java Standard Edition (SE), sebuah standar API untuk merancang aplikasi desktop
dan applets dengan bahasa dasar yang mendukung grafis, M/K, keamanan,
konektivitas basis data dan jaringan.
b.
Java Enterprose Edition (EE), sebuah inisiatif API untuk merancang aplikasi server
dengan mendukung untuk basis data.
c.
Java Macro Edition (ME), sebuah API untuk merancang aplikasi yang jalan pada
alat kecil seperti telepon genggam, komputer genggam dan pager.
17
18
Tool
Hasil
Text editor
Kompilasi program
Java Compiler
Menjalankan program
Java Interpreter
Program Output
2.6
Java 2 Micro Edition (J2ME) adalah teknologi Java yang diaplikasikan pada perangkatperangkat kecil consumer device , terutama wireless. Beberapa perangkat wireless antara
lain PC, PDA, communicator, embedded device, smart card dan ponsel.
2.6.1 Aplikasi J2ME
Terdapat dua jenis aplikasi J2ME yaitu:
a.
Walled garden application yaitu aplikasi yang berdiri sendiri atau standalone yang
berjalan pada handphone tanpa perlu mengakses sumber data eksternal melalui
jaringan pembawa atau carier network. Contoh dari aplikasi ini adalah kalkulator
atau single player games.
b.
Network aware application yaitu aplikasi yang berinteraksi dengan jaringan. Tidak
seperti aplikasi pertama, aplikasi ini memiliki kemampuan untuk mengakses sumber
daya eksternal. Contoh dari aplikasi jenis ini adalah aplikasi email yang berada pada
19
CLDC adalah perangkat dasar dari J2ME, spesifikasi dasar yang berupa library atau API
yang diimplementasikan pada J2ME, seperti yang digunakan pada telepon selular, pager,
dan PDA. Perangkat tersebut dibatasi dengan keterbatasan memory, sumber daya, dan
kemampuan memproses. Spesifikasi CLDC pada J2ME adalah spesifikasi minimal pada
package, class, dan sebagian fungsi Java Virtual Machine yang dikurangi agar dapat
diimplementasikan dengan keterbatasan sumber daya pada alat tersebut, JVM yang
digunakan adalah KVM (Kilobyte Virtual Machine).
20
b.
CDC merupakan komunitas proses pada Java yang memiliki standardisasi. CDC terdiri
dari virtual machine dan library dasar untuk dipergunakan pada profile industri.
Implementasi CDC pada J2ME adalah source code yang menyediakan sambungan
dengan macam-macam platform. Perbandingan antara CLDC dengan CDC sebagai
berikut :
Tabel 2.2 Perbandingan CLDC dan CDC
CLDC
CDC
J2SE
pada
minimal 2MB
Prosesor 32 bit
internet
yang
TV,
memiliki
nokia,
memori
21
memainkan tone, tone sequence, dan file wav walaupun tanpa adanya Mobile Media API
(MMAPI).
MIDP memiliki User Interface API memiliki API level tinggi dan level rendah. API
level rendah berbasiskan penggunaan dari kelas abstrak, sedangkan kelas API level
tinggi antara lain Alert, Form, List, dan Texbox yang merupakan ekstensi dari kelas
abstrak yaitu Screen. API level rendah lebih memberikan kemudahan kepada
pengembang untuk memodifikasi sesuai dengan kehendaknya, sedangkan API level
tinggi biasanya hanya memberikan pengaksesan yang terbatas. Diagram kelas antarmuka
pada MIDP dapat dilihat pada gambar 2.4.
aplikasi MIDP
disebut MIDlet.
Perangkat
application management
software (AMS) berinteraksi langsung dengan MIDlet dengan method MIDlet create,
start, pause, dan destroy. MIDlet adalah bagian dari package javax.microedition.midlet.
22
Sebuah MIDlet harus di-extend dengan class MIDlet. Dan dapat meminta parameter
dari AMS seperti
static void main(String[ ] argv). Method tersebut tidak akan dikenal lagi oleh
AMS sebagai titik awal sebuah program.
a. Siklus MIDlet
Kehidupan MIDlet dimulai ketika di-instantiate oleh AMS. MIDlet pada awalnya masuk
status Pause setelah perintah baru dibuat. AMS memanggil constructor public tanpa
argumen dari MIDlet. Jika sebuah exception terjadi dalam constructor, MIDlet
memasuki status Destroyed dan membuangnya segera. MIDlet masuk ke dalam status
Active atas pemanggilan method startUp() oleh AMS. MIDlet masuk kedalam status
Destroyed
ini
juga
catatan
bahwa MIDlet
hanya
bisa memasuki
status
23
b. MIDlet suites
Aplikasi-aplikasi MIDlet
MIDlet
dibungkus
dan
sebagai
suites. Sebuah MIDlet suite terdiri dari Java Archive (JAR) dan sebuah
tambahan Java Application Descriptor (JAD). File JAD adalah suatu file teks yang
berisi satu set atribut-atribut.
2.7
KToolbar
KToolbar merupakan bagian utama dari aplikasi untuk pengembangan Java MIDP atau
lebih dikenal dengan istilah MIDlet. KToolbar merupakan lingkungan pengembangan
minimal yang disediakan oleh J2ME Wireless Toolkit untuk pengembangan MIDlet.
Untuk melakukan pengembangan aplikasi MIDlet melaui KToolbar, hal pertama yang
harus dilakukan adalah membuat proyek. Proyek ini secara fisik akan diletakkan pada
C:\WTK20\apps\{nama-proyek} dengan asumsi J2ME Wireless Toolkit diinstal pada
C:\WTK20\. Proyek yang dibuat terdiri atas direktori-direktori berikut:
1)
2)
Bin, adalah direktori yang berisi berkas-berkas JAD, JAR dan manifest
3)
24
4)
Lib, adalah direktori yang berisi berkas-berkas kelas java yang diperlukan dalam
format gambar atau zip
2.7.2 Xampp
XAMPP adalah perangkat lunak yang mendukung banyak sistem operasi, merupakan
kompilasi dari beberapa program. Fungsinya adalah sebagai server yang berdiri sendiri
(localhost), yang terdiri atas program Apache HTTP Server, MySQL database, dan
penerjemah bahasa yang ditulis dengan bahasa pemrograman PHP dan Perl. Nama
XAMPP merupakan singkatan dari X (empat sistem operasi apapun), Apache, MySQL,
PHP dan Perl. Program ini tersedia dalam GNU General Public License dan bebas,
merupakan web server yang mudah digunakan yang dapat melayani tampilan halaman
web yang dinamis. Untuk mendapatkanya dapat mendownload langsung dari web
resminya.
2.7.3 PHP dan MySql
a. PHP
PHP adalah bahasa pemrogramman berbasis web yang memiliki kemampuan untuk
memproses data dinamis. PHP dikatakan sebagai sebuah server-side embedded script
language artinya sintaks-sintaks dan perintah yang kita berikan akan sepenuhnya
dijalankan oleh server tetapi disertakan pada halaman HTML biasa. Aplikasi-aplikasi
yang dibangun oleh PHP pada umumnya akan memberikan hasil pada web browser,
tetapi prosesnya secara keseluruhan dijalankan di server.
25
Pada prinsipnya server akan bekerja apabila ada permintaan dari client. Dalam hal ini
client menggunakan kode-kode PHP untuk mengirimkan permintaan ke server. Ketika
menggunakan PHP sebagai server-side embedded script language maka server akan
melakukan hal-hal sebagai berikut :
1)
2)
3)
Melakukan instruksi yang diberikan oleh PHP untuk melakukan modifikasi pada
halaman/page.
4)
Mengirim kembali halaman tersebut kepada client melalui internet atau intranet.
b. MySql
MySQL adalah sebuah implementasi dari sistem manajemen basisdata relasional yang
didistribusikan secara gratis dibawah lisensi GPL (General Public License). Setiap
pengguna dapat secara bebas menggunakan MySQL, namun dengan batasan perangkat
lunak tersebut tidak boleh dijadikan produk turunan yang bersifat komersial. MySQL
sebenarnya merupakan turunan salah satu konsep utama dalam basisdata yang telah ada
sebelumnya; SQL (Structured Query Language). SQL adalah sebuah konsep
pengoperasian basisdata, terutama untuk pemilihan atau seleksi dan pemasukan data,
yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis.
26
2.8
Building Blocks
Untuk dapat memahami UML membutuhkan bentuk konsep dari sebuah bahasa model,
dan mempelajari 3 (tiga) elemen utama dari UML seperti building block, aturan-aturan
yang menyatakan bagaimana building block diletakkan secara bersamaan, dan beberapa
mekanisme umum (common).
Terdapat 3 macam kategori dalam building block antara lain katagori benda(things),
hubungan, dan diagram. Benda(things) adalah abstraksi yang pertama dalam sebuah
model, hubungan sebagai alat komunikasi dari benda- benda, dan diagram sebagai
kumpulan dari benda-benda.
a.
Benda(things)
Benda(things) adalah hal yang sangat mendasar dalam model UML, juga merupakan
bagian paling statik dari sebuah model, serta menjelaskan elemen-elemen lainnya dari
sebuah konsep atau fisik. Bentuk dari beberapa benda(thing) adalah sebagai berikut:
27
1)
Classes
sebuah kelas yang diuraikan sebagai sekelompok dari object yang mempunyai
atribute, operasi, hubungan yang semantik. Sebuah kelas mengimplementasikan 1
atau lebih interfaces. Sebuah kelas dapat digambarkan sebagai sebuah persegi
panjang, yang mempunyai sebuah nama, atribute, dan metoda pengoperasiannya,
seperti terlihat dalam gambar 2.6.
Collaboration
Didefinisikan dengan interaksi dan sebuah kumpulan dari kelas-kelas / elemenelemen yang bekerja secara bersama-sama. Collaborations mempunyai struktur
dan dimensi. Pemberian sebuah kelas memungkinkan berpartisipasi didalam
beberapa collaborations dan digambarkan dengan sebuah elips dengan garis
terpotong-potong.
28
Use cases
Sebuah use case adalah rangkaian/uraian sekelompok yang saling terkait dan
membentuk sistem secara teratur yang dilakukan atau diawasi oleh sebuah aktor.
use case digunakan untuk membentuk tingkah-laku benda/things dalam sebuah
model serta di realisasikan oleh sebuah collaboration. Umumnya use case
digambarkan dengan sebuah elips dengan garis yang solid, biasanya mengandung
nama, seperti terlihat dalam gambar 2.8.
Fault
Location
Nodes
Sebuah nodes merupakan fisik dari elemen-elemen yang ada pada saat
dijalankannya sebuah sistem, contohnya adalah sebuah komputer, umumnya
mempunyai sedikitnya memory dan processor. Sekelompok komponen mungkin
terletak pada sebuah node dan juga mungkin akan berpindah dari node satu ke
node lainnya. Umumnya node ini digambarkan seperti kubus serta hanya
mengandung namanya, seperti terlihat dalam gambar 2.9.
29
server
Interface/Antar-muka
Yang
menggambarkan
interface
merupakan
sebuah
antar-muka
yang
Hubungan / Relationship
Dependency
30
Association
0..1
employer
*
employ
Generalizations
31
4)
Realizations
Diagram/Bagan
UML terdiri atas pengelompokan diagram-diagram sistem menurut aspek atau sudut
pandang tertentu. Diagram adalah yang menggambarkan permasalahan maupun solusi
dari permasalahan suatu model. UML mempunyai 9 diagram, yaitu;
1)
2)
class diagram
3)
object diagram
4)
statechart diagram
5)
activity diagram
6)
sequence diagram
7)
collaboration diagram
8)
component diagram
9)
deployment diagram
3.1
Dalam bab ini memberikan gambaran tentang perancangan dari sistem yang dibuat.
Perancangan sistem bertujuan untuk mempermudah proses pembuatan sistem sehingga
dapat menghasilkan informasi sesuai dengan sistem yang dibuat. Secara garis besar,
perancangan sistem aplikasi M-Learning Kesenian Musik dan Lagu Daerah Di Indonesia
dapat dilihat pada Gambar 3.1.
33
device dan HTTP server. Peran ini dipegang oleh WAP Gateway. Sehingga kontent
yang di inginkan dapat diolah dan di munculkan kembali ke telepon seluler yang
meminta akses kontent.
3.2
Analisis dan rancangan sistem merupakan bagian atau tahapan pengembangan sistem.
Dalam aplikasi m-learning ini, analisis sistem dilakukan dengan menggunakan teknologi
berorientasi objek, meliputi pemodelan use case diagram dan statechart diagram.
3.2.1 Pemodelan Use Case Diagram
Sebuah use case menggambarkan suatu urutan interaksi antara satu atau lebih aktor dan
sistem. Use case berfungsi untuk mejelaskan tentang kerja dari sistem. Dengan use case
dapat diketahui apa yang dikerjakan oleh sistem yang akan dibuat.
Tahapan pembuatan use case meliputi pembuatan skenario atau textual analysis yang
menggambarkan sistem yang akan dibuat. Dari skenario ini maka akan didapatkan aktor
atau pelaku dalam sistem dan use case. Kemudian antara aktor dan use case akan dibuat
use case diagram yang menggambarkan interaksi antara aktor dan use case.
a. Pengembangan Masalah (Problem Statement)
Pengembangan masalah (problem statement) merupakan tahapan awal yang harus
dilakukan dalam pembuatan model use case. Dalam implementasinya menggunakan
VP-UML, pengembangan masalah dituliskan ke dalam textual analysis yang
34
mendeskripsikan seperti apa sebuah sistem akan bekerja. Problem statement dari
aplikasi M-Learning Kesenian Alat Musik dan Lagu Daerah adalah sebagai berikut:
M-Learning Kesenian Alat Musik dan Lagu Daerah adalah sebuah aplikasi yang
berfungsi sebagai media pembelajaran mengenai kesenian alat musik dan lagu daerah
di Indonesia yang dikhususkan untuk pelajar SD tingkat akhir. Aplikasi ini dapat
diakses melalui situs web dan ponsel. Pengguna yang ada dalam sistem aplikasi ini
adalah sebagai berikut:
1)
User Umum
User umum merupakan pengunjung yang belum terdaftar sebagai murid. User
umum dapat terdaftar sebagai murid jika telah melakukan registrasi melalui
sistem daftar dan login. Sebelum terdaftar sebagai murid, user umum dapat
melihat materi pembelajaran kesenian alat musik dan lagu daerah. User umum
hanya dapat mengakses aplikasi m-learning melalui ponsel. Untuk media situs
web, user umum tidak dapat mengakses materi pembelajaran dan melakukan
registrasi, tetapi hanya dapat mengunduh aplikasi m-learning. Karena pada media
situs web hanya dikhususkan untuk halaman adminstrator dan pengajar.
2)
Murid
Murid dapat melihat materi pembelajaran, menjawab latihan soal, melihat nilai,
melihat data diri, mengubah data diri dan memberi saran. Murid yang dimaksud
adalah user umum yang telah melakukan registrasi terlebih dahulu pada aplikasi
ini. Murid dapat mengakses situs web untuk mengunduh aplikasi m-learning.
35
3)
Pengajar
Pengajar dapat menambah soal, melihat nilai murid, melihat data murid dan
melihat saran. Pengajar yang dimaksud adalah guru dari sekolah atau lembaga
pendidikan tertentu yang telah terdaftar dan proses registrasinya dilakukan oleh
administrator melalui situs web. Pengajar dapat mengakses melalui situs web dan
aplikasi m-learning.
4)
Administrator
Administrator dapat melihat data murid dan melakukan manipulasi data pengajar.
Namun administrator hanya dapat melakukan aktifitas manipulasi data melalui
situs web, bukan melalui aplikasi m-learning.
User Umum
2)
Murid
3)
Pengajar
36
Identifikasi use case dari aplikasi M-learning Kesenian Alat Musik dan Lagu Daerah
di Indonesia adalah sebagai berikut :
1)
Daftar
2)
Login
3)
Belajar
4)
Panduan
5)
6)
7)
Latihan soal
8)
Lihat nilai
9)
Saran
Use Case
User umum
Murid
37
Pengajar
Sebelum merancang use case diagram, terlebih dahulu dilakukan identifikasi aktor
dan use case. Identifikasi aktor dan use case berasal dari pengembangan masalah
yang telah dibuat. Identifikasi aktor dan use case pada VP-UML dapat dilihat pada
Gambar 3.2.
38
M-Learning Kesenian Alat Musik dan Lagu Daerah di Indonesia dapat dilihat pada
Gambar 3.3.
Gambar 3.3 Use Case Diagram M-Learning Kesenian Alat Musik dan Lagu Daerah
di Indonesia
3.2.2 Pemodelan dengan Statechart Diagram
Statechart diagram menunjukkan bagaimana sebuah entitas bereaksi terhadap beberapa
kejadian dengan berubah dari satu state ke state yang lain. State adalah abstraksi dari
nilai atribut dan hubungan dari suatu obyek.
39
40
41
Menu Utama
Login
Belajar
Materi pembelajaran
Subsistem Pengajar
Menu Pengajar
Data Murid
Lihat Nilai
Data Soal
Lihat Saran
Lihat Soal
Tambah Soal
Panduan
42
3.3
Perancangan Sistem
Perancangan sistem meliputi pemodelan class diagram, desain GUI (Graphic User
Interface) dan desain database.
3.3.1 Pemodelan Class Diagram
Class diagram digunakan untuk mendeskripsikan objek dan class di dalam sebuah
sistem. Class diagram pada ponsel dari aplikasi M-Learning Kesenian Alat Musik dan
Lagu Daerah di Indonesia dapat dilihat pada gambar 3.7.
43
44
1)
45
46
47
48
49
50
51
1)
Tabel murid
Tabel murid merupakan tabel yang berisi data-data murid yang telah melakukan
registrasi pada aplikasi M-Learning. Tabel ini terdiri dari 6 fields yaitu id_murid,
nama, username, password, kelas, dan statuslogin. Kunci utama untuk tabel
murid adalah id_murid. Struktur tabel murid dapat dilihat pada Tabel 3.2.
Tabel 3.2 Struktur tabel murid
2)
Field
id_murid
nama
username
Tipe
Varchar
Varchar
Varchar
Panjang
5
50
15
password
Varchar
15
kelas
statuslogin
Varchar
Varchar
10
1
Keterangan
Id murid sebagai kunci utama
Nama asli dari murid
username murid yang telah
melakukan registrasi
password murid yang telah
melakukan registrasi
Kelas murid
Status login yaitu
1 = pengajar
2 = murid
Tabel pengajar
Tabel pengajar merupakan tabel yang berisi data-data pengajar pada sistem MLearning. Tabel ini terdiri dari 6 fields yaitu id_pengajar, nama, username,
password, jabatan dan status login. Kunci utama dari tabel pengajar adalah
id_pengajar. Struktur tabel pengajar dapat dilihat pada Tabel 3.3.
Tabel 3.3 Struktur tabel pengajar
Field
id_pengajar
Tipe
Varchar
Panjang
5
nama
username
Varchar
Varchar
50
15
password
Varchar
15
Keterangan
id_pengajar sebagai kunci
utama
nama asli dari pengajar
username pengajar yang telah
melakukan registrasi
password pengajar yang telah
melakukan registrasi
52
jabatan
statuslogin
3)
Varchar
Varchar
50
1
jabatan pengajar
Status login yaitu
1 = pengajar
2 = murid
Tabel soal
Tabel soal adalah tabel yang berisi soal-soal yang akan dikerjakan murid pada
aplikasi M-Learning. Tabel ini terdiri dari 9 fields yaitu id_soal, soal,
gambar_soal, a, b, c, jawaban, id_pengajar, dan username. Kunci utama pada
tabel soal adalah id_soal. Struktur tabel soal dapat dilihat pada Tabel 3.4.
Tabel 3.4 Struktur tabel soal
4)
Field
id_soal
Soal
gambar_soal
Tipe
INT
Longtext
Varchar
Panjang
5
A
B
C
jawaban
id_pengajar
Varchar
Varchar
Varchar
Varchar
Varchar
50
50
50
1
5
username
Varchar
15
50
Keterangan
Id_soal sebagai kunci utama
Soal latihan dari pengajar
Gambar sebagai tambahan
dari soal
Jawaban a
Jawaban b
Jawaban c
Jawaban yang benar
Id_pengajar sebagai kunci
tamu
Username dari pengajar
Tabel sementara
Tabel sementara adalah tabel yang berisi data sementara dari murid yang telah
menjawab latihan soal. Tabel ini terdiri dari 3 fields yaitu id_murid, id_soal, dan
jawab. Kunci tamu pada tabel sementara adalah id_murid. Struktur table
sementara dapat dilihat pada Tabel 3.5.
53
5)
Field
id_murid
id_soal
Tipe
Varchar
INT
Panjang
5
5
jawab
Varchar
Keterangan
Id_murid sebagai kunci tamu
Nomer soal yang dijawab
murid
Jawaban dari setiap nomer
soal yang terjawab
Tabel nilai_total
Tabel nilai_total adalah tabel yang berisi data mengenai nilai keseluruhan dari
murid. Tabel ini terdiri dari 3 fields yaitu id_murid, nilai_total, dan tanggal.
Struktur tabel nilai_total dapat dilihat pada Tabel 3.6.
Tabel 3.6 Struktur tabel nilai_total
6)
Field
id_murid
nilai_total
Tipe
Varchar
Varchar
Tanggal
Date
Panjang
5
5
Keterangan
Id_murid sebagai kunci tamu
Nilai total dari latihan soal
yang telah dikerjakan murid
Tanggal latihan soal
Tabel status_login
Tabel status_login adalah tabel yang berisi status murid dan pengajar yang ada
pada sistem M-Learning. Tabel ini terdiri dari 2 field yaitu statuslogin dan
keterangan. Kunci utama pada tabel status_login adalah statuslogin. Struktur
tabel status_login dapat dilihat pada Tabel 3.7.
Tabel 3.7 Struktur tabel status_login
Field
statuslogin
Tipe
Varchar
Panjang
1
keterangan
Varchar
20
Keterangan
Status login merupakan kunci
utama. Terdiri dari 2 jenis
yaitu 1 dan 2
Keterangan dari
status login yaitu :
1 = pengajar
2 = murid
54
7)
Tabel saran_kritik
Tabel saran_kritik adalah tabel yang berisi saran dan kritik dari murid yang telah
melakukan login. Tabel ini terdiri dari 5 fields yaitu id_saran, id_murid,
username, saran dan tanggal. Struktur tabel ini dapat dilihat pada Tabel 3.8.
Tabel 3.8 Struktur tabel saran_kritik
Field
id_saran
id_murid
username
Saran
Tanggal
Tipe
Varchar
Varchar
Varchar
Longtext
Date
Panjang
5
5
15
Keterangan
Id_saran sebagai kunci utama
Id murid yang memberi saran
Username dari murid
Saran murid
Tanggal saat murid memberi
saran
b. Hubungan Antartabel
Hubungan antartabel adalah hubungan yang terjadi pada suatu tabel dengan tabel
lainnya yang berfungsi untuk mengatur operasi suatu basisdata. Hubungan antartabel
M-Learning dapat dilihat pada Gambar 3.21.
55
Tabel status_login dengan tabel pengajar dan tabel murid memiliki relasi one to
many, artinya pada tabel status_login memiliki relasi lebih dari satu tabel.
Tabel pengajar dengan tabel soal memiliki relasi one to many, artinya pengajar
dapat memasukkan lebih dari satu soal, dimana didalam tabel pengajar sebagai
kunci utama dan didalam tabel soal memiliki posisi sebagai kunci tamu.
Tabel murid dengan tabel saran_kitik memiliki relasi one to many, artinya setiap
murid dapat memberikan saran_kritik lebih dari satu, dimana didalam tabel
56
murid sebagai kunci utama dan didalam tabel saran_kritik memiliki posisi
sebagai kunci tamu.
Tabel murid dengan tabel nilai_total memiliki relasi one to many, artinya setiap
murid dapat memiliki nilai total lebih dari satu, dimana didalam tabel murid
sebagai kunci utama dan didalam tabel nilai_total memiliki posisi sebagai kunci
tamu.
Dalam bab ini akan dibahas mengenai implementasi dan pengujian Aplikasi M-Learning
Kesenian Alat Musik dan Lagu Daerah di Indonesia Berbasis J2ME. Pada bagian
implementasi terdiri dari implementasi basisdata dan implementasi pada midlet
menggunakan emulator. Pada bagian pengujian aplikasi, akan dijelaskan bagaimana
aplikasi berjalan pada ponsel. Sebelum membahas implementasi dan pengujian sistem,
terlebih dahulu akan dibahas mengenai spesifikasi perangkat keras dan perangkat lunak
yang digunakan dalam pengujian aplikasi ini.
4.1
Komputer
Komputer digunakan sebagai media untuk menuliskan kode program bagi programmer.
Komputer juga digunakan untuk media penyimpanan program serta pengujian sebelum
program digunakan oleh pengguna.Selain itu, komputer juga digunakan sebagai server
dari sistem aplikasi M-Learning Kesenian Alat Musik dan Lagu Daerah di Indonesia
Berbasis J2ME.
57
58
Spesifikasi perangkat keras komputer yang digunakan sebagai server adalah sebagai
berikut:
b.
1)
2)
RAM 2 GB
3)
Harddisk 250 GB
Ponsel
Ponsel digunakan oleh pengguna untuk mengakses aplikasi M-Learning Kesenian Alat
Musik dan Lagu Daerah di Indonesia Berbasis J2ME. Spesifikasi ponsel yang digunakan
untuk menjalankan aplikasi ini adalah sebagai berikut:
1)
Java-enabled MIDP device dengan CLDC versi 1.1 dan MIDP versi 2.0,
2)
3)
Perangkat lunak merupakan program yang digunakan dalam pembuatan aplikasi mlearning ini yang meliputi aplikasi untuk ponsel, aplikasi web berbasis PHP dan
pembuatan basisdata. Perangkat lunak yang digunakan antara lain :
a. JavaTM Micro Edition Platform Software Development Kit 3.0 (Java ME SDK 3.0);
b. JDK versi 6.0;
c. Sistem Operasi Windows 7;
d. XAMPP-in32-1.7.3 for Windows;
e. Adobe Dreamwaver CS3
59
4.2
Implementasi Sistem
Implementasi sistem terdiri dari implementasi basisdata dan implementasi MIDlet pada
emulator.
4.2.1 Implementasi Basisdata
Pada implementasi basisdata digunakan XAMPP yang didalamnya terdapat MySql.
XAMPP merupakan tool yang menyediakan paket perangkat lunak kedalam sebuah
paket. Perangkat lunak tersebut diantaranya, Apache, PHP, MySql dan PHPMyAdmin.
Pembuatan basisdata pada aplikasi M-Learning diberinama mlearning dan didalamnya
terdapat 7 tabel. Hasil implementasi basisdata tersebut adalah sebagai berikut:
a.
Tabel status_login
b.
Tabel murid
60
c.
Tabel pengajar
d.
Tabel soal
61
e.
Tabel saran_kritik
f.
Tabel sementara
g.
Tabel nilai_total
62
Menampilkan Image
Objek image digunakan untuk meletakkan objek gambar. Pada aplikasi ini, objek
gambar diambil dari sebuah file gambar yang tersimpan dalam folder res.
Konstruktor dari class image ini bersifat statik, sehingga tidak menggunakan new
untuk membuat sebuah objek image melainkan menggunakan fungsi createImage()
pada objek image ini. Koding program untuk menampilkan file gambar adalah
sebagai berikut:
gambar
new
ImageItem("",
Image.createImage("/seni2.jpg"),
ImageItem.LAYOUT_CENTER, "");
masuk = new Command(" Masuk ", Command.OK, 1);
append(gambar);
addCommand(masuk);
setCommandListener(this);
63
b.
new
ChoiceGroup("Pilih
Lagu
Daerah
\n",Choice.EXCLUSIVE);
variabel.append(" Rasa Sayange\n",null);
variabel.append(" Waktu Hujan Sore-sore\n",null);
variabel.append(" Burung Kakatua\n",null);
kembali = new Command("Kembali", Command.BACK, 1);
append(variabel);
addCommand(kembali);
setCommandListener(this);
Maluku
64
c.
65
66
if(vc !=null)
{
vc.setLevel(100);
}
player.prefetch();
player.start();
}
catch (IOException ioex) {
run.AlertError("Error!!");
}
catch (MediaException mex){
run.AlertError("Error");
}
}
67
diambil dari url yang memuat file gambar yang dituju. Koding program untuk
menampilkan latihan soal adalah sebagai berikut:
private void init(){
this.append("Pertanyaan");
this.append(this.soal);
System.out.println(""+this.urlgambarsoal+" "+daftarid[idsoal]);
if(this.urlgambarsoal!=null && !this.urlgambarsoal.equals("")){
Image gmbsoal = null;
StreamConnection conn = null;
InputStream is = null;
try {
conn = (StreamConnection) Connector.open(this.urlgambarsoal);
is = conn.openInputStream();
gmbsoal = Image.createImage(is);
try{
this.append(gmbsoal);
}catch(Exception e){}
} catch (IOException ex) {
ex.printStackTrace();
}finally{
if(conn!=null){
try {
conn.close();
System.gc();
} catch (IOException ex) {
ex.printStackTrace();
}
68
}
if(is!=null){
try {
is.close();
System.gc();
} catch (IOException ex) {
ex.printStackTrace();
}}}}
cgjawaban = new ChoiceGroup("Jawaban", ChoiceGroup.EXCLUSIVE);
cgjawaban.append("A. "+jawaban[0], null);
cgjawaban.append("B. "+jawaban[1], null);
cgjawaban.append("C. "+jawaban[2], null);
this.append(cgjawaban);
69
4.3
Pengujian Aplikasi
70
71
2) Login
Menu login terdiri dari login murid dan login pengajar. User umum dapat
melakukan login murid jika telah mendaftarkan dirinya sebagai murid pada menu
daftar yang ada pada menu utama aplikasi. Sedangkan pengajar dapat melakukan
login apabila telah melakukan registrasi melalui website dimana proses
registrasinya dibantu oleh administrator. Tampilan menu login dapat dilihat pada
Gambar 4.9.
72
73
74
75
2) Latihan Soal
Menu latihan soal berisi kumpulan soal mengenai materi pembelajaran berupa alat
musik dan lagu daerah di Indonesia. Tampilan dari menu latihan soal dapat dilihat
pada Gambar 4.14.
76
4) Saran
Menu saran ditujukan bagi murid yang ingin memberikan saran maupun kritik
kepada pengajar. Tampilan menu saran dapat dilihat pada Gambar 4.16.
77
78
Tampilan Awal
Pada tampilan awal, pengguna dapat membaca sekilas informasi tentang Aplikasi MLearning Kesenian Alat Musik dan Lagu Daerah di Indonesia ini. Terdapat menu login
untuk admin dan pengajar yang sudah terdaftar pada database. Pada tampilan awal web
ini terdapat menu-menu yang dapat diakses oleh pengguna umum yaitu menu Download
Aplikasi Ponsel. Tampilan awal situs web dapat dilihat pada Gambar 4.20.
Ketika pengguna login sebagai pengajar, maka akan tampil halaman menu pengajar.
Pengajar dapat melakukan manipulasi data murid dan data soal, melihat nilai, alamat
79
URL dan saran. Menu keluar berfungsi sebagai tombol untuk keluar dari halaman menu
pengajar. Tampilan halaman menu pengajar dapat dilihat pada Gambar 4.21.
80
81
82
83
4) Lihat Saran
Menu Lihat Saran adalah menu yang digunakan pengajar untuk melihat saran dari
murid. Tampilan Menu Lihat Saran dapat dilihat pada Gambar 4.28.
84
Ketika pengguna login sebagai administrator, maka akan tampil halaman menu
administrator. Administrator dapat melakukan manipulasi data pengajar dan melihat
data murid. Menu keluar berfungsi sebagai tombol untuk keluar dari halaman menu
administrator. Tampilan halaman menu administrator dapat dilihat pada Gambar 4.30.
85
86
Java
Program tidak dapat berjalan dengan
baik dikarenakan resolusi layar yang
rendah.
176 x 220 piksel
Samsung GT-S5620
Sistem Operasi
Running Program
Resolusi Layar
Gambar Ponsel
HiTech H71
Sistem Operasi
Running Program
Resolusi Layar
Java
Program dapat berjalan dengan baik.
240 x 400 piksel
Java
Program dapat berjalan dengan baik.
240 320 piksel
87
Gambar Ponsel
Nokia E63
Sistem Operasi
Running Program
Gambar Ponsel
Nokia C 3
Sistem Operasi
Running Program
Resolusi Layar
Gambar Ponsel
88
Pertanyaan
89
Hasil perhitungan jumlah nilai didasarkan pada tabel indikator nilai seperti terlihat pada
tabel 4.10.
Tabel 4.10 Indikator penilaian
Indikator
Nilai
Bagus sekali
Bagus
Cukup
Kurang
Sangat kurang
Keterangan
0% - 25%
Sulit dipahami
26% - 50%
51% - 75%
Mudah dipahami
76% - 100%
90
Hasil yang didapatkan dari hasil pengujian aplikasi berdasarkan daftar indikator nilai
dapat dilihat pada Tabel 4.12.
Tabel 4.12 Hasil pengujian sistem pada siswa kelas 6 SD
Daftar pertanyaan
No
Nama
Total nilai
A
M. Iqbal
23
Yossa S.H.
23
Maharani Ayu D.
24
Zulfika E.
23
Dwi Cahyaning U.
24
T. Danu Projo
22
Nungky Wibowo
22
N. Dian Utami
24
Lola Angela
24
10
M. Naufal H.
22
Total
211
91
211
x 100%
250
= 84,4%
Dari hasil penghitungan, nilai 84,4% dapat menyatakan bahwa sistem yang dibuat sangat
mudah untuk dipahami oleh siswa kelas 6 SD sesuai dengan tujuan yang diharapkan.
PENUTUP
5.1 Kesimpulan
Dari hasil pembuatan Tugas Akhir ini, dapat diambil kesimpulan sebagai berikut :
a.
Aplikasi M-Learning Kesenian Alat Musik dan Lagu Daerah di Indonesia bertujuan
untuk mempermudah pengguna khusunya pelajar SD tingkat akhir dalam
mempelajari jenis alat musik dan lagu daerah yang ada di Indonesia yang dapat di
akses kapan saja dan dimana saja melalui media telepon selular.
b.
Sesuai hasil uji yang dilakukan terhadap kelas 6 SD diketahui bahwa jumlah
kepuasan siswa adalah 84,4% yang berarti sistem pembelajaran ini sangat mudah
dipahami para siswa dalam belajar Kesenian Alat Musik dan Lagu Daerah di
Indonesia.
c.
Aplikasi ini dapat digunakan oleh murid dan pengajar yang telah melakukan proses
registrasi. Sehingga antara murid dan pengajar dapat melakukan interaksi belajar
mengajar melalui media telepon selular, dimana murid dapat mengerjakan latihan
soal yang diberikan oleh pengajar. Sebaliknya, pengajar dapat mengakses nilai dari
murid-muridnya.
d.
Aplikasi ini dapat diakses oleh pengguna dimanapun dan kapanpun dengan syarat
aplikasi m-learning telah terinstal dalam telepon selular yang memiliki fasilitas
GPRS, Java Phone, serta mendukung format mp3 dan 3gp.
e.
Aplikasi M-Learning ini dapat berjalan dengan baik pada handphone Samsung GTS5620 dan HiTech HT71.
92
93
5.2 Saran
Aplikasi M-Learning Kesenian Alat Musik dan Lagu Daerah di Indonesia ke depan
dapat dikembangkan agar:
a. Materi pembelajaran lagu daerah tidak hanya memainkan lagu secara refrain saja,
namun seluruh lirik lagu.
b. Demo video alat musik dapat dibuat lebih menarik dengan ukuran yang lebih
terstrukur dan jelas.
Tampilan_Awal.java
package SeniMusik;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.media.*;
import javax.microedition.media.Manager.*;
addCommand(masuk);
setCommandListener(this);
Menu_Utama.java
package SeniMusik;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.media.*;
import javax.microedition.media.Manager.*;
import javax.microedition.media.control.VolumeControl;
public class Menu_Utama extends List implements CommandListener{
private Command cancel;
private Command Cmd_Login;
private Display display;
private Play run;
private Form form_hasil;
private String akhir,cek;
Ticker tkrMain;
private Player player;
private VolumeControl vc;
a
b
c
d
try {
a =
b =
c =
d =
=
=
=
=
null;
null;
null;
null;
Image.createImage("/daftar.png");
Image.createImage("/login.png");
Image.createImage("/belajar.png");
Image.createImage("/panduan.png");
catch (Exception f) { }
append(" Daftar\n",a);
append(" Login\n",b);
append(" Belajar\n",c);
append(" Panduan\n",d);
setCommandListener(this);
}
void Stop (){
if(player != null)
{
player.close();
}
}
public void commandAction(Command c, Displayable d) {
if (c.getLabel() == "Kembali")
{
run.quitApp();
//Tampilan_Awal tampilan = new Tampilan_Awal(display, run);
//display.setCurrent(tampilan);
}
else {
int selectedIndex = getSelectedIndex();
try {
if (selectedIndex == 0) {
Daftar daftar = new Daftar(display,akhir);
display.setCurrent(daftar);
}
else if (selectedIndex == 1) {
Login login = new Login(display, akhir);
display.setCurrent(login);
}
else if (selectedIndex == 2) {
Belajar belajar = new Belajar(display, akhir);
display.setCurrent(belajar);
}
else if (selectedIndex == 3) {
Panduan panduan = new Panduan(display, akhir);
display.setCurrent(panduan);
}
}
catch (Exception e) {
Alert a = new Alert("Terjadi Kesalahan : ");
a.setString("Gagal me-load pilihan : " + getString(selectedIndex));
a.setTimeout(2000);
display.setCurrent(a);
}
}
Menu_User .java //menu murid setelah daftar dan login sebagai murid
package SeniMusik;
import
import
import
import
import
import
java.io.IOException;
java.io.InputStream;
java.util.Vector;
javax.microedition.io.Connector;
javax.microedition.io.StreamConnection;
javax.microedition.lcdui.*;
addCommand(cancel);
addCommand(Cmd_Login);
Image a = null;
try {
a = Image.createImage("/1.png");
}
catch (Exception f) { }
append(" Data Diri\n",a);
append(" Latihan Soal\n",a);
append(" Nilai\n",a);
append(" Saran\n",a);
setCommandListener(this);
}
public int[] getIdYangAda(){
int[] arr = {};
String result = new String();
StreamConnection conn = null;
InputStream in = null;
StringBuffer data = new StringBuffer();
Vector arrv = new Vector();
try {
conn =
(StreamConnection)Connector.open("http://localhost/LEARNING/ambilidsoal.php");
in = conn.openInputStream();
int ch;
int c = 0;
while ((ch = in.read()) != -1) {
System.out.println((char)ch);
if((char)ch=='|'){
arrv.addElement(data);
data = new StringBuffer();
c++;
}else{
data.append((char)ch);
}
//System.out.println((char)ch);
}
arr = new int[arrv.size()];
for(int i=0;i<arr.length;i++){
try{
arr[i] = Integer.parseInt(arrv.elementAt(i).toString());
}catch(Exception e){}
}
return arr;
}catch (IOException e) {
System.err.println("The connection could not be established.");
}finally{
if(conn!=null){
try {
conn.close();
} catch (IOException ex) {
ex.printStackTrace();
}
System.gc();
}
if(in!=null){
try {
in.close();
System.gc();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
Menu_Pengajar.java
package SeniMusik;
import javax.microedition.lcdui.*;
public class Menu_Pengajar extends List implements CommandListener{
private Command cancel;
private Command Cmd_Login;
private Display display;
private Play run;
private Form form_hasil;
private String akhir,username;
Ticker tkrMain;
public Menu_Pengajar(Display display, String akhir,String username ) {
super ("Menu Pengajar",List.IMPLICIT);
this.display = display;
this.run = run;
this.username=username;
try {
tampilan();
} catch(Exception e) {
e.printStackTrace();
}
}
private javax.microedition.lcdui.Ticker get_tkrMain() {
if (tkrMain == null) {
tkrMain = new javax.microedition.lcdui.Ticker(
"Aplikasi M-Learning Kesenian Alat Musik dan Lagu Daerah di
Indonesia");
}
return tkrMain;
}
private void tampilan() throws Exception {
setTicker(get_tkrMain());
cancel = new Command("Logout", Command.EXIT, 2);
Cmd_Login = new Command("Pilih", Command.OK, 1);
addCommand(cancel);
addCommand(Cmd_Login);
Image a = null;
try {
a = Image.createImage("/2.png");
}
catch (Exception f) { }
append(" Data Murid\n",a);
append(" Data Soal\n",a);
setCommandListener(this);
Daftar.java
package SeniMusik;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import java.io.*;
import java.util.*;
public class Daftar extends Form implements CommandListener {
private
private
private
private
private
private
private
private
private
private
private
private
Display display;
StringItem HasilItem;
TextField id;
TextField name;
TextField user;
TextField pass;
TextField clas;
TextField age;
Form form_hasil;
String result, akhir;
Play run;
Command SignUp,Batal,OK;
this.akhir = akhir;
this.form_hasil = form_hasil;
form_hasil = new Form("<<Selamat Datang>>");
HasilItem = new StringItem("","Silakan login dengan username dan password Anda
yang telah ter-registrasi");
form_hasil.append(HasilItem);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
id = new TextField("", "", 50,TextField.ANY);
id.setLabel("No absen : ");
this.append(id);
name = new TextField("Nama :", "", 50,TextField.ANY|TextField.ANY);
append(name);
user = new TextField("Username :", "", 50,TextField.ANY);
append(user);
pass = new TextField("Password :", "", 50,TextField.ANY|TextField.PASSWORD);
append(pass);
clas = new TextField("Kelas :", "", 50,TextField.ANY);
append(clas);
SignUp=new Command("Daftar", Command.OK,1);
Batal=new Command("Kembali", Command.BACK,2);
addCommand(SignUp);
addCommand(Batal);
setCommandListener(this);
OK= new Command("OK", Command.OK,1);
form_hasil.addCommand(OK);
form_hasil.setCommandListener(this);
}
private String InputData(String id_murid, String nama, String username,
String password, String kelas) {
StreamConnection conn = null;
InputStream in = null;
StringBuffer data = new StringBuffer();
String[] arraynama,arraykelas;
String name="";
String clas="";
arraynama = parse(nama);
for (int i=0; i<arraynama.length; i++){
name=name.concat(arraynama[i]+"%20");
}
arraykelas = parse(kelas);
for (int j=0; j<arraykelas.length; j++){
clas=clas.concat(arraykelas[j]+"%20");
}
try {
conn =
(StreamConnection)Connector.open("http://localhost/LEARNING/daftar.php?&id_murid="+id
_murid+"&nama="+name+"&username="+username+"&password="+password+"&kelas="+clas);
in = conn.openInputStream();
int ch;
while((ch=in.read()) != -1) {
if (ch != '\t') {
data.append((char)ch);
result = data.toString();
}
else{
HasilItem.setText(data.toString());
data = new StringBuffer();
}
}
}
catch(IOException e) {
System.err.println("Koneksi Gagal!");
}
return result;
}
private String [] parse(String original){
Vector nodes = new Vector();
String separator = " ";
System.out.println("Split start------------------------");
int index = original.indexOf(separator);
while (index>=0){
nodes.addElement(original.substring(0,index));
original = original.substring(index+separator.length());
index = original.indexOf(separator);
}
nodes.addElement(original);
String[] result = new String[nodes.size()];
if (nodes.size()>0){
for (int loop=0 ;loop<nodes.size(); loop++){
result[loop]=(String)nodes.elementAt(loop);
System.out.println(result[loop]);
}
}
return result;
}
public void commandAction(Command c, Displayable d) {
if (c==Batal) {
Menu_Utama menu_utama = new Menu_Utama(display, run);
display.setCurrent(menu_utama);
}
else if (c==OK) {
LoginMurid login= new LoginMurid(display, run);
display.setCurrent(login);
}
else if (c==SignUp) {
String akhir = InputData(id.getString(),name.getString(),
user.getString(),pass.getString(),clas.getString());
if(akhir.equals("KURANG")==true){
Play.AlertError("Maaf, ada data yang kosong, Silakan coba
lagi");
}
else if(akhir.equals("SUDAH")==true){
Play.AlertError("Maaf, data Anda sudah ada");
}
else if(akhir.equals("DATA MASUK")==true){
Play.AlertError("Terimakasih, data Anda telah masuk");
display.setCurrent(form_hasil);
}
else
{
Play.AlertError("Koneksi Gagal");
}
}
}
}
LoginMurid.java
package SeniMusik;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import java.io.*;
public class LoginMurid extends Form implements CommandListener {
private Display display;
private TextField username;
private TextField password;
private Command Batal;
private Command Login;
private StringItem HasilItem;
private Play run;
private String result,akhir;
public LoginMurid(Display display, Play run) {
super("Login Murid");
this.display = display;
this.run = run;
this.akhir = akhir;
HasilItem = new StringItem("","");
try {
TampilForm();
}
catch(Exception e) {
e.printStackTrace();
}
}
public void TampilForm() throws Exception {
username = new TextField("Username : ", "", 20, TextField.ANY);
password = new TextField("Password : ", "", 20,
TextField.ANY|TextField.PASSWORD);
Batal = new Command("Kembali", Command.BACK, 2);
Login = new Command("Login", Command.OK, 1);
append(username);
append(password);
addCommand(Batal);
addCommand(Login);
setCommandListener(this);
}
private void clear() {
username.setString("");
password.setString("");
}
private String readData(String user, String pass) {
StreamConnection conn = null;
InputStream in = null;
StringBuffer data = new StringBuffer();
try {
conn =
(StreamConnection)Connector.open("http://localhost/LEARNING/login_murid.php?username=
"+user+"&password="+pass);
//conn =
(StreamConnection)Connector.open("http://digilibpolines.byethost22.com/mlibrary/login
.php?username="+user+"&password="+pass);
in = conn.openInputStream();
int ch;
while((ch=in.read())!=-1) {
if (ch!='\t'){
data.append((char)ch);
result = data.toString();
}else {
HasilItem.setText(data.toString());
data = new StringBuffer();
}
}
catch( IOException e) {
System.err.println("Rusak");
}finally{
if(conn!=null){
try {
conn.close();
System.gc();
} catch (IOException ex) {
ex.printStackTrace();
}
}
if(in!=null){
try {
in.close();
System.gc();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
return result;
}
A_Bali.java
package SeniMusik;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import javax.microedition.media.*;
import javax.microedition.media.control.*;
import java.io.*;
public class A_Bali extends Form implements CommandListener
{
private Display display;
private Play run;
private String result,akhir;
private ImageItem
gambar1,gambar2,gambar3,gambar4,gambar5,gambar6,gambar7,gambar8,gambar9,gambar10,gamb
ar11,gambar12,gambar13,gambar14;
private StringItem
ket1,ket2,ket3,ket4,ket5,ket6,ket7,ket8,ket9,ket10,ket11,ket12,ket13,ket14;
private Command Cmd_Back,OK,lagu1,lagu2,lagu3,kembali,video1;
private StringItem lirik;
private Form f;
Player player;
private ChoiceGroup variabel;
private VideoControl videoControl;
private InputStream is;
Image.createImage("/suling.jpg"),ImageItem.LAYOUT_LEFT,"");
ket10 = new StringItem("Suling-NTT","\nCara memainkan : suling sopran atau
pembawa melodi seperti memainkan suling pada umumnya, dan suling pengiring sementar
bambu peniup dibunyikan, maka bambu pengatur nada digerakkan turun dan naik, yaitu
sesuai dengan nada yang dipilih. Keualui pada sulign bass, bambu peniup yang
digerakkan turun dan naik.\n");
gambar11 = new ImageItem("",
Image.createImage("/heo.jpg"),ImageItem.LAYOUT_LEFT,"");
ket11 = new StringItem("Heo-NTT","\nAlat gesek (heo) terbuat dari kayu dan
penggeseknya terbuat dari ekor kuda yang dirangkai menjadi satu ikatan yang diikat
pada kayu penggesek yang berbentuk seperti busur (dalam istilah masyarakat Dawan ini
terbuat dari usus kuskus yang telah dikeringkan).\n");
gambar12 = new ImageItem("",
Image.createImage("/gambus.jpg"),ImageItem.LAYOUT_LEFT,"");
ket12 = new StringItem("Gambus-Flores Timur","\nAlat musik ini terbuat dari
kayu, kulit hewan, senar, dan paku halus. Alat musik petik ini merupakan instrumen
berdawai ganda yaitu, setiap nada berdawai dua/double senar\n");
gambar13 = new ImageItem("",
Image.createImage("/bijol.jpg"),ImageItem.LAYOUT_LEFT,"");
ket13 = new StringItem("Leko Boko/Bijol-NTT","\nAlat musik ini selalu
berpasangan dengan heo dalam suatu pertunjukan, sehingga dimana ada heo, disitu ada
Leko. Dalam penggabungan ini Leko berperan sebagai pembei harmoni, sedangkan Heo
berperan sebagi pembawa melodi atau kadang-kadang sebagai pengisi (Filter) Nyanyiannyayian pada masyarkat\n");
gambar14 = new ImageItem("",
Image.createImage("/mendut.jpg"),ImageItem.LAYOUT_LEFT,"");
ket14 = new StringItem("Mendut-NTT","\nAlat musik ini berdawai tunggal ini,
terbuat dari tempurung kelapa/labu hutan sebagai wadah resonansi yang ditutupi dengan
kulit kambing yang ditengahnya telah dilubangi.Cara memainkan alat musik ini adalah
dengan dipetik atau dipukul-pukul dengan kayu kecil.\n");
video1 = new Command("Demo ", Command.OK, 1);
Cmd_Back = new Command("Kembali", Command.BACK, 2);
addCommand(Cmd_Back);
addCommand(video1);
append(gambar1);
append(ket1);
append(gambar2);
append(ket2);
append(gambar3);
append(ket3);
append(gambar4);
append(ket4);
append(gambar5);
append(ket5);
append(gambar6);
append(ket6);
append(gambar7);
append(ket7);
append(gambar8);
append(ket8);
append(gambar9);
append(ket9);
append(gambar10);
append(ket10);
append(gambar11);
append(ket11);
append(gambar12);
append(ket12);
append(gambar13);
append(ket13);
append(gambar14);
append(ket14);
append(video1);
append(Cmd_Back);
setCommandListener(this);
}
public void dengar(String a) throws MediaException{
if(player != null)
{
player.close();
}
}
public void commandAction(Command c, Displayable d) {
if (c.getCommandType() == Command.BACK) {
AlatMusik alat = new AlatMusik(display, akhir);
display.setCurrent(alat);
Stop();
}
else if (c==video1){
try{
String a =
"http://localhost/LEARNING/mpg/oke_1_3.3GP";
//dengar(a);
lihat(a);
VolumeControl control = (VolumeControl)
player.getControl("VolumeControl");
if(control != null){
control.setLevel(100);
player.start();
}
// addCommand(tombolDengar);
setCommandListener(this);
}
catch (MediaException mex){
run.AlertError("Error media");
}
catch (Exception ex){
run.AlertError("Error exce");
}
setCommandListener(this);
}
}
private void append(Command video1) {
}
}
}
void Stop (){
if(player != null)
{
player.close();
}
}
TampilDaftar();
}
catch (Exception e)
{
e.printStackTrace();
}
display.setCurrent(f);
}
void Lirik2()
{
Form f = new Form("Lagu Daerah Maluku");
lirik = new StringItem("Waktu Hujan Sore-sore\n","\nWaktu hujan sore-sore
\nkilat sambar pohon kenari \nE jojaro deng mongare mari dansa dan menari \nPukul
tifa toto buang kata balimbing di kereta \nNona dansa dengan tuan jangan sindir nama
beta \nE menari sambil goyang badanee \nMenari lombo pegang lenso manisee \nRasa
ramai jangan pulang duluee");
f.append(lirik);
f.addCommand(kembali);
f.setCommandListener(this);
display.setCurrent(f);
}
void Lirik3()
{
Form f = new Form("Lagu Daerah Maluku");
lirik = new StringItem("Burung Kakatua\n","\nBurung kakaktua\nhinggap di
jendela\nNenek sudah tua\ngiginya tinggal dua\nTekdung tekdung tekdung la la
la\nTekdung tekdung tekdung la la la\nTekdung tekdung tekdung la la la\nBurung
kakaktua");
f.append(lirik);
f.addCommand(kembali);
f.setCommandListener(this);
display.setCurrent(f);
}
void Rasa(){
player.prefetch();
player.start();
}
catch (IOException ioex) {
run.AlertError("Error!!");
}
catch (MediaException mex){
run.AlertError("Error");
}
}
void Kakatua(){
StreamConnection conn = null;
try {
if (c==kembali)
Stop();
else if (c==lagu1)
{
Lirik1();
Rasa();
}
if (c==lagu2)
{
Lirik2();
Waktu();
}
if (c==lagu3)
{
Lirik3();
Kakatua();
}
if (c==kembali)
{
L_Maluku maluku = new L_Maluku(display,akhir);
display.setCurrent(maluku);
}
DataMember.java
package SeniMusik;
import
import
import
import
javax.microedition.lcdui.*;
javax.microedition.io.*;
java.io.*;
java.util.*;
tampilPilihan();
}
catch(Exception e) {
e.printStackTrace();
}
display.setCurrent(menuuser);
}
else if (c == OK){
DataMember data_member = new DataMember(display, akhir,
username);
}
else {
display.setCurrent(data_member);
int selectedIndex = getSelectedIndex();
if (selectedIndex == 0) {
String akhir = Koneksi();
Aid.setText(id);
Anama.setText(nama);
Ausername.setText(username);
Apassword.setText(password);
Akelas.setText(kelas);
//Ausia.setText(usia);
display.setCurrent(form); //menampilkan pada form baru
}
else if (selectedIndex == 1) {
Koneksi();
EditMurid edit = new
EditMurid(display,akhir,id,nama,username,password,kelas);
display.setCurrent(edit);
}
}
}
private String Koneksi() {
StreamConnection conn = null;
InputStream in = null;
StringBuffer data = new StringBuffer();
String[] tmp;
try {
conn =
(StreamConnection)Connector.open("http://localhost/LEARNING/datamurid.php?username="+
username);
//conn =
(StreamConnection)Connector.open("http://mhijaiyah.co.cc/hija/datauser.php?username="
+username);
in = conn.openInputStream();
int ch;
while((ch=in.read())!=-1) {
if (ch!='\t'){
data.append((char)ch);
result = data.toString();
}
}
}
catch(IOException e) {
System.err.println("System doesnt work");
Play.AlertError("System ERROR!\nRestart Program ini!");
}
tmp = parse(result);
this.id = tmp[0];
this.nama = tmp[1];
this.username = tmp[2];
this.password = tmp[3];
this.kelas = tmp[4];
//this.usia = tmp[5];
return result;
}
private String [] parse(String original){
Vector nodes = new Vector();
String separator = "_";
int index = original.indexOf(separator);
while (index>=0){
nodes.addElement(original.substring(0,index));
original = original.substring(index+separator.length());
index = original.indexOf(separator);
}
nodes.addElement(original);
String[] result = new String[nodes.size()];
if (nodes.size()>0){
for (int loop=0 ;loop<nodes.size(); loop++){
result[loop]=(String)nodes.elementAt(loop);
System.out.println(result[loop]);
}
}
return result;
EditMurid.java
package SeniMusik;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import java.io.*;
import java.util.*;
public class EditMurid extends Form implements CommandListener {
private Display display;
private StringItem HasilItem;
private TextField tnama;
private TextField tusername;
private TextField tpassword;
private TextField tkelas;
// private TextField tusia;
private TextField tid;
private Form form;
private Command Batal,Ubah,OK;
private StringItem hasil;
private Play run;
private String result, akhir;
private String username;
private String id,nama,password,kelas;
private String[] data;
public EditMurid(Display display, String akhir, String id, String nama, String
username, String password, String kelas) {
super("Ubah Data Diri");
this.display = display;
this.run = run;
this.akhir = akhir;
this.form = form;
this.id = id;
this.nama = nama;
this.username = username;
this.password = password;
this.kelas = kelas;
//this.usia = usia;
form = new Form("Ubah Data Diri");
hasil = new StringItem("Silahkan login dengan username dan password
yang baru","");
form.append(hasil);
try {
show();
}
catch(Exception e) {
e.printStackTrace();
}
}
public void show() throws Exception {
tid = new TextField("Nomer Absen :
", "", 50,
TextField.UNEDITABLE);
tnama = new TextField("Nama :
", "", 50, TextField.ANY);
tusername = new TextField("Username :
", "", 50, TextField.ANY);
tpassword = new TextField("Password :
", "", 50, TextField.ANY);
tkelas = new TextField("Kelas : ", "", 50, TextField.ANY);
//tusia = new TextField("Usia : ", "", 50, TextField.ANY);
addCommand(Batal);
addCommand(Ubah);
setCommandListener(this);
form.addCommand(OK);
form.setCommandListener(this);
}
return result;
}
public void commandAction(Command c, Displayable d) {
if (c == Batal) {
DataMember data_member = new DataMember(display, akhir,
username);
display.setCurrent(data_member );
}
else if (c == Ubah) {
String akhir =
InputData(tid.getString(),tnama.getString(),tusername.getString(),tpassword.getString
(),tkelas.getString());
//
String akhir =
InputData(nama.getString(),username.getString(),passwd.getString(),alamat.getString()
,email.getString(),tgl.getString(),level);
if (akhir.equals("KURANG") == true){
Play.AlertError("ERROR...!!!\nAda data kosong, silakan
coba lagi");
}
else if (akhir.equals("SUDAH") == true){
Play.AlertError("ERROR...!!!\nNIM Anda Salah atau
Username dan NIM Anda Sudah Ada");
}
else if (akhir.equals("SUKSES") == true){
display.setCurrent(form);
}
else {
Play.AlertError("Koneksi gagal");
}
}
else if (c == OK){
LoginMurid login = new LoginMurid(display, run);
display.setCurrent(login);
}
arraykelas = parse(kelas);
for (int y=0; y<arraykelas.length; y++){
clas=clas.concat(arraykelas[y]+"%20");
}
System.out.println(arraynum.length);
System.out.println(arraynama.length);
System.out.println(arrayuser.length);
System.out.println(arraypass.length);
System.out.println(arraykelas.length);
return result;
FormSoal.java
package SeniMusik;
import
import
import
import
import
java.io.IOException;
java.io.InputStream;
javax.microedition.io.Connector;
javax.microedition.io.StreamConnection;
javax.microedition.lcdui.*;
/**
*
* @author nissa
*/
public class FormSoal extends Form implements CommandListener{
private Display display;
private int idmurid;
private int idsoal;
private String username;
private String akhir;
private String soal = "";
private String urlgambarsoal = "http://localhost/";
private String[] jawaban = new String[]{"","",""};
private String[] urlgambarjawab = null;
private Command lanjut,exit,kembali;
private ChoiceGroup cgjawaban;
/*
}
init();
*/
}
FormSoal(Display display, String akhir, String user, int i, int[] daftarid) {
super("Jawablah soal di bawah ini");
this.display = display;
this.idsoal = i;
this.username = user;
this.akhir = akhir;
this.daftarid = daftarid;
System.out.println("Id soal inisiasi :"+idsoal);
//print daftar id
for(int j=0;j<daftarid.length;j++){
System.out.print(daftarid[j]+" ");
}
System.out.println();
// this.urlgambarsoal = urlgambarsoal;
try {
getSoal();
} catch (IOException ex) {
ex.printStackTrace();
}
init();
}
private void getSoal() throws IOException{
String result = new String();
StreamConnection conn = null;
InputStream in = null;
StringBuffer data = new StringBuffer();
try {
conn =
(StreamConnection)Connector.open("http://localhost/LEARNING/soal.php?id="+daftarid[th
is.idsoal]);
in = conn.openInputStream();
int ch;
int c = 0;
while ((ch = in.read()) != -1) {
if((char)ch=='|'){
if(c==0){
}else if(c==1){
this.soal = new String(data.toString());
}else if(c==2){
this.urlgambarsoal = new String(data.toString());
}else if(c==3){
this.jawaban[0] = new String(data.toString());
}else if(c==4){
this.jawaban[1] = new String(data.toString());
}else if(c==5){
this.jawaban[2] = new String(data.toString());
}else if(c==6){
}
data = new StringBuffer();
c++;
}else{
data.append((char)ch);
}
}
}catch (IOException e) {
System.err.println("The connection could not be
established."+e.toString());
}finally{
if(conn!=null){
try {
conn.close();
System.gc();
}
if(in!=null){
try {
in.close();
System.gc();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
private void init(){
this.append("Pertanyaan");
this.append(this.soal);
System.out.println("Masuk sini "+this.urlgambarsoal+" "+daftarid[idsoal]);
if(this.urlgambarsoal!=null && !this.urlgambarsoal.equals("")){
Image gmbsoal = null;
StreamConnection conn = null;
InputStream is = null;
try {
conn = (StreamConnection) Connector.open(this.urlgambarsoal);
is = conn.openInputStream();
gmbsoal = Image.createImage(is);
try{
this.append(gmbsoal);
}catch(Exception e){}
} catch (IOException ex) {
ex.printStackTrace();
}finally{
if(conn!=null){
try {
conn.close();
System.gc();
} catch (IOException ex) {
ex.printStackTrace();
}
}
if(is!=null){
try {
is.close();
System.gc();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
cgjawaban = new ChoiceGroup("Jawaban", ChoiceGroup.EXCLUSIVE);
cgjawaban.append("A. "+jawaban[0], null);
cgjawaban.append("B. "+jawaban[1], null);
cgjawaban.append("C. "+jawaban[2], null);
this.append(cgjawaban);
//if(idsoal<10){
lanjut = new Command("Lanjut", Command.OK, 1);
kembali = new Command("Kembali", Command.CANCEL, 2);
addCommand(lanjut);
addCommand(kembali);
setCommandListener(this);
}
private boolean kirimJawaban(){
boolean ret = false;
String jawab = "";
if(this.cgjawaban.getSelectedIndex()==0){
jawab = "a";
}else if(this.cgjawaban.getSelectedIndex()==1){
jawab = "b";
}else if(this.cgjawaban.getSelectedIndex()==2){
jawab = "c";
}
StreamConnection conn = null;
InputStream in = null;
StringBuffer data = new StringBuffer();
try {
conn =
(StreamConnection)Connector.open("http://localhost/LEARNING/kirimjawaban1.php?usernam
e="+this.username+"&id_soal="+this.daftarid[idsoal]+"&jawaban="+jawab);
in = conn.openInputStream();
int ch;
int c = 0;
while ((ch = in.read()) != -1) {
data.append((char)ch);
}
if(data.toString().equals("sukses")){
ret = true;
}
}catch (IOException e) {
System.err.println("The connection could not be established.");
}finally{
if(conn!=null){
try {
conn.close();
} catch (IOException ex) {
ex.printStackTrace();
}
System.gc();
}
if(in!=null){
try {
in.close();
System.gc();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
return ret;
}
public void commandAction(Command c, Displayable d) {
if(c.equals(lanjut)){
this.idsoal++;
if(idsoal<daftarid.length){
if(this.kirimJawaban()){
//System.out.println("Id soal:"+
this.daftarid[idsoal]+"["+idsoal+"]");
this.display.setCurrent(new FormSoal(this.display, this.akhir,
this.username, this.idsoal, this.daftarid));
}
}
else{
//selesai
this.display.setCurrent(new Menu_User(display, akhir, username));
}
}
else if(c.equals(kembali)){
if(idsoal>0){
this.idsoal--;
this.display.setCurrent(new FormSoal(this.display, this.akhir,
this.username, this.idsoal, daftarid));
}else{
//kembali ke menu user
this.display.setCurrent(new Menu_User(display, akhir, username));
}
Nilai.java
package SeniMusik;
import
import
import
import
javax.microedition.lcdui.*;
javax.microedition.io.*;
java.io.*;
java.util.*;
try {
tampilPilihan();
}
catch(Exception e) {
e.printStackTrace();
}
display.setCurrent(f);
}
void LihatDaftarMurid(){
StreamConnection conn = null;
InputStream in = null;
StringBuffer data = new StringBuffer();
try {
conn =
(StreamConnection)Connector.open("http://localhost/LEARNING/lihatsoal.php");
in = conn.openInputStream();
int ch;
while ((ch = in.read()) != -1) {
if (ch != '\t') {
data.append((char)ch);
result = data.toString();
}else{
data.append((char)ch);
result = data.toString();
}
}
}catch (IOException e) {
System.err.println("The connection could not be established.");
}
}
public void commandAction(Command c, Displayable d) {
if (c == cmdPilih) {
Menu_User menuuser = new Menu_User(display, akhir, username);
display.setCurrent(menuuser);
}
else if (c==data)
{
LihatDaftarMurid();
Cek(result);
}
/*else {
DataMember data_member = new DataMember(display, akhir,
username);
display.setCurrent(data_member);
}*/
}
//this.username=tmp[2];
System.out.println("result:"+result);
return result;
}
private String [] parse(String original){
Vector nodes = new Vector();
String separator = "_";
int index = original.indexOf(separator);
while (index>=0){
nodes.addElement(original.substring(0,index));
original = original.substring(index+separator.length());
index = original.indexOf(separator);
}
nodes.addElement(original);
String[] result = new String[nodes.size()];
if (nodes.size()>0){
for (int loop=0 ;loop<nodes.size(); loop++){
result[loop]=(String)nodes.elementAt(loop);
System.out.println(result[loop]);
}
}
return result;
}
}
Saran.java
package SeniMusik;
import
import
import
import
javax.microedition.lcdui.*;
javax.microedition.io.*;
java.io.*;
java.util.*;
form.addCommand(OK);
form.setCommandListener(this);
private String InputData (String username,String saran){
StreamConnection conn = null;
InputStream in = null;
StringBuffer data = new StringBuffer();
String[] arraysaran;
String coment="";
arraysaran = parse(saran);
for (int i=0; i<arraysaran.length; i++){
coment=coment.concat(arraysaran[i]+"%20");
}
try {
conn =
(StreamConnection)Connector.open("http://localhost/LEARNING/saran.php?username="+user
name+"&saran="+coment);
in = conn.openInputStream();
int ch;
while((ch=in.read()) != -1) {
if (ch != '\t') {
data.append((char)ch);
result = data.toString();
}
else{
HasilItem.setText(data.toString());
data = new StringBuffer();
}
}
}
catch(IOException e){
System.err.println("Koneksi Gagal!");
}
return result;
}
private String [] parse(String original){
Vector nodes = new Vector();
String separator = " ";
System.out.println("Split start------------------------");
int index = original.indexOf(separator);
while (index>=0){
nodes.addElement(original.substring(0,index));
original = original.substring(index+separator.length());
index = original.indexOf(separator);
}
nodes.addElement(original);
String[] result = new String[nodes.size()];
if (nodes.size()>0){
for (int loop=0 ;loop<nodes.size(); loop++){
result[loop]=(String)nodes.elementAt(loop);
System.out.println(result[loop]);
}
}
return result;
pass=pass.concat(arraypass[z]+"%20");
arrayclas = parse(kelas);
for (int y=0; y<arrayclas.length; y++){
kls=kls.concat(arrayclas[y]+"%20");
}
arrayage = parse(usia);
for (int j=0; j<arrayage.length; j++){
ages=ages.concat(arrayage[j]+"%20");
}
System.out.println(arraynum.length);
System.out.println(arraynama.length);
System.out.println(arrayuser.length);
System.out.println(arraypass.length);
System.out.println(arrayclas.length);
System.out.println(arrayage.length);
return result;
}
TampilDaftar();
}
catch (Exception e)
{
e.printStackTrace();
}
conn =
(StreamConnection)Connector.open("http://localhost/LEARNING/lihatmurid2.php");
in = conn.openInputStream();
int ch;
while ((ch = in.read()) != -1) {
if (ch != '\t') {
data.append((char)ch);
result = data.toString();
}else{
data.append((char)ch);
result = data.toString();
}
}
}catch (IOException e) {
System.err.println("The connection could not be established.");
}
}
void LihatNilai()
{
StreamConnection conn = null;
InputStream in = null;
StringBuffer data = new StringBuffer();
try {
conn =
(StreamConnection)Connector.open("http://localhost/LEARNING/lihatnilai.php?");
in = conn.openInputStream();
int ch;
while ((ch = in.read()) != -1) {
if (ch != '\t') {
data.append((char)ch);
result2 = data.toString();
}else{
data.append((char)ch);
result2 = data.toString();
}
}
}catch (IOException e) {
System.err.println("The connection could not be established.");
}
}
void LihatSaran()
{
StreamConnection conn = null;
InputStream in = null;
StringBuffer data = new StringBuffer();
try {
conn =
(StreamConnection)Connector.open("http://localhost/LEARNING/lihatsaran.php?");
in = conn.openInputStream();
int ch;
while ((ch = in.read()) != -1) {
if (ch != '\t') {
data.append((char)ch);
result3 = data.toString();
}else{
data.append((char)ch);
result3 = data.toString();
}
}
}catch (IOException e) {
System.err.println("The connection could not be established.");
}
}
public void commandAction(Command c, Displayable d)
{
if (c==kembali)
{
Menu_Pengajar menu = new
Menu_Pengajar(display,akhir,username);
display.setCurrent(menu);
}
else if (c==data)
{
LihatDaftarMurid();
Penelusuran(result);
}
if (c==nilai)
{
LihatNilai();
Penelusuran(result2);
}
if (c==saran)
LihatSaran();
Penelusuran(result3);
}
TambahSoal.java
package SeniMusik;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import java.io.*;
import java.util.Vector;
public class TambahSoal extends Form implements CommandListener {
private Display display;
private StringItem HasilItem;
//private TextField user;
private TextField id_soale;
private TextField soale;
private TextField ane,gmb;
private TextField bne;
private TextField cne;
private TextField benere;
private TextField id_peng,tusername;
private Form form_hasil;
private String result, akhir,username;
private Play run;
private Command SignUp,Batal,OK;
String bne="";
String cne="";
arraysoal = parse(soal);
for (int i=0; i<arraysoal.length; i++){
soale=soale.concat(arraysoal[i]+"%20");
}
arraya = parse(a);
for (int j=0; j<arraya.length; j++){
ane=ane.concat(arraya[j]+"%20");
}
arrayb = parse(b);
for (int x=0; x<arrayb.length; x++){
bne=bne.concat(arrayb[x]+"%20");
}
arrayc = parse(c);
for (int x=0; x<arrayc.length; x++){
cne=cne.concat(arrayc[x]+"%20");
}
try {
conn =
(StreamConnection)Connector.open("http://localhost/LEARNING/tambahsoal.php?&username=
"+username+"&id_soal="+id_soal+"&soal="+soale+"&gambar_soal="+gambar_soal+"&a="+ane+"
&b="+bne+"&c="+cne+"&jawaban="+jawaban);
in = conn.openInputStream();
int ch;
while((ch=in.read()) != -1) {
if (ch != '\t') {
data.append((char)ch);
result = data.toString();
}
else{
HasilItem.setText(data.toString());
data = new StringBuffer();
}
}
}
catch(IOException e) {
System.err.println("Koneksi Gagal!");
}
return result;
}
public void commandAction(Command c, Displayable d) {
if (c==Batal) {
Menu_Pengajar menu = new Menu_Pengajar(display, akhir ,username);
display.setCurrent(menu);
}
else if (c==OK) {
Menu_Pengajar menu = new Menu_Pengajar(display, akhir ,username);
display.setCurrent(menu);
}
else if (c==SignUp) {
String akhir =
InputData(tusername.getString(),id_soale.getString(),soale.getString(),gmb.getString(
),
ane.getString(),bne.getString(),cne.getString(),benere.getString());
if(akhir.equals("KURANG")==true){
Play.AlertError("Maaf, ada data yang kosong, Silakan coba
lagi");
}
else if(akhir.equals("SUDAH")==true){
Play.AlertError("Maaf, data Anda sudah ada");
}
else if(akhir.equals("DATA MASUK")==true){
Play.AlertError("Terimakasih, data Anda telah masuk");
}
else
{
display.setCurrent(form_hasil);
Play.AlertError("Koneksi Gagal");
return result;