Studi Konsumsi Energi Perangkat Komunikasi Bergerak Untuk Aplikasi Video Streaming

(1)

TUGAS AKHIR

STUDI KONSUMSI ENERGI PERANGKAT KOMUNIKASI

BERGERAK UNTUK APLIKASI

VIDEO STREAMING

Diajukan untuk memenuhi persyaratan dalam menyelesaikan pendidikan sarjana (S-1) pada Departemen Teknik Elektro

OLEH :

NIM : 090402052

YOSUA NAINGGOLAN

DEPARTEMEN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS SUMATERA UTARA

2015


(2)

Lembar Pengesahan

STUDI KONSUMSI ENERGI PERANGKAT KOMUNIKASI BERGERAK UNTUK APLIKASI VIDEO STREAMING

Oleh:

NIM : 090402052 Yosua Nainggolan

Disetujui oleh: Pembimbing,

NIP :197802022003121001 Suherman, Ph.D

Diketahui oleh:

Ketua Departemen Teknik Elektro FT USU

NIP. 19540531198611002 Ir. Surya Tarmizi Kasim, M.Si.

DEPARTEMEN TEKNIK ELEKTRO FAKULTAS TEKNIK

UNIVERSITAS SUMATERA UTARA MEDAN


(3)

ABSTRAK

Aplikasi perangkat komunikasi bergerak berkembang dan beragam

jenisnya. Aplikasi video streaming merupakan salah satu aplikasi dengan

keperluan energi yang besar. Sementara sumber energi perangkat bergerak sangat bergantung pada baterai. Sedangkan daya tahan baterai terbatas. Sehingga konsumsi energi perangkat bergerak sangat terkait dengan aplikasi yang berjalan.

Aplikasi perangkat bergerak menggunakan transport layer protocol. Ada

dua protokol yang dapat digunakan dalam aplikasi video streaming: User

Datagram Protocol (UDP) dan Transmission Control Protocol (TCP). Pemilihan protokol yang sesuai berpengaruh pada umur baterai untuk sekali pengecasan. Tugas Akhir ini meninjau, meneliti serta membandingkan konsumsi energi yang diserap perangkat komunikasi bergerak pada saat mengakses layanan video dikaitkan dengan protokol yang digunakan.

Dari eksperimen dengan menggunakan piranti pengukur arduino dan

perangkat bergerak Nokia diperoleh bahwa konsumsi energi UDP lebih kecil daripada TCP. UDP mengkonsumsi rata-rata 0,0173 Joule per paket, sementara TCP 0,285 Joule per paket. Konsumsi energi TCP berkisar 16 kali lipat dari

konsumsi energi UDP. Faktor delay menyebabkan kondisi TCP memburuk

dengan faktor Energi-Delay mencapai 243 kali dari UDP. Namun demikian,

packet loss pada UDP yang mencapai 7,8 kali lebih besar dari TCP yang menyebabkan faktor konsumsi energi-loss TCP hanya berkisar 2 kali UDP.


(4)

KATA PENGANTAR

Puji syukur ke hadirat Tuhan Yang Maha Kuasa sehingga Tugas Akhir yang berjudul “Studi Konsumsi Energi Perangkat Komunikasi Bergerak untuk

Aplikasi Video Streaming” dapat penulis selesaikan dengan baik. Penulis

bersyukur atas segala semangat, inspirasi, kemurahan, dan kemudahan dari-Nya. Tugas Akhir ini merupakan bagian dari kurikulum yang harus diselesaikan untuk memenuhi persyaratan menyelesaikan pendidikan Sarjana Strata Satu di Departemen Teknik Elektro, Fakultas Teknik, Universitas Sumatera Utara. Tugas Akhir ini juga merupakan bahagian dari penelitian yang dilakukan oleh Bapak Suherman, Ph.D.

Selama penulis menjalani pendidikan di kampus hingga diselesaikannya Tugas Akhir ini, penulis banyak menerima bantuan, bimbingan serta dukungan dari berbagai pihak. Pada kesempatan ini penulis ingin menyampaikan terima kasih kepada semua pihak yang telah memberikan dukungan dan semangat selama proses pengerjaan Tugas Akhir ini, antara lain:

1. Orangtua penulis: Ayahanda Mangala Tua Stefanus Nainggolan ST. (Alm)

dan Ibunda Landina Tinur Rismaida Sihombing S.Pd. serta semua anggota keluarga tercinta yang telah memberikan semangat dan dukungan moril. Terima kasih atas kesabaran, pengertian dan doa-doanya yang begitu tulus.

2. Bapak Suherman, Ph.D. selaku Dosen Pembimbing Tugas Akhir penulis.

Terima kasih untuk bimbingan, arahan dan ilmu semasa kuliah di USU dan khususnya selama pengerjaan Tugas Akhir ini.


(5)

4. Bapak Ir. Syahrawardi selaku Dosen Wali penulis atas segala bimbingan dan nasehat serta motivasinya selama penulis menjalani kegiatan akademik.

5. Bapak Ir. Surya Tarmizi Kasim, M.Si. dan Bapak Rahmad Fauzi, ST., M.T.

sebagai Ketua dan Sekretaris Departemen Teknik Elektro Fakultas Teknik Universitas Sumatera Utara.

6. Seluruh Dosen Departemen Teknik Elektro Fakultas Teknik Universitas

Sumatera Utara yang telah membekali penulis dengan berbagai disiplin ilmu selama masa pendidikan.

7. Seluruh Pegawai dan Karyawan Departemen Teknik Elektro Fakultas Teknik

Universitas Sumatera Utara atas segala bantuan dan dukungannya.

8. Seluruh teman-teman stambuk 2009 dan konsentrasi Teknik Telekomunikasi

atas kebersamaannya selama menempuh pendidikan bersama di kampus.

9. Jehuda Naftali Marbun, Dhani Hariadi yang sudah meminjamkan alat untuk

melengkapi penelitian ini. Rhoby Maulana yang sudah membantu banyak untuk menyelesaikan pemrograman. Abang Azhari Sinaga yang sudah mendukung materi dan motivasi untuk penelitian ini.

10. Rekan-rekan di Album Medan yang selalu memberikan motivasi dan

semangat.

11. Clintomi Sidabutar dan Sakti Brave Manurung selaku teman satu rumah yang

selalu bisa menjadi teman untuk berbagi.

12. Seluruh pihak yang namanya tidak dapat penulis sebutkan satu per satu,

penulis ucapkan terima kasih.

Penulis menyadari bahwa Tugas Akhir ini tidak luput dari kesalahan-kesalahan, baik dari segi tata bahasa maupun dari segi ilmiah. Untuk itu penulis


(6)

akan menerima dengan terbuka, segala saran dan kritik yang ditujukan untuk memperbaiki Tugas Akhir ini. Akhir kata, semoga Tugas Akhir ini bermanfaat bagi semua pihak.

Medan, Maret 2015 Penulis


(7)

DAFTAR ISI

STUDI KONSUMSI ENERGI PERANGKAT KOMUNIKASI BERGERAK

UNTUK APLIKASI VIDEO STREAMING... i

LEMBAR PENGESAHAN... i

ABSTRAK... ii

KATA PENGANTAR... iii

DAFTAR ISI... vi

DAFTAR GAMBAR... ix

DAFTAR TABEL... x

BAB I PENDAHULUAN... 1

1.1 Latar Belakang... 1

1.2 Rumusan Masalah... 2

1.3 Tujuan Penulisan... 2

1.4 Batasan Masalah... 3

1.5 Metode Penelitian... 3

1.6 Sistematika Penulisan... 4

BAB II DASAR TEORI... 7

2.1 Pentingnya Efisiensi Energi pada Perangkat Komunikasi Bergerak... 7

2.2 Protokol Komunikasi... 8

2.3 Arsitektur TCP/IP... 9

2.3.1 Application Layer... 9

2.3.2 Transport Layer... 10


(8)

2.3.4 Network Access Layer... 11

2.3.5 Physical Layer... 11

2.4 User Datagram Protocol (UDP)... 11

2.5 Transmission Control Protocol (TCP)... 12

2.6 Jaringan Wireless Local Area Network (WLAN) Adhoc... 14

2.7 Survey Penelitian Konsumsi Energi... 15

2.8 Efisiensi Energi pada Trafik Multimedia... 16

2.9 Parameter Pengukur Konsumsi Energi... 16

2.9.1 Konsumsi Energi per Transmisi... 16

2.9.2 Konsumsi Energi per Paket... 17

2.9.3 Faktor Energi-Delay... 17

2.9.4 Faktor Energi-Loss... 17

BAB III METODOLOGI PENELITIAN... 18

3.1 Langkah-Langkah Penelitian... 18

3.2 Waktu dan Tempat Penelitian... 19

3.3 Perancangan Perangkat Pengukuran... 20

3.3.1 Alat dan Bahan... 20

3.3.2 Rancangan Piranti Keras Perangkat Pengukuran... 20

3.3.3 Rancangan Piranti Lunak Perangkat Pengukuran... 22

3.3.4 Rancangan Piranti Lunak Streaming Video... 24

3.4 Konfigurasi Jaringan... 26

3.5 Eksperimen Pengiriman dan Pengukuran... 27

BAB IV HASIL PENGUKURAN DAN ANALISIS DATA... 28


(9)

