True Speech G.723.1 Windows Socket Winsock Kebutuhan Sistem

23 tempat penyimpanan, dibandingkan dengan PCM yang memerlukan 16 bit tempat penyimpanan. ADPCM dapat mencapai rasio kompresi sampai dengan 4× atau lebih.

b. IMA ADPCM

Algoritma IMA ADPCM mengkompresi data sample 16 bit menjadi 4 bit. Salah satu keuntungan dari teknik ini yaitu dapat diaplikasikan pada komputer dengan kecepatan prosessor yang relatif rendah.

c. Microsoft ADPCM

Microsoft ADPCM memiliki teknik hampir sama dengan IMA ADPCM tetapi memiliki kualitas suara yang lebih baik.

d. Global System for Mobile Communications GSM

Teknik GSM dikembangkan untuk industri telepon cellular digital. Data yang dihasilkan rata-rata 13,2 kilobyte per detik dengan 8000 sample tiap detiknya, kualitas suara yang dihasilkan cukup baik.

e. Motion Pictures Expert Group MPEG Audio

Teknik MPEG audio mengambil keuntungan dari kekurangan pendengaran manusia yaitu dengan membuang data suara yang tidak dapat didengar oleh telinga manusia. Saat ini terdapat tiga teknik kompresi MPEG Audio yang paling populer yaitu : Layer 1, Layer 2, dan Layer 3. Semakin tinggi jumlah Layer maka semakin rumit algoritma yang digunakan dan semakin tinggi rasio kompresinya atau semakin baik kualitas suara yang dihasilkan.

f. True Speech G.723.1

Algoritma kompresi suara True Speech G.723.1 banyak digunakan pada aplikasi-aplikasi yang memberikan layanan VoIP karena dapat dioperasikan 24 pada rata-rata sampling yang berbeda-beda, dimana semakin tinggi samplingnya akan menghasilkan kualitas suara yang lebih baik.

2.4. Voice Over Internet Protocol VoIP

VoIP mulai diperkenalkan oleh CBN dan Intel pada tahun 1997 dengan nama Internet Telephony, namun baru dua tahun kemudian konsep tersebut dikenal dengan Voice Over Internet Protocol VoIP. Sejak saat itu VoIP menjadi isu terpanas di dunia telekomunikasi, karena kemampuannya melakukan penghematan biaya telepon untuk percakapan internasional.

2.4.1. Konsep dasar VoIP

VoIP memanfaatkan keunggulan teknologi IP untuk mengirim sinyal suara antara dua komputer atau lebih secara real time, sehingga memungkinkan pengguna komputer untuk saling bercakap-cakap. Voice Over IP berarti servis komunikasi suara atau pesan suara yang dikirimkan melalui jaringan internet, sebagai alternatif penggunaan jaringan telepon biasa, yang dikenal dengan Public Switched Telephone Network PSTN. Pada dasarnya VoIP melakukan konversi sinyal suara analog ke dalam bentuk digital dan melakukan kompresimemindahkan sinyal tersebut ke dalam paket IP agar dapat dikirimkan melalui jaringan internet. Sebaliknya pada komputer penerima, sinyal digital yang diterima akan dikonversi dari bentuk digital kedalam bentuk sinyal suara analog. Komunikasi VoIP yang baik terletak pada kemampuan untuk dapat melewatkan sinyal suara melalui jaringan internet dengan waktu tunda delay yang sangat rendah. Waktu tunda yang dapat ditoleransi oleh manusia yaitu di 25 bawah 250 milidetik. Jika waktu tunda berada di atas angka tersebut maka komunikasi akan terasa seperti gema dan terkadang terputus-putus. Untuk dapat menekan waktu tunda sampai dengan angka yang dapat ditoleransi diperlukan teknik kompresi sinyal suara agar data yang dikirimkan sekecil mungkin sehingga waktu pengirimannya bisa menjadi semakin kecil.

2.4.2. Jenis - jenis Voice Over IP

Komunikasi dengan teknologi VoIP dapat dibedakan menjadi beberapa tipe sesuai dengan jenis komunikasinya, peralatan, serta software-software yang dibutuhkan. Jenis komunikasi VoIP yaitu :

1. Komunikasi dari PC ke PC

Komunikasi jenis ini dapat dilakukan khususnya bagi pengguna yang telah memiliki akses ke internet dengan PC yang menyediakan fasilitas audio. Dibutuhkan software yang menyediakan layanan VoIP pada kedua pihak yang akan melakukan komunikasi. Komunikasi PC ke PC murni merupakan manipulasi software untuk dapat melewatkan suara ke jaringan IP, dengan mengambil keuntungan dari layanan-layanan yang disediakan di internet seperti electronic mail e-mail, chat, voice e-mail, dan lain-lain. Biaya yang dibutuhkan yaitu, biaya perawatan perangkat keras hardware yaitu PC yang dilengkapi dengan peralatan soundcard, modem, dan peralatan-peralatan yang terkait lainnya, biaya untuk mendapatkan software yang menyediakan layanan VoIP, serta biaya akses ke internet. 26

2. Komunikasi PC ke Telepon

Komunikasi jenis ini merupakan pengembangan dari jenis sebelumnya dimana pengguna PC dapat melakukan panggilan ke telepon biasa. Gateway server sangat berperan di sini. Gateway melakukan konversi dari panggilan internet ke dalam bentuk panggilan PSTN dan ditempatkan sedekat mungkin dengan daerah telepon tujuan, yang bertujuan untuk meminimalkan biaya panggilan dari gateway ke telepon tujuan. Layanan ini biasanya disediakan secara komersil oleh gateway server. Biaya yang harus disediakan yaitu biaya perawatan hardware PC yang dilengkapi dengan peralatan soundcard, modem, dan peralatan-peralatan yang terkait lainnya, biaya untuk mendapatkan software yang menyediakan layanan VoIP ke telepon, biaya akses ke internet, serta biaya jasa penggunaan layanan gateway. Biaya ini biasanya dihitung dari biaya pemanggilan dari gateway yang terdekat dengan kota tujuan ke telepon tujuan.

3. Komunikasi Telepon ke PC

Komunikasi jenis ini berguna bagi pengguna telepon biasa yang ingin berkomunikasi dengan pengguna internet. Komunikasi ini sepenuhnya menggunakan jasa gateway server, sehingga biaya panggilannya sesuai dengan biaya yang dikenakan oleh operator gateway dan biaya panggilan lokal ke gateway.

4. Komunikasi Telepon ke Telepon

Komunikasi telepon ke telepon dengan layanan VoIP sangat menguntungkan bagi mereka yang ingin melakukan panggilan jarak jauh dengan biaya yang murah tanpa harus menggunakan PC. Panggilan telepon dilewatkan melalui 27 gateway server lokal ke gateway server terdekat dengan kota tujuan, kemudian dari gateway tersebut diteruskan ke telepon tujuan. Biaya panggilan dikenakan oleh gateway tujuan yang biasanya merupakan biaya panggilan dari gateway tujuan ke telepon tujuan dan biaya panggilan lokal ke gateway. Sumber : http:www.iec.org

