• Tidak ada hasil yang ditemukan

BAB III ANALISIS DAN PERANCANGAN

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III ANALISIS DAN PERANCANGAN"

Copied!
34
0
0

Teks penuh

(1)

23

ANALISIS DAN PERANCANGAN

3.1 ANALISIS

Analisa adalah kegiatan penelitian yang dilakukan untuk menemukan kekurangan atau permasalahan yang ada pada sistem yang sudah berjalan, kemudian penulis merumuskan serta memberikan solusi sebagai penyelesaian masalah yang ada. Analisis dalam skripsi ini dilakukan dengan mengobservasi pada server VOD seperti Youtube (www.youtube.com), Metacafe (www.metacafe.com) , dan Dailymotion (www.dailymotion.com), dimana penulis mencoba untuk melihat video-video yang ada dalam situs web video server tersebut serta mempelajari proses kerja ketika video tersebut diunduh.

3.1.1 Analisa System Saat Ini

Pada dasarnya, Youtube, Metacafe, Dailymotion adalah video-hosting yaitu server yang dapat menyimpan video-video yang diunggah oleh pengguna, serta dapat menampilkan video-video tersebut layaknya situs jejaring Internet, yang video-videonya dapat dicari maupun ditonton oleh pengunjung umum. Pengunjung yang terdaftar dalam video-hosting tersebut diperbolehkan untuk mengunggah video tanpa dipungut biaya. Karena bersifat “tanpa biaya”, situs-situs ini (terutama Youtube karena dukungan yang besar dari Google) menjadi begitu populer dikalangan pengguna Internet. Video yang tersedia merupakan video yang sudah direkam sebelumnya (pre-recorded), oleh sebab itu situs-situs ini disebut juga dengan VOD server (Video On Demand – Video berdasarkan permintaan) yaitu server yang menyediakan video yang sudah direkam sebelumnya dan dapat dimainkan menggunakan perangkat lunak peramban kapanpun berdasarkan pilihan dari pengguna. Berikut ini beberapa fakta mengenai video server (Youtube, 2010):

(2)

1. Ditonton oleh lebih dari 2 milyar orang setiap harinya.

