Pengaruh Ukuran Paket User Datagram Protocol Trafik Video Terhadap Konsumsi Energi Pada Perangkat Bergerak

(1)

TUGAS AKHIR

PENGARUH UKURAN PAKET USER DATAGRAM

PROTOCOL TRAFIK VIDEO TERHADAP KONSUMSI

ENERGI PADA PERANGKAT BERGERAK

Diajukan Untuk Memenuhi Persyaratan Menyelesaikan Pendidikan Sarjana (S-1) Pada

Departemen Teknik Elektro Sub Konsentrasi Teknik Telekomunikasi

OLEH :

RICKY MAHYUDDIN

NIM :100402029

DEPARTEMEN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS SUMATERA UTARA

2015


(2)

LEMBAR PENGESAHAN TUGAS AKHIR

PENGARUH UKURAN PAKET USER DATAGRAM

PROTOCOL TRAFIK VIDEO TERHADAP KONSUMSI

ENERGI PADA PERANGKAT BERGERAK

Disusun Oleh : RICKY MAHYUDDIN

100402029 Disetujui Oleh : Pembimbing Tugas Akhir

SUHERMAN,S.T.,M.Comp.,Ph.D NIP. 197802022003121001

Diketahui Oleh :

Ketua Departemen Teknik Elektro FT USU

Ir. SURYA TARMIZI KASIM, M.Si. NIP. 19540531 198601 1 002 DEPARTEMEN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS SUMATERA UTARA MEDAN


(3)

ABSTRAK

Teknologi perangkat komunikasi bergerak sangat berkembang dan beragam jenisnya. Perkembangan tersebut memicu tingginya pertumbuhan program aplikasi seperti video streaming. 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.

Protokol UDP digunakan dalam pengamatan ini karena protokol UDP banyak digunakan sebagai protokol video streaming disebabkan connectionless

tanpa acknowledgment yang menyebabkan delay yang rendah. . Tugas Akhir ini meninjau, meneliti dan membandingkan konsumsi energi yang diserap perangkat komunikasi bergerak jika ukuran paket User Datagram Protocol (UDP) diubah pada saat pengiriman video.

Dari eksperimen diperoleh konsumsi energi total UDP menurun ketika ukuran paket diperbesar yakni pada ukuran paket 1.000 byte dibutuhkan energi sebesar 147.128 joule dan pada ukuran paket 5.000 byte dibutuhkan energi sebesar 40.950 joule. UDP mengkonsumsi 5,558509 Joule hingga 19,54603 joule per paket dari ukuran paket 1.000 sampai 5.000 byte, sementara energi per byte

UDP dari ukuran paket 1.000 sampai 5.000 byte diperoleh 0,001315 sampai 0,008249 joule. Delay terkecil yang diperoleh sebesar 19,10928 milidetik namun

delay meningkat pada saat ukuran paket 1.500 sampai 2.500 byte yakni mencapai 344,164 milidetik. Packet loss UDP juga meningkat ketika ukuran paket 1.500 sampai 2.500 byte yang mencapai 70,48 %, namun packet loss minimum didapat sebesar 11,02


(4)

KATA PENGANTAR

Segala Puji dan syukur penulis ucapkan kepada Allah SWT atas Berkah dan Rahmat-Nya sehingga penulis dapat menyelesaikan Tugas Akhir yang berjudul:

PENGARUH UKURAN PAKET USER DATAGRAM PROTOCOL PADA TRAFIK VIDEO TERHADAP KONSUMSI ENERGI PERANGKAT

BERGERAK

Tugas akhir ini merupakan bagian dari kurikulum yang harus diselesaikan untuk memenuhi persyaratan menyelesaikan pendidikan Sarjana Strata Satu (S-1) di Departemen Teknik Elektro Fakultas Teknik Universitas Sumatera Utara.

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 terimakasih yang tulus dan sebesar-besarnya kepada:

1. Bapak Suherman, Ph.D sebagai Dosen Pembimbing Tugas Akhir penulis yang selalu bersedia memberikan bantuan yang sangat dibutuhkan oleh penulis dalam menyelesaikan Tugas Akhir ini.

2. Bapak Ir. Surya Tarmizi Kasim, M.Si sebagai Ketua Departemen Teknik Elektro Fakultas Teknik Universitas Sumatera Utara.

3. Bapak Rahmad Fauzi, ST, MT sebagai Sekretaris Departemen Teknik Elektro sekaligus sebagai Dosen Wali penulis yang membantu penulis selama menyelesaikan pendidikan di kampus USU.

4. Seluruh Staf Pengajar dan Pegawai Departemen Teknik Elektro FT-USU. 5. Orang tua khususnya ibunda penulis yang senantiasa memberikan

semangat dan doanya kepada penulis dengan segala pengorbanan dan kasih sayang yang tidak ternilai harganya.

6. Kepada abangda dan kakanda penulis Reza, Razi, Fahmi dan Harmainy beserta saudara saudari penulis Jaifakur,laina,dara dan lainnya yang telah memberikan dukungan dan do’a bagi penulis.

7. Kepada sahabat penulis Bayu Ridho Pratama, Iqbal Triangga, Ranzyskhar, Pakwin, Arifin dan Irkatju.