2.4.3. Komponen pendukung VoIP

Untuk dapat menghasilkan suatu aplikasi VoIP dibutuhkan beragam komponen dan mendukung berbagai protokol :

1. Transport

Transport disediakan oleh Real Time Transport Protocol RTP yang menyediakan layanan pengiriman data dengan kecepatan tinggi. Realtime Transport Protocol RTP digunakan untuk membawa informasi media. Aliran media diimplementasikan sebagai dua sesi RTP yang terpisah untuk tiap arah transmisinya, yaitu antara pemanggil dan pihak yng dipanggil.

2. Quality Of Service QoS

Quality of Service QoS disediakan oleh Resorce Reservation Protocol RSVP, Yet Another Sender Session Internet Reservations YESSER, dimana keduanya menyediakan layanan yang berhubungan dengan kualitas suara, variabel delay, dan kemacetan jaringan akibat paket-paket yang hilang. “Pada dasarnya parameter-parameter jaringan yang dominan dalam mempengaruhi QoS VoIP antara lain bandwith, delay, jitter, dan packet loss” Tri Susanto, 2001:4. 28 Bandwith, delay, jitter, dan packet loss dapat dijelaskan sebagai berikut :

1. Bandwidth

Bandwidth adalah pengaturan aliran paket data, diantaranya mencakup perhitungan bandwidth yang perlu disediakan berdasarkan tipe kompresi suara codec yang digunakan. Dimensi bandwidth yang dibutuhkan akan sangat bergantung pada codec yang digunakan serta jumlah traffic panggilan VoIP yang akan diakomodasi. Perhitungan dimensi bandwidth juga harus mempertimbangkan kebutuhan header dari setiap paketframe data.

2. Delay

Delay adalah hitungan waktu pengiriman yang terjadi secara end to end dari titik ujung terminal satu ke ujung terminal lain. Delay bisa terjadi pada titik pengiriman, titik jaringan maupun di titik penerima. Di titik pengirim salah satunya terjadi pada elemen encoder dimana nilai delay sangat tergantung pada tipe codec yang digunakan.

3. Jitter

Jitter adalah variasi delay antar paket yang terjadi pada jaringan IP. Besar nilai jitter akan sangat dipengaruhi oleh variasi beban traffic dan besarnya tubrukan antar paket congestion yang ada dalam jaringan IP. Semakin besar beban traffic di dalam jaringan akan menyebabkan semakin besar peluang terjadinya congestion. Dengan demikian nilai jitter akan semakin besar. Semakin besar nilai jitter akan mengakibatkan nilai QoS semakin turun. Tetapi ukuran jitter buffer harus ditentukan secara hati-hati sehingga terjadi keseimbangan antara delay yang terjadi dengan kualitas suara yang dihasilkan. 29 Kalau ukuran jitter buffer terlalu kecil maka akan menyebabkan jitter dan loss masih terasa, tetapi kalau ukuran jitter buffer terlalu besar maka kualitas suara akan bagus tetapi akan menjadi lebih terasa.

4. Packet loss

Packet loss adalah kegagalan suatu paket untuk mencapai tujuannya. Kegagalan bisa terjadi pada sisi jaringan IP antara lain karena terjadinya overload traffic di dalam jaringan, congestion dalam jaringan, error yang terjadi pada media fisik dan kegagalan yang terjadi pada sisi penerima, antara lain disebabkan karena overflow yang terjadi pada buffer. Nilai packet loss diusahakan dijaga seminimum mungkin. Parameter-parameter jaringan diatas akan sangat berpengaruh terhadap aplikasi-aplikasi yang bersifat real-time seperti aplikasi VoIP.

2.4.4. Perkembangan teknologi Voice Over IP

Teknologi yang melewatkan sinyal suara melalui jaringan internet pertama kali dikembangkan oleh , . dengan memperkenalkan software Internet Phone yang didesain untuk bekerja pada PC 48633- Mhz atau yang lebih tinggi yang dilengkapi dengan perangkat sound card, microphone, dan modem. Konfigurasi PC untuk VoIP dapat dilihat pada gambar 2.2. 30 Gambar 2.2. Konfigurasi PC untuk VoIP Software ini mengkonversi sinyal suara dan mengubahnya ke dalam bentuk paket IP untuk ditransmisikan melalui jalur internet. Ini merupakan aplikasi VoIP PC ke PC, dimana akan bekerja jika kedua pihak yang akan melakukan komunikasi menggunakan software ini. Dalam waktu yang relatif singkat, bermunculan gateway server yang menawarkan layanan yang dapat menghubungkan dunia internet dengan jaringan telepon atau PSTN. Dengan adanya gateway server ini sangat dimungkinkan untuk melakukan komunikasi suara antara PC dengan telepon atau telepon dengan telepon. Gateway server berfungsi untuk menghubungkan jaringan internet dengan jaringan telepon biasa atau PSTN, begitu pula sebaliknya, dimana gateway mengubah sinyal suara analog ke dalam bentuk digital dan melakukan kompresi ke dalam bentuk paket IP dan mengirimkan paket tersebut ke gateway tujuan melalui jaringan internet. Gateway tujuan yang menerima paket kemudian mengkonversikan data digital tersebut ke dalam bentuk sinyal analog dan mengirimkannya ke telepon yang dituju melalui jaringan PSTN. Untuk Personal Computer Bus CPU Memory IO Card Hard disk Mode Video Card Audio Card Keyboard Mouse Printer Monitor Microphone Speaker 31 komunikasi dari PC ke telepon, software dari PC melakukan konversi sinyal suara analog ke digital dan dikompresi ke dalam paket IP, kemudian data digital tersebut dikirimkan ke gateway yang terdekat dengan kota telepon tujuan melalui jaringan internet. Selanjutnya gateway akan meneruskannya ke telepon tujuan. Untuk lebih jelasnya dapat dilihat pada gambar 2.3. Gambar 2.3. VoIP antar PC dengan telepon, dan telepon dengan telepon Voice Over Internet Protokol VoIP telah berkembang dengan berbagai servis yang berbeda yang pada umumnya adalah transport secara real time berbagai media seperti suara dan gambar melalui internet dengan tujuan untuk memperoleh komunikasi yang interaktif dengan sesama pengguna internet Gateway Server Kota Gateway Server PC Multimedia Jaringan Telepon pemanggil Telp tujuan 32

2.5. Windows Socket Winsock

Bagian dasar untuk membangun sebuah komunikasi data adalah socket. Socket merupakan point terakhir dari dua komunikasi yang menghubungkan dua program yang berjalan disuatu jaringan komputer server dan client. Socket berfungsi untuk menspesifikasikan tipe data yang dikirim atau diterima melalui jaringan. Socket dimiliki oleh setiap komputer pada jaringan IP. Setiap socket memiliki sejumlah port yang digunakan untuk pemilihan data secara langsung untuk dimanipulasi oleh program aplikasi, dengan kata lain program aplikasi dapat melakukan pengiriman dan penerimaan data melalui port yang telah ditentukan oleh aplikasi tersebut. Windows Socket Winsock adalah suatu program yang terus menerus menghubungkan aplikasi windows dengan aplikasi yang menggunakan fungsi jaringan, misalnya jaringan internet TCPIP. Sumber : http:www.bit.net.idbozzkamusmini_p3.html . Winsock merupakan bagian dari Application Programming Interface API yang digunakan untuk membangun program windows agar bisa berkomunikasi dengan aplikasi jaringan lainnya melalui suatu protokol yaitu TCPIP. Pada sistem operasi Windows 95 dan Windows NT terdapat Dynamic Link Library DLL diberi nama “winsock.dll” yang merupakan implementasi dari API sebagai jembatan antara program Windows dengan koneksi TCPIP. Sumber : http:www.webopedia.comTERMEsocketwinsock.htm 33

