BAB 2 LANDASAN TEORI
2.1 Teori Dasar / Umum Penggabungan teknologi komputer dan komunikasi sangat berpengaruh terhadap bentuk organisasi sistem komputer. Pada bab ini penulis akan membahas mengenai segala bentuk teori – teori dasar baik teori umum maupun teori khusus yang mempuyai hubungan langsung maupun tidak langsung dengan program yang akan dibuat.
2.1.1
Jaringan Komputer Jaringan komputer adalah sejumlah komputer yang dikelompokkan dan dihubungkan satu dengan yang lainnya menggunakan protocol komunikasi melalui media transmisi atau media komunikasi, sehingga dapat saling berbagi data atau informasi, program-program, penggunaan bersama piranti keras (printer, hardisk, scanner, CD Room, serta piranti keras lainnya), dan memberikan layanan komunikasi antar pemakai. Agar dapat mencapai tujuan yang sama, setiap bagian dari jaringan komputer meminta dan memberikan layanan (service). Pihak yang meminta layanan disebut klien (client) dan yang memberikan layanan disebut pelayan (server). Arsitektur ini disebut dengan sistem client-server, dan digunakan pada hampir seluruh aplikasi jaringan komputer.
7
8
Dua buah komputer dikatakan saling tersambung bila keduanya dapat saling bertukar informasi dengan media perantara contonya seperti kawat, serat optik gelombang mikro, satelit, dsb. (Tanenbaum, 2003). Jaringan komputer berdasarkan ruang lingkup dan jangkauan dapat dibagi menjadi tiga kelompok, yaitu : 1. Local Area Network (LAN) Local Area Network merupakan jaringan yang hanya mencakup berberapa kilometer saja seperti jaringan dalam sebuah perusahaan atau jaringan dalam rumah. LAN memungkinkan pengguna berbagi akses ke file-file yang sama dan menggunakan printer secara lebih efisien, serta membentuk komunikasi internal.
Secara garis besar, LAN adalah sebuah jaringan komunikasi antar komputer yang : •
Bersifat lokal
•
Dikontrol oleh suatu kekuasaan administratif
Biasanya mempunyai kecepatan yang tinggi dan data dalam semua komputer selalu di sharing. (Tanenbaum, 2003).
2. Metropolitan Area Network (MAN) Metropolitan Area Network mencakup area geografis sebuah kota seperti jasa televisi kabel dalam sebuah kota dan sebuah bank dengan kantor cabang di satu kota.
9
Metropolitan Area Network merupakan versi dari LAN yang berukuran lebih besar dan biasanya memakai teknologi yang sama dengan LAN. Area cakupan MAN lebih besar daripada LAN namun lebih kecil daripada WAN. (Tanenbaum, 2003).
3. Wide Area Network (WAN) Wide Area Network dipakai secara umum sebagai alat untuk mengatasi jarak geografis yang luas, memakai jaringan publik seperti telepon, atau jaringan data paket dan lainnya agar dapat terjadi hubungan komunikasi walaupun jarak yang jauh. Secara khusus, WAN terdiri dari sejumlah switching node yang saling dihubungkan. Ketika data dikirim, WAN akan melewati sejumlah switching node untuk mencapai tujuannya.
Banyak jaringan WAN yang telah dibangun seperti jaringan publik, jaringan korporasi yang besar, jaringan militer, jaringan perbankan, jaringan perdagangan online, dan jaringan pemesanan jasa angkutan. Secara umum, WAN telah dilengkapi secara khusus agar mampu menggunakan satu dari dua teknologi yang paling banyak dipakai oleh publik yaitu ”jaringan switch” atau sering disebut jaringan telpon dan jaringan paket.
10
Beberapa teknologi WAN yang banyak dijumpai : modem, Integrated Services Digital Network (ISDN), Digital Subscriber Line (DSL), Frame Relay. (Tanenbaum, 2003).
2.1.2
TCP / IP Definisi dari TCP/IP adalah sebuah protokol yang menentukan bagaimana komputer – komputer dalam suatu jaringan saling terhubung, mengirim, serta menerima pesan lewat internet. TCP/IP merupakan “bahasa internet”, dimana TCP/IP memungkinkan aneka jenis komputer, dari PC sampai mainframe untu bertukar informasi. TCP/IP protocol suite terdiri dari banyak protokol dengan dua protokol utama, yaitu Transport Control Protocol (TCP) dan Internet Protocol (IP). Dalam protokol jaringan TCP/IP, sebuah port adalah mekanisme yang mengizinkan sebuah komputer untuk mendukung beberapa sesi koneksi dengan komputer lainnya dan program di dalam jaringan. Port
dapat
mengidentifikasikan
aplikasi
dan
layanan
yang
menggunakan koneksi di dalam jaringan TCP/IP. Sehingga, port juga mengidentifikasikan sebuah proses tertentu di mana sebuah server dapat memberikan sebuah layanan kepada klien atau bagaimana sebuah klien dapat mengakses sebuah layanan yang ada dalam server. Port dapat dikenali dengan angka 16-bit (dua byte) yang disebut dengan Port Number dan diklasifikasikan dengan jenis protokol transport apa yang digunakan, ke dalam Port TCP dan Port UDP.
11
Dilihat dari penomorannya, port UDP dan TCP dibagi menjadi tiga jenis, yakni sebagai berikut: a. Well-known Port Awalnya berkisar antara 0 hingga 255 tapi kemudian diperlebar untuk mendukung antara 0 hingga 1023. Port number yang termasuk ke dalam well-known port, selalu merepresentasikan layanan jaringan yang sama, dan ditetapkan oleh Internet Assigned Number Authority (IANA). Beberapa di antara portport yang berada di dalam range Well-known port masih belum ditetapkan dan direservasikan untuk digunakan oleh layanan yang bakal ada di masa depan. Well-known port didefinisikan dalam RFC 1060. b. Registered Port Port-port yang digunakan oleh vendor-vendor komputer atau jaringan yang berbeda untuk mendukung aplikasi dan sistem operasi yang mereka buat. Registered port juga diketahui dan didaftarkan oleh IANA tapi tidak dialokasikan secara permanen, sehingga vendor lainnya dapat menggunakan port number yang sama. Range registered port berkisar dari 1024 hingga 49151 dan beberapa port di antaranya adalah Dynamically Assigned Port. c. Dynamically Assigned Port Merupakan port-port yang ditetapkan oleh sistem operasi atau aplikasi yang digunakan untuk melayani request dari pengguna sesuai dengan kebutuhan. Dynamically Assigned Port berkisar
12
dari 1024 hingga 65536 dan dapat digunakan atau dilepaskan sesuai kebutuhan.
2.1.3
Model OSI (Open System Interconnection) Pada awalnya, komputer diciptakan dengan standar perusahaan masing-masing. Hal ini terjadi dikarenakan adanya persaingan antar perusahaan, sehingga komputer yang berbeda standarnya sulit untuk berkomunikasi. Untuk mengatasi masalah ini, International Organization of Standardization (ISO) menciptakan model jaringan agar dinamakan Open System Interconnection (OSI), model inilah yang menjadi model primer dalam komunikasi jaringan. OSI terdiri dari tujuh layer yang terpisah, tapi saling berhubungan dan setiap bagian mendefinisikan bagaimana informasi berjalan melalui jaringan. Dalam arsitektur ber-layer, komunikasi antara dua layer yang berhubungan menggunakan paket data yang disebut Protocol Data Unit (PDU). (Stallings, 2004).
Berikut Penjelasan tiap-tiap layer dari OSI layer : Layer 7 : Application Layer Menyediakan jasa untuk aplikasi pengguna. Layer ini bertanggungjawab atas pertukaran informasi antara program komputer, seperti program e-
13
mail, dan service lain yang jalan di jaringan, seperti server printer atau aplikasi komputer lainnya. Layer 6 : Presentation Layer Bertanggung jawab bagaimana data dikonversi dan diformat untuk transfer data. Contoh konversi format text ASCII untuk dokumen, GIF dan JPG untuk gambar. Layer ini membentuk kode konversi, translasi data, enkripsi dan konversi. Layer 5 : Session Layer Menentukan bagaimana dua terminal menjaga, memelihara dan mengatur koneksi, bagaimana mereka saling berhubungan satu sama lain. Koneksi di layer ini disebut “session”. Layer 4 : Transport Layer Bertanggung jawab membagi data menjadi segmen, menjaga koneksi logika “end-to-end” antar terminal, dan menyediakan penanganan error (error handling). Layer 3 : Network Layer Bertanggung jawab menentukan alamat jaringan, menentukan rute yang harus diambil selama perjalanan, dan menjaga antrian trafik di jaringan. Data pada layer ini berbentuk paket.
14
Layer 2 : Data Link Layer Menyediakan link untuk data, memaketkannya menjadi frame yang berhubungan dengan “hardware” kemudian diangkut melalui media. komunikasinya dengan kartu jaringan, mengatur komunikasi layer physical antara sistem koneksi dan penanganan error. Layer 1 : Physical Layer Bertanggung jawab atas proses data menjadi bit dan mentransfernya melalui media, seperti kabel, dan menjaga koneksi fisik antar sistem.
Gambar 2.1 Tujuh Layer OSI (www.freetechexams.com) 2.1.4
Model TCP/IP Terdapat empat layer yang dikenal dalam TCP/IP, yaitu: Layer 4 : Application Layer Application Layer merupakan sisi paling atas dari arsitektur protokol TCP/IP. Pada layer ini terletak semua aplikasi yang menggunakan protokol TCP/IP
15
seperti FTP (File Transfer Protocol), SMTP (Simple Mail Transfer Protokol), dan HTTP (Hyper Text Transfer Protocol). Layer 3 : Transport Layer Layer ini bertanggung jawab untuk komunikasi antara aplikasi. ini mengatur aluran informasi dan mungkin menyediakan pemeriksaan error. Data dibagi kedalam
beberapa
paket
yang
dikirim
ke
internet layer
dengan
sebuah header. Header mengandung alamat tujuan, alamat sumber, dan checksum. Checksum diperiksa oleh mesin penerima untuk melihat apakah paket tersebut ada yang hilang pada rute. Layer 2 : Internet Layer Layer ini berkorespondensi dengan network layer pada model OSI, dimana layer ini bertanggung jawab untuk mengirimkan paket data dalam jaringan menggunakan pengalamatan logikal. Layer ini berfungsi untuk melakukan penentuan best path dan packet switching. Layer 1 : Network Access Layer Protokol pada layer ini menyediakan media bagi sistem untuk mengirimkan data ke device lain yang terhubung secara langsung. Fungsi utama dari network access layer adalah mengkonversikan IP packet sehingga bisa dikirim melalui physical link.
16
Gambar 2.2 Model TCP/IP (www.learn-networking.com) 2.1.5
Media Transmisi Ada banyak media yang digunakan untuk membuat suatu jaringan komputer, pada dasarnya dibagi menjadi 2 macam yaitu kabel dan nirkabel. Terdapat beberapa macam teknologi pada masing-masing media ini.. Media kabel merupakan media transmisi yang menyediakan saluran satu perangkat ke perangkat lainnya. Media transmisi adalah suatu jalur antara pemancar dan penerima dalam sistem transmisi data. Pada media guided terdapat tiga jenis kabel, yaitu : 1. Twisted Pair (kabel berpasangan) Twisted pair merupakan medium yang paling murah dan banyak digunakan dalam transmisi guided. Twisted pair terdiri dari dua kabel tembaga yang terisolasi yang disusun dalam jalinan berbentuk spiral.
17
Twisted pair dibagi menjadi dua jenis : •
Unshielded Twisted Pair (UTP) Kabel UTP digunakan untuk kabel telepon, bahkan lebih banyak lagi digunakan dalam gedung perkantoran sebagai medium untuk Local Area Network karena jauh lebih murah, dan lebih mudah digunakan dan dipasang.
Gambar 2.3 Kabel UTP (www.aagusku.blogspot.com) •
Shielded Twisted Pair (STP) Kabel STP memiliki kualitas yang lebih baik sehingga harganya jauh lebih mahal dan lebih sulit penggunaannya dibandingkan dengan UTP (Lukas, 2006, p.58).
18
Gambar 2.4 Kabel STP (www.s3ntani.wordpress.com) 2. Kabel Coaxial Kabel coaxial terdiri dari dua konduktor yang dapat digunakan untuk frekuensi yang lebih tinggi. Kabel ini terdiri dari konduktor berbentuk silinder untuk lapisan luar, yang mengelilingi konduktor bagian dalam.
Kabel coaxial dapat digunakan untuk jarak yang lebih jauh dan dalam jaringan komunikasi yang lebih luas dengan stasiun dan jalur komunikasi yang lebih banyak (Lukas, 2006, p.61).
Gambar 2.5 Kabel Coaxial (www.rhichiemalone.blogspot.com)
19
3. Fiber Optic Kabel ini menggunakan serat kaca atau plastik untuk mentransfer data dalam bentuk gelombang cahaya. Kabel fiber optic tidak terpengaruh oleh aliran listrik ataupun media magnet, kecepatan tinggi, dan dapat mencapai jarak yang jauh tanpa kehilangan data.
Gambar 2.6 Fiber Optic (www.global-b2b-network.com) 2.1.6
Perangkat Keras Perangkat keras (hardware) yang umum digunakan didalam jaringan dan memiliki kemampuan mengakses jaringan : 2.1.6.1
Server Server adalah suatu komputer yang memberikan suatu layanan bagi komputer lain dalam jaringan (ANDI dan Wahana Komputer, 2005, p.92). Layanan tersebut misalnya sharing data, web control, FTP server, monitoring jaringan, dll. Server dapat dibuat dari spesifikasi komputer yang rendah seperti PC hingga yang canggih seperti Mainframe atau Super Computer. Beberapa
20
jenis server adalah PC Server, Branded Server, dan Mainframe Server.
Gambar 2.7 PC Server (www.sda-indo.com) 2.1.6.2
NIC (Network Interface Card) NIC adalah sebuah kartu yang terpasang pada computer untuk dapat terkoneksi ke jaringan. Setiap NIC mempunyai alamat yang unik yang berasal dari perusahaan pembuat NIC. Tujuannya adalah agar tidak ada NIC yang mempunyai alamat yang sama. Teknologi yang digunakan adalah Ethernet atau Token Ring.
21
Gambar 2.8 Network Interface Card (NIC) (www.xbase.ucdavis.edu) 2.1.6.3 Hub
Hub menghubungkan semua komputer yang terhubung ke LAN. Hub adalah repeater dengan jumlah port banyak (multiport repeater). Hub tidak mampu menentukan tujuan. Hub hanya mentrasmisikan sinyal ke setiap line yang terkoneksi dengannya, menggunakan mode half-duplex. Hub meneruskan semua paket data termasuk e-mail, dokumen pengolah kata, spreadsheet, grafik, print request yang mereka terima melalui satu port dari satu workstation ke semua port yang tersisa. Semua user terhubung ke satu hub atau tumpukan hub yang saling terhubung berada dalam satu segmen, berbagi bandwidth hub atau kapasitas pengantaran data. Dengan semakin banyak user yang ditambahkan ke dalam satu segmen, mereka akan
22
bersaing untuk mendapatkan bagian dari jumlah bandwidth yang dialokasikan untuk segmen itu (www.pcmedia.co.id).
Gambar 2.9 Hub (www.hw-group.com ) 2.1.6.4 Switch
Switch menghubungkan semua komputer yang terhubung ke LAN, sama seperti hub. Perbedaannya adalah switch dapat beroperasi dengan mode full-duplex dan mampu mengalihkan jalur dan memfilter informasi ke dan dari tujuan yang spesifik. Switch lebih pintar dibanding hub dan menawarkan dedicated bandwidth kepada user atau kelompok user. Switch meneruskan paket data hanya ke port penerima yang dituju, berdasarkan informasi dalam header paket. Untuk memisahkan transmisi dari port yang lain, switch membuat koneksi sementara antara sumber dan tujuan, kemudian memutuskan koneksi tersebut setelah komunikasi selesai.
23
Gambar 2.10 Switch
(www.wincom.indonetwork.co.id) 2.1.6.5
Router
Router adalah peningkatan kemampuan dari bridge. Router mampu menunjukkan rute/jalur (route) dan memfilter informasi pada jaringan yang berbeda. Beberapa router mampu secara otomatis mendeteksi masalah dan mengalihkan jalur informasi dari area yang bermasalah. Dibandingkan dengan hub dan switch, router masih lebih pintar.
Router
menggunakan
alamat
lengkap
paket
untuk
menentukan router atau workstation mana yang menerima paket. Berdasarkan peta jaringan yang disebut “tabel routing”, router dapat memastikan bahwa paket berjalan melalui jalur yang paling efisien ke tujuan mereka. Jika link antara kedua router gagal, router pengirim dapat memilih rute alternatif supaya traffic tetap berjalan. Router juga menyediakan link antar jaringan yang menggunakan protokol yang berbeda. Router tidak hanya menghubungkan jaringan pada satu lokasi atau satu gedung tetapi
24
mereka menyediakan interface atau socket untuk terhubung ke WAN.
Gambar 2.11 Router (www.kaptenjack.wordpress.com) 2.1.7
Bahasa C Bahasa C dikembangkan pertama kali pada laboratorium Bell (USA) sekitar tahun 1972 oleh Dennis Ritchie pada komputer DEC PDP-11 dengan sistem operasi UNIX. Untuk melaksanakan pembakuan (standardisasi) terhadap bahasa C, ANSI (American National Standards Institute) membentuk team untuk membuat bahasa C standard ANSI, yang dimulai tahun 1983. Standard ANSI inilah yang selanjutnya digunakan sebagai acuan dari berbagai versi C yang beredar dewasa ini. Bahasa C mempunyai kemampuan lebih dibanding dengan bahasa pemrograman yang lain. Bahasa C merupakan bahasa pemrograman yang bersifat portabel, yaitu suatu program yang dibuat dengan bahasa C pada suatu komputer akan dapat dijalankan
25
pada komputer lain dengan sedikit (atau tanpa) perubahan yang berarti. Bahasa C merupakan bahasa yang biasa digunakan untuk keperluan pemrograman sistem, antara lain untuk membuat : •
assembler
•
interpreter
•
kompiler
•
sistem operasi
•
program bantu (utility)
•
editor
•
paket program aplikasi
Beberapa program paket yang beredar seperti dBase dibuat dengan menggunakan bahasa C, bahkan sistem Operasi UNIX juga dibuat dengan menggunakan bahasa C. Bahasa C sesungguhnya merupakan
bahasa
pemrograman
yang
serbaguna
yang
pemakaiannya tidak terbatas untuk pemrograman sistem, namun juga dapat digunakan untuk aplikasi bisnis, matematis maupun games, bahkan untuk aplikasi kecerdasan buatan. Dalam beberapa literatur, bahasa C digolongkan sebagai bahasa aras menengah (medium level language). Penggolongan ini bukan berarti bahasa C kurang ampuh atau lebih sulit dibandingkan dengan bahasa aras tinggi (high level
26
language, seperti Pascal, Basic, Fortran, dll), namun untuk menegaskan bahwa bahasa C bukanlah bahasa yang berorientasi pada mesin (yang merupakan ciri bahasa aras rendah (low level language), yaitu bahasa mesin dan assembly). Pada kenyataannya, C mengkombinasikan elemen dalam bahasa aras tinggi dan bahasa aras rendah, yaitu kemudahan dalam membuat program yang ditawarkan pada bahasa aras tinggi dan kecepatan eksekusi dari bahasa aras rendah.
2.1.8
Flowchart Flowchart adalah penyajian yang sistematis tentang proses dan logika dari kegiatan penanganan informasi. Program flowchart adalah suatu bagan dengan simbol-simbol tertentu yang menggambarkan urutas proses secara mendetail dan hubungan antara suatu proses (instruksi) dengan proses lainnya dalam suatu program. Dalam penggunaanya flowchart dapat memberikan gambaran yang jelas, efektif dan ringkas tentang prosedure logic. Teknik penyajiaanya bersifat grafis yang dapat mempermudah dari pada harus melihat text khususnya dalam menyajikan logika yang atau codingan yang bersifat komples.
27
Tabel 2.1 Simbol – Simbol Flow Chart
2.2
Teori khusus yang Berhubungan dengan Topik yang Dibahas 2.2.1
Unicast Unicast merupakan jenis paket yang berasal dari satu titik, dan
memiliki tujuan hanya satu titik yang lain (titik bisa berarti komputer, atau peralatan jaringan lainnya). Ditilik dari ‘bedah paket’ nya, kita bisa lihat unicast memiliki satu MAC address pengirim, dan satu MAC address penerima. Secara analoginya, setiap hari pada saat browsing Internet, kita sudah melakukan proses unicast ini, yaitu apabila kita mengetik satu alamat URL. Hampir seluruh paket aplikasi yang mendominasi jaringan kita bersifat unicast, seperti http, telnet, ftp, smtp, pop3, dsb.
28
Jaringan unicast terdiri dari beberapa koneksi pasangan individu dari mesin-mesin. Untuk pergi dari sumber ke tempat tujuan, sebuah paket pada jaringan jenis ini mungkin harus melalui satu atau lebih mesin-mesin perantara. Seringkali harus melalui banyak route yang mungkin berbeda jaraknya. Karena itu algoritma routing memegang peranan penting pada jaringan unicast. Komuniksai
point-to-point
yang
sangat
klasik
menggunakan
datagram IP dengan mode unicast. Pada mode unicast setiap datagram mempunyai alamat tujuan yang unik (milik host tertentu). Komunikasi multipoint dapat diwujudkan dengan cara membuat beberapa hubungan sekaligus pada beberapa host, yang masing-masing mengirimkan datagram unicast. Lapisan aplikasi akan mengirimkan satu kopi untuk setiap host yang menjadi anggota komunikasi multipoint ini. Teknik ini sangat sederhana untuk diimplementasikan, karena prinsipnya hanya berdasarkan kemampuan multitasking dari suatu host untuk melayani berbagai aplikasi dari beberapa host sekaligus. Namun demikian cara ini memiliki keterbatasan, teruatama jika jumlah host yang terlibat dalam komuniksi multipoint ini sangat banyak. Host yang berhubungan multipoint harus membuat hubungan komunikasi sebanyak host yang terlibat. Selain meningkatkan beban kerja masing-masing host yang terlibat, trafic yang ditimbulkan oleh komunikasi ini akan berlipat ganda sebanyak host yang terlibat. Hal ini akan menimbulkan masalah pemakaian Bandwidth.
29
Ganbar 2.12 Unicast
(www.commons.wikimedia.org) 2.2.2
Multicast Multicast merupakan jenis paket, berasal dari satu buah titik dan
bertujuan ke sebuah alamat khusus (bukan titik khusus), di mana alamat khusus ini dapat ‘didengarkan’ oleh titik-titik lain di jaringan yang ‘berkepentingan’ untuk mendengarkannya. Konsepnya mirip dengan siaran radio, yaitu, jika kita hendak mendengarkan suatu siaran khusus, maka kita harus merubah frekuensi radio ke frekuensi yang tepat. Dan tentunya, berjutajuta orang bisa mendengarkan radio yang sama. Paket multicast sangat efektif untuk keperluan video streaming, audio streaming dsb. , karena dari sisi titik pengirim, hanya perlu ‘mengirimkan’ paket satu kali saja ke alamat khusus. Karena hanya satu paket saja, dan bisa banyak sekali ‘pendengar’, maka otomatis utilisasi jaringan tidaklah terpakai terlalu tinggi. Multicast mempunyai fungsi yang sama dengan Mailing-List, yaitu dimana setiap user yang akan menyampaikan pesannya kepada semua orang di list tertentu hanya membutuhkan sekali pengiriman data saja dan setiap orang di list dapat menerima pesan anda. Dalam pengiriman data/paket ke
30
user, multicast menggunakan metode One to Many, yaitu dimana server mengirimkan data yang akan dikirimkan ke setiap user yang dituju. Kegunaan dari multicast ini yaitu membutuhkan bandwidth yang kecil dalam setiap pengiriman datanya (sekali kirim), dapat mengurangi CPU Proses Memori Router, dan penerima multicast adalah user yang hanya terdaftar dalam list multicast. Multicast merupakan sebuah solusi bagi masalah pada bidang komunikasi ketika data yang akan dikirimkan atau didistribusikan pada banyak receiver dengan lokasi yang berbeda dimana data cukup dikirimkan sekali yang kemudian akan digandakan oleh network hingga sampai tujuan. Kunci utama keunggulan komunikasi multicast dibandingkan dengan komunikasi unicast yang saat ini digunakan adalah kemampuan komunikasi multicast untuk menghindari terjadinya
pengirimkan
banyak
data
yang
sama
pada link yang
sama. (www.gpc.se/network/multicaste5word7.doc)
Client 1 Router Client 2
Server Client 3
Client 4
31
Gambar 2.13 Multicast Keuntungan Multicast : • Enhanced efficiency
Merupakan pengontrolan trafik jaringan dan mengurangi load server & CPU. • Optimized performance
Yaitu mengeliminasi trafik yang berlebihan, sehingga tidak ada pengantrian paket yang dikirim ke user
• Distributed applications
Yaitu memungkinkan membuat aplikasi multipoint. Paket yang dikirmkan dapat ke jumlah user yang dinginkan.
Kerugian Multicast :
• Best effort delivery Tingkat kepercayaan pengiriman data aplikasi multicast tidak dapat diharapkan dan belum tentu data yang dikirm akan sampai ke tujuan.
32
• No congestion avoidance Kekurangan dari TCP windowing dan mekanisme "slow start" dapat menghasilkan kemacetan dalam jaringan. Jika mungkin, aplikasi multicast seharusnya mencoba untuk mendeteksi dan menghindari kondisi kemacetan.
•
Duplicates Beberapa mekanisme multicast protocol kadang-kadang menghasilkan penduplikasian pakets.
•
Out-of-sequence Perubahan topologi jaringan mempengaruhi order atau permintaan dari pengiriman. Aplikasi harus menghasilkan alamat yang tepat.
•
UDP tidak memiliki mekanisme kepercayaan, jadi persoalan kepercayaan
harus
dialamatkan
dalam
aplikasi multicast dan
realibilitas transfer data sangat di perlukan.
2.2.2.1
Multicast Routing Protocol Fungsi
dari multicast
routing
protocol adalah
untuk
menentukan upstream interface, yaitu jalur terdekat ke sumber karena multicast routing protocol lebih memperhatikan jalur
33
terdekat ke sumber dibandingkan jalur ke tujuan. Mekanisme ini disebut juga sebagai reverse path forwarding. Di sini kami memberikan jenis Multicast Routing Protocol yang biasa digunakan yaitu :
2.2.2.1.1
Protocol Independent Multicast (PIM) Protocol Independent Multicast (PIM) merupakan salah satu multicast routing protocol yang sering digunakan, terutama pada perangkat-perangkat cisco Router. Setiap router yang mengimplementasikan PIM saling bertukar pesan untuk menentukan upstream interface dan downstream interface yang menghubungkan Source dengan Group (S,G) sebagai satu kesatuan informasi.
Ketika semua router di dalam jaringan telah menentukan upstream interface dan interface yang Group
(S,
menghubungkan G),
maka
downstream
Source
dengan
terbentuklah multicast
tree. Source dan router yang terhubung langsung dengan source sebagai akarnya, dan cabang-cabang
34
yang merupakan semua subnet jaringan yang memiliki anggota setidaknya satu dari sebuah grup.
Tidak ada cabang yang tidak memiliki anggota yang berhubungan dengan suatu grup. Mekanisme ini disebut juga Reverse Path Multicast (RPM). 2.2.3 Broadcast Keuntungan Broadcast : •
Paket data yang dikirim oleh 1 komputer akan disebarkan oleh ke semua komputer yang ada didalam 1 jaringan
•
Bandwidth yang digunakan tidak besar jika scope jaringan kecil
•
Paket / data yang dikirimkan lebih cepat karena tidak harus menunggu paket yang sebelumnya terkirim.
•
Tidak perlu tau Alamat / IP
data
Client 1 data
data
data
Switch
Client 2
data
Server Client 3
Client 4
35
Gambar 2.14 Keuntungan Broadcast Kekurangan Broadcast : •
Jika paket yang disebar tidak hanya dalam scope besar maka broadcast hanya memenuhi jalur data saja karena sumbernya akan menyebarkan data ke seluluh komputer yang ada dalam 1 jaringan sehingga hanya penuh dengan paket-paket broadcast saja.
•
Paket yang dikirim ke komputer yang tidak dituju hanyalah jadi spam di komputer yang tidak membutuhkan data / informasi terserbut.
•
Tidak bisa menentukan data atau paket atau informasi yang ingin dikirim ke komputer yang membutuhkannya.
•
Paket data yang dikirim akan diblok semuanya oleh router.
Client 1 data
X
Client 2
Router Server
Client 3 Client 4
Gambar 2.15 Kerugian Broadcast
36
2.2.4 Thread Thread adalah sebuah pengontrol aliran program pelaksanaan program dengan menggunakan kendali tunggal. Operasi yang paling Modern saat ini adalah sistem yang banyak sekali menyediakan berbagai cara, dan memungkinkan suatu proses terkendali dengan baik.Pendekatan tradisional sebuah thread eksekusi per-proses, dimana konsep thread tidak dikenal. Thread bermanfaat untuk Multithreading yang berguna untuk Multiprocessor
dan
Singleprocessor.
Kegunaan
untuk
Multiprocessor, adalah : •
Sebagai unit pararel atau tingkat granularitas pararelisme
•
Peningkatan kinerja disbanding berbasis proses
Sedangkan kegunaan Multithreading pada singleprocessor, adalah : •
Kerja foreground dan background sekaligus di satu aplikasi
•
Penanganan asynchronous processing menjadi lebih baik
•
Mempercepat eksekusi program
•
Pengorganisasian program menjadi lebih baik
sistem
37
Karakteristik thread adalah : Proses merupakan lingkungan eksekusi bagi thread-thread yang dimilikinya. Thread-thread di satu proses memakai bersama sumber daya yang dimiliki proses, yaitu : •
Ruang alamat
•
Himpunan berkas yang dibuka
•
Himpunan berkas yang dibuka
•
Timer-timer
•
Sinyal-sinyal
•
Sumber daya-sumber daya lain milik proses
Tiap thread mempunyai property independen berikut seperti : •
Keadaan (state) eksekusi thread (running, ready dan sebagainya)
•
Konteks pemroses
Thread dapat dipandang sebagai satu PC (program counter) tersendiri independen di satu proses. Beberapa penyimpan statik per-thread untuk variable-variabel lokal. (http://id.wikipedia.org/wiki/Thread)
2.2.4.1 Paket Thread Paket thread adalah sekumpulan primitif (misalnya library calls) untuk pemrogram berhubungan dengan thread di program aplikasi. Pertimbangan penting pembuatab paket thread adalah : •
Waktu penciptaan thread
38
•
Penanganan critical region di tingkat thread
•
Penanganan private global variables
•
Implementasi paket thread
2.2.4.2 Jenis-jenis Thread Berdasarkan Waktu Berikut ini adalah macam – macam thread berdasarkan waktu penciptaannya, yaitu : 1. Static threads Jumlah thread yang akan dibuat ditentukan saat penulisan dan kompilasi program. Tiap thread langsung dialokasikan stack tetap. Keunggulan dari thread ini adalah sederhana. Sedangkan kelemahannya adalah tidak fleksibel. 2. Dynamic threads Penciptaan dan penghancuran thread “on-the-fly” saat eksekusi. Penciptaan thread biasanya lebih spesifik pada fungsi utamanya (seperti pointer ke prosedur) dan ukuran stack, dapat juga ditambah parameter-parameter lain seperti prioritas panjadualan. Keunggulan thread ini adalah fleksibel. Kelemahannya adalah lebih rumit. 2.2.5 Multiprogramming Merupakan suatu metode yang memungkinkan dua buah program atau lebih dijalankan secara serentak dalam sebuah komputer. Berbagi sumber daya dalam waktu yang berlainan.
39
Keuntungan : •
Beberapa tugas disimpan dalam memori dalam satu waktu; CPU digunakan secara bergantian sehingga menambah utilisasi CPU dan mengurangi total waktu yang dibutuhkan untuk menyelesaikan tugastugas tersebut.
•
Time sharing yaitu memperbolehkan banyak pengguna untuk menggunakan komputer secara interaktif pada saat yang bersamaan.
Kelemahan sistem Multiprogramming adalah tidak memugkinkan pemakai berinteraksi
dengan
proses.
Segala
masukan
ditangani
melalui
kartu
kontrol.(http://www.total.or.id/info.php?kk=Multiprogramming) 2.2.6 MultiThreading Merupakan cara pengeksekusian yang mengizinkan beberapa thread terjadi dalam sebuah proses, saling berbagi sumber daya tetapi dapat dijalankan secara independen.(http://id.wikipedia.org/wiki/Thread) Keuntungan : •
Responsif. Aplikasi interaktif menjadi tetap responsif meskipun sebagian dari program sedang diblok atau melakukan operasi lain yang panjang. Umpamanya, sebuah thread dari web browser dapat melayani permintaan pengguna sementara thread yang lain berusaha menampilkan gambar.
•
Berbagi sumber daya. Beberapa thread yang melakukan proses yang sama akan berbagi sumber daya. Keuntungannya adalah mengizinkan
40
sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama. •
Ekonomis. Pembuatan sebuah proses memerlukan pengalokasian memori dan sumber daya. Alternatifnya adalah dengan menggunakan thread, karena thread membagi memori dan sember daya yang dimiliki sehinga lebih ekonomis untuk membuat thread dan context switchingthread.
Kekurangan : •
Jika digunakan secara berlebihan, multithreading akan berdampak pada pemborosan resource dan CPU yang dialokasikan untuk switching threads.
•
Sistem yang memiliki kecepatan prosesor dan memory yang cenderung sama, sehingga tidak ada efisiensi yang hilang (mengacu pada latency), tidak akan memperoleh peningkatan bandwidth yang signifikan jika menggunakan multithreading.
•
Multithreading
menghasilkan
program
yang
lebih
kompleks.
Menggunakan multithread sendiri tidak akan menciptakan kerumitan, tapi interaksi antar thread lah yang mengakibatkan kompleksitas tersebut. •
Thread yang banyak bisa saling berinteraksi ketika saling berbagi sumber daya hardware seperti cache.
41
2.2.7 Multiplexing Multiplexing adalah suatu teknik mengirimkan lebih dari satu informasi melalui satu saluran. Istilah ini adalah istilah dalam dunia telekomunikasi. Tujuan utamanya adalah untuk menghemat jumlah saluran fisik misalnya kabel, pemancar & penerima (transceiver), atau kabel optik. Sedangkan I/O multiplexing adalah teknik dimana jalur komunikasi baik untuk input maupun output dari dan untuk semua client akan dilewatkan melalui satu saluran saja. Tujuan dari penerapan I/O multiplexing adalah menjadikan sebuah system dapat menjalankan proses input dan output secara teratur. Metode I/O multiplexing sangat terkait dengan fungsi select(), dimana fungsi ini memungkinkan proses menginstruksiskan kernel untuk menunggu salah satu dari event- event tersebut untuk terjadi dan untuk membangunkan proses tersebut hanya ketika satu atau lebih dari event – event ini terjadi atau ketika sejumlah waktu yang ditentukan habis. Fungsi select akan membalikan nilai pada keadaan dimana terdapat deskriptor yang siap untuk membaca maupun menulis dan juga setelah 10,2 detik terlewatkan.
42
2.2.8 Model Antrian Model antrian data merupakan suatu model pengantrian data yang ada, dimana data tersebut disimpan dalam urutan selama data itu menunggu proses. Tujuan dasar dari model antrian ini adalah untuk meminimumkan total dua biaya, yaitu biaya langsung penyediaan fasitlitas pelayanan dan biaya tidak langsung yang timbul karena para individu harus menunggu untuk dilayani. Beberapa Model antrian yaitu 2.2.8.1 Antrian Tunggal Tipe – tipe antrian tunggal yang ada : • Antrian Tunggal – Saluran Tunggal
Gambar 2.16 Saluran tunggal Model dari antrian tunggal ini hanya memiliki satu buah antrian dan satu saluran atau loket dalam model ini juga hanya dapat meproses satu objek pada waktu tertentu sedangkan sisanya harus menunggu didalam antrian.
43
• Antrian Tunggal – Saluran Pararel
Gambar 2.17 Saluran Pararel Model ini tetap menggunakan satu antrian namun memiliki saluran lebih dari satu. Pada model ini banyaknya objek yang dapat diproses tergantung dari jumlah saluran yang tersedia
2.2.9 Linked List Linked List adalah beberapa simpul atau node yang dialokasikan selama program berjalan dan disusun secara berurutan dengan bantuan pointer. Keuntungan dari linked list adalah sifat dinamisnya yang tidak perlu ditentukan besarnya dari awal.. Selama program berjalan linked list dapat membesar atau mengecil sesuai keinginan.
44
2.2.10 Socket Programming Socket adalah mekanisme komunikasi yang memungkinkan terjadinya pertukaran data antar program atau proses baik dalam satu mesin maupun antar mesin. Gaya pemrograman socket sendiri berawal dari sistem Unix BSD yang terkenal dengan kepeloporannya pada bidang penanganan jaringan, sehingga sering disebut BSD Socket. Socket pertama kali diperkenalkan di system Unix BSD versi 4.2 tahun 1983 sebagai kelanjutan dari implementasi protokol TCP/IP yang muncul pertama kali pada system Unix BSD 4.1 pada akhir 1981. Hampir setiap varian Unix dan Linux mengadopsi BSD socket. Linux menggunakan paradigma open-read-write-close. Sebagai contoh, suatu aplikasi pertama harus memanggil open untuk menyiapkan file yang akan diakses. Kemudian aplikasi tersebut memangil read atau write untuk membaca data dari pada file atau menuliskan data ke file. Setelah itu close dijalankan untuk mengakhiri aplikasi yang digunakan. Interface soket dalam berkomunikasi bisa dilihat dalam gambar berikut :
Gambar 2.18 Interface Socket Dalam Berkomunikasi Data
45
Di dalam kotak menunjukkan system call / function yang dibutuhkan untuk koneksi / komunikasi, misalnya socket(), bind(), listen(), connect(), dll. Secara garis besar langkah – langkah yang dilakukan pada client dan server adalah sebagai berikut :
1. Langkah – langkah dasar di client : a) Membuka koneksi client ke server, yang di dalamnya adalah : •
Membuat socket dengan printah socket()
•
Melakukan pengalamatan ke server
•
Menghubungi server dengan connect()
b) Melakukan komunikasi (mengirim dan menerima data), dengan menggunakan perintah write() dan read(). c) Menutup hubungan dengan perintah close().
2. Langkah – langkah dasar di server : a) Membuat socket dengan printah socket() b) Mengikatkan socket kepada sebuah alamat network dengan perintah bind() c) Menyiapkan socket untuk menerima koneksi yang masuk ke server dengan perintah listen() d) Menerima koneksi yang masuk ke server dengan perintah accept()
46
e) Melakukan komunikasi (mengirim dan menerima data), dengan menggunakan perintah write() dan read()
Gambar 2.19 Komunikasi Antar Sepasang Socket
Gambar 2.20 Client – Server Socket
47
Struktur Pengalamatan Jaringan komputer dalam melakukan pengiriman data dapat diilustrasikan seperti pengiriman surat. Supaya surat dapat terkirim secara benar, maka alamat pengirim dan penerima harus tertulis dengan jelas dan lengkap. Begitu juga dengan koneksi di socket, diperlukan variable yang dipakai untuk menyimpan address clent dan server. Variable yang dipakai berupa structure sockaddr dan sockaddr_in pada include socket.h di direktori /usr/include/sys. Address ini akan dipakai pada waktu melaukan connect(), bind(), dan accept().
2.2.11 Mutex Mutex (mutual exclusion) adalah suatu jenis semaphore yang digunakan untuk menjamin hanya ada satu proses yang berjalan untuk mengakses buffer pada suatu waktu. Sehingga thread – thread lain yang mencoba mengakusisi mutex akan memblock. Pemblokiran didapatkan dengan melakukan spinning atau sleeping. Mutex biasanya diberi inisialisasi dengan angka 1. Solaris memiliki dua tipe dasar mutex, yaitu “adaptive” dan “spin”. Tipe default mutex adalah adaptif. Tipe mutex ditentukan ketika diinisialisasikan oleh mutex_init(9f). Sebagian besar mutex di sistem adalah adaptif, dan kode pengunci dioptimalisasikan untuk mutex adaptif tanpa perlu diperdebatkan. Dengan kata lain, mengakuisisi mutex adaptif yang tidak ada
48
pemilikinya merupakan kasus yang paling umum dan path kodenya paling cepat.
2.2.11.1 Mutex Adaptif Thread peminta mencoba mendapatkan pengunci. Jika pengunci tidak ada pemiliknya, thread peminta “mengakuisisi” pengunci dan melanjutkan pemorosesannya. Jika pengunci telah ada pemiliknya, dan pemilik pengunci sekarang sedang berjalan di prosesor (tentunya ini mempengaruhi mesin berprosesor gdana), thread peminta men-spin untuk mencoba mengakusisi pengunci. Jika pemilik pengunci mem-blok (men-switch keluar membiarkan thread lain berjalan), thread peminta tidur ( berhenti men-spin dan menswitch keluar). Jika pemilik pengunci melepaskan penguncinya, thread peminta bisa mengakusisi pengunci tersebut (tentunya bisa saja terdapat beberapa thread men-spin, dalam kasus ini hanya satu thread akan mendapatkan penguncinya). Jika thread pemilik tidak sedang berjalan di prosesor, thread peminta tidur. Dalam kasus dimana beberapa thread peminta tidur untuk mendapatkan pengunci, threadthread seperti ini mengakusisi pengunci berdasarka prioritas urutan FIFO.
49
2.2.11.2 Mutex Spin Thread peminta me-mask interupsi di tingkat yang ditentukan oleh sebuah argumen dari mutex_init(9f). Thread peminta mencoba mengakusisi pengunci. Jika pengunci telah ada pemiliknya, thread peminta men-spin dengan interrupts masked hingga pengunci dilepaskan dan thread peminta dijamin memperoleh penguncinya. Ketika pengunci tidak ada pemiliknya, thread peminta mengakusisi pengunci dan melanjutkan pemrosesanya dengan interrupts masked. Interupsi di-unmasked ketika pengunci dilepaskan. Dalam kasus dimana beberapa thread men-spin (di prosesor yang berbeda, tentunya), salah satu thread ini akan mengakusisi pengunci ketika pengunci dilepaskan. Siapa yang akan mengakusisi pengunci tergantun siapa yang lebih dulu mendapatkannya. Penggunaan
mutex
bersifat
“sukarela”
(voluntary).
Penggunaan mutex terlalu banyak menimbulkan resiko kinerja buruk. Hindari penggunaan mutex karena menimbulkan resiko data tidakkonsisten.