4. IMPLEMENTASI SISTEM
4.1. Proses Uploading Halaman Web dan Database
Pada implementasi tugas akhir ini dilakukan proses uploading halaman web dan database pada http://www.paski-komedian.org dengan menggunakan cPanel seperti yang dapat dilihat pada gambar 4.1.
Gambar 4.1. Tampilan cPanel
Proses uploading yang dilakukan adalah mengklik menu File Manager dan
memilih menu Public HTML untuk mengupload halaman web seperti yang dilihat
pada gambar 4.2.
Gambar 4.2. Halaman File Manager
Untuk mengupload halaman web, klik menu Public HTML dan masukkan file yang akan di upload seperti yang dilihat pada gambar 4.3.
Gambar 4.3. Upload File
Setelah dilakukan upload halaman web selanjutnya adalah mengupload gambar- gambar halaman web dengan membuat folder gambar pada public HTML seperti yang dilihat pada gambar 4.4.
Gambar 4.4. Pembuatan Folder Gambar
Untuk pembuatan database, maka dapat memilih menu MySQl databases
pada cPanel dan mengisikan nama database yang akan dibuat pada form yang
sudah disediakan, kemudian klik tombol create database. Dalam tugas akhir ini
nama database yang akan dibuat adalah ”paskikmd” seperti yang dilihat pada
gambar 4.5.
Gambar 4.5. Pembuatan Database
Langkah berikutnya adalah pembuatan tabel, untuk menyimpan data
dengan mengklik menu phpMyAdmin. Setelah database dibuat, klik menu SQL
untuk memasukkan nama tabel yang ingin dibuat beserta fields-nya, kemudian
klik tombol ”go”. Contoh tabel yang telah dibuat dapat dilihat pada gambar 4.6.
Gambar 4.6. Pembuatan Tabel
Perangkat keras yang dipakai untuk implementasi dan pengujian pada tugas akhir ini mempunyai spesifikasi sebagai berkut :
Processor : Intel Pentium M 1,73 GHZ Memory : 256 MB DDR SDRAM Harddisk : 60 GB
Sistem operasi yang digunakan adalah Windows XP Home Edition.
Resolusi layar yang dipakai untuk implementasi program tugas akhir ini adalah 1024 x 768 pixels. Dilakukan proses instalasi pada komputer seperti :
a. Adobe Photoshop CS, yang digunakan untuk melakukan desain gambar.
b. Macromedia Dreamweaver MX, yang digunakan sebagai tempat kerja dan tempat untuk mendesain web yang akan dibuat.
c. Apache, yang digunakan sebagai web server.
d. MySQL, yang digunakan sebagai database server.
e. Mozilla Firefox, yang digunakan sebagi browser.
4.2. Implementasi Program
Berikut ini akan dijelaskan implementasi program dan proses-proses apa saja yang dilakukan.
Tabel 4.1. Tabel Hubungan Menu dan Segmen Program
Menu Segmen Program
Koneksi Database 4.1.
Pengecekan Hak Akses Halaman Anggota 4.2.
Pengecekan Hak Akses Halaman Komedian 4.3
Pengecekan Hak Akses Halaman Administrator 4.4
Daftar Anggota baru 4.5.
Pencarian Komedian 4.6.
Pembuatan Kalender 4.7.
Pemesanan Komedian 4.8.
Pemesanan Komedian (Ubah Booking) 4.9.
Pemesanan Komedian (Batal Booking) 4.10.
Jadwal Pemesanan Bentrok Dengan Jadwal Show
Komedian 4.11.
Pengiriman PIN Number 4.12.
Pemesanan Jasa Komedian Yang Belum Disetujui 4.13.
Pemesanan Jasa Komedian Yang Telah Disetujui 4.14.
Mengubah Profil Anggota 4.15.
Kirim Salam 4.16.
Reply Salam Komedian 4.17.
Buat Topik Forum Diskusi 4.18.
Reply Topik Forum 4.19.
Jadwal Show Komedian 4.20.
Tambah Administrator 4.21.
Hapus Administrator 4.22.
Ubah Password Administrator 4.23.
Menampilkan Laporan Data Anggota 4.24.
Menampilkan Laporan Data Komedian 4.25.
Menampilkan Laporan Data Grup Komedian 4.26.
Pengaturan Jadwal Komedian 4.27
Persetujuan Data Booking 4.28.
Menampilkan Laporan Data Pesanan Komedian 4.29.
Buka Dan Tutup Topik Forum 4.30.
Menginputkan Berita 4.31.
Update Berita 4.32.
Delete Berita 4.33.
Menginputkan Polling 4.34.
Tutup Polling 4.35.
Buka Polling 4.36
4.2.1. Koneksi Database
Koneksi ke database digunakan untuk menghubungkan perangkat lunak dengan database dan terdapat pada setiap halaman web yang melakukan operasi database.
Segmen Program 4.1. Coding untuk Koneksi Database
$conn = @mysql_connect("localhost","paskikmd","wnt38fjv") or die ("mysql_connect() : ".mysql_error());
mysql_select_db("paskikmd",$conn);
.
4.2.2. Konfigurasi Database Server
Pada MySQL sebagai database server, dibuat sebuah database baru dengan rincian sebagai berikut :
a. Nama database : paskikmd_paskikmd b. User : paskikmd_root c. Password : root
Database tersebut berisi tabel-tabel dengan nama dan field-field yang telah
didesain oleh penulis sebelumnya.
4.2.3. Pengecekan Hak Akses Halaman Anggota
Pengecekan ini akan dilakukan pada setiap halaman website yang hanya dapat diakses oleh anggota. Hal ini berguna untuk keamanan, mencegah user yang bukan anggota untuk mengakses halaman tersebut. Apabila username/password yang di-input-kan oleh anggota salah maka tetap menampilkan halaman index.php. Segmen Program 4.2. berfungsi untuk menampilkan halaman anggota apabila user telah memiliki account anggota.
Segmen Program 4.2. Coding Pengecekan Hak Akses Halaman Anggota
<?php require("global.php"); ?>
case $ROLE_MEMBER :
$_SESSION["user"] = $row["Username"];
redirect("mainFrame", "member_home.php?username=". $username);
redirect("leftFrame", "member_menu.php");
break;
4.2.4. Pengecekan Hak Akses Halaman Komedian
Pengecekan ini akan dilakukan pada setiap halaman website yang hanya dapat diakses oleh komedian. Hal ini berguna untuk keamanan, mencegah user yang bukan komedian untuk mengakses halaman tersebut. Apabila username/password yang di-input-kan oleh komedian salah maka tetap menampilkan halaman index.php. Segmen Program 4.3. berfungsi untuk menampilkan halaman komedian apabila username komedian telah terdaftar.
Segmen Program 4.3. Coding Pengecekan Hak Akses Halaman Komedian
<?php require("global.php"); ?>
case $ROLE_KOMEDIAN :
$_SESSION["komedian"] = $row["Username"];
redirect("mainFrame", "pelawak_home.php?username=". $username);
redirect("leftFrame", "pelawak_menu.php");
break;
4.2.5. Pengecekan Hak Akses Halaman Administrator
Pengecekan ini akan dilakukan pada setiap halaman website yang hanya
dapat diakses oleh administrator. Hal ini berguna untuk keamanan, mencegah
user yang bukan administrator untuk mengakses halaman tersebut. Apabila
username/password yang di-input-kan oleh administrator salah maka tetap
menampilkan halaman index.php. Segmen Program 4.4. berfungsi untuk menampilkan halaman administrator apabila account user terdaftar sebagai administrator.
Segmen Program 4.4. Coding Pengecekan Hak Akses Halaman Administrator
<?php require("global.php"); ?>
case $ROLE_ADMIN :
$_SESSION["admin"] = $row["Username"];
redirect("mainFrame", "admin_home.php?username=". $username);
redirect("leftFrame", "admin_menu.php");
break;
4.2.6. Menu Daftar Anggota Baru
Menu daftar anggota baru digunakan oleh user yang ingin mendaftar menjadi anggota website tersebut dengan mengklik tombol ”Daftar Sekarang”.
Proses pertama yang dilakukan adalah memperoleh kode customer dengan mengambil 3 digit pertama dari username customer dan ditambah dengan 6 digit angka yang diperoleh dari kode yang telah ada ditambah satu. Kemudian dilakukan proses penambahan customer baru dengan kode customer baru yang telah di-generate ke dalam tabel member. Jika proses daftar anggota baru selesai maka customer dapat masuk ke halaman anggota dengan memasukkan username dan password yang telah dibuat pada menu sign in. Segmen Program 4.5.
berfungsi untuk memasukkan data anggota setelah mengisi form pendaftaran anggota ke dalam tabel member.
Segmen Program 4.5. Coding untuk Daftar Anggota Baru
<?php require("global.php"); ?>
if ($username == "") { $msg .= "Username kosong <br>" ; }
if ($password == "")
{
if ($mode == $ACT_NEW)
{
$msg .= "Password kosong <br>" ;
}
if ($password != $password2) { $msg .= "Password konfirmasi tidak cocok <br>" ; } if ($alamat == "") { $msg .= "Alamat kosong <br>" ; }
if ($kota == "") { $msg .= "Kota kosong <br>" ; } if ($negara == "") { $msg .= "Negara kosong <br>" ; } if ($email == "") { $msg .= "E-Mail kosong <br>" ; }
if (!checkdate($bln,$tgl,$thn)) { $msg .= "Tanggal tidak valid <br>" ; } if ($jawab == "") { $msg .= "Jawaban pertanyaan rahasia kosong <br>" ; }
$count = 0;
do {
$kodemember = strtoupper(substr($username,0,3)). str_repeat("0",7- strlen($count+1)).($count+1) ;
$row = getRow("select * from member where kodemember = '". $kodemember. "'");
$count++;
} while (!empty($row));
$strsql = "insert into member (username, password, kodemember, nama, alamat, kota, negara, telepon, email, tanggallahir, kelamin, tanya, jawab) values (";
$strsql = $strsql. "'". $username. "'," ;
$strsql = $strsql. "'". base64_encode($password2). "'," ;
$strsql = $strsql. "'". $kodemember. "'," ;
$strsql = $strsql. "'". $nama. "'," ; $strsql = $strsql. "'". $alamat. "'," ;
$strsql = $strsql. "'". $kota. "'," ;
$strsql = $strsql. "'". $negara. "'," ;
$strsql = $strsql. "'". $telepon. "'," ;
$strsql = $strsql. "'". $email. "'," ;
$strsql = $strsql. "'". $thn."-".$bln."-".$tgl. "'," ;
$strsql = $strsql. $kelamin. "," ;
$strsql = $strsql. $tanya. "," ;
$strsql = $strsql. "'". $jawab. "'" ;
$strsql = $strsql. ")";
$sql = @mysql_query($strsql,$conn);
4.2.7. Menu Cari Komedian
Menu cari komedian (search) merupakan menu yang sangat membantu dan mempermudah customer dalam mencari informasi mengenai siapa saja komedian yang dapat di-booking pada waktu yang diinginkan oleh anggota.
Pencarian data sesuai dengan keyword yang di-input-kan ke field cari komedian.
Dari hasil pencarian data yang ditemukan, customer dapat langsung mengklik untuk melihat informasinya secara lebih lengkap dan lebih jelas.
Segmen Program 4.6. Coding untuk Pencarian Komedian
<?
$tgl = date("d"); $bln = date("m"); $thn = date("Y");
$vp = "";
if (!empty($_POST["editPelawak"]) && trim($_POST["editPelawak"]) != "") {
$vperson = " a.nama like '". strtoupper(trim($_POST["editPelawak"])). "%' ";
$vp = trim($_POST["editPelawak"]);
} else
{ $vperson = " 1=1 ";}
$vk = 0;
if (!empty($_POST["comboKota"]) && trim($_POST["comboKota"]) != "") {
$vkota = " a.kota = '". $KOTA[trim($_POST["comboKota"])]. "' ";
$vk = trim($_POST["comboKota"]);
} else
{ $vkota = " 1=1 ";}
if (!empty($_POST["tgl"])) {
$tgl = $_POST["tgl"];
$bln = $_POST["bln"];
$thn = $_POST["thn"];
$vtgl = " a.TanggalAcara = '".date("Y-m-d", mktime(0, 0, 0, $bln, $tgl, $thn))."' ";
} else
{ $vtgl = " 1=1 ";}
$vjaw = "00:00"; $vjak = "00:00";
if (!empty($_POST["jammulai"]))
{
$vjam="(('".$_POST["jammulai"]."'>=a.JamMulai AND '".$_POST["jammulai"]."' <= a.JamAkhir)
OR ('".$_POST["jamakhir"]."' >= a.JamMulai AND '".$_POST["jamakhir"]."' <=
a.JamAkhir)) ";
$vjaw = $_POST["jammulai"];
$vjak = $_POST["jamakhir"];
} else
{ $vjam = " 1=1 ";}
$sqlselect = " SELECT a.*, b.KodeGroup, b.nama AS NGroup
FROM Komedian a LEFT OUTER JOIN mGroup b ON a.IDGroup = b.IDGroup WHERE ".$vperson." AND ".$vkota."
AND a.IDKomedian NOT IN
(SELECT IDKomedian FROM Pesan a, PesanDtl b
WHERE a.IDPesan = b.IDPesan AND ".$vtgl." AND
".$vjam.")";
if ($vtgl == " 1=1 ") {
$sqlselect = " SELECT a.*, b.KodeGroup, b.nama AS NGroup
FROM Komedian a LEFT OUTER JOIN mGroup b ON a.IDGroup = b.IDGroup WHERE ".$vperson." AND ".$vkota;
}
$sql = @mysql_query($sqlselect);
?>
4.2.8. Menu Booking Komedian
Pemesanan komedian dapat dilakukan dengan dua cara yaitu dengan memilih menu booking komedian atau menu profil komedian. Bedanya di menu profil komedian, anggota dapat melihat tentang profil komedian sekaligus jadwal show komedian melalui kalender. Sedangkan di menu booking komedian, anggota dapat langsung mengisi form pemesanan komedian dengan cara memilih komedian mana yang dipilih, meng-input-kan waktu, lokasi, dan format acara yang diinginkan anggota. Kalender merupakan alat bantu untuk anggota dalam melihat jadwal show komedian. Anggota dapat melihat jadwal show komedian yang sudah dipesan oleh anggota sendiri maupun jadwal show yang sudah dipesan oleh orang lain.
Dari kalender, anggota dapat memilih waktu kosong komedian yang secara otomatis akan digunakan untuk pengisian form pemesanan komedian agar anggota dapat memesan jasa komedian tersebut. Setelah pengisian form pemesanan komedian anggota akan menerima konfirmasi PIN Number ke alamat email anggota yang terdaftar dan data booking anggota dapat dilihat di menu History.
Segmen Program 4.7. berfungsi untuk menampilkan format kalender pada
halaman anggota.
Segmen Program 4.7. Coding Pembuatan Kalender
function makeCalendar($cbulan, $ctahun, $addr) {
echo "
<center>
<table width=80%> " ;
$ctglakhir = date("t", mktime(0, 0, 0, $cbulan, 1, $ctahun));
$chari = date("w", mktime(0, 0, 0, $cbulan, 1, $ctahun));
$ctr=0;
$nexttahun = $ctahun;
$nextbulan = $cbulan + 1;
if ($nextbulan == 13) { $nexttahun++; $nextbulan=1; }
$prevtahun = $ctahun;
$prevbulan = $cbulan - 1;
if ($prevbulan == 0) { $prevtahun--; $prevbulan=12; }
echo "
<tr>
<th colspan=1><a
href=".$addr."&cbulan=".$prevbulan."&ctahun=".$prevtahun."><</a></th>
<th colspan=5>". getBulanStr($cbulan)." ".$ctahun ."</th>
<th colspan=1><a
href=".$addr."&cbulan=".$nextbulan."&ctahun=".$nexttahun.">></a></th>
</tr>
<tr>
<th>M</th>
<th>S</th>
<th>S</th>
<th>R</th>
<th>K</th>
<th>J</th>
<th>S</th>
</tr> ";
echo "<tr>";
for ($i=0; $i<$chari; $i++) {
echo "<td> </td>";
$ctr++;
}
for ($i=1; $i<=$ctglakhir; $i++) {
if (date("Y-m-d") == date("Y-m-d", mktime(0, 0, 0, $cbulan, $i,
$ctahun))) {
echo "<td align=right bgcolor=aqua><font color=white><b>".
"<a
href=".$addr."&cbulan=".$cbulan."&ctahun=".$ctahun."&ctanggal=".$i."
>".$i."</a>
</b></font></td>";
} else
{
echo "<td align=right><b>".
"<a
href=".$addr."&cbulan=".$cbulan."&ctahun=".$ctahun."&ctanggal=".$i."
>".$i."</a>
</b></td>";
}
$ctr++;
if ($ctr % 7 == 0) {
echo "</tr><tr>";
} }
for ($i=($ctr % 7); $i<7 && ($ctr % 7 != 0); $i++) {
echo "<td> </td>";
$ctr++;
}
echo "</tr>";
echo "
</table>
</center> ";
}
Segmen program 4.8. Coding Pemesanan Komedian
<?php require("global.php"); ?>
<?php require("global_member.php"); ?>
if ($mode == $ACT_NEW) { // input ke tabelpesan
$strsql = "insert into pesan (IDMember, Nomer, PIN, Tanggal, Alamat, TanggalAcara, JamMulai, JamAkhir, FormatAcara, IsDeal)
values (".$idmember.",
".quotedStr($nomer).", ".quotedStr($pin).", ".quotedStr($tanggal).", ".quotedStr($alamat).", ".quotedStr($tanggalacara).", ".quotedStr($jammulai).", ".quotedStr($jamakhir).", ".$formatacara.",
".$isdeal.")" ;
$sql = @mysql_query($strsql,$conn);
//input ke tabelpesandtl
$rowheader = getRow("select max(IDPesan) as IDPesan from pesan");
reset($_SESSION["detailbook"]);
while (list($key, $val) = each($_SESSION["detailbook"])) {
$strsql = "insert into pesandtl(IDPesan, IDKomedian) values (
".$rowheader["IDPesan"].", ".$val.")" ;
$sql = @mysql_query($strsql,$conn);
}
Keterangan:
Segmen Program 4.8. berfungsi untuk memasukkan data pemesanan yang belum disetujui ke tabel pesan dan pesandtl
Segmen Program 4.9. Coding Pemesanan Komedian (Ubah Booking)
<?php require("global.php"); ?>
<?php require("global_member.php"); ?>
if ($mode == $ACT_EDIT) {
$strsql = " UPDATE Pesan SET
TanggalAcara = ".quotedStr($tanggalacara).", JamMulai = ".quotedStr($jammulai).", JamAkhir = ".quotedStr($jamakhir).", Alamat = ".quotedStr($alamat).", FormatAcara = ".$formatacara."
WHERE IDPesan = ". $idp ;
$sql = @mysql_query($strsql,$conn);
Keterangan:
Segmen Program 4.9. berfungsi untuk melakukan update pada pengisian form
pemesanan komedian.
Segmen Program 4.10. Coding Pemesanan Komedian (Batal Booking)
<?php require("global.php"); ?>
<?php require("global_member.php"); ?>
$strsql = " DELETE FROM PesanDtl WHERE IDPesan = ". $idp ;
$sql = @mysql_query($strsql,$conn);
Keterangan:
Segmen Program 4.10. berfungsi untuk melakukan pembatalan terhadap data pesanan komedian selama belum disetujui.
Segmen Program 4.11. Coding Pengecekan Jadwal Pemesanan Bentrok Dengan Jadwal Show Komedian
<?php require("global.php"); ?>
<?php require("global_member.php"); ?>
reset($_SESSION["detailbook"]);
while (list($key, $val) = each($_SESSION["detailbook"])) {
$rowjadwal = getRow("SELECT a.Nomer, a.TanggalAcara, a.JamMulai, a.JamAkhir,c.KodeKomedian, c.Nama
FROM Pesan a, PesanDtl b, Komedian c
WHERE a.IDPesan = b.IDPesan and b.IDKomedian = c.IDKomedian and c.IDKomedian = ".$val."
and((".quotedStr($jammulai).">=a.JamMulai and ".quotedStr($jammulai)." <= a.JamAkhir) or
(".quotedStr($jamakhir)." >= a.JamMulai ".quotedStr($jamakhir)." <=
a.JamAkhir) or
(".quotedStr($jammulai)." <= a.JamMulai and ".quotedStr($jamakhir)." >=
a.JamAkhir))
and a.TanggalAcara = ".quotedStr($tanggalacara)." and a.IDPesan <> ".$idp."
ORDER BY a.Nomer, c.KodeKomedian ");
if (!empty($rowjadwal)) {
$msg .= $rowjadwal["KodeKomedian"] ." - ". $rowjadwal["Nama"] ." berhalangan hadir. <br>";
} }
Keterangan:
Segmen Program 4.11. berfungsi untuk mengecek apakah jadwal booking yang diinginkan oleh anggota tidak bentrok dengan jadwal pesanan orang lain.
Segmen Program 4.12. Coding Pengiriman PIN Number
////////////////// KIRIM EMAIL /////////////////////////////
$penerima = $rowmember["Email"] ;
$subject = "[PASKI-JATIM] PIN Booking" ;
$headers = "From: PASKI-JATIM <[email protected]>\n" ;
$headers .= "X-Sender: < [email protected] >\n" ;
$headers .= "X-Mailer: PHP\n" ;
$headers .= "X-Priority: 1\n" ;
$pesan =
"
Pemesanan jasa komedian pada tanggal : ".displayTanggal(date("Y-m-d"))."
Tanggal : ".$tanggalacara."
Tempat : ".$alamat."
Waktu : ".$jammulai." - ".$jamakhir."
Acara : ".$FORMAT_ACARA[$formatacara]."
PIN anda adalah : ".$pin."
Silahkan hubungi pihak PASKI-Jatim untuk keterangan selanjutnya.
";
mail($penerima, $subject, $pesan, $headers);
///////////////////////////////////////////////////////////////
4.2.9. Menu History
Halaman ini menampilkan data pemesanan yang telah dilakukan oleh anggota namun masih dalam status belum disetujui yaitu isdeal=0.
Di halaman ini, anggota yang telah melakukan booking komedian masih dapat diubah atau dibatalkan. Selain dapat dilihat pada menu History, jadwal yang telah di-booking oleh anggota dapat dilihat pada kalender komedian yang di-booking.
Jadwal yang telah dipesan oleh anggota ditandai dengan warna biru, sedangkan jadwal yang telah dipesan oleh anggota lain ditandai dengan warna merah.
Segmen Program 4.13. Coding Pemesanan Jasa Komedian Yang Belum Disetujui
<?php require("global.php"); ?>
<?php require("global_member.php"); ?>
$rowmember = getMember($_SESSION["user"]);
$sql = @mysql_query("SELECT * FROM Pesan
WHERE ISDeal = 0 AND IDMember = ".$rowmember["IDMember"]."
ORDER BY Nomer
LIMIT ". (($currpage1-1)*$DATA_PER_HALAMAN). ",". $DATA_PER_HALAMAN);
Bila pesanan anggota telah disetujui maka data booking anggota akan berpindah ke bagian data pesanan komedian dengan status isdeal=1.
Segmen Program 4.14. Coding Pemesanan Jasa Komedian Yang Telah Disetujui
<?php require("global.php"); ?>
<?php require("global_member.php"); ?>
$rowmember = getMember($_SESSION["user"]);
$sql = @mysql_query("SELECT * FROM Pesan
WHERE ISDeal = 1 AND IDMember = ".$rowmember["IDMember"]."
ORDER BY Nomer
LIMIT ". (($currpage2-1)*$DATA_PER_HALAMAN). ",". $DATA_PER_HALAMAN);
4.2.10. Menu Profil Anggota
Halaman ini menampilkan profil anggota yang sudah memasukkan
username dan password pada panel sign in. Pada halaman ini anggota dapat
mengganti data anggota. Sebelum memasuki halaman ini akan diperiksa apakah
username yang login tersebut merupakan variable session yang telah di register
saat pengecekan username. Jika ingin mengubah data anggota maka cukup
menekan tombol. ubah yang telah disediakan pada halaman member_data.php?mode=$ACT_EDIT.
Kode anggota dan username tidak dapat diubah. Apabila anggota ingin mengubah password maka masukkan terlebih password lama, kemudian masukkan password baru dan ulangi password baru tersebut. Jika password yang dimasukkan benar maka password akan diubah. Perubahan akan disimpan jika member menekan tombol “Simpan”.
Segmen Program 4.15. Coding Mengubah Profil Anggota
<?php require("global.php"); ?>
if ($mode == $ACT_EDIT) {
strsql = "update member set password = ". quotedStr(base64_encode($password2)) .",
nama = ". quotedStr($nama) .", alamat = ". quotedStr($alamat) .", kota = ". quotedStr($kota) .", negara = ". quotedStr($negara) .", telepon = ". quotedStr($telepon) .", email = ". quotedStr($email) .",
tanggallahir = ". quotedStr($thn."-".$bln."-".$tgl) .", kelamin = ". $kelamin .",
tanya = ". $tanya .",
jawab = ". quotedStr($jawab) ."
where username = ". quotedStr($username);
$sql = @mysql_query($strsql,$conn);
4.2.11. Menu Kirim Salam Anggota dan Komedian
Halaman ini digunakan oleh anggota dan komedian untuk mengirim salam. Anggota dapat mengirimkan salam kepada komedian yang dipilih dengan memilih komedian yang dipilihnya dari menu profil komedian. Anggota hanya dapat mengirimkan salamnya saja kepada komedian tetapi tidak dapat menerima reply salam dari komedian. Selain anggota, komedian juga dapat mengirim salam kepada komedian yang lain dan dapat menerima reply salam dari komedian yang lain.
Segmen Program 4.16. Coding Kirim Salam
<?php require("global.php"); ?>
if (isset($_SESSION["user"]) || isset($_SESSION["komedian"]) &&
$_SESSION["komedian"] != $row["Username"])) {
if (!empty($_POST["salam_submit"])) {
if (isset($_SESSION["user"])) {
$rowpengirim = getMember($_SESSION["user"]);
$dari = $rowpengirim["IDMember"];
$tabel = " SalamMember " ; }
else
if (isset($_SESSION["komedian"])) {
$rowpengirim = getKomedian("Username", quotedStr($_SESSION["komedian"]));
$dari = $rowpengirim["IDKomedian"];
$tabel = " SalamKomedian " ; }
$sql = @mysql_query("INSERT INTO ".$tabel." (Dari, Kepada, Tanggal, Subject, Isi) VALUES (
".$dari.",
".$row["IDKomedian"].", ".quotedStr(date("Y-m-d")).",
".quotedStr($_POST["salam_subjek"]).", ".quotedStr($_POST["salam_isi"]).") ",$conn);
displayInfo("Salam terkirim.");
}
.
Segmen Program 4.17. Coding Reply Salam Komedian
<?php require("global.php"); ?>
<?php require("global_pelawak.php"); ?>
if (!empty($_POST["btnreply"])) {
$sql = @mysql_query("
INSERT INTO SalamKomedian (Dari, Kepada, Tanggal, Subject, Isi) VALUES (
".$rowkomedian["IDKomedian"].", ".$_POST["idk"].",
".quotedStr(date("Y-m-d")).", ".quotedStr($_POST["subject"]).", ".quotedStr($_POST["isi"]).") ",$conn);
displayInfo("Balasan terkirim.");
}
.
4.2.12. Menu Forum Diskusi Anggota dan Komedian
Halaman ini merupakan suatu forum diskusi dimana anggota dan komedian dapat memperoleh pengetahuan seputar organisasi dan komedian.
Anggota dapat membuat topik dan me-reply topik. Segmen Program 4.18. tersebut
berfungsi untuk memasukkan topik baru forum diskusi ke tabel forum. Segmen
Program 4.18. merupakan segmen program untuk anggota, komedian, dan
administrator. Segmen Program 4.19. tersebut berfungsi untuk memasukkan topik
baru forum diskusi ke tabel forumdtl. Segmen program 4.19. juga merupakan
segmen program untuk anggota, komedian, dan administrator.
Segmen Program 4.18. Coding Buat Topik Forum Diskusi
<?php require("global.php"); ?>
$strsql = "INSERT INTO Forum (Username, Tanggal, Subject, Isi, IsClosed) values (";
$strsql = $strsql. "'". $rowvisitor["Username"]. "'," ;
$strsql = $strsql. "now()," ;
$strsql = $strsql. "'". trim($_POST["topik_subject"]). "'," ;
$strsql = $strsql. "'". trim($_POST["topik_isi"]). "'," ;
$strsql = $strsql. "0" ;
$strsql = $strsql. ")";
$sql = @mysql_query($strsql,$conn);
Segmen Program 4.19. Coding Reply Topik Forum
$strsql = "INSERT INTO ForumDtl (IDForum, Username, Tanggal, Balasan) VALUES (".$_GET["t"].",
".quotedStr($rowvisitor["Username"]).", now(),
".quotedStr(trim($_POST["balasan_isi"])).")";
$sql = @mysql_query($strsql,$conn);
4.2.13. Menu Jadwal Show
Halaman ini menampilkan jadwal tampil komedian setelah permohonan pemesanan terhadap komedian tersebut disetujui.
Segmen Program 4.20. Coding Jadwal Show Komedian
<?php require("global.php"); ?>
<?php require("global_pelawak.php"); ?>
<?
$rowkomedian = getKomedian("Username", quotedStr($_SESSION["komedian"]));
$sql = @mysql_query("
SELECT a.*, c.Nama
FROM Pesan a, PesanDtl b, Member c
WHERE a.IDPesan = b.IDPesan AND a.IDMember = c.IDMember
AND a.IsDeal = 1 AND b.IDKomedian = ".$rowkomedian["IDKomedian"]."
AND a.TanggalAcara >= ".date("Y-m-d")."
ORDER BY a.TanggalAcara");
while ($row = @mysql_fetch_array($sql)) {
echo "<tr>";
echo "<td>". $row["Nama"]. "</td>";
echo "<td>". displayTanggal($row["TanggalAcara"]). "</td>";
echo "<td>". $row["JamMulai"] ." - ". $row["JamAkhir"] ."</td>";
echo "<td>". $row["Alamat"]. "</td>";
echo "<td>". $FORMAT_ACARA[$row["FormatAcara"]]. "</td>";
echo "</tr>";
} ?>
4.2.14. Menu Tambah Administator
Halaman ini digunakan oleh administrator untuk memasukkan data
administrator baru,
Segmen Program 4.21. Coding Tambah Administrator
<?php require("global.php"); ?>
<?php require("global_admin.php"); ?>
if (!empty($_POST["btnSubmit"])) //save admin {
$username = $_POST["username"];
$password = $_POST["password"];
$password2 = $_POST["password2"];
$row = getLogin($username);
if (!empty($row)) {
$msg = "Username sudah ada";
} else {
if ($username == "") { $msg .= "Username kosong <br>" ; } if ($password == "") { $msg .= "Password kosong <br>" ; }
if ($password != $password2) { $msg .= "Password konfirmasi tidak cocok
<br>" ; }
if ($msg == "") {
$strsql = "insert into admin (username, password) values (";
$strsql = $strsql. "'". $username. "'," ;
$strsql = $strsql. "'". base64_encode($password2). "'" ;
$strsql = $strsql. ")";
$sql = @mysql_query($strsql,$conn);
$msg = "Data sukses disimpan.";
$username = "";
$password = "";
$password2 = "";
} }
}
4.2.15. Menu Hapus Administrator
Halaman ini digunakan oleh administrator untuk menghapus data administrator yang ada.
Segmen Program 4.22. Coding Hapus Administrator
<?php require("global.php"); ?>
<?php require("global_admin.php"); ?>
<?
if (!empty($_POST["username"])) {
$sql = @mysql_query("DELETE FROM Admin WHERE Username =
".quotedStr($_POST["username"]), $conn);
}
?>
4.2.16. Menu Ubah Password
Halaman ini digunakan oleh administrator untuk mengubah password administrator. Proses pertama yang dilakukan adalah melakukan pengecekan apakah password baru dan ulang password telah sama dilakukan pertama kalinya.
Jika tidak sama maka akan muncul pesan “password tidak cocok”, jika sama maka
dilakukan pengecekan apakah password kosong atau tidak. Jika tidak maka dilakukan pengecekan terhadap password lama apakah sesuai atau tidak dengan password pada saat administrator login. Jika tidak sama maka akan muncul pesan error, dan jika sama maka akan dilakukan pengubahan terhadap password administrator pada tabel administrator.
Segmen Program 4.23. Coding Ubah Password Administrator
<?php require("global.php"); ?>
<?php require("global_admin.php"); ?>
<?
$admin = $_SESSION["admin"];
$row = getAdmin($admin);
if (!empty($_POST["btnSubmit"]) && $_POST["btnSubmit"]=="Simpan") {
if ($_POST["password"] == base64_decode($row["Password"])) {
if ($_POST["password_baru"] == $_POST["password_ulang"])
{
$sql = @mysql_query("UPDATE Admin SET Password=
".quotedStr(base64_encode($_POST["password_baru"]))."
WHERE Username= ". quotedStr($admin),$conn);
displayInfo("Data sukses disimpan");
} else {
displayInfo("Password yang diulang tidak sesuai");
}
} else
{
displayInfo("Password salah");
} }
?>
4.2.17. Menu Pengaturan Anggota
Halaman ini digunakan oleh administrator untuk melakukan perubahan- perubahan data anggota. Perubahan yang dapat dilakukan antara lain menambah, mengubah, dan menghapus data anggota. Selain itu terdapat menu laporan anggota yang menampilkan semua data anggota.
Segmen Program 4.24. Coding untuk Menampilkan Laporan Data Anggota
<?php require("global.php"); ?>
<?php require("global_admin.php"); ?>
$sql = @mysql_query("select * from member order by kodemember limit ". (($currpage-1)*
$DATA_PER_HALAMAN);
while ($row = @mysql_fetch_array($sql)) {
echo "<tr>";
echo "<td>". $row["KodeMember"]. "</td>";
echo "<td>". $row["Nama"]. "</td>";
echo "<td>". $row["Alamat"]. "</td>";
echo "<td>". $row["Kota"]. "</td>";
echo "<td>". $row["Negara"]. "</td>";
echo "<td>". $row["Telepon"]. "</td>";
echo "<td><a href=mailto:".$row["Email"].">". $row["Email"]. "</a></td>";
echo "<td>". displayTanggal($row["TanggalLahir"]). "</td>";
if ($row["Kelamin"] == $SEX_MALE) {
echo "<td>Pria</td>";
} else
if ($row["Kelamin"] == $SEX_FEMALE) {
echo "<td>Wanita</td>";
} echo"<td
align=center><a href=member_data.php?mode=".$ACT_EDIT."&user=".base64_encode($row["Username"]).">[Uba <a
href=member_profile.php?act=".$ACT_DEL."&user=".base64_encode($row["Username"])."&fr=admin_reportmemb echo "</tr>";
}
?>
4.2.18. Menu Pengaturan Komedian
Halaman ini digunakan oleh administrator untuk melakukan perubahan- perubahan data anggota. Perubahan yang dapat dilakukan antara lain menambah, mengubah, dan menghapus data komedian baik personal maupun grup. Selain itu terdapat menu laporan komedian yang menampilkan semua data komedian dan menu untuk melakukan perubahan terhadap jadwal available komedian yang dapat di booking oleh anggota.
Segmen Program 4.25. Coding untuk Menampilkan Laporan Data Komedian
<?php require("global.php"); ?>
<?php require("global_admin.php"); ?>
<?
$sql = @mysql_query($strsql);
while ($row = @mysql_fetch_array($sql)) {
echo "<tr>";
echo
"<td><a
href=pelawak_profile.php?act=".$ACT_SHOW."&komedian=".base64_encode($row["Username"])."&fr=admin_repo
"</td>";
echo "<td>". $row["Nama"]. "</td>";
echo "<td>". $row["Alamat"]. "</td>";
echo "<td>". $row["Kota"]. "</td>";
echo
"<td><a href=group_profile.php?act=".$ACT_SHOW."&group=".base64_encode($row["KodeGroup"])."&fr=admin
"</a></td>";
echo
<td lign=center lass=fontsmall><a href=pelawak_data.php?mode=".$ACT_EDIT."&komedian=".base64_encode($
<a
href=pelawak_profile.php?act=".$ACT_DEL."&komedian=".base64_encode($row["Username"])."&fr=admin_repor echo "</tr>";
}
?>
.
Segmen Program 4.26. Coding untuk Menampilkan Laporan Data Grup Komedian
<?php require("global.php"); ?>
<?php require("global_admin.php"); ?>
$sql = @mysql_query("select * from mgroup order by kodegroup");
$sqlkom = @mysql_query ("select * from komedian where idgroup=".$row["IDGroup"]."
order by kodekomedian");
.
Segmen Program 4.27. Coding Pengaturan Jadwal Komedian
reset($_SESSION["detailbook"]);
while (list($key, $val) = each($_SESSION["detailbook"])) {
$rowjadwal = getRow("SELECT a.Nomer, a.IDMember, a.TanggalAcara, a.JamMulai, a.JamAkhir, a.IsDeal, c.KodeKomedian, c.Nama
FROM Pesan a, PesanDtl b, Komedian c
WHERE a.IDPesan = b.IDPesan and b.IDKomedian = c.IDKomedian and c.IDKomedian = ".$val."
and ((".quotedStr($jammulai)." >= a.JamMulai and
".quotedStr($jammulai)." <= a.JamAkhir) or
(".quotedStr($jamakhir)." >= a.JamMulai and ".quotedStr($jamakhir)." <=
a.JamAkhir) or
(".quotedStr($jammulai)." <= a.JamMulai and ".quotedStr($jamakhir)." >=
a.JamAkhir))
and a.TanggalAcara = ".quotedStr($tanggalacara)."
ORDER BY a.Nomer, c.KodeKomedian ");
if (!empty($rowjadwal)) {
if ($rowjadwal["IDMember"] != $rowmember["IDMember"]) {
if ($rowjadwal["IsDeal"] == 1) {
$msg .= $rowjadwal["KodeKomedian"] ." - ". $rowjadwal["Nama"] ."
Sudah dibooking. <br>”;
}
} else
{
$msg .= $rowjadwal["KodeKomedian"] ." - ". $rowjadwal["Nama"] ."
sudah dibooking. <br>";
} } }
if ($msg == "") {
$idmember = 0;
$alamat = "";
$pin = "0";
$tanggal = date("Y-m-d");
$isdeal = 1;
if ($mode == $ACT_NEW) {
$strsql = "insert into Pesan
(IDMember, Nomer, PIN, Tanggal, Alamat, TanggalAcara, JamMulai, JamAkhir, IsDeal)values (
".$idmember.",
".quotedStr($nomer).", ".quotedStr($pin).", ".quotedStr($tanggal).", ".quotedStr($alamat).", ".quotedStr($tanggalacara).", ".quotedStr($jammulai).", ".quotedStr($jamakhir).", ".$isdeal.")" ;
$sql = @mysql_query($strsql,$conn);
$rowheader = getRow("select max(IDPesan) as IDPesan from Pesan");
reset($_SESSION["detailbook"]);
while (list($key, $val) = each($_SESSION["detailbook"])) {
$strsql = "insert into PesanDtl
(IDPesan, IDKomedian)
values (
".$rowheader["IDPesan"].", ".$val.")" ;
$sql = @mysql_query($strsql,$conn);
} }
}
4.2.19. Menu Data Booking Komedian
Halaman ini berfungsi untuk menampilkan data booking yang telah dilakukan oleh anggota, menyetujui data booking dan menolak data booking.
Halaman ini menampilkan nota pemesanan komedian setelah meng-input-kan PIN Number anggota. Halaman ini juga dapat digunakan administrator untuk melakukan persetujuan terhadap data booking.
Segmen Program 4.28. Coding Persetujuan Data Booking
<?php require("global.php"); ?>
<?php require("global_admin.php"); ?>
if (!empty($_POST["btnsetuju"])) {
$sql = @mysql_query(
" UPDATE Pesan SET IsDeal= 1 WHERE IDPesan = ".$_POST["idpesan"]
,$conn);
displayInfo("Transaksi berhasil.");
} else
if (!empty($_POST["btnbatal"])) {
$sql = @mysql_query(
" DELETE FROM PesanDtl WHERE IDPesan = ".$_POST["idpesan"]
,$conn);
$sql = @mysql_query(
" DELETE FROM Pesan WHERE IDPesan = ".$_POST["idpesan"]
,$conn);
displayInfo("Transaksi batal.");
}
?>
4.2.20. Menu Data Pesanan Komedian
Halaman ini berfungsi untuk menampilkan data pesanan yang telah disetujui. Bila administrator telah menyetujui data pesanan milik anggota tersebut maka akan ditampilkan pada laporan data pesanan komedian di halaman admin_reportpesan.php dan data pesanan komedian tersebut berfungsi sebagai jadwal show komedian.
Segmen Program 4.29. tersebut berfungsi untuk menampilkan data pesanan yang telah disetujui.
Segmen Program 4.29. Coding Menampilkan Laporan Data Pesanan Komedian
$sql = " SELECT a.*, b.KodeMember FROM Pesan a, Member b
WHERE a.IDMember = b.IDMember AND a.IsDeal = 1 AND ".$ftgl."
ORDER BY Nomer";
4.2.21. Menu Forum Diskusi Administrator
Halaman ini digunakan untuk menampilkan topik dan reply topik seputar organisasi. Administrator dapat meng-input-kan topik forum diskusi yang dapat dilihat oleh anggota dan komedian saat mengakses halaman forum diskusi.
Segmen program membuat topik baru forum diskusi pada administrator sama dengan segmen program 4.18.
Administrator dapat membuat status topik forum diskusi ditutup atau dibuka. Bila status topik forum diskusi ditutup maka anggota, komedian dan administrator tidak dapat me-reply topik sampai topik forum diskusi tersebut kembali dibuka oleh administrator.
Segmen Program 4.30. Coding Buka Dan Tutup Topik Forum
if ($rowvisitor["Role"] == $ROLE_ADMIN) {
if (!empty($_GET["act"])) {
$act = $_GET["act"];
if ($act == "LOCK") {
$strsql = "UPDATE Forum SET IsClosed = 1 WHERE IDForum = ". $_GET["t"];
$sql = @mysql_query($strsql,$conn);
} else
if ($act == "UNLOCK") {
$strsql = "UPDATE Forum SET IsClosed = 0 WHERE IDForum = ". $_GET["t"];
$sql = @mysql_query($strsql,$conn);
}
}
}
4.2.22. Menu Berita
Halaman ini digunakan untuk menampilkan berita-berita seputar organisasi, seperti berita acara atau kegiatan yang sedang dan akan berlangsung di organisasi. Segmen Program 4.30. tersebut berfungsi untuk menambahkan berita baru.
Segmen Program 4.31. Coding Menginputkan Berita
$strsql = "insert into berita (Tanggal, Subject, Berita) values (";
$strsql = $strsql. "now()," ;
$strsql = $strsql. "'". $_POST["subject"]. "'," ; $strsql = $strsql. "'". $_POST["berita"]. "'" ; $strsql = $strsql. ")";
$sql = @mysql_query($strsql,$conn);
Segmen Program 4.32. Coding Update Berita
$strsql = "UPDATE Berita SET
Subject = ".quotedStr($_POST["updsubject"]).", Berita = ".quotedStr($_POST["updberita"]).
WHERE IDBerita=". $_POST["updidberita"] ;
$sql = @mysql_query($strsql,$conn);
Keterangan:
Segmen Program 4.32. tersebut berfungsi untuk mengubah berita yang ada..
Segmen Program 4.33. Coding Delete Berita
$strsql = "delete from berita where idberita=". $_GET["idn"];
$sql = @mysql_query($strsql,$conn);
Keterangan:
Segmen Program 4.33. tersebut berfungsi untuk menghapus berita yang ada.
4.2.23. Menu Polling
Untuk membuat polling digunakan radio button untuk memudahkan pengunjung web memilih jawaban yang dikehendaki. Untuk menampilkan hasil polling digunakan grafik yang berwarna-warni yang mewakili masing-masing prosentase pilihan jawaban.
Administrator dapat membuat status polling ditutup atau dibuka. Bila status polling ditutup maka anggota tidak dapat memilih pilihan jawaban polling sampai polling tersebut kembali dibuka oleh administrator.
Segmen Program 4.34. Coding Menginputkan Polling
$strsql = "INSERT INTO Polling (Tanggal, Subject, Pertanyaan, IsClosed) VALUES (now(),
".quotedStr($_POST["subject"]).", ".quotedStr($_POST["pertanyaan"]).", 0)";
$sql = @mysql_query($strsql,$conn);
$maxID = getRow("SELECT MAX(IDPolling) AS count FROM Polling");
for ($i=1;$i<=10;$i++) {
if (!empty($_POST["jawaban".$i]) && trim($_POST["jawaban".$i]) != "") {
$strsql = "INSERT INTO PollingDtl1(IDPolling, Jawaban, Terpilih) VALUES (".$maxID["count"].",
".quotedStr($_POST["jawaban".$i]).", 0)";
$sql = @mysql_query($strsql,$conn);
}
Keterangan:
Segmen Program 4.34. tersebut berfungsi untuk memasukkan pertanyaan polling ke tabel polling dan memasukkan pilihan jawaban polling ke tabel pollingdtl1.
Segmen Program 4.35. Coding Tutup Polling
if ($_GET["act"]==$ACT_LOCK) {
$strsql = "UPDATE Polling SET IsClosed = 1 WHERE IDPolling=". $_GET["idp"];
$sql = @mysql_query($strsql,$conn);
Keterangan:
Segmen Program 4.35 tersebut berfungsi untuk menutup polling.
Segmen Program 4.36. Coding Buka Polling
if ($_GET["act"]==$ACT_UNLOCK) {
$strsql = "UPDATE Polling SET IsClosed = 0 WHERE IDPolling=". $_GET["idp"];
$sql = @mysql_query($strsql,$conn);
}