4.1.1 Tampilan Eksperimen... 28

4.1.2 Tampilan Layar Energi yang Terukur... 31

4.1.3 Tampilan Layar Data yang Masuk... 32

4.2 Analisis Konsumsi Energi... 33

BAB V PENUTUP... 35

5.1 Kesimpulan... 36

5.2 Saran... 37

DAFTAR PUSTAKA... 38 LAMPIRAN


(10)

DAFTAR GAMBAR

Gambar 2.1 Arsitektur TCP/IP dalam model layer... 9

Gambar 2.2 Header UDP... 12

Gambar 2.3 Header TCP... 13

Gambar 3.1 Diagram blok penelitian konsumsi energi perangkat komunikasi bergerak ... 19

Gambar 3.2 Rangkaian perangkat pengukuran... 21

Gambar 3.3 Implementasi nyata perangkat pengukuran... 22

Gambar 3.4 Tampilan pemrograman arduino UNO... 23

Gambar 3.5 Diagram alir piranti lunak arduino UNO... 23

Gambar 3.6 Diagram alir pengirim data... 24

Gambar 3.7 Diagram alir penerima data... 25

Gambar 3.8 Diagram alir eksperimen... 27

Gambar 4.1 Tampilan UDP dan TCP pada Nokia E-63... 28

Gambar 4.2 Tampilan program penerima data video... 29

Gambar 4.3 Tampilan Connectify Hotspot... 30

Gambar 4.4 Pengkabelan arduino UNO... 30

Gambar 4.5 Tampilan layar pengukuran energi... 31


(11)

DAFTAR TABEL


(12)

ABSTRAK

Aplikasi perangkat komunikasi bergerak berkembang dan beragam

jenisnya. Aplikasi video streaming merupakan salah satu aplikasi dengan

keperluan energi yang besar. Sementara sumber energi perangkat bergerak sangat bergantung pada baterai. Sedangkan daya tahan baterai terbatas. Sehingga konsumsi energi perangkat bergerak sangat terkait dengan aplikasi yang berjalan.

Aplikasi perangkat bergerak menggunakan transport layer protocol. Ada

dua protokol yang dapat digunakan dalam aplikasi video streaming: User

Datagram Protocol (UDP) dan Transmission Control Protocol (TCP). Pemilihan protokol yang sesuai berpengaruh pada umur baterai untuk sekali pengecasan. Tugas Akhir ini meninjau, meneliti serta membandingkan konsumsi energi yang diserap perangkat komunikasi bergerak pada saat mengakses layanan video dikaitkan dengan protokol yang digunakan.

Dari eksperimen dengan menggunakan piranti pengukur arduino dan

perangkat bergerak Nokia diperoleh bahwa konsumsi energi UDP lebih kecil daripada TCP. UDP mengkonsumsi rata-rata 0,0173 Joule per paket, sementara TCP 0,285 Joule per paket. Konsumsi energi TCP berkisar 16 kali lipat dari

konsumsi energi UDP. Faktor delay menyebabkan kondisi TCP memburuk

dengan faktor Energi-Delay mencapai 243 kali dari UDP. Namun demikian,

packet loss pada UDP yang mencapai 7,8 kali lebih besar dari TCP yang menyebabkan faktor konsumsi energi-loss TCP hanya berkisar 2 kali UDP.


(13)

BAB I PENDAHULUAN

1.1 Latar Belakang

Teknologi seluler berkembang dari generasi pertama dengan sistem suara

analog AMPS (Advanced Mobile Phone System), diikuti suara digital GSM

(Global System for Mobile Communications) dan CDMA (Code Division Multiple Access) sebagai generasi kedua sampai ke teknologi seluler dengan dukungan komunikasi data (dari generasi 2,5G sampai 4G). Perkembangan yang pesat tersebut memungkinkan teknologi seluler melayani aplikasi komunikasi video seperti video on demand dan video browsing. Aplikasi tersebut didukung juga oleh sistem operasi pada perangkat komunikasi bergerak yang memiliki fitur yang cukup lengkap seperti layaknya sebuah komputer.

Aplikasi yang sangat berkembang luas digunakan sekarang adalah video

on demand (VOD) dan video browsing. VOD memungkinkan pengguna untuk melihat sebuah video secara langsung (online). Seseorang juga dapat dengan mudah melakukan streaming konten video seperti aplikasi youtube. Perangkat komunikasi bergerak menggunakan baterai sebagai sumber energinya. Kesemua aplikasi di atas mengkonsumsi energi baterai yang cukup besar karena melibatkan transmisi data video yang berkapasitas besar dan presentasi video player. Jalannya aplikasi di atas bergantung pada ketersediaan energi baterai. Umur baterai sebagai sumber energi untuk perangkat komunikasi bergerak menjadi perhatian khusus bagi para ahli dan produsen perangkat baterai.


(14)

Selain teknologi baterai, jaringan, dan aplikasi pengguna, protokol komunikasi memegang peranan penting dalam menentukan seberapa banyak sinyal-sinyal komunikasi berinteraksi. Semakin banyak interaksi semakin banyak daya baterai yang dibutuhkan. Sehingga, pemilihan protokol yang efisien dalam menggunakan energi sangat penting. Tugas Akhir ini bertujuan meneliti sejauh mana konsumsi energi yang diserap perangkat komunikasi bergerak saat mengakses layanan video dihubungkan dengan jenis protokol transport yang digunakan.

1.2 Rumusan Masalah

Maka rumusan masalah dari tugas akhir ini adalah sebagai berikut: 1. Bagaimana cara mengukur konsumsi energi baterai secara real-time?

2. Bagaimana mengimplementasikan aplikasi video streaming dengan

protokol transport User Datagram Protocol (UDP) dan Transmission Control Protocol (TCP)?

3. Parameter apa saja yang digunakan untuk menganalisis konsumsi

energi pada perangkat bergerak yang melakukan streaming video?

1.3 Tujuan Penulisan

Penulisan Tugas Akhir ini bertujuan meneliti sejauh mana konsumsi energi yang diserap perangkat komunikasi bergerak saat mengakses layanan video dihubungkan dengan protokol transport yang digunakan.


(15)

1.4 Batasan Masalah

1. Protokol yang dievaluasi adalah User Datagram Protocol (UDP) dan

Transmission Control Protocol (TCP).

2. Aplikasi video streaming diimplementasikan dalam bentuk

pemrograman soket menggunakan bahasa java tanpa komponen

representasi layar video.

3. Pengukuran menggunakan arduino UNO.

4. Perangkat yang diuji adalah handphone Nokia E63 berbasis symbian,

dengan menggunakan jaringan Wireless Local Area Network (WLAN)

802.11.

5. Jaringan yang digunakan adalah dengan struktur adhoc dalam

lingkungan operasi yang tidak terkontrol, dimana interferensi jaringan 802.11 dan radio lain tidak dapat dihindarkan. Parameter jaringan seperti modulasi, frekuensi operasi dan bandwidth tidak diketahui. Hal ini disebabkan terbatasnya akses pada lapisan medium dan fisik dari jaringan yang digunakan.

6. Spesifikasi buffer pada pengirim dan penerima tidak diberikan

berhubung terbatasnya informasi fisik perangkat yang digunakan. 7. Baterai yang digunakan adalah BP-4L Li-polymer.

1.5 Metode Penelitian

Untuk dapat menyelesaikan Tugas Akhir ini maka penulis menerapkan beberapa metode penulisan diantaranya adalah sebagai berikut:


(16)

a. Studi literatur

Mempelajari dan memahami buku atau Tugas Akhir dan juga jurnal yang telah ada untuk dijadikan sebagai acuan dan referensi guna membantu penyelesaian Tugas Akhir. Selain itu, mengakses internet dengan mencari teori-teori yang berhubungan dengan topik dan pembahasan Tugas Akhir.

b. Implementasi perangkat pengukur konsumsi energi baterai

Pengukuran real time energi baterai dilakukan menggunakan perangkat

mikrokontroler arduino UNO.

c. Implementasi perangkat lunak untuk aplikasi video streaming.

Dalam bentuk pemrograman soket menggunakan bahasa java

mengimplementasikan protokol transport yang akan digunakan. d. Analisis dan perhitungan

Hasil tersebut akan didiskusikan dengan dosen pembimbing dan dosen penguji untuk kemudian direvisi dan diperbaiki.

e. Penulisan buku

Penulisan buku Tugas Akhir dilakukan sebagai penggambaran kesimpulan dari analisis dan perhitungan. Kesimpulan tersebut merupakan jawaban dari permasalahan yang dianalisis. Selain itu juga akan diberikan saran sebagai masukan yang berkaitan dengan apa yang telah diteliti.

1.6 Sistematika Penulisan

Tugas Akhir ini disusun berdasarkan sistematika pembahasan sebagai berikut:


(17)

BAB I Pendahuluan

Bab ini berisikan tentang latar belakang, tujuan dan manfaat penelitian, metodologi penelitian dan sistematika penulisan.

BAB II Dasar Teori

Bab ini memberikan penjelasan mengenai hubungan efisiensi energi dengan perkembangan teknologi perangkat komunikasi bergerak dan perkembangan perangkat baterai sebagai sumber daya yang digunakan pada perangkat komunikasi bergerak. Terdapat juga pembahasan tentang

aplikasi video streaming pada perangkat komunikasi