(5)

8. Seluruh sahabat-sahabat seperjuangan di Departemen Teknik elektro, Rhobby, Mulia Maulana, Duha, Dicky, Suwendri, Benny, Fontes, Agustinus, Ryan, Andika, Rimbo, Dwi, Dewi, Tari, Ola, Puti, Agil dan Angel. Dan seluruh sahabat-sahabat penulis yang tidak penulis tuliskan namanya.

9. Seluruh senior dan junior di Departemen Teknik Elektro, atas dukungan dan bantuan yang diberikan kepada penulis.

10. Seluruh sahabat bimbingan pak Suherman, bg Yosua, bg Rudi, bg Reza, Pak Azhari, atas dukungan dan bantuan yang diberikan kepada penulis. 11. Semua orang yang pernah mengisi setiap detik waktu yang telah dilalui

bersama penulis yang tidak dapat disebutkan satu per satu. Tanpa mereka, pengalaman penulis tidaklah lengkap.

Penulis menyadari bahwa Tugas Akhir ini masih banyak kekurangannya. Kritik dan saran dari pembaca untuk menyempurnakan Tugas Akhir ini sangat penulis harapkan.

Kiranya Tugas Akhir ini dapat bermanfaat bagi kita semua. Terimakasih

Medan, 5 Agustus 2015 Penulis


(6)

DAFTAR ISI

ABSTRAK ... i

KATA PENGANTAR ... ii

DAFTAR ISI ... iv

DAFTAR GAMBAR ... vii

DAFTAR TABEL ... viii

I. PENDAHULUAN ... 1

1.1 Latar Belakang ... 1

1.2 Perumusan Masalah ... 1

1.3 Tujuan Penelitian ... 2

1.4 Batasan Masalah... 2

1.5 Metode Penelitian... 3

1.6 Sistematika Penulisan... 4

II. DASAR TEORI ... 5

2.1 Protokol komunikasi ... 6

2.2 Arsitektur TCP/IP ... 7

2.2.1 ApplicationLayer... 7

2.2.2 Transport Layer... 8

2.2.4 Internet Layer... ... 8

2.2.4 Network Access Layer... 9

2.2.5 Physical Layer... ... 9

2.3 User Datagram Protocol (UDP) ... 9

2.4 Arduino... 10

2.5 Jaringan Wireless Local Area Network (WLAN) Adhoc... 12

2.6 Penelitian Konsumsi Energi ... 13

2.7 Parameter Pengukur Konsumsi Energi ... 13

2.7.1 Konsumsi Energi Per Paket ... 14

2.7.2 Konsumsi Energi Per byte ... 14

2.7.3 Energi Total ... 14

2.7.4 Packet Loss ... 14


(7)

III. METODE PENELITIAN ... 16

3.1 Langkah Penelitian ... 16

3.2 Waktu dan Tempat Penelitian ... 18

3.3 Perancangan Perangkat Penelitian ... 18

3.3.1 Alat dan Bahan ... 18

3.3.2 Rancangan Piranti Keras Perangkat Pengukuran ... 19

3.3.3 Rancangan Piranti Lunak Perangkat Pengukuran ... 21

3.3.4 Rancangan Piranti Lunak Streaming Video ... 22

3.4 Konfigurasi Jaringan ... 24

IV. HASIL PENGUKURAN DAN ANALISIS DATA ... 27

4.1 Hasil Pengukuran ... 27

4.1.1 Tampilan Eksperimen ... 27

4.1.2 Tampilan Layar Energi yang Terukur ... 29

4.1.3 Tampilan Layar Data yang Masuk ... 30

4.2 Analisis Konsumsi Energi ... 30

4.3 Analisis Kinerja Transmisi Video ... 33

4.3.1 Delay per Paket ... 33

4.3.2 Packet Loss ... 34

V. PENUTUP ... 36

5.1 Kesimpulan ... 36

5.2 Saran ... 37

DAFTAR PUSTAKA ... 38


(8)

DAFTAR GAMBAR

Gambar 2.1 Arsitektur TCP/IP Dalam Model Layer ... 7

Gambar 2.2Header User Datagram Protocol (UDP) ... 10

Gambar 2.3 Arduino UNO ... 12

Gambar 3.1 Diagram Blok Penelitian Konsumsi Energi ... 17

Gambar 3.2 Rangkaian Perangkat Pengukuran ... 19

Gambar 3.3 Implementasi Nyata Rangkaian Pengukuran ... 21

Gambar 3.4 Tampilan Pemrograman Arduino UNO ... 21

Gambar 3.5 Diagram Alir Piranti Lunak Arduino UNO ... 22

Gambar 3.6 Diagram Alir Pengirim Data ... 23

Gambar 3.7 Diagram Alir Penerima Data ... 24

Gambar 4.1 Tampilan UDP Pada Nokia E-63 ... 27

Gambar 4.2 Tampilan Program Penerima Data Video ... 28

Gambar 4.3 Tampilan Connectify Hotspot ... 28

Gambar 4.4 Pengkabelan Arduino UNO ... 29

Gambar 4.5 Tampilan Layar Pengukuran Energi ... 29

Gambar 4.6 Tampilan Layar Data Video Transmisi ... 30

