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 men-
decode 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
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.
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.
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.
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
11
Gambar 2.5 Proses Audio Encoding [4]
12
Gambar 2.6 Proses Capture Audio [4]
13
Tabel 2.1. Perbandingan codec audio
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 por t 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 : (Inisialisasi koneksi)
C : GET /index.htm HTTP/1.1
C : Host: www.alamathost.com
S : 300 OK
S : Mime-type: text/html
S :
S : -- data dokumen --
S : (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]
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
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 masing-
masing 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:
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.
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
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.
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
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.
Arsitektur dari Java Media Framework dapat dilihat pada Gambar 2.9
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
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
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.
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 dela y, tetapi delta
dideteksi dari tiap tiap paket data yang diterima.
29