Kebutuhan Sistem APLIKASI OPERASIONAL CUSTOMER RELATIONSHIP MANAGEMENT LAYANAN AKADEMIK DAN KEUANGAN BERBASIS WEBSITE DAN SMS GATEWAY.

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