Gambar 4.7 Grafik Ukuran Paket Terhadap Energi Per Byte ... 32

Gambar 4.8 Grafik Ukuran Paket Terhadap Energi Per Paket ... 32

Gambar 4.9 Grafik Ukuran Paket Terhadap Energi Total ... 33

Gambar 4.10 Grafik Ukuran Paket Terhadap Delay Per Paket ... 34


(9)

DAFTAR TABEL

Tabel 4.1 Analisis Konsumsi Energi.... ... 31

Tabel 4.2 Ukuran Paket Terhadap Delay Per Paket Transmisi UDP.... ... 34


(10)

ABSTRAK

Teknologi perangkat komunikasi bergerak sangat berkembang dan beragam jenisnya. Perkembangan tersebut memicu tingginya pertumbuhan program aplikasi seperti video streaming. 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.

Protokol UDP digunakan dalam pengamatan ini karena protokol UDP banyak digunakan sebagai protokol video streaming disebabkan connectionless

tanpa acknowledgment yang menyebabkan delay yang rendah. . Tugas Akhir ini meninjau, meneliti dan membandingkan konsumsi energi yang diserap perangkat komunikasi bergerak jika ukuran paket User Datagram Protocol (UDP) diubah pada saat pengiriman video.

Dari eksperimen diperoleh konsumsi energi total UDP menurun ketika ukuran paket diperbesar yakni pada ukuran paket 1.000 byte dibutuhkan energi sebesar 147.128 joule dan pada ukuran paket 5.000 byte dibutuhkan energi sebesar 40.950 joule. UDP mengkonsumsi 5,558509 Joule hingga 19,54603 joule per paket dari ukuran paket 1.000 sampai 5.000 byte, sementara energi per byte

UDP dari ukuran paket 1.000 sampai 5.000 byte diperoleh 0,001315 sampai 0,008249 joule. Delay terkecil yang diperoleh sebesar 19,10928 milidetik namun

delay meningkat pada saat ukuran paket 1.500 sampai 2.500 byte yakni mencapai 344,164 milidetik. Packet loss UDP juga meningkat ketika ukuran paket 1.500 sampai 2.500 byte yang mencapai 70,48 %, namun packet loss minimum didapat sebesar 11,02


(11)

BAB I

PENDAHULUAN

1.1 Latar Belakang

Perkembangan teknologi komunikasi bergerak sangat cepat dan saat ini telah memasuki generasi ke-4 (4G). Pelayanan komunikasi bergerak dipicu oleh tingginya permintaan komunikasi data. Permintaan ini juga diimbangi pertumbuhan program aplikasi.

Tingkat kenyamanan penggunaan aplikasi komunikasi bergerak harus didukung ketersediaan sumber energi. Sumber energi perangkat bergerak bergantung pada teknologi baterai. Namun, solusi sumber energi tidak cukup ditinjau dari ketersediaan baterai yang berumur panjang, tetapi juga efisiensi aplikasi yang berjalan di perangkat komunikasi bergerak.

UDP banyak digunakan sebagai protokol video streaming disebabkan

connectionless tanpa acknowledgment yang menyebabkan delay yang rendah. Namun demikian, packet loss yang tidak direspon dengan retransmisi menyebabkan UDP mengalami banyak kehilangan paket yang menurunkan kualitas informasi dan efisiensi penggunaan energi.

Studi konsumsi energi pada UDP telah dilakukan oleh berbagai peneliti, sementara pengaruh ukuran paket terhadap konsumsi energi belum dilakukan. Oleh karena itu, Tugas Akhir ini meneliti pengaruh ukuran paket UDP terhadap konsumsi energi listrik. Untuk menyelidikinya, Tugas Akhir ini fokus pada aplikasi transmisi video dengan protokol UDP melalui jaringan 802.11 adhoc.


(12)

1.2 Rumusan Masalah

Untuk memfokuskan pembahasan tugas akhir ini, maka pembahasan masalah dirumuskan pada hal - hal sebagai berikut :

1. Berpengaruhkah ukuran paket protokol UDP terhadap konsumsi energi perangkat bergerak.

2. Bagaimana mengubah ukuran paket protokol transport UDP tersebut. 3. Jaringan bergerak manakah yang mudah untuk dievaluasi.

4. Bagaimana menggunakan trafik video pada jaringan yang dievaluasi.

1.3 Tujuan Penulisan

Tugas Akhir ini bertujuan meneliti pengaruh ukuran paket UDP terhadap konsumsi energi yang diserap perangkat komunikasi bergerak saat mengirimkan trafik video.

1.4 Batasan Masalah

Untuk memudahkan pembahasan dalam tulisan ini, maka dibuat pembatasan masalah sebagai berikut :

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

2. Aplikasi perangkat bergerak diimplementasikan dalam bentuk pemrograman soket menggunakan bahasa java.

3. Trafik yang dipilih adalah trafik video.

4. Kecepatan link tidak ditentukan pada saat pengkuran. 5. Pengukuran menggunakan arduino UNO.


(13)

6. Perangkat yang diuji adalah handphone NOKIA E63 berbasis symbian

dengan menggunakan jaringan 802.11 7. Baterai yang digunakan adalah BP-4L Li-Po.