2.6. Bahasa Pemrograman Delphi

Industri perangkat lunak melalui beberapa tahap mengembangkan teknologi dan metode baru dalam perancangan dan pengembangan program. Delphi adalah sebuah bahasa pemrograman yang memungkinkan penggunanya untuk merancang atau mengembangkan program secara visual dan berbasis objek. Pemrograman visual merupakan dimensi baru dalam pembuatan aplikasi karena dapat langsung menggambarkan objek-objek layar sebelum program tersebut dieksekusi.

2.6.1 Memahami pemrograman berorientasi objek

Pemrograman berorientasi objek atau Object Oriented Programming OOP diciptakan karena masih dirasakan adanya keterbatasan pada bahasa pemrograman tradisional yang dikenal dengan istilah Procedural Language seperti Pascal, BASIC, dan yang sejenis. Dalam konsep Procedural Programming Language semua masalah dibagi ke dalam fungsi atau prosedur, dimana fungsi dan data terpisah dan tidak menjadi satu kesatuan. Lain dengan konsep OOP, semua pemecahan masalah dibagi kedalam objek. Dalam OOP data dan fungsi-fungsi yang mengoperasikan data digabungkan dalam satu kesatuan yang disebut sebagai objek. Misalnya objek departemen-departemen dalam perusahaan, seperti departemen pemasaran, keuangan, produksi, dan departen personalia. Setiap departemen mempunyai fungsi, tugas dan tanggung jawab yang berbeda. Jika pimpinan perusahaan menginginkan data mengenai laporan keuangan maka pimpinan tersebut harus memintannya pada departemen keuangan dan jika pimpinan perusahaan ingin 34 mengetahui barang yang diproduksi dalam bulan ini maka pimpinan tersebut harus memintanya pada departemen produksi. Di dalam Delphi objek merupakan bagian dari perlengkapan suatu aplikasi yang mempunyai spesifikasi properti tersendiri. Sebagai contoh form lembaran untuk mendesain adalah sebuah objek, demikian juga dengan komponen-komponen visual. Untuk mengakses sebuah objek digunakan properti dan event tersendiri. Objek pada Delphi tidak terbatas pada form dan komponen visual saja tetapi bisa juga diambil dari aplikasi lain yang telah ada, misalnya objek dari MS-Excel atau MS-Word. Properti dan event pada Delphi dapat dijelaskan sebagai berikut :

1. Properti

Properti adalah bagian yang membangun sebuah objek. Properti sangat menentukan objek yang sedang dibuat. Misalnya seperti objek manusia persegi panjang, jika seorang manusia mempunyai properti seperti nama, tinggi, berat, jenis kelamin, dan sebagainya, maka objek persegi panjang mempunyai properti panjang dan lebar.

2. Event

Event adalah kejadian yang muncul yang disebabkan oleh pemakai atau oleh suatu operasi. Semua objek pada umumnya menanggapi event-event yang muncul, meski ada beberapa objek yang hanya menanggapi beberapa event tertentu saja. Kebanyakan kode program yang ditulis dalam delphi digunakan untuk menangani event dari pemakai atau dari sistem. Prosedur untuk menangani 35 event biasanya disebut sebagai prosedur penanganan event event handler. Didalam aplikasinya pengguna dapat menentukan berbagai pilihan berikut untuk tiap objek yang dibuat : a. Event yang diterima diabaikan, mengakibatkan objek berkelakuan normal. b. Menerima event dan mengaktifkan sebuah atau beberapa prosedur yang dapat mengubah kelakuan normal sebuah objek.

2.6.2 Memahami lingkungan kerja Delphi

Secara umum lingkungan kerja Delphi terdapat empat buah window yang dirancang sebagai sebuah aplikasi multi-window Single Document Interface SDI. Satu window utama pada Delphi mengatur beberapa window lain yang saling berhubungan, yaitu window Object Inspector, window Form, dan window Editor. Pada dasarnya Integrated Development Environtment IDE milik Delphi dibagi menjadi beberapa bagian utama, yaitu , , , , , dan . Gambar 2.4. menggambarkan bagian-bagian dari IDE Delphi. 36 Bagian - bagian utama lingkungan kerja Delphi, yaitu :

1. Object Inspector

Object Inspector digunakan untuk mengubah karakteristik sebuah komponen dimana terdapat dua buah tab, yaitu Properties dan Events. Pada tab properties digunakan untuk mengubah properti dari komponen. Properties dapat dijelaskan sebagai data yang menentukan karakteristik komponen. Tab Events digunakan untuk menyisipkan kode, untuk menangani kejadian tertentu. Kejadian bisa dibangkitkan karena beberapa hal, seperti Form Designer Code Editor Speed Bar Menu Object Inspector Gambar 2.4. Bagian-bagian dari IDE Delphi Component Pallate 37 pengklikan mouse, penekanan tombol keyboard, penutupan jendela, dan sebagainya. Object Inspector dapat dilihat pada gambar 2.5.

2. Form Designer

Form designer dipakai untuk merancang window bagi aplikasi baru yang sedang dibuat. Sebuah aplikasi dapat berisi beberapa form dan minimal harus memiliki sebuah form. Form Designer dapat dilihat pada gambar 2.6. a Properti b Events Gambar 2.5. Object Inspector pada IDE Delphi 38 Gambar 2.6. Form Designer pada IDE Delphi

3. Code Editor

Code editor digunakan untuk menuliskan program dan memanipulasi objek agar objek tersebut dapat berkelakuan sesuai dengan yang diinginkan. Code editor memiliki beberapa halaman yang masing-masing halaman menyimpan sebuah unit program dari projek yang aktif. Istilah unit dalam Delphi adalah sebuah file program sumber berekstensi “.PAS” untuk suatu form atau objek. Unit-unit tersebut akan digabungkan menjadi satu ke dalam sebuah project file berekstensi “.DPR” sehingga aplikasi yang dirancang dapat dijalankan. Code Editor dapat dilihat pada gambar 2.7. 39

4. Menu

Menu pada delphi memiliki kegunaan seperti menu pada aplikasi Windows lainnya. Menu dipakai untuk mengatur semua window yang ada dalam lingkungan kerja Delphi. Dari menu ini, kita dapat memanggil atau menyimpan program, menjalankan dan melacak kesalahan program, dan sebagainya. Tampilan menu terlihat seperti gambar 2.8.

5. Speed Bar

