• Tidak ada hasil yang ditemukan

Membuat Aplikasi Teleconference Sendiri Dengan Visual Basic

N/A
N/A
Protected

Academic year: 2021

Membagikan "Membuat Aplikasi Teleconference Sendiri Dengan Visual Basic"

Copied!
10
0
0

Teks penuh

(1)

1 | H a l a m a n

Membuat Aplikasi Teleconference Sendiri Dengan

Visual Basic

Artikel ini telah dipublikasikan pada majalah Mikrodata Vol. 6 Series 17, June 2002.

Agus Kurniawan

agusk@cs.ui.ac.id

http://blog.aguskurniawan.net

1. Pendahuluan

Bila kita sering menjelajah dunia internet, maka kita tidak asing dengan istilah chatting. Chatting itu sendiri sebenarnya banyak kegunaannya. Selain sebagai alat berkomunikasi baik untuk untuk mencari teman, hubungan bisnis, ataupun untuk forum diskusi.

Pada Artikel kali ini akan dibahas bagaimana kita membuat aplikasi chatting yang dinamai dengan Teleconference Pro. Aplikasi ini dibuat dengan menggunakan Visual Basic 6.0 dan memanfaatkan Komponen OCX Winsock Control.

2. Design Dan Fitur Aplikasi

Sebelum membuat aplikasi Teleconference Pro, kita seharusnya membuat design dan fitur-fitur yang ada dalam aplikasi yang akan dibuat. Fitur-fitur aplikasi Teleconference Pro antara lain:

 Satu server dengan multi client yang mana jumlah client tak terbatas  Antar aplikasi client dapat berkomunikasi dengan mengirim message  Aplikasi client dapat melihat siapa saja yang online dan jumlahnya  Aplikasi client dapat mengetahui kalau server sedang drown

 Aplikasi server dapat mengetahui aplikasi client yang terhubung dengannya  Aplikasi server dapat melakukan drop aplikasi client

(2)

2 | H a l a m a n

Gambar 1. Model arsitektur Teleconference Pro Untuk design aplikasinya dibagi menjadi 3 bagian meliputi

 Format Data Transfer  Aplikasi Server  Aplikasi Client

Model aplikasi yang akan dibuat dapat dilihat pada gambar 1.

3. Format Data Transfers

Format data ini sangat berguna untuk media berkomunikasi antar aplikasi server dan client. Format data ini dibuat menurut kepentingan dan keinginan masing-masing si pembuatnya dengan mempertimbangkan kemudahan dan keefisien dari format data tersebut.Berikut ini format data yang dipakai dalam aplikasi ini:

Gambar 2. Format data Teleconference Pro Keterangan kode message:

Kode Message Keterangan

#JIN Untuk bergabung dengan Teleconference Pro #KIK Untuk meng-kick salah satu client yang online

#DTA Data message

(3)

3 | H a l a m a n

#CHT Data user dari client

Paramater Data berupa data string yang panjang tidak terbatas. Parameter data ini dibuat dalam bentuk konstanta di code aplikasi:

Const AGS_JOIN = "#JIN" Const AGS_DROP = "#KIK" Const AGS_CHAT = "#DTA" Const AGS_NEW_LIST = "#NEW" Const AGS_CHATTER = "#CHT"

Disamping itu juga dalam sistem komunikasi data kadang kalanya ada data yang hilang atau berhimpitan. Untuk mengatasi itu maka data yang akan kita kirim perlu ditandai supaya dapat dikenali oleh aplikasi dengan cara memberikan kode “<msg>” untuk menunjukkan awal data dan kode “</msg>” untuk menunjukkan akhir data.

Contoh:

Aplikasi client meminta server untuk bergabung dengan Teleconference denga user xxx, maka data yang dikirim ke server yaitu:

Socket.SendData AGS_JOIN & xxx

Pada saat akan dikirim maka didepan data diberikan label “<msg>” dan diakhiri dengan “</msg”, contohnya sebagai berikut:

Socket.SendData “<msg>” & dataku & “</msg>”

untuk lebih dipahami ,bisa dilihat souce code dari artikel ini

4. Aplikasi Server

Pada bagian aplikasi server yang merupakan aplikasi utama yang menangani koneksi dan data transfer sehingga diperlukan penanganan yang extra. Prinsip kerja dari aplikasi server dapat dilihat pada gambar 3 dibawah ini:

(4)

4 | H a l a m a n

Gambar 3. Prinsip kerja aplikasi server