1.5 Metode Penelitian

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

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 arduinoUNO.

c. Implementasi perangkat lunak untuk aplikasi video streaming.

Implementasi dilakukan dalam bentuk pemrograman soket menggunakan bahasa java.

d. Analisis dan perhitungan

Hasil eksperimen pengukuran konsumsi energi dianalisis dan didiskusikan dengan dosen pembimbing dan 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


(14)

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:

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 protokol komunikasi serta membahas arsitektur TCP/IP. Terdapat juga pembahasan tentang desain protokol transport yaitu

user datagram protocol (UDP) yang dipengaruhi energi dari baterai yang merupakan sumber tegangan. Selain itu, diberikan penjelasan mengenai arduino. Juga membahas tentang jaringan wireless local area network adhoc.

BAB III Metodologi Penelitian

Bab ini berisi tentang pembahasan mengenai pengukuran konsumsi energi perangkat komunikasi bergerak menggunakan arduino UNO. Juga membahas mengenai


(15)

pemrograman soket menggunakan bahasa java. Hasil pengukuran konsumsi energi perangkat komunikasi bergerak pada saat mengakses aplikasi video streaming.

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.


(16)

BAB II DASAR TEORI 2.1 Protokol Komunikasi

Protokol adalah seperangkat aturan yang mengatur pembangunan koneksi komunikasi, perpindahan data, serta penulisan hubungan antara dua atau lebih perangkat komunikasi. Protokol dapat berupa perangkat keras, perangkat lunak atau kombinasi dari keduanya. Protokol distandarisasi oleh International Standard Organization (ISO) dalam sebuah Open System Interconnection (OSI)[1].

Dalam Model OSI terdapat 7 layer. Berikut ini merupakan 7 lapisan protokol OSI, yaitu:

1. Lapisan aplikasi (application layer) mendefinisikan sebuah antarmuka

user dengan jaringan.

2. Lapisan presentasi (presentation layer) memastikan format data yang diterima dapat digunakan oleh aplikasi antarmuka dengan user.

3. Lapisan sesi (session layer) bertanggung jawab dalam membangun dan memelihara hubungan antaraduakoneksi seperti tab-tab pada browser. 4. Lapisan transport (transport layer) memastikan komunikasi ujung ke

ujung terjadi.

5. Lapisan jaringan (network layer) menghubungkan segmen-segmen pada jaringan agar dapat saling berhubungan.

6. Lapisan jalur data (data link layer) menyediakan link data (segment), yang menghubungkan titik ke titik secara langsung.

7. Lapisan fisik (physical layer) mendefenisikan bentuk bit dan media komunikasi.


(17)

2.2 Arsitektur TCP/IP

TCP/IP adalah standar komunikasi data yang ditemukan oleh Defence Advance Research Project Agency (DARPA) [1]. TCP/IP merupakan kumpulan protokol yang mengatur komunikasi data dengan menggunakan layer yang lebih sedikit dibandingkan OSI. Gambar 2.1 menunjukkan arsitektur TCP/IP dalam model layer.

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 hanya dapat dibaca oleh layer yang bersangkutan 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.2.1 Application Layer

Layer tertinggi TCP/IP adalah applicationlayer yang identik dengan layer

pada OSI, layer ini memiliki protokol aplikasi yang beberapa diantaranya adalah: - Telnet yaitu protokol yang menyediakan remote login dalam jaringan.


(18)

- 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 Protokol) yaitu protokol yang digunakan untuk web browsing.