Speed Bar atau sering juga disebut toolbar berisi kumpulan tombol yang tidak lain adalah pengganti beberapa item menu. Speed Bar menyediakan akses Gambar 2.7. Code Editor pada IDE Delphi Gambar 2.8. Menu pada IDE Delphi 40 yang cepat bagi operasi-operasi yang sering digunakan, seperti membuka file, menyimpan file, fasilitas Cut dan Paste, memilih window dalam Delphi, mengeksekusi program aplikasi, fasilitas Debug, serta berbagai operasi-operasi lainnya. Speed Bar dapat dilihat pada gambar 2.9.

6. Component Pallate

Component Pallate berisi kumpulan ikon yang melambangkan komponen- komponen pada Visual Component Library VCL. Component Pallate dipakai untuk memilih objek atau komponen yang akan digunakan dalam pembuatan aplikasi dan kemudian meletakkan objek tersebut pada rancangan form. Component Pallate terlihat seperti gambar 2.10. Gambar 2.9. Speed Bar pada IDE Delphi Gambar 2.10. Component Pallate pada IDE Delphi 41 BAB III PERANCANGAN SISTEM Dalam bab ini dibahas tentang modul-modul perancangan perangkat lunak yang meliputi prosedur-prosedur atau fungsi-fungsi program, pengolahan data berdasarkan jenis dan formatnya, pengaturan piranti serta proses pensinyalan VoIP.

3.1 Komponen-komponen UtamaVoice Over IP

Aplikasi yang dirancang untuk Voice over Internet Protocol VoIP pada dasarnya bekerja melalui beberapa tahapan proses yaitu : melakukan perekaman suara yang masuk melalui alat input suara microphone, menyimpan suara tersebut dalam bentuk data digital, melakukan kompresi suara agar data yang tersimpan mempunyai ukuran kecil, dan mengirimkannya melalui jaringan internet dalam bentuk paket-paket yang sesuai dengan Protokol Internet IP yang digunakan. Pada tahap penerimaan, data yang diterima melalui jaringan internet diproses sehingga menghasilkan suara. Jadi untuk merancang suatu aplikasi VoIP diperlukan komponen-komponen pokok yaitu : komponen untuk perekaman dan kompresi suara, komponen untuk mengirim dan menerima data melalui jaringan internet, serta komponen untuk memainkan atau memutar suara. 42

3.1.1. Komponen perekam suara

Komponen perekam suara berfungsi untuk merekam suara yang masuk melalui alat input suara dan melakukan kompresi terhadap data suara tersebut sehingga data yang diperoleh berukuran kecil cukup untuk dikirimkan melalui jaringan internet. Komponen adalah komponen yang dirancang untuk melakukan proses perekaman suara serta melakukan kompresi terhadap suara tersebut. Komponen ini diturunkan dari tipe komponen standar yang ada pada Delphi, karena karakteristik dari memenuhi syarat untuk digunakan sebagai induk dari komponen . Untuk melakukan perekaman dan kompresi data suara, menggunakan fungsi-fungsi Windows Application Programming Interface API yang tersimpan pada file “MMSystem.pas” dan “msacm32.dll”. Fungsi Windows API merupakan fungsi-fungsi standar yang digunakan pada lingkungan kerja sistem operasi Windows untuk berbagai keperluan tertentu, seperti melakukan akses ke kartu suara , menulis atau membaca file dari harddisk, dan lain-lain. Dalam proses perekaman suara, fungsi-fungsi input suara yang ada pada file file “MMsystem.pas” memerlukan berbagai tipe type data yang harus didefinisikan sebelumnya, yaitu : 43 Type Definisi Pengenal perangkat input suara, yang diperoleh setelah perangkat input dibuka. Struktur yang digunakan untuk spesifikasi format data input atau output, dimana format yang dispesifikasikan harus di dukung oleh perangkat yang digunakan. Struktur yang berisi data suara. Data suara ini diinputkan jika digunakan untuk input data suara. Tetapi jika digunakan untuk output data suara, maka struktur berisi data suara yang akan dimainkan oleh perangkat output suara. Proses kompresi data suara yang dilakukan menggunakan fungsi-fungsi yang ada pada file “msacm32.dll”. Tipe data yang harus didefinisikan sebelum menggunakan fungsi-fungsi tersebut adalah : Type Penjelasan Pengenal perangkat yang digunakan dalam proses kompresi Struktur yang berisi data-data sumber yang akan di kompresi, serta hasil kompresinya setelah dilakukan proses kompresi. 44 Pendeklarasian dari tipe dan adalah : Type HacmStream = THandle; PhacmStream = HacmStream; Type PacmStreamHeader = TacmStreamHeader; TacmStreamHeader = record cbStruct:Dword; fdwStatus:Dword; dwUser:Dword; pbSrc:Pchar; cbSrcLength:Dword; cbSrcLengthUsed:Dword; pbDst:Pchar; cbDstLength:Dword; cbDstLengthUsed:Dword; dwDstUser:Dword; dwReservedDriver:array [0..9] of Dword; end; Kegunaan dari anggota struktur dapat dijelaskan sebagai berikut : 45 Type Penjelasan Struktur dalam ukuran byte. Nilai yang diberikan pada anggota struktur ini cukup besar untuk menampung keseluruhan isi . Memberikan informasi status dari proses kompresi yang sedang berlangsung. Misalnya anggota ini bernilai ACMSTREAMHEADER_STATUSF_DONE , ini berarti proses kompresi telah selesai. Berisi berbagai data yang dibutuhkan aplikasi. Alamat memori dari data sumber yang akan di kompresi. Berisi ukuran dalam bentuk byte dari data yang di tunjukkan oleh alamat anggota struktur Jumlah data dalam bentuk byte yang akan digunakan untuk proses kompresi. Berisi berbagai data tambahan yang dibutuhkan oleh aplikasi. Alamat memori dari data tempat penyimpanan hasil kompresi. 46 Berisi ukuran dalam bentuk byte dari data yang ditunjukkan oleh alamat anggota struktur Jumlah data dalam bentuk byte yang menunjukkan ukuran data hasil kompresi. Berisi berbagai data tambahan yang dibutuhkan aplikasi. Data-data cadangan Proses perekaman dan kompresi suara dilakukan dalam tahapan proses yang diawali dengan membuka perangkat input suara yang akan digunakan dalam proses perekaman. Setelah perangkat input dibuka dapat dilakukan proses perekaman, selanjutnya menunggu sampai proses perekaman selesai, tahapan selanjutnya dilakukan konversi terhadap data suara yang diinputkan tersebut. Flowchart dari proses perekaman dan kompresi suara ini dapat dilihat pada gambar 3.1. 47 Algoritma proses perekaman dan kompresi suara adalah sebagai berikut : 1. Mendefinisikan format data standar format Wave PCM. 2. Mendefinisikan ukuran data yang direkam, dimana berpengaruh terhadap lamanya proses perekaman. 3. Membuka perangkat input suara. Gambar 3.1. Flowchart proses perekaman dan kompresi suara Compression Format Convert Data Get Data Empty Prepare Wave Header Stop ? Convert Data Get Data Dispose Wave Header AcmStream Header Close Input Compression Device End 1 2 Start Standart Format Record Rate Open Input Device Open Compression Device Prepare Wave Header AcmStream Header Start Record 1 Wait message MM_WIM_DATA 2 y t 48 4. Mendefinisikan format data kompresi. 5. Membuka perangkat yang digunakan untuk proses konversi format data standar ke format data kompresi. 6. Mempersiapkan struktur yang akan berisikan data suara yang diinputkan, dan mempersiapkan struktur yang akan digunakan untuk proses kompresi. 7. Memulai proses perekaman. 8. Menunggu sampai data pada struktur penuh atau proses perekaman satu blok data selesai. 9. Jika data pada struktur sudah terisi maka melakukan konversi data pada struktur menjadi format kompresi. 10. Mengambil data hasil kompresi. 11. Mengosongkan data pada struktur , dan melanjutkan proses perekaman. 12. Mengulangi langkah 8 sampai proses perekaman dihentikan. 13. Menghapus struktur dan struktur dari memori. 14. Menutup perangkat input suara dan perangkat kompresi data suara. Komponen tersimpan pada file “SoundStream.pas”, dan format data suara tersimpan pada file “WaveFormat.dwr”. Dua file tersebut harus disertakan pada direktori program yang menggunakan komponen ini, karena file ini dibutuhkan untuk proses definisi format data suara. Pada file ini tersimpan format data suara bertipe : Global System for Mobile Communications GSM, IMA ADPCM, Motion Pictures Expert Group MPEG Audio, Microsoft 49 ADPCM, Pulse Code Modulation PCM, dan True Speech G.723.1. Komponen memiliki properti-properti property sebagai berikut : Property Penjelasan Mendefinisikan format data suara hasil rekaman wGSM610, wIMAADPCM, wMP3, wMsADPCM, wPCM, wTrueSpeech. Mengindikasikan microphone dalam kondisi mati mute atau tidak true atau false. Tingkat noice dari microphone yang digunakan untuk menginputkan suara 0-FFFFh Volume dari microphone 0-FFFFh Waktu yang dibutuhkan untuk merekam satu blok data atau interfal waktu kemunculan event dalam satuan detik. Mengindikasikan perangkat input suara sedang aktif atau saat program berjalan. Mengindikasikan sedang dalam proses perekaman atau tidak true atau false. Properti ini hanya dapat diakses saat program berjalan. 50 Event-event komponen adalah sebagai berikut : Event Penjelasan Event ini muncul jika satu blok data telah terekam, dimana data serta ukurannya dilewatkan pada parameter data dan size Event ini muncul setelah perangkat input suara di tutup. Event ini muncul jika microphone menerima input suara. Event ini muncul setelah perangkat input suara di buka. Method-method komponen adalah sebagai berikut : Method Penjelasan Digunakan untuk membuat komponen baru turunan dari kelas TsoundRec. Digunakan untuk menghapus komponen dari memori. Digunakan untuk membuka perangkat input suara, dan mengubah property aktif active di set true Digunakan untuk memulai proses perekaman suara, dan mengubah propertiy recording perekaman suara dengan mengesetnya menjadi true. 51 Digunakan untuk menghentikan proses perekaman suara, dan mengubah property recording dengan mengesetnya menjadi false. Digunakan untuk menutup perangkat input suara, dan mengubah properti active menjadi false.

