Pembuatan Software Telephony Menggunakan Java Media Framework

Embed Size (px)

Citation preview

PROYEK AKHIR

PEMBUATAN SOFTWARE TELEPHONY MENGGUNAKAN JAVA MEDIA FRAMEWORK

Oleh : MUHAMMAD FARID GHOZI NRP. 7207 030 009

Dosen Pembimbing : Mike Yuliana, ST, MT NIP. 132 300 242 Achmad Subhan KH., ST NIP. 197701202008011010

JURUSAN TEKNIK TELEKOMUNIKASI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA INSTITUT TEKNOLOGI SEPULUH NOPEMBER SURABAYA 2010

1

2

PROYEK AKHIR

PEMBUATAN SOFTWARE TELEPHONY MENGGUNAKAN JAVA MEDIA FRAMEWORK

Oleh : MUHAMMAD FARID GHOZI NRP. 7207 030 009

Dosen Pembimbing : Mike Yuliana, ST, MT NIP. 132 300 242 Achmad Subhan KH., ST NIP. 197701202008011010

JURUSAN TEKNIK TELEKOMUNIKASI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA INSTITUT TEKNOLOGI SEPULUH NOPEMBER SURABAYA 2010

PEMBUATAN SOFTWARE TELEPHONY MENGGUNAKAN JAVA MEDIA FRAMEWORK (JMF) Oleh: MUHAMMAD FARID GHOZI 7207.030.009 Proyek Akhir ini Diajukan Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Ahli Madya (A.Md.) di Politeknik Elektronika Negeri Surabaya Institut Teknologi Sepuluh Nopember Surabaya Surabaya, Juli 2010 Disetujui oleh : Tim Penguji : 1. Ir. Anang Budikarso, MT NIP. 19630508 198803 1 003 2. 2. Dosen Pembimbing : 1. Mike Yuliana, ST, MT NIP. 132 300 242

M. Hasbi Assidiqi, S.Kom NIP. 2000000018 3.

Achmad Subhan K.H, ST NIP. 19770120 200801 1 010

Hestiasari Rante,ST,M.Sc NIP. 19760715 200812 2 001 Mengetahui, Ketua Jurusan Teknik Telekomunikasi

Arifin, ST, MT NIP. 19600503 199203 1 004

ii

ABSTRAK Perkembangan teknologi telekomunikasi yang semakin pesat, khususnya telepon yang semakin lama semakin ditinggalkan orang. Karena terbatasnya fasilitas yang diberikan oleh telepon kabel yang hanya bisa mengirim informasi berupa suara saja.Perkembangan Internet akhir-akhir ini ini telah membuat Internet menjadi begitu besar peranannya baik sebagai sarana memperoleh informasi dengan cepat dan selalu diperbaharui. Setelah pertukaran informasi dilakukan dengan pengiriman dan penerimaan elektronik mail maka pada saat ini mulai bergerak ke arah pengiriman informasi yang memungkinkan dapat terselenggaranya sebuah komunikasi berbasis multimedia. Pada tugas akhir ini dibuat sebuah software telephony yang mempunyai fungsi seperti telepon. Perbedaannya software ini memanfaatkan sebuah jaringan internet sebagai media pengiriman data. Dari hasil pengujian, didapatkan bahwa software dapat bekerja secara real time. Seperti yang diharapkan. Kata kunci: Java Media Framework, Real Time

iii

ABSTRACT Development of the Internet these days has made the Internet become so large role both as a means to obtain information quickly and always updated. After the exchange of information is done by sending and receiving electronic mail is currently moving toward the transmission of information which could enable the implementation of a multimedia-based communications. Java Media Framework is the interface of multimedia applications. One form of multimedia that can be operated with a webcam and JMF microphone. With using RTP (Real Time Protocol), the Java Media Framework can be applied in a network with a media transfer data obtained from the webcam and microphone. Telephony application program with the Java Media Framework is built with RTCP (Real Time Control Protocol) to obtain the time delay for a single shipment SR (Sender Report). The results have been achieved in this final project is terbuatnya a telephony software which has the function of such telephone. The difference this software utilizing the Internet as a medium of a network data transmission Keywords: Java Media Framework, Real Time

iv

KATA PENGANTAR