2.2.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 (Transport 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.

2.2.3 InternetLayer

Layer ini berfungsi sebagai tempat mekanisme pengalamatan dan perutean diatur. Mekanisme pengalamatan menggunakan 32 bit alamat (IP versi 4) dan 64


(19)

bit alamat (IP versi 6). Algoritma perutean dapat berbentuk statis yang diatur secara manual maupun secara dinamis melalui pertukaran informasi link.

2.2.4 Network Access Layer

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. 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.

2.2.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 kooaksial, optic, dial-up, adalah dalam cakupan layer fisik.

2.3 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

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.


(20)

Kelemahan UDP antara lain: packet loss yang tinggi dan kemungkinan

congestion. Kehilangan segmen pada UDP sangat mungkin terjadi dikarenakan 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.

Gambar 2.2 HeaderUser Datagram Protocol (UDP) [2]

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.

2.4 Arduino

Arduino adalah sebuah board minimum system mikrokontroler yang bersifat open-source.Arduino memiliki input output port yang terintegrasi dalam satu modul sehingga dapat digunakan untuk banyak aplikasi, seperti aplikasi pengukuran.


(21)

Arduino UNO adalah arduino board yang menggunakan mikrokontroler ATmega328. Arduino menyediakan 20 pin I/O, yang terdiri dari 6 pin input

analog dan 14 pin digital input/output, sebuah koneksi USB, sebuah konektor sumber tegangan, sebuah header ICSP, dan sebuah tombol reset. Arduino UNO

memuat segala hal yang dibutuhkan untuk mendukung sebuah mikrokontroler. Hanya dengan menhubungkannya ke sebuah komputer melalui USB atau memberikan tegangan DC dari baterai atau adaptor AC ke DC sudah dapat membuanya bekerja [3]. Arduino UNO menggunakan ATmega16U2 yang diprogram sebagai USB-to-serial converter untuk komunikasi serial ke computer melalui port USB. Tampak atas dari arduino UNO dapat dilihat pada Gambar 2.3.

Adapun data teknis board Arduino UNO R3 adalah sebagai berikut: ● Mikrokontroler : ATmega328

● Tegangan Operasi : 5V

● Tegangan Input (recommended) : 7 - 12 V ● Tegangan Input (limit) : 6-20 V

● Pin digital I/O : 14 (6 diantaranya pin PWM) ● Pin Analog input : 6

● Arus DC per pin I/O : 40 mA ● Arus DC untuk pin 3.3 V : 150 mA

● Flash Memory : 32 KB dengan 0.5 KB digunakan untuk bootloader ● SRAM : 2 KB

● EEPROM : 1 KB


(22)

Gambar 2.3 Arduino UNO [3]

2.5 Jaringan Wireless Local Area Network (WLAN) Adhoc

Jaringan adhoc [4] 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

untuk meminta bantuan dari host lain dalam meneruskan paket ke tujuannya 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.


(23)

2.6 Penelitian Konsumsi Energi

Beberapa riset terkait diuraikan dalam paragraf berikut. Gian Paolo Perrucci [5] menjelaskan strategi dan solusi penghematan energi pada perangkat komunikasi bergerak dengan teknik cross-layer, overlay networks dan

cooperation. Change Wave Research [6] menarik kesimpulan dari hasil pendekatannya kepada para pengguna bahwa umur baterai yang singkat menjadi perhatian khusus untuk kepuasan konsumen. Zhang [7], 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.

2.7 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.7.1 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.


(24)

2.7.2 Konsumsi Energi per byte

Konsumsi energi per byte adalah konsumsi energi yang dibutuhkan untuk mengirim setiap byte data. Disebabkan ukuran paket tidak selalu memenuhi jumlah byte maksimum, maka perlu dianalisis konsumsi energi berdasarkan jumlah byte.

2.7.3 Energi Total

Energi total adalah energi yang dibutuhkan untuk mengirim informasi dari awal hingga akhir. Nilai energi ini diukur berdasarkan jumlah keseluruhan energi yang dibutuhkan dalam mengirimkan paket.

2.7.4 Packet Loss

Packet loss turut mempengaruhi efisiensi konsumsi energi. Jika konsumsi energi yang rendah akan tidak menguntungkan jika packet loss tinggi. Semakin kecil nilai persentase loss, maka sistem komunikasi akan menghasilkan kualitas informasi yang semakin baik. Packet loss dihitung sebagai persentase paket yang hilang terhadap jumlah total paket yang dikirimkan.

2.7.5 Delay

Konsumsi energi yang rendah namun berlangsung pada waktu yang lama menyebabkan energi total naik. Oleh karenanya, delay transmisi juga harus diperhatikan. Semakin kecil nilai delay, maka sistem komunikasi semakin mendekati sistem real time. Nilai delay diukur sebagai selisih waktu antara waktu penerimaan dan pengiriman paket.


(25)

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 UDP 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

Analisis dilakukan dengan mengubah ukuran paket pada protocol UDP pada saat pengiriman video, yakni ukuran 1.000 sampai 5.000 byte dengan perubahan sebesar 500 byte per pengiriman. Dengan ukuran paket yang berbeda akan terlihat bagaimana pengaruh ukuran paket terhadap konsumsi energi menggunakan protokol UDP.

Gambar 3.1 menunjukkan urutan dari langkah-langkah penelitian pengukuran konsumsi energi yang digambarkan dalam bentuk diagram blok


(26)

yang dimulai dari tahap persiapan sampai pada tahap eksperimen pengukuran dan pengiriman.

Gambar 3.1 Diagram Blok Penelitian Konsumsi Energi Pada 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


(27)

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 Februari 2015 sampai bulan Mei 2015 dan bertempat di Departemen Teknik Elektro, Universitas Sumatera Utara.

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. Lampiran 1 menunjukkan implementasi perangkat penelitian.

3.3.1 Alat dan Bahan

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

2. Baterai BP-4L Li-polymer

3. Resistor shunt 0,22 ohm 4. Arduino UNO

5. Kabel penghubung 6. Solder dan Timah


(28)

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. Perangkat pengukuran menggunakan arduino UNO sebagai piranti ukur yang mengukur tegangan dan arus yang diserap perangkat komunikasi bergerak (Nokia E63) dari baterai BP-4L.


(29)

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.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:

...(3.2) Sehingga total daya yang dikonsumsi adalah:

...(3.3) Nilai v1, v2 dan v3 adalah hasil pembacaan rata-rata nilai input selama kurun waktu sample sehingga energi yang diserap perangkat adalah:

... (3.4)

Hasil pengukuran dianalisis dan hasil perhitungan ditampilkan pada monitor komputer melalui port serial. Gambar 3.3 menunjukkan implementasi nyata rangkaian Gambar 3.2.


(30)

Gambar 3.3 Implementasi Nyata Rangkaian Pengukuran

3.3.3 Rancangan Piranti Lunak Perangkat Pengukuran

Untuk mengoperasikan perangkat pengukuran perlu dilakukan pemrograman perangkat arduinoUNO. Pemrograman meliputi:

1. loading library yang diperlukan 2. inisialisasi parameter

3. looping membaca tegangan dan arus 4. kemudian menghitung konsumsi daya

5. serta melakukan report berupa display dan print out.


(31)

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. Listing program lengkap terlampir pada Lampiran 2.

Gambar 3.5 Diagram Alir Piranti Lunak Arduino UNO

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 di instal pada handphone Nokia E63 ,yakni:


(32)

pembangunan thread pengiriman data. Gambar 3.6 menunjukkan diagram alir piranti lunak pengirim UDP. Lampiran 3 menunjukkan listing program UDP.

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.

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


(33)

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

Gambar 3.7 Diagram Alir Penerima Data

3.4 Konfigurasi Jaringan

Dengan bantuan WLAN menghubungkan perangkat seluler handphone

sebagai server pengirim data video dan komputer sebagai client penerima data video. WLAN menggunakan konfigurasi adhoc dengan menggunakan piranti lunak.


(34)

Connectify Hotspot berupa piranti lunak 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 jaringan diberikan password 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. Namun demikian, sulit untuk memastikan ada tidaknya interferensi dari jaringan lain.

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. Gambar 3.8 menunjukkan langkah-langkah eksperimen yang dilakukan. Nilai tegangan pada baterai sebesar 3,7 volt, dicatat pada print out arduino UNO. Selama pengiriman video dilakukan, maka arduino akan mencatat nilai arus, daya, dan energi yang dikonsumsi dari baterai pada transmisi UDP. Pengiriman video dilakukan sebanyak 9 kali dengan ukuran paket terkecil 1.000

byte dan ukuran paket terbesar adalah 5.000 byte dengan perubahan besar paket sebesar 500 byte per pengiriman.

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


(35)

paket data yang hilang dan berapa delay waktu pengiriman yang terjadi setiap proses pengiriman pada transmisi UDP.


(36)

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.

4.1.1 Tampilan Eksperimen

Penelitian yang dilakukan menetapkan handphone sebagai server yang mengirim data video. Gambar 4.1 menunjukkan tampilan pada layar handphone

saat menjalankan transmisi protokol UDP.

Gambar 4.1 Tampilan UDP Pada Nokia E-63

Sementara Gambar 4.2 memperlihatkan tampilan editor netbeans saat menjalankan program penerima UDP.


(37)

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 dengan perangkat lunak connectify hotspot. Gambar 4.3 menunjukkan tampilan

connectify hotspot yang dipasang pada komputer.


(38)

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).