bergerak. Selain itu, diberikan juga pembahasan dan penjelasan mengenai pengukuran konsumsi baterai secara real-time. Juga membahas tentang desain protokol transport

yaitu user datagram protocol (UDP) dan transmission

control protocol (TCP) yang dipengaruhi energi dari baterai yang merupakan sumber tegangan.

BAB III Metodologi Penelitian

Bab ini berisi tentang pembahasan mengenai pengukuran konsumsi energi perangkat komunikasi bergerak

menggunakan arduino UNO. Juga membahas mengenai

pemrograman soket menggunakan bahasa java. Hasil

pengukuran konsumsi energi perangkat komunikasi bergerak pada saat mengakses aplikasi video streaming.


(18)

BAB IV Hasil Pengukuran dan Analisa Data

Bab ini memaparkan tentang perhitungan konsumsi energi

pada perangkat Nokia series E63 yang digunakan pada

penelitian menggunakan arduino UNO.

BAB V Penutup

Bab ini berisikan beberapa kesimpulan dan saran untuk rekan-rekan yang akan melakukan penelitian lanjutan dari Tugas Akhir ini.


(19)

BAB II DASAR TEORI

2.1 Pentingnya Efisiensi Energi pada Perangkat Komunikasi Bergerak Penggunaan perangkat komunikasi bergerak yang bertumbuh dengan cepat mengisyaratkan permintaan penggunaan energi yang semakin besar pula. Hal ini

disebabkan semakin berkembangnya aplikasi konten perangkat handphone berupa

aplikasi yang diinginkan oleh pengguna.

Perkembangan program aplikasi membutuhkan dukungan teknologi baterai yang memadai. Namun demikian, baterai mempunyai umur atau waktu pakai (baterry life) yang terbatas. Disamping kebutuhan akan teknologi baterai, efisiensi penggunaan baterai oleh program aplikasi juga merupakan langkah yang penting. Salah satunya adalah efisiensi konsumsi energi protokol transport yang digunakan.

Ada dua jenis protokol transport yang dipakai yaitu User Datagram

Protocol (UDP) dan Transmission Control Protocol (TCP). UDP hanya menggunakan koneksi satu arah dimana data yang dikirim tidak membutuhkan acknowledgement number. Sementara TCP membutuhkan acknowledgement number untuk setiap data yang dikirim.

Semakin banyak proses yang terlibat dalam menangani transmisi data, semakin banyak konsumsi energi yang dibutuhkan. Secara kasat mata, TCP melakukan proses penanganan transmisi data lebih banyak daripada UDP, sehingga TCP kemungkinan mengkonsumsi energi lebih banyak daripada UDP. Oleh karenanya, dibutuhkan penelitian untuk membuktikan hal tersebut.


(20)

2.2 Protokol Komunikasi

Protokol adalah seperangkat aturan yang mengatur dan mengijinkan terjadinya koneksi perangkat atau kombinasi dari keduanya. Protokol distandarisasi oleh International Standard Organization (ISO) dalam sebuah Open System Interconnection (OSI) [6]. Dalam model OSI terdapat 7 layer. Berikut ini merupakan 7 layer/ lapisan OSI yaitu: 1. Lapisan aplikasi (application layer): layer ini mendefinisikan sebuah

antarmuka user dengan jaringan data.

2. Lapisan presentasi (presentation layer): layer ini memastikan bahwa

format data yang diterima bisa digunakan oleh aplikasi yang berjalan pada sistem.

3. Lapisan sesi (session layer): layer ini bertanggung jawab dalam

membangun dan memelihara hubungan antara 2 koneksi.

4. Lapisan transport (transport layer): layer ini melakukan manipulasi aktual dari data dan mempersiapkannya untuk dikirim melalui jaringan.

5. Lapisan jaringan (network layer): layer ini menggambarkan bagaimana

sistem pada jaringan yang berlainan segmen dapat saling berhubungan satu sama lain.

6. Lapisan jalur data (data link layer): layer ini menyediakan link untuk data,

membuat paket data menjadi frame yang berhubungan dengan hardware,


(21)

7. Lapisan fisik (physical layer): layer ini bertanggung jawab atas proses data menjadi bit-bit dan mentransfernya melalui media, seperti kabel dan menjaga koneksi fisik antar sistem.

2.3 Arsitektur TCP/IP

TCP/IP adalah standar komunikasi data yang ditemukan oleh Defence

Advance Research Project Agency (DARPA). TCP/IP merupakan kumpulan

protokol yang mengatur komunikasi data dengan menggunakan layer yang lebih

sedikit dibandingkan model OSI. Gambar 2.1 menunjukkan arsitektur TCP/IP dalam model layer [6].

Application Layer Transport Layer

Internet Layer Network Access Layer

Physical Layer

Gambar 2.1 Arsitektur TCP/IP dalam model layer

Jika suatu layer menerima data dari layer lain diatasnya, layer tersebut menambahkan informasi tambahan (header) ke data tersebut. Header tersebut

hanya dapat dibaca oleh layer pada perangkat di sisi penerima. Hal yang

sebaliknya terjadi, jika suatu layer menerima data dari layer lain yang berada di

bawahnya, maka layer tersebut akan membaca header yang diperuntukkan

untuknya, kemudian menghilangkannya dari data.

2.3.1 Application Layer

Layer tertinggi TCP/IP adalah application layer. Layer ini terdapat banyak sekali application protocol beberapa diantaranya adalah:


(22)

- TELNET (Network Terminal Protocol) yaitu protokol yang menyediakan remote login dalam jaringan.

- FTP (File Transfer Protocol) yaitu protokol yang digunakan untuk file

transfer.

- SMTP (Simple Mail Transfer Protocol) yaitu protokol yang digunakan

untuk mengirimkan electronic mail.

- HTTP (Hyper Text Transfer Protocol) yaitu protokol yang digunakan

untuk web browsing.

2.3.2 Transport Layer

Transport layer mempunyai dua fungsi utama yaitu mengatur aliran data antara dua host dan fungsi reliabilitas. Pada transport layer terdapat dua buah protokol yaitu:

a. TCP (Transmission Control Protocol)

TCP harus melakukan hubungan (handshake) terlebih dahulu sebelum

mentransfer data. Selanjutnya, TCP melakukan fungsi reliabilitas yaitu mengkonfirmasi semua pengiriman data. Setelah selesai pengiriman, TCP melakukan terminasi.

b. UDP (User Datagram Protocol)

Protokol ini melakukan fungsi unreliable dan connectionless yaitu

protokol UDP pengiriman dilakukan secara spontan tanpa menunggu konfirmasi.


(23)

2.3.3 Internet Layer

Dalam layer ini mekanisme pengalamatan dan perutean diatur. Mekanisme pengalamatan menggunakan 32 bit alamat (IP versi 4) dan 64 bit alamat (IP versi 6). Algoritma perutean dapat berbentuk statis yang diatur secara manual maupun secara dinamis melalui pertukan informasi link.

2.3.4 Network Access Layer

Protokol pada layer ini menyediakan media bagi sistem untuk

mengirimkan data ke perangkat lain yang terhubung secara langsung. Network

Access Layer setara dengan Data Link Layer pada standar OSI. Fungsi dalam layer ini adalah memastikan data tiba pada perangkat lain yang terhubung langsung secara selamat. Mekanisme pengkodean data, mekanisme cek kesalahan, mekanisme pertukaran data diatur dalam layer ini.

2.3.5 Physical Layer

Physical Layer ini bertanggung jawab atas proses konversi data 0 dan 1 menjadi bentuk fisik (tegangan dan arus) agar dapat terkirim ke media wireless ataupun kabel. Berbagai jenis teknologi komunikasi seperti satelit, kabel koaksial, optic dan dial-up adalah dalam cakupan layer fisik.

2.4 User Datagram Protocol (UDP)

Protokol ini sangat sederhana dengan arti pengirim dan penerima tidak perlu menjaga session atau status koneksi. UDP dapat mengirimkan per segmen tanpa dipengaruhi oleh kepadatan trafik. Protokol UDP menerapkan layanan


(24)

connectionless yaitu tidak adanya campur tangan dari penerima dan pengirim selama pengiriman data terjadi. Hal ini dikarenakan setiap segmen UDP ditangani secara independen dengan segmen UDP lainnya.

Kelemahan UDP antara lain; packet loss yang tinggi dan kemungkinan

congestion. Kehilangan segmen pada UDP sangat mungkin terjadidikarenakan paket yang diterima mungkin tidak berurutan. Paket yang tidak berurutan otomatis akan dibuang. UDP juga tidak memiliki congestion control (kontrol kemacetan). Congestion control mencegah buffer penuh hingga terjadi penurunan kerja jaringan.

UDP berdiri di atas IP. Karena bersifat nirsambungan, hanya sedikit yang perlu dilakukan UDP. Pada dasarnya, UDP menambahkan sebuah kemampuan pengalamatan port ke IP. Hal ini paling terlihat dengan meneliti header UDP. Header menyertakan port sumber dan port tujuan seperti yang ditunjukkan pada Gambar 2.2. Bidang panjang berisi panjang keseluruhan segmen UDP, termasuk header dan data. Checksum menggunakan algoritma cek kesalahan [6].

Gambar 2.2 Header UDP

