BAB II DASAR TEORI
Berisi dasar teori yang berhubungan dengan perancangan aplikasi antara lain mengenai HTTP, HTML, Protocol, Streaming, MySQL, PHP, Java Media Framework, kompresi video dan Wireshark. 2.1.
HTTP HTTP (HyperText Transfer Protocol) adalah protokol yang dipergunakan untuk
mentransfer dokumen dalam World Wide Web (WWW) atau sebuah protokol meminta / menjawab antara client dan server, maksudnya adalah data dokumen dikirim sesuai dengan isi dari dokumen tersebut tanpa memandang tipe dari dokumen. 2.1.1. Sejarah HTTP Protokol HTTP pertama kali dipergunakan dalam WWW pada tahun 1990. Pada saat tersebut yang dipakai adalah protokol HTTP versi 0.9. Versi 0.9, pada tahun 1996 protokol HTTP diperbaiki menjadi HTTP versi 1.0. Perubahan ini untuk mengakomodasi tipe-tipe dokumen yang hendak dikirim beserta enkoding yang dipergunakan dalam pengiriman data dokumen. Sesuai dengan perkembangan infrastruktur internet maka pada tahun 1999 dikeluarkan HTTP versi 1.1 untuk mengakomodasi proxy, cache dan koneksi yang persisten. HTTP sendiri juga digunakan sebagai protokol umum untuk komunikasi diantara berbagai user agent ( user agent adalah istilah yang digunakan untuk program yang dijalankan di sisi client, seperti web browser misalnya dalam konteks HTTP ) dan proxy / gateway dengan sistem internet lain seperti SMTP (Simple Mail Transfer Protocol – RFC 821 ), NNTP ( Network News Transfer Protocol – RFC 977 ), FTP ( File Transfer Protocol – RFC 959 ), Gopher ( RFC 1436 ) dan WAIS ( Wide Area Information Servers ). Dengan demikian, HTTP mengijinkan akses pada sumber daya yang tersedia pada aplikasi yang berbeda.
2.1.2. Fungsi Dan Cara Kerja HTTP HTTP, Muncul di awal setiap alamat halaman web, HTTP menetapkan mekanisme standar untuk pertukaran ditingkat aplikasi pesan antara perangkat di website.
Semua
layanan website dijalankan melalui protokol ini. HTTPS adalah variasi bagian dari HTTP, dimana browser menambahkan lapisan enkripsi 6
World Wide Web Consortium dan Internet Engineering Task Force, bekerja untuk pengembangan HTTP. Protokol ini digunakan untuk pengambilan interlink dokumen teks dilayanni oleh website dan untuk mengakses sumber daya melalui website dengan menggunakan Uniform Resource Locator (URL). Cara Kerja Protokol menetapkan bagaimana komputer berkomunikasi satu sama lainnya. Protokol adalah seperangkat aturan dan prosedur yang harus diikuti oleh komputer untuk menerima dan mengirimkan pesan. Protokol yang paling umum digunakan saat ini adalah HTTP, SMTP, FTP, IMAP, POP3, dll Fungsi HTTP menetapkan bagaimana pesan diformat dan ditransmisikan, dan tindakan apa dari web server dan browser untuk merespon berbagai perintah. 2.2. HTML HTML (Hyper Text Markup Language) adalah sebuah bahasa markup yang digunakan untuk membuat sebuah halaman web dan menampilkan berbagai informasi di dalam sebuah browser pada internet. Bermula dari sebuah bahasa yang sebelumnya banyak digunakan di dunia penerbitan dan percetakan yang disebut dengan SGML (Standard Generalized Markup Language), HTML adalah sebuah standar yang digunakan secara luas untuk menampilkan halaman web. HTML saat ini merupakan standar internet yang didefinisikan dan dikendalikan penggunaannya oleh World Wide Web Consortium (W3C). HTML berupa kode-kode tag yang menginstruksikan browser untuk menghasilkan tampilan sesuai dengan yang diinginkan. Sebuah file yang merupakan file HTML dapat dibuka dengan menggunakan browser web seperti Mozilla Firefox atau Microsoft Internet Explorer. HTML juga dapat dikenali oleh aplikasi pembuka email ataupun dari PDA dan program lain yang memiliki kemampuan browser. HTML dokumen tersebut mirip dengan dokumen teks biasa, hanya dalam dokumen ini sebuah teks bisa memuat instruksi yang ditandai dengan kode atau lebih dikenal dengan TAG tertentu. Sebagai contoh jika ingin membuat teks ditampilkan menjadi tebal seperti: TAMPIL TEBAL, maka penulisannya dilakukan dengan cara:
TAMPIL TEBAL . Tanda
digunakan untuk mengaktifkan instruksi cetak tebal, diikuti oleh teks yang ingin ditebalkan, dan diakhiri dengan tanda untuk menonaktifkan cetak tebal tersebut. Secara garis besar, terdapat 4 jenis elemen dari HTML:
7
Structural Tanda
yang
menentukan
level
atau
tingkatan
dari
sebuah
teks
(contoh,
Golf akan memerintahkan browser untuk menampilkan “Golf” sebagai teks tebal besar yang menunjukkan sebagai Heading 1
Presentational Tanda yang menentukan tampilan dari sebuah teks tidak peduli dengan level dari teks tersebut (contoh,
boldface akan menampilkan bold. Tanda presentational saat ini sudah mulai digantikan oleh CSS dan tidak direkomendasikan untuk mengatur tampilan teks.
Hypertext Tanda yang menunjukkan pranala ke bagian dari dokumen tersebut atau pranala ke dokumen lain (contoh,
Elektro akan menampilkan Elektro sebagai sebuah hyperlink ke URL tertentu),
Elemen widget yang membuat objek-objek lain seperti tombol (
), list (), dan garis horizontal ( ).
2.2.1. HTML 5 HTML5 merupakan sebuah bahasa markah untuk menstrukturkan dan menampilkan isi dari World Wide Web, sebuah teknologi inti dari Internet. HTML5 adalah revisi kelima dari HTML dan hingga bulan Juni 2011 masih dalam pengembangan. Dimana tujuan utama pengembangan HTML5 adalah untuk memperbaiki teknologi HTML agar mendukung teknologi multimedia terbaru, mudah dibaca oleh manusia dan juga mudah dimengerti oleh mesin. HTML5 merupakan hasil proyek dari W3C (World Wide Web Consortium dan WHATWG ( Web Hypertext Application Technology Working Group ). Dimana WHATWG bekerja dengan bentuk web dan aplikasi dan W3C merupakan pengembang dari XHTML 2.0 pada tahun 2006, kemudian mereka memutuskan untuk bekerja sama dan membentuk versi baru dari HTML.
2.2.1.1.
Tujuan HTML5 Tujuan dibuatnya HTML5 adalah sebagai berikut : 1. HTML5 adalah sebuah perangkat mandiri. 2. Fitur baru harus didasarkan pada HTML, CSS, DOM, dan Javascript. 3. Penanganan terhadap sebuah masalah yang lebih baik. 4. Markup lebih banyak untuk menggantikan scripting. 8
5. Mengurangi kebutuhan akan penambahan plugin eksternal. 2.2.1.2.
Fitur HTML5 Fitur-fitur baru yang ada pada HTML 5 adalah sebagai berikut : 1. Unsur kanvas untuk menggambar. 2. Player video dan elemen audio untuk media pemutaran. 3. Dukungan yang lebih baik dibandingkan dengan HTML4 yang di gunakan untuk penyimpanan secara offline. 4. Elemen konten yang lebih spesifik. 5. Adanya bentuk kontrol form seperti kalender, e-mail, dan masih banyak lagi.
2.2.1.3.
Kelebihan HTML5 Beberapa kelebihan yang dijanjikan pada HTML 5 dapat dilihat sebagai berikut : 1. Dapat ditulis dalam sintaks HTML dan XML. 2. Penulisan kode yang lebih efisien. 3. Integrasi yang lebih baik dengan aplikasi situs dan pemrosesannya. 4. Integrasi dengan doctype yang lebih sederhana. 5. Konten yang ada di situs lebih mudah terindeks oleh search engine.
2.3. Protokol Protokol adalah sebuah aturan atau standar yang mengatur atau mengijinkan terjadinya hubungan, komunikasi, dan perpindahan data antara dua atau lebih titik komputer. Protokol dapat diterapkan pada perangkat keras, perangkat lunak atau kombinasi dari keduanya. Pada tingkatan yang terendah, protokol mendefinisikan koneksi perangkat keras. Protokol perlu diutamakan pada penggunaan standar teknis, untuk menspesifikasi bagaimana membangun komputer atau menghubungkan peralatan perangkat keras. Protokol secara umum digunakan pada komunikasi real-time dimana standar digunakan untuk mengatur struktur dari informasi untuk penyimpanan jangka panjang. Protokol internet pertama kali dirancang pada awal tahun 1980-an. Akan tetapi pada saat itu protokol tersebut hanya digunakan untuk menghubungkan beberapa node saja, dan tidak diprediksi akan tumbuh secara global seperti saat ini. Baru pada awal 1990-an mulai disadari bahwa internet mulai tumbuh ke seluruh dunia dengan pesat. Sehingga mulai banyak bermunculan berbagai jenis protokol, maka timbul suatu masalah baru dimana jenis protokol dari sebuah pabrik tertentu tidak dapat saling berkomunikasi terhadap protokol jenis lain. Sehingga pada akhirnya suatu badan, yaitu International Standard Organization(ISO) membuat standarisasi protokol yang saat ini dikenal dengan protokol model OSI. Tetapi 9
dikarenakan model OSI ini adalah sebagai konsep dasar dan referensi teori cara bekerja suatu protokol, dalam perkembangannya protokol TCP/IP digunakan sebagai standar de facto, yaitu standar yang diterima karena pemakaiannya secara sendirinya semakin berkembang. Beberapa protokol yang digunakan dalam teknologi streaming adalah: a. Session Description Protocol (SDP) : Gambaran format media yang digunakan untuk menggambarkan session multimedia untuk tujuan pengumuman session, session undangan, dan bentuk-bentuk inisiasi session multimedia. b. RealTime Transport Protocol (RTP) : Sebuah paket dengan format UDP dan seperangkat konvensi yang menyediakan fungsi jaringan transportasi end-to-end, cocok untuk aplikasi transmisi data real-time seperti audio, video atau data simulasi, melalui layanan jaringan multicast atau unicast. c. Real-time Control Protocol (RTCP) : RTCP adalah protokol kontrol yang bekerja sama dengan RTP. Paket kontrol RTCP secara berkala dikirimkan oleh masingmasing paket dalam sesi RTP untuk semua paket lainnya. RTCP digunakan untuk mengontrol kinerja dan untuk tujuan diagnostik. d. Hypertext Transfer Protocol (HTTP) : Sebuah protokol level aplikasi yang terdistribusi, kolaboratif, dengan sistem informasi hypermedia. Ini adalah protokol berorientasi objek yang dapat digunakan untuk banyak tugas, seperti server nama dan sistem manajemen objek terdistribusi, melalui perpanjangan metode permintaannya. e. Real Time Streaming Protocol (RTSP) : Sebuah protokol level aplikasi untuk kontrol atas pengiriman data dengan sifat real-time. RTSP menyediakan kerangka extensible untuk mengaktifkan kendali pada pengiriman data real-time, seperti audio dan video, dengan menggunakan Transmission Control Protocol (TCP) atau User Data Protocol (UDP).
2.3.1. Protokol Model OSI Model OSI dibagi atas tujuh lapisan (layer) yang masing-masing lapisan mempunyai fungsi dan aturan tersendiri. Tujuan pembagian adalah untuk mempermudah pelaksanaan standar tersebut secara praktis dan untuk memungkinkan fleksibilitas dalam arti perubahan salah satu lapisan tidak mempengaruhi perubahan dilapisan lain. Berikut ini akan dijabarkan mengenai fungsi dari masing-masing lapisan: -
Lapisan Aplikasi (Application Layer)
10
Merupakan interface pengguna dengan Layer OSI lainnya di layer inilah aplikasiaplikasi jaringan berada seperti e-mail, ftp, http, dan lain sebagainya. Tujuan dari layer ini adalah menampilkan data dari layer dibawahnya kepada pengguna. -
Lapisan Presentasi (Presentation Layer) Berfungsi mengubah data dari layer diatasnya menjadi data yang bisa dipahami oleh semua jenis hardware dalam jaringan.
-
Lapisan Session (Session Layer) Berfungsi
mensinkronisasikan
pertukaran
data
antar
proses
aplikasi
dan
mengkoordinasikan komunikasi antar aplikasi yang berbeda. -
Lapisan Transport (Transport Layer) Layer
ini
menginisialisasi,
memelihara,
serta
mengakhiri
komunikasi
antar
komputer,selain itu juga memastikan data yang dikirim benar serta memperbaiki apabila terjadi kesalahan. -
Lapisan Network (Network Layer) Berfungsi untuk menyediakan routing fisik, menentukan rute yang akan ditempuh.
-
Lapisan Data Link (Data Link Layer) Layer ini berwenang untuk mengendalikan lapisan fisik, mendeteksi serta mengkoreksi kesalahan yang berupa gangguan sinyal pada media transmisi fisik.
-
Lapisan Fisik (Physical Layer) Menangani koneksi fisik jaringan dan prosedur-prosedur teknis yang berhubungan langsung dengan media transmisi fisik.
2.3.2. TCP/IP TCP/IP (Transmission Control Protocol/Internet Protocol) adalah standar komunikasi data yang digunakan oleh komunitas internet dalam proses tukar-menukar data dari satu komputer ke komputer lain di dalam jaringan internet. Protokol ini tidak dapat berdiri sendiri, karena memang protokol ini berupa kumpulan protokol (protocol suite). Protokol ini juga merupakan protokol yang paling banyak digunakan saat ini. Data tersebut diimplementasikan dalam bentuk perangkat lunak (software) di sistem operasi. Istilah yang diberikan kepada perangkat lunak ini adalah TCP/IP stack.[11] Protokol TCP/IP dikembangkan pada akhir dekade 1970-an hingga awal 1980-an sebagai sebuah protokol standar untuk menghubungkan komputer-komputer dan jaringan untuk membentuk sebuah jaringan yang luas (WAN). TCP/IP merupakan sebuah standar jaringan terbuka yang bersifat independen terhadap mekanisme transport jaringan fisik yang 11
digunakan, sehingga dapat digunakan di mana saja. Protokol ini menggunakan skema pengalamatan yang sederhana yang disebut sebagai alamat IP (IP Address) yang mengizinkan beberapa ratus juta komputer untuk dapat saling berhubungan satu sama lainnya di internet. Protokol ini juga bersifat routable yang berarti protokol ini cocok untuk menghubungkan sistem-sistem berbeda untuk membentuk jaringan yang heterogen. Protokol TCP/IP selalu berevolusi seiring dengan waktu, mengingat semakin banyaknya kebutuhan terhadap jaringan komputer dan Internet. Pengembangan ini dilakukan oleh beberapa badan, seperti halnya Internet Society (ISOC), Internet Architecture Board (IAB), dan Internet Engineering Task Force (IETF). Macam-macam protokol yang berjalan di atas TCP/IP, skema pengalamatan, dan konsep TCP/IP didefinisikan dalam dokumen yang disebut sebagai Request for Comments (RFC) yang dikeluarkan oleh IETF. 2.3.3. Layer pada TCP/IP TCP/IP pun mempunyai beberapa layer, layer-layer itu adalah : - IP (internet protocol) yang berperan dalam pentransmisian paket data dari node ke node. IP mendahului setiap paket data berdasarkan 4 byte (untuk versi IPv4) alamat tujuan (nomor IP). Internet authorities menciptakan range angka untuk organisasi yang berbeda. Organisasi menciptakan grup dengan nomornya untuk departemen. IP bekerja pada mesin gateaway yang memindahkan data dari departemen ke organisasi kemudian ke region dan kemudian ke seluruh dunia. - TCP (transmission transfer protocol) berperan didalam memperbaiki pengiriman data yang benar dari suatu client ke server. Data dapat hilang di tengah-tengah jaringan. TCP dapat mendeteksi error atau data yang hilang dan kemudian melakukan transmisi ulang sampai data diterima dengan benar dan lengkap. - Sockets yaitu merupakan nama yang diberikan kepada subrutin paket yang menyediakan akses ke TCP/IP pada kebanyakan sistem.
2.3.4. RealTime Transport Protocol Real-Time Transport Protocol atau disingkat RTP adalah suatu protokol yang biasanya digunakan untuk menangani transfer data yang sifatnya real time. RTP berjalan diatas protokol UDP, transmisi video secara real time lebih cocok menggunakan protokol ini karena tidak ada handle terhadap paket yang hilang seperti pada protocol TCP yang mana apabila ada paket yang hilang, paket tersebut akan ditransmisikan kembali, yang mengakibatkan collision paket pada jaringan tinggi. 12
2.3.5. Real Time Streaming Protocol Real Time Streaming Protocol adalah protocol level aplikasi yang bertujuan untuk menyediakan sebuah protocol yang kuat untuk multimedia streaming satu ke banyak aplikasi secara unicast dan multicast, dan untuk mendukung interoperabilitas antara client dan server dari vendor yang berbeda. RTSP dianggap lebih dari kerangka daripada protocol. RTSP didesain untuk bekerja di atas RTP untuk mengontrol dan menyampaikan konten secara realtime.[3] HTTP GET SET UP
WEB SERVER
PLAY RTP VIDEO RTCP
MEDIA SERVER
CLIENT PAUSE
TEAR DOWN
Gambar 2.1. Arsitektur RTSP
Dari gambar 2.1. diatas dapat dilihat Protocol RTSP menempatkan semua metode secara bersama-sama. Mulai dari mengirim permintaan control, membangun sebuah line, permintaan URL, dan nomor versi protocol. Kemudian, client termasuk general header, header permintaan dan header entitas, membentuk protocol HTTP. Ini dikirim ke server, yang akan mengeksekusi permintaan jika memungkinkan. Kemudian server merespon statusline, general header dan header entitas. Status line berisi versi protocol, kode status numeric, dan deskripsi tekstual. Media stream yang tersisa tidak ditentukan oleh RTSP. Hal ini bias merupakan streaming RTP, atau bentuk lain dari transmisi media. RTSP hanya menetapkan
13
control dan sampai dengan perangkat lunak client dan server untuk menjaga pemetaan antara saluran control dan media stream. Sebuah konsep kunci dalam RTSP adalah gagasan tentang session. RTSP bekerja dengan terlebih dahulu meminta presentasi yang akan dimulai oleh server, menerima session identifier
yang
kemudian
digunakan
dalam
semua
control
berikutnya.
Session
pengidentifikasi merupakan state bersama antara client dan server. Jika state hilang, misalnya melalui salah satu mesin yang sedang reboot, kemudian protocol yang bergantung pada pengangkutan media berhenti secara otomatis, misalnya tidak melalui menerima pesan RTCP jika menggunakan RTP, atau implementasi menggunakan metode GET_PARAMETER. Permintaan control dan tanggapan dapat dikirim melalui TCP atau UDP. Karena urutan hal-hal permintaan, memungkinkan adanya permintaan yang hilang. Jadi jika ada permintaan yang hilang, mereka harus dipancarkan kembali menggunakan UDP sehingga memerlukan pembangunan mekanisme retransmission, jadi ada kesempatan sangat sedikit saat aplikasi bias lolos dengan menggunakan UDP.
2.4. Streaming Streaming adalah sebuah teknologi untuk memainkan file video atau audio secara langsung ataupun dengan pre-recorder dari sebuah mesin server (web server). Saat file video atau audio di-stream, akan berbentuk sebuah buffer di komputer client, dan data video - audio tersebut akan mulai di-download ke dalam buffer yang telah terbentuk pada mesin client. Dalam waktu sepersekian detik, buffer telah terisi penuh dan secara otomatis file video audio dijalankan oleh sistem. Sistem akan membaca informasi dari buffer dan tetap melakukan proses download file, sehingga proses streaming tetap berlangsung ke mesin.[7] Sering sekali orang mengakses video-video dari internet untuk mendapatkan informasi-informasi penting seperti siaran berita, pembelajaran online, dan juga untuk melihat video-video lainnya yang bersifat hiburan. Kecepatan streaming sebuah video di internet dipengaruhi oleh besar Bandwidth user.
2.4.1. Video Coding Encoding sebagai media kompresi data digital dapat memperkecil ukuran data dan bisa mempercepat proses transmisi. Proses kompresi mengidentifikasi komponen-komponen utama dari input media dan membuang bagian-bagian yang tidak diperlukan. Dengan menginstal DirectShowi dan QuickTime 6, Helix Mobile Producer Live dapat membaca
14
beberapa tipe file yaitu file MOV, DV, MPEG-1, MPEG-2 (dengan catatan telah terinstall DirectShow atau QuickTime), MP3, MPEG-4 dan WAV. Video coding digunakan sebagai perangkat untuk mengkompresi file dari media source ke dalam format yang sesuai untuk streaming agar dapat mengatasi keterbatasan bandwith pada saat distribusi data melalui jaringan internet atau intranet. Perangkat untuk melakukan coding video disebut dengan codec yang merupakan kepanjangan dari encoder dan decoder. Sesuai dengan namanya maka coder dan decoder berjalan secara bersama-sama dan saling terkait. Encoder bekerja pada sisi pengiriman dan decoder bekerja pada sisi penerimaan, walaupun pada tiap sisi baik sisi pengiriman dan sisi penerimaan selalu dilengkapi dengan encoder dan decoder. Video encoder yaitu realvideo 8 bekerja pada sisi pengiriman dengan tujuan untuk mengubah data digital kedalam file format yang dapat diteruskan jaringan dan membagi data menjadi paket-paket yang telah digabungkan dengan gelombang pembawa serta header yang berisi alamat tujuan, alamat pengirim dan pendeteksi kesalahan. Prinsip kerja kompresi data yang telah dilakukan oleh encoder seperti telah dijelaskan dalam bab sebelumnya mengenai elemen-elemen pembuatan video klip yang melibatkan encoder sebagai piranti untuk mengkompresi data. Vendor-vendor penghasil encoder antara lain realnetworks, windows media dan apple. Video decoder digunakan pada sisi penerimaan yang bekerja untuk mengubah kembali file format ke dalam format awal sebelum di encode pada sisi pengiriman. Antara codec yang digunakan pada sisi pengiriman harus sesuai dengan codec yang digunakan pada sisi penerimaan. Hal ini untuk mencegah perbedaan persepsi mengenai data yang dikirim dengan data yang diterima. Sehingga diperlukan kerjasama yang kompak antara operator dengan vendor penghasil handset dalam menentukan jenis dan produk coder yang digunakan sehingga tidak terjadi kesalahan persepsi mengenai data yang dikirim dengan data yang diterima.
2.4.2. Modulasi Modulasi adalah proses menumpangkan sinyal (data) pada sinyal pembawa/ carrier yang biasanya berupa gelombang sinusoida/ gelombang radio. Fungsi modulasi adalah untuk memudahkan pengiriman data melalui media transmisi, karena tidak semua media transmisi dapat mengirimkan sinyal digital ataupun sebaliknya. Teknik modulasi yang digunakan pada teknologi video streaming adalah modulasi data digital ke sinyal analog. Karena teknologi video streaming merupakan pengiriman paket data yang menggunakan jaringan paket suara 15
yang hanya dapat melakukan transmisi data yang berupa sinyal analog. Sehingga data digital yang dihasilkan oleh perangkat sumber yang berupa kamera harus dikodekan ke dalam sinyal analog agar dapat ditransmisikan oleh jaringan.
2.4.3. Arsitektur Streaming Video[8]
Gambar 2.2. Arsitektur Streaming Video
-
Encoder: Encoder merupakan suatu program yang digunakan untuk mengubah media source ke format yang sesuai untuk streaming. Encoder bertugas untuk mengkonversikan data digital menjadi bit stream yang dapat dilewatkan jaringan. Di dalam encoder terdapat modulasi frekuensi yang akan dialirkan melalui jaringan. Fungsi dari modulasi frekuensi adalah untuk menggabungkan sinyal yang telah dikompresi oleh encoder dengan sinyal-sinyal lain yang akan bertindak sebagai sinyal pembawa menuju ke client.
-
Server: Setelah file di encoding, file ditaruh dalam Streaming Media server, Streaming Media server hampir sama dengan Web Server yang bisa menangani request dari multiple client. Setelah web server mengirimkan file ke browser, koneksi antara web server dan browser terputus, akan tetapi tidak demikian dengan Streaming Media server, yang menggunakan two-way connection, user punya control (rewind, pause, play, dll). Streaming media server juga harus memproses live broadcast yang datang dari encoder, sehingga dapat melayani user secara simultan.
16
-
Player: Software yang dapat berkomunikasi dengan streaming media server, dan dapat memainkan file streaming media, player dapat berupa stand-alone application atau plugin yang ada di web browser.
-
File format: Ketika player atau server menerima streaming media data, file harus di-unpacked dan disusun kembali menurut aturan yang spesifik . Aturan tersebut disebut File Formats.
-
Codec: Setelah streaming media data di-unpacked dan disusun kembali, streaming media player harus decode data sebelum dimainkan, ini dilakukan oleh software kecil bernama codec. Codec digunakan karena raw audio atau video file mengandung terlalu banyak data (besar) untuk di stream di internet, Codec menggunakan advanced mathematical model untuk mengurangi ukuran asli dari A/V files.
2.4.4. Delay[2] Delay adalah waktu yang dibutuhkan untuk mentransmisikan data sampai ke penerima. Delay dalam jaringan dapat digolongkan sebagai berikut: a. Packetization Delay Delay yang disebabkan oleh waktu yang diperlukan untuk proses pembentukan paket IP dari infomasi user. b. Delay Propagasi Delay Propagasi adalah delay yang terjadi pada saat proses perjalanan informasi selama didalam media transmisi. Misalnya SDH, coax atau tembaga. c. Queuing Delay Delay ini disebabkan oleh waktu proses yang diperlukan oleh router didalam menangani antrian transmisi paket di sepanjang jaringan. d. Processing Delay Processing Delay adalah waktu yang diperlukan oleh suatu perangkat jaringan untuk melihat rute, mengubah header, dan tugas switching lainnya. e. Transmission Delay Transmission Delay adalah waktu yang diperlukan sebuah paket data untuk melintasi suatu media. Transmission delay ditentukan oleh kecepatan media dan juga besar dari paket data.
17
2.4.5. Jitter[7] Jitter merupakan variasi delay yang terjadi akibat adanya selisih waktu atau interval antar kedatangan paket di penerima. Jitter diakibatkan oleh antrian yang terjadi didalam jaringan. Jitter dapat menyebabkan sampling disisi penerima menjadi tidak tepat sasaran sehingga informasi menjadi rusak. Ukuran paket juga mempengaruhi dari nilai jitter tersebut yang mana semakin besar ukuran paket maka proses penerimaan paket tersebut juga menjadi lama sehingga jitter yang dihasilkan menjadi besar. Untuk mengatasi jitter maka paket data yang datang dikumpulkan dulu dalam jitter buffer selama waktu yang telah ditentukan sampai paket dapat diterima pada sisi penerima dengan urutan yang benar. Parameter jitter merupakan ukuran QoS dalam aplikasi suara dan video. Jitter dapat menyebabkan data loss terutama pada kecepatan transmisi yang tinggi.
2.4.6. Packet Loss Packet loss didefinisikan sebagai kegagalan transmisi paket IP mencapai tujuannya. Packet loss terjadi ketika ada peak load dan congestion (kemacetan transmisi paket akibat padatnya traffic yang harus dilayani) dalam batas waktu tertentu, maka frame (gabungan data payload dan header yang ditransmisikan ) akan dibuang sebagaimana perlakuan terhadap frame data lainnya pada jarinngan berbasis IP. Packet loss untuk aplikasi voice dan multimedia tidak dapat di toleransi, sehingga harus dibuat seminimal mungkin agar streaming berjalan dengan baik. Penyebab Packet loss yaitu : - Interferensi jaringan (wireless memiliki interferensi yg tinggi) - Kepadatan pengguna jaringan - Kemampuan server/router yang rendah/tidak mampu menangani banyaknya client. - Kualitas instalasi jaringan (Kabel/router/dll) - Sabotase (paket snifing/pencurian paket oleh hacker) - Error checksum/kesalahan sistem .
2.5. Kompresi Video Kompresi video adalah salah satu bentuk kompresi data yang bertujuan untuk mengecilkan suatu ukuran file video. Kompresi video biasanya mengacu untuk mengurangi jumlah data yang digunakkan untuk mewakili video digital gambar,
dan merupakan
kombinasi dari ruang kompresi gambar dan temporal kompresi gerak. Kompresi dapat dilakukan dengan memanfaatkan redundansi yang terdapat pada data video, yaitu : -
Redundansi Temporal 18
Redundansi yang dilakukan dengan mengirimkan dan meng-encode frame yang berubah saja sedangkan data yang sama masih disimpan. -
Redundansi Spasial Redundansi yang dilakukan dengan mengambil keuntungan dari fakta bahwa mata manusia tidak terlalu dapat membedakan warna dibandingkan dengan brightness, sehingga image dalam video bisa dikompresi.
Berdasarkan redundansi diatas, kompresi data video dapat dibagi menjadi dua yaitu : a.
Kompresi intraframe Dilakukan dengan memanfaatkan redundansi spasial yang terdapat dalam suatu frame. Beberapa metode yang digunakkan pada proses kompresi ini antara lain :
-
Subsampling Mengurangi jumlah piksel yang digunakan untuk mrepresentasikan suatu gambar.
-
Pengurangan kedalaman bit Mengurangi jumlah bit yang digunkan untuk merepresentasikan suatu piksel.
-
Transform Coding Mentransformasikan data dari domain ruang ke domain frekuensi.
b.
Kompresi interframe Dilakukan dengan memanfaatkan redundansi temporal. Metode yang digunakan dalam kompresi ini antara lain :
-
Subsampling Mengurangi laju frame dalam data video.
-
Difference Coding Membagi frame menjadi blok yang tidak saling tumpang tindih.
-
Motion Compensation Melakukan proses pencocokan blok, tiap blok pada frame tersebut dibandingkan dengan blok yang berukuran sama pada frame sebelumnya. Perbedaan lokasi antara blok tersebut dengan blok yang mirip pada frame sebelumnya disebut motion vector. Hanya motion vector saja yang disimpan.
2.5.1. Pulse Code Modulation (PCM)[9] PCM merupakan metode umum untuk mengubah sinyal analog menjadi sinyal digital yang digunakan untuk transmisi sinyal informasi seperti suara, gambar, dan video. PCM adalah pengembangan dari PAM ( Pulse Amplitude Modulation) dimana tiap-tiap sampel analog dikuantisasi dan diberikan dalam bentuk kode-kode digital. Terdapat tiga proses utama dalam prinsip kerja PCM yaitu : 19
-
Sampling. Sampling merupakan proses pengambilan sumber data.
-
Quantizing. Quantizing merupakan proses pembulatan nilai sampai pada level tertentu.
-
Coding. Coding merupakan proses mengubah sinyal yang ditangkap menjadi bilangan biner.
2.5.2. Discrete Cosine Transform (DCT)[10] DCT adalah algoritma kompresi video yang paling sering digunakan didalam dunia kompresi sehingga membuat algoritma kompresi ini menjadi paling populer. Video yang menggunakan kompresi DCT sangat mudah ditemukan di berbagai media. Prinsip dasar yang dilakukan DCT adalah melakukan transformasi data dari domain ruang ke domain frekuensi. Pada domain frekuensi, terdapat frekuensi DC yang merupakan frekuensi inti dari suatu blok yang ditransformasikan dan frekuensi-frekuensi non-DC yang tidak akan mengubah blok secara signifikan bila terjadi distorsi padanya. Mata manusia kurang peka untuk mendeteksi distorsi yang terjadi dengan frekuensi-frekuensi tinggi nonDC ini. Sifat inilah yang dimanfaatkan untuk kompresi, dengan memotong frekuensifrekuensi tinggi tersebut pada proses kuantisasi.
2.6. MYSQL MySQL
adalah
Relational
Database
Management
System
(RDBMS)
yang
didistribusikan secara gratis dibawah lisensi GPL (General Public License). Dimana setiap orang bebas untuk menggunakan MySQL, namun tidak boleh dijadikan produk turunan yang bersifat komersial. MySQL merupakan turunan salah satu konsep utama dalam database sejak lama, yaitu SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian database, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis. Keandalan suatu sistem database (DBMS) dapat diketahui dari cara kerja optimizer-nya dalam melakukan proses perintah-perintah SQL, yang dibuat oleh user maupun program-program aplikasinya. Sebagai database server, MySQL dapat dikatakan lebih unggul dibandingkan database server lainnya dalam query data. Hal ini terbukti untuk query yang dilakukan oleh single user, kecepatan query MySQL bisa sepuluh kali lebih cepat dari PostgreSQL dan lima kali lebih cepat dibandingkan Interbase. Keistimewaan dari MySQL yaitu :
20
Portabilitas. MySQL dapat berjalan stabil pada semua sistem operasi.
Open Source. MySQL didistribusikan secara open source, sehingga dapat digunakan secara gratis.
Multiuser. MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.
Performance tuning. MySQL memiliki kecepatan yang sangat baik dalam menangani query sehingga dapat memproses lebih banyak SQL.
Jenis Kolom. MySQL memiliki tipe kolom yang sangat kompleks dan mudah dimengerti, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.
Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query).
Keamanan. MySQL memiliki beberapa lapisan keamanan seperti level subnetmask, nama host, dan ijin akses user.
Skalabilitas dan Pembatasan. MySQL mampu menangani basis data dalam skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu tabel serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya.
Konektivitas. MySQL dapat melakukan koneksi dengan client menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes(NT).
Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada client dengan menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum termasuk di dalamnya.
Antar Muka.
21
MySQL memiliki interface (antar muka) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).
Klien dan Peralatan. MySQL dilengkapi dengan berbagai peralatan yang dapat digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada disertakan petunjuk online.
Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL ataupun Oracle.
2.7. PHP PHP adalah bahasa scripting web HTML – embedded. Kode PHP dapat disisipkan kedalam HTML halaman web. Kepanjangan dari PHP sendiri adalah Hypertext Preprocessor. Beberapa kelebihan PHP dari bahasa pemrograman web, antara lain: -
Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak melakukan sebuah kompilasi dalam penggunaanya.
-
Web Server yang mendukung PHP sangat mudah ditemukan seperti apache, IIS, Lighttpd, hingga Xitami dengan konfigurasi yang relatif mudah.
-
Dalam sisi pengembangan lebih mudah, karena banyaknya developer yang siap membantu dalam pengembangan.
-
Dalam sisi pemahamanan, PHP adalah bahasa scripting yang paling mudah karena memiliki referensi yang banyak.
-
PHP adalah bahasa open source yang dapat digunakan di berbagai sistem operasi dan dapat dijalankan secara runtime melalui console serta juga dapat menjalankan perintahperintah sistem.
2.8. Java Media Framework (JMF) Java Media Framework adalah program Application Programming Interface (API) yang dapat digunakan untuk memasukkan data-data media, baik itu data video maupun data audio kedalam aplikasi dan applet java. Selain itu JMF API merupakan arsitektur yang menggabungkan protokol dan pemograman interface untuk merekam, mentransmisi, dan playback media.[4] Beberapa fungsi dari JMF antara lain sebagai berikut :
22
a.
Dapat digunakan untuk berbagai file multimedia pada Java Applet.
b.
Play media streaming dari internet.
c.
Dapat digunakan untuk program penyiaran televisi maupun radio secara langsung.
d.
Pengiriman data audio dan video secara real-time dalam jaringan internet atau intranet.
e.
Capture audio dan video dengan mikrophone dan webcamera kemudian menyimpan data tersebut kedalam format yang mendukungnya. Fungsi-fungsi yang terdapat pada JMF adalah sebagai berikut :
-
Data Source Data Source berfungsi untuk mengatur transfer media
-
Capture Device Merupakan perangkat keras yang digunakan untuk memperoleh data, seperti webcamera dan microphone.
-
Player Player berfungsi untuk memperoleh input stream data audio dan video kemudian mengirimnya ke speaker atau layar pada client.
-
Processor Processor adalah interface dengan extends player. Selain itu processor juga mendukung untuk kontrol menampilkan media data.
-
Data Sink Data Sink adalah interface dasar untuk objek yang membaca isi media yang dikirimkan oleh suatu Data source dan mengirimkan media tersebut ke beberapa tujuan.
-
Format Format merupakan class yang akan menempatkan suatu objek ke suatu format media yang tepat.
-
Manager Manager
adalah
interface
yang
berfungsi
untuk
penghubung
objek
dan
mengintegrasikan implementasi interface yang digunakan dengan kelas yang ada.
2.9. Wireshark Wireshark adalah sebuah tools yang digunakan untuk menganalisis lalu lintas paket data didalam suatu jaringan. Wireshark dapat menganalisa beberapa QoS seperti jitter, delay, throughput dan paket loss dan lainnya serta dapat meng-capture protokol yang sedang berjalan dalam jaringan tersebut.
23