2. Urutan ke-3 situs terpopuler (berdasarkan http://www.alexa.com/topsites per 18 Juni 2011).

3. Server Youtube sudah tersebar di 23 negara dengan 24 bahasa yang berbeda. 4. Ada 24 jam durasi video yang diunggah setiap 1 menit.

5. 70% pengguna berasal dari luar Amerika Serikat.

6. Butuh waktu sebanyak 1700 tahun bagi anda untuk menyaksikan ratusan juta video yang sudah dimiliki Youtube.

Gambar 3.1 Peringkat Youtube berdasarkan alexa.com (18 Juni 2011)

Dengan fakta-fakta yang ada, situs VOD menjadi lahan yang menggiurkan untuk sarana hiburan, penyaluran kreativitas diri melalui rekaman video, sampai pada promosi produk atau iklan. Tidak sedikit orang yang bisa populer dengan memanfaatkan Youtube. Katakanlah Justin Bieber yang saat ini sedang populer dikalangan remaja di seluruh dunia, berawal dari “keisengannya” mengunggah video saat dia bernyanyi dan ternyata mendapat respon baik dari masyarakat. Di Indonesia kita bisa kenal Shinta dan Jojo yang juga populer karena video lipsing yang mereka unggah berjudul “Keong Racun” ditonton sekitar 6.870.799 pemirsa

(3)

Youtube, dan yang terkini adalah seorang Briptu yang bernama Norman Kamaru yang juga populer dengan video lipsing-nya di Youtube. Cobalah ketik kata kunci yang diakhiri dengan kata “tutorial” , seperti “photohsop tutorial”, maka kita akan disajikan berbagai macam video tutorial yang berhubungan dengan kata kunci yang kita ketikkan secara gratis sebagai bahan belajar. Ada begitu banyak peluang yang bisa kita manfaatkan dari kehadiran VOD server bagi pengguna Internet di seluruh dunia.

Cara menonton video yang ada di dalam situs Youtube, Metacafe dan Dailymotion yaitu dengan mencari video yang ingin ditonton dengan mengetikkan kata kunci, lalu memilih salah satu video dari hasil pencarian untuk menonton video tersebut (lihat Gambar 3.2).

Gambar 3.2 Cara Menonton Video di Youtube, Metacafe dan Dailymotion

Untuk mengunggah video, setiap VOD server mewajibkan anda untuk melakukan proses login terlebih dahulu, jika belum memiliki akun di VOD server tersebut, anda bisa melakukan registrasi secara gratis. Setelah proses login berhasil, pilih file yang ingin diunggah, lalu tunggu proses unggah selesai (lihat Gambar 3.3).

(4)

Gambar 3.3 Cara unggah video di Youtube

Youtube, Metacafe dan Dailymotion menggunakan pemutar video berbasis Adobe Flash Player, yang dapat kita lihat dengan cara meng-klik kanan pada jendela pemutar video (lihat Gambar 3.4 dalam kotak merah). Seperti diketahui berdasarkan situs Adobe, sampai versi terakhir Adobe Flash Player (Versi 10.3) masih menggunakan teknik video streaming biasa, yaitu mengunduh file video secara berurutan dari urutan awal sampai akhir, dan juga sumber file yang diunduh berasal dari satu sumber saja yaitu server dimana file video tersebut berada (Adobe, 2011). Walaupun Adobe Flash Player yang digunakan mampu mendukung fasilitas meloncat ke waktu tayang yang diinginkan (jump), tetapi tetap saja Adobe Flash Player akan mengunduh file secara berurutan dari posisi jump tersebut sampai terakhir.

(5)

Gambar 3.4 Pemutar video menggunakan Adobe Flash Player (Youtube 17 Juli 2011)

(6)

Gambar 3.5 menjelaskan proses yang terjadi ketika menonton video pada VOD server biasa. Klien 1 meminta untuk menonton katakanlah VideoB (1), VOD server akan mengirimkan VideoB secara berurutan dari awal hingga akhir (2). Selama proses transmisi data tersebut, klien 1 bisa langsung menonton video tersebut (proses buffering). Pada saat yang sama, Klien 2 meminta untuk menonton video yang sama yaitu VideoB (3). VOD server secara bersamaan akan mengirimkan VideoB baik kepada klien 1 maupun klien 2 (4).

3.1.2 Usulan Pemecahan Masalah

Kekurangan dari sistem biasa yang digunakan oleh banyak VOD server adalah: klien mengandalkan server sebagai satu-satunya sumber data. Setiap klien akan selalu mengunduh file video tersebut dari server, walaupun bisa saja pada saat bersamaan, file video tersebut diakses oleh klien lain. Server akan mengirimkan video yang sama kepada klien yang berbeda, menyebabkan redundansi pengiriman file video. Hal ini membutuhkan kinerja server yang besar dan juga ketersediaan lebar jalur data (bandwidth) yang besar untuk bisa melayani permintaan unduh video dari setiap klien yang menonton video yang sama.

Bayangkan jika ada 100 klien yang menonton VideoB secara bersamaan, server akan mengirimkan data yang sama ke 100 klien yang berbeda, hal ini menyebabkan pengiriman data redundan. Kelemahan ini yang ingin penulis manfaatkan untuk mengoptimalkan VOD server sehingga diharapkan mampu mengurangi beban server agar tidak terjadi redudansi pengirimkan data. Agar hal ini bisa dilakukan, penulis mengajukan alternatif pemecahan masalah dengan mengadopsi teknologi yang telah dipakai oleh jaringan peer to peer (p2p) Bittorrent. Sistem yang ingin dibuat akan mengeliminasi redundansi pengiriman data video pada saat video tersebut ditonton oleh lebih dari satu klien, dengan cara memanfaatkan klien-klien yang kebetulan mengakses/menonton video yang sama pada waktu yang bersamaan. Klien yang sedang melihat video yang sama dalam waktu bersamaan bisa berbagi sumber daya antar klien tersebut, sehingga masing-masing klien tersebut bisa saling bertukar (saling mengunduh) file video tersebut. Dengan sistem seperti ini diharapkan mengurangi beban kerja server yang tidak

(7)

lagi mengirimkan redundan file video, karena sumberdaya file akan didistribusikan diantara klien-klien tersebut.

3.1.3 Analisis Kebutuhan Sistem

Setelah melakukan analisa, penulis dapat mengidentifikasi masalah yang ada, mengajukan usulan untuk memecahkan masalah serta mempunyai gambaran untuk membangun sistem baru yang diharapkan dapat memecahkan masalah yang ada. Kebutuhan sistem dalam aplikasi ini terdiri dari kebutuhan fungsional dan kebutuhan non fungsional. Subbab 3.1.3.1 dan 3.1.3.2 menjelaskan macam-macam kebutuhan sistem yang akan dibangun.

3.1.3.1 Kebutuhan Fungsional

Kebutuhan fungsional adalah deskripsi dari aktifitas dan layanan yang bisa disediakan oleh sistem. Berikut ini adalah kebutuhan fungsional dari sistem yang dibuat:

a. Sistem di sisi server memfasilitasi pendistribusian file video yang ditonton oleh lebih dari satu klien, dengan mencatat laporan dari klien-klien yang sedang mengakses video tersebut, mencatat potongan-potongan berapa saja yang klient tersebut miliki, yang nantinya informasi tersebut bisa digunakan oleh klien-klien lain untuk saling mengunduh file video yang diinginkan. File video tersebut akan diunduh oleh klien dalam bentuk pecahan-pecahan kecil. Menurut spesifikasi Bittorrent, ukuran setiap potongan tidak lebih dari 512 Kbyte (Bittorrent, 2011). Penulis menggunakan ukuran potongan sebesar 32 Kbyte karena video-video yang diijinkan diunggah tidak lebih dari 20 Mbyte. b. Sistem di sisi klien bisa memanfaatkan informasi yang tercatat di server yaitu

informasi klien mana saja yang sedang mengakses video tertentu, sehingga klien tersebut bisa menentukan dari klien mana ia akan mengunduh pecahan-pecahan file video yang sedang ditontonnya.

(8)

c. Sistem di sisi klien harus selalu melaporkan dirinya ke server, potongan-potongan berapa saja yang sudah ia miliki dari video yang sedang ditonton dan juga klien harus membuka diri sehingga sumber daya yang dimiliki yaitu berupa potongan-potongan file video yang sudah dimilikinya dapat diunduh oleh klien lain.

d. Format file yang digunakan oleh penulis adalah file video.flv (yang umum digunakan di Internet termasuk Youtube) karena ukurannya yang kecil dengan kualitas yang cukup memuaskan.

3.1.3.2 Kebutuhan Non Fungsional

Kebutuhan non fungsional adalah kebutuhan yang dapat membantu terwujudnya kebutuhan fungsional. Berikut ini adalah kebutuhan non fungsional dari sistem yang dibuat:

a. Sistem di sisi server berupa Java Desktop Aplication dijalankan dengan Sistem Operasi Windows 7.

b. Sistem di sisi klien dijalankan dengan menggunakan web browser (Google Chrome, Mozilla Firefox, Internet Explorer) serta terinstall Java Run Time (JRE) versi terbaru (v 6) di komputernya. Aplikasi yang berjalan di sisi klien berupa Java Applet menggunakan sitem operasi Windows 7 dan Windows XP.

c. Bahasa pemograman yang digunakan adalah Java (JDK v 1.6).

d. Lingkungan pemrograman yang digunakan adalah aplikasi NetBean 7.0. e. Basisdata yang digunakan di server adalah MySQL V 5.5.8.

Penulis menamakan Sistem ini sebagai “VISET” yaitu kependekan dari Video Server mengadopsi teknologi Torrent/Bittorrent.

3.2 RANCANGAN APLIKASI VISET

Rancangan awal pada pembuatan suatu sistem merupakan hal yang penting. Dengan perancangan, maka sistem yang akan dibangun diharapkan memiliki

(9)

fungsi-fungsi yang baik dengan pemanfaatan data yang tepat dan akurat. Sistem Viset ini dibangun dengan tujuan agar dapat mengoptimasi kerja video server dari sisi penggunaan bandwidth yaitu dengan mengurangi redundansi pengiriman video yang sama ke klien, dengan cara mendistribusikan file video ke klien-klien sehingga setiap klien-klien bisa saling meminta dan memberikan potongan video, yang berakibat mengurangi penggunaan bandwidth di sisi server karena klien-klien yang sedang menonton video yang sama dalam waktu bersamaan, sudah dapat diambil dari klien lain yang menonton video yang sama.

3.2.1 Gambaran Umum Rancangan VISET

Gambaran umum rancangan Viset yang penulis buat adalah sebagai berikut: 1. Klien membuka situs Viset (penulis menggunakan alamat http://

innograph.dyndns.org: 90/Viset sebagai server video-hosting).

2. Dalam situs jejaring tersebut, klien dapat melihat daftar video yang tersedia, lalu memilih video yang ingin ditonton.

3. Aplikasi di sisi klien (peramban yang menjalankan java applet) akan mengatur mekanisme pengunduhan potongan video, serta selalu memeriksa apakah ada klien lain yang saat itu juga sedang menonton video yang sama. Jika ada, maka aplikasi di sisi klien akan meminta informasi ke server, klien mana saja yang sedang menyaksikan video tersebut, lalu mencoba menghubungi klien lain tersebut untuk meminta pecahan-pecahan file yang sudah dimiliki oleh klien lain tersebut. Tetapi jika tidak ada lagi klien yang sedang menonton video tersebut, maka proses transmisi data akan sama saja dengan proses transmisi video streaming biasa, yaitu mengunduh dari bagian awal file sampai akhir secara berurutan. Dalam proses pengunduhan potongan dari klien lain bisa saja mengalami kegagalan, jika ini terjadi maka potongan tersebut akan langsung diambil dari server.

4. Sambil mengunduh pecahan-pecahan file dan menyaksikan video tersebut, klien juga secara berkala melaporkan dirinya sendiri ke server tentang pecahan-pecahan berapa saja yang ia miliki, sehingga klien lain juga

(10)

mengetahui data-data tersebut. Selain itu aplikasi klien juga membuka diri sehingga klien lain bisa mengambil pecahan-pecahan yang telah dimiliki.

3.2.2 Visualisasi Rancangan VISET

Visualisasi membantu kita membayangkan cara kerja sistem yang nanti akan dibangun. Penulis membuat visualisasi seperti pada Gambar 3.6. Penjelasan Gambar 3.6 adalah sebagai berikut:

1. Klien 1 memilih video yang akan ditonton, katakanlah dalam hal ini klien memilih video yang berjudul VideoB. Program di sisi klien (java applet) mulai bekerja, menanyakan ke server apakah ada penonton lain selain dirinya yang juga sama-sama menyaksikan VideoB (proses menanyakan ini akan terus dikerjakan secara berkala setiap 20 detik). Pada saat ini kita asumsikan hanya ada satu klien yaitu hanya kita sendiri yang sedang menyaksikan video tersebut.

2. Karena hanya klien 1 saja yang sedang menyaksikan VideoB, maka server mengirimkan file VideoB ke klien 1 secara berurutan, dari awal sampai akhir, file VideoB akan dikirimkan dalam bentuk potongan-potongan kecil. Selama proses ini, klien terus menerus secara berkala menanyakan ke server apakah ada klien lain yang sedang menonton video yang sama yaitu VideoB, dan juga secara berkala melaporkan potongan-potongan file VideoB yang sudah dimiliki. Klien 1 juga membuka diri sehingga klien lain dapat menghubunginya untuk meminta potongan-potongan file yang dimiliki. 3. Ketika klien 1 masih dalam proses mengunduh VideoB dari server belum

selesai, muncul klien 2 dan mulai menonton VideoB. Program applet yang berjalan di sisi klien 2 akan mendeteksi kalau ada klien lain yang saat itu sedang sama-sama menonton VideoB, yaitu klien 1. Program disisi klien akan secara berkala meminta informasi dari server tentang informasi yang secara berkala juga dikirimkan oleh klien 1 berisi potongan mana saja yang klien 1 telah dimiliki. Program di sisi klien akan memilih potongan mana yang akan diunduh (pemilihannya secara acak dengan lebih diprioritaskan pada potongan yang berada di awal-awal file). Lalu memeriksa apakah klien lain

(11)

ada yang memiliki potongan tersebut. Jika ada, klien 2 akan mengambil potongan di klien tersebut (langkah 5) secara langsung. Demikian juga klien 2 akan membuka diri sehingga klien 1 atau klien lain yang sama-sama menonton VideoB bisa mengambil potongan-potongan yang dimiliki klien 2. 4. Jika potongan yang diinginkan klien 2 belum ada yang memiliki, maka

klien 2 akan mengambil potongan tersebut dari server.

5. Langkah ini dilakukan jika potongan yang diinginkan dimiliki oleh klien lain, potongan tersebut akan langsung diambil dari klien tersebut tanpa melalui server lagi.

Pada langkah ke 5 inilah yang menjadi inti dari sistem Viset yang dibuat, karena dengan adanya langkah 5, diharapkan akan mengurangi beban kerja server karena server tidak lagi mengirimkan data video redundan ke klien-klien.

Gambar 3.6 Visualisasi rancangan sistem Viset

Agar sistem yang dibuat memiliki acuan yang jelas tentang bagaimana sistem dibuat, maka diperlukan rancang bangun agar mempermudah dalam pembuatan nantinya. Rancang bangun menjelaskan proses kerja yang harus ada

(12)

dalam sistem nantinya. Gambar 3.7 dan Gambar 3.8 adalah rancang bangun server dan klien.

Gambar 3.7 Diagram Blok Rancang Bangun Viset Server

Pada server harus bisa menyediakan modul-modul untuk melayani permintaan dari klien seperti: meminta informasi tracking, meminta unduh potongan file jika tidak ada klien lain yang menonton video yang sama, meminta layanan untuk melaporkan dirinya, serta melayani permintaan unggah video (lihat Gambar 3.7).

(13)

Gambar 3.8 Diagram Blok Rancang Bangun Viset Klien

Pada klien, ada modul untuk meminta tracking ke server, modul melaporkan dirinya ke server, modul memilih dan mengunduh potongan baik dari server maupun dari klien lain, juga harus tersedia modul server http lokal, yang fungsinya memberikan file video yang sudah diunduh kepada pemutar video JWPlayer, serta modul untuk melayani permintaan dari klien lain untuk mengunduh potongan file yang sudah dimiliki (lihat Gambar 3.8).

(14)

3.2.3 Diagram aktivitas kerja VISET Klien

3.2.3.1 Rancangan proses pada klien

Gambar 3.9 Proses pada Klien (Keseluruhan)

Proses awal menonton video pada sistem Viset adalah berselancar ke situs Viset. Halaman awal situs Viset menampilkan daftar video yang disediakan oleh server. Klien memilih salah satu dari video tersebut untuk ditonton. Proses mengunduh file akan dilakukan oleh java applet, untuk pemutar video digunakan JWPlayer. Untuk saat ini, belum diterapkan proses pencarian video.

(15)

3.2.3.2 Rancangan proses pada Klien (Java Applet)

Inti dari proses di klien adalah java applet yang dijalankan di sisi klien. Java applet mengerjakan beberapa tugas penting seperti terlihat pada Gambar 3.10. Tugas-tugas tersebut antara lain :

1) Memilih potongan yang akan diunduh serta memilih dari mana potongan tersebut akan diunduh. Pemilihan potongan dilakukan terhadap potongan yang belum dimiliki, dipilih secara secara acak, setelah terpilih satu potongan yang belum dimiliki, saatnya memilih darimana potongan itu akan diunduh, caranya adalah membaca hasil tracking (proses berkala yang menanyakan ke server siapa saja yang sedang mengunduh video yang sama, lalu meminta data-data klien tersebut berupa alamat IP serta potongan berapa saja yang sudah dimilikinya). Data klien-klien yang mengunduh video yang sama akan dipilih-pilih apakah memiliki potongan yang akan diunduh, jika ada satu atau beberapa klien lain yang memiliki, maka klien tersebut akan dimasukkan ke dalam daftar highpriority, sedangkan klien-klien yang belum memilikinya akan dimasukkan ke dalam daftar lowpriority. Sumber (provider) potongan akan dipilih dari daftar highpriority. Hasil unduh akan ditulis ke harddisk. Jika terjadi kegagalan pada proses mengunduh suatu potongan dari klien lain, maka sistem akan langsung meminta potongan tersebut dari server.