Dengan mengucapkan Puji Syukur kehadirat Allah SWT yang telah melimpahkan rahmat, hidayah serta karunia-Nya yang tiada henti sehingga penyusun dapat menyelesaikan Tugas Akhir yang berjudul : PEMBUATAN SOFTWARE APLIKASI TELEPHONY MENGGUNAKAN JAVA MEDIA FRAMEWORK (JMF) Proyek akhir ini diselesaikan dengan berpegang pada teori yang pernah didapatkan, serta bimbingan dari dosen pembimbing proyek akhir. Serta pihak-pihak lain yang sangat membantu hingga sampai terselesaikannya proyek akhir ini. Proyek akhir ini digunakan sebagai salah satu syarat akademis untuk memperoleh gelar Ahli Madya (A.Md) di Politeknik Elektronika Negeri Surabaya, Institut Teknologi Sepuluh Nopember Surabaya. Penyusun juga mengucapkan terima kasih yang sebesarbesarnya kepada semua pihak yang telah menjadi bagian atas penyelesaian buku Proyek Akhir ini. Penyusun menyadari bahwa masih banyak kekurangan dalam perencanaan dan pembuatan buku proyek akhir ini. Oleh karena itu besar harapan untuk menerima saran dan kritik dari para pembaca. Dan semoga buku ini dapat memberikan manfaat bagi para mahasiswa Politeknik Elektronika Negeri Surabaya pada umumnya dan dapat memberikan nilai lebih untuk para pembaca pada khususnya.

Surabaya, Jan 2010

Penyusun

v

UCAPAN TERIMA KASIH Syukur kehadirat Allah SWT atas segala nikmat yang telah dilimpahkan. Kami menyadari bahwa terwujudnya Proyek Akhir ini tidak terlepas dari bantuan, bimbingan, doa serta dukungan dari berbagai pihak. Dengan segala ketulusan, keikhlasan, dan kerendahan hati, kami ingin menyampaikan rasa terima kasih dan penghargaan yang sebesarbesarnya kepada: 1. Allah SWT, atas segala nikmat yang telah diberi dan atas segala berkah serta rahmat-Nya sehingga penulis dapat menyelesaikan Proyek Akhir ini dengan baik. 2. Bu Mike dan Bpk Achmad Subhan Kh , selaku dosen pembimbing, terima kasih atas segala bantuan dan bimbingan yang telah diberikan. 3. Kedua Orang Tua, atas segala dukungan baik moril ataupun materiil, rasanya ucapan terima kasih saja tidak cukup membalas semua yang Ayah dan Ibu berikan. 4. Seluruh Dosen Penguji atas segala saran dan masukan yang berguna. 5. Semua keluarga besar yang tidak bisa saya sebutkan satupersatu. 6. Teman-teman koplakers D3 TA, selama 3 tahun banyak sekali suka duka yang kita alami bersama, semoga tali silahturahmi kita akan terus terjalin hingga nanti. 7. Seluruh Dosen Telkom dan para Asisten Dosen, terima kasih atas ilmu yang telah dibagikan kepada kami. 8. Seluruh Pihak yang tidak bisa saya sebut satu per satu.

vi

DAFTAR ISI HALAMAN JUDUL .................................................................... i LEMBAR PENGESAHAN .......................................................... ii ABSTRAK .................................................................................... iii ABSTRACT ................................................................................. iv KATA PENGANTAR .................................................................. v UCAPAN TERIMA KASIH ........................................................ vi DAFTAR ISI ................................................................................ vii DAFTAR GAMBAR .................................................................... viii DAFTAR TABEL ........................................................................ x BAB I PENDAHULUAN ............................................................. 1 1.1 LATAR BELAKANG .............................................................. 1 1.2 RUMUSAN MASALAH ......................................................... 1 1.3 BATASAN MASALAH .......................................................... 1 1.4 TUJUAN DAN MANFAAT .................................................... 2 1.5 METODOLOGI ....................................................................... 2 1.5.1 Studi Literatur .................................................................. 2 1.5.2 Perancangan Sistem .......................................................... 2 1.5.3 Implementasi dan Pengujian Sistem.................................. 2 1.5.4 Analisa dan Kesimpulan ................................................... 3 1.6 SISTEMATIKA PENULISAN................................................. 3 BAB II PERENCANAAN SISTEM DAN TEORI PENUNJANG 5 2.1 BAHAN DAN ALAT .............................................................. 5 2.1.1 Perencanaan Jaringan ....................................................... 5 2.1.2 Perencanaan Perangkat Lunak .......................................... 5 2.2 CARA KERJA ......................................................................... 8 2.2.1 Blok Diagram Sistem........................................................ 8 2.2.2 Flowchart Sistem .............................................................. 9 2.2.3 Persiapan .......................................................................... 10 2.2.4 Perencanaan Jaringan ....................................................... 11 2.3 TEMPAT DAN WAKTU PENELITIAN ................................. 12 2.3.1 Tempat Penelitian ............................................................ 12 2.3.2 Waktu Penelitian .............................................................. 12 2.4 METODE ANALISA DAN PENGUMPULAN DATA ............ 12 2.5 Teori Penunjang ....................................................................... 12 BAB III PEMBUATAN DAN ANALISA SISTEM .................... 21 3.1 Pembuatan Sistem .................................................................... 21 3.1.1 Perangkat Keras (Hardware) ............................................ 21 3.1.2 Pembuatan Chatting Server .............................................. 21

