Modul Jaringan Komputer

46
MODUL PRAKTIKUM JARINGAN KOMPUTER Tim Penyusun: Dosen Teknik Informatika JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS PALANGKARAYA 2015

description

dew

Transcript of Modul Jaringan Komputer

MODUL PRAKTIKUM JARINGAN KOMPUTER Tim Penyusun: Dosen Teknik Informatika JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS PALANGKARAYA 2015

TATA TERTIB DAN TATA LAKSANA PRAKTIKUM TATA TERTIB 1. Praktikan WAJIB mengikuti semua modul praktikum. 2. Praktikan hanya boleh tidak mengikuti praktikum 1 (satu) kali DENGAN ATAU TANPA SURAT IZIN dari jumlah pertemuan praktikum. 3. Praktikan yang berhalangan mengikuti praktikum, diwajibkan melaporkan ke dosen praktikum untuk menentukan jadwal praktikum sebagai pengganti jadwal yang berhalangan. 4. Praktikan yang lebih dari 1 (satu) kali tidak mengikuti praktikum, tidak diperbolehkan untuk mengikuti praktikum untuk modul-modul praktikum selanjutnya dan NILAI AKHIR PRAKTIKUM adalah NOL. 5. Praktikan diberikan toleransi waktu keterlambatan selama 15 menit dan tidak ada penambahan waktu praktikum. 6. Tidak diperbolehkan saling bekerja sama. 7. Dilarang menggunakan kaos oblong dan sendal selama praktikum. Bagi yang melanggar poin ini, tidak diperbolehkan mengikuti praktikum. TATA LAKSANA : 1. Sebelum praktikum di mulai, setiap praktikum wajib mengumpulkan LAPORAN HASIL PRAKTIKUM modul sebelumnya. 2. Jika praktikan tidak melaksanakan Tata Laksana poin 1, maka tidak diperbolehkan mengikuti praktikum. 3. Setiap modul praktikum, akan dilakukan Pre-Test. 4. Format laporan meliputi : Laporan Hasil Praktikum : Halaman Depan BAB I. Tujuan dan Landasan Teori BAB II. Langkah Kerja BAB III. Pembahasan BAB IV. Kesimpulan BAB V. Daftar Pustaka BAB VI. Lampiran (disertai laporan rencana praktikum modul sebelumnya) 5. Format Penulisan Spasi : 1,5

Font : Times New Roman

Font Size : 12

Margins : Top 3, Left 4, Right 3, Bottom 3

Kertas : A4

6. Penilaian Laporan Hasil Praktikum BAB I. Tujuan dan Landasan Teori Nilai 20

BAB II. Langkah Kerja Nilai 10

BAB III. Pembahasan Nilai 40

BAB IV. Kesimpulan Nilai 15

BAB V. Daftar Pustaka Nilai 5

BAB VI. Lampiran Nilai 10

Total 100

7. Praktikan yang mengabaikan format penulisan poin 5, akan dikurangi 5 setiap kesalahan. 8. Penilaian Akhir Praktikum : Pre-Test : 15 % Praktikum : 30 % Laporan Praktikum : 20 % Responsi : 35 %

Total 100 % 9. Penilaian Akhir Mata Kuliah Algoritma dan Pemrograman II : Tugas : 20 % UTS : 30 % 50 % Praktikum : 50 % UAS : 50 % Nilai Akhir : 100 % 2 Modul I Sistem Perkabelan UTP

Tujuan : Mahasiswa mampu memahami sistem perkabelan untuk membangun LAN

Indikator : 1. Menggunakan crimping tool dan cable tester dengan benar

2. Membuat perkabelan mode straight 3. Membuat perkabelan mode cross A. Teori Pendukung 1. Kabel UTP Adalah kabel yang terdiri dari 4 pasang dan dipilin sedemikian rupa. Memiliki 4 warna yaitu coklat, orange, hijau dan biru. Adapun pasangannya ada yang berwarna putih atau campuran, misalnya kabel coklat pasangannya coklat putih dan sebagainya. Gambar 1.1 Kabel UTP 2. Konektor RJ 45 Adalah konektor yang terbuat dari mika, atau plastik semi kaca yang keras dan di dalamnya terdapat 8 pin. Konektor ini digunakan untuk mengubungkan kabel dengan kartu jaringan.

