Upload
adie-charlotte
View
12
Download
0
Embed Size (px)
DESCRIPTION
Materi desain aplikasi untuk mahasiswa TIK
Citation preview
7/18/2019 Desain Aplikasi
1/23
A; Desain Aplikasi
Cara Pembuatan Aplikasi Chat Multi User
Buka program Visual Basic dan buatlah project baru dengan nama AplikasiChat.vbp, tambahkan
sebuah form dengan nama frmMain.frm
2. Pengaturan Properti
Komponen Properti Nilai ungsi
orm !
"Name#
Caption
$tartupPosition
frmMain
Aplikasi MultiChat
%&Center$creen
orm Aplikasi Chat
'abel! Caption Nama( 'abel Nama
'abel% Caption $ambung ke( 'abel $ambung ke
'abel) Caption Port ( 'abel Port
'abel* Caption $tatus( 'abel $tatus
'abel+ Caption ialog Pesan( 'abel dialog
'abel- Caption Pesan( 'abel Pesan
'abel. Caption ata /erkirim( 'abel ata /erkirim
'abel0 Caption ata iterima( 'abel ata iterima
'abel1 Caption Members( 'abel Members
/e2tBo2!"Name#
/e2t
t2tNama
"kosongkan#
/empat memasukkan
nama
/e2tBo2%"Name#
/e2t
t2t3P
!%.45454!/empat memasukkan 3P
/e2tBo2)
"Name#
/e2t
t2tPort
!555
/empat memasukkan
Port
/e2tBo2* "Name# t2t$tatus Melihat $tatus koneksi
7/18/2019 Desain Aplikasi
2/23
Multi'ine
$crollBars
/e2t
/rue
%&Vertical
"kosongkan#
/e2tBo2+"Name#
/e2t
t2tialog
"kosongkan#
Melihat percakapan
pesan
/e2tBo2- "Name#/e2t t2tPesan"kosongkan# /empat menulis pesan
'istBo2!
"Name#
'ist
Multiselect
$orted
Pengguna
"kosongkan#
%&62tended
/rue
Melihat pemakai aplikasi
'istBo2%"Name#
'ist
/erkirim
"kosongkan#Melihat ata terkirim
'istBo2)"Name#
'ist
iterima
"kosongkan#Melihat ata diterima
CommandButton!"Name#
Caption
cmd$er7er
$er7er
/ombol jika anda
menjadi $er7er
CommandButton% "Name#Caption
cmdKlienKlien
/ombol jika andamenjadi Klien
CommandButton)"Name#
Caption
cmdPutus
Putuskan
/ombol untuk
memutuskan koneksi
CommandButton*"Name#
Caption
cmd8ilang
8ilangkan Pilihan
/ombol untuk
menghilangkan pilihan
pada daftar pemakai
aplikasi
CommandButton+"Name#
Caption
cmdKeluar
Keluarkan
/ombol untuk
mengeluarkan seseorang
dari koneksi, ini han9a
untuk ser7erCommandButton-
"Name#
Caption
cmd62it
6:3/
/ombol untuk keluar dari
aplikasi
CommandButton."Name#
Caption
cmdKirim
Kirim
/ombol untuk
mengirimkan pesan
CheckBo2 "Name# chkPri7ateUntuk memgirimkan
pesan pribadi
;insock! "Name# sckConnection Mengontrol koneksi
;insock% "Name# sckConnect Mengontrol koneksi
/imer"Name#
3nter7al
tmr$endata
!
Pengatur
7/18/2019 Desain Aplikasi
3/23
Klik ganda pada form dan masukkan kode
=ption 62plicit
>Port default 9ang digunakan ketika koneksi4
Const 6AU'/?P=@/ !555
>ile3N3 9ang digunakan oleh program4
Const 3N3?3'6 multichat4ini
>parameter¶meter 9ang dikirim beserta perintah&perintah 9ang dikirim antar komputer4
$emua parameter¶meter akan diukur khususn9a panjang karakter&karakter PA@AM?'6N untuk
men9ederhanakan perintah&perintah oleh komputer"s# penerima4
Const PA@AM?'6N !5
>igunakan untuk menunjukkan bahUnsur 9ang pertama adalah untuk ser7er, dan Const ini akan mendefinisikan tentang ser7er4
Const $6' &!
Konstanta digunakan untuk menggambarkan kode&kode 9ang digunakan oleh ;insock4 Kode&kode ini menentukan apa masing&masing perintah 9ang dikirim sedang digunakan
Const $CK?C=6?DAN/3?NAMA EDanti NamaF
Const $CK?C=6?/6@PU/U$ E/erputusF
Const $CK?C=6?G=3N6 EBergabungF
Const $CK?C=6?K6'UA@KAN EikeluarkanF
Const $CK?C=6?'3N6 E'ineF
Const $CK?C=6?P6$AN EPesanF
Const $CK?C=6?N6;?NAM6?'3$/ ENAMA '3$/ BA@UF
Const $CK?C=6?P6=P'6 E=rangF
Const $CK?C=6?P@3VA/6?M6$$AD6 EPesan Pri7atF
3ni adalah perintah&perintah dan data 9ang dikirim kepada komputer&komputer 9ang lain, 9ang keser7er "jika anda sudah tersambung ke ser7er# atau kepada semua komputer 9ang dihubungkan "jika
anda adalah ser7er#4
im m$end'ist As Ne< Collection
im m$end/o As Ne< Collection
im mi: As 3nteger, miH As 3nteger
im miNumConnections As 3nteger
im mb$er7er As Boolean
Public Function sFormatSendvData! As String
>Bentuk data 9ang akan dikirim4
>buat PA@AM?'6N long chars4
sormat$end ormat"7ata, $tring"PA@AM?'6N, 5##
Gika " PA@AM?'6N I !# long chars, itu berarti tanda negatif4
Maka itu bentuk karakter lebih pendek4
7/18/2019 Desain Aplikasi
4/23
3f 'en"sormat$end# PA@AM?'6N I ! /hen
sormat$end ormat"7ata, $tring"PA@AM?'6N & !, 5##
6nd 3f
6nd unction
Public Sub Send"oAll#ut$riginatorvsData As String% viConnection As &nteger!
Kirimkan 7sata kepada semua koneksi kecuali 7iConnection "pembuat data#4
im i As 3nteger
Koneksi beredar dan mengirimkan data ke masing&masing koneksi terbuka kecuali 7iConnection4
or i ! /o miNumConnections
3f i J 7iConnection And frmMain4sckConnection"i#4$tate sckConnected /hen
$end/oPerson 7sata, i
6nd 3f
Ne2t i
6nd $ub
Public Sub ProcessDatavsString As String% viConnection As &nteger!
Prosedur ini memproses data 9ang diterima dari ser7er atau dari koneksi&koneksi ke ser7er4
7s$tring string perintah 9ang sedang diproses
7iConnection koneksi dari string perintah 9ang diterima
im i As 3nteger
im sCommand As $tring
im s3nstruction As $tring
im sata As $tring
im b/emp As Boolean
im iCount As 3nteger
im iUser As 3nteger
o ;hile 3n$tr"!, 7s$tring, 7bCr'f#
/ersimpan di sCommand bagian dari arus data 9ang berisi perintah 9ang pertama4
sCommand Mid"7s$tring, !, 3n$tr"!, 7s$tring, 7bCr'f# & !#
3f 7iConnection $6' /hen
ata dari ser7er4
$ho
7/18/2019 Desain Aplikasi
5/23
>Masing&masing perintah berisi satu instruksi seperti EPesanF atau EMemutuskanF4
Beberapa memerintah juga berisi parameter¶meter4
i sini instruksi bagian dari perintah itu disimpan di s3nstruction dan sisan9a disimpan di
sata4
s3nstruction Mid"sCommand, !, 3n$tr"!, sCommand, F##
sata Mid"sCommand, 3n$tr"!, sCommand, F# I !, 'en"sCommand##
$elect Case s3nstruction
Case $CK?C=6?DAN/3?NAMA
>Perintah ini dikirim oleh seorang pengguna ketika mereka mengubah nama mereka di dalam teks
Nama
update nama mereka di dalam daftar nama4
ChangeAddName 7iConnection, sata@efresh daftar nama di semua komputer 9ang terhubung4
$endPeople'ist
Case $CK?C=6?/6@PU/U$
Perintah ini diterima ketika ser7er memberitahu seseorang bah
7/18/2019 Desain Aplikasi
6/23
Case $CK?C=6?P6$AN
Perintah ini dikirim ketika seseorang mengirimkan pesan4
/unjukkan pesan4
Updateialog sata
>Beritahu pesan pada semua koneksi 9ang terbuka4
3f mb$er7er /hen
$end/oAllBut=riginator $CK?C=6?P6$AN L sata, 7iConnection
6nd 3f
Case $CK?C=6?N6;?NAM6?'3$/
Perintah ini dikirim oleh ser7er sebelum merefresh daftar nama4
Pengguna4Clear
Case $CK?C=6?P6=P'6
3ni dikirim oleh ser7er untuk memberitahu koneksi&koneksi tersambung nama telah berubah4
Update daftar nama4
ChangeAddName sParam"sata, !#, s'ongParam"sata, %#
Case $CK?C=6?P@3VA/6?M6$$AD6
Perintah ini diterima oleh ser7er ketika seseorang mengirimkan suatu pesan pribadi
apatkan nomor pesan dari para pemakai 9ang sedang dikirimkan4
iCount sParam"sata, !#
>baca parameter iCount berikutn9a4
3ni menunjukkan para pengirim pesan4
or i % /o iCount I !
>apatkan pengguna berikutn9a di dalam daftar pengguna bah
7/18/2019 Desain Aplikasi
7/23
7s$tring Mid"7s$tring, 3n$tr"!, 7s$tring, 7bCr'f# I %, 'en"7s$tring##
'oop
6nd $ub
Public Sub SendPeopleList!
3ni adalah suatu prosedur untuk merefresh masing&masing daftar koneksi4
im i As 3nteger, j As 3nteger
Beredar di seluruh koneksi4
or i 5 /o Pengguna4'istCount & !
Gangan kirimkan daftar kepada diri sendiri4
3f Pengguna43temata"i# J $6' /hen
Kirimkan perintah untuk jmemperjelas daftar kepada pemakai4
$end/oPerson $CK?C=6?N6;?NAM6?'3$/, Pengguna43temata"i#
Kirimkan nama untuk masing&masing pemakai pada masing&masing koneksi4
or j 5 /o Pengguna4'istCount & !
$end/oPerson $CK?C=6?P6=P'6 L sormat$end"Pengguna43temata"j## L
Pengguna4'ist"j#, Pengguna43temata"i# Ne2t j
6nd 3f
Ne2t i
6nd $ub
Public Sub ClearStuff!
>Prosedur ini membersihkan dialog pesan, daftar nama, dll 9ang digunakan selama suatu chat room4>digunakan untuk mengaatur ulang dialog pesan, daftar nama, dll setelah suatu chat room ditutup4
Bersihkan antrian data4
$et m$end'ist Nothing
$et m$end/o Nothing
>$embun9ikan tombol Keluarkan4
cmdKeluar4Visible alse
>Bersihkan daftar koneksi4
Pengguna4Clear
>Bersihkan dialog pesan4
t2tialog4/e2t
6nd $ub
Public Function sParamvsData As String% vi'um As &nteger! As String
7/18/2019 Desain Aplikasi
8/23
ungsi ini menarik parameter 7iNum dari arus data 7sata, 9ang sedang diproses di dalam prosedur
Processata4
Parameter ini adalah panjang karakter PA@AM?'6N
sParam Mid"7sata, PA@AM?'6N "7iNum & !# I !, PA@AM?'6N#
6nd unction
Public Function sLongParamvsData As String% vi'um As &nteger! As String
ungsi ini menarik parameter 7iNum dari arus data 7sata, 9ang sedang diproses di dalam prosedur
Processata4
Parameter ini biasan9a berada pada akhir suatu perintah4
s'ongParam Mid"7sata, PA@AM?'6N "7iNum & !# I !, 'en"7sata##
6nd unction
Public Function bConnected! As #oolean
>ungsi ini mengembalikan /rue bila ada koneksi terbuka4
3ni digunakan untuk melihat jika anda diiinkan untuk mengubah pengaturan port, ser7er suatu chat
room, atau men9ambungkan ke chat room4
im i As 3nteger
or i ! /o miNumConnections
3f sckConnection"i#4$tate J sckClosed /hen
bConnected /rue
62it unction
6nd 3f
Ne2t i
3f sckConnect4$tate J sckClosed /hen
bConnected /rue
6nd 3f
6nd unction
Public Sub Add'ameviConnection As &nteger% vs'ame As String!
>Prosedur ini menambahkan suatu nama ke daftar nama4
7iConnection pemakai koneksi
7/18/2019 Desain Aplikasi
9/23
7sName nama dari orang
im i As 3nteger
/ambahkan nama itu ke daftar koneksi4
Pengguna4Add3tem 7sName
Kaitkan item itu di dalam daftar nama dengan koneksi ini4
or i 5 /o Pengguna4'istCount & !
3f Pengguna43temata"i# 5 /hen
Pengguna43temata"i# 7iConnection
62it or
6nd 3f
Ne2t i
6nd $ub
Public Sub ChangeAdd'ameviConnection As &nteger% vs'ame As String!
Prosedur ini mengubah suatu nama di dalam daftar nama, atau menambahkann9a jika tidak
ditemukan4
7iConnection pemakai koneksi itu
7sName nama dari orang
im i As 3nteger, j As 3nteger
im bound As Boolean
Mencari nama sesuai dengan koneksi itu, menghapusn9a, dan menambahkan ulang4
8al ini memastikan bah
7/18/2019 Desain Aplikasi
10/23
Public Sub (emove'ameviConnection As &nteger!
Prosedur ini mencabut suatu nama dari daftar nama4
7iConnection pemakai koneksi itu
im i As 3nteger
or i 5 /o Pengguna4'istCount & !
3f Pengguna43temata"i# 7iConnection /hen
Pengguna4@emo7e3tem i
62it or
6nd 3f
Ne2t i
6nd $ub
Public Function sConnection'ameviConnection As &nteger! As String
fungsi ini mencari daftar koneksi&koneksi untuk nama dari seorang pemakai4
7iConnection pemakai koneksi itu
im i As 3nteger
or i 5 /o Pengguna4'istCount & !
3f Pengguna43temata"i# 7iConnection /hen
sConnectionName Pengguna4'ist"i#
62it or
6nd 3f
Ne2t i
6nd unction
Public Sub Send"oAllvsData As String% vbSelf As #oolean!
Kirimkan 7sata kepada semua koneksi4
7b$elf menentukan 9a atau tidakn9a 7sata dikirim kepada diri sendiri44
im i As 3nteger
Beredar melalui koneksi&koneksi dan mengirimkan data ke masing&masing koneksi terbuka4
or i ! /o miNumConnections
3f frmMain4sckConnection"i#4$tate sckConnected /hen $end/oPerson 7sata, i
6nd 3f
Ne2t i
Kirim kepada diri sendiri jika perlu4
3f 7b$elf /hen
$end/o$elf 7sata
6nd 3f
6nd $ub
Public Sub Send"oPersonvsData As String% viConnection As &nteger!
Kirimkan 7sata ke 7iConnection4
7/18/2019 Desain Aplikasi
11/23
m$end'ist4Add 7sata
m$end/o4Add sckConnection" L 7iConnection L #
6nd $ub
Public Sub Send"oSelfvsData As String!
Kirimkan 7sata kepada diri sendiri "ser7er#4
panggil Processata di 7sata4
Processata 7sata L 7bCr'f, $6'
6nd $ub
Public Sub Send"oServervsData As String!
Kirimkan 7sata kepada ser7er4
m$end'ist4Add 7sata
m$end/o4Add sckConnect
6nd $ub
Public Sub )pdateStatusvsStatus As String!
/ambahkan 7s$tatus kepada status chat room
t2t$tatus4/e2t t2t$tatus4/e2t L 7bCr'f L 7s$tatus
menunjuk ujung kotak teks supa9a Anda dapat melihat teks paling terbaru4
t2t$tatus4$el$tart 'en"t2t$tatus4/e2t#
3f Mid"t2t$tatus4/e2t, !, 'en"7bCr'f## 7bCr'f /hen
t2t$tatus4/e2t Mid"t2t$tatus4/e2t, 'en"7bCr'f# I !, 'en"t2t$tatus4/e2t##
6nd 3f
6nd $ub
Public Sub )pdateDialogvsDialog As String!
/ambahkan 7sialog ke dialog chat room
t2tialog4/e2t t2tialog4/e2t L 7bCr'f L 7sialog
menunjuk ujung kotak teks supa9a Anda dapat melihat teks paling terbaru4
t2tialog4$el$tart 'en"t2tialog4/e2t#
3f Mid"t2tialog4/e2t, !, 'en"7bCr'f## 7bCr'f /hen
t2tialog4/e2t Mid"t2tialog4/e2t, 'en"7bCr'f# I !, 'en"t2tialog4/e2t##
6nd 3f
6nd $ub
7/18/2019 Desain Aplikasi
12/23
Public Sub Sho*SentDatavsString As String!
>7s$tring menunjukkan data 9ang dikirim
tambahkan ke kotak daftar4
/erkirim4Add3tem 7s$tring
Dulung kotak daftar ke ba/utup semua koneksi4
7/18/2019 Desain Aplikasi
13/23
sckConnect4Close
or i ! /o miNumConnections
sckConnection"i#4Close
Ne2t i
>panggil procedure 9ang ditulis pengguna ke satu file 3N34
6nd $ub
,lik ganda t-t'ama dan masukkan code
Pri7ate $ub t2tNama?Ke9Press"Ke9Ascii As 3nteger#
3f Ke9Ascii 7bKe9@eturn /hen Gika tombol 6nter ditekan di dalam kotak teks nama, update nama anda di la9ar dan di semua
komputer 9ang lain4
3f mb$er7er /hen
Gika anda ser7er, update nama di la9ar anda4
ChangeAddName $6', t2tNama4/e2t
@efresh daftar nama di semua koneksi4
$endPeople'ist
6lse
>Kirim nama baru ke ser7er4
$end/o$er7er $CK?C=6?DAN/3?NAMA L t2tNama4/e2t
6nd 3f
Buat VB berpikir tidak ada apa pun tombol ke9board ditekan4 8al ini mencegah satu tanda bun9imengganggu4
Ke9Ascii 5
6nd 3f
6nd $ub
,lik ganda t-tPesan dan masukkan code
Pri7ate $ub t2tPesan?Ke9Press"Ke9Ascii As 3nteger#
3f Ke9Ascii 7bKe9@eturn /hen
Gika tombol 6nter ditekan di dalam kotak teks maka suatu pesan akan dikirim, hampir sama dengan
tombol Kirim4 cmdKirim?Click
Bersihkan kotak teks4
t2tPesan4/e2t
Buat VB berpikir tidak ada apa pun tombol ke9board ditekan4 8al ini mencegah satu tanda bun9i
mengganggu4
Ke9Ascii 5
6nd 3f
6nd $ub
,lik ganda sckConnection dan masukkan code
7/18/2019 Desain Aplikasi
14/23
Pri7ate $ub sckConnection?Close"3nde2 As 3nteger#
$alah satu dari koneksi ke ser7er itu tertutup4
/utup koneksi4
sckConnection"3nde2#4Close
Gika seseorang ada pada koneksi itu, beritahu koneksi&koneksi 9ang terbuka4
3f sConnectionName"3nde2# J /hen
>Update status4
Update$tatus sConnectionName"3nde2# L /idak /ersambung4
>8ilangkan nama mereka dari daftar nama4
@emo7eName 3nde2
>ser7er memberitahu pada semua komputer 9ang terhubung bah8itung jumlah koneksi4
miNumConnections miNumConnections I !
memuat ;insock kontrol 9ang baru untuk koneksi ini4
'oad sckConnection"miNumConnections#
>Kontrol 9ang digunakan adalah kontrol 9ang baru4 iConnection miNumConnections
6nd 3f
/etapkan port untuk kontrol ini ke 54 "$ecara acak menugaskan satu port 9ang tersedia4#
sckConnection"iConnection#4'ocalPort 5
>Kontrol ini menerima koneksi4
sckConnection"iConnection#4Accept reQuest3
6nd 3f
1nd Sub
Private Sub sckConnection+DataArrival&nde- As &nteger% #/0al b/tes"otal As Long!
7/18/2019 Desain Aplikasi
15/23
ata diterima di ser7er dari satu koneksi 9ang terbuka4
im s$tring As $tring
>apatkan data4
sckConnection"3nde2#4Detata s$tring, 7b$tring
>ata diproses4
Processata s$tring, 3nde2
1nd Sub
,lik ganda sckConnect dan masukkan code
Private Sub sckConnect+DataArrival#/0al b/tes"otal As Long!
>ata diterima di komputer 9ang tersambung ke ser7er4
im s$tring As $tring>apatkan data
sckConnect4Detata s$tring, 7b$tring
data diproses4
Processata s$tring, &!
6nd $ub
Private Sub sckConnect+Close!
8al ini terjadi ketika koneksi kepada ser7er gagal4
Update status4
Update$tatus isconnected4
/utup koneksi4
sckConnect4Close
Bersihkan daftar nama4
Pengguna4Clear
>bersihkan daftar nama, dialog, dll untuk membuat chat room baru4
Clear$tuff
sembun9ikantampilkan fungsi&fungsi tertentu karena koneksi sedang ditutup4
CloseConnection
6nd $ub
,lik ganda cmdServer dan masukkan code
Pri7ate $ub cmd$er7er?Click"#
Cek input4
3f 'en"t2tNama4/e2t# 5 /hen
MsgBo2 Mohon Masukkan Nama, 7bCritical
t2tNama4$etocus
62it $ub
6nd 3f
7/18/2019 Desain Aplikasi
16/23
$eseorang meng&klik tombol $er7er untuk menjadi ser7er chat room4
$embun9ikanperlihatkan fungsi tertentu karena suatu koneksi sedang dibuka4
=penConnection
mengingatkan bahBersihkan daftar nama, dialog, dll untuk membuat chat room baru4
Clear$tuff
>/utup ;insock kontrol untuk mengiinkan anda tersambung dengan ser7er4
sckConnect4Close
>@eset Upadate $tatus4
Update$tatus $er7er4
>/ampilkan nama ser7er pada daftar koneksi4
Pengguna4Add3tem t2tNama4/e2t
Pengguna43temata"5# $6'
/ampilkan tombol Keluarkan4 3ni han9a untuk ser7er4
cmdKeluar4Visible /rue
6nd $ub
,lik ganda cmd,lien dan masukkan code
Pri7ate $ub cmdKlien?Click"#
$eseorang meng&klik tombol Klien untuk tersambung ke seseorang 9ang bertindak sebagai ser7er4
=n 6rror Do/o 6rr?cmdKlien?Click
3f 'en"t2tNama4/e2t# 5 /hen
MsgBo2 Mohon Masukkan Nama, 7bCritical
t2tNama4$etocus
62it $ub
6nd 3f
sembun9ikantampilkan fungsi&fungsi tertentu karena koneksi sedang dibuka4
=penConnection
>Anda bukan ser7er4
mb$er7er alse
>bersihkan daftar nama, dialog, dll untuk membuat chat room baru4Clear$tuff
Update status4
Update$tatus /arsambung444
/utup port 9ang sedang digunakan dan coba sambung lagi4
sckConnect4Close
sckConnect4@emotePort t2tPort4/e2t
sckConnect4Connect t2t3P4/e2t
>Kirim nama pengguna ke ser7er4
$end/o$er7er $CK?C=6?G=3N6 L t2tNama4/e2t
62it $ub
Gika suatu koneksi tidak bisa dilakukan, kode ini dijalankan4
7/18/2019 Desain Aplikasi
17/23
6rr?cmdKlien?Click(
MsgBo2 /idak dapat tersambung4, 7b62clamation, App4/itle
sckConnect4Close
Update$tatus /idak /ersambung4
sembun9ikantampilkan fungsi&fungsi tertentu karena koneksi sedang ditutup4
CloseConnection
6nd $ub
,lik ganda cmdPutus dan masukkan code
Private Sub cmdPutus+Click!
>$eseorang meng&klik tombol Putuskan untuk memutuskan koneksi4
im i As 3nteger
>/utup semua koneksi4
sckConnect4Closeor i 5 /o miNumConnections
sckConnection"i#4Close
Ne2t i
mb$er7er alse
>Update status4
Update$tatus /idak /ersambung4
>bersihkan daftar nama, dialog, dll untuk membuat chat room baru4
Clear$tuff
sembun9ikantampilkan fungsi&fungsi tertentu karena koneksi sedang ditutup4
CloseConnection6nd $ub
,lik ganda cmdilang dan masukkan code
Private Sub cmdilang+Click!
>8ilangkan pilihan pada daftar nama koneksi4
im i As 3nteger
or i 5 /o Pengguna4'istCount & !
Pengguna4$elected"i# alseNe2t i
6nd $ub
Private Sub cmd,eluar+Click!
$er7er 9ang menentukan untuk mengeluarkan sebagian orang4
im i As 3nteger, j As 3nteger
>Cek siapa 9ang terpilih di daftar nama4
Pastikan untuk mengabaikan jika ser7er terpilih4
7/18/2019 Desain Aplikasi
18/23
or i Pengguna4'istCount & ! /o 5 $tep &!
3f Pengguna4$elected"i# And Pengguna43temata"i# J $6' /hen
Ketika suatu nama 9ang terpilih ditemukan, beritahu semua koneksi 9ang terbuka bah/utup koneksi4
sckConnection"Pengguna43temata"i##4Close >Update status4
Update$tatus ikeluarkan L Pengguna4'ist"i# L 4
>8ilangkan nama mereka dari daftar nama4
Pengguna4@emo7e3tem "i#
6nd 3f
Ne2t i
>8ilangkan pilihan dari daftar nama4
or i 5 /o Pengguna4'istCount & !
Pengguna4$elected"i# alse
Ne2t i
6nd $ub
Private Sub cmd,irim+Click!
$eseorang meng&klik tombol Kirim untuk mengirimkan suatu pesan4
im i As 3nteger
im iCount As 3nteger
im sUsers As $tring
3f mb$er7er /hen
Gika anda adalah ser7er, kirimkan pesan itu kepada semua koneksi 9ang terbuka4
3f chkPri7ate4Value 7bChecked /hen
Pesan pribadi &han9a untuk para pemakai 9ang terpilih4
'ihat 9ang terpilih di dalam kotak daftar dan kirimkan pesan kepada mereka4
or i 5 /o Pengguna4'istCount & !
3f Pengguna4$elected"i# /rue /hen
Gangan kirimkan pesan kepada diri sendiri4
3f Pengguna43temata"i# J $6' /hen
$end/oPerson $CK?C=6?P6$AN L L t2tNama4/e2t L ( L t2tPesan4/e2t,
Pengguna43temata"i#
7/18/2019 Desain Aplikasi
19/23
6nd 3f
6nd 3f
Ne2t i
6lse
Pesan untuk semua pengguna4
$end/oAll $CK?C=6?P6$AN L t2tNama4/e2t L ( L t2tPesan4/e2t, alse
6nd 3f
6lse
Gika anda tersambungkan ke ser7er, kirimkan pesan itu kepada ser7er4
3f chkPri7ate4Value 7bChecked /hen
Pesan pribadi &han9a untuk para pemakai 9ang terpilih4
'ihat 9ang terpilih di dalam kotak daftar dan kirimkan pesan kepada mereka4
or i 5 /o Pengguna4'istCount & !
3f Pengguna4$elected"i# /rue /hen
string dari daftar pesan para pemakai akan dikirimkan4
string ini akan diuraikan oleh ser7er, 9ang akan mengalihkan pesan4
sUsers sUsers L sormat$end"Pengguna43temata"i## hitung pesan para pemakai 9ang sedang dikirim
3ni diperlukan sehingga ser7er mengetahui bagaimana caran9a menguraikan string4
iCount iCount I !
6nd 3f
Ne2t i
Gika daftar tidak kosong, kirimkan pesan kepada ser7er
3f iCount J 5 /hen
$end/o$er7er $CK?C=6?P@3VA/6?M6$$AD6 L sormat$end"iCount# L sUsers L
L t2tNama4/e2t L ( L t2tPesan4/e2t
6nd 3f
6lse
>pesan untuk semua pengguna4 $end/o$er7er $CK?C=6?P6$AN L t2tNama4/e2t L ( L t2tPesan4/e2t
6nd 3f
6nd 3f
3f chkPri7ate4Value 7bChecked /hen
>Update dialog pesan4
Updateialog L t2tNama4/e2t L ( L t2tPesan4/e2t
6lse
Update dialog pesan4
Updateialog t2tNama4/e2t L ( L t2tPesan4/e2t
t2tPesan4/e2t =n 6rror @esume Ne2t
t2tPesan4$etocus
6nd 3f
>kosongkan kotak pesan4
t2tPesan4/e2t
6nd $ub
Private Sub cmd13&" +Click!
7/18/2019 Desain Aplikasi
20/23
>Keluarkan aplikasi4
Unload Me
6nd $ub
Private Sub tmrSendData+"imer!
pengatur panjang pengiriman data4
$ho
7/18/2019 Desain Aplikasi
21/23
$esuatu 9ang sudah dikirim4
b$ent /rue
6nd 3f
6nd 3f
>8itung 7ariabel inde24
i$end i$end I !
'oop
6nd $ub
C; Cara Menggunakan Program
$etelah code diatas telah dimasukkan semua, maka compilelah program diatas menjadi e2e,
dengancara Klik menu ileMake MultiChat4e2e
$etelah berhasil disimpan, coba buka ) kali program tersebut dalam satu komputer4
7/18/2019 Desain Aplikasi
22/23
Masukkan nama ser7er, klien!, klien% pada aplikasi tersebut, untuk ser7er tekan tombol $er7er dan
untuk klien tekan tombol Klien4 Cobalah untuk mengirim pesan melalui ser7er dan pesan akan
diterima oleh seluruh klien4
Untuk membuat pesan pribadi pada seseorang pilihlah nama pada bagian daftar pengguna dan
centanglah Pesan Pribadi.
7/18/2019 Desain Aplikasi
23/23
Untuk penggunaan dalam jaringan anda harus memasukan 3P komputer ser7er baik pada ser7er
maupun klien4