3.1.2. Komponen output suara

Komponen merupakan komponen rancangan yang dapat memainkan data suara dan tersimpan pada suatu antrian data. Data yang lebih dulu masuk ke antrian akan dimainkan terlebih dahulu. Komponen ini diturunkan dari komponen standar Delphi yaitu Komponen menggunakan fungsi-fungsi Windows API yang tersimpan pada file “MMSystem.pas”, dimana tipe yang harus didefinisikan sebelumnya sama seperti pada komponen Tetapi untuk pengenal perangkat input suara tidak digunakan, melainkan menggunakan pengenal perangkat output suara yang memiliki tipe . 52 Antrian data pada dideklarasikan sebagai berikut : Type Tqueue = record Data : array of pointer; Size : array of integer; EntryPos : integer; ServPos : integer; end; Kegunaan anggota-anggota struktur antrian adalah : Type Penjelasan Menyimpan data suara yang akan dimainkan. Tipe data ini adalah array. Menyimpan ukuran data suara yang ada pada anggota struktur data. Ukuran yang yang disimpan sesuai dengan array pada anggota struktur data. Penunjuk posisi array data yang akan nasuk ke antrian. Penunjuk posisi array data yang akan keluar dari antrian. Flowchart prosedur pemasukan data ke dalam antrian dapat dilihat pada gambar 3.2. 53 Algoritma pemasukan data ke dalam antrian adalah : 1. Menginputkan data yang akan dimasukkan ke dalam antrian data entry. 2. Jika ukuran data yang dimasukkan entry melebihi ukuran maksimal maka, masukkan data sejumlah ukuran maksimal. 3. Mengisi array Data ke- dengan nilai data entry, dan mengisi array Size ke- dengan ukuran data yang dimasukkan. 4. Menaikkan nilai entrypos dan keluar dari prosedur jika lebih kecil dari panjang array Data. Jika lebih besar atau sama dengan panjang array Data, maka melakukan pengecekan apakah isi array Data yang ke-0 kosong?. Queue Entry Data Entry Size Max Size = Max size Data[EntryPos] = Data Entry Size[EntryPos] = Size 1 EntryPos = 0 EntryPos Panjang array data Naikkan EntryPos Data[0] = nil Tambahkan panjang array Data Tambahkan panjang array Size Naikkan EntryPos 1 Return Gambar 3.2. Flowchart prosedur pemasukan data ke antrian y t y t 54 5. Jika isi array Data ke-0 kosong, maka yang baru adalah 0. Tetapi melakukan penambahan panjang array Data dan array Size dan menaikkan nilai , jika isi array Data ke-0 tidak kosong. Flowchart prosedur penghapusan data dari antrian dapat dilihat pada gambar 3.3. Gambar 3.3. Flowchart prosedur penghapusan data dari antrian Algoritma prosedur penghapusan data dari antrian adalah sebagai berikut : 1. Jika array Size ke-0 bernilai 0, maka keluar dari prosedur. 2. Mengosongkan isi array Data yang ke- , dan mengisi array Size ke- dengan nilai 0, jika array Size ke-0 tidak nol. 2 Servpos Panjang array Data Naikkan Servpos Servpos = 0 Return y t y t Leave Queue Size[servpos] = 0 Kosongkan Data[Servpos] Size[Servpos] = 0 55 3. Menaikkan nilai Servpos jika lebih kecil dari panjang array Data. Jika lebih besar atau sama, maka nilai sama dengan 0. Komponen memainkan data suara yang ada pada antrian secara berurutan sesuai dengan kedatangan data-data tersebut. Proses memainkan data suara diawali dengan membuka perangkat output suara yang akan digunakan, setelah perangkat output dibuka maka data pada antrian dapat dimainkan. Selanjutnya menunggu proses memainkan satu blok data selesai, kemudian mengambil data antrian berikutnya untuk dimainkan. Demikian terus-menerus sampai data pada antrian habis atau proses dihentikan. Flowchart proses memainkan data suara dapat dilihat pada gambar 3.4. Gambar 3.4. Flowchart proses memainkan data suara Mulai Sound Format Buka perangkat output suara Persiapkan Wave Header Masuk ke antrian 1 Mainkan Tunngu pesan MM_WOM_DONE Antrian kosong? atau proses dihentikan? Hapus Wave Header Tutup perangkat output suara Selesai 1 y t 56 Algoritma proses memainkan data suara ini adalah sebagai berikut : 1. Mendefinisikan format data suara yang akan dimainkan. 2. Membuka perangkat output suara yang akan digunakan untuk memainkan data pada antrian. 3. Mempersiapkan struktur yang akan berisikan data suara yang dimainkan, dimana data tersebut berasal dari data antrian. 4. Memasukkan data suara ke dalam antrian. 5. Memainkan data suara yang telah ada pada antrian, dengan terlebih dahulu memindahkan data pada antrian yang ditunjuk data antrian yang ke- ke struktur . 6. Menunggu sampai data pada struktur selesai dimainkan. 7. Mengulangi langkah 5 sampai antrian kosong atau proses dihentikan. 8. Menghapus struktur , dan menutup perangkat output suara. Komponen merupakan penerapan dari algoritma diatas. Komponen disimpan pada file yang sama dengan komponen yaitu pada file “SoundStream.pas”. Komponen memiliki properti-properti sebagai berikut : Property Penjelasan Mendefinisikan format suara yang akan dimainkan wGSM610, wIMAADPCM, wMPEG, wMsADPCM, wPCM, wTRUESpeech. 57 Mengecek Wave output apakah dalam keadaan matimute atau tidak true atau false. Volume dari Wave Output 0-FFFFh. Mengecek perangkat output sedang aktif atau tidak true atau false. Properti ini hanya diakses pada saat program berjalan. Mengecek apakah dalam proses memainkan data atau tidak true atau false. Properti ini hanya diakses pada saat program berjalan. Mendefinisikan ukuran data maksimal yang dapat dimasukkan ke dalam antrian data. Properti ini hanya diakses pada saat program berjalan. Komponen memiliki event-event sebagai berikut : Event Penjelasan Event ini muncul setelah perangkat output suara di tutup. Event ini muncul setelah perangkat output suara di buka. Event ini muncul jika terjadi perubahan level suara pada Wave output, atau terdapat perubahan output suara. 58 Event ini muncul jika semua data pada antrian sudah dimainkan. Komponen memiliki method-method sebagai berikut : Method Penjelasan Digunakan untuk membuat komponen baru turunan dari kelas TSoundPlay. Digunakan untuk komponen ini dari memori Digunakan untuk membuka perangkat output suara, dan mengubah properti active di set menjadi true. Digunakan untuk menutup perangkat output suara, dan mengubah properti active di set menjadi false. Digunakan untuk memasukkan data ke dalam antrian data. Digunakan untuk memainkan data suara pada antrian, dan mengubah properti playing memainkan data suara di set menjadi true. Digunakan untuk menghentikan proses memainkan data suara, dan mengubah properti playing di set menjadi true. 59 3.1.3. Komponen pengirim dan penerima data Komponen pengirim dan penerima data pada komunikasi yang menggunakan teknologi VoIP sangat diperlukan, karena data suara yang di inputkan akan dikirim dan diterima melalui jaringan internet dengan perantara komponen ini. Komponen adalah salah satu komponen yang mengimplementasikan protokol Transmission Control Protocol untuk melakukan transfer data pada kedua belah pihak yang melakukan komunikasi, yaitu pihak client dan server. adalah komponen software yang dapat dikembangkan atau digunakan pada berbagai aplikasi-aplikasi yang mendukung , seperti : Delphi, Visual Basic, C++, dan lain-lain. Agar dapat menggunakan komponen ini di likungan kerja Delphi, maka perlu dilakukan import dari file “MSWinsck.ocx”. Digunakannya komponen untuk proses transfer data dengan pertimbangan bahwa komponen ini dapat berfungsi sebagai server ataupun client. Pada saat aplikasi menerima permintaan koneksi dari pihak lain maka komponen berfungsi sebagai server, sedangkan pada saat aplikasi mencoba untuk melakukan koneksi dengan pihak luar, ia berfungsi sebagai client. Untuk melakukan komunikasi menggunakan socket yang berfungsi untuk menspefikasikan tipe data yang dikirim atau diterima melalui jaringan. Socket dimiliki oleh setiap komputer pada jaringan IP. Setiap socket memiliki sejumlah port yang digunakan untuk pemilihan data secara langsung untuk dimanipulasi oleh program aplikasi, dengan kata lain program 60 aplikasi dapat melakukan pengiriman dan penerimaan data melalui port yang telah ditentukan oleh aplikasi tersebut. Properti-properti dari yang sering digunakan adalah : Property Penjelasan Jumlah data yang telah diterima oleh socket. Nama komputer lokal. Alamat IP dari komputer lokal. Port local untuk mengirim dan menerima data. Protokol yang digunakan dalam proses transfer User Datagram Protocol UDP atau pada proses Transmission Control Protocol TCP. Nama atau alamat IP dari komputer lain pada jaringan yang terhubung dengan komputer lokal. Port dari komputer lain pada jaringan yang terhubung dengan komputer lokal. Menunjukkan status socket. 61 Event-event dari yang digunakan adalah : Event Penjelasan Event ini aktif jika pihak ke dua yang terhubung dengan komputer lokal memutuskan koneksi. Event ini aktif jika ke dua belah pihak sudah terhubung, dan dapat dilakukan transfer data. Event ini aktif jika ada permintaan koneksi dari komputer lain pada jaringan. Event ini aktif jika ada data yang masuk. Event ini aktif jika timbul kesalahan pada socket. Method-method dari yang digunakan adalah : Method Penjelasan Menutup koneksi hanya pada protokol TCP. Mencoba untuk menghubungi komputer lain dalam jaringan. Digunakan untuk menerima permintaan koneksi pada saat event muncul. Menunggu permintaan koneksi dari komputer lain. 62 Mengirimkan data. Mengambil data yang di terima socket.

