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: 

Sunday, October 23, 2022

Modul 5 : Pertemuan 6 (Socket Programming dengan UDP)

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

 Pemrograman Socket dengan UDP


Mekanisme yang memungkinkan terjadinya pertukaran data antar program atau proses baik dalam satu mesin maupun antar mesin. User Datagram Protocol (UDP) merupakan connectionless protocol yang cocok/ sesuai untuk aplikasi yang membutuhkan komunikasi yang efisien yang tidak memperhatikan packet loss. Untuk membuat sebuah aplikasi client-server dengan menggunakan protokol UDP terdapat beberapa langkah dasar yang harus dilakukan, yaitu sebagai berikut.

Langkah – langkah dasar di client :

a. Membuka koneksi client ke server, yang di dalamnya adalah :

- membuat socket dengan perintah socket()

- melakukan pengalamatan ke server.

- menghubungi server dengan connect()

b. Melakukan komunikasi (mengirim dan menerima data), dengan menggunakan perintah sendto() dan recvfrom()

c. Menutup hubungan dengan perintah close();

Langkah – langkah dasar di server :

a) Membuat socket dengan perintah socket()

b) Mengikatkan socket kepada sebuah alamat network dengan perintah bind()

c) Melakukan komunikasi (mengirim dan menerima data), dengan menggunakan perintah sendto() dan recvfrom()


Tugas Pendahuluan

1) Jelaskan cara kerja dari protocol UDP

Jawab: User Datagram Protocol(UDP) merupakan sebuah perangkat pengaturan yang mengirimkan data-data pada masing-masing komputer dalam bertukar informasi. Hal ini dapat menjadi lapisan dari transport TCP/IP. Dengan demikian akan tercipta sebuah komunikasi antar jaringan. Terdapat beberapa tahapan cara kerja UDP yang dilakukan, setiap tahapan kerja saling sinambung yaitu: 

- Paket berisi client port dan port sumber berbentuk file text dikirim di dalam UDP Header

- Paket isi port client dan port sumber audio dikirim ke server dalam UDP Header

- Tujuan UDP membaca nomor port tujuan dan proses data

- Paket asli mempunyai port tujuan, sehingga server bisa mengirimkan kembali data ke FTFP Client

- Point 3 dan 4 berulang kembali ketika file audio dikirimkan client Ketika 

- Ketika aplikasi ingin mengirim data, UDP tidak akan membuffer ataupun memfragmen tiap data yang masuk

- Karena data tidak mengalami prossesing data yang berbelit terutama karena tidak memfragmen data, maka jika data lebih besar daripada MTU, lapisan IP yang harus memfragmennya.


2) Jelaskan algoritma dasar socket programming dari sisi client dan server

Jawab: 

1. Client membaca inputan dari keyboard, kemudian mengirimkan hasilnya ke server melalui socket-nya.

2. Server membaca data yang dikirim oleh client di connection socket

3. Server mengubah data menjadi huruf besar

5. Server mengirimkan data yang telah diubah menuju client melalui connection socket-nya.

5. Client membaca data yang dikirim oleh server dari client socket-nya. Kemudian menampilkan data tersebut di monitor


PERCOBAAN

1. Program1

a. Program server

b. Program client

Output:

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

tersebut diatas.

Jawab: Pada bagian ini terdapat bagian client dan juga server. Pada bagian server langkah pertama yang dilakukan adalah import socket yang mana pada bagian ini juga dibuatkan instance socket yang terdapat 2 parameter. Pada bagian sock.bind yang mana ini berguna untuk menghubungkan alamat ip dengan nomor port ke socketnya. Pada bagian ini juga terdapat While True yang didalmnya terdapat data, addr yang mana nanti juga terdapat print data dan juga "UDP server sending data". Pada bagian clientnya dilakukan juga import scoket dan juga terdapat 2 parameter. Pada bagian ini terdapat MAXSIZE = 4096 dan PORT nya 12345. Pada bagian programnya juga terdapat pengiriman pesan "Hello UDP server" yang nantinya akan dikirim ke socket. 

2. Program2

a. Program server

b. Program client

Output:

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

tersebut diatas.

Jawab: Pada bagian servernya terdapat argparse yang mana dilakukan terlebih dahulu import argparse dan socket, lalu terdapat MAX_BYTES = 65535 dan juga terdapat def server yang didalamnya while. Pada bagian ini terdapat SOCK_DGRAM yang kemudian kita sambungkan pada port yang telah kita buat dan nantinya akan ditampilkan pada server dan server akan menampilkan informasi mengenai waktu yang dikirimkan oleh client. Pada bagian client hampir sama dengan socket yang manan nantinya client akan mengirimkan data kepada server dan juga nantinya client akan mendapatkan dan menampilkan balasan dari server. 


Latihan

1. Modifikasi udp_server2.py dan udp_client2.py menjadi server yang mengirimkan

informasi waktu ke client

Jawab: 




2. Buatlah program client dan server dimana client dapat menerima pertanyaan dari