2.5 Transmission Control Protocol (TCP)

Protokol TCP memiliki beberapa karakteristik, di antaranya : point-to-point, memiliki buffer pada penerima dan pengirim, aliran data yang dikontrol sehingga dapat mengontrol sendiri kemacetan yang terjadi. Struktur segmen yang


(25)

dengan kata lain koneksi end-to-end harus dibangun terlebih dahulu di kedua ujung terminal sebelum kedua ujung terminal mengirimkan data.

TCP hanya menggunakan satu jenis satuan data protokol, disebut segmen

TCP. Karena satu header harus melaksanakan semua mekanisme protokol,

ukurannya cukup besar, dengan panjang terpendek 20 oktet. Headernya dapat

dilihat pada Gambar 2.3 [6].

Gambar 2.3 Header TCP

Secara detail diuraikan sebagai berikut: 1. Port Sumber (16 bit): Port TCP Sumber. 2. Port Tujuan (16 bit): Port TCP Tujuan.

3. Sequence Number (32 bit): Nomor runtutan oktet data pertama dalam segmen ini kecuali bila flag SYN diatur. Bila SYN diatur, bidang ini berisi initial sequence number (nomor runtutan awal, ISN) dan oktet data pertama dalam segmen ini bernomor runtun ISN+1.

4. Acknowledgement Number (AN): Balasan yang ditumpangkan. Berisi nomor runtutan oktet data berikutnya yang diharapkan diterima oleh entitas TCP.

5. Panjang Header (4 bit): Banyak word 32 bit dalam header. 6. Tercadang (6 bit): Dicadangkan.


(26)

- CWR: Jendela kemacetan dikurangi (congestion window reduced).

- ECE: ECN-Echo; Bit CWR dan ECE, ditetapkan dalam RFC 3168,digunakan untuk fungsi pemberitahuan kemacetan eksplisit. - URG: bidang penunjuk urgen penting.

- ACK: bidang balasan penting. - PSH: fungsi push (dorong). - RST: reset sambungan.

- SYN: sinkronkan nomor runtunan. - FIN: tidak ada data lagi dari pengirim.

8. Jendela (16 bit): alokasi kredit kendali aliran, dalam oktet. Berisi banyak oktet data, mulai dari nomor runtunan yang ditunjukkan dalam bidang balasan yang dapat diterima pengirim.

9. Checksum (16 bit): Komplemen satuan dari modulo jumlah komplemen satuan semua word 16-bit dalam segmen ditambah pseudoheader.

10. Penunjuk Urgen (16 bit): Nilai ini, bila ditambahkan ke nomor runtunan segmen, berisi nomor runtunan oktet terakhir dalam seruntunan data urgen. Hal ini memungkinkan penerima mengetahui banyak data urgen yang sedang datang.

2.6 Jaringan Wireless Local Area Network (WLAN) Adhoc

Jaringan adhoc [3] adalah kumpulan host mobile/ wireless membentuk jaringan sementara tanpa bantuan infrastruktur yang didirikan atau diadministrasi terpusat. Dalam kondisi seperti itu, mungkin diperlukan untuk satu host mobile


(27)

karena jangkauan terbatas dari transmisi nirkabel masing-masing host mobile. Jaringan wireless local area network (WLAN) dibangun tanpa kabel dan berjarak sangat dekat layaknya jaringan LAN yang masih menggunakan kabel sebagai media transmisinya. Pada umumnya penggunaan jaringan WLAN ini dilakukan

untuk menghubungkan beberapa perangkat komputer pada satu server. Semua

data akan dibagikan oleh komputer yang ditunjuk sebagai server dengan

menggunakan fitur adhoc yang tersedia pada komputer. Adhoc akan membangun

sebuah jaringan WLAN. Selanjutnya akan diarahkan ke pengaturan penambahan nama jaringan yang akan dibangun. Pengaturan kode keamanan pada jaringan ini sehingga pengguna bisa menggunakannya pada mode jaringan pribadi dengan kata lain diatur dengan tidak terhubung pada jaringan publik.

2.7 Survey Penelitian Konsumsi Energi

Beberapa riset terkait diuraikan dalam paragrap berikut. Gian Paolo Perrucci [4] menjelaskan strategi dan solusi penghematan energi pada perangkat

komunikasi bergerak dengan teknik cross-layer, overlay networks dan

cooperation. Change Wave Research [1] menarik kesimpulan dari hasil pendekatannya kepada para pengguna bahwa umur baterai yang singkat menjadi perhatian khusus untuk kepuasan konsumen. Zhang [8], fokus utama saat ini adalah pengkodean video dan pengiriman video. Beberapa kendala ketika merancang energi perangkat komunikasi bergerak seperti: peningkatan kualitas video tidak berbanding lurus dengan peningkatan teknologi, keberagaman dan perbedaan kemampuan dari perangkat komunikasi bergerak, kemampuan baterai yang tidak sepadan, frekuensi radio yang dinamis berdasarkan ruang dan waktu.


(28)

2.8 Efisiensi Energi pada Trafik Multimedia

Trafik multimedia menyerap energi lebih besar dari trafik data disebabkan kapasitas yang lebih tinggi. Trafik traceforeman_cif sebagai contoh memiliki rate frame tipe I rata-rata 31228,6 byte untuk kecepatan data 1024 kbps.

Trafik multimedia seperti akses youtube dan komunikasi video seperti

skype membutuhkan ketahanan baterai sampai rentang waktu tertentu. Jika baterai tidak bertahan untuk rentang minimal sebuah koneksi, maka akan terjadi kegagalan koneksi. Hal ini sangat mengganggu pengguna. Efisiensi protokol untuk trafik multimedia menjadi kajian lanjut setelah penelitian konsumsi energi.

2.9 Parameter Pengukur Konsumsi Energi

Energi listrik dapat diukur dalam satuan kWh maupun Joule. Namun demikian, untuk lebih spesifik menganalisis konsumsi energi perangkat bergerak

dihubungkan dengan karakteristik transport layer protocol yang digunakan

maupun karakteristik video yang ditransmisikan, berikut beberapa parameter yang dimunculkan.

2.9.1 Konsumsi Energi per Transmisi

UDP memiliki karakteristik pengiriman independent yakni paket langsung dikirim ke jaringan begitu tersedia di buffer. Sehingga jumlah paket pada setiap

transmisi yang dilakukan adalah 1 paket. Sementara TCP menggunakan sliding

window, yaitu transmisi dilakukan jika jumlah paket memenuhi kuota ukuran sliding window.


(29)

Oleh karenanya perlu dibandingkan jumlah konsumsi energi pada setiap transmisi yang dilakukan dalam satuan Joule per transmisi.

2.9.2 Konsumsi Energi per Paket

Jika telah diketahui jumlah energi pada setiap transmisi yang dilakukan, maka harus diketahui berapa energi yang dibutuhkan untuk mengirimkan setiap paket. Energi yang diperlukan ini diukur dalam satuan Joule per paket.

2.9.3 Faktor Energi-Delay

Konsumsi energi yang rendah tidak secara otomatis menentukan efisiensi

sistem. Dalam sistem transmisi, delay adalah hal yang penting untuk

dipertimbangkan. Konsumsi energi yang kecil dan delay yang rendah adalah hal yang diharapkan. Oleh karenanya, faktor kali Energi-Delay dalam satuan Joule detik digunakan untuk menggambarkan konsumsi energi pada setiap paket dikaitkan dengan delay transmisi paket tersebut.

2.9.4 Faktor Energi-Loss

Selain delay, loss juga merupakan parameter penting dalam transmisi video. Semakin kecil nilai persentase loss, maka sistem semakin baik. Oleh karena faktor hasil kali Energi-Loss dimunculkan dalam satuan Joule untuk setiap paket.


(30)

BAB III

METODOLOGI PENELITIAN

3.1 Langkah-Langkah Penelitian

Secara umum langkah-langkah penelitian yang dilakukan meliputi:

1. Persiapan

Persiapan penelitian mencakup studi pustaka dan pengumpulan informasi kebutuhan perangkat yang diperlukan untuk melakukan percobaan dan analisis.

2. Tahap perancangan

Perancangan perangkat penelitian meliputi perancangan perangkat pengukuran konsumsi energi, serta implementasi protokol transport yang

digunakan. Dengan bantuan wireless LAN (WLAN) untuk menghubungkan

perangkat handphone dengan komputer. Selain itu juga dilakukan identifikasi hal-hal yang dibutuhkan untuk menganalisis hasil penelitian.

3. Perhitungan data

Perhitungan data dilakukan meliputi analisis konsumsi energi yang ditinjau berdasarkan paket yang ditransmisikan. Dari analisis tersebut diperoleh hubungan kelebihan dan kekurangan masing-masing protokol komunikasi.

Gambar 3.1 menunjukkan urutan dari langkah-langkah penelitian pengukuran konsumsi energi yang digambarkan dalam bentuk diagram blok yang dimulai dari tahap persiapan sampai pada tahap eksperimen pengukuran dan pengiriman.


(31)

Gambar 3.1 Diagram blok penelitian konsumsi energi perangkat komunikasi bergerak

