BAB IV IMPLEMENTASI DAN PENGUJIAN 4.1 Lingkungan Implementasi Setelah melakukan analisis dan perancangan terhadap aplikasi video conference, tahapan selanjutnya implementasi dan pengujian. Pada tahapan implementasi terdapat beberapa proses yang meliputi desain antarmuka video conference, coding dan spesifikasi kebutuhan sistem yang meliputi perangkat lunak (software), perangkat keras (hardware). Implementasi dan pengujian merupakan sebuah penerapan aplikasi dan memfungsikan aplikasi tersebut untuk digunakan dalam suatu proses. Implementasi tersebut dapat beberapa hal yang berhubungan dengan pengujian aplikasi. 4.1.1 Spesifikasi Kebuthan Sistem Berikut spesifikasi kebutuhan sistem yang diperlukan dalam implementasi aplikasi video conference. 1. Perangkat Lunak (Software) Untuk lingkungan perangkat lunak, langkah pertama dalam pelaksanaan implementasi “aplikasi video conference” ini adalah mendesain tampilan antarmuka (interface) untuk menampilkan video/audio Kemudian dilanjutkan dengan memberikan coding-coding untuk dapat berkoneksi maupun menjalankan aplikasi yang diinginkan. Perangkat lunak yang diperlukan dalam implementasi “aplikasi video conference” adalah sebagai berikut: Sistem Operasi Windows 98, NT, 2000, ME, XP Microsoft Visual Studio 6.0 Microsoft Visual Studio 2005 50 51 2. Perangkat Keras (Hardware) Untuk mencapai efektivitas dan efisiensi waktu, perlu didukung dengan tersedianya perangkat keras yang digunakan. Untuk itu konfigurasi perangkat keras yang dibangun harus benar-benar dapat menunjang dalam pelaksanaan kerja sesuai dengan yang diharapkan dalam perancangan sistem. “Aplikasi video conference” ini dapat diimplementasikan pada komputer standar dengan spesifikasi perangkat keras minimal yang direkomendasikan sebagai berikut: Prosesor dengan kecepatan 133 Mhz 128 MB RAM (higher) Harddisk space sebesar 5 Gb Monitor 14” (relatif) VGA (Video Graphic Adapter) atau SVGA (Super Video Graphic Adapter) Keyboard dan mouse standar Sound Card Earphone / headset sebagai output suara Webcam USB 2.0 4.2 Implementasi Aplikasi Pada tahap ini mengimplementasikan aplikasi yang telah dibangun. Hasil implementasi mengacu pada desain sistem yang telah dibahas pada bab sebelumnya. 52 4.2.1 Antarmuka Video Conference Gambar 4.1 Antarmuka Video Conference Pada antarmuka utama terdapat tiga menu header yaitu menu conference, view, audio, video dan pada antaramuka utama terdapat judul dari aplikasi. Selain menu dan judul, pada antarmuka utama terdapat dua screen yaitu local screen, remote host screen dimana berfungsi menampilkan video stream antara screen user satu dan screen user dua. Selain itu antarmuka utama terdapat fasilitas chating dapat digunakan untuk komunikasi dua arah. 53 4.2.2 Menu Connect Gambar 4.2 Gambar menu conncet Menu ini berfungsi mengkoneksikan alamat IP pada sebuah jaringan yang telah dibangun, sehingga terlaksananya konferensi antar user. Tampilan menu di atas dihasilkan potongan script sebagai berikut: void ConnectDlg::OnConnect() { char hostname[200]; this->GetDlgItemText(IDC_EDIT1,hostname,200); this->OnCancel(); ((CVideoNetDlg*)mdlg)>dcontrol.SendControlMessage(MESG_CONNECT,hostname); } // set referensi main dialog void ConnectDlg::SetParent(CDialog *dlg) { mdlg=dlg; } //tutup kotak dialog connect void ConnectDlg::OnCancel() { this->SetDlgItemText(IDC_EDIT1,""); CDialog::OnCancel(); } Pada menu “connect” terdapat form pengisian alamat IP remote host. Langkah pertama, isi alamat IP remote host yang dituju. Jika alamat IP yang telah dimasukkan benar maka akan tampil form konfirmasi, apakah kita ingin 54 melakukan konferensi dengan user lain, jika iya klik tombol “accept”, jika tidak klik tombol “reject” seperti gambar berikut: Gambar 4.3 form konfirmasi permintaan untuk bergabung Tampilan form di atas dihasilkan dari potongan script sebagai berikut: BOOL RequestDlg::OnInitDialog() { CDialog::OnInitDialog(); char str[600]; sprintf(str,"Connection request from user %s ",rname); this->SetDlgItemText(IDC_MESG,str); return TRUE; } // set nama dan alamat remote user void RequestDlg::SetParameter(char *hostname,char *hostaddress,CDialog *dlg) { strcpy(rname,hostname); strcpy(raddress,hostaddress); pdlg=dlg; } // user telah menerima permintaan koneksi //mengirim notifikasi permintaan accept ke remote use void RequestDlg::OnAccept() { this->OnCancel(); // mengirim notifikasi ke remote user ((CVideoNetDlg*)pdlg)>dcontrol.SendControlMessage(MESG_ACCEPT,NULL); // jika user reject/menolak permintaan koneksi void RequestDlg::OnReject() { //mengirim notifikasi reject ke remote user 55 ((CVideoNetDlg*)pdlg)>dcontrol.SendControlMessage(MESG_REJECT,NULL); CDialog::OnCancel(); } Setelah itu klik tombol “accept” maka akan tampil form seperti gambar berikut: Gambar 4.4 form konfirmasi permintaan user Notifikasi form di atas dihasilkan dari potongan script sebagai berikut: RequestDlg rdlg(NULL); // Control type if(type==TYPE_CONTROL) { retvalue=this->ReceiveFrom(data,length,address,port); if(retvalue==SOCKET_ERROR) return; // Get host name from the data. for(int i=0;i<data[1];i++) hname[i]=data[i+2]; hname[i]=0; strcpy(remotename,hname); strcpy(remoteaddress,(LPCTSTR)address); switch(data[0]) { // action : Remote user telah mengirim undangan untuk konferensi // reaction : accept/reject undangan case MESG_CONNECT: // menampilkan dialog box accept dan reject rdlg.SetParameter(remotename,remoteaddress,pdlg); rdlg.DoModal(); return; // action : Remote user telah menerima undangan // reaction : mulai konferensi case MESG_ACCEPT: AfxMessageBox("User has accepted the connection"); ( (CVideoNetDlg*)pdlg)->StartConference(); return; } return; } 56 klik tombol “OK” makan akan muncul video pada local screen dan remote screen seperti gambar berikut: Gambar 4.5 Tampilan Video Conference Terlihat pada ruang konferensi ada dua user yang bergabung, kedua user tersebut memiliki webcam sehingga pada remote video host menampilkan user yang dipanggil oleh user local video screen yaitu user remote video host sedangkan local video screen sebaliknya yaitu menampilkan user itu sendiri. Video Capture dilakukan menggunakan VFW (Video For Windows) API. Menyediakan dukungan untuk menangkap video dari webcam. videocapture.h dan videocapture.cpp adalah file yang berisi kode program untuk proses pengambilan video. 57 4.2.3 Menu View Pada menu view terdapat dua submenu antara lain local video screen dan remote video screen seperti gambar berikut: Gambar 4.6 submenu local video screen & remote video screen Tampilan menu local video screen dan remote video screen dihasilkan potongan script sebagai berikut: // Show / Hide the local video screen void CVideoNetDlg::OnViewLocal() { CMenu *menu=this->GetMenu(); if(isViewLocalVideo) { isViewLocalVideo=FALSE; menu->CheckMenuItem(VIEW_LOCAL,MF_BYCOMMAND MF_UNCHECKED); } else { | 58 isViewLocalVideo=TRUE; menu->CheckMenuItem(VIEW_LOCAL,MF_BYCOMMAND MF_CHECKED); } } // Show / Hide the remote video screen void CVideoNetDlg::OnViewRemote() { CMenu *menu=this->GetMenu(); | if(isViewRemoteVideo) { isViewRemoteVideo=FALSE; menu->CheckMenuItem(VIEW_REMOTE,MF_BYCOMMAND | MF_UNCHECKED); } else { isViewRemoteVideo=TRUE; menu->CheckMenuItem(VIEW_REMOTE,MF_BYCOMMAND | MF_CHECKED); } } Local dan remote video screen berfungsi men-enable dan disable video screen. Jika submenu diberi tanda tanda maka yang tampil local video screen, jika tidak ada maka local video tidak tampil begitupun sebaliknya dengan fungsi menu remote video screen. Apabila kedua submenu view diberi tanda . 59 4.2.4 Menu Audio Pada menu audio terdapat tiga submenu antara lain volume control, send dan receive. Gambar 4.7 Menu Audio Tampilan menu audio dihasilkan dari potongan script sebagai berikut: //Displays the volume control dialog box void CVideoNetDlg::OnVolumeControl() { Volume vol(IDD_DIALOG3); vol.DoModal(); } //Enables/Disables transmission of audio // Invoked when user presses Audio -> Send menu item void CVideoNetDlg::OnAudioSend() { if(isAudioSend) { // Stop recording audio record->SuspendThread(); isAudioSend=FALSE; menu>CheckMenuItem(AUDIO_SEND,MF_BYCOMMAND MF_UNCHECKED); } else { // Start recording audio record->ResumeThread(); | 60 isAudioSend=TRUE; menu>CheckMenuItem(AUDIO_SEND,MF_BYCOMMAND MF_CHECKED); } } // Enables/Disables reception of audio //Invoked when user presses Audio -> Receive menu item void CVideoNetDlg::OnAudioReceive() { if(isAudioReceive) { isAudioReceive=FALSE; menu>CheckMenuItem(AUDIO_RECEIVE,MF_BYCOMMAND MF_UNCHECKED); } else { isAudioReceive=TRUE; menu>CheckMenuItem(AUDIO_RECEIVE,MF_BYCOMMAND MF_CHECKED); } | | | Untuk mengatur volume control audio klik menu audio --> volume control seperti gambar berikut: Gambar 4.8 submenu volume control Submenu volume control berfungsi mengatur audio. Sedangkan submenu send berfungsi mengaktifkan / nonaktifkan transmisi audio, berfungsi mengaktifkan / nonaktifkan penerimaan audio. dan submenu receive 61 4.2.5 Menu Video Gambar 4.9 Menu Video Tampilan video dan submenu dihasilkan dari potongan script sebagai berikut: // Enables/Disables transmission of video //Invoked when user presses Video-> Send menu item void CVideoNetDlg::OnVideoSend() { if(isVideoSend) { isVideoSend=FALSE; menu>CheckMenuItem(VIDEO_SEND,MF_BYCOMMAND MF_UNCHECKED); } else { isVideoSend=TRUE; menu>CheckMenuItem(VIDEO_SEND,MF_BYCOMMAND MF_CHECKED); } } // Enables/Disables reception of video // Invoked when user presses Video -> Receive menu item void CVideoNetDlg::OnVideoReceive() { if(isVideoReceive) | | 62 { isVideoReceive=FALSE; menu>CheckMenuItem(VIDEO_RECEIVE,MF_BYCOMMAND MF_UNCHECKED); } else { isVideoReceive=TRUE; menu>CheckMenuItem(VIDEO_RECEIVE,MF_BYCOMMAND MF_CHECKED); } | | } Pada menu video terdapat dua submenu: send dan receive. Submenu send berfungsi mengaktifkan / nonaktifkan transmisi video. Submenu receive berfungsi mengaktifkan / nonaktifkan penerimaan video. 4.2.6 Form Chat Panel Gambar 4.10 Gambar antarmuka chat panel Tampilan form pesan di atas dihasilkan dari potongan script sebagai berikut: //send the message to remote host void CVideoNetDlg::OnSendMesg() { unsigned char data[500]; GetDlgItemText(IDC_EDIT1,(char*)data,500); if(strlen((const char*)data)>0) { dtext.SendTextData(data,strlen((const char*)data)); 63 SetDlgItemText(IDC_EDIT1,""); } } //diplay message receive from the remote host void CVideoNetDlg::DisplayMesg(char *mesg) { list->AddString(mesg); // Highlight the currently added string // This will scroll the window automatically list->SetCurSel(list->GetCount()-1); } Pada form chat panel terdiri dua kotak dialog yaitu kotak dialog untuk mengirimkan isi pesan ke pengguna lain dan kotak dialog yang berada di atas menampilkan log perbincangan antar pengguna. 4.3 Pengujian Pengujian aplikasi ini dilakukan untuk memastikan bahwa program aplikasi yang telah dirancang dan dibuat ini berfungsi dengan baik dan sesuai dengan rumusan rancangan yang telah ditetapkan sebelumnya. Tanpa adanya pengujian, maka tidak dapat diketahui apakah program aplikasi yang telah dbuat sesuai dengan spesifikasi rancangan program aplikasi. Pengujian terhadap aplikasi video conference ini dilakukan dengan metode pengujian blackbox. 4.3.1 Metode Blackbox Testing Skenario yang dijelaskan antara lain antarmuka form utama video conference, menu header conference, view, audio, video, serta submenu local video screen, remot video screen, audio send, receive, video send, receive dan exit. 64 Table 4.1 Tabel Skenario Pengujian Skenario Menu conference Pengujian Klik menu connect Form invitation Klik menu disconnect Menu View Klik local video screen Klik remote video screen Hasil yang diharapkan Status Menampilkan form untuk mengisi alamat IP Sukses remote host Menampilkan konfirmasi request undangan Sukses untuk bergabung atau tidak melakukan video conference Menampilkan form informasi status user Sukses bahwa telah terputus dari konferensi Sukses Men-enable / disable local video screen Sukses Men-enable / disable remote video screen Lanjutan Tabel 4.1 Tabel Skenario Pengujian Skenario Menu Audio Menu Video Pengujian Hasil yang diharapkan Status Klik volume control Menampilkan form volume control audio Sukses Klik send Mengaktifkan / nonaktifkan transmisi audio Sukses Klik receive Mengaktifkan / nonaktifkan penerimaan audio Sukses Klik send Klik receive Mengaktifkan / nonaktifkan transmisi video Mengaktifkan / nonaktifkan penerimaan video Sukses Sukses 65 Tabel 4.2 Penjelasan Pengujian Skenario Menu conference Connect Disconnect Hasil ( sesuai / tidak ) Sesuai : Submenu connect: sesuai dengan yang diharapkan telah berhasil menghubungkan IP address remote host yang dituju, dilakukan pada saat ujicoba aplikasi. Submenu disconnect: sesuai dengan yang diharapkan berhasil ketika keluar aplikasi pada saat ujicoba aplikasi. Menu View Local video screen Remote video screen Sesuai: Dari hasil ujicoba local dan remote video screen sesuai dengan yang di harapkan. Menu Audio Volume control Send Receive Sesuai: Setelah diujicoba volume control, send dan receive sesuai dengan yang diharapkan Menu Video Send Receive Sesuai: Dari hasil ujicoba video send dan receive diharapkan. sesuai dengan yang 66 4.4 Analisa Hasil Dari hasil implemantasi dan pengujian maka dapat disimpulkan. 1. User/pengguna dapat mengakses aplikasi ini di ruang berbeda, akan tetapi komputer, laptop user/pengguna harus terkoneksi dalam satu jaringan minimal jaringan lokal. 2. User/pengguna dapat melakukan konferensi audio video antara user yang satu dengan user lainnya selain itu juga user/pengguna dapat berkomunikasi dua arah antar user. 3. Model jaringan yang digunakan aplikasi video conference ini, menggunakan model jaringan peer to peer yang hanya melibatkan dua unit computer dalam satu jaringan dengan teknologi point to point.