Pada gambar 3, mula-mula server melakukan initialisasi data, termasuk socket. Socket yang dipakai ini komponen Winsock Control, ini didapatkan dengan menambahkan komponen pada project kita (klik Project->Component) dan pilih Tab Control, checked Microsoft Winsock Control 6.0. Tampilan dari aplikasi server seperti yang diperlihatkan pada gambar 4. Initialiasi dan socket listenning yang dilakukan aplikasi server pada saat ditekan tombol Start yaitu:

SockClient(0).Close SockClient(0).LocalPort = ServPort.Text SockClient(0).Listen iExcept = 0 iClientDrop = 0 LogServer.Clear

(5)

5 | H a l a m a n

Gambar 4. Tampilan aplikasi server

Pada saat ada koneksi dari client yang masuk kedalam socket server, maka aplikasi server akan menciptakan komponen winsok control atau saat event ConnectionRequest, codenya sebagai berikut:

If Index = 0 Then

For i = 1 To TotalSocket

If SockClient(i).State = sckClosed Then nConnect = i Exit For End If Next i If nConnect = 0 Then TotalSocket = TotalSocket + 1 nConnect = TotalSocket Load SockClient(nConnect) End If SockClient(nConnect).LocalPort = 0 SockClient(nConnect).Accept requestID End If

Jika ada data yang datang ke socket server (event DataArrival), maka data tersebut akan diolah sesuai dengan format data. Mula-mula dibuat 4 byte pertama yang menunjukkan tipe data tersebut. Codenya sebagai berikut:

(6)

6 | H a l a m a n

MsgCode = Mid(lMessage.Item(i), 1, 4)

sData = Mid(lMessage.Item(i), 5, Len(lMessage.Item(i)) - 4) Select Case MsgCode

Case AGS_JOIN

AddClient Index, sData

LogServer.AddItem "User baru (" & sData &_

") masuk - " & CStr(CDate(Now)) SendToAllExcept AGS_CHAT & sData &_

" ikut bergabung.... ", Index SendChatterList

SendToPerson AGS_CHAT & sData &_

" ,selamat datang di forum chatting", Index

Case AGS_CHAT

LogServer.AddItem "Terima data dari clients - " &_ CStr(CDate(Now))

SendToAll lMessage.Item(i)

End Select

Variabel lMessage merupakan variabel bertipe Collection yang berfungsi untuk menyimpan semua data yang diterima dari berbagai macam clients. Data ini sudah dilakukan proses parsing sehingga langsung dipecah-pecah sesuai dengan kode message. Metode parsing yang dilakukan cukup sederhana sebagai berikut:

n = 0

n_start = 1 Do

i = InStr(n_start, mData, "<msg>") n_end = InStr(i + 5, mData, "</msg>")

If i <> 0 And n_end <> 0 Then

bufData = Mid(mData, i + 5, n_end - i - 5) lMessage.Add bufData n = n + 1 End If n_start = n_end + 6 Loop Until i = 0 TotalMessage = n

Semua data yang akan dikirim oleh socket server disimpan terlebih dulu variabel bertipe Collection termasuk data daftar client yang online. Data-data ini akan dikirim secara real time dalam Timer dengan setting propertie Interval bernilai 1. Saat akan dikirim harus dicek dulu apakah socket client masih terhubung dengan server, kalau terhubung maka dapat dikirim langsung ke client. Codenya sebagai berikut:

(7)

7 | H a l a m a n

If lSendTo.Count > 0 Then

For i = 1 To TotalSocket

If SockClient(i).State = sckConnected And iExcept <> i And isSending = False Then

SockClient(i).SendData lSendTo.Item(1)

LogServer.AddItem "Kirim data ke client " &_ CStr(i) & " - " & CStr(CDate(Now))

End If Next i lSendTo.Remove 1 iExcept = 0 End If If lSendToPerson.Count > 0 Then iSocket = Mid(lSendToPerson.Item(1), 1, InStr(1, lSendToPerson.Item(1), "@") - 1) sData = Mid(lSendToPerson.Item(1), InStr(1, lSendToPerson.Item(1), "@") + 1, Len(lSendToPerson.Item(1))) n = CInt(iSocket)

If SockClient(n).State = sckConnected And isSending = False Then SockClient(n).SendData sData

LogServer.AddItem "Kirim data ke client " &_ CStr(n) & "- " & CStr(CDate(Now))

lSendToPerson.Remove 1 End If

End If

Variabel isSending bertipe Boolean yang menunjukkan status socket sedang atau telah mengirim data dan tujuannya untuk mengecek apakah socket dalam kondisi sedang mengirim atau tidak. Kalau sedang mengirim data maka proses kirim data ditunda beberapa saat. Ketika server melakukan proses kick terhadap salah client yang online, maka aplikasi mengirim no socket client dan menutupnya serta memberitahukan ke client. For i = 0 To ListClients.ListCount If ListClients.Selected(i) Then SendToPerson AGS_DROP, i + 1 iClientDrop = i + 1