3.2. Perancangan Program Aplikasi Voice Over IP

Yang dimaksud dengan program aplikasi Voice over IP adalah program yang dirancang untuk tujuan komunikasi suara melalui jaringan internet, dimana komunikasi ini dapat berupa komunikasi PC ke PC, komunikasi PC ke Telepon, komunikasi Telepon ke PC, atau komunikasi Telepon ke Telepon. Program yang dirancang ini adalah komunikasi melalui jaringan internet yang berupa komunikasi antar PC komunikasi PC ke PC. Program VoIP ini menggunakan layanan yang disediakan oleh Internet Relay Chat IRC server server yang menyediakan layanan Chat di internet untuk mengetahui alamat IP dari pengguna yang terhubung ke server tersebut. Alamat IP berfungsi sebagai pengenal dari tiap komputer yang terhubung ke suatu jaringan seperti internet. Dengan mengetahui alamat IP komputer lain dalam jaringan, maka dapat dilakukan permintaan koneksi dan tranfer data. Program VoIP ini memiliki beberapa form dan unit-unit yang tersimpan dalam file yang berekstensi “.pas”, dimana masing-masing form dan unit memiliki fungsi tersendiri untuk mendukung aplikasi . 63

3.2.1. Form aplikasi VoIP

Form VoIP ini merupakan form utama yang dapat mengakses atau menampilkan form-form yang lain dan kodenya tersimpan pada unit file “UnVoiceChat.pas”. Form ini di desain agar bersifat user friendly mudah digunakan oleh pengguna, dengan menampilkan tool button dan menu-menu yang dapat diakses secara langsung. Program ini dirancang sesederhana mungkin dengan tahapan proses yang harus dikerjakan oleh user, agar program dapat digunakan dengan mudah. Proses komunikasi antar PC pada program yang dirancang terdiri dari empat tahapan yaitu, tahap identifikasi alamat IP dari pengguna lain yang akan dihubungi, tahap perekaman suara, tahap pengiriman data, dan tahap penerimaan dan output suara. Flowchart proses komunikasi pada VoIP dapat dilihat pada gambar 3.5. dan 3.6. 64 Gambar 3.5. Flowchart proses komunikasi pada VoIP Mulai Server IRC Pengenal User Melakukan koneksi Terkoneksi ? Kirim informasi user bergabung di channel Pesan server diterima? 1 3 y t y t Menunggu pesan dari server Koneksi ke server tertutup? y t 2 65 Gambar 3.6. Lanjutan flowchart proses komunikasi pada VoIP Kirim Data Data diterima? Suara terekam ? Masukan ke antrian data dan Mainkan data Menghubungi lagi? Berhenti memainkan data dan perekaman suara Selesai y t y t y Pesan diproses IP address user? IP address dari user lain 1 3 Kirim IP address Simpan IP address IP address sudah tersedia? Menghubungi user lain Terhubung ? Mulai merekam atau menginputkan suara t y t y t y t y t 2 66 Algoritma dari proses komunikasi antar PC pada program VoIP ini adalah : 1. Menginputkan nama server dan informasi user sebagai pengenal yang membedakan user satu dengan user lainnya. 2. Mencoba untuk menghubungi server yang didefinisikan pada langkah 1. 3. Tetap mencoba untuk menghubungi selama tidak terhubung dengan server. 4. Mengirimkan data informasi user dan mengirimkan perintah untuk bergabung dichannel tertentu. 5. Menunggu pesan dari server. 6. Melakukan pengecekan apakah masih terhubung ke server atau tidak jika tidak ada pesan yang masuk dan menuju ke langkah 7. Jika ada pesan yang masuk maka menuju ke langkah 8. 7. Menuju ke akhir program jika tidak terhubung dengan server, kembali ke langkah 5 jika masih terhubung. 8. Mengartikan pesan yang diterima dari server tiap satu baris perintah. 9. Mengirimkan data alamat IP user, jika ada pesan berarti ada yang bergabung di channel baik itu user sendiri ataupun user lain. 10. Jika pesan yang diterima berisi alamat IP dari user lain, maka alamat IP tersebut disimpan sesuai dengan user yang memilikinya. 11. Melakukan langkah 12 jika alamat IP dari user-user yang ada sudah tersedia, jika alamat IP belum tersedia maka menuju ke langkah 5. 12. Menghubungi user lainnya. 13. Mulai merekam atau menginputkan suara. 14. Melakukan langkah 15 sampai 16 selama user terhubung dengan user lain. 67 15. Mengirimkan data suara yang sudah terekam ke user lain yang terhubung dengan user selama proses merekam suara. 16. Memasukkan data yang diterima ke antrian data yang akan dimainkan, dan memainkan data-data tersebut selama data diterima dari user lain. 17. Menghentikan proses memainkan data suara dan menghentikan proses merekam suara. 18. Melakukan kembali langkah 12 jika user ingin menghubungi user yang lain. Form aplikasi VoIP ini memiliki beberapa komponen visual dan non- visual yang penempatannya diatur agar mudah diakses oleh user. Menu-menu yang sering digunakan di desain ke dalam bentuk tool button, di sertai dengan gambar yang menggambarkan fungsi dari tombol tersebut serta keterangan berupa text. Hal ini dilakukan untuk membantu user dalam menggunakan software ini. Desain form Program VoIP dapat dilihat pada Gambar 3.7. Pada form aplikasi VoIP ini terdapat beberapa komponen utama yang sangat berperan dalam proses komunikasi antar PC. Komponen-komponen tersebut yaitu : 1. Merupakan turunan dari komponen , yang berfungsi untuk merekam suara dan mengkonversikannya menjadi format data terkompresi. Format data hasil rekaman yang tersimpan pada property didefinisikan bernilai wGSM610, yang berarti format data wave Global System for Mobile 68 Communications GSM. Format ini memiliki nilai rata-rata tansfer per-detik 1625 byte, yang berarti tiap satu detik suara yang terekam memerlukan tempat penyimpanan sebanyak 1625 byte. Property diberikan nilai 0,04 detik, agar ukuran satu blok data yang terekam sebesar 65 byte cukup kecil untuk dilewatkan melalui internet dan dapat menekan waktu tunda komunikasi yang dapat dihitung dengan perhitungan dua kali waktu perekaman ditambah delay internet. Waktu perekaman yang bernilai 0,04 detik tidak berpengaruh banyak terhadap delay komunikasi, tetapi akan sangat ditentukan oleh delay transfer data melalui internet. 2. Merupakan turunan dari komponen yang berfungsi unutk memainkan data yang dimasukkan kedalam antrian data. Property komponen ini harus sesui dengan format data rekaman yaitu wGSM610. Untuk dapat memainkan data, antrian harus terisi minimal dua blok data, karena menggunakan doble buffering memainkan minimal dua blok data agar output suara tidak putus-putus.

