0% menganggap dokumen ini bermanfaat (0 suara)
3 tayangan10 halaman

Laporan Praktikum Group Chatting Using Python

Laporan ini membahas praktik pembuatan aplikasi group chatting menggunakan pemrograman Python dengan konsep komunikasi jaringan berbasis TCP Socket. Tujuan dari praktik ini adalah untuk memahami dasar-dasar socket, menerapkan aplikasi client-server sederhana, dan menggunakan multithreading untuk menangani banyak client. Hasil percobaan menunjukkan bahwa server dapat menerima dan mengelola banyak koneksi client secara efektif, serta berhasil melakukan broadcasting pesan antar client.

Diunggah oleh

Ferdilan Ramadhani
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
3 tayangan10 halaman

Laporan Praktikum Group Chatting Using Python

Laporan ini membahas praktik pembuatan aplikasi group chatting menggunakan pemrograman Python dengan konsep komunikasi jaringan berbasis TCP Socket. Tujuan dari praktik ini adalah untuk memahami dasar-dasar socket, menerapkan aplikasi client-server sederhana, dan menggunakan multithreading untuk menangani banyak client. Hasil percobaan menunjukkan bahwa server dapat menerima dan mengelola banyak koneksi client secara efektif, serta berhasil melakukan broadcasting pesan antar client.

Diunggah oleh

Ferdilan Ramadhani
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 10

LAPORAN PRAKTIKUM

Group Chatting Using Python Programming


Disusun untuk memenuhi salah satu tugas mata kuliah Workshop Komunikasi Multimedia
pada semester Genap 2024/2025

PEMBIMBING:
Ginanjar Suwasono Adi, S.ST., M.Sc.

Oleh :
Ferdilan Ramadhani 2331130063
Moh. Ekhsan Rhomadhoni 2331130020
M. Avryll Satrya Pratama 2331130040
Teknik Telekomunikasi 2C

PROGRAM STUDI TEKNIK TELEKOMUNIKASI


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI MALANG
MALANG

2025
1. Tujuan
• Memahami konsep dasar komunikasi jaringan berbasis TCP Socket.
• Mengimplementasikan aplikasi Client dan Server sederhana.
• Menggunakan multithreading untuk memungkinkan server menangani
banyak client.
• Menganalisis chat client dan chat server.
2. Landasan Teori
2.1 Socket