3 Gambar 1.2 Konektor RJ 45 3. Perkabelan Mode Straight Gambar 1.3 Diagram kabel Straight 4. Perkabelan Mode Cross Gambar 1.4 Diagram kabel Cross B. Alat dan Bahan - Kabel UTP Konektor RJ45 Crimping Tool LAN Tester Gunting C. Langkah-langkah Praktikum : a. Mengenalkan penampang fisik kabel UTP b. Mengenalkan penggunaan crimping tool c. Mengenalkan penggunaan LAN Tester d. Mempraktekkan membuat kabel straight 1. Untuk kabel straight, urutan warna untuk kedua ujingnya sama (lihat gambar 2.3) 2. Lepas kulit kedua ujung kabel UTP dengan gunting secukupnya, sisakan sekitar 1 2 cm 3. Lalu masukkan kabel UTP (ujung 1) ke dalam konektor RJ45 dengan keadaan konektor menghadap ke atas dan pengait konektor menghadap ke bawah dan posisi kabel warna 1 (pin 1) berada di sebelah kiri, kemudian atur urutan warna kabel seperti pada gambar 2.3 4. Kemudian kencangkan jepitan konektor pada kabel menggunakan crimping tool hingga mengeluarkan bunyi klik 5. Lakulan hal yang sama seperti pada no. 3 untuk ujung kabel UTP yang satunya 6. Kemudian kencangkan jepitan konektor pada kabel menggunakan crimping tool hingga mengeluarkan bunyi klik 7. Terkahir tes dengan LAN Tester dan pastikan lampu indikator menyala semua. Urutan perkabelan benar bila urutan nyala lampu indikator juga sesuai dengan urutan gambar di atas. e. Mempraktekkan membuat kabel cross 1. Untuk kabel cross, pin 1 dan pin 2 di cross-kan dengan pin 3 dan pin 6 (lihat gambar 2.4) 2. Lepas kulit kedua ujung kabel UTP dengan gunting secukupnya, sisakan sekitar 1 2 cm 3. Lalu masukkan kabel UTP (ujung 1) ke dalam konektor RJ45 dengan keadaan konektor menghadap ke atas dan pengait konektor menghadap ke bawah dan posisi kabel warna 1 (pin 1) berada di sebelah kiri, kemudian atur urutan warna kabel seperti pada gambar 2.3 4. Kemudian kencangkan jepitan konektor pada kabel menggunakan crimping tool hingga mengeluarkan bunyi klik 5. Lakulan hal yang sama seperti pada no. 3 untuk ujung kabel UTP yang satunya. Tetapi untuk pin 1 dan pin 2 di cross-kan dengan pin 3 dan pin 6 (seperti terlihat pada gambar 2. 4) 6. Kemudian kencangkan jepitan konektor pada kabel menggunakan crimping tool hingga mengeluarkan bunyi klik 7. Terakhir tes dengan LAN Tester dan pastikan lampu indikator menyala semua. Urutan perkabelan benar bila urutan nyala lampu indikator juga sesuai dengan urutan gambar di atas.

Modul II Pengalamatan IP

Tujuan : Mahasiswa mampu memahami IP Adressing

Indikator : 1. Memberi alamat IP sebuah komputer

2. Menguji koneksi jaringan 3. Mengidentifikasi Class ID, Net Id dan Host ID A. Teori Pendukung IP (Internet Protocol) Adressing adalah metode pengalamatan komputer atau host dalam jaringan komputer dengan menggunakan TCP/IP. Alamat komputer dalam jaringan harus bersifat uniquely dan universaly. Harus unik karena dalam sebuah jaringan tidak boleh ada alamat host yang sama. Bersifat universal supaya dapat dimengerti secara umum. IP tersusun atas 32 bit, jadi ada 232 kemungkinan alamat. Notasi pengalamatan berupa notasi biner, yang terdiri dari himpunan 8 bit biner. Contohnya 11000000.10101000.00100010.1100100. Untuk mempermudah pengalamatan dibuat dalam bentuk desimal bertitik, terdiri dari 4 blok, tiap blok mempunyai range 0-255. contohnya 192.168.34.110. IP dibagi dalam kelas-kelasu untuk memudahkan pengelompokan. Kelas dalam ip adressing dibagi menjadi 5 kelas. Kelas A Untuk Backbone Kelas B Untuk ISP ip public Kelas C Untuk Internet Kelas D Untuk broadcasting (Radio / Tv Intrenet) Kelas E Untuk penelitian Pembagian Kelas berdasar pada awal bit pertama, yaitu Kelas A : 0xxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx Kelas B : 10xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx Kelas C : 110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx Kelas D : 1110xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx Kelas E : 11110xxx.xxxxxxxx.xxxxxxxx.xxxxxxxx Network Address. Alamat jaringan mengidentifikasi jaringan untuk pemberhentian dalam internet. Jika diketahui alamat host dalam sebuah jaringan, maka dapat diketahui kelas, blok range alamat jaringan dan alamat jaringan tersebut. Mask Digunakan untuk mengetahui bagian awal alamat dalam blok, atau alamat jaringan. Caranya dengan operasi binner. Default mask untuk kelas A, B dan C adalah sebagai berikut: 11111111.00000000.00000000.00000000 255.0.0.0