vii

3.1.3 Pembuatan JMF Server .................................................... 3.2 Pengujian Sistem dan Analisa .................................................. 3.2.1 Pengujian Delay dan Througput dari JMF ........................ 3.2.2 Pengujian Waktu Untuk Eksekusi Program ...................... 3.2.4 Pengujian Tanpa Thread dan Dengan Thread ................... 3.2.5 Pengujian Untuk Nicname................................................ 3.2.6 Keberhasilan Sistem Room............................................... BAB IV PENUTUP ...................................................................... DAFTAR PUSTAKA ................................................................... LAMPIRAN ................................................................................. RIWAYAT HIDUP ......................................................................

44 51 51 53 58 59 57 63 65 67 75

viii

DAFTAR GAMBAR Gambar 2.1 Editor Netbeans 6.5 .................................................... Gambar 2.2 Blok Diagram Perencanaan Sistem ............................. Gambar 2.3 Flowchart Sistem pada Sisi Client dan Server ............. Gambar 2.4 Perencanaan Jaringan .................................................. Gambar 2.5 Posisi J2SE pada Arsitektur Java2 Platform ................ Gambar 3.1 Flowchart Tampilan Client.......................................... Gambar 3.2 Flowchart Tampilan Server ......................................... Gambar 3.3 Memilih Project yang akan dibuat ............................... Gambar 3.4 Tampilan Dialog untuk Memberi Nama Project .......... Gambar 3.5 Dialog untuk Memilih New Package ........................... Gambar 3.6 Tampilan Dialog untuk Memberi Nama Package ........ Gambar 3.7 Tampilan Pada saat Membuat class ............................. Gambar 3.8 Tampilan Program Chat Sebelum Terkoneksi ............. Gambar 3.9 Tampilan program Ketika Sudah Terhubung ............... Gambar 3.10 Tampilan ketika ada dua client yang terhubung ......... Gambar 3.11 Tampilan dialog private message .............................. Gambar 3.12 Tampilan Client Untuk Private Message ................... Gambar 3.13 Tampilan Program Server ......................................... Gambar 3.14 Flowchart Pengiriman Data ...................................... Gambar 3.15 Tampilan pada penerima ........................................... Gambar 3.16 Flowchart Penerima Data.......................................... Gambar 3.17 Grafik pengukuran delay ........................................... Gambar 3.18 Grafik pengukuran throughput .................................. Gambar 3.19 Grafik pengukuran waktu eksekusi program.............. Gambar 3.20 Grafik pengukuran waktu eksekusi program .............. Gambar 3.21 Grafik pengukuran waktu eksekusi program .............. Gambar 3.22 Grafik pengukuran waktu eksekusi program .............. Gambar 3.23 Grafik pengukuran waktu eksekusi program .............. Gambar 3.24 Keberhasilan Dari Sistem room ................................. Gambar 3.25 Tampilan Untuk Private Message ............................. 8 8 10 11 13 22 23 24 25 25 26 27 40 41 42 42 43 44 47 50 50 52 53 54 55 56 57 58 61 62

ix

DAFTAR TABEL Tabel 3.1 pengukuran delay ........................................................... Tabel 3.2 Pengukuran throughput ................................................... Tabel 3.3 Waktu Eksekusi Yang Dibutuhkan Untuk 1 Client ......... Tabel 3.4 Waktu Eksekusi Yang Dibutuhkan Untuk 2 Client ......... Tabel 3.5 Waktu Eksekusi Yang Dibutuhkan Untuk 3 Client ......... Tabel 3.6 Waktu Eksekusi Yang Dibutuhkan Untuk 4 Client ......... Tabel 3.7 Waktu Eksekusi Yang Dibutuhkan Untuk 5 Client ......... Tabel 3.8 Pengujian Tanpa Thread ................................................. Tabel 3.9 Pengujian Dengan Thread ............................................... Tabel 3.10 Pengujian Nickname ..................................................... 52 53 54 55 56 57 58 59 59 60

x

