BAB III
ANALISA DAN PEMBAHASAN MASALAH
3.1. Analisa
Masalah
Perkembangan Komputerisasi yang cukup pesat menyebabkan masyarakat
kelas menengah banyak menggunakan komputer sebagai salah satu bagian yang
penting untuk menunjang segala pekerjaan serta tugas-tugas mereka. Atau bahkan
untuk masyarakat yang mempunyai profesi sebagai programmer ataupun yang
berhubungan dengan komputer, komputer merupakan salah satu bagian yang
terpenting dalam melaksanakan semua pekerjaan mereka. Semakin banyak tugas
yang mereka lakukan terkadang membuat mereka lupa akan waktu untuk
melaksanakan kegiatan-kagiatan yang lain. Salah satu diantaranya kewajiban mereka
sebagai umat beragama.
Sebagai umat islam, kita harus selalu melaksanakan perintah-Nya dan
menjauhi segala larangan-Nya, yang salah satunya yaitu melaksanakan shalat lima
waktu yang merupakan kewajiban untuk semua umat islam yang telah memenuhi
syarat untuk melaksanakan shalat. Perkembangan komputer tersebut terkadang
menyebabkan mereka lupa mengerjakan kewajiban mereka melaksanakan shalat lima
waktu.
Aplikasi pengingat jadwal Shalat ini merupakan aplikasi yang sengaja dibuat
untuk mengingatkan kepada mereka yang selalu menggunakan komputer sebagai alat
untuk membantu tugas-tugas mereka atau bahkan menggunakan komputer sebagai
bagian terpenting terhadap profesi serta kerja mereka.
3.2. Pembahasan Masalah
Penulis
sengaja
merancang
aplikasi
ini untuk dengan menggunakan Software
Macromedia Flash MX karena aplikasi ini dibuat dengan tampilan semenarik
mungkin dengan menampilkan dua jenis jam yaitu jam analog serta jam digital. Agar
para pengguna dapat lebih jelas melihat waktu atau jadwal shalat tersebut. Serta
menambahkan suara adzan dan jendela pemberitahuan apabila waktu shalat telah tiba.
3.2.1. Rancangan Aplikasi
Aplikasi ini dirancang dengan 10 layer serta beberapa symbol yang terdapat
didalamnya diantaranya yaitu :
1. Layer Actions 1 yang berisi tentang Actionscript untuk tampilan layer serta
symbol-symbolnya.
Actionscriptnya yaitu :
stop();//jangan tampilkan hal form 2
setProperty(_root.mc_desain2, _visible, false); setProperty(_root.cb_kota, _visible, false); setProperty(_root.ck_sound, _visible, false); setProperty(_root.ck_view, _visible, false); setProperty(_root.bt_out, _visible, false); ck_sound.setValue(true);
ck_view.setValue(true);
//form view text
setProperty(_root.mc_warning, _visible, false); setProperty(_root.bt_close, _visible, false); //setProperty(_root.bg_form2, _visible, false);
setProperty(_root.bt_close2,_visible, false); setProperty(_root.mc_about,_visible, false);
loadVariables("jadwal.txt","_root.jadwal"); loadVariables("jadwal.txt","_root.jm");
keterangan Actionscript :
setProperty(_root.mc_warning, _visible, false);
Setting property symbol mc_warning dengan properties Visible dan bernilai
Flase
loadVariables("jadwal.txt","_root.jadwal");
Ambil data dari File jadwal.txt dan memberikannya kepada symbol jadwal
2. Layer Actions 2 yang berisi tentang Actionscript untuk setting waktu hari
serta bulan.
namahari = new Array(); namahari[0]="Ahad"; namahari[1]="Senin"; namahari[2]="Selasa"; namahari[3]="Rabu"; namahari[4]="Kamis"; namahari[5]="Jum'at"; namahari[6]="Sabtu"; namabulan=new Array(); namabulan[0]="januari"; namabulan[1]="Fabruari"; namabulan[2]="Maret"; namabulan[3]="April"; namabulan[4]="Mei"; namabulan[5]="juni"; namabulan[6]="juli"; namabulan[7]="Agustus"; namabulan[8]="September"; namabulan[9]="Oktober"; namabulan[10]="November"; namabulan[11]="Desember";
4. Layer Jam berisi symbol-symbol utama yang terdapat dalam aplikasi. Yaitu
jam analog yang besar untuk menampilkan waktu yang sedang berjalan, jam
digital tempat diletakkan Actionscript, serta tanggal dan kota
Gambar 3.1. Desain jam analog serta jam digital pada aplikasi
dengan Actionscript didalamnya yaitu:
Pada Symbol mc_jam
onClipEvent (enterFrame) { today=new Date(); this.jam._rotation=(today.getHours()%12)*30+today.getMinutes()/ 2; this.menit._rotation=today.getMinutes()*6; this.detik._rotation=today.getSeconds()*6; }
Pada Symbol mc_jm :
onClipEvent (enterFrame) { //Tampilan Jamwaktu=new Date(); hour=waktu.getHours(); minute=waktu.getMinutes(); second=waktu.getSeconds(); jm1=length(hour); if(jm1!=2){ jm2="0"+hour; }else{ jm2=hour; } mt1=length(minute); if(mt1!=2){ mt2="0"+minute; }else{ mt2=minute; } dt1=length(second); if(dt1!=2){ dt2="0"+second; }else{ dt2=second; } this.j=jm2; this.m=mt2; this.s=dt2; a=_root.jadwal.j1; b=_root.jadwal.j2; c=_root.jadwal.j3; d=_root.jadwal.j4; e=_root.jadwal.j5; //trace(a); detikstop=1; //jadwal subuh jma=substring(a,1,2); menita=substring(a,4,2); menitstopa=Number(menita)+3; if(menitstopa>60){ menitstopa=menitstopa-60; jamstopa=Number(jma)+1; }else{ menitstopa=menitstopa; jamstopa=Number(jma); } //jadwal dzuhur jmb=substring(b,1,2); menitb=substring(b,4,2); menitstopb=Number(menitb)+3; if(menitstopb>60){ menitstopb=menitstopb-60; jamstopb=Number(jmb)+1; }else{ menitstopb=menitstopb; jamstopb=Number(jmb); }
//jadwal ashar jmc=substring(c,1,2); menitc=substring(c,4,2); menitstopc=Number(menite)+3; if(menitstopc>60){ menitstopc=menitstopc-60; jamstopc=Number(jmc)+1; }else{ menitstopc=menitstopc; jamstopc=Number(jmc); } //jadwal maghrib jmd=substring(d,1,2); menitd=substring(d,4,2); menitstopd=Number(menitd)+3; if(menitstopd>60){ menitstopd=menitstopd-60; jamstopd=Number(jmd)+1; }else{ menitstopd=menitstopd; jamstopd=Number(jmd); } //jadwal isya jme=substring(e,1,2); menite=substring(e,4,2); menitstope=Number(menite)+3; if(menitstope>60){ menitstope=menitstope-60; jamstope=Number(jme)+1; }else{ menitstope=menitstope; jamstope=Number(jme); }
//deteksi waktu subuh if(j==jma){ if((m==menita)&&(s==0)){ bunyi("Shalat Shubuh"); } } if((j==jamstopa)&&(m==menitstopa)&&(s==detikstop)){ tidak_bunyi(); }
//deteksi waktu zuhur if(j==jmb){ if((m==menitb)&&(s==0)){ bunyi("Shalat Dzuhur"); } } if((j==jamstopb)&&(m==menitstopb)&&(s==detikstop)){ tidak_bunyi(); }
if(j==jmc){ if((m==menitc)&&(s==0)){ bunyi("Shalat Ashar"); } } if((j==jamstopc)&&(m==menitstopc)&&(s==detikstop)){ tidak_bunyi(); }
//deteksi waktu Maghrib if(j==jmd){ if((m==menitd)&&(s==0)){ bunyi("Shalat Maghrib"); } } if((j==jamstopd)&&(m==menitstopd)&&(s==detikstop)){ tidak_bunyi(); }
//deteksi waktu Isya if(j==jme){ if((m==menite)&&(s==0)){ bunyi("Shalat Isya"); } } if((j==jamstope)&&(m==menitstope)&&(s==detikstop)){ tidak_bunyi(); }
//buat function untuk dipanggil
function bunyi(nilai_string){ _root.mc_warning.shalat=nilai_string; if(_root.ck_sound.getValue()){ loadMovieNum("sound1.swf", 1); //trace("bunyi"); }else{ unloadMovieNum(1); //trace("tidak bunyi"); } if(_root.ck_view.getValue()){
setProperty(_root.mc_warning, _visible, true);
setProperty(_root.bt_close, _visible, true);
}else{
setProperty(_root.mc_warning, _visible, false);
setProperty(_root.bt_close, _visible, false);
}
}
function tidak_bunyi(){
unloadMovieNum(1);
setProperty(_root.mc_warning, _visible, false);
setProperty(_root.bt_close, _visible, false); }
Keterangan pada symbol ini, dibuat function untuk menjalankan suara
serta keterangan apabila waktu shalat telah tiba. Serta membuat deteksi
apabila waktu shalat telah tiba.
5. Layer perhatian sebagai tempat dimana informasi muncul apabila waktu
shalat telah tiba.
Gambar 3.2. Informasi apabila waktu shalat telah tiba.
6. Layer mini jam sebagai tempat diletakkannya jam-jam mini untuk
memberitahukan detail waktu-waktu shalat pada hari yang sedang berjalan
dengan tampilan jam analog ataupun jam digital.
Gambar3.3 Jam mini Analog serta jam digitalnya sebagai nilai dari jadwal
shalat yang diambil dari file
Actionscript dari mc_jadwal :
onClipEvent(enterFrame){ waktu=new Date(); // buat variabel m1=waktu.getDate(); pjm=length(String(m1)); if(pjm==1){ m="0"+String(m1); }else{ m=String(m1); } n1=waktu.getMonth()+1; pjn=length(String(n1)); if(pjn==1){ n="0"+String(n1); }else{ n=String(n1); } hariini=m+n;//ambil nilai waktu shalat dari file txt jawal1=eval("a"+hariini); jawal2=eval("b"+hariini); jawal3=eval("c"+hariini); jawal4=eval("d"+hariini); jawal5=eval("e"+hariini); nil_aj=substring(jawal1,1,2); nil_am=substring(jawal1,4,2); nil_bj=substring(jawal2,1,2); nil_bm=substring(jawal2,4,2); nil_cj=substring(jawal3,1,2); nil_cm=substring(jawal3,4,2); nil_dj=substring(jawal4,1,2); nil_dm=substring(jawal4,4,2); nil_ej=substring(jawal5,1,2); nil_em=substring(jawal5,4,2);
//deteksi berdasarkan kota //switch(_root.mc_kota.kota){ switch(_root.cb_kota.getValue()){ case "Jakarta" : j1=jawal1; j2=jawal2; j3=jawal3; j4=jawal4; j5=jawal5; break; case "Ambon" : //+01:25 //Perubahan jadwal //beri nilai ke Variabel
j1=kurang(nil_aj,nil_am,1,25);
j2=kurang(nil_bj,nil_bm,1,25);
j3=kurang(nil_cj,nil_cm,1,25);
j5=kurang(nil_ej,nil_em,1,25); break; } function tambah(pot_J,pot_M,TJ,TM){ nilt_J=Number(pot_J)+TJ; nilt_M=Number(pot_M)+TM; if(nilt_M > 60){
// jam ditambahkan dengan satu nilt_J_str=String(nilt_J + 1);
Pnilt_J_str=length(nilt_J_str);
//deteksi jam apabila satu karakter
if(pnilt_J_str==1){ nilt_Jx="0"+nilt_J_str; }else{ nilt_Jx=nilt_J_str; } //menit dikurangi 60 nilt_M_str=String(nilt_M - 60); pnilt_M_str=length(nilt_M_str);
//deteksi menit apabila satu karakter
if(pnilt_M_str==1){ nilt_Mx="0"+nilt_M_str; }else{ nilt_Mx=nilt_M_str; } }else{ nilt_J_str=String(nilt_J); pnilt_J_str=length(nilt_J_str);
//deteksi jam apabila satu karakter
if(pnilt_J_str==1){ nilt_Jx="0"+nilt_J_str; }else{ nilt_Jx=nilt_J_str; } nilt_M_str=String(nilt_M); pnilt_M_str=length(nilt_M_str);
//deteksi menit apabila satu karakter
if(pnilt_M_str==1){ nilt_Mx="0"+nilt_M_str; }else{ nilt_Mx=nilt_M_str; } } nilt_X=nilt_Jx + ":" + nilt_Mx; return nilt_X; } function kurang(pot_J,pot_M,KJ,KM){ nilk_J=Number(pot_J)-KJ; nilk_M=Number(pot_M)-KM; if(nilk_M < 0){
// jam dikurangkan dengan satu nilk_J_str=String(nilk_J - 1);
Pnilk_J_str=length(nilk_J_str);
if(pnilk_J_str==1){ nilk_Jx="0"+nilk_J_str; }else{ nilk_Jx=nilk_J_str; } //menit dikurangi 60 nilk_M_str=String(nilk_M + 60); pnilk_M_str=length(nilk_M_str);
//deteksi menit apabila satu karakter
if(pnilk_M_str==1){ nilk_Mx="0"+nilk_M_str; }else{ nilk_Mx=nilk_M_str; } }else{ nilk_J_str=String(nilk_J); pnilk_J_str=length(nilk_J_str);
//deteksi jam apabila satu karakter
if(pnilk_J_str==1){ nilk_Jx="0"+nilk_J_str; }else{ nilk_Jx=nilk_J_str; } nilk_M_str=String(nilk_M); pnilk_M_str=length(nilk_M_str);
//deteksi menit apabila satu karakter
if(pnilk_M_str==1){ nilk_Mx="0"+nilk_M_str; }else{ nilk_Mx=nilk_M_str; } } nilk_X=nilk_Jx + ":" + nilk_Mx; return nilk_X; } }
7. Layer Text&Desain sebagai tempat untuk meletakkan latar belakang tampilan
agar menarik dengan ukiran-ukiran serta tempat untuk meletakkan teks-teks
yang ada.
8. Layer button sebagai tempat meletakkan tombol-tombol yang digunakan.
9. Layer setting sebagai tempat untuk kita mengganti letak daerah kota tempat
kita tinggal atau mengatur sistem dari aplikasi. Apakah kita ingin agar suara
adzan dan informasi pada saat waktu telah tiba muncul atau tidak
Gambar3.5 Setting Aplikasi Jadwal Shalat seperti Kota, Bunyi serta tampilan
Informasi
.
Selain itu penulis juga membuat rancangan pembuatan variabel yang diambil
dari file jadwal.txt, untuk menentukan jadwal sehari-hari shalat lima waktu.
Untuk membedakan jadwal sehari-harinya penulis membuatkan variabel dan
diletakkan kedalam file jadwal.txt tersebut. Sebagai contoh yaitu jadwal shalat
pada tanggal 1 bulan Juni yaitu dengan menjadikannya angka seperti
0
1
0
6
Keterangan Tanggal
Dari angka tersebut untuk membedakan kembali jadwal kelima shalat waktu
tersebut yaitu dengan menambahkan identitas angka untuk masing-masing waktu
dan menjadikannya variabel dengan memberikan waktu contohnya untuk waktu
Shubuh yaitu
Sehingga pada file jadwal.txt terdapat data-data nilai jadwal shalat lima waktu
seperti yang tertera pada dibawah ini:
a0106=04:56 &b0106=11:50 &c0106=15:03 &d0106=17:55 &e0106=19:09
3.2.2. Algoritma
Algoritma dari aplikasi ini adalah :
1) Tampilkan tampilan aplikasi.
2) Menampilkan waktu serta tanggal yang diambil dari sistem komputer.
3) Membuat variabel yang diambil dari tanggal untuk mendapatkan data-data
nilai jadwal shalat dari file text serta menampilkannya baik melalui jam digital
ataupun jam analog.
4) Membaca semua setting dari aplikasi.
5) Menampilkan semua semua jadwal yang didapat dari file data serta
menampilkan kota yang diambil dari setting kota .
a0106
= 04:56
0
1
0
6
a
jadi
6) Apabila waktu telah memenuhi waktu shalat yang diambil dari file data, maka
aplikasi akan membaca settingan dari aplikasi untuk menjalankan sistem dari
aplikasi ini.
7) Membaca pilihan menu tombol.
8) Jika pilihan menu setting, maka aplikasi akan memunculkan tampilan dimana
kita bisa mensetting system dari aplikasi ini diantaranya yaitu :
a. Setting kota dari aplikasi, jika setting kota telah ditentukan, baca
logika yang telah dibuat berdasarkan tiap kota tersebut.
b. Setting tampilan keterangan waktu dari aplikasi, jika tampilan
keterangan waktu bernilai true, maka informasi akan muncul ketika
waktu shalat tiba.
c. Setting bunyi dari aplikasi, jika bunyi bernilai true, maka aplikasi akan
menjalankan suara adzan ketika waktu shalat tiba.
9) Jika pilihan About, maka akan muncul jendela keterangan dari aplikasi yang
dibuat.
3.2.3. Flowchart
Gambar 3.6 Flowchart keseluruhan aplikasi
Mulai
Baca Sistem waktu yang ada pada komputer, Baca kota pada mc_kota. Buat variabel dari tanggal pada sistem komputer
Pilih Menu pada aplikasi Menu Setting Tampilkan Keterangan aplikasi File Data Text Tampilkan
Jadwal dari File
Cek Jadwal sama
dengan waktu Ya A1 Tidak Menu About Keluar Menu Keluar B1 Ya Tidak Ya Ya Tidak Tidak A2 B2
Gambar 3.7. Flowchart Apabila waktu shalat telah tiba
A1
Bunyi adzan
Tampilan Informasi
Bunyi adzan dan Tampil informasi waktu shalat Bunyi adzan dan
tidak tampil informasi waktu
shalat Tampilan
Informasi
Tidak bunyi adzan dan Tampil informasi waktu
shalat Tidak bunyi adzan
dan Tidak tampil informasi waktu shalat Ya Tidak Tidak TidakYa Ya A2
Gambar 3.8 Gambar Flowchart menu setting aplikasi
B1
Pilih kota
Aktifkan adzan
Adzan aktif Adzan tidak aktif
Aktifkan info
Info aktif Info tidak aktif
Selesai setting B2 Ya
Tidak
Tidak
3.2.4. Struktur dan Tampilan Program
Struktur Program
Gambar3.8. Struktur Aplikasi
Tampilan
Program
Gambar3.9. Aplikasi ketika dijalankan
Aplikasi Jadwal Shalat
Tentang Program Setting Keluar
Setting Kota
Setting Bunyi Adzan