Dimulai dari persiapan penelitian yang dilakukan berupa persiapan ide pokok penulisan penelitian, persiapan konsep penelitian serta persiapan alat dan bahan. Selanjutnya dilakukan perancangan perangkat penelitian sesuai dengan konsep yang sudah ditentukan sebelumnya. Perancangan perangkat dilakukan pada piranti keras perangkat pengukuran yaitu menghubungkan antara handphone, baterai dan arduino pada hubungan serial. Pada langkah berikutnya dilakukan pemrograman piranti lunak pada perangkat arduino menggunakan bahasa pemrograman arduino dan pemrograman piranti lunak streaming video menggunakan bahasa pemrograman java. Setelah semua perancangan dilakukan sesuai dengan konsep, langkah terakhir adalah dilakukannya eksperimen pengukuran saat proses pengiriman video dilakukan.

3.2 Waktu dan Tempat Penelitian

Penelitian dilaksanakan mulai dari bulan Juli 2014 sampai bulan Desember 2014 dan bertempat di Departemen Teknik Elektro, Universitas Sumatera Utara.


(32)

3.3 Perancangan Perangkat Penelitian

Melakukan penelitian memerlukan persiapan untuk perangkat penelitian. Perangkat penelitian yang digunakan yaitu; alat dan bahan, perangkat pengukuran dan perangkat lunak untuk video streaming.

3.3.1 Alat dan Bahan

Penelitian ini memerlukan alat dan bahan yaitu sebagai berikut: 1. Handphone Nokia series E63

2. Baterai BP-4LLi-polymer 3. Resistor shunt 0,22 ohm 4. Arduino UNO

5. Kabel penghubung

6. Solder dan Timah

7. Kabel downloader

8. Komputer / Modul

9. Multitester

10. Java ME SDK 2.5.2 11. Netbeans IDE8.0.1 12. Wireless Tool Kit 2.5.2

13. Java Development Kit 8u20 windows i586 14. Connectify Hotspot

3.3.2 Rancangan Piranti Keras Perangkat Pengukuran

Gambar 3.2 memperlihatkan perangkat pengukuran yang dirancang.


(33)

mengukur tegangan dan arus yang diserap perangkat komunikasi bergerak (Nokia E63) dari baterai BP-4L.

Gambar 3.2 Rangkaian perangkat pengukuran

Jika tegangan pada kutub positif baterai dinyatakan sebagai v1 dan

tegangan pada kutub negatif baterai dinyatakan sebagai v2, sementara tegangan di

salah satu input perangkat bergerak adalah v3, maka akan diperoleh arus input

perangkat bergerak:

���(�����) =�3−� (�ℎ�2 (����) )... (1)

Dimana R = 0,22 Ohm. Nilai-nilai v1, v2 dan v3 dimasukkan dalam input

analog arduino. Konversi analog ke digital arduino menggunakan resolusi 10 bit dimana range nilai analog 0 volt sampai 5 volt akan dirubah kenilai integer 0 sampai 1023, dengan resolusi 4,9 mV per unit. Nilai yang ditampilkan oleh arduino dikalibrasi dengan multitester sehingga diperoleh nilai sebenarnya.

Tegangan masuk perangkat bergerak diperoleh dari:

���(����) =

1

− �

3... (2) Sehingga total daya yang dikonsumsi adalah:


(34)

Nilai v1, v2 dan v3 adalah hasil pembacaan rata-rata nilai input selama

kurun waktu sample∆� sehingga energi yang diserap perangkat adalah:

���(����.�����) =���(����) ×∆�(�����)... (4)

Hasil pengukuran dianalisis dan hasil perhitungan ditampilkan pada

monitor komputer melalui port serial. Gambar 3.3 menunjukkan implementasi

nyata rangkaian Gambar 3.2.

Gambar 3.3 Implementasi nyata rangkaian pengukuran

3.3.3 Rancangan Piranti Lunak Perangkat Pengukuran

Untuk mengoperasikan perangkat pengukuran perlu dilakukan

pemrograman perangkat arduino UNO. Pemrograman meliputi:

1. loading library yang diperlukan 2. inisialisasi parameter

3. looping membaca tegangan dan arus

4. kemudian menghitung konsumsi daya


(35)

Gambar 3.4 Tampilan pemrograman arduino UNO

Gambar 3.4 menunjukkan tampilan saat pemrograman pada arduino UNO. Program membaca 3 (tiga) input data berupa tegangan di antara perangkat bergerak dan arus yang diserap. Program juga menghitung total energi yang diserap dalam satuan Joule.

Gambar 3.5 menunjukkan diagram alir piranti lunak arduino UNO.


(36)

3.3.4 Rancangan Piranti Lunak Streaming Video

Piranti lunak streaming video diimplementasikan menggunakan bahasa

pemrograman Java Mobile Edition (J2ME) dengan bantuan editor Netbeans 8.0.1 dan Wireless Toolkit (WTK) 2.5.2.

Piranti lunak pengirim video diinstal pada handphone Nokia E63, terdiri

dari 2 bahagian: streaming UDP dan streaming TCP. Prosedur pemrograman

meliputi pembukaan soket koneksi dan pembangunan thread pengiriman data.

Gambar 3.6a dan 3.6b menunjukkan diagram alir piranti lunak pengirim UDP dan

TCP. Lampiran 2 menunjukkan listing program TCP dan UDP.

a. Pengirim data UDP b. Pengirim data TCP

Gambar 3.6 Diagram alir pengirim data

Untuk mempermudah proses pengiriman video, data video dimodelkan berdasarkan video trace, dalam hal ini menggunakan video trace foreman_cif.


(37)

Video trace adalah informasi data video mengenai waktu pengiriman dan jumlah byte. Dari pada mengirim data video asli yang membutuhkan video reader dan render yang memperumit desain, byte dummy digunakan untuk menggantikan video real. Hal ini adalah umum untuk penelitian kualitas video. Data byte dummy berupa aliran bit 01100101.

Dari sisi penerima, netbeans pada komputer mengaktifkan program

peminta video, dimana handphone berfungsi sebagai pengirim dan komputer

sebagai penerima. Hal ini dimaksudkan karena konsumsi daya pengirim video lebih signifikan dibanding penerima video. Gambar 3.7a dan 3.7b menunjukkan diagram alir penerima video, sementara Lampiran 3 berisi listing programnya.

a. UDP b. TCP


(38)

3.4 Konfigurasi Jaringan

Dengan bantuan WLAN menghubungkan antara perangkat seluler handphone sebagai server pengirim data video dengan komputer sebagai client

penerima data video. WLAN menggunakan fitur adhoc yang sudah ada pada

perangkat komputer dihubungkan dengan membaca ip address server dan client. Menggunakan jaringan private untuk memaksimalkan data hasil pengiriman video

yang dilakukan. Adhoc hanya bisa menghubungkan antara perangkat komputer

dengan komputer saja.

Pada penelitian ini menghubungkan koneksi antara handphone dengan komputer sehingga diperlukan bantuan aplikasi hotspot yang bertindak sebagai access point pada jaringan tersebut. Aplikasi yang digunakan adalah Connectify Hotspot berupa software yang dapat menghubungkan beberapa perangkat komunikasi bergerak yang berbeda jenis pada satu jaringan. Aplikasi ini akan juga akan membaca alamat ip masing-masing perangkat yang terhubung.

Kondisi pengukuran dan pengiriman yang dilakukan menghubungkan hanya satu perangkat handphone dan satu perangkat komputer saja serta diberikan kode keamanan koneksi untuk mencegah perangkat lain dapat mengakses jaringan tersebut. Jarak pengukuran dan pengiriman yang dilakukan dengan radius kurang dari 10 meter. Keadaan pengukuran dan pengiriman tidak terhubung pada akses internet sehingga tidak terganggu oleh kepadatan trafik data perangkat komunikasi bergerak lainnya.


(39)

3.5 Eksperimen Pengiriman dan Pengukuran

Pada tahapan ini dilakukan pengukuran yang dilakukan secara bersamaan dengan tahap pengiriman video dengan durasi video 60 detik menggunakan transmisi UDP dan transmisi TCP. Gambar 3.8 menunjukkan langkah-langkah eksperimen yang dilakukan. Nilai tegangan pada baterai sebesar 3,7 volt, dicatat

pada print outarduino UNO. Selama pengiriman video dilakukan, maka arduino

akan mencatat nilai arus, daya dan energi yang dikonsumsi dari baterai baik pada transmisi UDP maupun TCP.

Pada saat bersamaan, dicatat durasi pengiriman video pada editor netbeans. Dicatat juga urutan paket data yang dikirimkan dan urutan frame video pada transmisi UDP dan TCP. Dari data tersebut akan diperoleh berapa jumlah

paket data yang hilang dan berapa delay waktu pengiriman yang terjadi pada


(40)

BAB IV

HASIL PENGUKURAN DAN ANALISIS DATA

4.1 Hasil pengukuran

Berikut adalah beberapa tampilan dari hasil pengukuran dan tampilan pengiriman dan penerimaan data video dari protokol transmisi UDP dan TCP. 4.1.1 Tampilan Eksperimen

Penelitian yang dilakukan menetapkan handphone sebagai server yang mengirim data video. Gambar 4.1a dan 4.1b menunjukkan tampilan pada layar handphone saat menjalankan protokol transmisi UDP dan TCP.

a. UDP b. TCP

Gambar 4.1 Tampilan UDP dan TCP pada Nokia E-63

Sementara Gambar 4.2a dan 4.2b memperlihatkan tampilan editor