BAB I PENDAHULUAN1.1 LATAR BELAKANG Perkembangan teknologi telekomunikasi yang semakin pesat, khususnya telepon yang semakin lama semakin ditinggalkan orang. Karena terbatasnya fasilitas yang diberikan oleh telepon kabel yang hanya bisa mengirim informasi berupa suara saja. Perkembangan Internet akhir-akhir ini ini telah membuat Internet menjadi begitu besar peranannya baik sebagai sarana memperoleh informasi dengan cepat dan selalu diperbaharui. Setelah pertukaran informasi dilakukan dengan pengiriman dan penerimaan elektronik mail maka pada saat ini mulai bergerak ke arah pengiriman informasi yang memungkinkan dapat terselenggaranya sebuah komunikasi berbasis multimedia. Java Media Framework merupakan interface aplikasi multimedia yang dapat bekerja baik pada Microsoft windows maupun UNIX sehingga dalam penerapannya tidak memerlukan penyesuaian yang begitu banyak untuk dapat dioperasikan pada latform-platform tersebut. Salah satu bentuk multimedia yang dapat dioperasikan dengan JMF adalah webcam dan mikropon. 1.2 RUMUSAN MASALAH Permasalahan yang dijadikan objek pengembangan proyek akhir ini yaitu : a. Bagaimana membuat suatu aplikasi telephony dengan menggunakan JMF. b. Bagaimana membuat sebuah server JMF untuk multiclient. c. Bagaimana mengelola sinyal suara dan gambar sehingga dapat dikirimkan melalui jaringan internet. 1.3 BATASAN MASALAH Untuk menghindari meluasnya materi pembahasan proyek akhir ini, maka penulis membatasi perangkat lunak yang dikembangkan hanya dengan mencakup hal-hal berikut :

1

2

a. Bahasa pemrograman yang digunakan adalah bahasa pemrograman java. b. Pengolahan sinyal suara dan video menggunakan JMF. c. Pembuatan komunikasi server dengan beberpa client menggunakan socket programming berbasis protokol UDP. 1.4 TUJUAN DAN MANFAAT Membuat aplikasi telephony dengan menggunakan JMF sehingga bisa dilakukan streamming audio dan video dari beberapa client melalui sebuah server. 1.5 METODOLOGI Untuk membuat aplikasi telephony dengan bahasa pemrograman Java dibutuhkan langkah-langkah sebagai berikut : 1.5.1 Studi Literatur Pemahaman tentang socket programming berbasis TCP konsep thread pada JMF. 1.5.2 Perancangan Sistem Perancangan sistem meliputi perancangan jaringan dan perangkat lunak. Perancangan jaringan tersusun dari beberapa Client dan sebuah Server. Sedangkan perancangan perangkat lunak terdiri dari perancangan tampilan dari aplikasi yang akan dibuat untuk dieksekusi oleh user, dan pilihan menu atau option yang akan dibutuhkan dalam menjalankan aplikasi ini. 1.5.3 Implementasi dan Pengujian Sistem Program aplikasi yang telah dihasilkan melalui perancangan sistem tersebut, selanjutnya diimplementasikan pada PC untuk melakukan koneksi socket. Selain itu, pada tahap ini juga menjelaskan langkah-langkah yang dilakukan saat mengeksekusi program dan pengujian terhadap program

3

aplikasi tersebut. Pengujian ini bertujuan untuk mengetahui apakah program yang telah dibuat telah menghasilkan tampilan dan kinerja yang sesuai dengan apa yang diinginkan atau belum. Pengujian ini juga diharapkan agar sistem dapat berjalan secara keseluruhan baik untuk melakukan suatu pengukuran parameter maupun pengambilan data. 1.5.4 Analisa dan Kesimpulan Menganalisa dan menyimpulkan hasil-hasil dari pengujian dan pengukuran pada perangkat keras dan lunak, serta memberi saran bila proyek ini akan dikembangkan kembali pada masa mendatang. 1.6 SISTEMATIKA PENULISAN Buku laporan proyek akhir ini tersusun atas beberapa bab penulisan. Sistematika penulisan adalah sebagai berikut : BAB I Pendahuluan Menguraikan secara singkat dan jelas tentang latar belakang, tujuan, rumusan masalah, batasan masalah, metodologi dan sistematika penulisan pada buku laporan Proyek Akhir ini. BAB II Perencanaan Sistem dan Teori Penunjang Bab ini menjelaskan gambaran tentang tahapan-tahapan perencanaan sistem yang meliputi beberapa hal, yaitu perencanaan jaringan aplikasi pada server dan client, serta merencanakan flowchart untuk system aplikasi ini sebagai persiapan dalam proses pembuatan perangkat lunak. Dan juga memberikan dasar teori yang dapat menunjang dalam mengerjakan proyek ini. Sebagian teori dasar yang diberikan terutama mengenai : teknologi J2SE (Java 2 Standard Edition), Socket Programming menggunakan java socket, JMF, dan thread.

4

BAB III Pembuatan Sistem, Pengujian, Hasil, dan Analisa

