BAB IV
IMPLEMENTASI PENGEMBANGAN DAN PENGUJIAN
Pada bab ini akan dibahas mengenai implementasi pengembangan modul aplikasi Jafaik dan pengujian yang dilakukan untuk menemukan kesalahan-kesalahan pada sistem.
4.1 Implementasi
Tahap implementasi merupakan tahap realisasi dari rancangan sistem kedalam struktur pemrograman tertentu dan menghasilkan aplikasi yang siap untuk diuji dan dioperasikan.
Implementasi pembuatan aplikasi yang dibuat meliputi implementasi proses rancangan, implementasi basis data dan implementasi antar muka (user interface). Setelah sistem diimplemetasikan, selanjutnya akan dilakukan pengujian terhadap aplikasi tersebut. Pengujian dilakukan untuk melihat kondisi dan kekurangan-kekurangan aplikasi dan memastikan bahwa masukan (input) menghasilkan keluaran (output) sesuai dengan yang direncanakan, serta memastikan bahwa kebutuhan aplikasi telah terpenuhi
4.1.1 Implementasi Proses
Pada tahap implementasi dan pengembangan Jafaik ini menggunakan fungsi pemesanan tiket bioskop secara online. Fungsi tersebut dibuat guna mempermudah member mendapatkan tiket secara efisien. Berikut ini kode program aplikasi untuk :
Gambar 4.1 Potongan kode halaman beranda
// proses sinopsis & jarak & bintang rating
$sinopsis = substr(strip_tags($rows['sinopsis']),0, 225); while (substr($sinopsis, -1) != " ") $sinopsis = substr($sinopsis,0,strlen($sinopsis)-1); $sinopsis .= "..."; $jarak = $rows['jarak']; $pembulatan = 10 * round($rows['rating']/10); // bulatkan ke sepuluhan terdekat
session_start(); $sess = session_id(); $cinemaID = $_GET['cinema_id']; $idFilm = $_GET['id_film']; $tanggalTayang = date("d-m-Y"); $jamTayang = $_GET['jam_tayang'];
Pada potongan kode di atas merupakan kode untuk memanggil sebuah tabel dimana tabel tersebut berisikan gambar film, sinopsis, judul film, waktu tayang, nama bioskop yang akan menayangkan film tersebut dan harga tiketnya. Pada baris ke-12 terdapat penambahan bentuk rating dari tiap film yaitu dengan variabel $pembulatan = 10 * round($rows['rating']/10. Rating didapat dari situs imdb.com yang kemudian dirubah menjadi gambar bintang dengan pembulatan 10, contoh jika film memiliki rating 70 maka terdapat bintang yang menyala berjumlah 7 pada film.
Gambar 4.2 Potongan halaman beli tiket
Dari potongan kode di atas dapat dijelaskan bagian utama untuk membeli tiket bioskop. Pada baris pertama mendefinisikan fungsi untuk menampilkan id dari cinema tersebut. Pada baris ke-2 mendefinisikan untuk menampilkan id dari film tersebut. Pada baris ke-3 mendefinisikan untuk menampilkan tanggal tayang film yang telah dipilih oleh member. Pada baris ke-4 mendefinisikan untuk menampilkan jam tayang film yang tersedia pada saat ini. Pada baris ke-5 sampai ke-10 mendefinisikan untuk menampilkan teater yang memiliki button beli tiket atau tersedianya fitur mTix.
Gambar 4.3 Potongan halaman login $cinemaID = $rows["cinema_id"]; $idFilm = $rows["id_film"]; $tanggalTayang = date("d-m-Y"); $jamTayang = $rows["jam_tayang"]; $adaMtix = $rows["mtix"]; $stMtix = ""; if ($adaMtix == 'Y') { $stMtix = " | <a href='belitiket.php?cinema_id=$cinemaID&id_film=$idFilm&jam_tayang=$ja mTayang'><em>Beli Tiket</em></a>"; }
Baris session_start () merupakan fungsi untuk memulai session pada bahasa pemrograman php. Pada baris ke-2 sampai ke–7 mendefinisikan untuk variabel dengan method GET. Method GET yaitu pengambilan data dari url.
Gambar 4.4 Potongan halaman login
Dari potongan kode di atas dapat dijelaskan. Pada baris ke-11 tertulis action=’login.php’, pada form action akan diproses dimana nantinya akan di submit. Dsini dijelaskan bahwa form tersebut akan menuju login.php setelah form tersebut tersubmit. Pada baris ke-14 sampai ke-20 merupakan tampilan keluaran yang memiliki tipe hidden. Artinya data yang keluar ditampilkan secara user interface, data yang ditampilkan dari baris tersebut memiliki value untuk mendefinisikan setiap data data pendukung untuk memproses form pemesanan tiket berikut.
Gambar 4.5 Potongan halaman proses login
<?php
$cinemaID = $_GET['cinema_id']; $idFilm = $_GET['id_film']; $tanggalTayang = date("d-m-Y"); $jamTayang = $_GET['jam_tayang']; //definisivariabeluserID dan Password $msisdn_login = $_POST['msisdn_login']; $mpin_login = $_POST['mpin_login']; //set the url
echo "<form action='login.php' method='post'>"; //session
echo "<input type='hidden' name='session_request' id='session_request' value='$sess'/>";
//ambil dari db jafaik
echo "<input type='hidden' name='id_film' id='id_film' value='$idFilm'/>";
echo "<input type='hidden' name='cinema_id' id='cinema_id' value='$cinemaID'/>";
echo "<input type='hidden' name='tanggal_tayang' id='tanggal_tayang' value='$tanggalTayang'/>";
echo "<input type='hidden' name='jam_tayang' id='jam_tayang' value='$jamTayang'/>";
Dari potongan kode di atas dapat dijelaskan Pada baris ke-3 sampai ke-6 pendefinisinan variable untuk penangkapan data yang memiliki metode GET pada bahasa pemrograman php. Pada baris ke-9 sampai ke-10 mendefinisikan variable yang mengambil data dengan metode POST, dalam hal ini variable tersebut sebelumnya diambil dari form pada file belitiket.php yang inputan nya memiliki nama ‘msisdn_login’ dan ‘mpin_login’.
Gambar 4.6 Potongan halaman proses login
Dari potongan kode diatas dijelaskan bahwa fungsi curl_login yang ada pada baris tersebut adalah berfungsi untuk proses login pada halaman situs m.21.cineplex.com. Fungsi curl_login memiliki variable array tersendiri yaitu curl_login(array1 , array2, array3, array4). Array 1 untuk mendefinisikan alamat proses login yang ditujukan, array2 untuk mendefinisikan data inputan yang diperlukan untuk login ,array3 untuk mendefinisikan proxy, arrray4 untuk mendefinisikan status dari proxy tersebut. Jadi, setelah form pada file belitiket.php
function curl_login($url,$data,$proxy,$proxystatus) { $fp = fopen("cookie.txt","w");
fclose($fp);
$login = curl_init();
curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt"); curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt ($login, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725
Firefox/2.0.0.6");;
curl_setopt($login, CURLOPT_TIMEOUT, 40);
curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE); if ($proxystatus == 'on') {
curl_setopt($login, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($login, CURLOPT_HTTPPROXYTUNNEL, TRUE); //curl_setopt($login, CURLOPT_PROXY, $proxy); }
curl_setopt($login, CURLOPT_URL, $url); curl_setopt($login, CURLOPT_HEADER, TRUE); curl_setopt($login, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($login, CURLOPT_POST, TRUE);
curl_setopt($login, CURLOPT_POSTFIELDS, $data); ob_start(); //prevent any output
return curl_exec($login); curl_error($login);
ob_end_clean(); // stop preventing output unset($login);
akan menuju login.php, proses pertama yang dijalankan yaitu fungsi curl_login() yang sudah dideklarasikan secara terperinci untuk mempermudah proses login halaman m.21cineplex.com. Setelah proses pada fungsi curl_login() berjalan makan akan di lanjutkan dengan tampil penyetoran data ke proses fungsi curl_grab_data() .
Gambar 4.7 Potongan Halaman Jadwal Pemesanan
File booking.php merupakan lanjutan dari proses login.php yang memproses halaman login di m.21cinplex.com.jika proses login berhasil maka akan menuju file booking.php ini . Dengan tambahan field input untuk waktu (time) bioskop dan jumlah tiket yang dipesan. Pada baris pertama sampai ke-4 , baris 3 merupakan pendefinisian variable lanjutan yang menggunakan metode session, karna ini menggunakan curl maka akan sering menggunakan metode session untuk mengambil atau memberikan data dari halaman situs aslinya (m.21cineplex.com).
Gambar 4.8 Potongan Halaman Transaksi
Pada baris pertama untuk mendefinisikan variable jumlah tiket yang dipesan bermetode POST. Baris ke-3 dan ke-4 merupakan proses query untuk pengambilan data dari database. Tabel yang dijelaskan pada baris ke-3 adalah tabel tbl_film dan tbl_theater. Data yang ditampikan berdasarkan cinema_id dan id_film. Kemudian pada baris ke-4 untuk menampilkan data query sesuai array variable yang ditujukan.
$text=(!empty($_SESSION['msisdn_login']) ? $_SESSION['msisdn_login'] : null) ; if (isset($_SESSION['msisdn_login'])){ if ($_SESSION['msisdn_login'] != null){ echo $_SESSION['msisdn_login']; } } $tiket = $_POST['tiket'];
$query = mysql_query("SELECT * FROM tbl_film, tbl_theater WHERE
cinema_id.tbl_theater = '$cinemaID' AND id_film.tbl_film = '$idFilm'"); $rows = mysql_fetch_array($query);
4.1.2 Implementasi Basis Data
Proses implementasi basis data direalisasikan dengan membuat struktur basis data dan table-tabel sesuai dengan rancangan basis data konseptual yang terdapat dalam pembahasan pada bab sebelumnya.
Basis data diimplementasikan pada perangkat lunak MySQL menggunakan bantuan PHP MyAdmin untuk mengelola basis data tersebut melalui web browser. Adapun langkah-langkah proses implementasi basis data dapat dijelaskan sebagai berikut :
1. Mengakses PHPMyAdmin
Untuk mengakses PHPMyAdmin buka browser dan masukkan alamat http://localhost/phpmyadmin kemudian akan muncul halaman utama dari PHPMyAdmin untuk mengakses basis data MySQL.
2. Pengambilan data dari aplikasi terdahulu
Pengembanga situs web jafaik dengan penambahan fungsi pemesanan tiket tetap menggunakan data yang diambil dari aplikasi database terdahulu yaitu tabel film dan tabel teater karena kedua tabel tersebut sangat berhubungan dengan penambahan fungsi pemesanan tiket saat ini.
3. Tabel film
Pada aplikasi ini, terlebih dahulu sebelumnya sudah dibuat basis data dengan nama basis data “jafaik” dan terdiri dari beberapa tabel. Tabel film merupakan salah satu tabel yang dikembangkan kembali dengan menambahkan field yaitu cinema_id untuk menampilkan id dari cinema tersebut dan mtix untuk teater yang memiliki fitur M-Tix. Struktur tabel film dapat dilihat pada Gambar 4.9
4. Tabel teater
Tabel teater juga merupakan salah satu tabel yang dibutuhkan untuk mengambil field id_film yang terdapat pada session m.21cineplex.com. Struktur tabel teater dapat dilihat pada Gambar 4.10
Gambar 4.10 Tampilan struktur tabel film
4.1.3 Implementasi Antarmuka
Pada tahap pengembangan sebelumnya di terdapat tampilan lokasi pengguna. Tampilan lokasi merupakan tampilan dimana ketika pengguna mengakses langsung ke alamt situs Jafaik maka server akan melakukan sebuah proses yang nantinya mengubah nilai alamat IP pengguna menjadi nilai latitude dan longitude yang digunakan untuk menentukan lokasi dari pengguna.
Gambar 4.11 Tampilan lokasi pengguna
Pada tahap pengembangan sebelumnya di halaman utama, pengguna disajikan data berupa kolom jadwal film yang direkomendasikan oleh server berdasarkan parameter yang ditentukan oleh server dan juga memiliki tampilan
yang sederhana. Kemudian penulis mengembangkan agar pengguna (user) dapat melakukan pemesanan tiket dengan mengklik beli tiket.
Gambar 4.12 Tampilan halaman utama
Setelah melalukan pencarian jadwal film yang tersedia, maka anggota dapat melakukan pemesanan tiket melalui M-Tix. Berikut tampilan halam login , dimana anggota harus mengisi nomor telepon dan PIN yang telah didaftarkan sebelumnya di M-Tix.
Gambar 4.13 Tampilan halaman login
Pada tampilan selanjutnya merupakan proses pendataan kembali pemesanan tiket yang telah dipilih oleh pengguna dan kemudian pengguna menentukan jumlah tiket yang akan dipesan.
Gambar 4.14 Tampilan halaman jadwal pemesanan
Langkah selanjutnya adalah konfirmasi detail film yang akan dipesan , klik tombol yes untuk melanjutkan dan tombol no untuk emmbatalkan pemesanan tiket.
Gambar 4.15 Tampilan halaman transaksi
Pada tampilan terakhir berisi informasi bahwa pengguna telah berhasil melakukan transaksi dan menjelaskan berapa banyak tiket yang dipesan oleh pengguna, jadwal film yang akan ditonton, sisa saldo M-Tix serta kode transaksi.
Gambar 4.16 Tampilan halaman transaksi berhasil
4.2 Pengujian
Pengujian fungsi pada aplikasi ini dilakukan untuk mengetahui apakah aplikasi ini berjalan sesuai dengan yang telah dirancang. Pengujian aplikasi perlu dilakukan sebagai verifikasi atas sistem atau aplikasi yang telah dibangun. Verifikasi dilakukan dengan pengujian yaitu dengan menggunakan metode blackbox. Dengan metode ini, maka validitas fungsi akan diuji, apakah menghasilkan keluaran yang sesuai dengan yang diharapkan atau tidak.
4.2.1 Lingkungan Pengujian
Pada proses pengujian dan implementasi sistem, penulis menggunakan Personal Computer (PC) dengan spesifikasi sebagai berikut:
1. Perangkat keras (hardware) a. HP Pavilion TS Notebook PC
b. Processor AMD A4-1250 APU with Radeon™ c. Harddisk 320 GB
2. Perangkat lunak (software)
a. Microsoft Windows 8, 64Bit. Sebagai sistem operasi.
b. XAMPP Versi 5.6.8 sebagai paket aplikasi (Webserver, PHP dan Mysql) c. Apache WebServer Versi 2.2.17
d. PHP Scripting Language Versi 3.3.9 e. MySQL Database Versi 5.5.8
f. Notepad ++ v5.9.6.2 (scripting editor) g. Google chrome (Web browser)
4.2.2 Skenario Pengujian
Untuk mengetahui hasil dari aplikasi yang dibuat maka dilakukan skenario pengujian. Pengujian aplikasi ini dilakukan dengan menggunakan metode blackbox. Berikut skenario pengujian aplikasi web pemesanan tiket dengan teknik curl, studi kasus situs web jafaik
Tabel 4.1 Skenario pengujian
No. Menu yang diuji Sifat Kasus pengujian Hasil yang diharapkan
1. Berhasil masuk ke
halaman utama Normal
Anggota otomatis masuk ke halaman utama Menampilkan halaman utama 2. Berhasil masuk ke halaman informasi film
Normal Anggota mengklik bagian beli tiket
Menampilkan halaman login 3. Berhasil masuk ke halaman login Normal Anggota memasukkan no.hp dan pin Menampilkan halaman jadwal pemesanan Tidak Normal Anggota memasukkan no.hp dan pin yang tidak terdaftar Menampilkan halaman informasi peringatan 4. Berhasil masuk halaman login berdasarkan waktu
Normal Anggota login pada pukul 07.00 – 11.00
Menampilkan halaman jadwal pemesanan
Tidak Normal Anggota login pada pukul > 11.00 Menampilkan halaman informasi peringatan 5. Berhasil masuk ke halaman jadwal pemesanan
Normal Anggota menginput jumlah tiket
Menampilkan halaman transaksi
6. Berhasil masuk ke halaman transaksi
Normal Anggota mengklik buy now
Menampilkan sukses melakukan pemesanan
Tidak Normal Anggota mengklik buy now
Menampilkan informasi reload saldo
4.2.3 Hasil Pengujian
Setelah melakukan skenario pengujian yang telah direncanakan maka didapat hasil pengujian sebagai berikut.
Tabel 4.2 Hasil pengujian
No. Menu yang
diuji Sifat Kasus pengujian
Hasil yang diharapkan Keterangan 1. Berhasil masuk ke halaman utama
Normal Anggota otomatis ke halaman utama
Menampilkan
halaman utama Sesuai
2.
Berhasil masuk ke halaman informasi film
Normal Anggota mengklik bagian beli tiket
Menampilkan
halaman login Sesuai
3. Berhasil masuk ke halaman login Normal Anggota memasukkan no.hp dan pin Menampilkan halaman jadwal pemesanan Sesuai Tidak Normal Anggota memasukkan no.hp dan pin yang tidak terdaftar Menampilkan halaman informasi peringatan Sesuai 4. Berhasil masuk halaman login berdasarkan waktu Normal Anggota login pada pukul 07.00 – 11.00 Menampilkan halaman jadwal pemesanan Sesuai Tidak Normal Anggota login pada pukul > 11.00 Menampilkan halaman informasi peringatan Sesuai 5. Berhasil masuk ke halaman jadwal pemesanan Normal Anggota menginput jumlah tiket Menampilkan
Tabel 4.2 Hasil pengujian (Lanjutan)
No. Menu yang
diuji Sifat Kasus pengujian
Hasil yang diharapkan Keterangan 6. Berhasil masuk ke halaman transaksi
Normal Anggota mengklik buy now Menampilkan sukses melakukan pemesanan Sesuai Tidak Normal Anggota mengklik buy now Menampilkan informasi reload saldo Sesuai
4.2.4 Analisis Hasil Pengujian
Berikut merupakan analisis berdasakan hasil keluaran yang didapat, dimana hasilnya sesuai dengan skenario pengujian yang direncanakan :
1. Saat melakukan pemesanan tiket, pengguna harus terdaftar sebagai anggota dikarenakan jika pengguna belum terdaftar sebagai anggota, pengguna tidak bisa melakukan pemesanan tiket
2. Anggota dapat melihat informasi film dan memilih film yang hanya memiliki fitur M-Tix yang berada pada halaman jadwal dan mengklik beli tiket pada kolom tersebut
3. Anggota hanya dapat melakukan pemesanan tiket di waktu tertentu, jika melebihi waktu yang ditentukan. Anggota akan mendapatkan tampilan informasi peringatan.
4. Anggota yang tidak memiliki cukup saldo untuk melakukan pemesanan tiket akan mendapatkan tampilan halaman untuk mengisi ulang saldo terlebih dahulu sebelum melakukan pemesanan tiket.