(41)

a. Tampilan penerima UDP

b. Tampilan penerima TCP

Gambar 4.2 Tampilan program penerima data video

Untuk dapat menghubungkan konektivitas antara handphone dengan

komputer melalui jaringan adhoc, koneksi dan identifikasi alamat IP dibantu perangkat lunak connectify hotspot. Gambar 4.3 menunjukkan tampilan connectify hotspot yang dipasang pada komputer.


(42)

Gambar 4.3 Tampilan Connectify Hotspot

Gambar 4.4 memperlihatkan pengkabelan piranti pengukuran yang

digunakan pada penelitian, yakni arduino UNO. Baterai dan handphone

dihubungkan dengan arduino pada 3 port yaitu; ground (GND), analog 0 (A0), dan analog 2 (A2).


(43)

4.1.2 Tampilan Layar Energi yang Terukur

Hasil pengukuran yang diperoleh dari piranti pengukuranditampilkan dalam bentuk angka. Gambar 4.5a dan 4.5b menunjukkan tampilan layar pengukuran energi transmisi UDP dan TCP.

a. UDP

b. TCP


(44)

4.1.3 Tampilan Layar Data yang Masuk

Frame video yang dikirimkan oleh server diterima oleh client. Data yang dibaca yaitu waktu pengiriman, waktu penerimaan, urutan paket data yang berhasil dikirim, dan urutan frame video yang berhasil dikirim. Gambar 4.6a dan 4.6b menunjukkan tampilan layar data video transmisi UDP dan TCP.

a. Data video transmisi UDP

b. Data video transmisi TCP


(45)

4.2 Analisis Konsumsi Energi

Dari hasil pengukuran konsumsi energi, diperoleh nilai-nilai v1, v2 dan v3

yang dicuplik dari nilai rata-rata setiap 0,5 detik. Sebagai contoh, hasil

pengukuran menunjukkan v1=3,45 volt, v2=0 dan v3=0,17 volt. Sehingga

diperoleh besaran tegangan perangkat: vin = v1 - v3

= 3,45 - 0,17

= 3,28 volt

Sehingga diperoleh arus:

iin = (0,17-0) / 0,22=0,772 A

Nilai daya adalah:

Pin = 3,28 x 0,772

= 2,53 W

Dan energi:

Win =Pin x ∆t= 2,53 x 0,5 =1,267 J

Dari eksperimen yang dilakukan diperoleh hasil pengukuran bahwa

transmisi UDP memiliki karakteristik real-time, dimana data ditransmisikan

berdasarkan laju penerimaan paket dari layer aplikasi. Sementara transmisi di TCP menggunakan sistem transmisi berbasis window, dimana paket yang diterima

dari lapisan aplikasi disimpan di buffer, kemudian ditransmisikan sekaligus

berdasarkan kapasitas window. Hal ini ditunjukkan oleh eksperimen, dimana

jumlah rata-rata paket TCP adalah 26,82 paket per transmisi, sedangkan UDP 1 paket per transmisi.


(46)

Pengiriman dengan TCP membutuhkan proses retransmisi dan acknowledgement. Pengiriman terjadi secara bulk, dimana tidak cuma 1 paket yang dikirim sehingga TCP perlu energi yang cukup besar. Eksperimen yang dilakukan menunjukkan bahwa energi per paket yang dibutuhkan sebesar 0,285 Joule. Sebaliknya, UDP membutuhkan daya yang lebih kecil karena mengirim data secara nyata sehingga energi yang dibutuhkan sebesar 0,017 Joule.

Disebabkan transmisi bulk, TCP membutuhkan jumlah transmisi yang

lebih rendah dari UDP. UDP mengkonsumsi daya lebih rendah dibanding TCP. Secara total, energi total pada UDP sebesar 77,82 Joule, energi total pada TCP sebesar 11153,49 Joule. Rata-rata energi per byte pada UDP sebesar 0,00027 Joule, sedangkan rata-rata energi per byte pada TCP sebesar 0,00046 Joule. Tabel 4.1 merangkum hasil pengukuran konsumsi energi perangkat komunikasi bergerak.

Tabel 4.1 Analisis konsumsi energi

Protokol Transport Rata-rata Energi per byte (Joule/byte) Rata-rata Energi per Paket (Joule/paket) Rata-rata Energi per Transmisi (Joule/transmisi) Jumlah Transmisi yang sukses Energi Total (Joule)

UDP 0,00027818 0,017332005 0,017347459 4486 77,82070326111

TCP 0,00046084 0,284861 7,460532837 1495 11153,49659

Selain mengkonsumsi energi lebih rendah, UDP juga berhasil menekan delay transmisi rata-rata sebesar 13,809 millidetik, yang menghasilkan faktor Energi-Delay 0,000239 Joule detik. Sementara delay rata-rata TCP mencapai


(47)

200,818 millidetik dengan faktor Energi-Delay 0,058 Joule detik. Faktor Energi-Delay TCP 243 kali UDP. Ini menunjukkan bahwa dari sisi konsumsi energi dan delay, TCP jauh lebih tidak efektif dibandingkan UDP.

Sementara dari sisi packet loss, UDP kehilangan 92%. Ini menghasilkan faktor Energi-Loss 0,016 Joule. Sementara TCP hanya kehilangan 12 %, yang menyebabkan nilai faktor Energi-Loss menjadi 0,034 Joule. Faktor packet loss menyebabkan konsumsi energi TCP menjadi tidak signifikan, hanya berkisar 2 kali jika dibandingkan dengan UDP.


(48)

BAB V PENUTUP

5.1 Kesimpulan

Berdasarkan hasil analisis data dan pembahasan, diperoleh kesimpulan sebagai berikut:

1. Durasi pengiriman yang dilakukan menggunakan transmisi UDP selama 15 menit 4 detik, sementara TCP memerlukan 268 menit 15 detik. Durasi pengiriman TCP yang lebih lama disebabkan adanya proses pengiriman ulang. Durasi pengiriman yang panjang untuk trafik video berdurasi 60 detik dengan bit rate 583 kbps kemungkinan disebabkan oleh terbatasnya kecepatan link jaringan yang digunakan. UDP memiliki waktu pengiriman yang lebih singkat disebabkan protokol ini tidak melakukan retransmisi paket yang hilang, meskipun sebanyak 92% paketnya hilang. Sementara TCP, terus menerus mengirim ulang paket yang hilang sehingga persentasi kehilangan paket hanya 12%. Persentasi paket yang hilang tinggi dapat juga disebabkan keterbatasan kapasitas buffer pada perangkat bergerak.

2. Total energi yang dikonsumsi perangkat komunikasi bergerak pada saat melakukan pengiriman video dengan UDP adalah 77,8207326111 Joule, dengan rata-rata energi yang dikonsumsi per transmisi pada transmisi UDP sebesar 0,017347459 Joule. Sementara TCP mengkonsumsi 11153,49659 Joule, 16 kali lipat dari total konsumsi energi UDP, dengan rata-rata energi per transmisi 7,460532837 Joule. UDP mengirim satu paket per transmisi, sementara TCP mengirim rata-rata 27 paket per transmisi.


(49)

3. Ditinjau dari konsumsi energi dan delay antara protokol UDP dan TCP, maka TCP sangat tidak efektif jika kecepatan jaringan jauh lebih kecil dari bit rate video yang ditransmisikan.

4. Persentase total paket yang hilang pada transmisi UDP yang 7,8 kali lipat dari

TCP. Sehingga transmisi video dengan bit rate lebih kecil dari kecepatan

jaringan tidak akan efektif jika menggunakan UDP.

5.2 Saran

Adapun saran yang dapat penulis berikan untuk menjadi masukan bagi studi atau penelitian berikutnya adalah:

1. Penelitian lanjutan dapat menggunakan desain protokol transport yang berbeda, misalnya; UDP Lite.

2. Kajian efektifitas protokol terhadap kecepatan jaringan dapat menjadi penelitian selanjutnya.

3. Perangkat komunikasi bergerak dengan operating system lain selain berbasis symbian belum diuji.


(50)

DAFTAR PUSTAKA

1. ChangeWave Research, “New Smart Phone Owners Tell Us What They Really

Think”, 2010.

2.Cisco Systems, Inc., “Cisco Visual Networking Index: Global Mobile Data

Traffic Forecast Update, 2010–2015”, 2011.

3. Johnson, D., Maltz, D., “Dynamic Source Routing in Adhoc Wireless

Network”, Journal of Computer Science, 1996.

4. Perrucci, G., Fitzek, F., Sasso, G. and Katz, M., “Energy Saving Strategies for Mobile Devices using Wake-up Signals“, Proc. ACM Press, 2008.

5. Siegmund, M., Matthias, K., Malcolm W., "GSM and Personal

Communications Handbook", Artech House,ISBN 13: 978-0890069578, 1998.

6. Stallings W., “Wireless Communications and Networks”, Pearson Education,

Inc., 2005.

7. Trestian R., “Energy Consumption Analysis of Video Streaming Android

Mobile Devices”, Journal of Communications, 2012.

8. Zhang J., “Power-Aware Mobile Multimedia: a Survey (Invited Paper)”,


(51)

LAMPIRAN 1

Tutorial Implementasi Editor Pengukuran, Pengiriman dan Penerimaan a. Implementasi Editor Pengukuran