2) Secara berkala melaporkan dirinya ke server, memberikan informasi berupa IP lokal, IP Global, judul video yang sedang ditonton, potongan-potongan file yang sudah dimiliki yang nantinya informasi ini akan digunakan oleh klien lain untuk menentukan sumber potongan yang akan diunduhnya.

3) Secara berkala meminta informasi klien lain yang sedang menonton video yang sama kepada server. Ini diperlukan untuk pengambilan keputusan memilih sumber potongan (pada proses 1).

4) Membuka koneksi pada port 8911 dan mampu melayani permintaan potongan dari klien lain melalui port tersebut.

5) Memberikan file yang sedang diunduh kepada pemutar video (JWPlayer) sehingga klien bisa menonton video dengan segera setelah potongan-potongan awal sudah dimiliki.

(16)

Gambar 3.10 Proses Pada Klien (Java Applet)

3.2.3.3 Rancangan proses kerja pada VISET Server

Tugas-tugas pada Server bisa kita lihat pada diagram aktivitas dalam Gambar 3.11 yaitu sebagai berikut :

a. Server membuka diri pada port 8910 untuk mendengar permintaan dari klien, mampu melayani klien-klien secara simultan.

b. Server melayani permintaan mengenai data lengkap video yang akan ditonton oleh klien seperti: ukuran setiap potongan dalam byte, ukuran potongan terakhir dalam byte, total keseluruhan potongan.

