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