11111111.11111111.00000000.00000000 255.255.0.0

11111111.11111111.11111111.00000000 255.255.255.0

Contoh: Alamat 192.168.34.100 binernya adalah 11000000.10101000.00100010.1100100. Dari bit awal blok pertama menunjukkan kelas C. Karena masuk kelas C maka masknya adalah 11111111.11111111.11111111.00000000 maka alamat jaringannya dapat diketahui dengan operasi AND: 11000000.10101000.00100010.01100100 192.168.34.100 IP Address

11111111.11111111.11111111.00000000 255.255.255.0 Net Mask

11000000.10101000.00100010.00000000 192.168.34.0 NetID

B. Alat dan bahan Komputer Kabel LAN model Cross C. Langkah-langkah Praktikum a. Koneksikan 2 buah komputer dengan kabel cross yang telah anda buat pada praktikum sebelumnya b. Bila saat dihubungkan terdengar bunyi-klik-berarti kabel telah terpasang dengan benar pada port Ethernet atau RJ-45. Maka pada system tray (dekat jam) muncul notifikasi bahwa komputer telah terhubung ke jaringan. Gambar 2.1 Notifikasi ketika komputer telah terhubung c. Mengenalkan cara pemberian IP address pada host 1) Pastikan firewall dimatikan (Control Panel mode klasik Windows Firewall Turn off) 2) Cek IP dan koneksi sebelumnya (Start CMD ketik ipconfig /all) 3) Uji koneksi dengan ping IP address yang ditemukan. d. Menentukan Klas dan no IP address yang akan dipakai, kemudian diuji konektifitas antar jaringan 1) Anggap 1 meja (2 komputer) adalah satu jaringan. Jika 1 meja hanya 1 orang, maka digabung dengan meja sebelahnya atau depannya, sehingga terbentuk 1 jaringan 2) Menentukan IP address dan Network adress untuk kelas A. Diskusikan nomor IP yang dipilih dengan antar anggota dalam satu jaringan. Uji dengan ping alamat yang dituju, hasilnya di catat dalam lembar kerja. 3) Menentukan IP address dan Network adress untuk kelas B. Diskusikan nomor IP yang dipilih dengan antar anggota dalam satu jaringan. Uji dengan ping alamat yang dituju, hasilnya di catat dalam lembar kerja. 4) Menentukan IP address dan Network adress untuk kelas C. Diskusikan nomor IP yang dipilih dengan antar anggota dalam satu jaringan. Uji dengan ping alamat yang dituju, hasilnya di catat dalam lembar kerja. e. Setting konfigurasi TCP/IP Buka Control Panel Network Conennections Klik kanan pada LAN yang dimiliki oleh computer tersebut, pilih properties Kemudian klik dua kali pada Internet Protokol (TCP/IP) - Isikan sesuai dengan gambar di bawah Gambar 2.2 Setting Konfigurasi TCP/IP f. Selanjutnya adalah mencoba koneksi satu sama lain dengan cara memping. Ping adalah sebuah utilitas yang digunakan untuk memeriksa konektivitas antar jaringan melalui sebuah protokol Transmission Control Protocol/Internet Protocol (TCP/IP) dengan cara mengirim sebuah paket Internet Control Message Protocol (ICMP) kepada alamat IP yang hendak diuji coba konektivitasnya. Buka Command Prompt dengan cara klik Start > Run > ketik cmd > OK Gambar 2.3 Membuka command prompt Ketik Ping kemudian enter. Gambar 2.4 Hasil ping dari komputer 1 ke komputer 2 Lembar Kerja IP address bebas, ditentukan atas dasar diskusi kelompok yang telah ditentukan sebelumnya. Selanjutnya diuji dengan perintah ping ke alamat yang dituju. Pengamatan uji IP adressing ini dengan dilakukan dengan ketentuan : IP address : Blok 1 Blok 2 Blok 3 Blok 4