Berdasarkan hasil perancangan tersebut akan dilakukan pengujian perangkat lunak. Pengujian sistem dan analisa dilakukan berdasarkan parameter berikut : 1. Pengujian nickname. 2. Pengujian dengan thread dan tanpa thread. 3. Keberhasilan sistem room. 4. Keberhasilan untuk koneksi multipoint.BAB IV Penutup Bab ini berisi kesimpulan dari keseluruhan proyek akhir tentang hasil yang telah diperoleh, dan saransaran untuk memperbaiki kelemahan yang ada demi pengembangan dan penyempurnaan di waktu mendatang, bila proyek akhir ini dilanjutkan suatu saat nanti.

BAB II PERENCANAAN SISTEM DAN TEORI PENUNJANG2.1 BAHAN DAN ALAT Pada bagian ini dilakukan perencanaan dari pembuatan program aplikasi telephony pada PC berbasis J2SE, yang meliputi: a. Perencanaan jaringan. b. Perencanaan perangkat lunak. 2.1.1 Perencanaan Jaringan Tahap paling awal yang harus dilakukan pada penelitian ini adalah persiapan peralatan-peralatan yang dibutuhkan dalam sistem jaringan, yaitu : a. Dua buah komputer (PC). b. Headset. c. Webcam. d. LAN. 2.1.2 Perencanaan Perangkat Lunak Pada aplikasi telephony pada PC menggunakan kabel UTP dengan koneksi PC1 ke PC2 ini, dibutuhkan beberapa perangkat lunak untuk perencanaan dalam sistem tersebut, antara lain yaitu : 1. Java

Java adalah sebuah bahasa pemrograman komputer berbasiskan kepada Object Oriented Programming. Java didesain sedemikian rupa sehingga ukurannya kecil, sederhana, dan portable (dapat dipindah-pindahkan di antara bermacam platform dan sistem operasi). Program yang dihasilkan dengan bahasa java dapat berupa applet (aplikasi kecil yang jalan di atas web browser) maupun berupa aplikasi mandiri yang dijalankan dengan program java Interpreter. Salah satu keunggulan java adalah sifatnya yang platform independence, artinya java baik source program maupun hasil

5

6

kompilasinya sama sekali tidak bergantung kepada sistem operasi dan platform yang digunakan. Source code sebuah aplikasi dengan bahasa java yang ditulis di atas sistem Windows NT misalnya, dengan gampang dapat dipindahkan ke sistem operasi UNIX tanpa harus mengedit satu baris kodepun. Ini tentunya merupakan satu nilai tambah tersendiri. Selain itu, bukan hanya source code-nya saja yang bisa dipindahpindahkan antar sistem komputer, bahkan hasil kompilasinya pun bisa dijalankan di berbagai sistem komputer. Hal ini dimungkinkan dengan adanya bytecode. Setiap program yang ditulis dengan bahasa java, hasil kompilasinya berupa bytecode, yaitu sekumpulan instruksi yang kelihatannya seperti kode mesin (machine code) tapi tidak spesifik untuk satu jenis prosesor tertentu. Kemampuan java berjalan di lebih dari satu sistem operasi tidak lepas dari keberadaan Java Virtual Machine(JVM) yang menjembatani antara bytecode dan hardware. Untuk itu diperlukan instalasi JVM pada setiap platform yang berbeda agar bytecode dapat berjalan. Jika hanya untuk keperluan pengoperasian, hanya diperlukan Java Runtime Environment (JRE). Namun untuk membuat program, tidak bisa hanya mengandalkan JRE, dibutuhkan Java SDK (Software Development Kit) yang mempunyai compiler didalamnya. Contoh program Halo dunia yang ditulis menggunakan bahasa pemrograman java adalah sebagai berikut: class HaloDunia { public static void main(String[] argumen) { System.out.println("Halo Dunia"); } } a. Java 2 Standard Edition ( J2SE) Program di sisi server yang dibuat menggunakan compiler java dari platform J2SE, yaitu JDK (Java Development Kit) pada PC. JDK adalah salah satu tool dari J2SE untuk mengkompilasi dan menjalankan program Java. Di dalamnya terdapat tool untuk menkompilasi program java dan JRE Tool J2SE yang salah satunya

7

