BAB IV HASIL DAN PEMBAHASAN
Pada bab IV ini akan dibahas hasil pembuatan aplikasi operational CRM berbasis website dan sms gateway.
4.1 Kebutuhan Sistem
Ada beberapa hal dalam pengembangan aplikasi yang harus diperhatikan sebelum akhirnya sampai pada langkah menjalankan program atau aplikasi, antara
lain perangkat keras hardware, perangkat lunak software serta bagaimana akhirnya aplikasi dapat sampai ke tangan user pemakai.
Sistem Penyajian Data Akademik dan Syahriyah Siswa Berbasis Website dan SMS Gateway ini ditulis dengan bahasa PHP dan membutuhkan web server
serta database server dalam proses implementasinya. Adapun web server yang digunakan dalam Tugas Akhir ini adalah XAMPP Server dan database servernya
adalah MYSQL. Alasan pengembangan Tugas Akhir ini menggunakan MYSQL adalah karena tempat studi kasus yaitu MAN Tambakberas juga menggunakan
MYSQL sebagai database servernya.
4.2.Imlementasi Sistem
Seperti yang telah disinggung pada bagian Kebutuhan Sistem di atas, sistem yang dibangun ini terdiri atas dua unsur utama, GUI dan basis data. GUI
direpresentasikan oleh website dan SMS Gateway dipresentasikan oleh handphone, sedangkan data yang disajikan berasal dari database. Karena itu,
uraian pada bagian Implementasi Sistem ini akan dibagi berdasarkan kedua unsur tersebut dengan tujuan agar proses implementasi sistemnya lebih mudah.
53
4.2.1. Berbasis Website
Penggunaan sarana website sebagai antar muka sistem dikarenakan sistem penyajian data ini ditujukan untuk menjadi website dari
www.mantambakberas.com yang merupakan website utama MAN Tambakberas.
Website ini terdiri atas tiga halaman, yaitu Halaman Utama, Halaman Administrator dan Halaman User. Halaman Utama adalah halaman yang pertama
kali diakses oleh pengunjung website. Sedangkan Halaman Administrator adalah halaman bagi administrator website untuk mengelola content website. Halaman
Administrator diakses melalui back-end. Yang terakhir adalah Halaman User yang merupakan inti dari sistem penyajian data ini.
4.2.1.1. Halaman Utama
Halaman Utama memiliki tampilan seperti yang ditunjukkan pada Gambar 4.1 berikut ini.
Gambar 4.1 Halaman Utama
Link pada bagian Menu ditampilkan dengan menggunakan sintaks HTML biasa. Hal ini dikarenakan link yang ada di Halaman Utama ini bersifat statis.
Sedangkan potongan berita yang ditampilkan adalah berita yang diisikan oleh administrator website dan disimpan ke dalam database. Kemudian untuk
menampilkan potongan berita, seperti pada Gambar 4.1 di atas, menggunakan potongan script PHP berikut:
berita_baru= mysql_querySELECT FROM berita ORDER BY id_berita DESC LIMIT 4;
whilet=mysql_fetch_arrayberita_baru{ tgl = tgl_indot[tanggal];
echo span class=dateimg src=imagesclock.png t[hari], tgl - t[jam] WIBspanbr ;
echo span class=judula href=berita-t[id_berita]- t[judul_seo].htmlt[judul]aspanbr ;
if t[gambar]={ echo span class=image
img src=foto_beritasmall_t[gambar] width=110 border=0span;
} Tampilkan hanya sebagian isi berita
isi_berita =htmlentitiesstrip_tagst[isi_berita]; isi = substrisi_berita,0,350;
isi = substrisi_berita,0,strrposisi, ; echo isi ... a href=berita-t[id_berita]-
t[judul_seo].htmlSelengkapnyaa br hr ; }
Gambar 4.2 Tampilan Scrip Halaman Utama Variabel berita_baru digunakan untuk menyimpan berita baru yang
diambil dari database mantaras. Kemudian statement if digunakan untuk menampilkan gambar bila dalam berita terdapat gambar. Kemudian variabel
isi_berita digunakan untuk membuat paragraf pada isi berita dan mengabaikan tag html, kemudian mengambil sebanyak 350 karakter untuk menampilkan
sebagian berita dan potong per spasi kalimat. Berita selengkapnya dapat diakses melalui link yang disediakan pada sintaks a href=....
Jika memilih link menu SITU Akademik, maka akan tampil desain form login seperti Gambar 4.3 dan menggunakan potongan script PHP berikut ini:
Gambar 4.3 Halaman Login
h2Loginh2 img src=imageslogin-welcome.png width=97 height=105
hspace=10 align=left form name=login action=cek_akademik.php method=POST
onSubmit=return validasithis table
trtdUsernametdtd : input type=text name=usernametdtr
trtdPasswordtdtd : input type=password name=passwordtdtr
trtd colspan=2input type=submit value=Logintdtr
table form
Gambar 4.4 Tampilan Scrip Halaman Login Ketika tombol Login ditekan, maka sesuai dengan action form Login di
atas, cek_akademik akan diakses dan inputan user akan dikirim dengan metode POST, kemudian cek_akademik akan akan diperiksa dengan skrip di bawah ini.
function anti_injectiondata{ filter =
mysql_real_escape_stringstripslashesstrip_tagshtmlspecialchar sdata,ENT_QUOTES;
return filter; }
username = anti_injection_POST[username]; pass = anti_injectionmd5_POST[password];
pastikan username dan password adalah berupa huruf atau angka.
if ctype_alnumusername OR ctype_alnumpass{ echo Login ulang dhaaaaaa.;
} else{
login=mysql_querySELECT FROM ortu WHERE username=username AND password=pass AND blokir=N;
ketemu=mysql_num_rowslogin; r=mysql_fetch_arraylogin;
Apabila username dan password ditemukan if ketemu 0{
session_start; _SESSION[namauser] = r[username];
_SESSION[namalengkap] = r[nama_lengkap]; _SESSION[passuser] = r[password];
_SESSION[leveluser] = r[level];
sid_lama = session_id; session_regenerate_id;
sid_baru = session_id; mysql_queryUPDATE ortu SET id_session=sid_baru WHERE
username=username; headerlocation:akademik.php?siswa=home;
} else{
echo link href=..configadminstyle.css rel=stylesheet type=textcss;
echo centerLOGIN GAGAL br Username atau Password Anda tidak benar.br
Atau account Anda sedang diblokir.br; echo a href=index.phpbULANGI LAGIbacenter;
} }
Gambar 4.5 Tampilan Scrip Autentifikasi Login inputan user tadi akan diperiksa dulu, apakah berupa huruf atau angka,
inputan disaring lagi dengan fungsi anti_injeksi yang penulis tambah. Fungsi ini mengandung fungsi-fungsi bawaan PHP, seperti mysql_real_escape_string,
stripslashes, strip_tags dan htmlspecialchars yang berguna untuk menyaring setiap karakter atau tag membahayakan yang terkandung dalam inputan user.
Setelah lolos dari filter, barulah username yang dimasukkan oleh user tadi diperiksa apakah ada atau tidak di dalam database. Proses pemeriksaan ini
sekaligus mengambil semua data user dari database, yang apabila proses login ini berhasil, semua data tersebut akan langsung didaftarkan pada session untuk
memberikan hak akses pada user. Selain username dan password, proses login juga memeriksa status user di blokir atau tidak, sebelum memberikan hak akses.
Untuk lebih jelasnya dapat dilihat pada potongan script berikut ini: Statement header location:akademik.php?siswa=home; di dalam
potongan script di atas menandakan apabila user berhasil melakukan proses Login, maka dia akan diarahkan pada halaman lain yang merupakan Halaman
User.
4.2.1.2. Halaman User
Halaman User adalah halaman bagi user yang telah terdaftar dan telah berhasil melakukan proses Login. Halaman User ini digunakan oleh 2 kelompok
user, yaitu Wali murid dan Internal. Perbedaan bagi kedua kelompok user itu ada pada menu yang ditampilkan. Untuk lebih jelas, perhatikan Gambar 4.6 dan
Gambar 4.7 berikut ini.
Gambar 4.6 Halaman User Wali Murid
Gambar 4.7 Halaman User Internal
Pada Halaman User Wali Murid, menu yang ditampilkan hanyalah menu- menu standar untuk mendapatkan data akademik dan syahriyah, sedangkan pada
Halaman User Internal terdapat menu menambah User dan meng-update modul. Pengadaan perbedaan menu di antara kedua kelompok user yang
mengakses Halaman User ini hanya menggunakan statement WHERE pada query SELECT yang digunakan pada potongan script berikut.
if _SESSION[leveluser]==admin{ sql=mysql_queryselect from modul_ortu order by urutan;
} else{
sql=mysql_queryselect from modul_ortu where status=guest and aktif=Y order by urutan;
}
Gambar 4.8 Tampilan Scrip Halaman User Potongan script di atas menggunakan statement IF untuk membedakan
level user, apakah dia user admin atau bukan. Jika admin, maka semua menu ditampilkan. Jika tidak, maka hanya menu yang status aksesnya guestWali
Murid saja yang ditampilkan. Penggunaan statement IF seperti pada potongan script di atas digunakan
hampir pada setiap modul yang ada. Dengan cara ini, penulis hanya perlu membuat satu Halaman User dengan menu yang dinamis bagi setiap kelompok
user. Seperti pada fasilitas melihat Aktifitas. Jika user adalah Wali Muird, maka data aktifitas akan langsung ditampilkan sesuai dengan username yang terdaftar
pada session. Namun jika ternyata bukan Wali Muird, maka user harus mengisi NIS dari data yang ingin dicari terlebih dahulu.
Menu Manajemen User adalah menu yang diperuntukkan bagi user Wali Murid untuk merubah informasi profil mereka. Informasi yang dimaksud
melingkupi password, email serta notlphp, untuk username dan nama_lengkap
tidak bisa dirubah, untuk User Internal menu Menejemen User merupakan menu untuk menambah user baru seperti pada Gambar 4.9 berikut ini.
Gambar 4.9 Menu ManajamenUser Wali Murid Sama seperti form Login pada Halaman Utama, form Manajemen User ini
sangat terbuka dengan kemungkinan injeksi oleh user yang tidak bertanggung jawab. Karena itu semua fungsi filter inputan yang diimplementasikan pada form
Login juga dilakukan di sini. Hanya saja bedanya pada form Manajemen User ini menu filter ditambah lagi dengan pencocokan format inputan dengan format field
pada database, dengan tujuan agar inputan user dapat disimpan dengan sukses ke dalam database.
Untuk mendukung kerapian file yang digunakan, terutama untuk Halaman User ini, maka penulis mengembangkan sistem sederhana yang memanfaatkan
potongan script di bawah ini:
if _GET[siswa]==mainmenu{ if _SESSION[leveluser]==admin{
include modulmod_mainmenumainmenu.php; }
}
Gambar 4.10 Tampilan Scrip Pengaturan Level User Dengan statement GET yang ada di atas, maka setiap menu yang dipilih
oleh user akan dibedakan berdasarkan module-nya. Jika module-nya sudah
didapatkan, maka akan dicocokkan dengan daftar menu yang ada di dalam database. Kemudian setelah ketemu yang cocok dengan module tersebut, maka
statement include akan dieksekusi. Hal ini berarti setiap script menu terletak di dalam directory “modulmod_mainmenumainmenu.php” Dengan cara itu maka
setiap script tertata rapi di dalam folder modul dan terpisah-pisah berdasarkan namanya. Hal ini juga memudahkan apabila ada penambahan menu di kemudian
hari, karena hanya perlu menambahkan data module-nya di database menu_user dan meletakkan script menunya pada folder menu.
Penulis menggunakan cara seperti di atas pada Halaman Administrator juga. Dengan begitu, jadilah sebuah manajemen konten yang dinamis. Hal ini
sangat menguntungkan untuk pengembangan selanjutnya.
4.2.1.3. Halaman Administrator
Halaman Administrator website diakses melalui back-end begitu juga yang SMS Akademik seperti yang terlihat pada Gambar 4.11 berikut.
Gambar 4.11 Back-end Administrator Script yang digunakan untuk membuat form Login di atas dan untuk
memeriksa dan menyaring inputan administrator sama persis dengan yang telah diimplementasikan pada Halaman User sebelumnya. Jika administrator berhasil
melewati proses Login ini, maka dia akan diarahkan pada Halaman Administrator yang berfungsi sebagai sarana pengelolaan konten website maupun Administrator
SMS Akademik sebagai sarana mengelola report, terutama konten yang disajikan pada user yang terigistrasi. Hal itu ditunjukkan dengan menu-menu yang tersedia
bagi administrator, seperti yang terlihat pada Gambar 4.12 dan Gambar 4.13 berikut ini.
Gambar 4.12 Halaman Admin Website
Gambar 4.13 Halaman admin sms akademik Sama seperti Halaman User, pada Halaman Administrator ini juga terdapat
lebih dari satu kelompok user yang bisa mengaksesnya, yaitu Administartor dan Editor. Administrator di sini adalah super administrator yang berhak penuh atas
segala pengaturan konten website. Sedangkan Editor hanya dapat membalas isi Kotak Saran dan menambahkan berita yang ditampilkan di Halaman Utama. Cara
membedakan menu kedua kelompok user itu sama dengan potongan script yang digunakan pada Halaman User di atas.
Pada Halaman Administrator ini, administrator diberikan keleluasaan dalam navigasi halaman. Di bagian kiri disediakan menu-menu untuk mengatur
konten website, mulai dari Inbox untuk membalas kritik dan saran dari user, Artikel untuk menambahkan berita, Manajemen User untuk mengelola user
administrator, Manajemen Modul untuk mengelola menu di Halaman Administrator ini sendiri.
Begitu juga untuk Administrator SMS Akademik hampir sama dengan Administrator Website di bagian sebelah kiri disediakan menu-menu mengatur
report sms akademik, mulai dari Inbox untuk melihat report SMS masuk, SendItems untuk melihat report balas SMS dan info untuk melihat versi gammu
yang digunakan.
4.2.2. Berbasis SMS Gateway
Sms Akademik Ini merupakan inti dari sistem penyajian data untuk user wali murid dengan mengirimkan format tertentu untuk memperolh informasi
tentang skor absensi, nilai dan syahriyah.
4.2.2.1. Halaman SMS Akademik
SMS Akdemik dibagi lagi menjadi 3 bagian, format kirim nilai, format kirim syahriyah dan terima skor absensi harian. Format kirim nilai sebagaimana
Gambar 4.14 berikut.
Gambar 4.14 Desain Format kirim nilai Jika ingin info tentang tentang status syahriyah, maka akan muncul
tampilan hampir sama dengan pada Gambar 4.14 hanya format sms yang berbeda.
Jika wali murid menerima sms skor absensi harian, maka akan tampil halaman seperti pada Gambar 4.15 berikut ini.
Gambar 4.15 Desain Format terima sms skor absensi harian
4.2.3. Database
Seperti yang telah dibahas di Bab III, database yang digunakan untuk kepentingan penyajian data akademik dan syahriyah siswa, terdiri dari database
asli untuk mendukung performa website dan sms gateway, terutama dalam hal query.
4.2.3.1. Berbasis Website
Layanan berbasis website ini menampilkan semua informasi kegiatan
akademi dan syahriyah di sekolah secara online melalui media internet. Layanan ini menampilkan data-data yang bersifat dinamis seperti absensi dan nilai ujian
yang dapat membantu untuk melakukan evaluasi.
4.2.3.1.1. Menu Identitas
Menu Identitas ini mengakses table siswa dengan menggunakn view yang ada pada database asli. Untuk menyajikan data Identitas pada user, baik user Wali
murid maupun Internal, digunakan query berikut:
tampil=mysql_querySELECT nis,nama, alamat, tlp, tempat_lahir, date_formattanggal_lahir,d-m-Y as tanggal_lahir,
ayah,pekerjaan, telepon FROM identitas_siswa WHERE nis=nis;
Gambar 4.16 Tampilan Scrip Pengaturan Level User nis adalah NIS yang ingin ditampilkan datanya. Tampilannya akan
seperti pada Gambar 4.17 berikut.
Gambar 4.17 Menu Identitas
4.2.3.1.2. Menu Asrama
Menu Asrama ini mengakses table Asrama yang ada pada database asli. Dalam hal untuk mempermudah join table maka penulis menggunakan view untuk
menyajikan data Asrama pada user, baik user Wali murid maupun Internal, digunakan query berikut:
tampil=mysql_querySELECT nama, asrama, telepon, pengasuh FROM asrama_siswa WHERE nis=nis;;
Gambar 4.18 Tampilan Scrip Menu Asrama
nis adalah NIS yang ingin ditampilkan datanya. Tampilannya akan seperti pada Gambar 4.19 berikut.
Gambar 4.19 Menu Asrama
4.2.3.1.3. Menu Aktifitas
Menu Aktifitas ini mengakses table Aktifitas dan Mengikuti yang ada pada database asli. Dalam hal untuk mempermudah join table maka penulis
menggunakan view untuk menyajikan data Aktifitas pada user, baik user Wali murid maupun Internal, digunakan query berikut:
tampil=mysql_querySELECT from aktifitas_siswa WHERE nis=nis;
Gambar 4.20 Tampilan Scrip Menu Aktifitas nis adalah NIS yang ingin ditampilkan datanya. Tampilannya akan
seperti pada Gambar 4.21 berikut.
Gambar 4.21 Menu Aktifitas
4.2.3.1.4. Menu Skor Absensi
Menu Skor Absensi ini mengakses table absensi, skor dan detail_skor yang ada pada database asli. Dalam hal untuk mempermudah join table maka
penulis menggunakan view untuk menyajikan data Skor Absensi pada user Wali murid, digunakan query berikut:
mysql_querySELECT pelanggaran, date_formattanggal,d-m-Y as tanggal, skor FROM skor_siswa WHERE nis=nis AND
bulan=_POST[bulan] order by tanggal DESC ;
Gambar 4.22 Tampilan Scrip Menu Skor Absensi Statement WHERE bulan=’_POST[bulan]’ menandakan bahwa laporan
skor absensi berdasarkan bulan apa yang sedang ingin ditampilkan dan statement DESC menandakan laporan yang baru ditampilkan paling atas. Penyajiaanya akan
tampak seperti Gambar 4.23 berikut ini.
Gambar 4.23 Menu Skor Absensi Wali Murid Menu skor absensi untuk user internal menggunakan query sebagai
berikut: SELECT COUNTskor100SELECT COUNTnis FROM siswa AS percent,
skor_tahun FROM skor_siswa Dan menggunakan potongan skrip grafik sebagai berikuti:
graph = new Graph370,220,auto; graph-SetScaletextlin;
graph-img-SetMargin50,50,40,40; graph-yaxis-SetTitleMargin25;
graph-yaxis-scale-SetGrace10; graph-xaxis-SetTickSideSIDE_DOWN;
graph-yaxis-SetTickSideSIDE_LEFT; bplot = new BarPlotdatay;
lineplot=new LinePlotdatay; bplot-SetCSIMTargetstarg,alts;
bplot-SetFillColorred; bplot-SetShadow;
bplot-value-SetFormat2.2f,70; bplot-value-SetFontFF_ARIAL,FS_NORMAL,9;
bplot-value-SetColorblack; bplot-value-Show;
graph-Addbplot; graph-xaxis-SetTickLabelsdatax;
graph-title-SetGrafik Skor Absensi Berdasarkan Tahun Ajaran; graph-xaxis-title-SetTahun Ajaran;
graph-yaxis-title-SetPercent; graph-title-SetFontFF_FONT1,FS_BOLD;
graph-yaxis-title-SetFontFF_FONT1,FS_BOLD; graph-xaxis-title-SetFontFF_FONT1,FS_BOLD;
graph-StrokeCSIMskor_tahun.php;
Gambar 4.24 Tampilan Scrip grafik Skor Absensi
Gambar 4.25 Menu Skor Absensi Internal
4.2.3.1.5. Menu Nilai
Menu Skor Absensi ini mengakses table matapelajaran, history_mp dan nilai yang ada pada database asli. Dalam hal untuk mempermudah join table maka
penulis menggunakan view untuk menyajikan data Nilai pada user, baik user Wali murid maupun Internal, digunakan query berikut:
tampil=mysql_querySELECT matapelajaran, uh1, uh2, uts, tugas, uas, nilai FROM nilai_siswa WHERE nis=nis AND
semester=._POST[semester]. ; mysql_querySELECT nilai FROM rata_siswa WHERE nis=nis AND
semester=_POST[semester];
Gambar 4.26 Tampilan Scrip Menu Nilai Wali Murid Statement WHERE semester=’ _POST [semester]’ menandakan bahwa
laporan nilai yang ingin ditampilkan berdasarkan semester Genap atau Ganjil. Sedangkan untuk Rata-Rata Nilai menggunakan query yang akan dipaparkan
berikut ini: Tampilan menu Nilai dan Rata-Rata Nilai akan seperti yang ditunjukkan
pada gambar 4.27 di bawah ini.
Gambar 4.27 Menu Nilai Wali Murid
Menu Nilai untuk user internal menggunakan query sebagai berikut dan menggunakan potongan skrip grafik seperti pada skor absensi:
SELECT AVGnilaiAS rata, semester, history_kelas FROM rata_siswa
Gambar 4.28 Tampilan Scrip Menu Nilai Internal
Gambar 4.29 Menu Nilai Internal
4.2.3.1.6. Menu Syahriyah
Menu ini mengakses tabel jenis dan transaksi yang ada pada database Syahriyah. Dalam hal untuk mempermudah join table maka penulis menggunakan
view untuk menyajikan data Nilai pada user, baik user Wali Murid maupun Internal, seperti pada query berikut ini:
mysql_querySELECT jenis, rp, total, date_formattanggal,d-m- Y as tanggal, keterangan FROM bayar_siswa WHERE nis=nis
AND bln=_POST[bln] order by tanggal DESC ;
Gambar 4.30 Tampilan Scrip Menu Syahriyah Statement WHERE bln=’_POST[bln]’ menandakan bahwa laporan
pembayaran Syahriyah di tampilkan berdasarkan bulan selama 1 tahun. Penyajiaanya akan tampak seperti Gambar 4.16 berikut ini.
Gambar 4.31 Menu Syahriyah Wali Murid Menu Nilai untuk user internal menggunakan query sebagai berikut dan
menggunakan potongan skrip grafik seperti pada skor absensi: SELECT COUNTjenis100SELECT COUNTnis FROM siswa AS jumlah,
tahun_transaksi FROM bayar_siswa
4.32 Tampilan Scrip Menu Syahriyah Internal
Gambar 4.33 Menu Syahriyah Internal
4.2.3.2. Berbasis SMS Gateway
fungsi layanan informasi data akademik dan syahriyah yang di sampaikan bentuk SMS berdasarkan permintaan, maupun sebagai gateway. Penyampaian
informasi dalam bentuk SMS menjamin tersampaikannya data ke wali murid
secara tepat, akurat, online, up to date. Media SMS Gateway ini digunakan oleh 2 kelompok user, yaitu Wali murid dan Internal. Untuk wali murid menerima
permintaan berdasarkan format sms yang telah ditentukan dan untuk internal mengirimkan informasi absensi harian.
4.2.3.2.1. Terima SMS
Layanan ini menerima permintaanrequest berdasarkan format sms tertentu untuk menyajikan data nilai, skor absensi dan syahriyah pada user, seperti
pada potongan skrip berikut ini.
meta http-equiv=refresh content=5; url=?php _SERVER[PHP_SELF]; ?
Gambar 4.34 Tampilan Scrip Auto Refresh Statement
_SERVER[’PHP_SELF’] merupakan script PHP untuk auto refresh yang secara otomatis berjalan pada selang interval waktu tertentu penulis
membatasi selama 5 detik. Proses auto refresh ini bertujuan untuk mengecek ada tidaknya SMS baru yang masuk sekaligus memprosesnya. Kemudian SMS yang
masuk diproses dengan potongan skrip di bawah ini.
query = SELECT FROM inbox WHERE Processed = false; hasil = mysql_queryquery;
while data = mysql_fetch_arrayhasil {
id = data[ID]; noPengirim = data[SenderNumber];
msg = strtoupperdata[TextDecoded]; pecah = explode , msg;
MELIHAT NILAI PER-MATAPELAJARAN if pecah[0] == UH1 {
mp =
pecah[1]; nis
= pecah[2];
database =dbakademik;
mysql_select_dbdatabase or die Database database tidak ditemukan;
hasil2=mysql_querySELECT mp, uh1 FROM nilai_siswa WHERE mp=mp AND nis=nis;
jumlahrow=mysql_num_rowshasil2;
if jumlahrow == 1 {
whilerow=mysql_fetch_arrayhasil2 reply
= reply.
row[mp]:row[uh1] ;
} else
{ reply = Nilai tidak ditemukan;
} }
else reply = Maaf perintah salah;
Gambar 4.35 Tampilan Scrip Format Sms
Statement ’false’ adalah setiap kali SMS yang diterima oleh Gammu, maka SMS tersebut akan masuk ke dalam tabel ‘INBOX‘ yang ada di database
smsd. Begitu ada SMS masuk, maka secara default nilai pada field Processed ini
adalah ‘false‘. Bila ditemukan record SMS yang bernilai ‘false’ ini maka akan di
proses. Variabel pecah untuk memecah pesan berdasarkan karakter spasi
kemudian memprosesnya dan memastikan bahwa keyword dari perintah SMS yang dikirimkan adalah sesuai dengan format. Untuk memastikan bahwa keyword
dari perintah itu benar, maka membuat parsing terlebih dahulu. Jika format perintah benar maka SMS akan diproses untuk mengirimkan nilainya. Namun jika
tidak sesuai, maka tetap diproses dengan mengirimkan pesan kesalahan dalam bentuk SMS pula.
Gambar 4.36 Halaman admin sms akademik inbox
4.2.3.2.2. Balas SMS
Layanan ini merespon permintaanrequest berdasarkan format sms tertentu untuk menyajikan data nilai, skor absensi dan syahriyah pada user wali
murid, seperti pada potongan skrip berikut ini.
jmlSMS = ceilstrlenreply90; pecah = str_splitreply, 90;
query = SHOW TABLE STATUS LIKE outbox; hasil = mysql_queryquery;
data = mysql_fetch_arrayhasil; newID = data[Auto_increment];
for i=1; i=jmlSMS; i++ {
membuat UDH untuk setiap pecahan, sesuai urutannya udh = 050003A7.sprintf02s,
jmlSMS.sprintf02s, i; msg = pecah[i-1];
if i == 1 {
query = INSERT INTO outbox DestinationNumber,TextDecoded
VALUES noPengirim,
msg; }
else {
query = INSERT INTO outbox DestinationNumber, TextDecoded
VALUES noPengirim,
msg; }
jalankan query mysql_queryquery;
}
query7 = UPDATE inbox SET Processed = true WHERE ID = id;
hasil7 = mysql_queryquery7; }
Gambar 4.37 Tampilan Scrip Send Sms
Variabel jmlSMS memecah text yang akan kita kirimkan dengan di split
dahulu menjadi beberapa pecahan string dengan panjang maks 90 untuk setiap pecahannya
dan memproses untuk mendapatkan ID record yang akan disisipkan ke tabel OUTBOX.
Statement for akan terus memproses pengiriman sms jika sms yang dikirim kurang dari panjang sms, kemudian penyimpanan ke tabel mysql untuk setiap
pecahan dan membuat UDH untuk setiap pecahan, sesuai urutannya dan meng- update field Processed menjadi true.
Gambar 4.38 Halaman User admin sms akademik pesan terkirim
4.2.3.2.3. Kirim Absensi Harian
Layanan ini
merespon inputan absensi harian yang di inputkan oleh admin
yang bertugas, untuk menyajikan data skor absensi harian, seperti pada potongan skrip berikut ini.
tglNow = dated; blnNow = datem;
thnNow = dateY;
now = dateY-m-d;
tgl = dated-m-Y;
time = time ; query = SELECT id_skor, nis, nama, telepon_ayah, pelanggaran
FROM skor_siswa WHERE tanggal=now AND STATUS=false; hasil
= mysql_queryquery;
while data = mysql_fetch_arrayhasil {
id =
data[id_skor]; nis
= data[nis];
nama =
data[nama]; noHp
= data[telepon_ayah];
msg =
data[pelanggaran]; database =smsd;
mysql_select_dbdatabase or die Database tidak ditemukan; simpan=INSERT INTO push nis, nama, noHp, pesan
Valuesnis,nama,noHp,msg; simSms=mysql_querysimpan;
if simSms {
kirimpesan = Anak BpkIbu dengan Nama .nama.,.tgl. .msg..;
Gambar 4.39 Tampilan Scrip Send Sms Harian
Statement now dan ‘false’ setiap kali ada inputan baru dari admin masuk
ke table skor yang ada didatabase dbakademik. Begitu ada inputan baru, maka secara default pada field status ini adalah false. Bila ditemukan record data dengan
nilai false ini maka akan diproses. Variable simpan ini merespon inputan data yang di kirimkan dari table skor dari databse dbakademik ke database smsd ke
table push. Variable kirimpesan format sms yang akan dikirimkan ke Wali Murid. Seperti tampak pada gambar 4.39.
BAB V PENGUJIAN SISTEM
Pada bab ini akan dijelaskan tentang ujicoba dan evaluasi program yang menerangkan bagaimana jalannya program dengan kemungkinan langkah-langkah
yang dilakukan admin maupun wali murid. Proses-proses yang ada pada aplikasi CRM yang berbasis web dan sms gateway ini akan dijelaskan secara detail.
Pada pembuatan Sistem CRM untuk membatu wali murid dan kepala sekolah memonitoring kegiatan siswa di sekolah. ini dilakukan ujicoba pada
masing-masing menu dan command yang ada. Ujicoba ini dilakukan untuk mengetahui bagaimana proses jalannya sistem CRM dalam menangani
permasalahan dengan diagnosa yang diberikan berdasarkan analisa terhadap permasalahan tersebut. Proses ujicoba pada masing-masing menu tersebut adalah:
5.1. Halaman Interface