3. Merupakan turunan dari komponen TWinsock yang berfungsi untuk

menghubungi sever IRC dan menerima data-data dari server tersebut. Server yang dihubungi tergantung dari nama server yang diinputkan pada form setting. Pada proses menghubungi server property memiliki variasi nilai sesuai dengan konstanta pada unit “Chat_functions.pas”, agar pada saat 69 gagal melakukan koneksi pada port tertentu dapat beralih ke port yang lain sesuai dengan urutan nilai port pada konstanta tersebut. Urutan nilai port pada adalah 7000,6667,6666,6668,6669,6665,6664,6663,6662,6661,dan 6660. 4. Merupakan array komponen yang masing-masing anggotanya di buat pada saat running program atau saat program berjalan. Array TCPSocket berfungsi untuk menghubungi dan menerima data dari user lain yang terhubung dengan server IRC pada channel yang sama. Panjang array tergantung dari jumlah nilai maksimal user lain yang dapat terhubung dengan user. Array memungkinkan user untuk berkomunikasi dengan banyak user lain, dimana pada saat satu blok data terekam, data tersebut dikirimkan ke semua user yang terkoneksi dengan user. Pada event atau pada saat anggota array menerima data dari user lain, data yang diterima tersebut dimasukkan ke dalam antrian data yang siap dimainkan oleh . Property berisikan alamat IP dari user yang akan dihubungi, sehingga berbeda pada masing-masing anggota array. Sedangkan property bernilai sama untuk semua anggota array yaitu sesuai dengan nilai konstanta . Hal ini bertujuan agar program dapat mengetahui adanya permintaan koneksi dari user lain, karena anggota array TCPSocket hanya menerima permintaan koneksi pada port 70 Gambar 3.7. Desain form utama aplikasi VoIP