(17)

c. Server melayani permintaan informasi klien lain (tracking) yang sama-sama menonton video yang sama. Informasi tersebut adalah : jumlah penonton, data-data mengenai penonton-penonton tersebut seperti IPGlobalnya, IPLokalnya dan potongan-potongan yang sudah dimiliki.

d. Server melayani permintaan mengunduh JWPlayer. JWPlayer adalah pemutar video berbasis Flash player yang dapat memainkan file berekstensi .flv (file video yang penulis gunakan).

e. Jika tidak ada klien lain lagi yang memiliki potongan yang dicari, maka server melayani permintaan untuk mengunduh potongan-potongan yang diminta oleh klien.

(18)

f. Server melayani laporan dari klien dan mencatatnya kedalam basisdata. Data-data yang dilaporkan adalah : IPGlobal, IPLokal, potongan-potongan yang sudah dimiliki.

g. Server melayani klien yang ingin mengunggah file video, untuk saat ini hanya dibatasi pada ukuran file yang dibawah 20 Megabyte, dan harus berekstensi .flv

h. Server mampu mendeteksi jika klien putus ataupun berhenti menonton video, sehingga server bisa menghapus klien tersebut dari basisdata.

3.2.3.4 Use Case Diagram

Use Case Diagram menggambarkan penggunaan sistem dari sudut pandang pengguna. Tabel 3.1, Tabel 3.2, Tabel 3.3 dan Tabel 3.4 menjelaskan deskripsi use case dari Gambar 3.12:

