Bab IV Prototipe Pengembangan dan Verifikasi Pada bab ini akan dijelaskan tentang implementasi pada pengembangan yang telah direncanakan dan dirancang. Selain itu, pengujian dan verifikasi akan dilakukan guna mengetahui apakah hasil penelitian dan pengembangan sesuai dengan tujuan yang ditetapkan.
4.1 Prototipe Prototipe adalah bentuk awal (contoh) atau standar ukuran dari sebuah entitas. Dalam bidang desain, sebuah prototipe dibuat sebelum dikembangkan atau justru dibuat khusus untuk pengembangan sebelum dibuat dalam skala sebenarnya atau sebelum diproduksi secara massal. Pada tahap pengembangan, prorotipe
merupakan
hasil
dari
sebuah
perancangan
yang
sudah
diimplementasikan. Pada pengembangan Bebek Jafaik ini, implementasi yang dilakukan meliputi tiga bagian, yaitu implementasi basis data, implementasi program, dan implementasi antarmuka.
4.1.1 Implementasi basis data Seperti yang telah diketahui sebelumnya, terjadi perbaikan basis data pada pengembangan Bebek Jafaik untuk pengunduhan Youtube. Perbaikan tersebut terjadi pada tabel bebek didalam basis data h23238_ryan_db. Perbaikan tersebut tertuju pada atribut “url” dimana atribut tersebut akan digunakan untuk menampung link unduh Youtube. Perbaikan basis data dapat dilihat pada kode SQL dibawah ini.
47
48
DROP TABLE IF EXISTS `bebek`; CREATE TABLE IF NOT EXISTS `bebek` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `waktu` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `ipaddr` varchar(15) DEFAULT '0.0.0.0', `url` varchar(4000) NOT NULL, `md5url` varchar(32) NOT NULL, `size` bigint(20) NOT NULL, PRIMARY KEY (`id`) )
4.1.2 Implementasi Program Sebelum melakukan implementasi program, akan dijelaskan dasar pemrograman pada aplikasi Bebek Jafaik yang terdahulu. Bebek Jafaik menggunakan bahasa pemrograman PHP dan MYSQL. Nama-nama kode PHP yang terdapat pada Bebek Jafaik antara lain za.php, z2.php, index.php, function.php, config.php, dan conn.php. Pada pengembangan kali
ini,
penambahan fungsi-fungsi hanya dilakukan pada kode PHP yang bernama za.php. fungsi-fungsi tersebut antara lain fungsi ambilLinkDownload, ambilFileFormat, dan fungsi ambilHTML. a) Fungsi ambilHTML Di dalam fungsi ini, terdapat kode PHP yang berguna untuk mengambil semua informasi HTML yang terdapat pada URL Youtube yang telah di POST. Fungsi ini menggunakan fungsi CURL yang terdapat pada PHP. Oleh karena itu, fungsi CURL harus diaktifkan terlebih dahulu agar Fungsi ambilHtml dapat berjalan. Berikut merupakan potongan dari fungsi ambilHtml: function ambilHtml($url) { if (function_exists("curl_init")) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); return curl_exec($ch); } else { throw new Exception("No cURL module available"); } }
49
b) Fungsi ambilLinkDownload Fungsi ambilLinkDownload digunakan untuk mengambil semua URL yang digunakan untuk mengunduh video dari Youtube. Fungsi ini akan meletakkan semua informasi yang terdapat didalam HTML halaman Youtube ke sebuah array. Masing-masing array memiliki nama yang berbeda-beda. Pada fungsi ini array [url] yang akan dipanggil untuk mengambil link unduh video Youtube tersebut. Potongan kode pada fungsi ambilLinkDownload dapat dilihat pada kode dibawah ini: try { //Memecah HTML $html = ambilHtml($Url); if(!preg_match_all('/url_encoded_fmt_stream_map=(.[^&]*?)&/i ',$html,$match) throw new Exception ("File Tidak Ditemukan!!!"); } // Decode format map $formatUrl = urldecode($match[1][0]); if (preg_match('/^(.*?)\\\\u0026/', $formatUrl, $match)) { $formatUrl = $match[1]; } if ($formatUrl) { // memecah bagian URL $bagianURL = explode(",", $formatUrl); $Videos = array(); foreach ($bagianURL as $urlMap) { parse_str($urlMap, $data); $Videos[] = $data['url']; } return $Videos; }
c) Fungsi ambilFormatFile Terdapat
persamaan
antara
fungsi
ambilFormatFile
dan
fungsi
ambilLinkDownload. Hanya saja pada fungsi ambilFormatFile yang diambil hanya array yang bernama itag karena array tersebut berguna untuk mengidentifikasikan format file di setiap URL unduh yang terdapat pada halaman video Youtube. Berikut merupakan potongan kode fungsi ambilFileFormat:
50
try { //Memecah HTML $html = ambilHtml($Url); if(!preg_match_all('/url_encoded_fmt_stream_map(.[^&]*?)&/i',$html ,$match)) { throw new Exception ("File Tidak Ditemukan!!!"); } // Decode format map $formatUrl = urldecode($match[1][0]); if (preg_match('/^(.*?)\\\\u0026/', $formatUrl, $match)) { $formatUrl = $match[1]; } if ($formatUrl) { // memecah bagian URL $bagianURL = explode(",", $formatUrl); $ekstensi = array(); foreach ($bagianURL as $urlMap) { parse_str($urlMap, $data); $ekstensi[] = $data['url']; } return $ekstensi; }
d) Proses pemilihan URL Pada proses ini, dilakukan penyeleksian URL antara URL Youtube dan direct link download. Pada proses pemilihan ini, nama domain digunakan untuk membedakan setiap URL. Apabila URL tersebut tidak memiliki nama domain “www.youtube.com’, maka prose selanjutnya akan dilakukan pemanggilan fungsi asli Bebek Jafaik yang sebelumnya, yaitu langsung dilakukan perubahan URL unduh. Namun, apabila nama domain URL tersebut adalah “www.youtube.com”, maka proses selanjutnya adalah melakukan penyeleksian itag-itag untuk mencari format file video tersebut. Sebelumnya akan dhitung jumlah array bideo yang terdapat dalam Youtube dan jumlah tersebut akan digunakan sebagai batasan perulangan untuk mencari format file pada setiap video. Potongan program untuk penyeleksian URL dapat dilihat dibawah ini:
51
$parse = parse_url($_POST["txtURLDL"]); if($parse['host']!="www.youtube.com"){ //fungsi asli Bebek Jafaik akan dipanggil } else { if($parse['path']=="/watch") { $extension=ambilFormatFile($_POST["txtURLDL"]); $videos = ambilLinkDownload($_POST["txtURLDL"]); $jumlah=count($videos); $x=0; while ($x<$jumlah){ if($extension[$x]=='43'){ $URLDL=$videos[$x]; //fungsi asli Bebek Jafaik akan dipanggil echo "
Download : Webm, Low Quality (360p)"; }
4.1.3 Implementasi Antarmuka Tampilan antarmuka yang berubah pada pengembangan aplikasi Bebek Jafaik adalah adanya keluaran nama file yang akan diunduh. Keluaran ini terjadi karena setiap halaman video Youtube terdapat lebih dari satu file yang dapat diunduh. Oleh karena itu, pengembangan ini akan mempersilahkan pengguna untuk memlih file video apa yang akan diunduhnya. Tampilan ini terjadi dikarenakan proses looping atau perulangan yang terjadi didalam perubahan kode file za.php. Tampilan yang terjadi pada hasil perulangan tersebut dapat dilihat pada Gambar 4.1.
52
Gambar 4.1 Hasil keluaran file unduh 4.2 Verifikasi dengan Pengujian Setelah melakukan tahap implementasi, verifikasi akan dilakukan. Verifikasi terdiri atas dua tahap, yaitu pengujian program dan analisis hasil pengujian. Tahap ini adalah tahap akhir untuk menelaah apakah program yang dibuat berjalan sesuai dengan yang diharapkan atau tidak.
4.2.1 Pengujian Pada pengembangan Bebek Jafaik kali ini, pengujian akan dilakukan dengan metode blackbox untuk lebih memfokuskan pada keperluan fungsional dari aplikasi. Dengan metode ini, maka validitas fungsi akan diuji, apakah menghasilkan keluaran yang sesuai dengan yang diharapkan atau tidak. Pengujian fungsionalitas pada aplikasi ini dititikberatkan pada proses pengambilan URL unduh pada Youtube dan sukses tidaknya penampilan hasil pengubahan URL unduh Youtube.
53
4.2.1.1 Lingkungan Pengujian Pengujian dilakukan pada situs www.youtube.com sedangkan perangkat klien yang digunakan adalah Netbook ASUS X101H dengan spesifikasi sebagai berikut: - Sistem Operasi Windows 7 Starter - Processor Intel® Atom(TM) CPU N435 @1.33GHz - Ram 1 GB - Koneksi Internet 512 Kb/s - XAMPP
4.2.1.2 Skenario Pengujian Pengujian aplikasi ini dilakukan pada tanggal 23 Januari 2011 menggunakan Netbook ASUS X101H. Item yang diuji adalah Text Box pada halaman beranda yang digunakan untuk memasukkan URL unduh. Skenario pengujian dapat dilihat pada Tabel 4.1. Tabel 4.1 Skenario Pengujian NO
Item yang diuji
Sifat Normal
1.
2.
Text Box Bebek Jafaik Ketika dimasukkan URL Youtube
Text Box Bebek Jafaik Ketika dimasukkan Direct Link Download
Memasukkan URL
Hasil yang diharapkan Keluar daftar file video
Youtube yang valid
yang dapat diunduh
Cara Pengujian
Aplikasi akan Tidak Normal
Memasukkan URL Youtube yang tidak valid
Normal
memberikan pesan “Kesalahan Terjadi: File Tidak Ditemukan.”
Memasukkan Direct Link
Aplikasi akan langsung
Download yang valid
mengunduh file tersebut Aplikasi akan
Tidak Normal
Memasukkan Direct Link
memberikan pesan
Download yang tidak valid
“Kesalahan Terjadi: File Tidak Ditemukan.”
54
4.2.1.3 Hasil Pengujian Hasil pengujian pada aplikasi pengembangan Bebek Jafaik akan diterapkan pada Tabel Hasil Pengujian. Untuk lebih jelasnya dapat dilihat pada Tabel 4.2. Tabel 4.2 Hasil Pengujian NO
Item yang diuji
Sifat
Memasukkan
Text Box Bebek
Normal
URL Youtube yang valid
Jafaik 1.
Cara Pengujian
Hasil yang diharapkan
Sesuai
dapat diunduh Sesuai
dimasukkan
Tidak
Memasukkan
URL
Normal
URL Youtube
Youtube
Aplikasi akan memberikan pesan “Kesalahan Terjadi: File Tidak Ditemukan.”
yang tidak valid Sesuai
Memasukkan Text Box Normal
Jafaik 2.
Pengujian
Keluar daftar file video yang
Ketika
Bebek
Hasil
Direct Link
Aplikasi akan langsung
Download yang
mengunduh file tersebut
valid
Ketika
Sesuai
Memasukkan
dimasukkan Direct Link
Tidak
Direct Link
Download
Normal
Download yang
Aplikasi akan memberikan pesan “Kesalahan Terjadi: File Tidak Ditemukan.”
tidak valid
4.2.2 Verifikasi Hasil Pengujian Setelah melakukan pengujian, dilakukan analisis terhadap apa saja yang diuji untuk memverifikasikan hasil pengujian terhadap tujuan yang telah diteteapkan sebelumnya. Berikut Analisis hasil pengujian: a) Text Box Bebek Jafaik Untuk Youtube, hasil pengujian pada Text Box Bebek Jafaik ini sesuai dengan tujuan awal karena saat memasukkan URL kedalam Bebek Jafaik, aplikasi akan memeriksa apakah URL tersebut ada atau tidak dalam server Youtube. Ketika URL tersebut valid, maka proses
55
pengubahan akan dilakukan, sebaliknya jika URL tersebut tidak valid maka aplikasi akan mengirimkan pesan kesalahan. b) Text Box Bebek Jafaik untuk Direct Link Download, hasil pengujian pada item tersebut sesuai dengan tujuan alternatif yang telah ditetapkan karena tanpa menghilangkan fungsi sebelumnya, Bebek Jafaik tetap berguna untuk mengunduh file yang telah memiliki direct link download sebelumnya.