Gambar 4.4 Pengkabelan Arduino UNO

4.1.2 Tampilan Layar Energi yang Terukur

Hasil pengukuran yang diperoleh dari piranti pengukuran ditampilkan dalam bentuk angka. Gambar 4.5 menunjukkan tampilan layar pengukuran energi transmisi UDP.


(39)

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.6 menunjukkan tampilan layar data video transmisi UDP.

Gambar 4.6 Tampilan Layar Data Video Transmisi

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:


(40)

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 pengukuran yang dilakukan diperoleh hasil yang menunjukkan bahwa energi per paket yang dibutuhkan adalah sebesar 5.56 sampai 19.55 Joule. Sementara itu energi per byte yang dibutuhkan adalah 0.001315 sampai 0.008249 Joule. Secara total, energi pada pada setiap pengiriman membutuhkan 40.950 sampai 47.128 Joule.

Berdasarkan pengukuran, semakin besar ukuran paket yang dikirimkan, maka semakin kecil jumlah energi total kecuali energi total pada ukuran paket 2.500 byte yang mengalami kenaikan. Sementara itu, energi per paket dan energi per byte juga semakin kecil kecuali untuk ukuran paket 1.500, 2.000 dan 2.500

byte yang mengalami kenaikan bila dibandingkan dengan ukuran paket sebelumnya. Pada Tabel 4.1 merangkum hasil pengukuran konsumsi energi protokol UDP pada pengiriman video dengan ukuran byte yang ditentukan.

Tabel 4.1 Analisis Konsumsi Energi Ukuran Paket

(Byte)

Energi Total (Joule)

Energi per Paket (Joule)

Energi Per Byte

(Joule)

1.000 147.128 5.558509 0.005559

1.500 101.628 12.37253 0.008249

2.000 79.055 13.62776 0.006814

2.500 80.784 19.54603 0.007818

3.000 69.984 7.251471 0.002417

3.500 61.950 7.330509 0.002094

4.000 47.825 6.430659 0.001608

4.500 45.158 6.72902 0.001495


(41)

Gambar 4.7 menunjukkan grafik hubungan antara ukuran paket terhadap energi per byte.

Gambar 4.7 Grafik Ukuran Paket Terhadap Energi Per Byte

Gambar 4.8 menunjukkan grafik hubungan antara ukuran paket terhadap energi per packet.

Gambar 4.8 Grafik Ukuran Paket Terhadap Energi Per Paket 0 0,001 0,002 0,003 0,004 0,005 0,006 0,007 0,008 0,009