server dan mengirimkan kembali jawaban dari user ke server (seperti latihan tcp).

Port ditentukan melalui argument command line.

Jawab: 





3. Buatlah program client dan server dimana server menyediakan layanan

perhitungan luas bangun datar (persegi, persegi panjang, segitiga), client dapat

memilih jenis bangun datar dan mengirimkan informasi ukuran (sisi untuk persegi,

panjang dan luas untuk persegi panjang dan segitiga) untuk perhitungan, kemudian

menampilkan hasil dari server.

Jawab: 





4. Buatlah program dimana client mengirimkan username dan password ke server,

kemudian di sisi server dilakukan apakah username dan password yang dikirimkan

oleh client valid atau tidak. Jika valid maka server akan merespon dengan

mengirimkan konfirmasi bahwa login berhasil dengan menggunakan protocol UDP

Jawab: 








Sunday, October 16, 2022

Modul 4 : Pertemuan 5 (Socket Programming TCP)

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

 

Pemrograman Socket dengan TCP


Konsep client-server merupakan dasar dari setiap transaksi yang terjadi pada setiap aplikasi jaringan. Server berfungsi sebagai pengatur sumber daya yang ada. Server menyediakan layanan untuk kebutuhan client dengan memanfaatkan sumber daya yang ada. Proses client-server dapat dijalankan pada sebuah komputer tunggal atau dapat juga satu komputer berfungsi sebagai server dan satu atau beberapa komputer berfungsi sebagai client.
Socket pertama kali diperkenalkan oleh unix BSD, sehingga sering disebut sebagai socket BSD. Socket merupakan antarmuka antara application process dan transport layer. Socket merupakan mekanisme yang memungkinkan terjadinya pertukaran data antar program atau proses baik dalam satu mesin maupun antar mesin.


1. Program 1
- Program

- output

2. Program 2
- Program

- Output

Tugas 1
1. Analisa cara kerja program diatas
Jawab: Pada bagian program 1 terdapat import socket dan juga import sys yang mana pada bagian program nya digunakan parameter dan saat dilakukan run atau berhasil membuat socket maka akan muncul tulisan "Socket Created" namun jika gagal dalam membuat socketnya maka akan terdapat tulisan "Failed to create a socket"disertai alasannya lalu setelah itu terdapat sys.exit(). Kemudian akan dilakuakan pembuatan suatu inputan yang mana pada bagian ini terdapat target_host yang mana target host tersebut akan disambungkan dan juga terdapat target portnya. Lalu pada programnya juga terdapat try yang mana jika socket terkonek maka akan muncul "Socket Connected to" namun jika error maka akan keluaran "Failed connected to". Pada saat dilakukan run di cobakan untuk menyambungkan kke targetnya yaitu google dengan port 80, saat disambungkan ke google maka socket dapat connect ke google.

Pada program 2
Pada program 2 ini akan dilakukan pengecekan terhadap html dari www.linux.org yang mana pada programnya terdapat import socket, host, port,bufsiz dan juga ADDR lalu pada bagian ini juga terdapat while, if dan break. Pada outputnya muncul htnl dari linux yang sebelumnya telah kita masukkan host dan port nya pada programnya

2. Jelaskan perbedaan dari 2 program tersebut
Jawab: Pada program 1 kita akan menyambungkan socket yang mana jika tersambung akan ditampilkan pesan bahwasanya socket tersebut tersambung sedangkan program nomor 2 kita akan melhat html dari www.linux.org

3. Program 3
- Program

- Output


- Program

- Output

Tugas 2
1. Analisa cara kerja 2 program tersebut.
Jawab: Pada bagian server akan memberikan respon terhadap apa yang diinputkan oleh client yang mana nantinya akan muncul. Pada outputnya nanti akan terdapat "Server waiting for connection" yang mana ia menunggu koneksi dari client. Sedangkan pada bagian client kita akan melakukakan inputan terhadap histname, port dan juga nanti akan terdapat pertanyaan apakah kita akan mengirim data lebih ke port lalu klik y, selanjutnya kita akan inputkan payload yang disini kita bebas mengisikan apa saja yang nantinya akan muncul pada bagian server. Server juga mengirimkan tanggal dan waktu kepada bagiam client.

Latihan

1. Buatlah program client dan server dimana client dapat menerima pertanyaan dari server dan mengirimkan kembali jawaban dari user ke server
Jawab:






2. Buatlah program client dan server dimana server menyediakan layanan perhitungan luas bangun datar (persegi, persegi panjang, segitiga), client dapat memilih jenis bangun datar dan mengirimkan informasi ukuran (sisi untuk persegi, panjang dan luas untuk persegi panjang dan segitiga) untuk perhitungan, kemudian menampilkan hasil dari server.
Jawab:




3. Tambahkan error handling pada program tcp_server3.py, tcp_client3.py, latihan1 dan latihan2
Jawab:
a. tcp_server3
b. tcp_client3

c. Latihan1




d. Latihan2