• Tidak ada hasil yang ditemukan

Sistem Mengelola Data Pemenang 4.3.6.1 Halaman Data Pemenang Pada Sistem

Dalam dokumen BAB IV IMPLEMENTASI DAN ANALISA (Halaman 36-41)

Setelah pendengar mengirikan SMS jawaban pendengar yang berupa kuis, Admin/ PIC (Person In Charge) mengatur pemenang (jika setting kuis pemenang statusnya ‘on’ ) dan data pemenang akan tersimpan di dalam database. Tampilan data dari sisi admin dapat dilihat pada gambar 4.58.

Gambar 4.58 Halaman Data Pemenang Pada Sistem

Secara ajax, SMS yang masuk akan diload oleh sistem sehingga sistem menampilkan jawaban pendengar yang status pilihan jawabannya “benar”, sehingga tidak semua pilihan jawaban masuk kedalam daftar ini. Berikut kode ajax yang digunakan untuk mengecek SMS masuk yang baru:

function GetTime() { c = new Date(); zday = c.getDay(); zmonth = c.getMonth(); zdate = c.getDate(); zyear = c.getYear(); zhour = c.getHours(); zmin = c.getMinutes(); zsec = c.getSeconds();

if (zyear < 1000) zyear = zyear + 1900; if (zhour == 0) { zp = " AM"; zhour = 12; } else if (zhour <= 11) { zp = " AM"; }

commit to user else if (zhour == 12) { zp = " PM"; }

// else if (zhour >= 13) { zp = " PM"; zhour -= 12; } if (zmin <= 9) { zmin = "0" + zmin; }

$.ajax({

type: "POST",

url: "<?php print base_url("pemenang/loadNewSMS")?>", data: {latest:LatestID}

}).done(function(response) {

var response = JSON.parse(response); LatestID = response.kode_hasil_polling

var htmlAdd = "<li class='point-sms'><h3><span class='label label-success'>"+(response.no_hp).substring(0, 6)+"xxx

(<em>"+response.nama+"</em>)</span></h3> <h3><span class='glyphicon glyphicon-comment'></span></h3> "+response.kode_acara+"

"+response.singkatan_pilihan+" ("+response.isi_pilihan+") <small><span class='glyphicon glyphicon-time'></span>

"+response.tgl_sms_diterima+"</small></li>";

$("#sms-masuk").prepend(htmlAdd); });

document.getElementById('timebox').innerHTML = zhour + ":" + zmin + ":" + zsec;

setTimeout("GetTime()", 1000); }

Secara berkala (tiap satuan detik) program akan mengecek URL yang menghasilkan data dari database seperti berikut ini:

public function loadNewSMS(){

$data = $this->pemenangmodel->LatestSMS(@$_POST['latest']); if(is_array($data)){

print_r(json_encode($data[0])); header("HTTP/1.1 200 OK"); }else{

header("HTTP/1.1 500 Internal Server Error"); }

exit; }

Dimana model akan mengambil data dari database dengan kode berikut: function LatestSMS($limit)