Berikut adalah langkah-langkah pengukuran meliputi:

1. Buka editor arduino kemudian setting sketch dan tools menggunakan arduino UNO.

2. Masukkan listing program sesuai dengan pengukuran yang diinginkan.

3. Kemudian lakukan verify load library setelah selesai upload dan serialkan kepada monitor tampilan data.

4. Catat hasil pengukuran.

b. Implementasi Editor Pengiriman Menggunakan Wireless Tool Kit 2.5.2

Berikut adalah langkah-langkah menginstall editor pengiriman meliputi: 1. Siapkan editor Wireless Tool Kit 2.5.2

2. Edit listing program sesuai dengan protokol yang digunakan yaitu

UDP dan TCP.

3. Lakukan perintah open project pada WTK kemudian setting sesuai

dengan perangkat yang digunakan yaitu Nokia series E63.

4. Untuk mendapatkan file yang sudah dieksekusi dalam format .jar pilih perintah set package.

5. Setelah format .jar muncul pada folder WTK lakukan build project untuk menjalankan project yang sudah dibuat pada emulator yang sudah disediakan.

6. Ambil file eksekusi yang berformat .jar lalu install pada perangkat Nokia series E63.

7. Aplikasi akan muncul pada layar handphone dan siap untuk dilakukan

proses pengiriman.

c. Implementasi Editor Penerimaan Menggunakan Netbeans 8.0.1 Berikut adalah langkah-langkah menjalankan editor penerimaan meliputi: 1. Siapkan editor Netbeans 8.0.1

2. Edit listing program sesuai dengan protokol yang digunakan yaitu

UDP dan TCP


(52)

4. Setelah file muncul maka langkah selanjutnya adalah mensetting IP address dari perangkat pengirim.

5. Kemudian pilih perintah run file.

6. Setelah kedua perangkat terhubung, catat hasil pengiriman dan


(53)

LAMPIRAN 2

Listing Program Monitoring Pengukuran Menggunakan Arduino UNO #include <Time.h>

int voltPin = 0; //voltage divider (middle terminal) connected to analog pin 0

int currentPin = 2; //TMP36 data pin

int val = 0; // variable to store the value read

int volt = 0; //variable to store the voltage calculated int current = 0;

static const int RXPin = 19,TXPin = 18; void setup()

{

Serial.begin(9600); //setup serial

setTime(9,20,0,17,01,15); // set time to noon August 8 2014 harus diset setiap melakukan uji coba

}

void loop() {

int reading = analogRead(voltPin); //read the input pin float voltage = reading*4.2;

voltage /= 1024.0;

int reading2 = analogRead(currentPin); //read the input pin float current = voltage - reading2*4.2;

current /= 1024.0;

float v_negatif = voltage + current;

Serial.print(voltage);

Serial.print(" volts titik + "); Serial.print(v_negatif);

Serial.print(" volts titik - "); float arus = current/0.22;

Serial.print(arus);

Serial.print(" ampere ");

float power = (arus*arus*0.22)*1000; Serial.print(power);

Serial.print(" milliwatt "); float energi = (power*3600)/1000; Serial.print(energi);

Serial.print(" joule "); digitalClockDisplay(); delay(500);

}

void digitalClockDisplay(){

// digital clock display of the time Serial.print(hour());

printDigits(minute()); printDigits(second());


(54)

Serial.print(day()); Serial.print(" "); Serial.print(month()); Serial.print(" "); Serial.print(year()); Serial.println(); }

void printDigits(int digits){

// utility function for clock display: prints preceding colon and leading 0

Serial.print(":"); if(digits < 10) Serial.print('0'); Serial.print(digits); }


(55)

LAMPIRAN 3

Listing Program Pengirim Data Transmisi UDP dan TCP Menggunakan Bahasa Java Editor Wireless Tool Kit (WTK) 2.5.2

a. Pengirim Data Transmisi UDP import java.io.IOException; import java.util.Calendar; import java.util.Date; import javax.microedition.io.*; import javax.microedition.io.Datagram; import javax.microedition.io.DatagramConnection; import javax.microedition.lcdui.Alert; import javax.microedition.lcdui.AlertType; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.StringItem; import javax.microedition.lcdui.TextField;

