Sunday, October 30, 2022

Modul 6 : Pertemuan 7 (Socket Programming dengan Multitasking/Forking)

Posted by Amelia Rahmadhini on October 30, 2022 with No comments

 Arsitektur Client-Server

Forking


Dasar Teori

Konsep client-server merupakan dasar dari setiap transaksi yang terjadi pada setiap aplikasi jaringan.

Socket merupakan antarmuka antara application process dan transport layer. Merupakan cara

tradisional untuk menangani multiple clients. Ketika sebuah aplikasi memanggil fork (), maka dibuat

copyan dari calling program, sampai ke program counter(PC), dan child process baru dimulai dengan

copyan tsb.

Hasil kembalian dari fork() : sekali dalam program pemanggil dan waktu berikutnya dalam child

process. Nilai kembalian dalam program pemanggil adalah PID dari child process baru, sementara

dalam child process itu adalah 0.


Percobaan

Program 1

a. Program Server

Jawab: 

b. Program Client

Jawab: 

Output:

Tugas 1: Amatilah output yang dihasilkan, kemudian lakukan analisa terhadap program tersebut diatas.

Jawab: Pada bagian ini  program 1 ini terdapat penggunaan library os dan juga socket lalu juga terdapat def. Pada bagian ini dilakukan percobaan menyambungkan server ke client yang mana server menerima koneksi dari client namun hanya dapat menerima koneksi dari 1 client saja setelah itu client akan keluar dan kembali seperti awal. Pada programnya dibuatkan jika sever berhasil terkoneksi maka akan muncul pesan" Connection successful with client 1" lalu juga terdapat " Selamat, anda sudah bergabung. 


Program 2

a. Program server

Jawab:

b. Program client

Jawab:

Output

Tugas 2 : Amatilah output yang dihasilkan, kemudian lakukan analisa terhadap program tersebut diatas.

Jawab: Pada bagian program 2 ini dilakukan percobaan dimana server dapat menerima koneksi dari beberapa client yang mana pada output diatas terlihat bahwasanya server menerima konesi dari 2 client. Pada programnya digunakan import os dan juga drom socket. Kemudian saat ingin menjalankan program nya dapat dilakukan secara bersamaan dimana dapat dibuat split terminal agar terlihat bahwasanya dari beberapa client dapat terhubung ke server secara bersamaan. 


Program 3

a. Program Server

Jawab:

b. Program Client

Jawab: 

Output

Tugas 3 : Amatilah output yang dihasilkan, kemudian lakukan analisa terhadap program tersebut diatas.

Jawab: Pada bagian program 3 ini servernya juga dapat menerima koneksi dari beberapa client. Terlihat pada output diatas dimana terdapat 2 client yang mengirimkan koneksi dan data kepada server. Pada bagian outputnya akan terlihat koneksi client dengan addressnya, PID nya  lalu juga terdapat waktu pengiriman yang mana pada program nya telah di buat agar dapat mengirimakan info waktu menggunakan fungsi ctime lalu. Jika client dijalankan 2 2 nya maka akan muncul hal yang sama antar clientnya. 


Latihan 

1. Modifikasi program-program tersebut diatas, sehingga dapat mencatat/ menampilkan waktu yang dibutuhkan untuk mengirimkan data dari client

Jawab: 

Lat1_server1



Lat1_client1

Lat1_Forking-server

Lat1_ForkingClient

Lat1_tcp_forking_server

Lat1_TCPClient

2. Buatlah program calculator sederhana dengan protokol tcp dimana client mengirimkan soal (cth: 2+2), dan server membalas dengan hasil perhitungan (cth: 4), program client kemudian menampilkan hasil dari server dan siap menerima inputan soal baru. Program client akan berhenti jika menerima inputan cancel. Gunakan forking pada program server agar dapat menangani lebih dari 1 client secara bersamaan.

Jawab: 


3. Buatlah program client dan server menggunakan forking untuk permasalahan berikut: Sebuah perusahaan menggaji pegawai sales berdasarkan komisi. Seorang pegawai sales akan menerima $200/minggu ditambah 9% dari total penjualannya selama seminggu. Contoh: Andi berhasil melakukan penjualan sebesar $3000/minggu, maka total gaji yang diterima tiap minggu = $200 + 9%*$3000 = $470. Program harus menggunakan fungsi calculateSalary untuk menghitung gaji yang diterima oleh setiap pegawai. Client akan mengirimkan informasi nama pegawai, dan total penjualan selama seminggu. Kemudian server akan mengirimkan kembali total gaji yang diterima pegawai. Output disisi client nama pegawai, total penjualan dan total gaji yang diterima pegawai.

Jawab: 

0 comments:

Post a Comment