adalah jdk1.7, seperti yang digunakan dalam sistem ini. b. Java Media Framework (JMF) JMF API merupakan arsitektur yang menggabungkan protokol dan pemrograman interface untuk merekam, mentransmisi, dan playback media. Pada JMF versi 2.1.1, Suns sebagai perusahaan pengembang bahasa pemrograman java berinisiatif untuk membawa pemrosesan time-base media kedalam bahasa pemrograman Java. Time-base media adalah mengubah data yang diterima dengan berdasarkan waktu, termasuk didalamnya seperti audio dan video klip, MIDI, dan animasi. Beberapa dari fungsi JMF, yaitu : a. Dapat digunakan untuk berbagai file multimedia pada Java Applet atau aplikasi. Format yang mendukung antara lain AU, AVI, MIDI, MPEG, QUICKTIME dan WAV. b. Play media streamming dari internet. c. Capture audio dan video dengan mikropon dan kamera video kemudian menyimpan data tersebut kedalam format yang mendukungnya. d. Mengirimkan audio dan video secara realtime kedalam jaringan internet atau intranet. e. Dapat digunakan untuk pemrograman penyiaran radio atau televisi secara langsung. 2. NetBeans 6.5 Pemrograman java yang dibuat menggunakan lingkungan editor pada NetBeans 6.5 untuk meletakkan kode-kode program java, sekaligus melakukan kompilasi dan mengeksekusinya. Pada software ini pula terdapat dua fasilitas yang dapat digunakan dalam satu lingkungan IDE, yaitu program yang berbasis J2SE.

8

Gambar 2.1 Editor Netbeans 6.5 2.2 CARA KERJA 2.2.1 Blok Diagram Sistem Secara global prinsip kerja dari perencanaan sistem dapat disimulasikan seperti Gambar 2.1 sebagai berikut:

Client(PC)

Server(PC)

Socket

Client(PC)Gambar 2.2 Blok Diagram Perencanaan Sistem

9

Cara kerja dari sistem di atas adalah sebagai berikut : Terjadi interkoneksi dari server dan client dengan menggunakan socket. Dimana server menerima respons dari client dan mengirim data ke client. Sedangkan client menerima respons dari server dan mengirim data ke server. Dengan menggunakan thread, satu server bisa menerima respons dan mengirim data ke beberapa client. 2.2.2 Flowchart Sistem Server menterjemahkan dari nomor menjadi IP. Kemudian server akan menunggu koneksi dari PC client. Pada client IP tersebut diterjemahkan lagi menjadi nomor. Setelah terhubung, Server dan client membuat input dan output stream yang berfungsi untuk menerima dan mengirim data ke client. Server dan client saling berkirim dan menerima pesan. Setelah selesai, program menutup socket untuk memutuskan koneksi jaringan.

10

Server START

Client START

Translasi dari nomor menjadi IP

Translasi dari IP menjadi nomor

Server dalam kondisi menunggu (listen)

Membuat input & output stream

Membuat input & output stream

Mengirim & menerima pesan

Mengirim & menerima pesan

Menutup socket

Menutup socket

END

END

Gambar 2.3 Flowchart Sistem pada Sisi Client dan Server 2.2.3 Persiapan Pada tahap ini dilakukan study literatur tentang teori tentang Aplikasi telephony, dan Java socket programming. Selain itu juga dilakukan persiapan untuk perencanaan sistem untuk jaringan serta perangkat lunak. Persiapan jaringan dilakukan dengan mempersiapkan peralatanperalatan yang dibutuhkan dalam penelitian, sedangkan persiapan perangkat lunak dilakukan dengan melakukan instalasi software yang dibutuhkan untuk pembuatan sistem ini.

11

2.2.4 Perencanaan Jaringan Perencanaan jaringan yang akan dibuat bisa dilihat pada Gambar 2.4. erpPengirim/Penerima LAN Pengirim/Penerima

192.168.0.1

192.168.0.2 Pengirim/Penerima

192.168.0.3

Gambar 2.4 Perencanaan Jaringan Dari gambar dapat kita lihat bahwa suara dari user di capture menggunakan media microphone. Selain itu juga dilakukan pengambilan gambar melalui webcam. Suara tersebut masih dalam bentuk sinyal analog. Kemudian suara yang dalam bentuk sinyal analog tersebut,dirubah kedalam bentuk sinyal digital yang kemudian dirubah kedalam bentuk paket yang didalamnya dilengkapi dengan IP,UDP dan RTP setalah itu ditransmisikan kekomputer tujuan. Pada komputer tujuan, paket tersebut diambil datanya dan dirubah ke sinyal digital kemudian dirubah kembali kedalam sinyal analog kembali setelah itu dimainkan ke user menggunakan media headset dam gambarnya ditampilkan dimonitor.

12