{

$query = " SELECT *

FROM tb_jawaban_pendengar,tb_pendengar, tb_pilihan_jawaban,tb_jadwal_siaran WHERE tb_jawaban_pendengar.no_hp = tb_pendengar.no_hp

AND tb_jawaban_pendengar.kode_pilihan_jawaban =

commit to user

AND tb_pilihan_jawaban.kode_pertanyaan =

tb_jadwal_siaran.kode_pertanyaan

AND status_pilihan = 'benar'

AND kode_hasil_polling > $limit LIMIT 0,1 "; $data = $this->db->query($query); if($data->num_rows()>0){ return $data->result(); }else{ return false; } }

Secara periodik, sistem mendapatkan list pesan terbaru dengan status “benar”, sehingga dapat menentukan siapa pemenangnya melalui tombol random seperti pada gambar 4.59.

Gambar 4.59 List Pesan Data pemenang

Ketika dilakukan random, maka akan terdapat sms masuk dengan hasil random seperti pada gambar 4.60.

Gambar 4.60 Halaman Tampilan Pemenang

Dengan menggunakan kode ajax untuk memproses URL sebagai berikut: function loadPemenang(){

commit to user

if(confirm("Yakin untuk menentukan pemenang sekarang? Pemenang hanya dianjurkan 1 kali pengumuman!")){

$("#sms-masuk").hide(); $("#pemenang").show(100); $.ajax({

type: "POST",

url: "<?php print base_url("pemenang/pilihPemenangKuis")?>" }).done(function(response) {

var response = JSON.parse(response);

var htmlAdd = "<div class='text-center alert alert-info'>"; htmlAdd = htmlAdd+"<h3><span class='label

label-success'>"+(response.no_hp).substring(0, 9)+"xxx

(<em>"+response.nama+"</em>)</span></h3>";

htmlAdd = htmlAdd+"<h3

style='margin-top:15px;'>Kecamatan : "+response.nama_kecamatan+"</h3>";

htmlAdd = htmlAdd+"<span class='glyphicon

glyphicon-comment'></span> "+response.kode_acara+"

"+response.singkatan_pilihan+" ("+response.isi_pilihan+") <small><span

class='glyphicon glyphicon-time'></span>

"+response.tgl_sms_diterima+"</small></div>";

$("#data-pemenang").html(htmlAdd); }).fail(function() {

alert("Maaf, tidak ada sms masuk yang benar pada jam acara saat ini");

}); } }

Sedangkan method controller yang diakses untuk memberikan response true dengan hasil query model sebagai berikut:

function pilihPemenangKuis($tanggal) { $query = " SELECT * FROM tb_jawaban_pendengar,tb_pendengar, tb_pilihan_jawaban,tb_jadwal_siaran,tb_kecamatan

WHERE tb_jawaban_pendengar.no_hp = tb_pendengar.no_hp

AND tb_kecamatan.kode_kecamatan = tb_pendengar.kode_kecamatan AND tb_jawaban_pendengar.kode_pilihan_jawaban = tb_pilihan_jawaban.kode_pilihan_jawaban AND tb_pilihan_jawaban.kode_pertanyaan = tb_jadwal_siaran.kode_pertanyaan

AND status_pilihan = 'benar'

AND tgl_sms_diterima BETWEEN '".$tanggal->tgl_siaran."

".$tanggal->jam_mulai."' AND '".$tanggal->tgl_siaran." ".$tanggal->jam_akhir."'

ORDER BY RAND() DESC

";

$data = $this->db->query($query); if($data->num_rows()>0){

commit to user $data = $data->result();

$value = array(

"no_hp" => $data[0]->no_hp,

"kode_jadwal_siaran" => $data[0]->kode_jadwal_siaran, "tgl_pengumuman" => date("Y-m-d H:i:s",time()) );

$query = $this->db->insert_string('tb_pemenang', $value); $this->db->query($query); return $data[0]; }else{ return false; } }

Sedangkan method controllers untuk mengirim SMS ke pemenang adalah sebagai berikut : if($data->num_rows()>0){ $data = $data->result(); $value = array( "no_hp" => $data[0]->no_hp, "kode_jadwal_siaran" => $data[0]->kode_jadwal_siaran, "tgl_pengumuman" => date("Y-m-d H:i:s",time())

);

$query = $this->db->insert_string('tb_pemenang', $value); $this->db->query($query);

$smsPemenang = array(

"DestinationNumber" => $data[0]->no_hp,

"TextDecoded" => "Selamat bagi Anda

>nama.", Anda memenangkan Kuis Radio KAMI pada program acara ".$data[0]->nama_acara,

"InsertIntoDB" => "NOW();"

);

$this->db->insert("outbox",$smsPemenang); return $data[0];

4.3.6.2 Balasan SMS Pengumuman Pemenang

Setelah sistem menentukan pemenang, maka sistem akan mengirimkan SMS pemberitahuan kepada pemenang. Tampilan SMS pemenang dari sistem yang diterima oleh pemenag dapat dilihat pada gambar 4.61.

commit to user

Gambar 4.61 Balasan SMS Pengumuman Pemenang

Semua SMS yang telah dikirimkan oleh pendengar akan diolah oleh sistem menjadi laporan pemetaan pendengar yang dapat digunakan untuk menarik minat pelanggan/ client beriklan di radio. Jika pelanggan/ client menyetujui untuk mengiklankan di radio, maka iklan tersebut dapat di siarkan oleh penyiar. Iklan yang disiarkan di radio akan didengarkan oleh pendengar.

Jika admin ingin keluar/ Logout dari sistem method controller adalah sebagai berikut :

public function logout(){

$this->session->set_userdata("logged_in",null);

redirect('/dashboard');

}

4.4 Hasil Evaluasi Sistem/ Pengujian Black Box

Setelah sistem selesai dibuat, selajutnya penulis melakukan evaluasi sistem. Hasil Evaluasi Sistem/ Tahapan Pengujian merupakan bagian yang penting dalam pembangunan sebuah sistem informasi ini, tahapan pengujian ditujukan untuk menemukan kesalahan-kesalahan pada sistem dan memastikan sistem yang dibangun telah sesuai dengan apa yang direncanakan sebelumnya.

Dalam dokumen BAB IV IMPLEMENTASI DAN ANALISA (Halaman 36-41)

Dokumen terkait