Anda di halaman 1dari 37

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
Font
Font Size
Margins
Kertas

: 1,5
: Times New Roman
: 12
: Top 3, Left 4, Right 3, Bottom 3
: A4

6. Penilaian Laporan Hasil Praktikum


BAB I. Tujuan dan Landasan Teori
BAB II. Langkah Kerja
BAB III. Pembahasan
BAB IV. Kesimpulan
BAB V. Daftar Pustaka
BAB VI. Lampiran
Total

Nilai 20
Nilai 10
Nilai 40
Nilai 15
Nilai 5
Nilai 10
100

7. Praktikan yang mengabaikan format penulisan poin 5, akan dikurangi 5


setiap kesalahan.

8. Penilaian Akhir Praktikum :


Pre-Test
Praktikum
Laporan Praktikum
Responsi
Total

: 15 %
: 30 %
: 20 %
: 35 %
100 %

9. Penilaian Akhir Mata Kuliah Algoritma dan Pemrograman II :


Tugas
: 20 %
UTS
: 30 %
50 %
Praktikum : 50 %
UAS
:
50 %
Nilai Akhir

100 %

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.

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
9

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

10

Ketik Ping <IP Address yang dituju> 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 :

11

Pengamatan

IP address

IP adress tujuan

Hasil ping

sumber
1
2
3

RTO terjadi pada pengamatan ke .


Alasannya adalah

..

Hasil pengamatan untuk kelas B


Alamat jaringannya adalah :

Pengamatan

IP address

IP adress tujuan

Hasil ping

sumber
1
2
3

RTO terjadi pada pengamatan ke .


Alasannya adalah

..

12

Hasil pengamatan untuk kelas C


Alamat jaringannya adalah :

Pengamatan

IP address

IP adress tujuan

Hasil ping

sumber
1
2
3

RTO terjadi pada pengamatan ke .


Alasannya adalah

..

13

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

14

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
15

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

16

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.

17

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

18

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

19

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

20

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 :

21

$./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

1.

Dijalankan

Dijalankan

2.

Dimatikan

Dimatikan

Pesan Error

22

Lampiran :
/*
** Praktikum Jaringan Komputer
** talker.c a datagram "client" demo
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#define MYPORT 4950

// the port users will be connecting to

int main(int argc, char *argv[])


{
int sockfd;
struct sockaddr_in their_addr;
struct hostent *he;
int numbytes;

// connector's address information

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)
23

{
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 <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#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

24

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;
}

25

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.

26

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.

27

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
28

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

29

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 !

30

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

31

LEMBAR ANALISA
Praktikum Jaringan Komputer 5

Tanggal praktikum

Nama

NIM

Kelas

IP Client

IP Server

No

Server

Client

1.

Dijalankan

Dijalankan

2.

Dimatikan

Dimatikan

Pesan Error

32

LAMPIRAN
/*
** client.c a stream socket client for Jaringan Komputer
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#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) {
perror("gethostbyname");
exit(1);
}

// get the host info

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");

33

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 <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/wait.h>
#include <signal.h>
#define MYPORT 3490
#define BACKLOG 10

// the port users will be connecting to


// 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];
34

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;
sigemptyset(&sa.sa_mask);
sa.sa_flags = SA_RESTART;

// reap all dead processes

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) {
35

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;
}

36