public class UDP implements Runnable, CommandListener { private DatagramMIDlet parent;

private Display display; private Form f;

private StringItem si; private TextField tf;

private Command startCommand = new Command("Start", Command.ITEM, 1);

private Command exitCommand = new Command("Exit", Command.EXIT, 1);

private String address; String portString=null; private int port;

Datagram dg=null; DatagramConnection dc=null;

int [] dataVideo = {27905,10857,10917,10515,11907,11781,9177,12155,11000,12108, 12302,11632,12925,13483,14148,13980,13712,13552,13047,12577, 12444,9233,11987,11228,12680,12126,12303,7804,9186,8085,3124 0,11651,12027,10740,10423,11018,11248,11677,11357,11753,9010 ,9752,10805,10338,11190,10750,10708,12489,12904,12950,11123, 10705,10616,8986,14107,13506,11235,11216,12941,10818,31106,1 2476,11951,12363,11544,11067,11534,11980,11709,10765,11147,1


(56)

0794,11144,12698,13855,13137,12396,10971,12085,13142,29278,1 2874,13496,13151,12708,12505,10515,9982,10110,9883,9687,1064 1,10899,10513,9948,9885,10573,7807,10218,11314,10749,11022,1 1133,10697,10294,11288,11115,8114,9364,10308,28494,8786,1124 9,11913,11774,12409,13288,12369,11681,11319,11402,10929,1204 3,12540,13292,13490,13149,13797,13858,14737,14607,14331,1456 4,12183,13580,11448,10271,10285,11285,9210,26459,10331,11038 ,14130,15156,13330,14587,14574,14217,12256,11247,9761,10684, 10049,11178,10881,10122,10911,11036,11254,12558,13251,13286, 13264,13276,12107,12418,12088,11178,11337,24525,9651,10029,1 0542,10987,10391,10336,9674,8960,10312,10262,10967,10846,107 58,10961,12361,12516,10760,10072,9608,9883,10452,10218,9691, 9403,9326,9421,8636,9578,9950,23711,11427,12099,11643,11177, 11786,12914,15258,16807,18862,19315,18799,19767,15869,15771, 13366,14238,13196,17803,20947,20938,20302,21273,23927,22763, 21242,22183,19795,23711,18951,43787,20868,21750,21976,24037, 24528,24831,24249,21167,20932,20143,24477,16516,20241,22495, 25438,25269,26435,17921,19784,24119,26064,26342,21836,17681, 20602,22030,22848,23277,22502,45781,14661,19359,18430,16623, 18240,14352,17137,18796,18626,16799,15646,21259,22197,18583, 22628,25014,23053,21356,21428,22351,21949,19129,16436,21768, 25520,24413,24244,21886,17520};

//Generate byte 010101;

String s ="0100000101000001010000010100000101000001010000010100000101 000001010000010100000101000001010000010100000101000001010000 010100000101000001010000010100000101000001010000010100000101 000001010000010100000101000001010000010100000101000001010000 010100000101000001010000010100000101000001010000010100000101 000001010000010100000101000001010000010100000101000001010000 010100000101000001010000010100000101000001010000010100000101 000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000


(57)

101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010


(58)

000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010


(59)

000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001";

int urutan =0;

byte[] bytes = null;

public UDP(DatagramMIDlet m, int p) { parent = m;

port = p;

display = Display.getDisplay(parent); f = new Form("UDP Server");

si = new StringItem("Status:", " "); f.append(si);


(60)

f.addCommand(exitCommand); f.setCommandListener(this); display.setCurrent(f);

portString = String.valueOf(port); }

public void start() {

Thread t = new Thread(this); t.start();

}

public void run() { try {

si.setText("Menunggu permintaan sambungan "+portString);

dc = (DatagramConnection) Connector

.open("datagram://:" + portString); while (true) {

dg = dc.newDatagram(100); dc.receive(dg);

address = dg.getAddress();

si.setText("Permintaan diterima "

+ new String(dg.getData(), 0, dg.getLength()));

//Program mengirim video //Kirim video 6x10detik

for(int k=0;k<6;k++){

int frame=dataVideo.length; for(int i=0;i<frame;i++){ //Kirim masing2 gambar

int jumlahPaket =(dataVideo[i]/1024)+1; //Kirim setiap paket

for(int j=0;j<jumlahPaket;j++){ Date date = new Date();

try {

String ss="kirim :"+date.getTime()+" urutan: "+urutan+" frame :"+i+" : "+s;

bytes=ss.getBytes();

dg = dc.newDatagram(bytes, bytes.length, address);

si.setText("Mengirim paket "+urutan+" frame:"+i);

dc.send(dg);

} catch (Exception ioe) { ioe.printStackTrace(); } urutan++; } try { Thread.sleep(30);//1000 milliseconds is one second.


(61)

Thread.currentThread().interrupt(); }

urutan++; }

}

}

} catch (IOException ioe) {

Alert a = new Alert("Server", "Port " + portString + " is already taken.", null, AlertType.ERROR);

a.setTimeout(Alert.FOREVER); a.setCommandListener(this); display.setCurrent(a); } catch (Exception e) { e.printStackTrace(); }

}

public void commandAction(Command c, Displayable s) {

if ((c == Alert.DISMISS_COMMAND) || (c == exitCommand)) {

parent.destroyApp(true); parent.notifyDestroyed(); }

}

public void stop() { }


(62)

b. Pengirim Data Transmisi TCP import java.util.Calendar; import java.util.Date; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.microedition.io.*; import javax.microedition.io.Connector; import javax.microedition.io.SocketConnection; import javax.microedition.lcdui.Alert; import javax.microedition.lcdui.AlertType; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.StringItem; import javax.microedition.lcdui.TextField;

public class TCP implements Runnable, CommandListener { private DatagramMIDlet parent;

private Display display; private Form f;

private StringItem si; private TextField tf;

private Command startCommand = new Command("Start", Command.ITEM, 1);

private Command exitCommand = new Command("Exit", Command.EXIT, 1);

private String address;

String portString=null;

InputStream is; private int port; OutputStream os; SocketConnection sc;

ServerSocketConnection scn;

int [] dataVideo = {27905,10857,10917,10515,11907,11781,9177,12155,11000,12108,


(63)

12302,11632,12925,13483,14148,13980,13712,13552,13047,12577, 12444,9233,11987,11228,12680,12126,12303,7804,9186,8085,3124 0,11651,12027,10740,10423,11018,11248,11677,11357,11753,9010 ,9752,10805,10338,11190,10750,10708,12489,12904,12950,11123, 10705,10616,8986,14107,13506,11235,11216,12941,10818,31106,1 2476,11951,12363,11544,11067,11534,11980,11709,10765,11147,1 0873,10970,11726,11119,10775,11780,12343,13098,12615,12790,1 0794,11144,12698,13855,13137,12396,10971,12085,13142,29278,1 2874,13496,13151,12708,12505,10515,9982,10110,9883,9687,1064 1,10899,10513,9948,9885,10573,7807,10218,11314,10749,11022,1 1133,10697,10294,11288,11115,8114,9364,10308,28494,8786,1124 9,11913,11774,12409,13288,12369,11681,11319,11402,10929,1204 3,12540,13292,13490,13149,13797,13858,14737,14607,14331,1456 4,12183,13580,11448,10271,10285,11285,9210,26459,10331,11038 ,14130,15156,13330,14587,14574,14217,12256,11247,9761,10684, 10049,11178,10881,10122,10911,11036,11254,12558,13251,13286, 13264,13276,12107,12418,12088,11178,11337,24525,9651,10029,1 0542,10987,10391,10336,9674,8960,10312,10262,10967,10846,107 58,10961,12361,12516,10760,10072,9608,9883,10452,10218,9691, 9403,9326,9421,8636,9578,9950,23711,11427,12099,11643,11177, 11786,12914,15258,16807,18862,19315,18799,19767,15869,15771, 13366,14238,13196,17803,20947,20938,20302,21273,23927,22763, 21242,22183,19795,23711,18951,43787,20868,21750,21976,24037, 24528,24831,24249,21167,20932,20143,24477,16516,20241,22495, 25438,25269,26435,17921,19784,24119,26064,26342,21836,17681, 20602,22030,22848,23277,22502,45781,14661,19359,18430,16623, 18240,14352,17137,18796,18626,16799,15646,21259,22197,18583, 22628,25014,23053,21356,21428,22351,21949,19129,16436,21768, 25520,24413,24244,21886,17520};

//Generate byte 010101;

String s ="0100000101000001010000010100000101000001010000010100000101 000001010000010100000101000001010000010100000101000001010000 010100000101000001010000010100000101000001010000010100000101 000001010000010100000101000001010000010100000101000001010000 010100000101000001010000010100000101000001010000010100000101 000001010000010100000101000001010000010100000101000001010000 010100000101000001010000010100000101000001010000010100000101 000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010


(64)

000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000


(65)

101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001"


(1)

+

"01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001"

+

"01000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000 10100000101000001010000010100000101000001";

int urutan =0;

byte[] bytes = null;

public TCP(DatagramMIDlet m, int p) { parent = m;

port = p;

display = Display.getDisplay(parent); f = new Form("TCP Server");

si = new StringItem("Status:", " "); f.append(si);

//f.addCommand(startCommand); f.addCommand(exitCommand); f.setCommandListener(this); display.setCurrent(f);

portString = String.valueOf(port); }

public void start() {

Thread t = new Thread(this); t.start();

}

public void run() { try {

si.setText("Menunggu permintaan sambungan "+portString);

scn = (ServerSocketConnection) Connector.open("socket://:"

+ portString);

// Wait for a connection.

sc = (SocketConnection) scn.acceptAndOpen(); si.setText("Permintaan diterima ");

is = sc.openInputStream(); os = sc.openOutputStream(); boolean sending =false;


(2)

boolean rec =true;

StringBuffer sb = new StringBuffer(); while (rec) {

int c = 0; c = is.read(); if(c==10){

sending=true; rec=false;

si.setText("Message received - " + sb.toString());

} }

while (sending) {

//Program mengirim video

int frame=dataVideo.length; for(int k=0;k<6;k++){

for(int i=0;i<frame;i++){ //Kirim masing2 gambar

int jumlahPaket =(dataVideo[i]/1024)+1; //Kirim setiap paket

for(int j=0;j<jumlahPaket;j++){

Date date = new

Date();

try {

String ss="kirim :"+date.getTime()+" urutan: "+urutan+" frame :"+i+" : "+s+"\r\n";

bytes=ss.getBytes(); os.flush();

os.write(bytes);

//os.write("\r\n".getBytes());

si.setText("Mengirim paket "+urutan+" frame:"+i);

} catch (Exception ioe) { ioe.printStackTrace(); }

urutan++; }

try {

Thread.sleep(30);//1000 milliseconds is one second.

} catch(InterruptedException ex) {

Thread.currentThread().interrupt(); }


(3)

} } sending=false;

}

} catch (IOException ioe) {

if (ioe.getMessage().equals("ServerSocket Open")) {

Alert a = new Alert("Server", "Port " + portString

+ " is already taken.", null, AlertType.ERROR);

a.setTimeout(Alert.FOREVER); a.setCommandListener(this); display.setCurrent(a); } else {

ioe.printStackTrace(); }

} catch (Exception e) { e.printStackTrace(); }

}

public void commandAction(Command c, Displayable s) {

if ((c == Alert.DISMISS_COMMAND) || (c == exitCommand)) {

parent.destroyApp(true); parent.notifyDestroyed(); }

}

public void stop() { }


(4)

LAMPIRAN 4

Listing Program Penerima Data Transmisi UDP dan TCP Menggunakan

Bahasa

Java

Editor Netbeans 8.0.1

a. Penerima Data Transmisi UDP

import java.io.*;

import java.net.*; import java.util.*;

class UDPClient {

private InetAddress IPAddress; boolean done;

//boolean keepGoing;

public UDPClient(String sHostName) {

String s1; int size;

BufferedReader br; try {

IPAddress = InetAddress.getByName(sHostName);

System.out.println ("Attemping to connect to " + IPAddress +

") via UDP port 5555"); }

catch (UnknownHostException ex) {

System.err.println(ex); System.exit(1);

}

// set up the buffered reader to read from the keyboard try {

DatagramSocket clientSocket = new DatagramSocket(); byte[] sendData = new byte[1024];

s1 = "Request";

sendData = s1.getBytes();

System.out.println ("Sending data to " + sendData.length);

DatagramPacket sendPacket =

new DatagramPacket(sendData, sendData.length, IPAddress, 5555);

clientSocket.send(sendPacket);

byte[] receiveData = new byte[1024]; DatagramPacket receivePacket =

new DatagramPacket(receiveData, receiveData.length);


(5)

//clientSocket.setSoTimeout(100000000);

while (true){

Date date = new Date(); try {

clientSocket.receive(receivePacket); System.out.println("Terima

:"+date.getTime()+" "+receivePacket.getLength()+" "+new String(receivePacket.getData()));

}

catch (SocketTimeoutException ste){

System.out.println ("Timeout Occurred: Packet assumed lost");

// if (done)

// keepGoing = false; }

System.out.println();

}

// clientSocket.close(); }

catch (IOException ex) {

System.err.println(ex); }

}

public static void main(String args[]) throws Exception {

String serverHostname = new String ("192.168.101.11");

if (args.length > 0) serverHostname = args[0];

new UDPClient (serverHostname); }


(6)

b. Penerima Data Transmisi TCP

import java.io.*;

import java.net.*; import java.util.Date; class TCPClient

{

public static void main(String argv[]) throws Exception {

String sentence;

String modifiedSentence;

BufferedReader inFromUser = new BufferedReader( new InputStreamReader(System.in));

Socket clientSocket = new Socket("192.168.101.11", 5555); DataOutputStream outToServer = new DataOutputStream( clientSocket.getOutputStream());

DataInputStream inServer = new DataInputStream(clientSocket.getInputStream());

BufferedReader inFromServer = new BufferedReader(new InputStreamReader(

clientSocket.getInputStream())); sentence = "1";

outToServer.write(10); byte[] a=null;

while(true){

Date date = new Date();

modifiedSentence = inServer.readUTF();

System.out.println("Terima : "+date.getTime()+" "); System.out.println(modifiedSentence);

//System.out.println('\n'); }

}

//clientSocket.close();