1000 1500 2000 2500 3000 3500 4000 4500 5000

E n e rg i p e r B y te ( jou le )

Ukuran Paket (byte)

0 5 10 15 20 25

1000 1500 2000 2500 3000 3500 4000 4500 5000

E n e rg i p e r Pack e t (jo u le )


(42)

Gambar 4.9 menunjukkan grafik hubungan antara ukuran paket terhadap energy total.

Gambar 4.9 Grafik Ukuran Paket Terhadap Energi Total

4.3 Analisis Kinerja Transmisi Video 4.3.1 Delay per Paket

Kinerja dari protokol transport yang digunakan perlu ditinjau karena mempengaruhi hasil pengiriman. Dari hasil pengukuran yang dilakukan didapat

delay per paket yang terjadi selama pengiriman. Tabel 4.2 menunjukkan nilai

delay per paket pengiriman video transmisi UDP dan Gambar 4.10 menunjukkan pengaruh ukuran paket terhadap perolehan delay per paket pada pengiriman video transmisi UDP. UDP mengalami delay maksimum per paket pada saat ukuran paket yang dikirimkan adalah 2.500 byte, yaitu 344,164 millidetik. Sedangkan

delay minimum per paket terjadi ketika ukuran paket 3.500 byte, yaitu sebesar 19,109 millidetik. Maka, dapat disimpulkan bahwa delay per paket mengalami naik turun ketika ukuran paket diperbesar pada pengiriman menggunakan UDP.

0 20000 40000 60000 80000 100000 120000 140000 160000

1000 1500 2000 2500 3000 3500 4000 4500 5000

E n e rg i To tal (J o u le )


(43)

Tabel 4.2 Ukuran Paket Terhadap Delay per Paket Transmisi UDP

Ukuran Paket (Byte) Delay (milidetk)

1.000 33.41478202

1.500 80.9871722

2.000 142.3373707

2.500 344.1644795

3.000 36.29618138

3.500 19.10928078

4.000 29.33145314

4.500 28.10341865

5.000 32.99685568

Gambar 4.10 Grafik Ukuran Paket Terhadap Delay Per Paket

4.3.2 Packet Loss

Perbandingan packet loss disetiap pengiriman juga dapat kita lihat pada hasil penelitian bahwa UDP lebih banyak mengalami kehilangan paket. Pada Tabel 4.3 menunjukkan perbandingan total paket yang hilang antara ukuran 1.000 sampai 5.000 byte. Total packet loss maksimum terjadi pada ukuran 2.500 byte

0 50 100 150 200 250 300 350 400

1000 1500 2000 2500 3000 3500 4000 4500 5000

D e lay (m il id e tik)


(44)

yang mencapai 70 %. Namun, nilai ini mengalami penurunan jauh ketika ukuran paket diperbesar menjadi 5.000 byte dengan angka minimum total packet loss

sebesar 11 %. Maka, dapat disimpulkan bahwa ukuran paket berpengaruh terhadap perolehan packet loss pada saat pengiriman video menggunakan protokol UDP.

Tabel 4.3 Ukuran Paket Terhadap Packet Loss Transmisi UDP

Ukuran paket (byte) Packet Loss (%)

1.000 24.37%

1.500 64.79%

2.000 66.85%

2.500 70.48%

3.000 17.27%

3.500 15.48%

4.000 15.00%

4.500 13.71%

5.000 11.02%

Grafik 4.11 Grafik Ukuran Paket Terhadap Packet loss 0,00%

10,00% 20,00% 30,00% 40,00% 50,00% 60,00% 70,00% 80,00%

1000 1500 2000 2500 3000 3500 4000 4500 5000

Pack

e

t

Loss (

%

)


(45)

BAB V PENUTUP

5.1 Kesimpulan

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

1. Total energi yang dikonsumsi perangkat komunikasi bergerak pada saat melakukan pengiriman video dengan ukuran paket 1.000 sampai 5.000 byte

pada transmisi UDP sebesar 40.950 sampai 147.128 Joule.

2. Rata-rata energi per paket yang dikonsumsi pada pengiriman video dengan ukuran 1.000 sampai 5.000 byte pada transmisi UDP sebesar 9.49129866 Joule. 3. Rata-rata energi per byte yang dikonsumsi pada pengiriman video dengan ukuran 1.000 sampai 5.000 byte pada transmisi UDP sebesar 0.00415211 Joule. 4. Persentase minimun dan maksimum total paket yang hilang pada pengiriman video dengan ukuran paket 1.000 sampai 5.000 byte mencapai 11,02 % sampai

70.48 %.

5. Ditinjau dari konsumsi energi total dan paket loss yang diperoleh pada saat pengiriman video transmisi UDP ukuran 5.000 byte memiliki nilai konsumsi energi dan loss yang lebih kecil dari pengiriman lainnya. Hal ini berarti ukuran paket transmisi UDP berpengaruh terhadap efisiensi perolehan nilai tersebut. 6. Namun Pada ukuran paket 1.500 sampai 3.000 byte terjadi kondisi yang buruk

dimana loss mencapai 70,48 % , delay mencapai 344,1644 milidetik dan energi per paket yang tinggi. Ini menunjukkan bahwa mungkin ukuran paket tersebut tidak sesuai pada link yang digunakan .