Pengamatan 1 : hanya blok ke 4 yang berbeda Pengamatan 2 : blok 3 dan 4 berbeda Pengamatan 3 : blok 2, 3, dan 4 berbeda Hasil ping yang diperoleh adalah replay atau RTO Hasil pengamatan untuk kelas A Alamat jaringannya adalah : Pengamatan IP address sumber IP adress tujuan Hasil ping

1

2

3

RTO terjadi pada pengamatan ke . Alasannya adalah .. Hasil pengamatan untuk kelas B Alamat jaringannya adalah : Pengamatan IP address sumber IP adress tujuan Hasil ping

1

2

3

RTO terjadi pada pengamatan ke . Alasannya adalah .. Hasil pengamatan untuk kelas C Alamat jaringannya adalah : Pengamatan IP address sumber IP adress tujuan Hasil ping

1

2

3

RTO terjadi pada pengamatan ke . Alasannya adalah .. Modul III LAN dan Aplikasinya

Tujuan : Mahasiswa mampu memahami LAN dan Aplikasi LAN

Indikator : 1. Membuat Sharing File dan Folder

2. Melakukan Remote Desktop A. Teori Pendukung LAN (Local Area Network) adalah suatu jaringan komputer yang terdiri dari 2 atau lebih komputer yang saling berkomunikasi. Setiap host dalam komputer diberi alamat IP yang uniq dan universal. Bentuk (Topologi) LAN ada beberapa bentuk, yaitu BUS, Star, Ring, Mesh, Extended Star dan Hybrid. Gambar 3.1 Topologi BUS Gambar 3.2 Topologi Star Jenis hubungan antar host dalam LAN ada dua, yaitu client-server dan peer to peer. Jenis hubungan client-server, host sebagai client hanya selalu meminta layanan kepada server. Sedang host sebagai server hanya selalu memberi layanan kepada client. Jenis peer to peer host dapat berfungsi sebagai client maupun server. Gambar 3.3 Peer to Peer dan Client Server

