Anda di halaman 1dari 7

MATA KULIAH PEMROGRAMAN JARINGAN

MODUL PRAKTIKUM APLIKASI CHAT

Modul praktikum ini akan dilakukan pembuatan aplikasi chat (pengiriman dan penerimaan pesan
teks) sebagai contoh sederhana dalam pengiriman paket data yang dilakukan oleh computer client dan
computer server yang terhubung dalam sebuah jaringan. Penghubung antara computer client dan
computer server menggunakan IP dan nomor port. Pada praktikum ini menggunakan Bahasa C# melalui
.Net pada Visual Studio 2019. Ikuti Langkah-langkah berikut untuk memulai pembuatan aplikasi.

1. Buka Visual Studio 2019

Gambar 1: Tampilan Utama Visual Studio 2019

2. Buatlah project baru dengan cara


Pilih menu File  New  Project

Gambar 2: Jendela New Project

3. Pilih Windows Form App seperti terlihat pada gambar 3 berikut:


Gambar 3: Jendela pilihan jenis project aplikasi

4. Simpan project dengan nama AplikasiChat


5. Desainlah tampilan form sehingga terlihat seperti tampilan berikut:

Gambar 4: Tampilan Desain Aplikasi Chat

6. Tambahkan komponen BackgroundWorker1 dan BackgroundWorker2


7. Aturlah komponen windows form pada jendela properties seperti pada tabel berikut:
Nama Objek/Komponen Properti
GroupBox1 Text: Server
TextBox1 Name: ServerIPtextBox
TextBox2 Name: ServerPorttextBox
Button1 Text: START
Name: StartButton
Label1 Text: IP
Label2 Text: PORT
GroupBox2 Text: CLIENT
TextBox3 Name: ClientIPtextBox
TextBox4 Name: ClientPorttextBox
Button2 Text: CONNECT
Name: ConnectButton
Label3 Text: IP
Label4 Text: PORT
TextBox5 Name: ChatScreentextBox
MultiLine: True
TextBox6 Name: MessagetextBox
Button3 Text: Kirim
Name: SendButton
BackgroundWorker1 Name: BackgroundWorker1
Events: backgroundWorker1_DoWork
BackgroundWorker2 Name: BackgroundWorker2
Events: backgroundWorker2_DoWork

8. Buka jendela kode program (View Code) dengan cara menekan tombol F7, atau klik kanan pilih
View Code

9. Tambahkan kode berikut untuk mendeklarasikan Pustaka .Net, Socket dan IO dan pada bagian
deklarasi Pustaka:

using System.Net;
using System.Net.Sockets;
using System.IO;

10. Tambahkan kode berikut untuk mendeklarasikan variable pada Class Form
private TcpClient client;
public StreamReader STR;
public StreamWriter STW;
public string recieve;
public string TextToSend;

11. Tambahkan kode berikut pada procedure Form untuk mendapatkan IP Address Local computer,
letakkan tepat dibawah baris InitializeComponent();

IPAddress[] localIP = Dns.GetHostAddresses(Dns.GetHostName());


foreach(IPAddress address in localIP)
{
if (address.AddressFamily == AddressFamily.InterNetwork)
{
ServerIPtextBox.Text = address.ToString();
}
}
12. Tambahkan kode berikut pada Tombol StartButton
private void StartButton_Click(object sender, EventArgs e)
{
TcpListener listener = new TcpListener(IPAddress.Any,
int.Parse(ServerPorttextBox.Text));
listener.Start();
client = listener.AcceptTcpClient();
STR = new StreamReader(client.GetStream());
STW = new StreamWriter(client.GetStream());
STW.AutoFlush = true;
backgroundWorker1.RunWorkerAsync();
backgroundWorker2.WorkerSupportsCancellation = true;
}

13. Tambahkan kode berikut pada tombol ConnectButton untuk memulai koneksi dari Client Ke
Server
private void ConnectButton_Click(object sender, EventArgs e)
{
client = new TcpClient();
IPEndPoint iPEnd = new IPEndPoint(IPAddress.Parse(ClientIPtextBox.Text),
int.Parse(ClientPorttextBox.Text));
try
{
client.Connect(iPEnd);
if (client.Connected)
{
ChatScreentextBox.AppendText("Koneksi ke Server" + "\r\n");
STR = new StreamReader(client.GetStream());
STW = new StreamWriter(client.GetStream());
STW.AutoFlush = true;
backgroundWorker1.RunWorkerAsync();
backgroundWorker2.WorkerSupportsCancellation = true;
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
}

14. Tambahkan kode berikut pada backgroundWorker1_DoWork untuk mendeteksi pesan masuk pada
sisi Server
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
while (client.Connected)
{
try
{
recieve = STR.ReadLine();
this.ChatScreentextBox.Invoke(new MethodInvoker(delegate()
{
ChatScreentextBox.AppendText("Dia: " + recieve + "\r\n");
}));

recieve = "";
}
catch(Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
}
}
15. Tambahkan kode berikut pada backgroundWorker2_DoWork
private void backgroundWorker2_DoWork(object sender, DoWorkEventArgs e)
{
if (client.Connected)
{
STW.WriteLine (TextToSend);
this.ChatScreentextBox.Invoke(new MethodInvoker(delegate ()
{
ChatScreentextBox.AppendText("Saya: " + TextToSend + "\r\n");
}));
}
else
{
MessageBox.Show("Sending Failed.!");
}
backgroundWorker2.CancelAsync();
}

16. Tambahkan kode berikut pada tombol SendButton


private void SendButton_Click(object sender, EventArgs e)
{
if (MessagetextBox.Text !="")
{
TextToSend = MessagetextBox.Text;
backgroundWorker2.RunWorkerAsync();
}
MessagetextBox.Text = "";
}

17. Jalankan Aplikasi sehingga terlihat seperti pada gambar berikut:

Gambar 5: Tampilan Aplikasi Chat Setelah Dijalankan


Ket: Isilah PORT dengan angka 123 sebagai jalur komunikasi port pada sisi Server.
Tekan tombol START untuk memulai pembukaan port sebagai jalur komunikasi pertukaran
paket data.

18. Buka Aplikasi Compile pada direktori AplikasiChat/bin/Debug/AplikasiChat.exe sehingga


terlihat tampilan sebagai berikut:

APLIKASI SERVER APLIKASI CLIENT

Gambar 6: Tampilan simulasi kedua aplikasi dari sisi server maupun client

Pada jendela Clien isikan IP Addres Server dan PORT (sesuai yang tertera pada computer
masing-masing), koneksi yang terbuka pada server yaitu port 123.
Tekan tombol CONNECT untuk memulai koneksi ke server

19. Lakukankan pengiriman pesan yang dimulai dari sisi Server atau client, Hasilnya akan terlihat
seperti gambar berikut:
Hasil Simulasi Aplikasi Chat.

** SELAMAT MENCOBA**

Anda mungkin juga menyukai