BAB II DASAR TEORI
Bab ini berisi dasar teori yang berhubungan dengan perancangan aplikasi antara lain mengenai Streaming, Audio encoding, Internet dan website, Protocol, dan Java Media Framework. 2.1.
Streaming Streaming adalah suatu teknologi untuk memainkan file audio atau video secara
langsung maupun dengan prerecord dari sebuah mesin server (web server). File audio atau video yang terletak pada sebuah server dapat secara langsung dijalankan pada komputer client sesaat setelah ada permintaan dari pengguna sehingga proses download file tersebut yang menghabiskan waktu cukup lama dapat dihindari.[3] Saat file tersebut di-stream maka akan terbentuk sebuah buffer di komputer client dan data audio atau video tersebut akan mulai di-download ke dalam buffer yang telah terbentuk pada mesin client. Biasanya file yang di download sementara disimpan pada memori RAM client. Setelah buffer terisi dalam waktu hitungan detik, maka secara otomatis file video ataupun audio akan di jalankan oleh sistem. Sistem akan membaca informasi dari buffer sambil tetap melakukan proses download file sehingga proses streaming tetap berlangsung ke mesin client. Delay waktu sesaat sebelum file video atau audio di jalankan biasanya berkisar antara 5 sampai dengan 30 detik. Konsep dasar dari audio streaming adalah membagi paket audio ke dalam beberapa bagian, mentransmisikan paket tersebut, kemudian pada pihak penerima (client) dapat mendecode dan memainkan potongan paket file audio tanpa harus menunggu seluruh file terkirim ke mesin penerima.
6
2.1.1. Arsitektur Streaming [4] Arsitektur streaming dibagi kedalam 4 bagian seperti pada Gambar 2.1
Gambar 2.1 Arsitektur Streaming
a. Capture dan encoding Proses capture dan encode membutuhkan sinyal audio atau video yang didapat dari data sumber dan diubah ke dalam bentuk file streaming, ada beberapa langkah yang harus dilakukan yaitu: 1. Capture ke file format komputer 2. Kompresi data media 3. Paketisasi data Algoritma kompresi ini sudah terpasang pada software aplikasi yang disebut compression-decompression atau disingkat dengan sebutan codec. proses kompresi membutuhkan data mentah / RAW audio/video file dan menurunkan data ratenya sehingga sesuai dengan bandwidth yang dibutuhkan untuk streaming, sedangkan proses dekompresi dilakukan oleh media player dan di ubah kembali ke bentuk data audio/video semula b. Serving File yang sudah di-encode di-upload ke server untuk dikirimkan ke network. server biasanya merupakan aplikasi server seperti webserver. Server untuk streaming tidak
7
berbeda jauh seperti server lainnya, hanya saja server streaming memiliki kontrol dalam pengiriman data real-time. c. Distribusi dan pengiriman Dalam pendistribusian dan pengiriman dibutuhkan koneksi IP antara server dengan client, server menangani permintaan yang dikirim oleh client, lalu server akan membalas permintaan tersebut berupa paket-paket data. Paket yang di-request nantinya akan diterima oleh player. d. Media Player Web browser biasanya hanya dapat menerjemahkan text dan gambar saja, tetapi dibutuhkan player media khusus untuk menerjemahkan data streaming. Player yang digunakan untuk streaming biasanya dapat di-instal tersendiri berupa desktop aplikasi maupun dapat juga ter-instal sebagai plugin dalam web browser.
2.1.2. Streaming dan download Download adalah proses pengambilan data secara utuh, dan disimpan ke-dalam tempat penyimpanan lokal, file yang dikirim dapat diputar secara lokal, sedangkan streaming adalah proses pengiriman bagian demi bagian data, dan bagian data tersebut langsung diterjemahkan ke layar, dan data tersebut menghilang, sehingga tidak diperlukan proses pengambilan data utuh terlebih dahulu sebelum diputar. Dalam proses streaming, data tidak tersimpan di tempat penyimpanan lokal / local harddisk sehingga ini adalah cara jitu untuk mencegah illegal copying. Perbedaan proses download dan streaming dapat dilihat pada Gambar 2.2
Gambar 2.2 Perbedaan Download dan Streaming [8] 2.1.3. On demand streaming[4] On demand streaming merupakan salah satu cara pengiriman data multimedia secara langsung, dimana client melakukan permintaan dan langsung dilayani oleh server. 8
Pengiriman data dilakukan bagian demi bagian secara terus menerus, sedangkan penerimaan data tergantung dengan permintaan user. Pada on demand streaming hanya terdapat tombol play dan pause saja. Saat user menekan tombol pause, maka penerimaan data akan terhenti, dan data akan hilang sementara hingga user menekan tombol play kembali.
2.1.4. Parameter dalam audio streaming Dalam audio streaming ada beberapa parameter yang mempengaruhi kualitas dan performa streaming yaitu: a. Data rate Data rate adalah kecepatan pengiriman data, data rate biasanya diukur dalam bytes per second. Semakin tinggi data rate maka kualitas yang dihasilkan juga semakin tinggi. Data rate yang tinggi memerlukan sumber sistem yang lebih banyak, dalam hal ini kecepatan prosesor, besar memory RAM dan kebutuhan ruang hard disk sangat berpengaruh.[8] b. Sample rate Sample rate adalah jumlah sample yang diambil tiap detiknya, untuk audio biasa ukuran sample rate diukur dalam satuan kilohertz. Semakin tinggi sample rate, kualitas suara yang dihasilkan juga semakin baik.[8] c. Transcoding Transcoding adalah proses yang konversi dari suatu format media ke format yang lain dalam sebuah paket data tepat sebelum paket data tersebut ditransmisikan, proses ini akan berlangsung terus menerus selama proses transmisi masih berjalan.[8]
2.1.5. Delay [7] Delay merupakan waktu tunda yang disebabkan oleh proses transmisi suatu data dari satu titik ke titik yang lainnya. Dalam jaringan delay dapat digolongkan sebagai berikut: a. Delay Algoritmik Merupakan delay yang dihasilkan dalam proses kompresi dan dekompresi data dalam melakukan pengkodean sebelum data dikirim. b. Delay Paketisasi Delay paketisasi adalah perbedaan waktu yang disebabkan karena adanya antrian antara satu paket RTP dan paket yang lain.
9
c. Delay Serialisasi Delay serialisasi disebabkan oleh perangkat-perangkat seperti router dan switch, delay serialisasi terjadi karena adanya waktu yang dibutuhkan untuk mengirim paket data dari pengirim. d. Delay Propagasi Delay propagasi adalah delay yang disebabkan karena adanya waktu yang diperlukan untuk sinyal listrik atau sinyal optik untuk melewati media transmisi dan jarak yang harus ditempuh sinyal. Sebagai contoh Coax, tembaga dan SDH dapat menyebabkan delay propagasi. e. Delay Komponen Delay yang disebabkan oleh perangkat keras, dimana delay ini terjadi dikarenakan setiap komponen atau perangkat membutuhkan waktu dari paket masuk ke komponen dan diproses yang nantinya dikeluarkan melalui port output.
Gambar 2.3. Delay yang terjadi dalam pengiriman data 2.1.6. Jitter[9] Jitter adalah sebuah variasi dari delay penerimaan paket, setelah paket dikirim secara terus menerus dengan adanya jeda tiap bagiannya. Hal ini desebabkan karena kemacetan jaringan, antrian yang tidak benar serta kesalahan konfigurasi atau penundaan setiap paket yang bervariasi ini dapat menyebabkan terjadi perbedaan waktu antar kedatangan antar paket data. Paket data yang datang dikumpulkan ke dalam jitter buffer dengan tujuan paket data dapat diterima dengan urutan yang benar, hanya saja jitter tidak mungkin dihilangkan, sebab
10
metode antrian yang paling baik tetap saja tidak dapat mengatasi semua masalah dalam kasus antrian. Proses terjadinya jitter dapat dilihat pada Gambar 2.4
Gambar 2.4. Proses terjadinya Jitter[4]
2.1.7. Paket Loss Paket loss atau kehilangan paket terjadi ketika adanya penumpukan data pada jalur yang dilewati pada saat beban mencapai puncak sehingga terjadi kemacetan data. hal ini menyebabkan gabungan data payload dan header yang ditransmisikan menjadi rusak dan terbuang. Paket loss bisa disebabkan oleh sejumlah faktor lainnya seperti degradasi sinyal saat melalui media jaringan, paket data yang rusak atau ditolak saat ditransmisikan, perangkat keras jaringan yang mengalami gangguan ataupun masalah dalam routing. 2.2. Audio Encoding Soundcard merupakan perangkat penting dalam pemprosesan audio, dengan perangkat soundcard banyak perangkat luar untuk pemprosesan audio dapat digunakan, seperti audio editing system, audio mixing board, CD dan beberapa sumber audio seperti VTR atau microphone. Audio encoding dimulai dengan data live stream dari sumber audio seperti microphone atau mixing board, aliran data yang terekam di-encode dan dikompresi menggunakan streaming codec yang menghasilkan aliran data dengan media format tertentu. Proses audio encoding dapat dilihat pada Gambar 2.5
11
Gambar 2.5 Proses Audio Encoding [4] 2.2.1. Audio Capture Audio Capture adalah proses memperoleh data live audio stream dan mengubahnya kedalam file format komputer. File ini dibentuk dari bagian – bagian, header dari bagian mendiskripsikan file format dan banyaknya sample yang ditangkap. Audio format dalam capture audio biasanya berformat AIFF dan WAVE, AIFF adalah Audio Interchange File Format yang biasa digunakan oleh sistem operasi Apple Mac dan UNIX, sedangkan WAVE atau Waveform Audio biasanya digunakan oleh sistem operasi Microsoft Windows. Proses capture audio dapat dilihat pada Gambar 2.6
12
Gambar 2.6 Proses Capture Audio [4] 2.2.2. G.711 µlaw [5] G.711 µlaw adalah format standarisasi yang direkomendasikan oleh ITU-T dari Internation Telecommunication Union (ITU) untuk sistem komunikasi digital dan telah didukung oleh banyak Voice over Internet Protocol (VoIP) providers, G.711 encoder menggunakan 64bit/s untuk sample sinyal 8khz. G.711 menghasilkan kualitas yang cukup bagus untuk kualitas suara VoIP. G.711 menggunakan teknik Pulse Code Modulation (PCM) dalam pengiriman suara, PCM mengkonversikan sinyal analog ke digital dengan melakukan penyampelan data per detik yang kemudian dikodekan dalam kode angka. Jarak antara sample data yang satu dengan yang lain adalah sebesar 125µdetik. sinyal sample tersebut kemudian dikonversikan ke dalam bentuk diskrit. Sinyal analog pada suatu suara yang diterima dari sumber perekam atau microphone diasumsikan memiliki frekuensi antara 300hz-3400hz. Sinyal yang sudah dikonversi dalam bentuk diskrit direpresentasikan dengan kode yang disesuaikan dengan amplitudo dari sinyal sampel. 2.2.3. GSM [15] GSM merupakan jenis codec yang mengunakan RegularPulse Excitation LongTerm Predictor (RPE-LTP), codec ini telah distandarisasi untuk penggunaan telepon selular generasi ketiga. Codec jenis ini menggunakan 13kbps. GSM dikembangkan untuk menjaga kualitas suara pada berbagai jenis kondisi transmisi. Tabel perbandingan codec yang biasa digunakan dalam transmisi audio dapat dilihat pada Tabel 2.1
13
Tabel 2.1. Perbandingan codec audio
Jenis Codec
Standart
Algoritma
Bitrate(kbps)
G.711
ITU-T
Pulse Code Modulation
64
(PCM)
G.721
ITU-T
Adaptive differential pulse
32
code modulation (ADPCM)
G.723
ITU-T
Adaptive differential pulse
24/40
code modulation (ADPCM)
GSM
ETSI
Regular Pulse Excitation
13
LongTerm Predictor (RPELTP) DVI
IMA
Adaptive differential pulse
32
code modulation (ADPCM)
2.3. Internet dan Website Internet adalah singkatan dari Interconnectec network adalah jaringan-jaringan komputer sedunia yang saling berhubungan satu sama lain. Agar bisa berhubungan, internet menggunakan bahasa yang sama yang disebut Transmission Control Protocol/Internet Protocol (TCP/IP). TCP/IP memberikan sebuah alamat dan identitas yang unik pada setiap komputer diseluruh dunia, hal ini bertujuan untuk menghindari terjadinya kesalahan dalam proses pengiriman data.[11] Website merupakan jaringan komputer yangterdiri dari kumpulan situs internet yang menawarkan teks, grafik, suara serta multimedia lainnya melalui protokol transfer hypertext. Website dikenal dengan istilah World Wide Web (WWW) dimana halaman website yang dapat saling berhubungan satu sama lain dengan hyperlink yang membentuk satu kesatuan informasi. WWW berjalan dengan protokol HyperText Transfer Protocol (HTTP). Halaman website merupakan file text murni yang berisi sintaks dan tata bahasa HTML yang dapat dibuka, dilihat dan diterjemahkan oleh browser internet sehingga isi dari konten text, gambar, audio, video dan animasi dapat dinikmati.[12] 14
2.3.1. HTTP HTTP (HyperTextTransfer Protocol) adalah protokol yang dipergunakan untuk mentransfer dokumen dalam World Wide Web (WWW). Protokol ini adalah protokol ringan, tidak berstatus dan generik yang dapat dipergunakan berbagai macam tipe dokumen. Pengembangan HTTP dikoordinasi oleh Konsorsium World Wide Web (W3C) dan grup bekerja Internet Engineering Task Force (IETF), bekerja dalam publikasi satu seri RFC, yang paling terkenal RFC 2616, yang menjelaskan HTTP/1,1, versti HTTP yang digunakan umum sekarang ini. HTTP adalah sebuah protokol meminta/menjawab antara client dan server. Pesan HTTP dirancang agar tidak bisa diterjemahkan oleh manusia, sehingga pesan tersebut hanya dapat dibaca dan diterjemahkan oleh HTTP server dan client. Proses kerja HTTP adalah dengan client mengirim sebuah permintaan (request) yang nantinya akan diterima oleh server. Kemudian server akan mengirim balasan berupa response terhadap permintaan tersebut. Pesan permintaan client atau request message biasanya terdiri dari beberapa komponen seperti request type, URL dan HTTP version dengan penjelasan sebagai berikut: a. Request Type Request Type digunakan oleh client untuk berkomunikasi dengan server yang terdiri dari beberapa method yaitu:
GET Digunakan saat client ingin meminta sebuah data dari server. Alamat data yang diminta didefinisikan dalam bentuk URL, isi dari data yang diminta nantinya akan dibalas oleh server dan dikirim dalam body.
HEAD Digunakan saat client meminta tanggapan yang identik dengan tanggapan yang sesuai dengan permintaan GET, namun tanpa body tanggapan. Ini berguna untuk mengakses informasi meta tanpa perlu mengangkut seluruh konten.
POST Digunakan saat client memberikan informasi kepada server.
PUT Digunakan jika client memiliki sebuah data yang ingin digunakan atau disimpan ke dalam server.
15
PATCH Digunakan saat client ingin memodifikasi atau merubah isi dari dokumen atau data yang sudah ada.
TRACE Mengirimkan kembali permintaan yang diterima, sehingga client dapat melihat perbuhan yang dilakukan oleh server.
OPTION Mengembalikan metode HTTP yang berfungsi untuk melihat pilihan yang disediakan server.
DELETE Digunakan untuk menghapus data atau dokumen yang ada didalam server.
b. Uniform Resource Locator (URL) URL merupakan standart yang digunakan untuk mendefinisikan informasi yang ada pada internet. Dalam URL terdapat beberapa informasi sebagai berikut:
Method Protokol yang digunakan untuk mengakses sebuah data dari server.
Host Komputer dimana informasi atau data tersebut disimpan.
Port Informasi tambahan yang dapat ditambahkan jika diperlukan, port biasanya diletakkan diantara host dan path, informasi port dipisahkan dengan titik dua.
Path Lokasi direktori dimana informasi atau data tersebut disimpan.
c. HTTP version HTTP version menyatakan versi HTTP yang digunakan.
Sebuah sesi HTTP adalah urutan transaksi permintaan dan respons jaringan dengan menggunakan protokol HTTP. Sebuah client HTTP akan memulai sebuah permintaan. Client tersebut akan membuka sebuah koneksi Transmission Control Protocol (TCP) ke sebuah port tertentu yang terdapat dalam sebuah host (umumnya port 80 atau 8080). Server yang mendengarkan pada port 80 tersebut akan menunggu pesan permintaan client. Saat menerima permintaan, server akan mengirimkan kembali baris status, seperti "HTTP/1.1 200 OK", dan pesan yang hendak diminta, pesan kesalahan atau informasi lainnya. 16
Contoh transaksi yang dilakukan oleh server dan client S = Server C = Client C C C S S S S S
: : : : : : : :
(Inisialisasi koneksi) GET /index.htm HTTP/1.1 Host: www.alamathost.com 300 OK Mime-type: text/html -- data dokumen -(close connection)
2.3.2. HTML5 HTML Hyper Text Markup Language adalah sebuah bahasa markup yang digunakan untuk membuat sebuah halaman web dan menampilkan berbagai informasi di dalam sebuah browser Internet. Bermula dari sebuah bahasa yang sebelumnya banyak digunakan di dunia penerbitan dan percetakan yang disebut dengan Standard Generalized Markup Language (SGML), 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 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. HTML5 merupakan generasi kelima dari versi HTML. HTML5 lahir pada tahun 2009 yang merupakan standar baru untuk HTML HTML5 merupakan hasil proyek dari World Wide Web Consortium (W3C) dan Web Hypertext Application Technology Working Group (WHATWG). WHATWG bekerja dengan bentuk situs dan aplikasi, sedangkan W3C merupakan pengembang dari XHTM L 2.0 pada tahun 2006, kemudian mereka memutuskan untuk bekerja sama dan membentuk versi baru dari HTML. Di HTML5 terdapat banyak keunggulan, salah satunya adalah Video dan elemen audio untuk media pemutaran, sehingga dapat memudahkan dalam memutar multimedia tanpa menggunakan plugin player pada browser. 2.3.3. PHP PHP merupakan singkatan dari PHP: Hypertext Preprocessor yaitu bahasa pemprograman open source website yang berada pada sisi server, PHP mengunakan script yang terintegrasi dengan HTML dan berada pada sisi server. Script ini biasa digunakan untuk 17
membuat halaman website yang dinamis. Dinamis berarti halaman yang akan ditampilkan dibuat saat halaman tersebut diminta oleh client. Mekanisme ini menyebabkan informasi yang diterima oleh client dapat berubah-ubah sesuai dengan permintaan dan waktu.[13] Beberapa keunggulan PHP antara lain 1. Life Cycle Bahasa PHP selalu mengikuti perkembangan teknologi. 2. Cross Platform PHP dapat dipakai hampir semua web server yang ada dipasaran seperti Apache, AOLServer, fhttpd, phttpd, IIS dan lainnya. PHP dapat dijalankan pada semua sistem operasi, termasuk Linux, dengan berbagai macam variasi UNIX termasuk (HP-Ux, Solaris dan OpenBSD), Microsoft Windows, Mac OS dan RISC OS. 3. Object Oriented PHP mendukung pembangunan website dinamis yang berorientasi objek, sehingga website dapat memperoleh kemudahan untuk mengelola kompleksitas aplikasi yang dibuat dan kemudahan dalam melakukan perubahan dalam pengembangan website. PHP mendukung banyak paket database seperti MYSQL, postgreSQL, Oracle, Informix, Microsoft SQL server dan lainnya.
2.3.4. WAMP Server WAMP merupakan salah satu paket instalasi Apache, PHP dan MYSQL. Dimana paket tersebut terdiri dari Apache yang digunakan sebagai webserver yang bertujuan untuk menjembatani permintaan dari client ke server, PHP yang merupakan bahasa pemprograman website yang dapat memanajemen informasi dan konektivitas database sehingga menghasilkan sebuah website yang dinamis, serta MYSQL sebagai database server yang bersifat free yang dapat menyimpan data-data atau informasi yang digunakan.
2.3.5. MYSQL MYSQL merupakan salah satu database server opensource, sehingga dapat diperoleh secara gratis. MYSQL digunakan untuk menyimpan serta mengolah database. MYSQL menggunakan bahasa standar query Structure Query Language (SQL) dalam hal pemprosesan data. SQL merupakan bahasa yang digunakan untuk berkomunikasi dengan server database relasional. Dalam SQL query ini tidak memiliki struktur kendalam sehingga
18
untuk pengembangan aplikasi, harus digabungkan dengan struktur bahasa pemprograman lainnya.
2.4. Protocol Dalam pengiriman data dan komunikasi antar network, diperlukan sebuah standar agar dapat berkomunikasi antara network satu dengan yang lain yang disebut sebagai protokol. Protokol memiliki jenis dan fungsinya sendiri-sendiri. Berikut merupakan beberapa protokol beserta fungsinya:
2.4.1. TCP/IP[16] TCP/IP merupakan singkatan dari Transmission Control Protocol/Internet Protocol. TCP/IP merupakan standart yang digunakan untuk komunikasi internet dan tukar menukar data antara komputer satu dengan yang lain dalam networking. TCP/IP merupakan protokol suite, sehingga tidak dapat berditi sendiri. Karena merupakan jenis protokol suite maka protokol ini memiliki lapisan-lapisan yang dapat dilihat pada Gambar 2.7
Gambar 2.7. Lapisan pada TCP/IP
a. Application Layer Application layer atau lapisan aplikasi bertugas menyediakan akses kepada aplikasi terhadap layanan jaringan TCP/IP. Protokol pada layer ini menunggu di portnya masingmasing dalam suatu antrian untuk diproses.digunakan untuk Telecommunication Network (Telnet), File Transfer Protocol (FTP), Simple Mail Transfer Protocol (SMTP), DNS (Domain Name Service), dan Hypertext Transfer Protocol (HTTP). 19
b. Host-to-Host Transport Host-to-host atau lapisan antar host berguna untuk membuat komunikasi menggunakan sesi koneksi yang
bersifat
connection-oriented atau broadcast
yang bersifat
connectionless. Host-to-host Layer menentukan bagaimana host pengirim dan host penerima dalam membentuk sebuah sambungan sebelum kedua host tersebut berkomunikasi, serta seberapa sering kedua host ini akan mengirim informasi dalam sambungan tersebut satu sama lainnya. Protokol dalam lapisan ini hanya ada dua yaitu Transmission Control Protocol (TCP) dan User Datagram Protocol (UDP). c. Internet Protokol lapisan internetwork: bertanggung jawab untuk melakukan pemetaan (routing) dan enkapsulasi paket-paket data jaringan menjadi paket-paket IP. Protokol yang bekerja dalam lapisan ini adalah Internet Protocol (IP), Address Resolution Protocol (ARP), Internet Control Message Protocol (ICMP), dan Internet Group Management Protocol (IGMP). d. Network Interface Network Interface Layer atau lapisan antarmuka jaringan bertanggung jawab untuk meletakkan frame-frame jaringan di atas media jaringan yang digunakan. Protokol pada layer ini menyediakan media bagi sistem untuk mengirimkan data ke device lain yang terhubung secara langsung. Network Access Layer merupakan gabungan antara Network, Data Link dan Physical Layer. Fungsi dalam layer ini adalah mengubah IP datagram ke frame yang ditransmisikan oleh network, dan memetakan IP Address ke physical address yang digunakan dalam jaringan. IP Address ini harus diubah ke alamat apapun yang diperlukan untuk Physical Layer untuk mentransmisikan datagram.
2.4.2. UDP[17] UDP atau User Datagram Protocol yaitu suatu protokol yang berada pada lapisan transpor TCP/IP yang bekerja pada lapisan antar host yang berguna untuk membuat komunikasi yang bersifat connectionless. Hal ini berarti suatu paket yang dikirim melalui jaringan dan mencapai komputer lain tanpa membuat suatu koneksi. Sehingga dalam perjalanan ke tujuan paket dapat hilang karena tidak ada koneksi langsung antara kedua host, sehingga UDP sifatnya tidak realibel.
20
UDP memiliki karakteristik-karakteristik berikut:
Connectionless (tanpa koneksi) Pesan-pesan UDP akan dikirimkan tanpa harus dilakukan proses negosiasi koneksi antara dua host yang hendak bertukar informasi.
Unreliable (tidak andal) Pesan-pesan UDP akan dikirimkan sebagai datagram tanpa adanya nomor urut atau pesan informasi. Protokol lapisan aplikasi yang berjalan di atas UDP harus melakukan pemulihan terhadap pesan-pesan yang hilang selama transmisi. Umumnya, protokol lapisan aplikasi yang berjalan di atas UDP mengimplementasikan layanan keandalan mereka masing-masing, atau mengirim pesan secara periodik atau dengan menggunakan waktu yang telah didefinisikan.
UDP tidak menyediakan mekanisme penyanggaan (buffering) dari data yang masuk ataupun data yang keluar. Tugas buffering merupakan tugas yang harus diimplementasikan oleh protokol lapisan aplikasi yang berjalan di atas UDP.
UDP tidak menyediakan mekanisme segmentasi data yang besar ke dalam segmensegmen data, seperti yang terjadi dalam protokol TCP. Karena itulah, protokol lapisan aplikasi yang berjalan di atas UDP harus mengirimkan data yang berukuran kecil (tidak lebih besar dari nilai Maximum Transfer Unit/MTU ) yang dimiliki oleh sebuah antarmuka di mana data tersebut dikirim. Karena, jika ukuran paket data yang dikirim lebih besar dibandingkan nilai MTU, paket data yang dikirimkan bisa saja terpecah menjadi beberapa fragmen yang akhirnya tidak jadi terkirim dengan benar.
UDP tidak menyediakan mekanisme flow-control, seperti yang dimiliki oleh TCP.
Karena UDP merupakan protokol yang tidak perlu membuat koneksi terlebih dahulu dengan sebuah host tertentu, maka protokol ini sering digunakan untuk transmisi. Sebuah protokol lapisan aplikasi dapat mengirimkan paket data ke beberapa tujuan dengan menggunakan alamat multicast atau broadcast. Berbeda dengan protokol TCP yang hanya bisa mengirimkan one-to-one. 2.4.3. RealTime Transport Protocol (RTP) RTP merupakan protokol yang digunakan untuk mengirimkan paket data secara realtime, biasa digunakan untuk transmisi multimedia, seperti audio dan video. Aplikasi yang dibangun menggunakan protokol ini biasanya dibangun diatas protokol UDP. RTP juga
21
mendukung dalam transmisi data ke tujuan lebih dari satu mengunakan distribusi multicast atau broadcast dalam network.[19] RTP tidak menyediakan mekanisme untuk memastikan waktu penerimaan secara tepat waktu dan memberi jaminan mengenai kualitas data yang dikirim, pada RTP, proses pengiriman tidak dijamin dikirim secara berurutan, oleh karena itu penerima harus merekontruksi ulang paket data yang diterima, dan mengabaikan paket data yang hilang atau rusak selama dikirim. Protokol ini bekerja berpasangan dengan protokol kontrol yang disebut RTCP (RealTime Control Protocol) yang bertugas untuk menerima informasi kontrol sesuai dengan permintaan. Arsitektur RTP dapat dilihat pada Gambar 2.8
Gambar 2.8. Arsitektur RTP
Pada aplikasi yang dibangun dalam RTP, selain memiliki sumber dan tujuan penerima, sistem juga harus dilengkapi dengan translator dan mixer. Translator digunakan untuk menerjemahkan satu format data ke bentuk lainnya, seperti contohnya pada pengiriman paket data multimedia berupa audio atau video, dimana paket multimedia tersebut harus diubah ke dalam format tertentu sehingga tidak membutuhkan banyak bandwidth. Sedangkan mixer berfungsi untuk mengkombinasikan pecahan bagian-bagian data sehingga menjadi satu kesatuan skema. Protokol RTP memiliki mekanisme khusus dalam pengirimannya yang disebut dengan header. Berikut merupakan penjelasan mengenai RTP header: a. Sequence Number Jumlah dari Sequence number adalah 16bit. Dimana akan terjadi penambahan pada setiap paket data yang datang, sequence number biasa digunakan untuk mendeteksi paket data yang hilang atau rusak, dan untuk mengurutkan kembali data sesuai permintaan 22
b. Timestamp Merupakan nilai sampling yang didapatkan dari waktu penghubung yang digunakan untuk perhitungan sinkronisasi. Timestamp juga biasa digunakan untuk mengaktifkan fungsi penerima dalam memutar sample sesuai dengan interval, dan untuk melakukan sinkronisasi apabila terdapat media streaming lain yang berjalan. c. Identifikasi Pengirim Merupakan tanda pengenal yang bersifat unik yang berfungsi untuk membedakan dan mensinkronisasi media data yang di terima, dengan adannya identifikasi pengirim, maka dapat mengatasi permasalahan tercampurnya data yang dikirim dari dua atau lebih sumber media.
2.4.4. RealTime Control Protocol (RTCP)[19] RTCP merupakan protokol control yang bekerja sama dengan RTP, protokol ini memberikan umpan balik kepada setiap penerima yang berada pada sesi RTP. RTCP bertugas untuk memberi laporan mengenai jumlah paket yang hilang, besarnya delay, dan jitter. Dari informasi yang didapat nantinya dapat digunakan untuk memodifikasi cara pengiriman data untuk mengatasi berbagai macam permasalahan jaringan. RTCP akan mengirimkan paket secara berkala dan mengidentifikasi data yang dikirim dan data yang diterima. Beberapa tipe paket RTCP tersebut adalah sebagai berikut: a. Sender Report Informasi yang diperoleh pada saat pengiriman berlangsung melalui paket RTP. b. Receiver Report Informasi yang diperoleh pada sisi penerima, saat menerima paket. c. Source description Informasi yang berisi mengenai sumber lokasi pengirim beserta identitasnya. d. Stop Informasi yang berisi mengenai penerima yang sudah tidak aktif atau meninggalkan session.
2.4.5. Real Time Streaming Protocol (RTSP) RTSP merupakan protokol yang berada pada layer aplikasi yang digunakan untuk mengontrol multimedia baik berupa audio maupun video secara real time, RTSP mendukung
23
perangkat interaktif serta tombol yang digunakan dalam player multimedia seperti play, pause dan lainnya. RTSP mendukung penggunaan dari RTP sebagai dasar protokol pengiriman data multimedia, protokol tersebut diharapkan bisa memaksimalisasi pengiriman data multimedia secara real time dari pengirim ke penerima
2.5. Java Media Framework[20] Java Media Framework (JMF) merupakan bagian dari J2SE yang difokuskan pada pemprograman multimedia streaming. JMF sudah mendukung penggunaan protokol RTP yang digunakan sebagai protokol aplikasi dalam mengolah data multimedia secara real-time. JMF juga sudah mendukung berbagai macam tipe format audio dan video. Beberapa fungsi JMF antara lain: a. Dapat digunakan untuk berbagai file multimedia pada Java Applet atau aplikasi b. Memutar media streaming dari internet c. Capture audio dan video dari sumber seperti microphone dan kamera kemudian di-ubah ke dalam format tertentu d. Mengolah media multimedia time-based dan mengubah format multimedia e. Mengirimkan media multimedia secara real-time melalui jaringan intranet maupun internet Arsitektur dari Java Media Framework dapat dilihat pada Gambar 2.9
Gambar 2.9. Arsitektur JMF
24
Beberapa fungsi penting dalam JMF untuk pembuatan aplikasi streaming yaitu: 1. Capture Device Merupakan komponen perangkat keras yang akan digunakan untuk pengambilan media data, seperti video kamera atau microphone, hasil dari rekaman akan langsung dikonversi agar bisa ditampilkan atau disimpan. Fungsi ini digolongkan sebagai push atau pull source, dimana user bisa mengatur kapan dan sumber capture yang akan digunakan. 2. DataSource Berfungsi untuk mengatur transfer dari media. Pada JMF datasource didefinisikan dengan MediaLocator. Data source bisa berupa file dan streaming yang terdapat pada jaringan. Kelebihan fungsi ini adalah data source dapat langsung dikenali. Media data yang di set bisa di berupa file lokal, file jaringan maupun broadcast live internet. 3. Player Player memperoleh input stream data multimedia yang nantinya dikirim dan diterima melalui layar client. Player merupakan interface yang mempersiapkan suatu DataSource untuk dipresentasikan. Sebuah player memiliki 6 states yang dapat dilihat pada Gambar 2.10
Gambar 2.10. State Player .
25
a. Unrealized Ketika player pertama kali dibuat, dan belum memiliki informasi mengenai media. b. Realizing Adalah proses untuk mendapatkan sumber, sebuah player hanya bisa memiliki sebuah sumber saja. c. Realized Pada state ini player sudah memiliki informasi mengenai media beserta tipe nya. Realized player tahu bagaimana data tersebut diterjemahkan. d. Prefetch Sebuah Prefetch player mulai mempersiapkan untuk mempresentasikan media, jika media tersebut memiliki fitur perulangan, maka player akan mempersiapkan agar dapat melakukan perulangan, dan apabila media tidak memiliki fungsi perulangan, maka player memerlukan buffer tambahan atau proses alternatif lainnya. e. Prefethed Pada state ini, player sudah siap untuk memulai mempresentasikan media. f. Started Player mulai mempresentasikan media berdasarkan time-base dan waktu akan berjalan selama pemutaran. 4. Processor Seperti halnya player prosesor memiliki state-state yang sama, hanya saja prosesor memiliki state tambahan antara Urealize dan Realize yaitu Configurating, processor masuk ke tahapan konfigurasi dari Unrealized ketika tahapan metode ini dipanggil. Processor akan berada pada tahapan metode ini saat mulai terhubung ke DataSource. Tahapan kedua adalah Configured, dimana prosesor akan berpindah ke tahapan ini setelah terhubung ke DataSource dan data telah memiliki format yang sudah ditentukan. 5. DataSink Merupakan interface dasar untuk objek, dengan DataSink isi media dibaca dan dikirimkan oleh suatu DataSource menuju ke tujuan yang ditentukan.
26
6. Format Merupakan class yang akan menempatkan suatu objek ke suatu format media yang tepat. 7. Manager Merupakan
interface
yang
berfungsi
sebagai
penghubung
objek
dan
mengintegrasikan implementasi interface yang digunakan dengan kelas-kelas yang ada. 8. RTP Transmitter Pada RTP Transmitter, DataSource memperoleh data yang berasal dari Capture Device, kemudian data tersebut akan diolah oleh Processor dan dikembalikan kembali menjadi DataSource setelah itu dikirim melalui Session Manager untuk ditransmisikan ke dalam jaringan. RTP Transmitter dengan JMF dapat dilihat pada Gambar 2.11
Gambar 2.11. RTP Transmitter dengan JMF 9. RTP Receiver File yang ditransmisikan secara real-time melalui RTP akan diterima kembali pada Session Manager dan diteruskan oleh Player untuk diolah dan ditampilkan pada layar Console Client secara berkala.
2.6. Java Applet Java Applet adalah aplikasi java yang bisa disisipkan kedalam halaman HTML. Java applet bisa berjalan pada web browser yang telah mendukung java seperti mozilla, IE, dan chrome. Applet dirancang untuk berjalan ‘remotely‘ pada browser client, sehingga ada beberapa keterbatasan. Secara default, applet tidak bisa mengakses resource pada komputer lokal. Applet biasanya digunakan untuk membuat website lebih dinamis dan menghibur.[18]
27
Keuntungan menggunakan Java Applet: 1. Bersifat lintas platform, dapat dijalankan pada Windows, Mac OS, dan Linux. 2. Bisa berjalan pada semua versi plugin java. 3. Bisa berjalan di dalam sandbox, sehingga user tidak perlu meninjau source-nya, berjalan tanpa persetujuan keamanan. 4. Didukung oleh hampir semua browser 5. Applet bisa disimpan sebagai cache oleh sebagian besar webbrowser sehingga menjadi lebih cepat untuk dimuat ketika diakses berikutnya.
Kerugian Menggunakan Java Applet: 1. Memerlukan plugin Java. 2. Java applet memerlukan JVM (Java Virtual Machine) sehingga saat pertama dijalankan, akan memakan waktu cukup lama. 3. Jika applet tidak di-cache kedalam komputer lokal, maka proses download akan memakan waktu lama.
2.7. Wireshark[21] Wireshark merupakan software yang digunakan untuk sniffing dan analisa jaringan. Wireshark software dapat di unduh secara gratis pada website www.wireshark.org. wireshark dapat menganalisa Quality of Service (Qos) jaringan dan meng-capture kualitas dari jaringan tersebut. Salah satu fungsi penting wireshark yaitu RTP stream analysis merupakan fungsi yang digunakan untuk pengujian pada skripsi ini. Contoh hasil capture analisis RTP stream analysis wireshark dapat dilihat pada Gambar 2.12.
28
Gambar 2.12. Wireshark RTP Stream Analysis
Pada Wireshark RTP stream analysis akan ditampilkan analisa paket RTP, akan tertampil sumber pengirim RTP dan tujuan kiriman, data jumlah paket yang telah terkirim beserta waktunya, delta, jitter dan packet loss. Pengertian delta pada wireshark adalah perbedaan waktu kedatangan antara paket yang diterima sekarang dengan paket yang diterima sebelumnya. delta pada wireshark mirip dengan delay, tetapi delta dideteksi dari tiap tiap paket data yang diterima.
29