3.2.2. Form setting aplikasi

Form Setting Aplikasi berfungsi untuk mengatur dan menyimpan konfigurasi dari program yang ditentukan oleh user. Kode program form ini tersimpan pada unit file “UnSetting.pas”. Konfigurasi program yang dapat ditentukan oleh user antara lain : server IRC, nama channel ruang komunikasi, jumlah maksimal user yang berkomunikasi, volume microphone, volume output, dan tingkat noice dari perangkat microphone. Untuk menghindari Tool Button IRCServer : TWinsock RecSound : TSoundRec PlaySound : TSoundPlay 71 pengkonfigurasian ulang terus-menerus tiap kali program dijalankan, maka konfigurasi tersebut disimpan pada file “VoiceChat.ini”. Semua konfigurasi disimpan pada file tersebut kecuali volume microphone dan volume output. Pada saat event form ini, konfigurasi program dibaca dari file dan disimpan pada variabel-variabel yang mengidentifikasikan data tersebut, sedangkan volume microphone dan volume output diambil dari nilai property pada dan property pada . Didalam pengaturan tingkat noice dari perangkat microphone, diperhatikan karakteristik dari noice tersebut, dimana noice selalu berubah setiap ada perubahan volume microphone. Gambar 3.8 merupakan perubahan noice yang digambarkan secara grafik untuk tiap peningkatan satu level volume microphone, dimana volume microphone dibagi kedalam 15 tingkat. Gambar 3.8. Perubahan noice tiap level volume microphone 72 Dari grafik gambar 3.8 diperoleh konstanta peningkatan noice dengan cara mengurangi nilai noice tiap tingkat volume dengan nilai noice tingkat volume nol. Konstanta tersebut didefinisikan dalam bentuk array, dimana indeks dari array menunjukkan tingkat volume dari microphone. Konstanta peningkatan noice dideklarasikan sebagai berikut : const KonsNoice:array[0..15] of integer = 0,0,252,256,512,512,832,828,1332,1302,2518,2575,4290,4252, 6656,6667; Dengan adanya konstanta program hanya perlu input nilai noice untuk tingkat volume microphone nol, karena setiap perangkat microphone memiliki tingkat noice yang berbeda dengan perangkat microphone lainnya. Setiap perubahan volume microphone harus diperhitung kembali noice yang ditimbulkan berdasarkan KonsNoice, kemudian tingkat noice yang telah diperoleh kemudian diinputkan ke property dari komponen agar program dapat menyeleksi suara yang masuk, apakah layak untuk dikirimkan atau tidak, atau mendeteksi apakah user sedang dalam keadaan diam atau berbicara. Hal ini diperlukan untuk memudahkan proses percakapan dan menghindari pengiriman data secara terus-menerus selama proses percakapan berlangsung. Form Setting Aplikasi didesain terdiri dari dua halaman yang menggunakan komponen sebagai pengontrol halamannya. Pada halaman pertama terdapat komponen yang mengatur konfigurasi server IRC, nama channel, dan jumlah maksimal user, sedangkan halaman kedua terdapat 73 komponen yang mengatur volume microphone, volume output, dan tingkat noice. Desain form untuk halaman pertama dapat dilihat pada gambar 3.9 dan desain form halaman kedua dapat dilihat pada gambar 3.10. Gambar 3.9. Desain form Setting Aplikasi halaman pertama Gambar 3.10. Desain form Setting Aplikasi halaman kedua 74

3.2.3. Form Informasi Mitra Chatting

Form Informasi Mitra Chatting merupakan form untuk menginputkan dan menampilkan informasi user dan user lain yang terhubung dengan server IRC pada channel yang sama. Informasi yang diinputkan dan ditampilkan antara lain seperti : nama, nama di channel nick name, alamat rumah, kota, negara, alamat e-mail, nomer telepon, profil pribadi keterangan lain tentang user. Informasi yang harus diinputkan user adalah nama, nick name, dan alamat e-mail, karena ketiga informasi ini sangat diperlukan untuk dapat terhubung dengan server IRC. Semua informasi tentang user dan user-user lain disimpan ke dalam dalam tipe data yang dideklarasikan sebagai berikut : type TDetail = record Nama : string; Nick : string; Alamat : string; Kota : string; Negara : string; Servmail : string; Usermail : string; Telpon : string; Profil : string; end; 75 Data-data tentang user disimpan pada variabel yang memiliki tipe . Isi dari variabel disimpan dalam bentuk teks pada file “VoiceChat.ini”, sehingga informasi tentang user tidak hilang pada saat keluar dari program dan user tidak perlu menginputkan ulang data-data tersebut. Gambar 3.11 merupakan desain form Informasi Mitra Chatting .

3.2.4. Form Channel

Form Channel berfungsi untuk menampilkan nama-nama user yang terhubung dengan server IRC pada channel yang sama. Nama-nama user tersebut ditampilkan pada komponen MitraList bertipe TtreeView dalam bentuk list. Keuntungan menggunakan TreeView untuk daftar nama-nama user adalah dapat menyimpan data yang didefinisikan program pada property Data dari masing-masing tree nodenya, sehingga tiap node dapat menyimpan informasi Gambar 3.11. Desain form Informasi Mitra Chatting 76 yang menjelaskan node tersebut. Bentuk desain form Channel dapat dilihat pada gambar 3.12. Setiap anggota tree tree node dari MitraList menunjukkan nama user di channel nick name dan menyimpan alamat IP dan informasi tentang user. Alamat IP dan informasi user disimpan dalam bentuk struktur yang terdiri dari dua anggota struktur yaitu berfungsi untuk menyimpan alamat IP dari user, sedangkan berfungsi untuk menyimpan informasi tentang user tersebut. Gambar 3.12. Desain form Channel 77 Struktur dideklarasikan sebagai berikut : type TMitra = record IPAddr : string; Detail : TDetail; end; 78 BAB IV IMPLEMENTASI DAN UJI COBA Dalam bab ini akan diuraikan implementasi program berdasarkan desain yang telah dibuat.

4.1. Kebutuhan Sistem

Untuk dapat menjalankan program VoIP ini diperlukan kebutuhan- kebutuhan minimal yang harus dipersiapkan: a. Perangkat keras: • Komputer PC IBM kompatibel Pentium II 500 MHz atau lebih tinggi. • RAM 64 MB atau lebih • VGA Card • Modem • Mouse dan keyboard • Sound card • Microphone dan speaker b. Perangkat lunak: • Sistem operasi Microsoft Windows 98.

4.2. Penjelasan Program