(46)

5.2 Saran

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

1. Dapat dilakukan studi perbandingan konsumsi energy oleh protokol transport yang berbeda, misalnya; UDP Lite.

2. Perbandingan konsumsi energi juga dapat ditinjau dari operating system yang berbeda, selain operating system symbian.

3. Pengaruh penurunan daya pada baterai terhadap konsumsi energi juga dapat dikaji.

4. Pengujian dapat dilakukan dengan meninjau faktor-faktor luar yang mempengaruhi streaming video, misalnya; jarak server dengan client.

5. Karakteristik ukuran paket yang sesuai bisa jadi masalah yang dapat dijadikan penelitian selanjutnya.


(47)

DAFTAR PUSTAKA

[1] Stalings William, "Wireless Communications and Networks".: Pearson Education.Inc, 2005.

[2] Stuber, L. Gordon, "Principles of Mobile Communication", 3rd ed.: Springer, 2012.

[3] https://www.arduino.cc/en/Main/ArduinoBoardUno,.

[4] Johnson, D. Maltz, "Dynamic Source Routing in Adhoc Wireless Network ", Journal of Computer Science, 1996.

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

[6] Change Wave Research, "New Smart Phone Owners Tell Us What They Really

Think”, 2010.

[7] Zhang J., "Power-Aware Mobile Multimedia: a Survey (Invited Paper)”, Journal of Communications no.9, 2009.


(48)

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.

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.


(49)

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

3. Lakukan perintah open package pada editor Netbeans.

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 penerimaan.


(50)

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


(51)

Serial.print(hour()); printDigits(minute()); printDigits(second()); Serial.print(" "); 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); }


(52)

LAMPIRAN 3

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

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,1 2680,12126,12303,7804,9186,8085,31240,11651,12027,10740,10423,11018,1124 8,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


(53)

2476,11951,12363,11544,11067,11534,11980,11709,10765,11147,10873,10970,1 1726,11119,10775,11780,12343,13098,12615,12790,10794,11144,12698,13855,1 3137,12396,10971,12085,13142,29278,12874,13496,13151,12708,12505,10515,9 982,10110,9883,9687,10641,10899,10513,9948,9885,10573,7807,10218,11314,1 0749,11022,11133,10697,10294,11288,11115,8114,9364,10308,28494,8786,1124 9,11913,11774,12409,13288,12369,11681,11319,11402,10929,12043,12540,1329 2,13490,13149,13797,13858,14737,14607,14331,14564,12183,13580,11448,1027 1,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,10758,10961,123 61,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,1 8799,19767,15869,15771,13366,14238,13196,17803,20947,20938,20302,21273,2 3927,22763,21242,22183,19795,23711,18951,43787,20868,21750,21976,24037,2 4528,24831,24249,21167,20932,20143,24477,16516,20241,22495,25438,25269,2 6435,17921,19784,24119,26064,26342,21836,17681,20602,22030,22848,23277,2 2502,45781,14661,19359,18430,16623,18240,14352,17137,18796,18626,16799,1 5646,21259,22197,18583,22628,25014,23053,21356,21428,22351,21949,19129,1 6436,21768,25520,24413,24244,21886,17520};

//Generate byte 010101;

String s

="0100000101000001010000010100000101000001010000010100000101000001 010000010100000101000001010000010100000101000001010000010100000101 000001010000010100000101000001010000010100000101000001010000010100 000101000001010000010100000101000001010000010100000101000001010000 010100000101000001010000010100000101000001010000010100000101000001 010000010100000101000001010000010100000101000001010000010100000101 000001010000010100000101000001" + "01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001" + "01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001" + "01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010


(54)

000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001" + "01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001" + "01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001" + "01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001" + "01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001" + "01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001" + "01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010


(55)

000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001" + "01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001" + "01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001" + "01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001" + "01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001" + "01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001" + "01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010


(56)

000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001" + "01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001" + "01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001" + "01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001" + "01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001" + "01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001" + "01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010


(57)

000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001";

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);

//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); 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


(58)

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. } catch(InterruptedException ex) {

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() { }


(59)

LAMPIRAN 4

Listing Program Penerima Data Transmisi UDP Menggunakan Bahasa Java

Editor Netbeans 8.0.1

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 =


(60)

System.out.println ("Waiting for return packet"); //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); }


(1)

000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001"

+

"01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001"

+

"01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001"

+

"01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001"

+

"01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001"

+

"01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001"

+

"01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010


(2)

000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001"

+

"01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001"

+

"01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001"

+

"01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001"

+

"01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001"

+

"01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001"

+

"01000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010


(3)

000010100000101000001010000010100000101000001010000010100000101000 001010000010100000101000001010000010100000101000001010000010100000 101000001010000010100000101000001010000010100000101000001010000010 100000101000001010000010100000101000001010000010100000101000001010 00001";

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);

//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); 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


(4)

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. } catch(InterruptedException ex) {

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() { }


(5)

LAMPIRAN 4

Listing Program Penerima Data Transmisi UDP Menggunakan Bahasa Java Editor Netbeans 8.0.1

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 =


(6)

System.out.println ("Waiting for return packet"); //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); }