Aplikasi komunikasi dalam LAN yaitu Sharing sumber daya komputer. Sumber daya komputer dapat berupa file dalam folder, printer maupun koneksi internet. Sharing sumber daya komputer dapat dilakukan dalam satu atau beberapa homegroup. Fasilitas yang lain yaitu Remote Desktop. Dengan melakukan remote desktop, pengguna dapat meremote atau mengendalikan komputer dari komputer yang lain yang masuk dalam LAN. B. Alat dan bahan Komputer Kabel LAN C. Langkah-langkah Praktikum a. Mulai sharing file atau folder Masuk ke explore untuk memilih file atau folder yang akan di sharing Kemudian klik kanan pada folder tersebut pilih Sharing and Security Muncul kotak dialog Network sharing and security Centang pada pilihan Share this folder on the network. Gambar 3.4 Kotak dialog Network sharing and security Klik OK Setelah setting sharing pada folder atau file yang dipilih selesai. Maka komputer 2 dapat mengakses file/folder yang telah di sharing pada computer 1 dengan cara buka Windows Explorer Ketikan IP Address tujuan pada address bar Enter. Maka akan muncul file/folder yang telah disharing oleh computer 1 b. Memulai Remote Desktop Control panel system klik pada tab remote beri tanda centang pada perintah Allow uses to connect remotely to this computer kemudian pilih tombol Apply OK Untuk lebih memperjelas langkah di atas, dapat dilihat pada gambar Gambar 3.5 Kotak dialog Setting remote desktop Setelah remote desktop selesai di setting, langkah selanjutnya yang perlu dilakukan adalah membuat user account pada komputer yang akan di remote desktop, yang mana user account tersebut harus mempunyai password. Namun apabila pada komputer yang akan di-remote desktop tersebut telah memiliki sebuah user acount, maka hanya tinggal membuat password untuk user account tersebut dengan cara : Control panel User Accounts klik pada user administrator kemudian pilih Create a password isikan password yang diinginkan pilih tombol create password. Langkah-langkah ini dilakukan pada komputer yang akan melakukan remote desktop : Klik start All programs Accessories pilih menu Communications Remote Dekstop Connection Isikan IP address dari komputer yang akan di-remote desktop Connect. Apabila koneksi untuk remote desktop berhasil, maka pada layar komputer akan terdapat form untuk memasukkan password dari komputer yang telah di remote dekstop. Saat remote dekstop telah berhasil dilakukan, pengguna komputer dapat melakukan aktifitas apapun. MODUL IV PEMROGRAMAN SOCKET USER DATAGRAM PROTOCOL I. Tujuan : 1. Mahasiswa dapat memahami cara kerja protokol UDP 2. Mahasiswa dapat membuat aplikasi client server II. Dasar Teori 2.1 Pengertian UDP adalah suatu protokol pengiriman data yang berbasis Internet Protocol (IP) dan bersifat connection less oriented. Hal ini berarti bahwa suatu paket yang dikirim melalui jaringan hingga sampai ke komputer lain tanpa membuat suatu koneksi. UDP tidak pernah digunakan untuk mengirim data penting seperti halaman web, informasi database dan sebagainya. UDP biasanya digunakan untuk streaming audio dan video karena elebihan UDP yaitu menawarkan kecepatan transfer. UDP dapat lebih cepat dari TCP karena pada protokol UDP tidak ada bentuk kontrol aliran dan koreksi kesalahah. Gambar 4.1 UDP pada OSI Layer Model komunikasi data dengan client server artinya pada saat pengiriman data, salah satu komputer ada yang bersifat client dan yang satu akan bersifat sebagai server. Gambar 4.2 Client Server Untuk pengirimn datanya, pada masing-masing komputer (client server) akan menggunakan port dengan pendefinisian terlebih dahulu. Kemudian dari client akan mengirimkan data dari port pada Pcnya ke arah port pada PC servernya. Apabila port tersebut sudah digunakan oleh aplikasi lainnya maka akan terjadi error apabila aplikasi yang kita jalankan menggunakan port yang sama. Jumlah port yang ada 65535 digunakan sesuai dengan aplikasi yang sudah distandarkan. Gambar 4.3 Pengiriman data melalui port Alur penggunaan socket programming untuk UDP seperti pada gambar 5.4 Gambar 4.4 Alur pemrograman socket pada UDP III. Alat dan Bahan 1. PC (Linux OS) 2. GCC 3. Cross UTP Cable 4. Hub /Switch (Optional) IV. Langkah Percobaan 1. Sebelum PC menyala, Sambungkan PC ke jaringan, apabila dihubungkan dengan switch/hub gunakan kabel UTP straight apabila dengan PC langsung gunakan kabel crossover 2. Nyalakan PC hingga proses booting sempurna. 3. Jalankan perintah ifconfig eth0, kemudian catat IP addressnya. contoh : highway:~# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:13:D4:CC:4E:2A inet addr:192.168.0.167 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::213:d4ff:fecc:4e2a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5630764 errors:0 dropped:0 overruns:0 frame:0 TX packets:2730184 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2746138798 (2.5 GiB) TX bytes:404795862 (386.0 MiB) Base address:0xdc00 Memory:febc0000febe0000 Tips untuk asisten : Apabila PC belum memiliki IP, asisten diharapkan memberikan IP dengan perintah: # ifconfig eth0 192.168.0.* Dimana * digantikan dengan angka 1 254, dengan syarat tidak ada IP yang sama antar PC 4. Buat direktori dengan nama kelas group : A1 $ mkdir A1 (tanda $ tidak perlu ikut di ketik) 5. Masuk ke direktori tersebut $ cd A1 6. Untuk memulai UDP Socket Programming di linux, di sini kita menggunakan program VIM. Ketikkan source program listener.c atau talker.c (lihat lampiran) dengan perintah : $ vim listerner.c atau $ vim talker.c *Tips untuk asisten : praktikum dibagi menjadi beberapa kelompok dan ditunjuk supaya ada yang memrogram listener dan ada yang memrogram talker 7. Tekan tombol Ins/Insert pada keyboard untuk memulai pengetikan hingga terlihat indikasi INSERT di bagian layar kiri 8. Setelah semua source di ketik, simpan source tersebut dengan menekan tombol Esc, hingga indikator INSERT hilang, dilanjutkan dengan :wq (tanpa tanda tiket). 9. Lakukan kompilasi program dengan cara : Untuk program listener.c $ sudo gcc o listener listener.c Untuk program talker.c $ sudo gcc o talker talker.c 10. Jalankan UDP Socket Programming dengan perintah, sebagai berikut : Untuk listener : $./listener Untuk talker : $./talker 192.168.0.2 percobaan pesan Dimana 192.168.0.2 adalah IP dari komputer yang melakukan pemrograman listener. Pesan yang dikirim adalah percobaan pesan. Pada komputer yang menjalankan program listener akan tampil data text tersebut. *Tips : Untuk mematikan program lakukan dengan menekan Ctrl+C. Lakukan pengiriman text tersebut dengan kondisi sebagai berikut, kemudian amati pada komputer tersebut ! Program listener dijalankan di komputer A, pada komputer B kirim pesan dengan program talker ke komputer A Matikan program listener pada komputer A, pada komputer B kirim pesan dengan program talker ke komputer A LEMBAR ANALISA Praktikum Jaringan Komputer 4 Tanggal praktikum : Nama : NIM : Kelas : IP Listener : IP Talker: No Listener Talker Pesan Error