(19)

Tabel 3.1 Deskripsi Use Case “Melihat List Video” Nama Melihat list (daftar) video.

Aktor User.

Kondisi Sebelum - Server Viset sudah diaktifkan. - User terhubung dengan Internet.

Alur Normal - User berselancar ke situs Viset dengan mengetik alamat situs Viset pada perangkat lunak peramban.

Kondisi Sesudah - Sistem menampilkan daftar video yang dimilikinya.

Tabel 3.2 Deskripsi Use Case “Memilih video yang ingin ditonton dengan kemampuan p2p”

Nama Memilih video yang ingin ditonton dengan kemampuan p2p.

Aktor User.

Kondisi Sebelum - User sudah berada pada halaman utama situs Viset. - User dapat melihat daftar video.

Alur Normal - User memilih video yang ingin ditonton dari daftar video yang ada dengan cara meng-klik tautan yang berakhiran “(p2p)”.

Kondisi Sesudah - Sistem menampilkan halaman situs baru dimana video pilihan User akan mulai diputar.

Tabel 3.3 Deskripsi Use Case “Memilih video yang ingin ditonton tanpa kemampuan p2p”

Nama Memilih video yang ingin ditonton tanpa kemampuan p2p.

Aktor User.

Kondisi Sebelum - User sudah berada pada halaman utama situs Viset. - User dapat melihat daftar video.

Alur Normal - User memilih video yang ingin ditonton dari daftar video yang ada dengan cara meng-klik tautan yang berakhiran “(tanpa p2p)”.

Kondisi Sesudah - Sistem menampilkan halaman situs baru dimana video pilihan User akan mulai diputar.

Tabel 3.4 Deskripsi Use Case “Unggah video”

Nama Mengunggah video.

Aktor User.

Kondisi Sebelum - User sudah meng-klik tautan “Upload video” pada bagian bawah halaman utama Viset.