LogServer.AddItem "Client " & lClient.Item(iClientDrop) &_ "dikick - " & CStr(CDate(Now))

Exit For End If Next i

(8)

8 | H a l a m a n

5. Aplikasi Client

Pada aplikasi client cuman dibutuhkan satu socket untuk koneksi dan transfer data. Prinsip kerja dari aplikasi client dapat dilihat pada gambar 5.

(9)

9 | H a l a m a n

Gambar 6. Tampilan aplikasi client

Tampilan dari aplikasi client dapat dilihat pada gambar 6. Pertama kali aplikasi client melakukan initialisasi data dan socket pada saat user menerkan tombol Connect, codenya sebagai berikut:

SockCon.Close

SockCon.RemotePort = PortServ.Text SockCon.Connect IPServ.Text

SendToServer AGS_JOIN & UserClient.Text

Saat melakukan koneksi ke server makan aplikasi client mengirim kode message #JIN. Sedangkan response yang dilakukan oleh aplikasi saat data datang (event DataArrival dari Winsock control):

MsgCode = Mid(lMessage.Item(i), 1, 4)

Msg = Mid(lMessage.Item(i), 5, Len(lMessage.Item(i)) - 4) Select Case MsgCode

(10)

10 | H a l a m a n Case AGS_CHAT If mData.Text <> "" Then mData.Text = mData.Text + Msg + vbCrLf Else mData.Text = Msg + vbCrLf End If Case AGS_NEW_LIST ListClient.Nodes.Clear Case AGS_CHATTER ListClient.Nodes.Add , , , Msg, 1 Case AGS_DROP

MsgBox "Anda dikeluarkan dari Conference oleh server", vbInformation, "Message from Server"

CloseConference End Select

Proses parsing data yang masuk ke socket sama caranya dengan proses parsing pada aplikasi server. Kalau tombol Send ditekan, maka aplikasi clien akan mengirim kode message #DTA. Source codenya sebagai berikut:

SendToServer AGS_CHAT & Trim(UserClient.Text) & ": " & MsgData.Text MsgData.Text = ""

Data yang dikirim dengan menggunakan fungsi SendToServer sebenarnya hanya ditampung dalam variabel bertipe Collection. Variabel ini akan dikirim dalam fungsi Timer dengan setting properti Interval = 1. Source code untuk timer:

If MsgList.Count > 0 And SockCon.State = sckConnected And isSending = False Then

SockCon.SendData MsgList.Item(1) MsgList.Remove (1)

End If

6. Uji Coba Aplikasi

Berikut ini langkah-langkah untuk uji coba aplikasinya: 1. Jalankan aplikasi server dengan port tententu

2. Jalankan aplikasi client dengan masukan IP server, port yang dipakai server dan user yang diinginkan. Kemudian tekan tombol Connect

3. Kalau di editor message muncul pesan “xxx Selamat datang di forum chatting” maka aplikasi client sudah diterima oleh server dan sebaliknya akan menampilkan pesan error.

Gambar

Gambar 2. Format data Teleconference Pro
Gambar 5. Prinsip kerja aplikasi client

Referensi

Dokumen terkait

Menunjuk- kan karya dan aktivitas seni dengan mengguna- kan berbagai media Merespons stimulus yang diberikan misal: benda- benda yang berwarna dan berbunyi Senang

Sebagai suatu ideologi bangsa dan Negara Indonesia maka Pancasila pada hakikatnya bukan hanya merupakan suatu hasil perenungan atau pemikiran seseorang atau kelompok

mana efektivitas amilum modifikasi ko- proses yang telah dihasilkan. Berdasarkan hal itu perlu dilakukan penelitian lebih lanjut terkait formulasi dan evaluasi tablet

Juga dalam pengertian yang luas, dimana outsourcing sekedar diartikan sebagai penyerahan atau pengontrakan aktivitas perusahaan pada pihak ke tiga, dimana ada beberapa

Telah dilakukan penelitian tentang prevalensi sistiserkosis pada babi yang dipotong di Rumah Potong Hewan Denpasar dan Tempat Pemotongan Hewan Tradisional di Karangasem,

[r]

Jika gigi jatuh di tempat yang kotor, apa yang akan Bapak/Ibu lakukan pada gigi tersebutb. Membersihkan gigi dengan menggunakan tangan

Setelah dilakukan rancangan perbaikan dengan melakukan ujicoba geometri pengeboran dan peledakan rekomendasi dengan menggunakan 4 buah lubang kosong (empty hole) dalam cut,