Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
TUGAS AKHIR
PERANCANGAN KOMUNIKASI CLIENT SERVER DAN SISTEM
DATABASE
Diajukan untuk memenuhi salah satu persyaratan dalam menyelesaikan pendidikan sarjana (S-1) pada Departemen Teknik
Elektro
Oleh
FRANS A SIAGIAN NIM : 020402009
DEPARTEMEN TEKNIK ELEKTRO FAKULTAS TEKNIK
UNIVERSITAS SUMATERA UTARA MEDAN
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
PERANCANGAN KOMUNIKASI CLIENT SERVER DAN SISTEM DATABASE
Oleh :
FRANS A SIAGIAN NIM : 02 0402 009
Tugas Akhir ini diajukan untuk melengkapi salah satu syarat untuk memperoleh gelar sarjana Teknik Elektro
Disetujui oleh :
Dosen Pembimbing,
Ir. M. ZULFIN, MT NIP : 131 945 356
Diketahui oleh :
Ketua Departemen Teknik Elektro FT USU,
Prof. DR. Ir. Usman Ba’afai NIP : 130 365 322
DEPARTEMEN TEKNIK ELEKTRO FAKULTAS TEKNIK
UNIVERSITAS SUMATERA UTARA MEDAN
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
KATA PENGANTAR
Puji dan syukur kepada Tuhan Yang Maha Kuasa atas berkat karunia-Nya
sehingga penulis dapat menyelesaikan Tugas Akhir ini.
Tugas Akhir ini dibuat sebagai salah satu syarat untuk menyelesaikan pendidikan
pada Fakultas Teknik Departemen Teknik Elektro Program Studi Teknik Telekomunikasi
Universitas Sumatera Utara.
Dengan selesainya Tugas Akhir ini, penulis menyampaikan rasa ucapan terima
kasih setulusnya kepada:
1. Orang tua penulis yang paling disayangi dan dicintai, Ayah (R.Siagian) dan Ibu (S
br. Sibagariang) atas kasih sayang, materi dan doanya hingga penulis dapat
meraih keberhasilan.
2. Abangku Roland Siagian, adek-adekku Theresia Siagian, Oliv Siagian, Eva dan
Wanda yang selalu memberikan semangat dan dorongan yang sangat berarti
kepada penulis.
3. Bapak Ir. M. Zulfin, MT selaku dosen pembimbing Tugas Akhir. Terima kasih
atas segala bimbingan, pengarahan dan motivasi hingga Tugas Akhir ini selesai.
4. Bapak Rachmad Fauzi, ST, MT selaku dosen wali. Terima kasih atas nasihat dan
bimbingannya selama dalam masa perkuliahan.
5. Bapak Prof.DR.Ir. Usman Baafai dan Bapak Drs. Hasdari Helmi, MT selaku
Ketua Departemen dan Sekretaris Departemen Teknik Elektro
6. Seluruh staff pengajar Departemen Teknik Elektro Universitas Sumatera Utara
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
7. Seluruh pegawai Departemen Teknik Elektro Universitas Sumatera Utara.
8. Rekan-rekan satu angkatan 2002 Andriani, Augustin, Bismar, Budiman, Ba’du,
Daniel T, Daniel S N, Deny, Dody, Esron, Echo, Erim, Feri, Hattorangan,
Hasyim, Hamdani, Ipeng, Irham, Jimmy, Julika, Maston, Risbet, Raymond,
Syafril, Sabariah, Sejahtera, Sylvia, Yos dan seluruh rekan-rekan elektro yang
tidak disebut namanya.
9. Kepada pengajar dan rekan-rekan siswa di MSoft yang telah banyak membantu
dan memberi masukan dalam belajar.
10.Sahabat penulis K’Henny, B’Endru, Marolop dan Aditya buat doa, motivasi serta
semangat yang diberikan selama ini buat saya.
11.Kepada K’Maya Siagian yang telah membantu saya dengan CPU komputernya
selama membuat program.
12.Dan semua pihak yang telah banyak membantu penulis selama menyelesaikan
Tugas Akhir ini yang namanya tidak dapat disebutkan satu persatu.
Penulis menyadari bahwa Tugas Akhir ini masih jauh dari sempurna, untuk itu
dengan segala kerendahan hati penulis memohon maaf atas kekurangan dari tulisan ini,
semoga Tugas Akhir ini dapat bermanfaat untuk kita semua.
Medan, September 2007
Penulis,
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
DAFTAR ISI
ABSTRAK... i
KATA PENGANTAR………. ii
DAFTAR ISI……… iv
DAFTAR GAMBAR... viii
DAFTAR TABEL……… xii
BAB I PENDAHULUAN 1.1 Latar Belakang... 1
1.2 Rumusan Masalah………... 2
1.3 Tujuan Penulisan……….. 2
1.4 Pembatasan Masalah………... 2
1.5 Metodologi Penulisan………... 3
1.6 Sistematika Penulisan………... 3
BAB II LANDASAN TEORI 2.1 Umum……… 5
2.2 LAN……….. 6
2.2.1 Topologi Jaringan LAN……… 6
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
2.2.1.2 Topologi Star……… 7
2.2.1.3 TopologiRing... 7
2.2.1.4 Topologi Tree………... 8
2.2.2 Protokol Jaringan………. 9
2.2.2.1 Ethernet……… 9
2.2.2.2 Token Ring………... 9
2.2.2.3 FDDI……… 9
2.2.2.4 ATM………. 10
2.3 Client Server……….. 10
2.3.1 Komponen Dasar Client Server………... 11
2.3.2 Ciri-Ciri Client Server………. 13
2.4 Referensi Model Jaringan………. 15
2.4.1 Referensi Model OSI……….... 15
2.4.2 Model TCP/IP………... 18
2.4.2.1 Pembagian Kelas Nomor IP……….. 20
2.4.2.2 Penggunaan Subnet Mask……….. 20
2.4.2.3 Nomor Port……… 21
2.5 Pemrograman Internet……… 22
2.5.1 Socket……… 22
2.5.2 Windows Socket (WinSock)……….. 24
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
3.2 Struktur Segmen TCP………. 28
3.2.1 Nomor Urut dan Nomor Acknowledgement……….. 29
3.3 Transfer Data Reliable……… 31
3.3.1 Beberapa Skenario Dalam Transfer Data……….. 31
3.3.2 Interval Timeout Dua Kali Lipat……… 34
3.3.3 Retransmisi yang Cepat………. 35
3.4 Penanganan Koneksi TCP……….. 36
BAB IV PERANCANGAN PERANGKAT LUNAK SISTEM KOMUNIKASI CLIENT SERVER 4.1 Kebutuhan Sistem………. 43
4.1.1 Sistem Operasi………. 43
4.1.2 Perangkat Keras Komputer……….. 43
4.2 Tahap-Tahap Perancangan Perangkat Lunak………... 43
4.2.1 Analisis Kebutuhan……….. 44
4.2.2 Spesifikasi Kebutuhan………. 44
4.2.2.1 Diagram Alir……… 44
4.2.2.1.1 Diagram Alir Program Server………... 45
4.2.2.1.2 Diagram Alir Program Client……… 49
4.2.2.2 Perancangan Menu Sistem……… 58
4.2.2.2.1 Perancangan Window Tampilan Utama Server………. 58
4.2.2.2.2 Perancangan Window Tampilan Utama Client………. 62
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
4.2.3.1 Tampilan Utama Server………... 71
4.2.3.1.1 Tampilan Aplikasi………. 72
4.2.3.1.2 Tampilan Explorer……… 73
4.2.3.1.3 Tampilan Client Remote……… 75
4.2.3.1.4 Tampilan Peripheral………. 76
4.2.3.2 Tampilan Utama Client……… 78
4.2.3.2.1 Tampilan Chatting……… 79
4.2.3.2.2 Tampilan Explorer……… 81
4.2.3.2.3 Tampilan Program……… 82
4.2.3.2.4 Tampilan Akses Database……… 84
4.2.4 Pengujian Perangkat Lunak………. 90
4.2.4.1 Pengujian Perangkat Lunak Client……….. 90
4.2.4.2 Pengujian Perangkat Lunak Server………. 93
BAB V KESIMPULAN DAN SARAN 5.1 Kesimpulan……….. 95
5.2 Saran……… 96
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
DAFTAR GAMBAR
Gambar 2.1 Topologi Bus……….. 7
Gambar 2.2 Topologi Star………. 7
Gambar 2.3 Topologi Ring ………... 8
Gambar 2.4 Topologi Tree ……… 8
Gambar 2.5 Arsitektur Client Server………. 11
Gambar 2.6 Komponen Dasar Client Server………. 12
Gambar 2.7 Model OSI………. 13
Gambar 2.8 Model TCP/IP……… 13
Gambar 2.9 Pembagian Kelas Nomor IP……… 20
Gambar 2.10 Client Meminta Koneksi………. 23
Gambar 2.11 Respon Server………. 24
Gambar 2.12 Koneksi Menggunakan Socket……… 25
Gambar 3.1 TCP Mengirim dan Menerima Buffer………. 27
Gambar 3.2 Struktur Segmen TCP………. 28
Gambar 3.3 Pembagian Data File ke Dalam Segmen TCP……… 30
Gambar 3.4 Retransmisi untuk Konfirmasi yang Hilang……… 32
Gambar 3.5 Segmen 100 Tidak Diretransmisikan……….. 33
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
Gambar 3.7 Jabatan Tangan (handshake) Tiga Arah TCP……… 38
Gambar 3.8 Penutupan Koneksi TCP………. 39
Gambar 3.9 Urutan Kondisi TCP yang Dikunjungi oleh TCP Client……… 41
Gambar 3.10 Urutan Kondisi TCP yang Dikunjungi oleh TCP Server……… 42
Gambar 4.1 Diagram Alir Komunikasi Client Server……… 45
Gambar 4.2 Diagram Alir Aplikasi………. 46
Gambar 4.3 Diagram Alir Explorer……… 47
Gambar 4.4 Diagram Alir Log Off……….. 47
Gambar 4.5 Diagram Alir Proses Shut Down... 48
Gambar 4.6 Diagram Alir Program Peripheral……… 49
Gambar 4.7 Diagram Alir Chat Sesama Client... 50
Gambar 4.8 Diagram Alir Chat Client Ke Server……….. 50
Gambar 4.9 Diagram Alir Program Explorer………. 51
Gambar 4.10 Diagram Alir Aplikasi Program... 51
Gambar 4.11 Diagram Alir Menambah Data Mahasiswa………. 52
Gambar 4.12 Diagram Alir Mencari Data Mahasiswa... 53
Gambar 4.13 Diagram Alir Menambah Data Dosen... 53
Gambar 4.14 Diagram Alir Mencari Data Dosen... 54
Gambar 4.15 Diagram Alir Meambah Data Mata Kuliah... 55
Gambar 4.16 Diagram Alir Mencari Data Mata Kuliah... 56
Gambar 4.17 Diagram Alir Menambah Data Nilai Mahasiswa... 57
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
Gambar 4.19 Rancangan Window Tampilan Utama Server……… 59
Gambar 4.20 Rancangan Window Aplikasi………. 60
Gambar 4.21 Rancangan Window Explorer……… 61
Gambar 4.22 Rancangan Window Client Remote……… 61
Gambar 4.23 Rancangan Window Peripheral………. 62
Gambar 4.24 Rancangan Window Tampilan Utama Client………. 63
Gambar 4.25 Rancangan Window Chatting ke Client………. 64
Gambar 4.26 Rancangan Window Mengirim Pesan ke Server……… 64
Gambar 4.27 Rancangan Window Explorer………. 65
Gambar 4.28 Rancangan Window Program………. 66
Gambar 4.29 Rancangan Window Data Mahasiswa………. 67
Gambar 4.30 Rancangan Window Data Dosen………. 68
Gambar 4.31 Rancangan Window Data Mata Kuliah………... 69
Gambar 4.32 Rancangan Window Data Nilai………... 70
Gambar 4.33 Tampilan Utama Server... 71
Gambar 4.34 Tampilan Utama Aplikasi... 72
Gambar 4.35 Tampilan Explorer... 74
Gambar 4.36 Tampilan Client Remote... 75
Gambar 4.37 Tampilan Periheral... 77
Gambar 4.38 Tampilan Utama Client... 78
Gambar 4.39 Tampilan Chatting ke Client... 79
Gambar 4.40 Tampilan Chatting ke Server... 80
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
Gambar 4.42 Tampilan Program... 83
Gambar 4.43 Tampilan Window Data Mahasiswa... 84
Gambar 4.44 Tampilan Window Data Dosen... 86
Gambar 4.45 Tampilan Window Data Mata Kuliah... 87
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
DAFTAR TABEL
Tabel 2.1 Penggunaan Subnet Mask pada Setiap Kelas………. 21
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
BAB I PENDAHULUAN
1.1 Latar Belakang
Jaringan Area Lokal atau Local Area Network (LAN) merupakan inti dari
jaringan komputer, dimana sejumlah komputer dapat berhubungan satu dengan yang lain
serta dapat menggunakan secara bersama sumber daya (resource) seperti printer atau
harddisk.
Dari perkembangan PC kemudian muncul konsep sharing (pemakaian bersama)
dimana beberapa buah PC dihubungkan satu dengan lain sehingga dapat menggunakan
secara bersama sumber daya yang ada. Konsep ini dikenal sebagai peer to peer atau
workgroup LAN. Jika jumlah komputer yang berada pada jaringan tidak begitu besar,
jaringan workgroup ini dapat berfungsi dengan baik.
Namun apabila jumlah komputer yang akan dihubungkan ke jaringan bertambah
banyak, maka hubungan secara peer to peer kemungkinan sudah tidak efektif lagi karena
sekarang diperlukan satu sistem manajemen yang mengatur semua komputer di jaringan.
Hubungan ini disebut client-server, dimana semua informasi dan hak akses setiap user
diatur oleh server tersebut.
Oleh karena itu pada Tugas Akhir ini, penulis tertarik untuk membahas dan
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
yang semakin banyak terhubung ke jaringan. Pengontrolan server ini dapat berupa
pembatasan program tertentu yang dapat dijalankan oleh client. Server juga dapat
mengakhiri kerja client dengan men-shut down atau me-log off komputer client.
1.2 Rumusan Masalah
Dari latar belakang di atas, dapat dirumuskan beberapa permasalahan antara lain:
1. Bagaimana konsep komunikasi client-server.
2. Bagaimana ActiveX WinSock mendukung komunikasi client-server.
3. Apa langkah-langkah pembuatan perangkat lunak komunikasi client-server.
4. Bagaimana hasil implementasi perangkat lunak yang dirancang.
1.3 Tujuan Penulisan
Tujuan penulisan Tugas Akhir ini adalah untuk merancang/membuat perangkat
lunak akses jaringan client-server secara remote.
1.4 Pembatasan Masalah
Untuk mendapatkan hasil pembahasan yang maksimal, maka penulis perlu
membatasi masalah yang akan dibahas. Adapun batasan masalah dalam Tugas Akhir ini
adalah:
1. Perangkat lunak yang digunakan untuk merancang komunikasi client-server adalah
visual basic 6.0.
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
3. Client hanya bisa berbagi data dan berkomunikasi dengan sesama client jika
diizinkan oleh server.
4. Topologi yang digunakan adalah topologi bintang (star).
1.5 Metodologi Penulisan
Metode penulisan yang digunakan dalam Tugas Akhir ini adalah:
1. Studi literatur :Mengambil bahan dari buku-buku referensi, jurnal-jurnal, serta
artikel-artikel yang berhubungan dengan permasalahan.
2. Studi kasus :Melakukan percobaan terhadap aplikasi jaringan client-server yang
telah dibuat.
1.6 Sistematika Penulisan
Tugas Akhir ini disusun berdasarkan sistematika penulisan sebagai berikut:
BAB I : PENDAHULUAN
Pada bab ini menjelaskan tentang latar belakang, rumusan masalah, tujuan
penulisan, batasan masalah, metodologi penulisan, sistematika penulisan
sebagai gambaran umum dari pembahasan secara keseluruhan.
BAB II : LANDASAN TEORI
Pada bab ini membahas tentang prinsip jaringan LAN, konsep sistem
terdistribusi/client-server serta referensi model jaringan.
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
Pada bab ini membahas prinsip aliran data yang terjadi pada komunikasi
client-server.
BAB IV : PERANCANGAN PERANGKAT LUNAK SISTEM KOMUNIKASI CLIENT SERVER
Pada bab ini membahas tahapan perancangan perangkat lunak beserta
implementasinya sampai ke tahap pengujian.
BAB V : KESIMPULAN DAN SARAN
Pada bab ini berisikan kesimpulan dan saran dari apa yang telah dibahas
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
BAB II
LANDASAN TEORI
2.1 Umum
Informasi bagaikan darah dalam perusahaan yang harus dapat dikelola proses
distribusinya ke seluruh lini manajerial. Jika aliran informasi ini terhambat, maka
perusahaan akan menjadi “sakit” dan proses manajerial yang meliputi perencanaan,
koordinasi, kepemimpinan dan pengendalian menjadi tidak sehat, sehingga akan
berakibat pada penurunan kinerja dan daya kompetensinya.
Oleh karena itu, kehadiran jaringan komputer di dalam perusahaan dewasa ini
sangat tepat untuk menjawab tantangan tersebut. Jaringan komputer dapat berperan
mengintegrasikan data sehingga dapat diolah dengan tepat oleh komputer pusat (server)
maupun mengalirkan informasi secara lengkap dan cepat ke terminal-terminal tujuan,
secara kontinu dan teratur.
Kehadiran teknologi jaringan komputer tidak hanya bermanfaat untuk
mengalirkan informasi ke seluruh lini perusahaan, tetapi juga menghemat investasi dan
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
jaringan komputer menyediakan fasilitas untuk berbagi pakai semua peralatan yang
terhubung dalam lingkungan jaringan tersebut.
2.2 LAN (Local Area Network)
LAN (Local Area Network) merupakan arsitektur jaringan yang hanya terdiri dari
beberapa komputer. Arsitektur ini merupakan jenis yang paling sederhana dari jenis
arsitektur lainnya. Pada arsitektur jenis LAN komputer yang terhubung sangat sedikit.
Ada yang menyebutkan bahwa jenis ini rata-rata hanya memiliki 24 workstation dalam
satu jaringan LAN. Pada kenyataannya, apabila ada dua komputer yang terhubung satu
sama lain, kedua komputer itu dapat dikatakan telah terhubung dengan sistem jaringan
lokal atau LAN.
2.2.1 Topologi Jaringan LAN
Topologi jaringan LAN yang sering dipakai adalah topologi bus, topologi star,
topologi ring dan topologi tree.
2.2.1.1 Topologi Bus
Dengan topologi ini, komputer dihubungkan secara berantai satu dengan yang
lain dengan perantaraan suatu kabel yang umumnya berupa kabel jenis koaksial seperti
tampak pada Gambar 2.1. Pada topologi ini ujung-ujung kabel harus ditutup dengan
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
menimbulkan gangguan yang menyebabkan kemacetan jaringan sedangkan untuk
hubungan komputer ke jaringan dengan menggunakan konektor BNC.
Gambar 2.1 Topologi Bus
2.2.1.2 Topologi Star
Dengan topologi star (bintang) ini, semua komputer dihubungkan ke suatu hub
seperti pada Gambar 2.2. Hub berfungsi untuk menerima sinyal-sinyal dari suatu
komputer dan meneruskan ke semua komputer lain yang berhubungan dengan hub. Jenis
kabel yang sering digunakan untuk topologi star ini adalah kabel UTP kategori-5.
Gambar 2.2 Topologi Star
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
Topologi ini memanfaatkan kurva tertutup, artinya informasi dan data serta traffic
disalurkan sedemikian rupa sehingga menuju masing-masing node. Umumnya fasilitas ini
memanfaatkan fiber optik sebagai sarananya walaupun ada juga yang menggunakan
twisted pair.
Gambar 2.3 Topologi Ring
2.2.1.4 Topologi Tree
Topologi tree ini merupakan gabungan topologi star dan topologi bus.
Komputer-komputer dihubungkan ke hub, sedangkan hub satu dengan hub lain dihubungkan sebagai
jalur tulang punggung (backbone) yang menyerupai topologi bus seperti tampak pada
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
Gambar 2.4 Topologi Tree
2.2.2 Protokol Jaringan
Supaya komputer-komputer yang berada dalam jaringan dapat berkomunikasi
dengan baik satu dengan yang lain, diperlukan peraturan-peraturan yang disebut protokol.
Enam jenis protokol jaringan yang sering dipakai untuk LAN adalah protokol Ethernet,
Token Ring, Fiber Distributed Data Interface (FDDI), dan Asynchronous Transfer Mode
(ATM).
2.2.2.1 Ethernet
Protokol Ethernet menjadi protokol LAN yang paling populer dan banyak dipakai
karena cara penggunaannya mudah, namun memiliki kemampuan tinggi.
Pada mulanya protokol Ethernet hanya dapat dipakai dengan kecepatan 10 Mbps.
Kemudian dikeluarkan jenis protokol Ethernet baru yang disebut Fast Ethernet yang
sanggup bekerja dengan kecepatan 100 Mbps dan protokol Gigabit Ethernet dengan
kecepatan 1000 Mbps atau 1 Gbps.
2.2.2.2 Token Ring
Token Ring yang diciptakan oleh perusahaan IBM ini menggunakan topologi ring
(lingkaran), dimana komputer-komputer diletakkan di sekeliling lingkaran tersebut.
Token ring mampu mendukung dua laju data yaitu 4 Mbps dan 16 MBps.
2.2.2.3 FDDI
FDDI menggunakan metode yang disebut Timed-Token Protocol, dimana setiap
stasiun digaransi untuk dapat akses ke jaringan pada periode tertentu yang diatur pada
saat jaringan mulai berfungsi. FDDI memililki dua lingkaran yang dinamakan primary
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
dikirim pada kedua lingkaran, tetapi hanya lingkaran primary yang dipakai untuk
mengirimkan data. Lingkaran secondary baru dipakai jika lingkaran primary mengalami
kesulitan atau putus.
2.2.2.4 ATM
ATM adalah protokol yang memiliki kecepatan yang sangat tinggi (155 Mbps
sampai 2,4 Gbps) dan memiliki bandwidth yang sangat besar. ATM dengan kecepatan
155 Mbps dapat menggunakan kabel UTP kategori-5, sedangkan untuk kecepatan 622
Mbps ke atas harus menggunakan media serat optik [8].
2.3 Client Server
Hubungan secara peer to peer kemungkinan sudah tidak efektif lagi, karena
sekarang diperlukan satu sistem management (administrator) yang mengatur semua
komputer di jaringan. Di samping itu mungkin diperlukan satu sumber daya (resource)
untuk menyimpan file yang dapat dipakai secara bersama di suatu komputer yang disebut
server. Karena digunakan sebagai sumber daya untuk semua komputer lainnya, komputer
yang dijadikan server ini umumnya lebih canggih, memiliki CPU dengan kecepatan
tinggi atau bahkan CPU ganda, memiliki memori yang besar, serta memiliki harddisk
dengan kapasitas sangat besar untuk melayani kebutuhan semua pemakai.
Hubungan ini disebut client-server, dimana semua informasi dan hak akses setiap
pemakai (user) diatur oleh server tersebut. Sedangkan sistem operasi yang harus
digunakan untuk komputer tersebut adalah jenis server seperti Windows NT4 server atau
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
Gambar 2.5 Arsitektur Client Server
Pada waktu pemakai log on dari komputer client, maka server di jaringan akan
memeriksa autentikasi pemakai. Jika nama pemakai (user account) dan password yang
dipakai benar, pemakai diberi hak berhubungan dengan jaringan dan memakai sumber
daya sesuai dengan izin (permission) yang diberikan.
Pada sistem operasi Windows NT 4 atau 2000 server, administrasi jaringan diatur
melalui satu wadah yang disebut domain, yang mengatur semua komputer yang berada
dalam domain tersebut.
2.3.1 Komponen Dasar Client Server
Pada dasarnya, client-server dibentuk oleh tiga komponen dasar, yaitu client,
middleware dan server. Secara sederhana, hubungan antara ketiga komponen tersebut
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
Gambar 2.6 Komponen Dasar Client Server (Sumber: Budi, 2006, hal. 198)
a. Client
Client merupakan terminal yang digunakan oleh pengguna untuk meminta
layanan tertentu yang dibutuhkan. Terminal client dapat berupa PC, robot, televisi, dan
peralatan lain yang membutuhkan informasi.
Disini peran client adalah menggunakan pesan berupa permintaan layanan ke
server, misalnya Automatic Teller Machine (ATM) yang meminta informasi saldo dari
nasabah tertentu. Melalui terminal client ini, pengguna dapat memasukkan data dan
mengakses forum untuk transaksi. Terminal client ini juga digunakan untuk menerima
hasil pemrosesan yang diminta dari server.
b. Middleware
Middleware merupakan komponen perantara yang memungkinkan client dan
server untuk saling terhubung dan berkomunikasi satu sama lain.
Middleware dapat berupa Transaction Processing Monitor (TP), Remote
Procedure Calling (RPC), atau Object Request Broker (ORB). Middleware memiliki
peran yang strategis karena dengan adanya middleware maka client dapat mengirimkan
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
dimengerti oleh server, menerjemahkan hasil proses dari server agar dapat dipahami oleh
client dan mengirimkan hasil proses yang telah diterjemahkan kembali ke client.
c. Server
Server merupakan pihak yang menyediakan layanan. Server ini dapat berupa
basis data SQL, Monitor TP, server groupware, server objek, atau Web.
Secara umum, server berperan menerima pesan permintaan layanan dari client,
memproses permintaan tersebut dan mengirimkan hasil permintaan kepada client.
2.3.2 Ciri-Ciri Client Server
Client Server memiliki ciri-ciri mendasar yang membedakannya dengan
perangkat lunak terdistribusi lain. Ciri-ciri tersebut adalah:
a. Berbasis layanan
Server memberikan sejumlah layanan yang dibutuhkan dan diminta oleh client,
antara lain: berbagi pakai berkas, data, peralatan pendukung dan lain-lain.
b. Sumber daya yang digunakan bersama
Server mengelola sejumlah sumber daya yang dimilikinya agar dapat diakses dan
digunakan secara bersama-sama oleh terminal-terminal client yang terhubung pada
server.
c. Hubungan dan interaksi antara client-server
Hubungan yang terjadi antara server dan client adalah one-to-many, yang berarti
bahwa satu server melayani banyak client. Client selalu memulai interaksi dengan
meminta layanan, sedangkan server menanti permintaan layanan secara pasif.
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
Server dapat terletak di berbagai tempat yang belum tentu diketahui oleh client.
Walaupun demikian, client tetap dapat mengakses server untuk mendapatkan layanan
sesuai kebutuhannya.
e. Interoperabilitas perangkat lunak dan perangkat keras
Perangkat keras dan perangkat lunak yang digunakan oleh masing-masing client
tidak harus sama dengan yang digunakan pada server, namun masih dapat saling
terkoneksi antara satu dan yang lain.
f. Pertukaran berbasis pesan
Mekanisme dari client-server berdasar pada pertukaran pesan. Pesan yang
dipertukarkan ialah permintaan layanan dan umpan balik dari permintaan layanan.
g. Enkapsulasi layanan
Client tidak perlu mengetahui proses pengolahan permintaan yang terjadi dalam
server sehingga client tidak dapat mengontrol proses pengolahan permintaan.
h. Skalabilitas
Ukuran sistem client-server dapat diubah secara horizontal maupun vertikal.
Pengubahan vertikal berarti berpindah ke server yang lebih besar atau lebih cepat
mendistribusikan tugas melayani client ke beberapa server. Pengubahan horizontal berarti
menambah atau mengurangi jumlah client.
i. Konsistensi data
Data hanya dikelola pada server pusat sehingga konsistensi dan data lebih
terjamin dan biaya pemeliharaan pun menjadi lebih murah.
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
Untuk memahami cara kerja suatu jaringan komputer, harus memahami konsep
referensi model jaringan komputer. Referensi model jaringan komputer ini
mempermudah cara mempelajari, memprogram, maupun mendesain suatu jaringan
komputer.
Oleh sebab itu supaya suatu jaringan komputer dapat berfungsi dengan baik,
diperlukan suatu definisi yang jelas untuk proses-proses yang terjadi pada setiap lapisan
jaringan komputer tersebut. Defenisi ini diatur oleh referensi model jaringan.
2.4.1 Referensi Model OSI
Adalah sebuah badan multinasional yang didirikan tahun 1947 yang bernama
International Standard Organization (ISO) sebagai badan yang melahirkan
standar-standar internasional. ISO ini mengeluarkan juga standar-standar jaringan komunikasi yang
mencakup segala aspek yaitu model OSI. OSI adalah open system yang merupakan
himpunan protokol yang memungkinkan terhubungnya dua sistem yang berbeda yang
berasal dari underlying architecture yang berbeda pula. Jadi tujuan OSI ini adalah untuk
memfasilitasi bagaimana suatu komunikasi dapat terjalin dari sistem yang berbeda tanpa
memerlukan perubahan yang signifikan pada hardware dan software di tingkat
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
Gambar 2.7 Model OSI (Sumber: Heywood, 1997, hal. 29)
Referensi model OSI membagi jaringan komputer menjadi tujuh lapisan, antara lain:
1. Physical Layer
Pada lapisan ini terjadi proses pengiriman data dalam bentuk binary. Pada lapisan
ini semua spesifikasi yang berkaitan dengan cara menghubungkan kabel jaringan
ditentukan dan diterapkan.
2. Data Link Layer
Pada lapisan ini semua peralatan yang berhubungan dengan jaringan diberi tanda
pengenal atau alamat hardware yang diatur oleh lapisan bawah (sublayer) yang
dinamakan Media Access Control (MAC). Pada lapisan ini data dikirimkan dalam bentuk
frame yang telah memuat informasi mengenai alamat yang dituju dan alamat asal data.
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
Pada lapisan ini diperkenalkan konsep alamat logika yaitu alamat yang diberikan
pada peralatan jaringan yang dapat diatur oleh administrator jaringan. Alamat logika
yang sering dipakai adalah IP address. Pada lapisan ini data dikirimkan dalam bentuk
paket yang memuat informasi mengenai alamat logika yang dituju dan alamat asal data.
4. Transport Layer
Lapisan ini membuat dan menjaga hubungan komunikasi antara dua peralatan
komputer, serta memberikan garansi bahwa data yang dikirim akan sampai ke tujuan
dengan baik.
5. Session Layer
Lapisan ini berfungsi mengkoordinasikan agar berbagai sistem dapat saling
berkomunikasi dengan baik.
6. Presentation Layer
Pada lapisan ini berbagai ragam data baik dalam bentuk teks maupun gambar
diproses atau diubah ke format-format lain yang dibutuhkan lapisan bawah. Pada lapisan
ini juga proses kompresi data dan enkripsi data terjadi.
7. Application Layer
Lapisan ini menyediakan layanan yang mendukung langsung aplikasi-apilkasi
pemakai seperti e-mail, file transfer, dan akses ke database. Pada aplikasi client-server,
aplikasi client bekerja pada lapisan ini untuk berkomunikasi dengan lapisan bawah.
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
Pada model TCP/IP hanya dikenal empat lapisan, yaitu Network Access, Internet,
Transport dan Application. Empat lapisan dalam TCP/IP tersebut merupakan
pengembangan dari lapisan-lapisan OSI. Ilustrasi lapisan model TCP/IP ditunjukkan pada
Gambar 2.8.
Gambar 2.8 Model TCP/IP (Sumber: Samuel, 2006, hal. 142)
Pada model TCP/IP, lapisan Presentation dan Session dijadikan satu dengan lapisan
Application, lapisan Datalink dan Physical juga menjadi satu lapisan pada TCP/IP.
a. Application Layer
Lapisan Application merupakan lapisan paling atas pada TCP/IP, lapisan ini
menangani segala sesuatu yang berhubungan dengan level aplikasi. Pada TCP/IP, semua
yang berhubungan langsung dengan aplikasi digabungkan menjadi satu lapisan. Protokol
yang berjalan pada lapisan ini adalah FTP, SMTP, Telnet, Domain Name Server (DNS).
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
Lapisan Transport berfungsi untuk memecah data dari lapisan Application
menjadi segmen-segmen. Lapisan Transport juga bertugas untuk membangun hubungan
dari satu titik ke titik lainnya. Lapisan ini juga yang bertanggung jawab terhadap
realibilitas data. Protokol yang berjalan pada lapisan ini adalah TCP dan UDP.
c. Internet Layer
Lapisan Internet memiliki protokol yang paling penting yaitu IP. Fungsi protokol
ini adalah mengirimkan paket atau datagram (sekelompok data) dari satu lokasi ke lokasi
lainnya. Protokol lainnya yang berada pada lapisan ini adalah Internet Control Message
Protocol (ICMP), Address Resolution Protocol (ARP), Reverse Address Resolution
Protocol (RARP).
Lapisan Internet bertanggung jawab untuk memindahkan data dari satu lokasi ke
lokasi lainnya dengan titik berat pada pengalamatan secara logika.
d. Network Access Layer
Lapisan Network Access merupakan lapisan paling bawah yang ada pada TCP/IP.
Implementasi lapisan ini berada pada perangkat keras kartu jaringan dan perangkat lunak
driver kartu tersebut. Standar yang berlaku lapisan ini adalah standar IEEE 802, misalnya
IEEE 802.3 untuk jaringan Ethernet atau IEEE 802.5 untuk jaringan Token Ring.
Protokol lain yang digunakan pada lapisan ini adalah Serial Line IP (SLIP) atau
Point-to-Point Protocol (PPP) yang digunakan untuk jaringan dial-up.
Lapisan Network Access juga bertanggung jawab untuk memindahkan data dari
satu lokasi ke lokasi lainnya. Perbedaannya adalah bahwa lapisan Network Access lebih
menangani masalah fisik, yaitu masalah perangkat keras yang digunakan.
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
IP address memiliki 32 bit angka yang merupakan logical address. IP address
bersifat unique, artinya tidak ada device, station atau host yang memiliki IP address yang
sama. Setiap alamat IP terdiri dari dua bagian, yaitu net ID dan host ID. Net ID adalah
bagian alamat jaringan (bit-bit paling kiri) dan host ID adalah bit-bit selain net ID (paling
kanan). Secara keseluruhan penentuan kelas dapat dilihat pada Gambar 2.9.
0 . 0 . 0 . 0
2.4.2.2 Penggunaan Subnet Mask
Subnet Mask di dalam jaringan komputer akan digunakan untuk membaca dan
memastikan bahwa komputer yang terhubung berada dalam group yang sama. Hal
tersebut berkenaan dengan pengiriman dan pengaksesan data pada jaringan lokal. Setiap
pemasangan workstation, selain harus menggunakan IP kepada komputer juga harus
diberikan nomor subnet mask. Penggunaan subnet mask dibedakan menurut kelas yang
digunakan. Tabel 2.1 berikut ini adalah subnet mask yang digunakan setiap kelas.
Tabel 2.1 Penggunaan Subnet Mask pada Setiap Kelas (Sumber: Bunafit, 2005, hal. 29)
Kelas Subnet Mask
A 255 . 0 . 0 . 0
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
C 255 . 255 . 255 . 0
2.4.2.3 Nomor Port
Port merupakan pintu masuk datagram dan paket data. Dalam protokol TCP/IP
nomor port adalah berupa bilangan integer dari 0 sampai 65.535. Protokol TCP/IP telah
memutuskan untuk menetapkan penggunaan nomor port yang digunakan untuk server
yang spesifik, nomor port tersebut adalah well-known port numbers. Internet Asigned
Number Authority (IANA) membagi nomor port dalam 3 kelompok yakni:
Well-known ports : nomor port ini bermula dari 0 sampai 1.023.
Registered ports : nomor ini bermula dari 1.024 sampai 49.151.
Dynamic ports : nomor port dimulai dari 49.152 sampai 65.535.
Port 0 sampai dengan 1024 disediakan untuk layanan standar seperti FTP, TELNET,
Mail, Web dan lainnya. Adapun alamat port yang berkaitan dengan proses yang
dilakukan oleh TCP dapat dilihat pada Tabel 2.2.
Tabel 2.2 Well-Known Port yang Digunakan oleh TCP (Sumber: Drew, 1997, hal. 187)
No Port Keterangan
21 FTP
23 TELNET
25 SMTP
80 HTTP/Web
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
2.5 Pemrograman Internet
Pemrograman Internet adalah proses mengimplementasikan algoritma dengan
menggunakan bahasa pemrograman sehingga sebuah komputer dapat saling
berkomunikasi dalam suatu jaringan melalui protokol antar muka basis data.
Salah satu pemrograman yang penting dalam lingkup client-server adalah
pemrograman socket. Dengan mempelajari teknik pemrograman socket, dapat diketahui
bagaimana cara sebuah komputer dapat mengirim pesan berupa teks, citra video, musik
atau lainnya melalui Internet.
2.5.1 Socket
Socket adalah salah satu titik akhir dari jalur komunikasi dua arah antara dua
program yang berjalan pada jaringan dengan protokol TCP atau UDP. Socket terhubung
pada sebuah nomor port sehingga lapisan TCP dapat mengidentifikasi aplikasi di mana
pengiriman data ditujukan. Socket merupakan sebuah aplikasi yang dibuat, dikontrol
antarmuka sistem operasi yang mana aplikasi dapat saling mengirim dan menerima pesan
dari atau pada aplikasi yang lain.
Untuk tipe socket ada 2 macam yaitu:
a. Stream socket adalah komunikasi continous stream dari karakter (menggunakan
protokol TCP).
b. Datagram socket adalah pembacaan seluruh pesan dengan segera (menggunakan
protokol UDP).
Pada umumnya, sebuah server merupakan sebuah komputer yang khusus dan
memiliki sebuah socket yang terhubung pada sebuah nomor port yang khusus. Server
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
(passive open). Client mengetahui nama mesin tempat server dijalankan dan nomor port
tempat sever tersebut dihubungkan. Untuk membuat koneksi permintaan, client mencoba
untuk melakukan koneksi dengan server pada mesin server dan port (active open).
Gambar 2.10 Client Meminta Koneksi
Apabila semuanya berjalan dengan baik, maka server menerima koneksi. Saat
penerimaan, server membuka socket baru yang terhubung pada port yang berbeda. Untuk
dapat melanjutkan penerimaan dari socket awal untuk koneksi permintaan saat melayani
kebutuhan client yang terhubung, dibutuhkan sebuah socket baru (dengan nomor port
yang berbeda).
Gambar 2.11 Respon Server
Pada sisi client, jika koneksi diterima, sebuah socket berhasil dibentuk dan client
dapat menggunakan socket tersebut untuk berkomunikasi dengan server. Client dan
server sekarang dapat berkomunikasi untuk menulis atau membaca dari socket tersebut.
2.5.2 Windows Socket (WinSock)
Sistem operasi Windows memiliki Application Programming Interface (API)
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
Pemrograman API sendiri sudah sangat sulit karena pemrograman API sudah berurusan
dengan aras rendah. Aras rendah tidak diizinkan secara langsung untuk diakses. Akan
tetapi, Windows telah menyediakan API, yaitu berupa sekumpulan fungsi untuk
mengakses aras rendah. Untuk membantu para programer dalam hal pembuatan software
yang dapat berkomunikasi dengan komputer lain maka disediakanlah sebuah komponen
ActiveX control yang bernama WinSock Control.
WinSock secara khusus didefinisikan dengan bagaimana sebuah software
jaringan Windows harus mengakses layanan jaringan, terutama TCP/IP. WinSock
menyediakan layanan API tunggal dimana pengembang aplikasi dan software jaringan
perlu untuk menyesuaikan diri. Untuk beberapa versi dari Windows, WinSock
didefinisikan sebagai binary interface yang menjamin sebuah aplikasi cocok pada
WinSock API yang dapat berjalan pada software jaringan dari berbagai pengembang.
Dengan WinSock control maka programer tidak perlu mengetahui detail TCP/IP
dan pemanggilan fungsi API untuk membuat sebuah aplikasi jaringan karena programer
hanya menggunakan metode, properti atau event yang dimiliki oleh WinSock [11]. Proses
komunikasi client-server menggunakan socket dapat dilihat pada Gambar 2.12
Client
Connection Request
Gambar 2.12 Koneksi Menggunakan Socket
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
PROSES TRANSAKSI DATA CLIENT SERVER
3.1 Koneksi TCP
TCP dikatakan berorientasi koneksi (connection oriented) karena sebelum satu
proses aplikasi mulai mengirimkan data kepada yang lain, maka dua proses harus
“berjabat tangan” terlebih dahulu dengan yang lain. Dalam hal ini harus mengirimkan
segmen pendahuluan kepada yang lain untuk membangun parameter pengiriman data.
Sekarang akan dilihat bagaimana koneksi TCP dibangun. Proses dijalankan pada
satu host yang ingin memulai koneksi dengan proses pada host lainnya. Demikian proses
yang memulai koneksi disebut proses client, sementara proses lain disebut proses server.
Proses aplikasi client pertama kali memberitahukan kepada lapisan transport client,
bahwa ia ingin membangun koneksi terhadap proses dalam server.
Socket clientSocket = new Socket (“hostname”, portNumber);
Dimana hostname adalah nama server dan portNumber mengidentifikasikan
proses pada server. Lapisan transport di dalam client kemudian mulai membangun
koneksi TCP dengan TCP dalam server. Client pertama kali mengirimkan segmen TCP
khusus, server merespon dengan segmen TCP khusus yang kedua dan akhirnya client
merespon lagi dengan segmen khusus ketiga. Dua segmen pertama tidak ada membawa
data lapisan aplikasi, sedangkan segmen ketiga dapat membawa data. Karena tiga segmen
dikirimkan diantara dua host, proses pembangunan koneksi ini disebut tiga arah jabatan
tangan (three way handshake). Saat koneksi TCP dibangun, dua proses aplikasi dapat
mengirimkan data kepada yang lain. Proses client melewati aliran data melalui socket
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
bekerja pada client. Pada Gambar 3.1, TCP mengarahkan data ini kepada koneksi buffer
pengiriman (send buffer). TCP akan mengambil potongan data dari buffer pengiriman.
Jumlah maksimum data yang dapat diambil dan ditempatkan dalam segmen dibatasi oleh
ukuran segmen maksimum (MSS). MSS diset oleh penentuan pertama panjang frame
lapisan link yang dikirimkan oleh host pengiriman lokal (maximum transmission unit,
MTU) dan kemudian menetapkan MSS guna memastikan bahwa segmen TCP ini akan
sesuai ke dalam frame lapisan link. Nilai untuk MTU adalah 1.460 byte, 536 byte dan 512
byte.
Gambar 3.1 TCP Mengirim dan Menerima Buffer
Sebagai catatan bahwa MSS adalah jumlah maksimum data lapisan aplikasi dalam
segmen, bukan ukuran maksimum dari segmen TCP termasuk header.
Dari pembahasan ini koneksi TCP terdiri dari buffer, variabel dan koneksi socket
pada proses di dalam host. Sebagaimana disebutkan sebelumnya, tidak ada buffer atau
variabel yang ditempatkan pada koneksi dalam elemen jaringan diantara host.
3.2 Struktur Segmen TCP
Segmen TCP ini terdiri dari field header dan field data. Field data mengandung
sejumlah data aplikasi. Sebagaimana disebutkan diatas, MSS membatasi ukuran
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
maka secara khusus akan menguraikan file itu ke dalam ukuran MSS. Gambar 3.2
memperlihatkan struktur segmen TCP. Seperti halnya dengan UDP, maka header
meliputi nomor sumber dan nomor port tujuan, yang digunakan untuk
multipleks/demultipleks data dari/ke aplikasi lapisan atas. Demikian juga dengan UDP,
memiliki checksum field. Header segmen TCP memuat field berikut:
32 bit sequence number field dan 32 bit acknowledgement number field yang
digunakan oleh pengirim TCP dan penerima dalam pelaksanaan layanan pengiriman
data.
Source port # Dest. Port # Sequence number
16 bit receive window field digunakan untuk flow control. Digunakan untuk
menyatakan jumlah byte yang akan diterima oleh receiver.
4 bit header length field yang menspesifikasikan panjang header TCP dalam 32 bit
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
Optional field digunakan ketika pengirim dan penerima menegosiasikan ukuran
segmen maksimum (MSS).
Flag field terdiri dari 6 bit. Bit ACK digunakan untuk menyatakan bahwa nilai yang
dibawa dalam acknowledgement field adalah valid sehingga segmen yang memuat
acknowledgement dinyatakan sudah diterima dengan baik. Bit RST, SYN dan FIN
digunakan untuk memulai. Pengaturan bit PSH menyatakan bahwa penerima harus
melewatkan data ke lapisan atas. Dan bit URG digunakan untuk menunjukkan bahwa
data dalam segmen yang dikirimkan pada lapisan atas telah ditandai dalam situasi
urgent.
3.2.1 Nomor Urut dan Nomor Acknowledgement
Dua field penting dalam header segmen TCP adalah field nomor urut dan field
nomor konfirmasi (acknowledgement). Field ini adalah bagian penting dari pengiriman
data reliable TCP. TCP memandang data sebagai sesuatu yang tidak terstruktur tetapi
berurutan dari sebuah aliran byte. Pemakaian nomor urut dari TCP akan merefleksikan
tinjauan ini bahwa nomor urut (sequence number) berada di atas aliran byte yang
ditransmisikan dan bukan di atas rentetan segmen yang ditransmisikan. Nomor urut dari
segmen ini merupakan nomor byte stream dari byte pertama dalam segmen. Sebagai
contoh, host A mengirimkan aliran data ke dalam proses host B pada koneksi TCP. TCP
dalam host A secara lengkap menomori setiap byte dalam aliran data. Dinyatakan aliran
data terdiri dari file dengan 500.000 byte dan MSS adalah 1.000 byte dan bahwa byte
pertama dari aliran data bernomor nol. Seperti yang ditunjukkan pada Gambar 3.3, TCP
tidak ada memuat 500 segmen pada aliran datanya. Segmen pertama diberi nomor 0, dan
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
dimasukkan ke field nomor dalam header segmen TCP yang sesuai. Contoh lain, host A
menerima satu segmen dari host B dengan byte 0 hingga 535 dan segmen lain dengan
byte 900 hingga 1.000. Untuk alasan tertentu, host A tidak menerima byte 536 hingga
899. Dalam contoh ini, host A menunggu byte 536 untuk dapat menciptakan kembali data
stream B. Oleh sebab itu, segmen A berikutnya menuju B akan memuat 536 dalam field
nomor acknowledgement. Karena TCP hanya mengkonfirmasikan byte sampai ke byte
pertama yang salah dalam aliran, maka TCP disebut menyediakan cumulative
acknowledgement.
0 1 1000 1.999 499.999
Data for 1st segment Data for 2nd segment File
Gambar 3.3 Pembagian Data File ke Dalam Segmen TCP
Pada Gambar 3.3, diasumsikan bahwa nomor urutan awalnya adalah nol. Kedua sisi dari
koneksi TCP ini memilih nomor urutan awal. Ini dilakukan guna meminimumkan
kemungkinkan segmen pada jaringan, koneksinya berakhir diantara dua host yang keliru
terhadap segmen yang valid di waktu yang akan datang.
3.3 Transfer Data Reliable
TCP menciptakan layanan transfer data yang reliable diatas layanan IP yang
unreliable. Layanan transfer data reliable TCP memastikan bahwa aliran data itu adalah
sebuah proses dari TCP yang menerima buffer yang tidak terkorup, tanpa gap, tanpa
duplikasi dan dalam urutannya. Disini akan dibahas bagaimana TCP menyediakan
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
TCP yang menggunakan timeout untuk menemukan segmen yang hilang, kemudian
mengkaji uraian yang menggunakan acknowledgement duplikat untuk timeout. Dalam
pembahasan ini diyatakan bahwa data itu dikirimkan dalam satu arah dari host A ke host
B, dan host A mengirimkan file yang besar.
3.3.1 Beberapa Skenario Dalam Transfer Data
Gambar 3.4 menggambarkan skenario pertama, dimana host A mengirimkan satu
segmen ke host B. Segmen ini memiliki nomor urut 92 dan memuat 8 byte data. Setelah
mengirimkan segmen ini, host A menunggu segmen dari host B dengan nomor
konfirmasi (acknowledgement) 100. Meskipun segmen dari A diterima B, namun
konfirmasi dari B ke A telah hilang. Dalam kasus ini, peristiwa timeout terjadi dan host A
meretransmisikan segmen yang sama. Ketika host B menerima retransmisi, host B
memperhatikan sequence number (nomor urutan) dari segmen yang berisi data yang baru
saja diterimanya. Oleh sebab itu, TCP dalam host B akan melepas byte dalam segmen
yang diretransmisikan.
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
Skenario kedua seperti pada Gambar 3.5, host A mengirimkan dua segmen
kembali ke belakang. Segmen pertama memiliki nomor urutan 92 dan 8 byte data dan
segmen kedua memiliki nomor urutan 100 dan 20 byte data. Kedua segmen tiba di B dan
B mengirimkan dua konfirmasi terpisah untuk masing-masing segmen ini. Pertama, dari
konfirmasi yang memiliki nomor konfirmasi (acknowledgement) 100, yang kedua adalah
120. Keduanya tiba di host A sebelum timeout. Ketika timeout terjadi, maka host A
mengirimkan kembali segmen pertama dengan nomor urutan 92 dan kembali memulai
timer. Sepanjang ACK untuk segmen kedua sampai sebelum timeout yang baru, segmen
kedua tidak akan diretransmisikan.
Gambar 3.5 Segmen 100 Tidak Diretransmisikan
Dalam skenario ketiga, host A mengirimkan dua segmen. Konfimasi dari segmen
pertama hilang di dalam jaringan, namun tepat sebelum peristiwa timeout. Host A
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
mengetahui bahwa host B telah menerima segala sesuatunya melalui byte 119, jadi host A
tidak mengirimkan kembali salah satu dari dua segmen tersebut. Skenario ini
diilustrasikan pada Gambar 3.6.
Gambar 3.6 Cumulative Acknowledgement Membatalkan Retransmisi Segmen Pertama
3.3.2 Interval Timeout Dua Kali Lipat
Sekarang dibahas beberapa modifikasi implementasi TCP. Pertama adalah
panjang interval timeout setelah timer berakhir. Dalam modifikasi ini, bila timeout terjadi
TCP meretransmisi segmen yang belum dikonfirmasi dengan nomor urut yang paling
kecil. Tetapi masing-masing retransmisi TCP, menset interval timeout berikutnya ke nilai
sebelumnya dua kali, daripada menurunkannya dari EstimatedRTT dan DevRTT yang
terakhir. Misalnya, dinyatakan TimeoutInterval yang berkaitan dengan segmen yang
belum dikonfirmasi adalah 0,75 detik ketika timer berakhir untuk pertama kali, TCP akan
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
Jika timer ini berakhir 1,5 detik kemudian, TCP akan meretransmisikan segmen ini,
sekarang tetapkan waktu berakhirnya ke 3,0 detik. Sehingga interval akan tumbuh secara
eksponensial setelah pengiriman ulang. Ketika timer itu dimulai setelah salah satu dari
dua kejadian lain, maka TimeoutInterval diturunkan melalui nilai yang paling baru dari
EstimatedRTT dan DevRTT.
Modifikasi ini memberikan batasan dari kontrol kongesti. Berakhirnya timer
disebabkan oleh kemacetan dalam jaringan dan juga beberapa paket yang tiba pada satu
antrian diantara sumber dan tujuan, menyebakan paket dibatalkan dan juga adanya delay
yang panjang dalam antrian. Disamping itu, TCP bertindak lebih baik dengan
masing-masing pengirim melakukan retransmisi dalam interval yang lebih lama.
3.3.3 Retransmisi yang Cepat (Fast Retransmit)
Salah satu permasalahan yang berkaitan dengan retransmisi yang dipicu timeout
adalah periode timeout yang lebih lama. Ketika segmen itu hilang, maka periode timeout
yang panjang ini memaksa pengirim memperlambat pengiriman paket yang hilang
sehingga meningkatkan delay end to end. Demikian juga pengirim seringkali mendeteksi
kehilangan paket sebelum kejadian timeout terjadi dan ini disebut duplikasi ACK.
Duplikasi ACK adalah ACK yang mengkonfirmasi ulang segmen dimana pengirim baru
saja menerima sebuah konfirmasi. Untuk memahami respon pengirim untuk duplikat
ACK, harus dilihat mengapa penerima mengirimkan duplikat ACK untuk pertama kali.
Ketika penerima TCP ini menerima segmen dengan sebuah nomor urutan yang lebih
besar daripada berikutnya, penerima mendeteksi sebuah kekosongan dalam aliran data,
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
maka penerima tidak dapat mengirimkan konfirmasi negatif kembali kepada pengirim.
Sebagai pengganti, dikonfirmasi kembali byte terakhir data yang sudah diterima.
Karena pengirim sering mengirimkan jumlah segmen yang besar kembali ke
belakang, jika satu segmen hilang maka akan ada banyak duplikat ACK. Jika pengirim
TCP menerima tiga duplikat ACK untuk data yang sama, maka ini diambil sebagai
indikasi bahwa segmen yang di-ACK tiga kali sudah hilang. Dalam kasus ini tiga ACK
duplikat diterima, pengirim TCP melakukan fast retransmit (retransmisi cepat),
mentransmisi ulang segmen sebelum timer segmen berakhir.
3.4 Penanganan Koneksi TCP
Dalam sub bagian ini akan dibahas dari dekat bagaimana koneksi TCP dibangun
dan menguraikannya. Meskipun topik ini terlihat tidak terlalu khusus, namun perlu
karena pembentukan koneksi TCP ini dapat menjelaskan delay yang ada. Lebih lanjut,
banyak serangan jaringan, termasuk serangan SYN dengan memanfatkan pengelolaan
koneksi TCP. Pertama dibahas bagaimana koneksi TCP dibentuk. Nyatakanlah proses
yang dijalankan itu dalam satu host (client) ingin memulai koneksi dengan proses dalam
host yang lain (server). Proses aplikasi client ini pertama kali memberitahukan TCP
client bahwa ia mau membangun sebuah koneksi proses dalam server. TCP dalam client
kemudian memulai membangun koneksi TCP dalam server dengan cara sebagai berikut:
Langkah 1. TCP sisi client mengirimkan segmen TCP khusus pada sisi server TCP.
Segmen khusus ini tidak memiliki data lapisan aplikasi. Tetapi salah satu bit flag
dalam header segmen, bit SYN, diset 1. Untuk alasan itu, segmen khusus ini disebut
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
dan meletakkan nomor ini ke dalam field nomor urut (sequence number) dari TCP
SYN awal. Segmen ini dikemas dalam datagram IP dan mengirimkannya ke server.
Langkah 2. Sekali datagram IP yang memuat segmen TCP SYN tiba pada host server,
maka server akan mengeksktrak segmen TCP SYN dari datagram, mengalokasikan
buffer TCP dan variabel menuju koneksi dan mengirimkan segmen yang disetujui ini
kepada TCP client. Segmen yang disetujui ini juga tidak memuat data lapisan
aplikasi. Begitupun, ia memuat tiga bagian informasi penting dalam header segmen.
Pertama, bit SYN diset 1. Kedua, field acknowledgement dari header segmen TCP
diset ke client_isn+1. Akhirnya, server memilih nomor urutan awalnya (server_isn)
dan menempatkan nilai ini pada field nomor urut dari header segmen TCP. Segmen
yang disetujui ini akan berkata,”Saya menerima paket SYN anda untuk memulai
koneksi dengan nomor urut awalmu, client_isn. Saya setuju untuk membangun
koneksi ini. Nomor urut awal yang saya miliki adalah server_isn”. Segmen koneksi
yang disetujui ini disebut juga sebagai segmen SYNACK.
Langkah 3. Setelah menerima segmen SYNACK, client juga mengalokasikan buffer
dan variabel pada koneksi. Host client mengirimkan kepada server segmen lain,
Segmen terakhir ini mengkonfirmasikan segmen server (client juga melakukannya
dengan menempatkan nilai server_isn+1 pada field acknowledgement dari header
segmen TCP). Bit SYN diset ke 0, semenjak koneksi dibangun.
Setelah tiga langkah diselesaikan, client dan server dapat mengirimkan segmen yang
memuat data satu sama lain. Dalam setiap segmen ini, bit SYN akan diset ke nol. Sebagai
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
diilustrasikan pada Gambar 3.7. Dengan alasan tersebut, aturan membangun koneksi ini
sering dinamakan three way handshake (jabatan tangan tiga arah).
Gambar 3.7 Jabatan Tangan (handshake) Tiga Arah TCP
Sekarang akan dibahas bagaimana proses untuk mengakhiri koneksi TCP. Salah
satu dari dua proses yang berpartisipasi dalam koneksi TCP dapat mengakhiri koneksi.
Ketika koneksi berakhir, maka “sumber” dalam host akan dibebaskan. Anggap client
memutuskan untuk menutup koneksi seperti pada Gambar 3.8. Proses aplikasi client
mengeluarkan perintah untuk menutup koneksi. Hal ini menyebabkan TCP client
mengirimkan segmen TCP khusus kepada proses server. Segmen khusus ini memiliki
sebuah bit flag dalam header segmen, yaitu bit FIN diset ke 1. Ketika server menerima
segmen ini, ia mengirimkan client sebuah segmen acknowledgement. Server kemudian
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
mengkonfirmasikan segmen menutup (shutdown) server. Dalam hal ini, semua sumber
daya yang ada pada kedua host diakhiri.
Gambar 3.8 Penutupan Koneksi TCP
Selama pemakaian koneksi TCP, protokol TCP yang berjalan pada
masing-masing host melakukan peralihan melalui berbagai kondisi TCP. Gambar 3.9
mengilustrasikan urutan kondisi TCP dengan kunjungan TCP client. TCP client ini
memulai kondisi CLOSED. Aplikasi pada sisi client memulai koneksi TCP yang baru.
Ini meyebabkan TCP pada client mengirimkan segmen SYN pada TCP dalam server.
Setelah mengirimkan segmen SYN, TCP client membuka kondisi SYN_SENT. Ketika
dalam kondisi SYN_SENT, TCP client menunggu sebuah segmen dari TCP server yang
memasukkan sebuah konfirmasi untuk segmen client sebelumnya dan memiliki bit SYN
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
Ketika dalam kondisi ESTABLISHED, client TCP dapat mengirim dan menerima
segmen TCP yang berisikan data.
Anggap bahwa aplikasi client memutuskan ingin menutup koneksi. Hal ini
menyebabkan TCP client mengirimkan sebuah segmen TCP dengan bit FIN diset 1.
Ketika dalam kondisi FIN_WAIT_1, TCP client menunggu sebuah segmen TCP dari
server dengan sebuah acknowledgement. Ketika ia menerima segmen ini, TCP client
membuka kondisi FIN_WAIT_2. Ketika dalam kondisi FIN_WAIT_2, client menunggu
segmen yang lain dari server dengan bit FIN diset 1. Setelah menerima segmen ini, TCP
client mengkonfirmasikan segmen server dan membuka kondisi TIME_WAIT. Kondisi
TIME_WAIT membiarkan client TCP mengirimkan ulang acknowledgement terakhir
dalam kasus ACK hilang. Waktu yang dihabiskan dalam kondisi TIME_WAIT ini adalah
implementasi tanggungan, namun nilai yang khusus adalah 30 detik, 1 menit, dan 2
menit. Setelah menunggu, koneksi dengan resmi ditutup dan semua sumber daya pada
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
Gambar 3.9 Urutan Kondisi TCP yang Dikunjungi oleh TCP Client
Gambar 3.10 mengilustrasikan rangkaian kondisi yang dikunjungi oleh TCP sisi
server dengan mengasumsikan client memulai uraian koneksi. Transisi ini merupakan
penjelas. Dalam dua diagram kondisi transisi ini hanya diketahui bagaimana koneksi TCP
ini dibangun dan ditutup. Sehingga tidak perlu dijelaskan apa yang telah terjadi dalam
skenario pathologic, sebagai contoh ketika kedua sisi dari koneksi mau memulai atau
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
Gambar 3.10 Urutan Kondisi TCP yang Dikunjungi oleh TCP Server
Sekarang dijelaskan apa yang terjadi ketika host menerima segmen TCP yang
memiliki nomor port atau alamat IP sumber yang tidak sesuai dengan socket dalam host.
Misalnya anggap sebuah host menerima paket TCP SYN dengan port tujuan 80, tetapi
host itu tidak menerima koneksi pada port 80. Maka host akan mengirimkan segmen
reset khusus pada sumber. Segmen TCP memiliki bit flag RST yang diset ke 1 [9].
Sehingga ketika host mengirimkan segmen itu, ia akan berbicara ke sumber, “Saya tidak
punya socket untuk segmen itu. Tolong jangan kirim kembali segmen itu.”
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
PERANCANGAN PERANGKAT LUNAK SISTEM KOMUNIKASI CLIENT SERVER
4.1 Kebutuhan Sistem
Perangkat lunak untuk merancang sistem komunikasi client-server ini
menggunakan software visual basic 6.0. Sedangkan kebutuhan sistem yang diperlukan
untuk menginstalasi perangkat lunak sistem komunikasi client-server ini berupa sistem
operasi pada sisi client dan server dan perangkat keras komputer yang digunakan.
4.1.1 Sistem Operasi
Pada komputer client digunakan sistem operasi Windows XP Proffesional,
sedangkan komputer server menggunakan sistem operasi Windows Server 2000.
4.1.2 Perangkat Keras Komputer
Untuk perangkat keras komputer server digunakan Intel Pentium 4. Sedangkan
untuk komputer client dipakai Intel Pentium 3. Kedua komputer tersebut harus dilengkapi
dengan NIC untuk menghubungkan komputer dengan switch atau hub. Serta dibutuhkan
sebuah hub atau switch minimal 4 port.
4.2 Tahap-Tahap Perancangan Perangkat Lunak
Pada bab ini akan diuraikan langkah-langkah dalam merancang perangkat lunak
yang dimulai dari fase menganalisa sebuah kebutuhan akan perangkat lunak hingga
menguji sebuah perangkat lunak yang telah selesai dikembangkan.
4.2.1 Analisis Kebutuhan
Frans A. Siagian : Perancangan Komunikasi Client Server Dan Sistem Database, 2008 USU Repository © 2009
mempunyai kemampuan untuk memudahkan server dalam mengontrol komputer client,
memudahkan client untuk saling berkirim pesan dan berbagi data kepada sesama client
maupun kemudahan bagi client untuk mengakses data yang ada pada komputer server.
Berdasarkan kebutuhan di atas, maka dibuat window (form) utama server dan client.
Window utama tersebut masing-masing memiliki menu pilihan sesuai dengan fungsinya
masing-masing. Pada window utama server terdapat empat menu pilihan yaitu aplikasi,
explorer, client remote, dan peripheral. Melalui menu yang telah tersedia tersebut, server
dapat lebih mudah dalam mengontrol komputer client. Sedangkan pada window utama
client ada empat menu pilihan antara lain chatting, explorer, aplikasi dan akses database.
4.2.2 Spesifikasi Kebutuhan
Setelah kebutuhan perancangan perangkat lunak ditentukan, selanjutnya
menentukan struktur dari perangkat lunak tersebut. Struktur ini menggambarkan alur dari
pengoperasian perangkat lunak yang sedang dikembangkan. Alur pengoperasian
perangkat lunak dapat ditunjukkan pada bentuk diagram alir.
4.2.2.1 Diagram Alir
Diagram alir komunikasi client-server menunjukkan aktivitas antara server dan
client. Client memulai permintaan layanan (request), server nenanggapi request tersebut
(response), selanjutnya permintaan layanan client diproses oleh server. Server
memperhatikan apakah request client dapat dipenuhi atau tidak. Jika terpenuhi, server
akan mengirimkan kembali hasil permintaan tersebut ke client. Namun, apabila request
client tersebut tidak terpenuhi, server akan mengkonfirmasikan client bahwa permintaan
layanan saat ini belum bisa dipenuhi. Selanjutnya, proses client-server kembali ke awal