1. Dijalankan Dijalankan

2. Dimatikan Dimatikan

Lampiran : /* ** Praktikum Jaringan Komputer ** talker.c a datagram "client" demo */ #include #include #include #include #include #include #include #include #include #include #define MYPORT 4950 // the port users will be connecting to int main(int argc, char *argv[]) { int sockfd; struct sockaddr_in their_addr; // connector's address information struct hostent *he; int numbytes; if (argc != 3) { fprintf(stderr,"usage: talker hostname message\n"); exit(1); } if ((he=gethostbyname(argv[1])) == NULL) { // get the host info perror("gethostbyname"); exit(1); } if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == 1){ perror("socket"); exit(1); } their_addr.sin_family = AF_INET; // host byte order their_addr.sin_port = htons(MYPORT); // short, network byte order their_addr.sin_addr = *((struct in_addr *)he->h_addr); memset(&(their_addr.sin_zero), '\0', 8); // zero the rest of the struct if ((numbytes=sendto(sockfd, argv[2],strlen(argv[2]),0,(struct sockaddr *)&their_addr, sizeof(struct sockaddr))) == 1) { perror("sendto"); exit(1); } printf("sent %d bytes to %s\n", numbytes, inet_ntoa(their_addr.sin_addr)); 32 close(sockfd); return 0; } /* ** Praktikum Jaringan Komputer ** listener.c a datagram sockets "server" demo */ #include #include #include #include #include #include #include #include #include #define MYPORT 4950 // the port users will be connecting to #define MAXBUFLEN 100 int main(void) { int sockfd; struct sockaddr_in my_addr; // my address information struct sockaddr_in their_addr; // connector's address information int addr_len, numbytes; char buf[MAXBUFLEN]; if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == 1) { perror("socket"); exit(1); } my_addr.sin_family = AF_INET; // host byte order my_addr.sin_port = htons(MYPORT); // short, network byte order my_addr.sin_addr.s_addr = INADDR_ANY; // automatically fill with my IP memset(&(my_addr.sin_zero), '\0', 8); // zero the rest of the struct if (bind(sockfd, (struct sockaddr *)&my_addr,sizeof(struct sockaddr)) == 1) { perror("bind"); exit(1); } addr_len = sizeof(struct sockaddr); if ((numbytes=recvfrom(sockfd, buf, MAXBUFLEN1,0,(struct sockaddr *)&their_addr, &addr_len)) == 1) { perror("recvfrom"); exit(1); } printf("got packet from %s\n",inet_ntoa(their_addr.sin_addr)); 33 printf("packet is %d bytes long\n",numbytes); buf[numbytes] = '\0'; printf("packet contains \"%s\"\n",buf); close(sockfd); return 0; }