- User melakukan login.

Alur Normal - User memasukkan data-data seperti nama, alamat email, judul video, deskripsi video.

(20)

- User memilih file yang akan di unggah, serta gambar cuplikannya.

Kondisi Sesudah - Video dan data User yang mengunggah video akan disimpan di server dan akan ditampilkan di halaman muka situs Viset.

3.2.3.5 Class Diagram

Class Diagram adalah rancang bangun utama pemodelan dalam pemrograman berbasis objek yang nantinya akan diterjemahkan menjadi kode program. Pada rancangan sistem Viset, terdapat dua class diagram yaitu class diagram pada Viset server dan class diagram pada Viset klien.

a. Class Diagram pada Viset Server.

Berikut ini adalah class yang terdapat pada Viset server, yaitu :

1) Class VisetServer, ini adalah class utama yang mengontrol kerja server 2) Class HandleRequestVideoFileDetail, berfungsi untuk melayani

permintaan detail file video yang akan ditonton seperti ukuran file, ukuran potongan file, ukuran potongan file terakhir (biasanya berbeda dengan potongan lain).

3) Class HandleRequestJwplayerFiles, berfungsi untuk melayani per-mintaan file pendukung JWPlayer. File-file ini digunakan untuk pemutar file video di sisi klien.

4) Class HandleRequestPieces, berfungsi untuk melayani permintaan dari klien untuk mengunduh pecahan file yang diminta. Hal ini terjadi jika tidak ada klien lain yang memiliki potongan tersebut.

5) Class Viewer, berfungsi untuk melayani laporan dari klien, lalu mencatat ke dalam basisdata.

6) Class Tracker, berfungsi untuk melayani permintaan data semua klien yang menonton video yang sama.

7) Class HandleLogout, berfungsi untuk menangani klien yang logout (menutup browser dengan normal), lalu menghapus data-data mengenai klien tersebut dari dalam basisdata.

(21)

Gambar 3.13 Class Diagram Viset Server

8) Class Video, berfungsi untuk melayani unggah video dari klien, lalu menyimpan file ke folder video, serta menyimpan informasi video yang diisi pengunggah ke basisdata.

9) Class MonitoringDatabase, tugasnya mengecek klien mana saja yang tidak melakukan logout sebagaimana mestinya dengan cara memonitor basisdata pada table viewer lalu menghapus data yang detaknya sudah lebih dari 20 detik.

(22)

b. Class Diagram pada Viset klien

Berikut ini class yang terdapat pada Viset klien, yaitu :

1) Class VisetClientApplet, ini adalah class utama yang mengontrol kerja klien.

2) Class HTTPServerKecil, berfungsi untuk membuka akses HTTP yang nantinya digunakan JWPlayer mengakses video yang sudah diunduh. Penulis menggunakan port 8912.

3) Class Listening, berfungsi untuk membuka port dan menangani setiap permintaan yang datang dari klien lain untuk mengunduh pecahan-pecahan file yang sudah dimiliki. Penulis menggunakan port 8911.

4) Class SeederTracker, berfungsi untuk untuk terus memonitor klien-klien lain yang sedang menononton video yang sama.

5) Class LaporanKeTracker, berfungsi untuk melaporkan keadaan diri ke server.

6) Class JalankanThreadDownload, berfungsi untuk mengatur peng-unduhan potongan-potongan yang belum dimiliki.

7) Class AksesKeFile, berfungsi untuk menangani pengaksesan file video yang sedang diunduh, baik baca maupun tulis.

8) Class DownloadPiece, berfungsi untuk mengunduh potongan. 9) Class PilihPiece, berfungsi untuk menentukan potongan yang akan

diunduh.

10) Class PersiapanPilihPiece, berfungsi untuk mempersiapkan potongan mana yang akan diunduh, sertadari mana potongan itu diunduh.

(23)

(24)

3.2.3.6 Activity Diagram

Activity Diagram menggambarkan alur kerja dari sistem secara berurutan langkah demi langkah. Proses aktivitas keseluruhan untuk menonton video dapat dilihat pada Gambar 3.15.

Gambar 3.15 Activity Diagram menonton video

Jika klien lain memiliki potongan yang sedang dicari, maka potongan tersebut bisa diminta dari klien lain. Jika dalam proses unduh potongan dari klien lain terjadi kegagalan, maka potongan tersebut akan langsung diunduh dari server. Aktivitas untuk mengunduh potongan dari klien lain bisa dilihat pada Gambar 3.16.

(25)

Gambar 3.16 Activity Diagram mengunduh potongan dari klien lain Klien secara berkala harus melaporkan dirinya ke server, Gambar 3.17 menjelaskan aktivitas untuk melaporkan dirinya ke server. Jika koneksi salah satu klien terputus dengan server, sehingga klien tersebut tidak berhasil melaporkan dirinya ke server (lebih dari 40 detik mengalami jeda semenjak laporan terakhir) maka klien tersebut akan dihapus dari basisdata server, sehingga klien lain tidak lagi meminta potongan dari klien tersebut.

(26)

Gambar 3.18 Activity Diagram mengunggah video