2.3 Tempat dan Waktu Penelitian 2.3.1 Tempat Penelitian Penelitian dari pembuatan program aplikasi software telephony ini dilakukan di gedung D4 lantai 1, Ruangan Proyek Akhir Lab. Komunikasi Digital Politeknik Elektronika Negeri Surabaya. 2.3.2 Waktu Penelitian Adapun waktu penelitian untuk pembuatan program aplikasi ini pada mobile phone dimulai dari bulan Maret 2010 sampai Juni 2010. 2.4 Metode Analisa dan Pengumpulan Data Pengumpulan data dilakukan dengan cara menambahkan sebuah source code untuk mendapatkan lama waktu eksekusi program. Selain itu juga menggunakan software untuk mendapatkan delay dan trughput dari program. 2.5 Teori Penunjang A. Java 2 Standard Edition (J2SE) J2SE adalah inti dari pemrograman Java. JDK (Java Development Kit) adalah salah satu tool dari J2SE untuk mengkompilasi dan menjalankan program Java. Di dalamnya terdapat tool untuk menkompilasi program java dan JRE (Java Runtime Environment).

13

Gambar 2.5 Posisi J2SE pada Arsitektur Java2 Platform B. Dasar Java Media Framewor (JMF) Java TM Media Framework (JMF) memberikan arsitektur unified dan pesan protokol untuk mengelola akuisisi, pengolahan, dan pengiriman data media berbasis waktu. JMF dirancang untuk mendukung sebagian besar media standar jenis konten, seperti AIFF, AU, AVI, GSM, MIDI, MPEG, QuickTime, RMF, dan WAV. Dengan memanfaatkan keuntungan dari platform Java, JMF memberikan janji Write Once, Run Anywhere kepada pengembang yang ingin menggunakan media seperti audio dan video di program java mereka. JMF menyediakan cross-platform Java API untuk mengakses media yang mendasarinya. Implementasi JMF dapat memanfaatkan kemampuan sistem operasi yang mendasarinya, sedangkan pengembang dapat dengan mudah membuat program Java portabel bahwa fitur-media berbasis waktu dengan menulis ke JMF API. Dengan JMF, dapat dengan mudah membuat applet dan aplikasi. Kerangka kerja yang memungkinkan pengembang dan penyedia teknologi canggih untuk melakukan proses pengolahan data kustom dari media mentah dan mulus memperluas JMF untuk mendukung jenis konten tambahan dan format, mengoptimalkan penanganan format yang didukung, dan menciptakan mekanisme presentasi baru.

14

a. DataSource DataSource berfungsi untuk mengatur transfer dari media. Pada JMF DataSource diidentifikasi dengan MediaLocator. b. Capture Device Capture device merupakan perangkat keras yang digunakan untuk memperoleh data, seperti mikropon, kamera biasa, atau video kamera. Capture media data akan menjadi input untuk Player agar dapat ditampilkan. c. Player Player memperoleh input stream data audio dan video kemudian mengirimnya ke speaker atau layar. Player merupakan interface yang akan mempersiapkan suatu DataSource untuk dipresentasikan. Terdapat enam tahapan pada JMF Player: a. Unrealized : pada tahapan ini Player belum mengenali media yang akan digunakan. b. Realizing : pada tahapan ini Player akan menentukan materi atau media yang akan dipakai. c. Realized : pada tahapan ini Player mengetahui materi atau media yang digunakan dan memiliki informasi tentang tipe media yang akan ditampilkan. d. Prefetching : Player akan mempersiapkan untuk menampilkan media. Selama tahapan ini, Player akan preload media data untuk memperoleh resource yang digunakan dan apa saja yang dibutuhkan untuk mulai memainkan media data. e. Prefetched : Player telah selesai prefetching media data, dan siap untuk start Player. f. Started : Langkah ini merupakan hasil ketika memanggil start(). Player bisa untuk menampilkan media data sekarang.

15

d. Processor Processor merupakan jenis dari Player. Dalam JMF API, Processor adalah interface dengan extends Player. Seperti halnya Player, Processor juga mendukung untuk kontrol menampilkan media data. Disamping enam langkah Player seperti yang dibahas sebelumnya, Processor memasukkan dua langkah sebelum proses ke Realizing tetapi setelah Unrealized. a. Configuring : Processor masuk ke tahapan configuring dari Unrealized ketika metode configure () dipanggil. Processor berada di Configuring setelah terhubung ke DataSource. b. Configured : setelah Configuring, Processor pindah ke Configured ketika Processor telah terhubung ke DataSource, dan data telah memiliki format yang telah ditentukan . e. DataSink DataSink adalah interface dasar untuk objek yang membaca isi media yang dikirimkan oleh suatu DataSource dan mengirimkan media tersebut ke beberapa tujuan f. Format Format merupakan class yang akan menempatkan suatu objek ke suatu format media yang tepat. g. Manager Manager adalah interface yang berfungsi sebagai penghubung objek, mengintegrasikan implementasi interface yang digunakan dengan kelas-kelas yang ada. Misalnya dengan Manager dapat dibuat Player dari DataSource.