MODUL V PEMROGRAMAN SOCKET TRANSPORT CONTROL PROTOCOL (TCP) V. Tujuan : 3. Mahasiswa dapat memahami cara kerja protokol TCP 4. Mahasiswa dapat membuat aplikasi client server VI. Dasar Teori 6.1 Pengertian TCP adalah suatu protokol pengiriman data yang berbasis Internet Protocol (IP) dan bersifat connection oriented. Kelebihan TCP yaitu adanya koreksi kesalahan. Dengan menggunakan protokol TCP, maka proses pengiriman akan terjamin. Hal ini disebabkan adanya bagian untuk sebuah metode yang disebut flow control. Flow control menentukan kapan data harus dikirim kembali dan kapan menghentikan aliran data paket sebelumnya, sampai data tersebut berhasil ditransfer. Pada OSI layer, TCP berada pada layer transport yang fungsinya mengatur pengiriman suatu aliran data dari client ke server. Gambar 5.1 UDP dan TCP pada OSI Layer Model komunikasi data dengan client server artinya pada saat pengiriman data, salah satu komputer ada yang bersifat client dan yang satu akan bersifat sebagai server. Gambar 5.2 Client Server Untuk pengirimn datanya, pada masing-masing komputer (client server) akan menggunakan port dengan pendefinisian terlebih dahulu. Kemudian dari client akan mengirimkan data dari port pada Pcnya ke arah port pada PC servernya. Apabila port tersebut sudah digunakan oleh aplikasi lainnya maka akan terjadi error apabila aplikasi yang kita jalankan menggunakan port yang sama. Jumlah port yang ada 65535 digunakan sesuai dengan aplikasi yang sudah distandarkan. Gambar 5.3 Pengiriman data melalui port Alur penggunaan socket programming untuk TCP seperti pada gambar 5.5 Gambar 5.4 Alur pemrograman socket pada TCP 6.2 Perbedaan antara TCP dan UDP Setelah melihat penjelasan di atas, sekarang kita dapat menyimpulkan mengenai perbedaan antara TCP dengan UDP. TCP Beroperasi berdasarkan konsep koneksi Jaminan pengiriman-pengiriman data akan reliable dan teratur Secara otomatis memecah data ke dalam paket-paket Tidak akan mengirimkan data terlalu cepat sehingga memberikan jaminan koneksi internet dapat menanganinya Mudah untuk digunakan, transfer paket data seperti menulis dan membaca file UDP Tidak berdasarkan konsep koneksi, jadi harus membuat kode sendiri Tidak ada jaminan bahwa pengiriman data dan penerimaan data akan reliable dan teratur Pemecahan ke dalam paket-paket dan proses pengirimannya dilakukan secara manual Harus membuat kepastian mengenai proses transfer data agar tidak terlalu cepat sehingga internet masih dapat menanganinya Jika paket data ada yang hilang, perlu dipikirkan di mana letak kesalahan yang terjadi dan mengirim ulang data yang diperlukan. VII. Alat dan Bahan 5. PC (Linux OS) 6. GCC 7. Cross UTP Cable 8. Hub/Switch (Optional) VIII. Langkah Percobaan 1. Sebelum PC menyala, Sambungkan PC ke jaringan, apabila dihubungkan dengan switch/hub gunakan kabel UTP straight apabila dengan PC langsung gunakan kabel crossover 2. Nyalakan PC hingga proses booting sempurna. 3. Jalankan perintah ifconfig eth0, kemudian catat IP addressnya. 4. Buat direktori dengan nama kelas group : A1 $ mkdir A1 (tanda $ tidak perlu ikut di ketik) 5. Masuk ke direktori tersebut $ cd A1 6. Untuk memulai TCP Socket Programming di linux, di sini kita menggunakan program VIM. Ketikkan source program client.c atau server.c (lihat lampiran) dengan perintah : $ vim client.c atau $ vim server.c *Tips untuk asisten : praktikum dibagi menjadi beberapa kelompok dan ditunjuk supaya ada yang memrogram client dan ada yang memrogram server 7. Tekan tombol Ins/Insert pada keyboard untuk memulai pengetikan hingga terlihat indikasi INSERT di bagian layar kiri 8. Setelah semua source di ketik, simpan source tersebut dengan menekan tombol Esc, hingga indikator INSERT hilang, dilanjutkan dengan :wq (tanpa tanda tiket). 9. Lakukan kompilasi program dengan cara : $ sudo gcc o server server.c Untuk program client.c $ sudo gcc o client client.c Apabila terjadi error, lakukan pengecekan dengan membuka file source seperti pada langkah ke 7. 10. Jalankan TCP Socket Programming dengan perintah, sebagai berikut : Untuk server : $./server Untuk client $./client 192.168.0.2 percobaan pesan Dimana 192.168.0.2 adalah IP dari komputer yang melakukan pemrograman server. Pesan yang dikirim adalah percobaan pesan. Pada komputer yang menjalankan program server akan tampil data text tersebut. *Tips : Untuk mematikan program lakukan dengan menekan Ctrl+C. Lakukan pengiriman text tersebut dengan kondisi sebagai berikut, kemudian amati pada komputer tersebut dan apabila muncul error cata di laporan sementara ! Program server dijalankan di komputer A, pada komputer B kirim pesan dengan program client ke komputer A Matikan program server pada komputer A, pada komputer B kirim pesan dengan program client ke komputer A LEMBAR ANALISA Praktikum Jaringan Komputer 5 Tanggal praktikum : Nama : NIM : Kelas : IP Client : IP Server : No Server Client Pesan Error