Pada Gambar 3.18 dapat terlihat seluruh rangkaian aktivitas untuk mengunggah video.

3.2.3.7 Rancangan Basisdata

Basisdata yang diperlukan hanya untuk mencatat aktivitas klien saat menonton video, yaitu mencatat globalIP, lokalIP, potongan yang dimilikinya (pieceHas), serta detak untuk keperluan penghapusan jika klien tersebut terputus secara tidak normal (ada pada tabel viewer), data tentang klien tersebut akan dihapus dari tabel viewer setelah klien tersebut tidak lagi menonton video (menutup jendela peramban).

Yang ditulis pada basisdata secara permanen hanya data-data video yang sudah diunggah serta klien yang mengunggah video tersebut. Video disimpan dalam tabel video berisi videoID, namaFileVideo, judulVideo dan deskripsi

(27)

Video. Klien yang mengunggah video dicatat dalam tabel uploader berisi userID, nama dan alamatEmail.

Untuk melayani permintaan informasi klien (tracking), server membutuhkan tabel tracker, berisi ViewerID dan VideoID. Tabel ini terisi dari laporan masing-masing klien. Tabel tracker memiliki ketergantungan terhadap tabel viewer dan tabel video.

Gambar 3.19 Rancangan Basisdata Berikut ini adalah kode program (script) basisdata:

CREATE DATABASE `viset`; USE `viset`;