(Source: https://medium.com/hackernoon)

Socket adalah sebuah antarmuka yang memungkinkan dua entitas dalam


jaringan komputer untuk saling berkomunikasi. Secara sederhana, socket
bertindak sebagai titik akhir (endpoint) dalam proses komunikasi data antar
perangkat di jaringan, baik dalam jaringan lokal maupun internet. Setiap socket
terdiri atas kombinasi alamat IP dan nomor port, dan digunakan dalam berbagai
protokol komunikasi, seperti TCP/IP dan UDP [1].
Sebuah socket melibatkan:
- IP Address, yang merupakan identitas unik perangkat dalam jaringan.
- Port Number, jalur logis untuk membedakan berbagai layanan atau aplikasi.
- Protocol, menentukan cara komunikasi seperti TCP atau UDP.

Socket bekerja berdasarkan model client-server dimana client membukan


koneksi ke server dan server menerima koneksi dari client dan melayani
permintaan tersebut.

Konsep dasar kerja socket:


1. Server membuka socket, mengikat ke port tertentu, dan mendengarkan
koneksi.
2. Client membuat socket dan meminta koneksi ke IP dan port server.
3. Server menerima koneksi dari client dan terjadi pertukaran data.
4. Setelah komunikasi selesai, koneksi ditutup oleh salah satu pihak.
2.2 Transmission Control Protocol (TCP)
Transmission Control Protocol (TCP) adalah protokol komunikasi utama
dalam jaringan komputer berbasis IP yang menyediakan layanan pengiriman
data yang andal dan berurutan antara dua perangkat dalam jaringan. TCP
bertanggung jawab untuk memastikan data yang dikirim dari satu komputer
sampai ke tujuan dengan benar dan dalam urutan yang tepat, melalui proses
yang disebut connection-oriented communication [2].
2.3 Multithreading

(Source: geeksforgeeks.org/multithreading-python-set-1/)
Multithreading adalah kemampuan sebuah program untuk melakukan
beberapa tugas (threads) secara bersamaan dalam satu proses. Setiap thread
mewakili jalur eksekusi independen, sehingga program dapat mengelola
beberapa operasi sekaligus, tanpa harus menunggu operasi lain selesai. Di
Python, multithreading digunakan untuk meningkatkan efisiensi program,
terutama dalam tugas-tugas yang banyak melakukan operasi I/O (Input/Output)
[3].
3. Prosedur Percobaan

Untuk prosedur percobaannya yaitu :


1. Persiapkan perlatan yang digunakannya terlebih dahulu, dikarenakan disini kami
mengerjakannya berkelompok dan pada kelompok kami terdiri dari 3 anggota
kelompok maka kami menggunkan 3 Decice Laptop untuk percobaannya, sesuai
dengan gambar topologi yang ada dibawah ini
2. Kemudian setelah itu buka Software Visual Sutido Code.
3. Terlihat program dari dile python tersebut, kemudian buka halaman terminal dengan
cara klik toggle panel pada pojok kanan atas, atau kalian bisa menekan tombol (ctrl
+ j) pada keyboard untuk menampilkan menu panel dan pilih halaman terminal.
4. Setelah masuk pada halaman terminal, terdapat directory file, untuk bisa
menjalankan file chat_client dan chat_server kita perlu menambahkan file directory
pada command prompt, dengan cara ketik “cd nama folder yang ingin
ditambahkan”
5. Disini saya menambahkan folder multimedia yang didalamnya terdapat file python
chat_server dan chat_client kemudian klik enter, hasilnnya akan seperti ini :

6. Kemudian ketik “ls” untuk menampilkan apakah file dan folder yang kita
tambahkan sudah masuk pada list directory
7. Kembali pada halaman program python chat_server dan chat_client, pada line 21
chat_client dan line 34 chat_server, masukaan alamat IPv4 pada device yang
menjadi server grup chat kalian, disini saya menggunakan server alamat ip
192.168.100.15

8. Setelah itu save file tersebut dan menuju halaman terminal command prompt untuk
menjalankan program, dengan mengetik “python chat_client.py”

9. Setelah semua berhasil dilakukan, coba mengetikan sesuatu pada halaman terminal,
maka akan muncul pada halaman terminal kita.
4. Hasil Percobaan
Server

Server mendeteksi koneksi dari 6 client.

Client 1

Client 2

Client 3

Client 4

Seluruh client masing-masing berhasil mengirimkan pesan ke server dan menerima


broadcast dari server untuk semua pesan yang dikirimkan oleh client lain. Perbedaan
port seperti 53291 dan 53312 dikarenakan setiap koneksi TCP membuka port
ephemeral baru untuk membedakan koneksi.
5. Analisa
5.1.Struktur Program
1. chat_client.py
a. Inisialisasi Socket
client_socket = socket.socket(socket.AF_INET,
socket.SOCK_STREAM)
Membuat koneksi berbasis TCP/IP. AF_INET menggunakan IPv4.
SOCK_STREAM menandakan penggunaan TCP.
b. Koneksi ke Server
client_socket.connect((‘192.168.100.15', 5555))
Client membangun koneksi TCP ke IP di port 5555. Jika koneksi
berhasil, socket siap mengirim dan menerima data. Jika koneksi gagal
karena IP salah, server mati, dan port tertutup akan terjadi error.
c. Penerimaan Pesan (Multithreading)
receive_thread =
threading.Thread(target=receive_messages)
receive_thread.start()
Membuat thread terpisah untuk menjalankan fungsi
receive_messages(). Thread ditambahan agar client dapat menerima
pesan sambil tetap mengirim tanpa mengganggu.
d. Fungsi receive_messages()
Fungsi tersebut akan terus berjalan tanpa berhenti di background.
recv(1024) membaca hingga 1024 byte dari server. Jika terjadi error
seperti koneksi ke server tertutup, socket client ditutup dan loop
berhenti.
e. Sending Messages
Sending Message mengambil input dari user (input()) dan
mengirimkannya ke server (client_socket.send()).
2. chat_server.py
a. Inisialisasi Socket Server
server = socket.socket(socket.AF_INET,
socket.SOCK_STREAM)
Membuat socket TCP. TCP memastikan pesan tidak terfragmentasi,
tidak hilang, dan urut.
b. Binding dan Listening
server.bind(('192.168.107.217', 5555))
server.listen(5)
Mengikat server ke IP dan port lalu mulai mendengarkan koneksi
masuk. Server akan mendengarkan maksimal 5 koneksi yang belum
diproses (antrian).
c. Menerima dan Menyimpan Client
client_socket, client_address = server.accept()
clients.append(client_socket)
accept() membuat koneksi baru untuk setiap client yang
menghubungi server. Socket client disimpan didalam list clients agar
server bisa broadcast ke semua client yang online.
d. Handle Client (Multithreading)
client_thread = threading.Thread(target=handle_client
args=(client_socket, client_address))
client_thread.start()
Setiap client baru dilayani oleh thread sendiri. Thread digunakan agar
server tidak hang saat menunggu atau melayani satu client saja.
Multithreading memungkinkan server menangani banyak klien secara
pararel.
e. Menerima Pesan dari Client
message = client_socket.recv(1024).decode()
Server membaca pesan dari masing-masing client. Jika client
mengirimkan pesan kosong, server menganggap client telah
disconnect.
f. Broadcast ke Semua Client
broadcast(f"Received from {client_address}: {message}")
Server meneruskan pesan yang diterima ke semua client yang sedang
online. broadcast(), mengirim pesan ke semua client dalam list
clients. Jika gagal, client tersebut akan dihapus dari list.
5.2.Mekanisme Kerja
a. chat_client

- Client membuat koneksi, membuka satu thread khusus untuk menerima


pesan.
- Client bisa terus mengirim pesan tanpa terganggu proses menerima pesan.
b. chat_server

- Server menerima banyak client.


- Setiap pesan yang dikirim oleh satu client dikirimkan ke semua client lain.
- Jika satu client putus, server tetap berjalan dan melayani client lain.
6. Kesimpulan
Berdasarkan hasil praktikum, dapat disimpulkan bahwa server mampu menerima dan
menangani banyak koneksi client menggunakan multithreading. Setiap client berhasil
menghubungi server melalui port 5555, namun menggunakan port asal yang berbeda
secara otomatis, sesuai dengan prinsip penetapan ephemeral port dalam protokol TCP/IP.
Sistem broadcasting berjalan efektif, dimana setiap pesan yang dikirimkan oleh satu client
berhasil diteruskan kepada seluruh client lain yang terhubung. Hal ini menunjukkan
bahwa komunikasi jaringan berbasis socket TCP berhasil diimplementasikan dengan baik.
DAFTAR PUSTAKA
[1]. Efendi, J., 2020. SOSIALISASI JARINGAN KOMPUTER DAN INSTALASI LAN.
[2]. Satoto, K., 1997. LAPORAN AKHIR HASIL PENELITIANPENYUSUNAN
DIREKTORI INTERNETUNTUK BIDANG TEKNIK.
[3]. GeeksforGeeks. (n.d.). Multithreading in Python | Set 1. GeeksforGeeks. Retrieved
April 27, 2025, from https://www.geeksforgeeks.org/multithreading-python-set-1/

Anda mungkin juga menyukai