1. Dijalankan Dijalankan

2. Dimatikan Dimatikan

LAMPIRAN /* ** client.c a stream socket client for Jaringan Komputer */ #include #include #include #include #include #include #include #include #include #define PORT 3490 // the port client will be connecting to #define MAXDATASIZE 100 // max number of bytes we can get at once int main(int argc, char *argv[]) { int sockfd; struct hostent *he; struct sockaddr_in their_addr; // connector's address information if (argc != 3) { fprintf(stderr,"Penggunaan: %s server pesan\n", argv[0]); exit(1); } if ((he=gethostbyname(argv[1])) == NULL) { // get the host info perror("gethostbyname"); exit(1); } if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == 1) { perror("socket"); exit(1); } their_addr.sin_family = AF_INET; // host byte order their_addr.sin_port = htons(PORT); // short, network byte order their_addr.sin_addr = *((struct in_addr *)he->h_addr); memset(&(their_addr.sin_zero), '\0', 8); // zero the rest of the struct if (connect(sockfd, (struct sockaddr *)&their_addr, sizeof(struct sockaddr)) == 1) { perror("connect"); exit(1); } if ((send(sockfd, argv[2], strlen(argv[2]), 0)) == 1) { perror("send"); exit(0); } printf("mengirimkan %s ke %s\n", argv[2], argv[1]); 40 close(sockfd); return 0; } /* ** server.c a stream socket server for Jaringan Komputer */ #include #include #include #include #include #include #include #include #include #include #include #define MYPORT 3490 // the port users will be connecting to #define BACKLOG 10 // how many pending connections queue will hold #define MAXDATA 100000 void sigchld_handler(int s) { while(wait(NULL) > 0); } int main(void) { int sockfd, new_fd; // listen on sock_fd, new connection on new_fd struct sockaddr_in my_addr; // my address information struct sockaddr_in their_addr; // connector's address information int sin_size, numbytes; char buf[MAXDATA]; struct sigaction sa; int yes=1; if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == 1) { perror("socket"); exit(1); } if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int)) == 1) { perror("setsockopt"); exit(1); } my_addr.sin_family = AF_INET; // host byte order my_addr.sin_port = htons(MYPORT); // short, network byte order my_addr.sin_addr.s_addr = INADDR_ANY; // automatically fill with my IP 41 memset(&(my_addr.sin_zero), '\0', 8); // zero the rest of the struct if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == 1) { perror("bind"); exit(1); } if (listen(sockfd, BACKLOG) == 1) { perror("listen"); exit(1); } sa.sa_handler = sigchld_handler; // reap all dead processes sigemptyset(&sa.sa_mask); sa.sa_flags = SA_RESTART; if (sigaction(SIGCHLD, &sa, NULL) == 1) { perror("sigaction"); exit(1); } printf("SERVER: siap menerima koneksi\n"); while(1) { // main accept() loop sin_size = sizeof(struct sockaddr_in); if ((new_fd = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size)) == 1) { perror("accept"); continue; } printf("SERVER: menerima koneksi dari %s\n",inet_ntoa(their_addr.sin_addr)); if (!fork()) { // this is the child process close(sockfd); // child doesn't need the listener numbytes=recv(new_fd, buf, MAXDATA-1, 0); if (numbytes < 0) { perror("recv"); exit(1); } printf("Data: %s\n", buf); buf[numbytes]= '\0'; close(new_fd); exit(0); } close(new_fd); // parent doesn't need this } return 0; } 1 16 17