CREATE TABLE IF NOT EXISTS `video` (

`videoID` int(20) NOT NULL AUTO_INCREMENT, `namaFileVideo` varchar(260) NOT NULL, `judulVideo` varchar(50) NOT NULL, `deskripsiVideo` varchar(50) NOT NULL, PRIMARY KEY (`videoID`)

(28)

CREATE TABLE IF NOT EXISTS `viewer` ( `viewerID` int(20) NOT NULL, `globalIP` varchar(15) NOT NULL, `lokalIP` varchar(15) NOT NULL, `piecesHas` varchar(255) NOT NULL, `detak` varchar(8) NOT NULL, PRIMARY KEY (`viewerID`) );

CREATE TABLE IF NOT EXISTS `uploader` ( `userID` int(20) NOT NULL AUTO_INCREMENT, `namaUser` varchar(20) NOT NULL,

`alamatEmail` varchar(20) NOT NULL, PRIMARY KEY (`userID`)

);

CREATE TABLE IF NOT EXISTS `tracker` ( `videoID` int(20) NOT NULL,

`viewerID` int(20) NOT NULL, KEY `videoID` (`videoID`), KEY `viewerID` (`viewerID`),

FOREIGN KEY (`videoID`) REFERENCES `video` (`videoID`), FOREIGN KEY (`viewerID`) REFERENCES `viewer` (`viewerID`) );

CREATE TABLE IF NOT EXISTS `videouploaderdetail` ( `UserID` int(20) NOT NULL,

`VideoID` int(20) NOT NULL,

`tglUpload` timestamp NULL DEFAULT CURRENT_TIMESTAMP, KEY `VideoID` (`VideoID`),

KEY `UserID` (`UserID`),

FOREIGN KEY (`VideoID`) REFERENCES `video` (`videoID`), FOREIGN KEY (`UserID`) REFERENCES `uploader` (`userID`) );

CREATE TABLE `login` (

`id` int(4) NOT NULL auto_increment, `username` varchar(65) NOT NULL, `password` varchar(65) NOT NULL, PRIMARY KEY (`id`)

);

(29)

3.2.3.8 Deployment Diagram

Deployment Diagram menjelaskan bagaimana sistem dipasang sehingga sistem bisa berjalan sesuai dengan yang diharapkan.

Gambar 3.20 Deployment Diagram

3.2.3.9 Rancangan Antarmuka

Merancang tampilan aplikasi berbasis jejaring (web) merupakan hal yang sangat penting, karena dengan tampilan yang menarik akan menjaga ketertarikan pemakai dan membuat komunikasi secara visual antara komputer dengan pemakai sehingga merasa nyaman dan tidak jenuh.

Perancangan antarmuka lebih dititikberatkan di sisi klien. Dengan desain layar tampilan juga harus memberikan tata letak yang bagus dan memudahkan pemakai dalam pengoperasiannya tanpa mengurangi fungsi-fungsi dalam

(30)

program. Pada sisi server hanya menampilkan sebuah jendela yang menampilkan aktivitas server serta tombol kontrol menutup dan mengecilkan (minimize). Gambar 3.21 adalah rancangan antarmuka pada server.

Gambar 3.21 Rancangan antarmuka VisetServer

Di sisi klien, antarmuka yang dirancang akan ditampilkan di perangkat lunak peramban seperti Google Chrome, Mozilla Firefox, Internet Explorer dan lain sebagainya. Dalam java applet hanya menampilkan progress bar, selebihnya ditampilkan sebagai html biasa. Berikut adalah rancangan antarmuka situs awal Viset di klien yang menampilkan daftar video yang terdapat di server:

Pada Gambar 3.22, “judul situs” hanya menampilkan infomasi tentang situs Viset, versi perangkat lunak Viset yang digunakan, serta menampilkan nama pembuat. Dibawahnya menampilkan daftar video yang terdapat di server, jumlah video yang tampil dalam satu layar tergantung pada resolusi layar yang digunakan klien (dicontohkan ada tiga video yang ditampilkan, jika masih ada lagi video maka akan muncul scroll bar pada bagian kanan untuk melihat daftar video yang ada diurutan bawahnya. Setiap video terdapat dua tautan, pertama adalah tautan untuk menonton video dengan kemampuan p2p (Link 1 (dengan p2p)), yang kedua adalah tautan untuk menonton tanpa kemampuan p2p (Link 2 (tanpa p2p)). Lalu disebelah kanannya terdapat informasi tentang jumlah penonton yang ada saat sekarang. Pada bagian paling bawah layar terdapat tautan (Upload Video) untuk mengunggah file video.

(31)

Gambar 3.22 Rancangan antarmuka utama di Klien

(32)

Gambar 3.23 adalah antarmuka untuk menonton video dengan kemampuan p2p. Bagian paling atas layar hanya menampilkan tulisan “Progress Download” untuk menginformasikan bahwa dibagian bawah terdapat java applet yang sedang bekerja mengunduh file. Pada bagian java applet hanya menampilkan progressbar yaitu potongan mana yang sudah diunduh (berwarna hitam), serta bagian mana yang masih dalam proses unduh (berwarna abu-abu). Pada bagian JWPlayer adalah modul pemutar video, tempat video tersebut dimainkan. Dibagian bawah pemutar video menampilkan informasi waktu berjalan dalam detik sebagai petunjuk lamanya proses unduh video. Dibagian paling bawah layar terdapat informasi dari mana saja potongan-potongan video diambil serta berapa jumlah yang diambilnya.

Gambar 3.24 Rancangan antarmuka pada klien pada link 2 (tanpa P2P)

Gambar 3.24 adalah antarmuka untuk menonton video tanpa kemampuan p2p. pada bagian tengah terdapat pemutar video JWPlayer sebagai tempat menampilkan video, dibagian bawahnya terdapat informasi sudah berapa persen video berhasil diunduh, dan juga sudah berapa lama proses unduh terjadi. Gambar 3.23 dan Gambar 3.24 dirancang untuk proses pengujian, untuk membandingkan pengaruh penggunaan p2p atau tidak terhadap kecepatan unduh video.

Untuk mengunggah file video, klien harus melakukan login terlebih dahulu, formulirnya terlihat seperti Gambar 3.25.

(33)

Gambar 3.25 Menu login untuk unggah file video

Gambar 3.26 Formulir untuk mengunggah file video

Gambar 3.26 adalah rancangan antarmuka untuk mengunggah file video. Pada bagian paling atas adalah judul formulir yaitu “Upload Video”, diikuti pengisian nama, email, judul video, deskripsi video, juga terdapat tombol pillih video untuk memilih file video yang akan diunggah, nama file akan ditambilkan pada kotak isian disebelah kanan tombol tersebut. Ada juga tombol pilih thumbnail untuk memilih file gambar pratinjau (preview) dalam format .jpg, nama file tersebut akan ditampilkan pada kotak isian disebelah kanannya.

Username : Password :

Login

(34)

Gambar

Gambar 3.1 Peringkat Youtube berdasarkan alexa.com (18 Juni 2011)
Gambar 3.2 Cara Menonton Video di Youtube, Metacafe dan Dailymotion
Gambar 3.3 Cara unggah video di Youtube
Gambar 3.5 Setiap klien akan mengunduh file video dari server
+7

Referensi

Dokumen terkait

Dempul (Putty) adalah lapisan dasar (under coat) yang digunakan untuk mengisi bagian yang penyok dalam dan besar atau cacat-cacat pada  permukaan panel/bodi

Jalan raya kabupaten desa keman kec.pamapangan kode pos 30654 Email : [email protected]. INOVASI

Berdasarkan hasil pengolahan data dan analisis yang telah dilakukan sebelumnya, akan dipaparkan penarikan kesimpulan untuk menjawab tujuan penelitian, berkut adalah beberapa hal

(Orang Dengan HIV dan AIDS). Komunikasi yang dilakukan kepada ODHA ini melalui leading sector yakni KPA, Dinas Kesehatan, dan LSM-LSM yang peduli terhadap HIV

Hal yang paling berpengaruh terhadap kecepatan waktu transpor mukosilia hidung adalah kelompok yang terpapar debu gamping dengan p=0,07 dibandingkan dengan status

Iklan Baris Iklan Baris PENGOBATAN Serba Serbi Rumah Dijual PANTI PIJAT PARABOLA/TV PERLENGKAPAN MBL BODETABEK JAKARTA PUSAT JAKARTA PUSAT JAKARTA PUSAT. ADA PITRA Pijat Urut Pria

Masyarakat lebih cenderung berupaya memilih untuk tetap memakai uang kepeng asli China, alternatif kedua yang dipakai yaitu masyarakat ternyata lebih meilih memakai

Sedang menurut Minnadiarly (2009) DBD adalah penyakit menular berbahaya yang disebabkan oleh Virus Dengue, menyebabkan gangguan pada pembuluh darah kapiler dan system