16

C. Pemrograman Java Socket Pada perencanaan perangkat lunak ini, dibutuhkan adanya java socket untuk menyambungkan dua terminal yang menggunakan program java. Socket adalah sebuah abstraksi perangkat lunak yang digunakan sebagai suatu terminal dari suatu hubungan antara dua mesin atau proses yang saling berinterkoneksi. Di setiap mesin yang saling berinterkoneksi, harus terdapat program socket. Socket programming digunakan untuk membangun aplikasi jaringan yang bekerja dengan sistem Client-Server karena dengan socket memungkinkan user untuk melakukan suatu komunikasi data. Pada sistem Java, socket ini biasa disebut dengan Java Socket. Pada Java, dibutuhkan socket untuk membuat suatu hubungan ke mesin atau proses lain, baru kemudian user akan mendapatkan input stream dan output stream untuk pertukaran datanya. Terdapat dua belas kelas yang sudah tersedia pada java yang mendukung tipe koneksi Connection Oriented, yaitu java.net.ServerSocket yang digunakan server untuk listen koneksi dan java.net.Socket yang digunakan oleh client untuk menginisialisasi koneksi. Setelah client membentuk suatu koneksi socket dengan proses server, ServerSocket akan mengembalikan status server ke client melalui koneksi yang telah terbentuk sebelumnya. Socket Socket adalah salah satu cara untuk komunikasi antar komputer, umumnya lewat network atau internet. Socket biasa digunakan untuk berbasis client-server yang dapat menggunakan socket TCP/IP atau socket UDP Socket Client Socket adalah sebuah penghubung antara dua host, yang dapat dibangun dengan tujuh dasar operasi yaitu: Menghubungkan untuk mengendalikan mesin atau perangkat. Mengirim data. Menerima data. Menutup koneksi. Bergantung pada port.

17

Mendengarkan data yang masuk. menerima koneksi dari mesin yang dikendalikan berdasarkan sebuah port. Class Socket pada Java,digunakan oleh client dan server yang mempunyai method yang menangani keempat operasi diatas.Tiga operasi berikutnya hanya dibutuhkan untuk server yang menunggu client untuk koneksi ke server cukup dengan mengimplementasikan class ServerSocket. Data yang dikirimkan melalui internet di dalam sebuah paket disebut datagram. Setiap datagram berisi header dan payload. header berisi alamat dan port untuk setiap paket, addres dan port untuk tiap paket yang masuk, sedangkan payload berisi data, sejak datagram mempunyai batasan jarak, memungkinkan sebuah paket hilang atau corupted ketika dikirimkan dan membutuhkan pegiriman lagi, untungnya socket memberikan kesempatan kepada programer untuk melakukan koneksi ke jaringan, sebagai contoh stream di dalam byte dapat dituliskan dan dapat dibaca. Socket melindungi programer dari low-level yang detail dari sebuah jaringan, seperti deteksi kesalahan (error detection), ukuran paket, pengiriman kembali sebuah paket, alamat jaringan dan masih banyak lagi. Java.net.Socket adalah JFC yang digunakan untuk melakukan operasi TCP client-side. Untuk mendefinisikan host dapat menggunakan InetAddress atau String sedangkan untuk definisi port menggunakan int mulai dari 0 sampai 65.535. Definisi constructornya dapat dilihat sperti dibawah ini: try { Socket koneksi = new Socket(192.168.12.138, 80); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } Jika host tidak ditemukan atau tidak berfungsi maka konstructor akan melemparkan UnknownHostException tetapi jika socket tidak dapat

18

dibuka maka akan dilemparkan ke IOException ada beberapa hal yang menyebabkan permintaan koneksi gagal misalnya host tujuan mungkin tidak menerima koneksi, koneksi dial-up terputus atau permasalahan routing menolak host tujuan(rejected).Selain metode diatas definisi socket dapat dilakukan dengan menggunakan class InetAddress. Socket Server Socket Server digunakan untuk menangani seluruh request dari jaringan yang disebut dengan socket client. Berikut ini adalah cara pendefinisian konstruktor dari class ServerSocket yang akan digunakan untuk menangani koneksi dari Client. try { ServerSocket s=new ServerSocket(90); s.accept(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } Konstruktor dari ServerSocket diatas akan membuka atau menerima koneksi melalui port 90, kemudian method accept() yang dipanggil untuk menunggu koneksi dari client. Konstruktor akan melemparkan exception apabila port yang didefinisikan diatas telah dibuaat sebelumnya. Potongan kode berikut digunakan untuk memeriksa port yang telah digunakan(terbuka). for(int i=0;i