Bab III Penentuan Alternatif, Evaluasi dan Perancangan 3.1 Analisis Sistem Berjalan Analisis sistem berjalan adalah analisa tentang program yang telah ada sebelumnya yang akan dikembangkan oleh pengembang. Pada kasus ini, sistem yang sudah ada bernama Bebek Jafaik. Bebek Jafaik adalah suatu aplikasi berbasis web yang berguna untuk melakukan pengunduhan dimana suatu firewall membatasi proses unduh tersebut. Sebelumnya akan dijelaskan bagaimana cara server lokal memblokir proses unduh tersebut. Server lokal dapat membatasi proses unduh dengan firewall melalui dua cara. Pertama, dengan penyaringan URL dan kedua dengan penyaringan ekstensi file. Pada server lokal, terdapat daftar-daftar URL yang dilarang oleh firewall tersebut pada klien untuk menuju pada URL tersebut. Firewall akan membatasi atau memblokir proses unduh ketika pengunduh mengirimkan URL yang terdaftar pada pemblokiran. Selain itu pada penyaringan ekstensi file, firewall juga melakukan pendaftaran ekstensi atau format file dan memilih ekstensi mana yang berhak dan yang tidak berhak untuk diunduh. Setelah diuraikan permasalahan di atas, perlu dibuat suatu aplikasi untuk melewati firewall tersebut dan aplikasi yang sudah ada saat ini adalah Bebek Jafaik. Bebek Jafaik sangat berguna bagi pengguna yang senang mengunduh suatu file lewat Internet. Dengan Bebek Jafaik, pengguna dapat melakukan pengunduhan walaupun proses unduh dibatasi oleh suatu firewall. Selain itu, pengguna hanya membutuhkan direct link download yang telah disediakan oleh server web yang diinginkan. 27 28 Berikut gambar kinerja pengunduh ketika firewall memblokir proses unduh. Internet terputus pengunduh Firewall Server tujuan Ditolak Gambar 3.1 Proses Pemblokiran oleh Server Lokal Dapat dilihat pada Gambar 3.1 bahwa pengunduh secara langsung meminta proses unduh yang dilanjutkan kepada server tempat file yang ingin diunduh tersebut. Ketika pengunduh mengirimkan link unduh, firewall akan menyaring link tersebut. Ketika terdapat suatu string atau susunan kata yang terdaftar pada firewall tersebut untuk memblokir URL tersebut, firewall akan segera menghentikan permintaan pengunduh dan tidak akan meneruskan pada server unduh tersebut. Ataupun ketika pengunduh meminta untuk mengunduh file dimana ekstensi file yang ingin diunduh telah terdaftar pada penyaringan pemblokiran ekstensi file, firewall akan dengan segera untuk menghentikan permintaan pengunduh. Setelah melihat kinerja firewall dalam pembatasan proses unduh, pengunduh membutuhkan suatu aplikasi berbasis web yang bernama Bebek Jafaik dimana aplikasi tersebut dapat mengubah string URL atau ekstensi file pada suatu string yang lain dan tidak dapat terlacak oleh firewall. 29 Cara kerja Bebek Jafaik secara umum ditunjukan pada Gambar 3.2. Server Tujuan Internet Merespon permintaan Mengirim URL yang telah diubah Firewall Memberi file yang diminta Aplikasi Bebek Jafaik Mengirim URL Pengunduh Gambar 3.2 Cara Kerja Bebek Jafaik 30 Pada Gambar 3.2, dapat dilihat bahwa pengunduh akan memberikan direct link download pada aplikasi Bebek Jafaik yang tidak diblokir . Setelah itu Bebek Jafaik akan mengubah string URL ke bentuk string yang tidak terlacak oleh firewall, dalam hal ini URL diubah kedalam bentuk md5. Ketika proses pengubahan selesai, Bebek Jafaik mengirimkan string yang telah diubah tersebut menuju server yang dituju dalam pengunduhan. Dengan cara ini, pengunduh dapat menerima file yang telah diminta sebelumnya. Diagram alir yang menggambarkan cara kerja Bebek Jafaik ditunjukan seperti Gambar 3.3: Mulai Membaca URL yang di POST Jika URL Valid Algoritma Bebek Jafaik untuk mengubah link download tersebut Selesai Gambar 3.3 Diagram Alir Bebek Jafaik “File Tidak Ditemukan” 31 Bebek Jafaik akan berjalan jika pengunduh telah memiliki direct link download file yang akan diunduh. Direct link tersebut akan diubah kedalam bentuk md5 dan bentuk link baru akan dikirim ke server web yang akan diunduh. Bebek Jafaik mempunyai basis data yang bernama “h23238_ryan_db” untuk menyimpan tabel “bebek” yang berguna untuk menyimpan atribut-atribut yang dibutuhkan dalam pengubahan URL. Untuk lebih memahami struktur tabel bebek yang dimiliki Bebek Jafaik, Data Object Description (atribut-atribut yang dimiliki oleh suatu tabel) digambarkan pada tabel berikut ini. Tabel 3.1 Data Object Description tabel bebek pada aplikasi Bebek Jafaik KEY PK NAMA FIELD TIPE DATA UKURAN NULLABLE id bigint 20 No waktu timestamp - No ipaddr varchar 15 Yes url varchar 255 No md5url varchar 32 No size bigint 20 No 3.2 Penentuan Alternatif Setelah melakukan analisis terhadap sistem yang sudah ada dan mendapatkan permasalahan yang akan diselesaikan, penentuan tujuan harus dibuat guna mendapatkan gambaran untuk pengembangan yang akan dilakukan. Bebek Jafaik memiliki algoritma untuk mengubah direct link download ke dalam bentuk md5 untuk mengakali server lokal agar link yang kita kirimkan tidak dapat terbaca pada firewall tersebut. Namun, permasalahan akan muncul jika pengguna tidak memiliki direct link download tersebut. penulis akan mengembangkan aplikasi Bebek Jafaik agar pengguna tidak usah repot-repot mencari direct link download itu sendiri. Pada pengembangan kali ini, penulis akan mengembangkan aplikasi Bebek Jafaik untuk melakukan pengunduhan pada situs Youtube.com melalui Bebek Jafaik itu sendiri. Pengembangan ini dilakukan guna memperbaiki dan menambal 32 kekurangan yang terdapat dalam Bebek Jafaik itu sendiri, yaitu memasukkan URL Youtube yang bukan termasuk direct link download dan memberikan link baru yang telah dikonversi dan mengunduh tanpa terdeteksi oleh server lokal. 3.3 Evaluasi Alternatif Setelah melakukan tujuan alternatif diatas, evaluasi akan dilakukan terhadap tujuan alternatif yang telah ditentukan. Evaluasi adalah proses penilaian terhadap suatu hal. Evaluasi pada tahap ini dilakukan untuk menelaah lebih lanjut tentang tujuan yang telah ditetapkan sebelumnya. Evaluasi akan dibagi menjadi dua, yaitu analisis terhadap usulan yang diberikan dan analisis risiko. 3.3.1 Analisis terhadap usulan yang diberikan Tujuan yang telah ditetapkan sebelumnya adalah mengembangkan aplikasi Bebek Jafaik agar dapat mengunduh file dari Youtube yang bukan termasuk direct link download. Sebelum kita menambahkan fungsi pada Bebek Jafaik, kita harus meneliti terlebih dahulu bagaimana Youtube itu sendiri dan bagaimana kita mendapatkan link download pada Youtube. Untuk mengetahui isi pada body (segala hal yang terdapat didalam halaman Youtube), diperlukan aplikasi yang bernama Fiddler. Untuk lebih lanjut, lihat gambar dibawah ini sebagai hasil analisis dengan Fiddler. Gambar 3.4 Hasil analisis terhadap salah satu halaman pada Youtube 33 Dapat dilihat pada Gambar 3.4 bahwa di setiap halaman Youtube terdapat URL untuk melakukan pengunduhan file tersebut. URL tersebut ditandai dengan lingkaran berwarna merah. URL tersebut nantinya akan digunakan oleh Bebek Jafaik untuk dikonversi. URL tersebut memiliki jumlah karakter yang sangat panjang, sekitar 300 sampai 500 karakter Setelah melakukan penelitian terhadap situs Youtube, ternyata didalam setiap video yang di share (dibagikan) di Youtube memiliki masing-masing format file yang berbeda-beda. Untuk mengidetifikasikan masing-masing format file pada Youtube, diperlukan aplikasi Downloader yaitu Internet Download Manager. Aplikasi tersebut dapat mengidetifikasikan besar-kecilnya suatu file dan tentunya disertai dengan format file tersebut. Cara Youtube untuk membedakan format file pada masing-masing video adalah dengan cara memberikan id khusus yang diletakkan pada bagian dari array URL download setiap video Youtube. Nama bagian dari array tersebut adalah “itag”. Itag berisikan identitas ber tipe number dimana setiap angka-angka tersebut akan mengidentifikasikan format file video tersebut. Sebagai contoh, kita akan mengunduh video yang sudah memiliki URL download dibawah ini: http://o-o.preferred.pttelkombth1.v4.lscache6.c.youtube.com/videoplayback?sparams=id%2Cexpire%2Cip%2Cipbits%2Citag %2Csource%2Cratebypass%2Ccp&fexp=906335%2C900504%2C909304&itag=22&ip=118.0.0. 0&signature=5D4AAB47024208AFA98DA0D9AC9EE00A31981854.5375EEF744495B4FD2EFB 903FEF7C0264746435B&sver=3&ratebypass=yes&source=youtube&expire=1326928175&key =yt1&ipbits=8&cp=U0hRS1lNVl9MT0NOMV9RR1pCOlBEWGZyT2hQclhs&id=bddd080ed2efe 09e Apabila kita mengunduh URL tersebut, maka format file yang akan diterima adalah mp4 seperti yang dapat dilihat pada Gambar 3.5. 34 Gambar 3.5 Hasil unduh pada itag=22 Ketika semua format file telah diketahui, masih terdeteksi beberapa masalah terhadap setiap video di Youtube. Dari hasil yang didapat pada proses penelitian terhadap itag pada Youtube, terdapat tiga jenis format file yang berbeda. Tiga format file tersebut adalah WebM, mp4 (MPEG-4), dan flv (Flash Video). Permasalahan muncul ketika format file yang diketahui memiliki ukuran file yang berbeda-beda. Dari hasil tersebut, dapat disimpulkan bahwa setiap ukuran pada setiap format file menunjukkan kualitas video tersebut. Sayangnya, Internet Download Manager tidak dapat memberikan rincian file yang telah diunduh. Rincian yang dibutuhkan untuk membedakan kualitas masing-masing video adalah pixel yang dimiliki setiap video. Pixel adalah singkatan dari Picture Element yang berarti unsur gambar atau representasi sebuah titik terkecil dalam sebuah gambar grafis yang dihitung per inci. Untuk mengetahui ukuran pixel pada setiap video diperlukan aplikasi yang bernama Media Info. Mediainfo menyediakan layanan untuk mengetahui semua informasi pada file yang bertipe audio dan video. Untuk lebih jelasnya, lihat Gambar 3.6. 35 Gambar 3.6 Analisis dengan Media Info Setelah melakukan beberapa langkah penelitian, telah didapat dua hasil pada penelitian array itag pada video Youtube. Hasil tersebut adalah file format dan ukuran pixel pada tiap-tiap video. Untuk lebih jelasnya tentang hasil penelitian tersebutdapat dilihat pada Tabel 3.2. 36 Tabel 3.2 macam-macam id itag, format file dan ukuran pixelnya Id pada Format file Ukuran pixel itag 43 WebM dengan kualitas rendah 360 pixel 44 WebM dengan kualitas sedang 480 pixel 45 WebM dengan kualitas tinggi 720 pixel 5 Flv dengan kualitas sangat rendah 240 pixel 34 Flv dengan kualitas sedang 320 pixel 35 Flv dengan kualitas tinggi 480 pixel 18 Mp4 dengan kualitas rendah 480 pixel 22 Mp4 dengan kualitas sedang 720 pixel 37 Mp4 dengan kualitas tinggi 1080 pixel 3.3.2 Analisis Risiko Analisis risiko adalah melakukan suatu analisis untuk mencari risiko apa saja yang dapat terjadi dimasa yang akan datang pada pengembangan aplikasi Bebek Jafaik ini. Setelah melakukan penelitian terhadap Youtube dan Bebek Jafaik itu sendiri, dapat disimpulkan bahwa terdapat risiko-risiko dalam pengembangan Bebek Jafaik. Risiko-risiko tersebut adalah sebagai berikut. a) Link download yang diberikan Youtube tidak dapat digunakan pada penyedia layanan Internet yang berbeda karena link download yang diberikan Youtube menggunakan cache dengan nama penyedia layanan Internet tersebut. Dengan kata lain, link download yang diberikan oleh suatu penyedia layanan, tidak dapat dipakai pada penyedia layanan Internet yang berbeda. b) Penambahan fungsi pada Bebek Jafaik akan menambah beban kinerja Bebek Jafaik dikarenakan terjadi suatu proses seleksi URL dan tampilan link download Youtube didalamnya. 37 3.4 Perancangan Pada pengembangan aplikasi Bebek Jafaik untuk mengunduh dari Youtube, tidak memiliki banyak perubahan dari aplikasi yang telah adap sebelumnya. Hanya saja terjadi beberapa penambahan dan perubahan fungsi yang disesuaikan pada tujuan yang diharapkan. Perancangan sistem merupakan awal dari perancangan perangkat lunak. Perancangan ini dilakukan untuk mengetahui kondisi sistem dan kinerja sistem secara umum. Perancangan sistem yang akan dilakukan meliputi diagram alir program dan cara kerja sistem yang akan dibuat. 3.4.1 Gambaran Umum Pada Youtube, klien dapat melakukan streaming video dan menonton video tersebut tanpa harus mengunduhnya. Permasalahan akan muncul ketika klien ingin mengunduh video tersebut. Youtube tidak memiliki direct link download seperti halnya situs-situs file sharing (situs yang menyediakan file-file yang dapat diunduh, seperti Indowebster dan 4shared) lainnya.Walaupun sudah cukup banyak aplikasi-aplikasi dan situs-situs yang dapat melakukan pengunduhan dari Youtube, sampai saat ini belum ada situs-situs atau aplikasiaplikasi yang dapat melakukan pengunduhan ketika firewall disuatu jaringan internal telah melakukan pemblokiran terhadap situs Youtube. Pengembangan aplikasi Bebek Jafaik ini tidak mengalami banyak perubahan pada sistem sebelumnya, namun hanya saja penambahan –penambahan fungsi dan dilakukan didalam Bebek Jafaik itu sendiri dan interface(antarmuka). Seperti yang kita ketahui, pengunduh tidak dapat melakukan proses pengunduhan ketika link unduh tidak dimiliki atau diketahui. Oleh karena itu, dilakukan penelitian diatas untuk mendapatkan direct link download pada Youtube. Setelah kita dapat mendapatkan direct link download pada Youtube, akan dilakukan konversi string link unduh Youtube terhadap string lain yang tidak dapat terdeteksi oleh server lokal. Setelah itu pengunduh dapat melakukan proses pengunduhan ketika link download yang telah dikonversi telah didapatkan. 38 3.4.2 Perancangan proses Perancangan proses menjelaskan masukan dan keluaran dari setiap proses yang terjadi dalam aplikasi Bebek Jafaik digambarkan ke dalam bentuk diagram alir. Diagram alir program atau flowchart merupakan diagram yang menggambarkan urutan logika dari suatu prosedur untuk memecahkan suatu masalah. Berikut ini adalah gambar diagram alir program pengembangan Bebek Jafaik yang akan dikembangkan. Mulai Membaca URL yang di POST ya domain adalah www.youtube. com ya URL path= tidak ”/watch” tidak Algoritma Bebek Jafaik untuk mengubah link download tidak URL valid “URL Tidak Ditemukan” ya algoritma Bebek Jafaik untuk Youtube Link download youtube yang telah diubah Selesai Gambar 3.7 Diagram Alir Pengembangan Bebek Jafaik 39 Pada Gambar 3.7, dapat disimpulkan bahwa terdapat beberapa perbedaan dan tambahan fungsi pada aplikasi Bebek Jafaik sebelumnya. Ketika pengguna aplikasi memasukkan URL yang dituju, aplikasi Bebek Jafaik akan melakukan seleksi terhadap URL yang diterima. Proses seleksi tersebut melibatkan nama domain “www.youtube.com” sebagai syarat seleksi. Ketika URL yang diterima mengandung domain www.youtube.com, aplikasi Bebek Jafaik akan melanjutkannya untuk melakukan proses seleksi selanjutnya apakah URL yang dimasukkan yang mengandung URL path “/watch” atau tidak. Apabila URL tersebut tidak mengandung path “/watch", maka proses pada aplikasi Bebek Jafaik akan mengeluarkan output “File tidak ditemukan” dan akan berhenti. Sebaliknya, apabila URL tersebut mengandung path “/watch", URL tersebut akan diproses untuk diubah. Kemudian setelah diproses, akan tampil keluaran nama file yang akan diunduh dimana nama file tersebut akan di hiperlink(dilanjutkan atau ditunjukkan) kepada URL yang sudah diubah. Kembali lagi kepada penyeleksian pertama, apabila string URL yang diterima tidak memiliki nama domain www.youtube.com, maka proses perubahan URL terjadi dan Bebek Jafaik akan melakukan pengunduhan secara otomatis dan tidak menampilkan keluaran apapun seperti pada pengunduhan Youtube sebelumnya. Pada pengembangan Bebek Jafaik, akan ditambahkan fungsi baru dimana fungsi tersebut akan mengambil link download youtube. Kemudian link download tersebut akan diubah oleh fungsi yang telah ada pada Bebek Jafaik. Didalam algoritma tambahan tersebut, terdapat banyak proses-proses yang sebelumnya tidak dimiliki oleh Bebek Jafaik itu sendiri. Untuk lebih jelasnya lihat Gambar 3.8. 40 mulai Ambil URL yang di POST video=ambil_format_fil e(POST URL) ext=ambil_link_downlo ad(POST URL) jumlah= maksimal array pada $video X=0 tidak X<jumlah selesai ya ya Ext[x]=43 tidak URLDL=video[x] ya Ext[x]=44 tidak Ext[x]=45 ya tidak ya Ext[x]=5 tidak X++ Ext[x]=34 ya Algoritma Bebek Jafaik yang asli tidak ya Ext[x]=35 tidak ya Ext[x]=18 tidak Ext[x]=22 ya dikonversi tidak tidak Ext[x]=37 Hiperlink unduh yang telah ya Gambar 3.8 Algoritma Bebek Jafaik untuk Youtube 41 Pada algoritma Bebek Jafaik untuk Youtube, program mengambil URL yang telah di POST sebelumnya. Lalu URL tersebut akan diberikan kepada Function ambil_link_download dan ambil_format_file. Variebel video dan eks telah berisi array-array yang tidak diketahui jumlahnya. Lalu, variabel jumlah akan diisi dengan maksimal pada array video dimana jumlah maksimal tersebut akan dijadikan sebagai batasan perulangan. Variabel eks berisi itag-itag video yang digunakan untuk proses seleksi dimana jika masing-masing seleksi terpenuhi maka URLDL akan dimasukkan oleh isi dari variabel video, yaitu berupa URL download Youtube dan URL tersebut akan dikonversi lewat program Bebek Jafaik yang terahulu. Proses perulangan terus berlangsung sampai syarat perulagan tidak terpenuhi. Telah dijelaskan bahwa, terdapat dua algoritma lagi dalam pengembangan Bebek Jafaik. Dua Function yang akan dijelaskan berguna untuk mengambil link unduh pada URL yang di POST kan dan mengambil itag pada video tersebut. Sebelumnya, pada setiap halaman video Youtube terdapat array-array yang berisi URL, itag, expire, dan lain-lain. Fungsi yang akan digambarkan nanti akan memisahkan antara array URL dan array itag. Gambar 3.9 menjelaskan Fungsi ambil_link_download yang terdapat dalam pengembangan Bebek Jafaik. Sedangkan pada Gambar 3.10 menjelaskan Fungsi ambil_format_file yang terdapat dalam pengembangan Bebek Jafaik. 42 mulai Pencarian URL URL ditemu kan Link tidak ditemukan Decode URL Membagi array khusus link download Meletakkan array khusus link download pada variabel $Videos Selesai Gambar 3.9 Algoritma fungsi pencarian link unduh Youtube 43 mulai Pencarian URL URL ditemu kan Link tidak ditemukan Decode URL Membagi array khusus link download Meletakkan array khusus format file pada variabel $ekstensi Selesai Gambar 3.10 Algoritma fungsi pencarian format file video Youtube 44 Pada Gambar 3.9 dan Gambar 3.10 tidak memiliki banyak perbedaaan. Hanya saja, pada Gambar 3.9 dilakukan khusus untuk pencarian link unduh dan pada Gambar 3.10 dilakukan khusus untuk pencarian format file. Perbedaan fungsi ini dilakukan karena format file dan link download berada pada array yang berbeda. 3.4.3 Perbaikan Basis Data Seperti yang telah dijelaskan pada sub bab Analisis terhadap usulan yang diberikan, dapat diketahui bahwa untuk menyimpan string url pada tabel bebek perlu dilakukan pembaharuan atribut “url” karena Bebek Jafaik hanya dapat menampung jumlah karakter URL paling panjang 255 karakter, sedangkan link download yang dimiliki youtub memiliki panjang karakter antara 300-500 karakter. Oleh sebab itu, pengembangan ini akan mengubah sedikit basis data yang terdapat dalam Bebek Jafaik. Perubahan Basis data tersebut bisa dilihat pada Tabel 3.3. Tabel 3.3 Data Object Description pada tabel bebek yang telah diperbaharui KEY PK NAMA FIELD TIPE DATA UKURAN NULLABLE id bigint 20 No waktu timestamp - No ipaddr varchar 15 url varchar 4000 No md5url varchar 32 No size bigint 20 No Yes Pada tabel bebek yang telah diperbaharui ini, dapat dilihat bahwa jumlah maksimum URL yang dapat ditampung adalah sekitar 1024, sangat beda dengan sebelumnya, yaitu 255 karakter. Sebenarnya, URL memiliki batasan karakter atau panjang maksimum. Ada 2 hal yang mempengaruhi panjang suatu URL yang dapat diterima, yaitu: web server dan web client (web browser) (http://hiox.org, 18 Januari 2012). 45 a) Web Server Apache mengijinkan maksimum 4.000 karakter, dan setelah itu akan menampilkan pesan kesalahan berisi “413 Entity Too Large”. b) Web Browser Mozilla Firefox mampu mengatasi karakter sampai dengan 65.536 karakter. Sebenarnya, masih banyak web server dan web browser yang membatasi panjang URL, tetapi pada kasus ini penulis hanya memberikan dua contoh diatas karena penulis menggunakan Web Server dan Web Browser untuk melakukan pengembangan aplikasi Bebek Jafaik, yaitu XAMPP dan Mozilla Firefox. 3.4.4 Perancangan Antarmuka Antarmuka merupakan bagian yang menghubungkan antara sistem dan pengguna aplikasi. Semakin baik antarmuka yang diberikan, maka semakin memudahkan pengguna memakai aplikasi tersebut. Oleh karena itu, untuk membuat antarmuka yang baik, maka dibuat suatu rancangan tersebut terlebih dahulu. Sebenarnya tidak terdapat perubahan pada tampilan awal Bebek Jafaik yang telah dikembangkan, namun terdapat tambahan tampilan pada hasil keluaran pada halaman yang terdapat link download Youtube. a) Tampilan Halaman Beranda Halaman beranda merupakan tatap muka pertama kali antara pengguna dan sistem. Untuk pengembangan Bebek Jafaik tidak terjadi perubahan halaman beranda dan masih menggunakan desain Bebek Jafaik yang terdahulu. 46 b) Tampilan pada halaman keluaran URL Youtube Ketika Bebek Jafaik telah mengubah URL Youtube, akan muncul halaman baru dimana didalamnya terdapat nama ekstensi file video yang menunjuk ke URL Youtube yang telah diubah. Lalu, dibawah nama-nama ekstensi file video tersebut, terdapat tombol Home untuk kembali ke halaman beranda. Untuk lebih jelasnya, lihat Gambar 3.11. Nama ekstensi file satu Nama ekstensi file dua Nama ekstensi file tiga Dan seterusnya HOME Gambar 3.11 Tampilan Halaman Keluaran URL Youtube