10 BAB 2 LANDASAN TEORI Bab ini membahas teori-teori dasar maupun teori-teori pendukung sebagai bahan acuan dalam meneliti, merancang dan mengimplementasikan sistem yang dibangun. 2.1 Teori Umum Teori-teori yang dibahas pada subbab ini adalah teori-teori yang digunakan sebagai teori pokok yang tidak berkaitan langsung dengan penelitian, namun merupakan teori yang wajib diketahui. 2.1.1 Pengertian Sistem Jaringan Komputer dan Pembagiannya Sistem jaringan komputer adalah kumpulan dari komputer yang saling terhubung melalui media transmisi maupun perangkat-perangkat lainnya, sehingga memungkinkan terjadinya komunikasi. Dalam jaringan komputer, host adalah sebuah komputer yang menyediakan layanan seperti komputasi dan akses database serta menampilkan fungsi kontrol jaringan (http://www.its.bldrdoc.gov/fs-1037/dir- 018/_2607.htm). Sistem jaringan komputer dapat dibagi berdasarkan luas wilayah geografis dimana sistem tersebut berada. Pembagiannya 10 adalah sebagai berikut: 11 1. LAN (Local Area Network) LAN merupakan salah satu solusi yang mudah untuk bertukar data dan sumber daya komputer melalui beberapa PC atau komputer lainnya dalam satu daerah tertentu (gedung). LAN dirancang untuk dioperasikan di daerah dengan luas wilayah yang kecil, seperti dalam satu ruang atau satu lantai gedung perkantoran. Host-host dalam suatu LAN biasanya dihubungkan dengan jaringan yang mempunyai kapasitas bandwidth yang relatif besar. Hal lainnya yang menjadi ciri khas dari LAN adalah alat-alat yang dipergunakan cukup umum, mudah dioperasikan dan cukup terjangkau dari segi harga. 2. MAN (Metropolitan Area Network) MAN (Metropolitan Area Network) adalah istilah yang digunakan bila luas wilayah dari jaringan komputer yang ada tidak hanya antar gedung, namun juga telah mencakup antar kota. Teknologi yang digunakan juga lebih dari sekedar ethernet, bisa dikatakan bahwa teknologi dan alat-alat yang ada pada MAN untuk beberapa kasus telah sama seperti WAN. 3. WAN (Wide Area Network) WAN (Wide Area Network) merupakan sistem jaringan komputer dengan luas wilayah yang paling besar, dapat mencakup seluruh dunia. WAN merupakan jaringan yang menghubungkan antar LAN yang tersebar pada daerah dengan jarak yang jauh. Perbedaan jaringan WAN dan LAN adalah pada teknologi yang digunakan, dimana jaringan LAN memiliki keterbatasan 12 jangkauan. Untuk menghubungkan komputer dengan jarak yang lebih jauh, teknologi LAN menjadi tidak ekonomis dan tidak memungkinkan. Misalkan ada hubungan jaringan yang berada di 2 kota yang berbeda, tentu saja jika menggunakan LAN, biaya yang dikeluarkan akan sangat mahal karena setiap 100 meter diperlukan penguat sinyal (repeater) dan tentu saja pemeliharaannya pun sangat sulit. Untuk itu diperlukan teknologi berbeda untuk menghubungkan jarak yang lebih jauh. Teknologi tersebut tercakup dalam terminologi Wide Area Network. 2.1.2 Protokol Protokol dalam sistem jaringan komputer merupakan sekumpulan aturan-aturan yang mengatur tata tertib dan mekanisme pertukaran data dalam jaringan komputer. Aturan yang dimaksud disini adalah bila ada dua buah host yang ingin bertukar data (berkomunikasi), maka kedua host tersebut harus menggunakan “bahasa” yang sama (Stallings, 2000, p498). Komunikasi tersebut meliputi: (Stallings, 2000, p498) 1. Apa yang dikomunikasikan, 2. Bagaimana caranya mengkomunikasikannya, dan 3. Kapan komunikasi tersebut terjadi, termasuk pengaturan waktu siapa yang akan bicara dan siapa yang akan mendengarkan pada suatu waktu tertentu. 13 Elemen - elemen pokok dari protokol adalah: (Stallings, 2000, p498) 1. Syntax Mengatur tentang format data dan tingkatan-tingkatan sinyal data. 2. Semantics Mengatur tentang informasi-informasi pengendali agar suatu sistem data terkoordinasi. Juga mengatur tentang penanganan apabila terjadi kesalahan pada pengiriman data. 3. Timing Menangani sinkronisasi dan pengurutan dari data. Fungsi utama protokol (Stallings, 2000, p501), meliputi: 1. Enkapsulasi Protocol Data Unit (PDU) adalah informasi yang dikirimkan sebagai sebuah unit diantara entitas dalam jaringan dan yang memungkinkan untuk mengandung informasi kontrol, informasi alamat, ataupun data. Setiap PDU tidak hanya mengandung data, namun juga informasi-informasi tambahan seperti kode pendeteksi kesalahan dan informasi tambahan untuk protokol yang digunakan. Proses pemberian informasi-informasi tambahan tersebut dikenal dengan istilah enkapsulasi (Stallings, 2000, p502). 2. Segmentasi dan penggabungan segmen-segmen (reassembly) Pada komunikasi packet switching, data akan dibagi menjadi segmensegmen yang lebih kecil, untuk kemudian dikirimkan melalui media yang tersedia. Proses pembagian data ini dikenal dengan nama segmentasi. 14 Sementara dari sisi penerima, paket-paket data ini akan disusun kembali menjadi sebuah data yang utuh sehingga dapat digunakan sebagaimana mestinya. Proses ini dikenal dengan nama reassembly (penggabungan kembali paket-paket data) (Stallings, 2000, p501). 3. Pengendalian koneksi Sebelum dua host dapat saling berkomunikasi dan data dapat diterima dengan baik, maka protokol yang mengatur pengendalian koneksi secara umum akan melalui tiga fase, yaitu: (Stallings, 2000, p503) a. Penciptaan koneksi secara virtual. b. Pertukaran data. c. Pemutusan koneksi yang telah terbentuk. 4. Ordered delivery Dalam komunikasi dalam jaringan komputer, data yang akan dikirimkan dipecah atau dibagi menjadi bagian-bagian yang lebih kecil agar lebih mudah dapat dikirimkan. Fungsi Ordered delivery dalam protokol berfungsi untuk menjamin agar bagian-bagian tersebut dapat disusun kembali untuk mendapatkan data atau informasi yang sebenarnya (Stallings, 2000, p504). 5. Flow control Flow control adalah suatu fungsi dalam protokol untuk menjamin bahwa data yang dikirimkan dapat diterima dengan baik dan benar oleh host 15 penerima. Hal ini biasanya dilakukan melalui prosedur negosiasi antara host pengirim dan penerima mengenai bagaimana data sebaiknya dikirimkan (Stallings, 2000, p504). 6. Error control Error control adalah suatu teknik yang sangat diperlukan untuk mencegah kerusakan atau kehilangan data dan informasi pengendali. Secara umum, error control terdiri dari dua buah fungsi, yaitu pendeteksian adanya kesalahan dan pengiriman kembali data yang gagal diterima oleh penerima (Stallings, 2000, p505). 7. Pengalamatan Pada fungsi pengalamatan, protokol berfungsi mengatur penulisan dan peletakan kode-kode alamat dari suatu paket data sehingga data dapat dikirimkan dan diterima oleh host yang sebenarnya (Stallings, 2000, p505). 2.1.3 Model 7 OSI Layer Model 7 OSI Layer merupakan model yang diciptakan untuk menggambarkan semua proses yang terjadi dalam jaringan komputer. Pada mulanya, model 7 OSI Layer diciptakan oleh International Organization for Standardization (ISO) untuk membantu para vendor pembuat perangkat jaringan agar perangkat-perangkat dari vendor yang berbeda dapat saling berkomunikasi. Saat ini, model OSI merupakan model arsitektur utama dalam jaringan komputer. Model OSI ini mendeskripsikan bagaimana seharusnya 16 proses pengiriman data dari satu aplikasi di suatu komputer, melewati media jaringan, sampai ke aplikasi pada komputer tujuan. Proses pengiriman data yang rumit ini dipecah menjadi layer-layer (lapisan-lapisan) dalam model OSI ini. Selain itu pemecahan menjadi layer-layer ini ditujukan agar pengembangan atau perubahan pada satu layer tidak mempengaruhi layer-layer lainnya serta mempermudah proses pembelajaran (Komar, 1998, p32). Model OSI memiliki 7 layer, yaitu: 1. Application Layer 2. Presentation Layer 3. Session Layer 4. Transport Layer 5. Network Layer 6. Data link Layer 7. Physical Layer Dalam model 7 OSI Layer, data yang akan dikirimkan melalui media transmisi dipecah dan dibungkus dengan tambahan informasi agar data tersebut dapat dikirimkan dan mencapai tujuannya. Proses ini disebut sebagai enkapsulasi. Sedangkan apabila data diterima, sebelum sampai ke aplikasi pengguna, data tersebut digabung dan informasiinformasi tambahan yang diberikan pada saat enkapsulasi dibuang terlebih dahulu. Proses ini disebut sebagai dekapsulasi. Gambar 2.1 menggambarkan bagaimana data mengalir melalui layer-layer dalam Model OSI (http://curriculum.netacad.net/ 17 servlet/org.cli.elivery.rendering.servlet.CCServlet/SessionID=1138009864310208,LMSID =CNAMS,Theme=508theme,Style=508,Language=en,Version=1,RootID=knet-31105 3022401441,Engine=dynamic/CHAPID=null/RLOID=null/RIOID=null/knet/3110530224 01441/courseframeset.html). Gambar 2.1 Proses enkapsulasi dan dekapsulasi 18 Berikut akan dijelaskan mengenai fungsi-fungsi setiap layer dalam 7 OSI Layer. 2.1.3.1 Application Layer Application layer merupakan layer yang memungkinkan program-program aplikasi dari pengguna, seperti aplikasi e-mail, world wide web untuk mengakses jaringan. Jadi melalui layer aplikasi ini, program aplikasi dari suatu komputer dapat berkomunikasi dengan program aplikasi lainnya dalam komputer yang berbeda melalui jaringan. Application Layer tidak memberikan layanan kepada layer OSI dibawahnya, melainkan memberikan layanan kepada aplikasi-aplikasi diluar ruang lingkup OSI layer. Contoh protokol yang berada pada layer ini adalah protokol http, telnet dan ftp. 2.1.3.2 Presentation Layer Layer ini menangani format dan representasi data yang akan di kirim atau di terima pada suatu jaringan komputer. Layer ini menerima data dari application layer dan mengubahnya menjadi format yang disetujui sehingga data yang dikirimkan oleh satu sistem dapat dibaca oleh sistem yang lainnya. Contoh format data yang biasa dipakai adalah ASCII (biasa digunakan untuk data teks), dan biner (biasa digunakan untuk suara, grafik, dan file yang executable). 2.1.3.3 Session Layer Session Layer bertanggung jawab dalam membangun, mempertahankan dan memutuskan sesi antara aplikasi dari komputer-komputer yang saling berkomunikasi. Sesi merupakan suatu hubungan antara aplikasi dalam jaringan. 19 Selain itu, layer ini juga bertanggung jawab dalam memisahkan data-data dari suatu sesi dengan sesi lainnya untuk menjaga integritas data sehingga memungkinkan suatu komputer dapat membangun banyak sesi dengan komputer-komputer lainnya. 2.1.3.4 Transport Layer Layer ini bertanggung jawab membangun hubungan logikal antara komputer pengirim dengan komputer tujuannya (penerima). Sebelum data dikirimkan, layer ini membagi data dari layer di atasnya menjadi unit-unit data yang lebih kecil yang disebut dengan segmen. Segmen-segmen tersebut diberi informasi berupa header segmen yang berguna pada saat data tersebut akan digabung kembali oleh penerima. Sedangkan pada saat data mengalir dari layer di bawahnya, sebelum diteruskan ke layer di atasnya, layer ini menggabungkan segmen-segmen menjadi satu kesatuan data. Selain itu, layer ini juga melakukan negosiasi pengiriman data antara dua komputer yang saling berkomunikasi agar data yang dikirimkan maupun yang diterima memiliki integritas yang tinggi. 2.1.3.5 Network Layer Layer ini bertangung jawab untuk membawa data dari sumber ke tujuan melewati sejumlah jaringan (network) lain yang berbeda dengan menggunakan pengalamatan logikal. Selanjutnya alamat logikal ini akan digunakan oleh alat-alat dalam jaringan untuk dapat menentukan jalur yang terbaik untuk mencapai tujuan data tersebut (proses Routing). 20 Pada layer ini, segmen-segmen dari transport layer akan diberi tambahantambahan informasi (dibungkus) berupa alamat logikal dari sumber dan tujuan seperti yang terlihat di gambar 2.1, pada halaman sebelumnya. Informasi tambahan dari layer ini disebut dengan network header. Unit data di layer ini disebut dengan paket. 2.1.3.6 Data Link Layer Layer ini menyediakan metode akses ke media tranmisi, topologi jaringan dan pendeteksian adanya kesalahan data. Layer ini yang membuat data dapat dikirimkan ke perangkat atau komputer tujuannya dengan menggunakan pengalamatan fisik. Dengan adanya pengalaman fisik ini, data yang dikirimkan akan diterima oleh penerima yang sebenarnya. Pada layer ini, paket-paket data dari network layer akan diberi tambahan informasi berupa alamat fisik dari sumber dan tujuan (frame header). Unit data pada layer ini disebut frame. Selain itu layer ini juga memproses bit-bit data menjadi sinyal-sinyal listrik untuk dapat dikirimkan melalui media di layer 1 (encoding maupun decoding). 2.1.3.7 Physical Layer Data dari suatu perangkat yang akan dikirimkan ke perangkat lainnya dalam jaringan dikirimkan berupa sinyal-sinyal listrik dengan melewati media transmisi. Datadata bit tersebut direprentasikan ke sinyal-sinyal digital ataupun analog. Physical layer merupakan layer yang bertanggung jawab tentang hal tersebut di atas. Jadi, semua hal yang terjadi dalam pertukaran data dalam jaringan komputer yang kompleks dijelaskan melalui setiap layer dalam model OSI. Model OSI merupakan 21 suatu arsitektur yang menjelaskan bagaimana komunikasi terjadi dan merupakan kerangka bagi pengembangan protokol-protokol dalam sistem komunikasi. 2.1.4 Protokol TCP / IP TCP/IP merupakan protokol yang dikembangkan oleh ARPANET dan merupakan protokol yang paling banyak dipakai dan merupakan standar de facto dalam sistem jaringan komputer saat ini. Internet merupakan jaringan global yang berdiri di atas protokol TCP/IP ini. TCP/IP merupakan protokol yang mengatur bagaimana perangkat-perangkat dalam jaringan komputer dapat berkomunikasi. Seperti model OSI, protokol TCP/IP juga membagi semua proses yang terjadi dalam jaringan menjadi layer-layer. Layer-layer dalam TCP/IP mempunyai struktur yang hampir sama dengan layer-layer dalam model OSI. Bedanya adalah ada beberapa layer dalam OSI layer digabung menjadi fungsi satu layer dalam TCP/IP (Komar, 1998, p40). Perbandingan layer-layer dalam protokol TCP/IP dan model OSI layer dapat dilihat pada gambar 2.2 (http://curriculum.netacad.net/servlet/org.cli.delivery.rendering.servlet.CCServlet/SessionI D=1138009864310208,LMSID=CNAMS,Theme=508theme,Style=508,Language=en,Ver sion=1,RootID=knet-311053022401441,Engine=dynamic/CHAPID=null/RLOID=n ull/RIOID=null/knet/311053022401441/courseframeset.html). 22 Gambar 2.2 Perbandingan model OSI dengan TCP/IP Berikut akan dijelaskan mengenai empat layer dalam TCP /IP. 2.1.4.1 Application Layer Menyediakan komunikasi antar proses dan antar aplikasi dimana proses-proses dan aplikasi-aplikasi tersebut berada pada host yang berbeda. Dalam TCP/IP, fungsi dari application layer, presentation layer dan sesion layer dalam model 7 OSI layer di digabung ke dalam application layer ini. 2.1.4.2 Transport Layer Fungsi layer ini sama seperti fungsi transport layer dalam model 7 OSI Layer. Dalam TCP/IP, layer ini menyediakan saluran komunikasi antara host melalui port. Dalam komunikasi antara 2 host dalam sistem jaringan komputer yang menggunakan protokol TCP/IP, selain kedua host tersebut harus saling mengetahui alamat masingmasing agar data dapat dikirimkan ke host yang benar, kedua host tersebut juga harus 23 mengetahui atau menentukan aplikasi apa dari host penerima yang akan menerima data yang dikirimkannya. Sehingga, data yang masuk ke suatu host harus terdapat informasi yang menyatakan aplikasi mana dari host penerima yang akan menerima data tersebut. Informasi tersebut dalam protokol TCP/IP diberikan dengan menggunakan nomor port. Nomor port merupakan nomor dalam jangkauan 0 sampai dengan 65.535. Pengaturan mengenai pemberian nomor port ke suatu aplikasi di atur oleh badan Internet Assigned Number Authority (IANA). Pengaturan penggunaan nomor port oleh IANA adalah sebagai berikut : 1. Nomor port dari 0 sampai dengan 254 khusus digunakan untuk aplikasi-aplikasi umum, seperti FTP menggunakan nomor port 21, Telnet menggunakan nomor port 23 dan sebagainya. 2. Nomor port dari 255 sampai dengan 1023 bisa digunakan oleh perusahaanperusahaan pembuat aplikasi. 3. Nomor port di atas 1023 bebas digunakan (tidak diatur). Dalam transport layer ini terdapat 2 protokol, yaitu : (1) Transmission Control Protocol (TCP/IP) dan (2) Universal Datagram Protocol (UDP). Komunikasi dalam sistem jaringan komputer yang menggunakan protokol TCP/IP harus menggunakan salah satu protokol ini. TCP merupakan protokol yang bersifat connection-oriented. Maksudnya adalah sebelum 2 host yang berkomunikasi menggunakan protokol TCP saling mengirimkan data, kedua host tersebut akan terlebih dahulu membangun hubungan (session) sebagai tanda persetujuan bahwa kedua host tersebut akan saling mengirimkan data. Setelah itu, data baru dikirimkan diantara kedua host tersebut. Selama pengiriman data dilakukan, 24 kedua host tersebut menggunakan nomor urut yang disertakan pada setiap data yang dikirimkan. Nomor urut ini digunakan untuk menjamin tidak ada data yang hilang atau terjadi kegagalan pada saat pengiriman. Host penerima yang telah menerima data dari pengirim akan mengirimkan pemberitahuan (acknowledgement) kepada pengirim. Jika host penerima tidak menerima data dengan nomor urut yang benar, maka penerima dapat meminta host pengirim untuk mengirim kembali data dengan nomor urut yang benar. Jadi, protokol TCP merupakan protokol yang menjamin keakuratan pengiriman data tetapi membuat lalu lintas data bertambah. UDP merupakan protokol yang bersifat connectionless. Karena bersifat connectionless, kedua host yang akan saling mengirimkan data tidak membangun session terlebih dahulu seperti yang dilakukan oleh protokol TCP. Jadi, UDP merupakan protokol yang tidak menjamin keakuratan pengiriman data sehingga aplikasi yang menggunakan protokol ini harus mengandalkan protokol lain untuk menjamin keakuratan pengiriman data. UDP dipakai oleh aplikasi-aplikasi yang harus mengirimkan data secara cepat. 2.1.4.3 Internet Layer Fungsi layer ini hampir sama dengan fungsi network layer pada model 7 OSI Layer. Layer ini mempunyai 3 fungsi utama, yaitu : pengalamatan logikal, Routing dan packaging. Protokol yang digunakan pada layer ini merupakan Internet Protocol (IP) yang bersifat connectionless. Dalam protokol TCP/IP, setiap host dalam jaringan harus mempunyai alamat logikal yang unik. Alamat logikal ini digunakan untuk menentukan alamat dari setiap host dalam jaringan dan dapat menyatakan pada network mana host tersebut berada. Network di sini merupakan sekumpulan host yang apabila host-host di dalamnya saling melakukan 25 pertukaran data, tidak perlu dilakukan proses routing (data tersebut dapat secara langsung saling dikirimkan). Sedangkan apabila pengiriman data terjadi antara host dari network yang berbeda, maka proses routing harus dilakukan. Jadi, dengan menggunakan pengalamatan logikal, jaringan dapat dibangun dengan struktur yang hirarki dimana suatu jaringan dapat terdiri dari sejumlah jaringan dan setiap jaringan terdapat sekumpulan hosthost yang dapat berkomunikasi secara langsung. Alamat logikal dalam TCP/IP disebut dengan alamat IP (IP address). Alamat IP ini diatur oleh badan IANA. Routing merupakan suatu proses penentuan jalan terbaik untuk membawa data dari satu jaringan ke jaringan lainnya. Routing biasanya dilakukan oleh suatu perangkat yang dinamakan dengan router atau sebuah komputer yang diberi fungsi routing. Fungsi packaging dalam layer ini adalah proses pembungkusan data dari layer di atasnya (transport layer) dengan informasi-informasi lainnya (header) agar data tersebut dapat dikirimkan ke tujuannya. Informasi-informasi yang ditambahkan ini adalah alamat IP pengirim dan penerima, jenis protokol yang dipakai pada transport layer (TCP atau UDP), checksum dan Time-to-live (TTL). Checksum digunakan untuk memastikan header yang diterima adalah valid (tidak rusak pada saat pengiriman) dan TTL digunakan untuk menentukan berapa lama suatu paket data dapat berada dalam jaringan. 2.1.4.4 Network Access Layer Fungsi Network Access layer ini sama dengan fungsi data link layer dan physical layer dalam model OSI layer. 26 2.1.5 Perangkat Keras yang digunakan dalam LAN Berikut akan dijelaskan mengenai alat-alat yang biasa digunakan dalam jaringan: 1. Repeater Repeater berfungsi untuk menguatkan kembali sinyal-sinyal jaringan pada level bit sehingga sinyal-sinyal tersebut dapat menempuh jarak yang lebih jauh daripada jarak maksimum suatu media. 2. Hub Merupakan peralatan yang dapat menghubungkan beberapa komputer menjadi satu jaringan. Biasanya dikelompokkan berdasarkan jumlah port yang dimiliki. Mendukung media transmisi UTP. Di dalam hub sendiri terdapat penguat sinyal sehingga dapat menjangkau peralatan yang berjarak hingga 100 meter dari hub dan mengirimkannya kembali hingga jarak yang sama. Semua transmisi yang masuk ke hub akan dikirimkan kembali ke semua peralatan yang terhubung ke port-nya untuk diproses lagi oleh masing-masing peralatan tersebut. Kecepatan pengiriman data dalam hub dibagi antara peralatan yang tersambung, sehingga makin banyak port yang terisi maka kecepatan hub akan semakin lambat. Fungsi hub mirip dengan repeater. Perbedaannya dengan repeater adalah hub memiliki jumlah port lebih banyak daripada repeater. Hub disebut juga multi repeater. Satu hub dapat memiliki 4, 8, 12, bahkan 24 port. 27 3. Bridge Bridge berfungsi untuk menghubungkan dua segmen LAN dan menjaga jalur data tetap yang lokal. 4. Switch Sekilas switch sangat mirip dengan hub, tetapi keduanya berbeda. pada switch paket diteruskan berdasarkan alamat MAC yang disimpan dalam tabel alamat MAC yang dimiliki switch. bekerja pada layer 2 pada model OSI. Cara kerja switch : 1. Pada saat paket diterima switch, akan diperiksa apakah alamat MAC yang dituju tersambung pada port yang sama dengan alamat MAC pengirim. 2. Jika pada port yang sama maka pengiriman paket tidak diteruskan pada port yang lainnya. 3. Jika tidak, maka akan diteruskan ke port jaringan yang mengandung alamat MAC tujuan. Dengan demikian terbentuk jalur logikal dalam switch antar dua buah jaringan yang berkomunikasi, sehingga jaringan lainnya tidak terganggu. Dengan demikian pada switch kecepatannya tidak terbagi-bagi, melainkan masing-masing port memiliki bandwidth yang penuh sehingga kecepatan pengiriman data pun akan menjadi lebih tinggi dibandingkan hub. 28 Ada dua jenis switch : unmanageable switch dan manageable switch. Unmanageable switch hampir sama dengan hub tetapi jauh lebih cepat dan data hanya dikirimkan kepada port yang memiliki jaringan yang dituju. Manageable switch tidak hanya memiliki kemampuan yang sama, juga ditambah dengan kemampuan untuk membuat Virtual LAN dengan melakukan pengaturan terhadap switch, sehingga dapat diatur pengiriman data hanya dari dan ke jaringan tertentu. Switch berfungsi sama seperti bridge hanya saja switch memiliki lebih banyak port. Switch disebut juga multi port bridge. Paket data yang dikirimkan oleh switch berdasarkan alamat MAC yang dituju untuk paket data. 5. Router Router adalah peralatan jaringan yang beroperasi pada layer OSI 3 (network layer). Beberapa router bergabung, menghubungkan beberapa segmen jaringan atau bahkan seluruh jaringan. Router mengirimkan data berdasarkan informasi pada layer 3 (network layer). Router membuat keputusan berdasarkan jalur terbaik untuk pengiriman data dalam jaringan dan kemudian menghantarkan paket menuju port dan segmen yang sesuai. Router mengambil paket dari peralatan LAN (contohnya workstation) berdasarkan informasi layer 3, meneruskannya melalui jaringan. Pada prakteknya, router kadang-kadang dinyatakan sebagai layer 3 switching. 29 Router berfungsi untuk menghubungkan jaringan yang satu dengan yang lain dan memiliki jalur yang terbaik untuk mengirimkan paket data yang datang dari satu port menuju port yang dituju paket data tersebut. Router mengirimkan data berdasarkan alamat IP. 2.1.6 Rekayasa piranti lunak Menurut Fritz Bauer, rekayasa piranti lunak adalah penetapan dan penggunaan prinsip-prinsip rekayasa piranti lunak yang ekonomis yaitu piranti lunak yang terpercaya dan bekerja efisien pada komputer atau mesin (Pressman, 2001, p20). Rekayasa piranti lunak mencakup tiga elemen yang mampu untuk mengontrol proses pengembangan piranti lunak (Pressman, 2001, p20), yaitu; 1. Proses Merupakan dasar dari rekayasa piranti lunak yang memungkinkan pengembangan piranti lunak secara rasional dan terjadwal. 2. Metode Merupakan metode-metode untuk merancang piranti lunak. 3. Alat Bantu Menyediakan alat-alat dukungan otomatis dan semi otomatis untuk mendukung proses dan metode. 30 2.1.6.1 Definisi dan Karakteristik Piranti Lunak Piranti lunak adalah (Pressman, 2001, p6) : 1. Instruksi (program komputer) yang ketika dijalankan menyediakan fungsi dan kemampuan yang diinginkan. 2. Struktur data yang memampukan program untuk memanipulasi informasi. 3. Dokumen yang menggambarkan pengoperasian dan penggunaan program. Yang membedakan piranti lunak dan perangkat keras (Pressman, 2001, p6) adalah: 1. Piranti lunak yang dikembangkan dan direkayasa, sedangkan perangkat keras diproduksi. 2. Piranti lunak tidak mungkin rusak. 3. Walaupun industri akan semakin mengarah ke perakitan komponen, piranti lunak tetap dikembangkan sesuai dengan pesanan (custom built). 2.1.6.2 Daur Hidup Rekayasa Piranti Lunak (Linear Sequential Model) Salah satu daur hidup rekayasa piranti lunak adalah linear sequential model atau disebut juga dengan classic life cycle atau waterfall model yang menggunakan pendekatan sistematis dan berurutan dalam mengembangkan sebuah piranti lunak (Pressman, 2001, 31 p28). Aktifitas-aktifitas yang dilakukan dalam metode linear sequential model adalah sebagai berikut : Gambar 2.3 Model Linear Sequential 1. System / Information Engineering and Modelling Pada tahap ini perancang mulai mengetahui dan menetapkan kebutuhan-kebutuhan semua elemen sistem dan mengalokasikan beberapa bagian dari kebutuhan-kebutuhan ini ke piranti lunak. Hal ini diperlukan karena piranti lunak berhubungan dengan elemen yang lain seperti perangkat keras, pengguna dan basis data. 2. Software Requirement Analysis Pada tahap ini proses penetapan sistem difokuskan pada piranti lunak. Seorang perancang sistem juga harus mengetahui kebutuhan piranti lunak, information domain, fungsi-fungsi yang dibutuhkan, kemampuan piranti lunak, kinerja dan antarmuka piranti lunak tersebut. 32 3. Design Perancang piranti lunak menitik beratkan pada empat atribut program, yaitu struktur data, arsitektur piranti lunak, representasi antar muka, dan prosedur secara detil. Perancangan merupakan suatu proses menerjemahkan kebutuhan sistem ke dalam representasi piranti lunak. 4. Code Generation Pengkodean merupakan suatu aktifitas yang melakukan pemindahan hasil perancangan menjadi bentuk yang dapat dibaca mesin, biasanya dalam bentuk program-program. Jika pada proses pendesainan dititik beratkan pada hal-hal yang lebih detil, maka pada proses pengkodean dititik beratkan pada hal yang bersifat mekanik. 5. Testing Pada tahap ini dilakukan pengujian terhadap statement-statement yang ada dan fungsi-fungsi eksternal yaitu menguji apakah input yang dimasukkan dapat memberikan hasil yang diharapkan. 6. Support / Maintenance Pada tahap ini perancang melakukan perubahan-perubahan pada piranti lunak yang sudah ada. Perubahan dilakukan karena adanya kesalahan- 33 kesalahan yang harus diperbaiki, piranti lunak harus beradaptasi terhadap perubahan pada lingkungan seperti sistem operasi atau karena pengguna membutuhkan peningkatan fungsional dan kerja. 2.1.7 State Transition Diagram (STD) State Transition Diagram adalah modul perilaku yang mendasarkan pada definisi kumpulan keadaan sistem (Pressman, 1997, p217), STD digunakan untuk menunjukan suatu keadaaan internal dari kelas tertentu. Kejadian yang menyebabkan suatu perubahan dari suatu keadaan menjadi keadaan lain, dan tindakan yang dihasilkan dari suatu perubahan keadaan (Booch, 1994, p199). STD merupakan suatu diagram yang merepresentasikan langkah-langkah perubahan keadaan (state). Komponen notasi yang digunakan dalam STD yaitu: 1. Keadaan (state) Digunakan sebagai kumpulan atribut yang menggambarkan suatu kondisi pada suatu saat. Keadaan dapat berarti menunggu sesuatu dari lingkungan luar atau menunggu aktifitas yang sedang berlangsung berubah menjadi aktifitas lain. Gambar 2.4 Notasi State 34 2. Panah (arrow) Digunakan untuk menghubungkan perubahan dari suatu keadaan menjadi keadaan lain. Notasi ini digunakan jika sistem memiliki turunan dalam perilakunya, maka hanya suatu keadaan dapat berubah menjadi keadaan tertentu. Gambar 2.5 Notasi Arrow 3. Kondisi dan aksi Untuk melengkapi STD dibutuhkan hal tambahan yaitu kondisi yang menyebabkan keadaan berubah. Di bawah ini ilustrasi dari kondisi dan aksi yang ditampilan disebelah anak panah yang menghubungkan keadaan. Gambar 2.6 Kondisi dan aksi 35 2.1.8 Flow chart (Diagram Alir) Diagram Alir adalah bagan yang menunjukkan alir didalam program atas prosedur sistem secara logika. Bagan alir digunakan terutama untuk alat bantu komunikasi dan dokumentasi. arrow : menghubungkan antara simbol dan menunjukkan aliran aktifitas alur proses). terminator : menunjukkan awal atau akhir bagi aktifitas dari sebuah proses. data : menunjukkan operasi data input (memasukkan data) atau output (mengeluarkan hasil). process : menunjukkan operasi aritmatik dan manipulasi data dilaksanakan. decision : menunjukkan operasi atau perbandingan mempunyai aliran masuk dan 2 aliran keluar, yaitu benar atau salah. Off - page reference : menunjukkan aliran yang berlainan. connector : menunjukkan diagram alir bersambung, hubungan antara bentuk-bentuk dalam diagram alir tanpa menggunakan garis. 36 predefined process : mewakili sekumpulan pernyataan yang melaksanakan pemrosesan data. preparation : menggambarkan modifikasi seperti pengaturan dari tombol atau inisialisasi suatu rutin. Berdasarkan simbol-simbol dasar yang digambarkan diatas, dapat dibuat berbagai macam diagram alir. Hal terpenting yang harus diperhatikan dalam membuat diagram alir ini adalah membuat diagram alir sesederhana mungkin, sehingga mudah dimengerti dan bukan malah membingungkan. 2.1.9 Prototyping Prototyping adalah proses yang memungkinkan pengembang sistem untuk membuat suatu model dari perangkat lunak yang akan dibuat. Beberapa tipe dari prototype antara lain : • Paper Prototype, interaksi antara pemakai dengan mesin. • Working Prototype, perangkat lunak yang telah ada akan diupgrade. • Part of the program, sebagian atau semua fungsi yang ada. 37 2.2 Teori Khusus Teori-teori yang dijelaskan pada sub bab ini merupakan teori-teori yang berkaitan langsung dengan penelitian. 2.2.1 Kompresi File Teks dan Biner Perbedaan yang mendasar dari kedua tipe file teks dan biner ini adalah adanya header dalam struktur file yang berbentuk biner, seperti file dari aplikasi Microsoft Excel (*.xls), Microsoft Word (*.doc), Adobe Acrobat (*.pdf), Microsoft Powerpoint (*.ppt), dll. Sedangkan dalam proses pembacaan isi file yang bertipe teks (*.txt), tidak perlu memecahkan header. Karena tipe file teks tidak memiliki struktur header seperti file-file biner yang harus dibaca ulang sebelum dilakukan proses kompresi. Guna memudahkan proses pengompresian, maka file yang berasal dari aplikasi Microsoft Excel (*.xls), Microsoft Word (*.doc), Adobe Reader (*.pdf), Microsoft Powerpoint (*.ppt) cukup dilakukan pembacaan isi dari file secara biner. Pengertian kompresi file secara umum dalam ilmu komputer menurut http://www.ccs.neu.edu/home/jnl22/cshonor/jeff.html adalah usaha memperkecil ukuran file sehingga kebutuhan akan penyimpanan menjadi lebih kecil. Menurut An English-Indonesian Dictionary (John M. Echols dan Hasan Shadily, 1996, p134). Kompresi adalah tekanan, pengempaan, pemadatan, dan pemampatan. Serta kompresi adalah proses dimana file disusutkan atau dikecilkan ke sebuah bentuk sehingga meminimalisasi ruang yang dibutuhkan dan meminimalisasi waktu pengiriman. 38 Pengertian kompresi menurut http://www.newmediarepublic.com/dvideo/ compression/adv04.html adalah konversi yang bisa dilakukan secara bolak-balik dari file ke dalam format yang membutuhkan bit-bit yang lebih kecil, yang sering kali digunakan agar file dapat disimpan atau ditransmisikan dengan lebih efisien. Tujuan pengkompresan file secara umum adalah meminimalkan ukuran file dan memaksimalkan kecepatan pengiriman file dari satu lokasi ke lokasi lainnya. Kompresi file mentransformasikan string bytes menjadi string baru yang mengandung informasi yang sama dengan ukuran yang lebih kecil. Yang biasanya melewati suatu media transmisi dengan cara menyusutkan ke dalam format yang dapat dikembalikan ke bentuk semula. Gambar 2.7 menggambarkan bagaimana file melewati proses kompresi dan dekompresi Gambar 2.7 Proses Kompresi dan Dekompresi 2.2.2 Kelebihan dan Kekurangan Kompresi File Kelebihan kompresi file : 1. Mengurangi kebutuhan tempat penyimpanan 39 File yang telah melewati proses pengompresan otomatis ukuran dari file tersebut akan lebih kecil dari sebelumnya, sehingga besarnya tempat penyimpanan untuk file tersebut akan berkurang. 2. Kecepatan membaca dan menulis yang lebih baik Dalam proses pengkopian atau pengiriman data, File yang telah dikompresi memiliki kelebihan untuk lebih mudah dibaca dari sumber file itu yang kemudian proses ditulis kembalinya akan lebih cepat. Hal ini karena file yang telah dikompres memiliki jumlah karakter yang lebih sedikit daripada file yang belum dikompres. 3. Proses pengiriman file yang lebih cepat Dengan semakin kecilnya ukuran file, maka waktu yang dibutuhkan dalam proses pengiriman file akan lebih cepat. Hal ini disebabkan karena kapasitas bandwidth yang digunakan lebih kecil daripada file yang belum melewati proses kompresi. Kekurangan kompresi file : 1. Menambah kompleksitas Sebelum melewati proses kompresi, pengiriman file dari suatu komputer ke komputer lainnya hanya melewati beberapa proses yang sederhana. Namun dengan adanya kompresi, file akan diproses dengan algoritma kompresi yang memerlukan waktu lebih banyak dibandingkan 40 dengan proses yang tanpa melewati kompresi. Sehingga kompleksitas pada proses ini akan bertambah dari biasanya. 2. Efek kesalahan yang muncul dalam proses pengiriman file File yang dikirim merupakan file yang telah dimodifikasi dari file aslinya dengan algoritma kompresi. Sehingga membuat file yang dikirim bisa saja terdapat kesalahan dalam proses enkapsulasi yang tidak dapat diprediksikan. 3. Metode algoritma yang lebih canggih lebih lambat (metode algoritma yang sederhana dapat lebih cepat) Dalam mengompres file tentu menerapkan algoritma yang beragam. Hal ini dilakukan dengan tujuan untuk menemukan sebuah algoritma yang disesuaikan dengan kebutuhan. Kebutuhan dapat dibedakan antara lain, kebutuhan dalam hal kecepatan mengompres dan kebutuhan dalam hal ukuran hasil kompresi. Pada umumnya metode algoritma yang sederhana dapat lebih cepat ditulis ke disc dan memiliki perbandingan rasio kompresi yang lebih kecil. 4. File yang didekompresi File telah sampai pada tujuan tidak dapat digunakan secara langsung. File tersebut harus melewati proses dekompresi agar dapat dikembalikan kedalam bentuk format file aslinya untuk digunakan. 41 2.2.3 Tipe Kompresi File Tipe kompresi file menurut http://www.ccs.neu.edu/home/jnl22/cshonor/ jeff.html, dibagi menjadi dua yaitu : 1. Lossless compression Pada kompresi jenis ini setelah file dikompres, file masih dapat didekompres kembali menjadi file asli tanpa mengalami kehilangan data. Jadi file hasil dekompresi sama persis dengan file asli. Kompresi file lossless bekerja dengan menemukan pola yang berulang pada file dan melakukan penyandian pada pola tersebut secara efisien. Karena itulah kompresi file lossless juga disebut sebagai pengurangan redundansi. Karena pengurangan redundansi tergantung pada pola yang terdapat pada file, sehingga kompresi jenis ini tidak bekerja dengan baik pada file yang acak. Kompresi file lossless ideal untuk teks. Kebanyakan algoritma kompresi lossless berdasarkan algoritma kompresi LZ yang dikembangkan oleh Abraham lempel dan Jacob Ziv. 2. Lossy compression Setelah file dikompresi maka file tersebut tidak dapat lagi didekompresi menjadi seperti file aslinya tanpa mengalami perubahan apapun, karena ada sebagian file yang telah hilang. Karena lossy compression tidak dapat didekompresi menjadi file aslinya. Maka kompresi jenis ini bukanlah metode yang baik untuk jenis file kritikal, seperti file tekstual. 42 Kompresi lossy berguna untuk Digitally Sampled Analog Data (DSAD). DSAD sebagian besar terdiri dari file suara, video, grafik dan gambar. Algoritma untuk kompresi lossy DSAD bermacam-macam tetapi kebanyakan menggunakan threshold level truncation. Pada file suara, sebagai contoh, frekuensi yang sangat tinggi dan sangat rendah, yang tidak dapat didengar oleh telinga manusia dapat dibuang dari file. Beberapa contoh algoritma kompresi file lossy adalah file dengan format ekstension JPEG, MPEG, dan Indeo. Gambar 2.8 Lossless vs Lossy Compression http://www.answers.com/topic/lossy-data-compression 43 2.2.4 Encoding dan Decoding 2.2.4.1 Encoding Encoding adalah suatu proses dalam hardware atau software dimana peralatan atau program melakukan pengkodean isi file dalam suatu format tertentu. Peralatan atau program yang melakukan proses encoding disebut encoder. Proses encoding merupakan proses untuk mengubah isi dari file ke dalam format yang disesuaikan dengan kebutuhan. Pada sistem ini, format yang dibutuhkan adalah format kompresi file yang proses pembacaan dari isi filenya dengan prinsip pembacaan secara biner. Contoh Encoding : Pesan yang dikodekan : dad ade fade bead ace dead cab bad fad cafe face Encoding yang dilakukan : 011 000 011 000 011 100 101 000 011 101 001 100 000 011 000 010 100 011 100 000 011 010 000 001 001 000 011 101 000 011 010 000 101 100 101 000 010 100 Dari contoh diatas, pesan yang ada dilakukan proses encoding kedalam bentuk format biner. 44 2.2.4.2 Decoding Decoding adalah suatu proses dalam hardware atau software dimana peralatan atau program melakukan proses kebalikan dari encoding. Peralatan atau program yang melalui proses decoding disebut decoder. Dalam proses decoding file yang sudah diformat pada waktu proses encoding dengan menggunakan algoritma kompresi akan dikembalikan ke bentuk semula. 2.2.5 Rasio Kompresi Rasio Kompresi (http://en.wikipedia.org/wiki/Data_compression_ratio) digunakan untuk menjelaskan perbedaan antara sebuah file dan file hasil kompresinya. Rasio tersebut memberikan indikasi seberapa besar kompresi itu berhasil dicapai untuk suatu file tertentu. Salah satu cara pengekspresian angka rasio kompresi yang digunakan yaitu rasio antara ukuran file input dan output. Contohnya : “rasio kompresi 4:1” cara pengekspresian lain yang lebih banyak digunakan adalah dengan menuliskannya dengan persentase dari 0% sampai 100%, dimana 100% digunakan sebagai rasio kompresi yang terbaik. Dalam memperoleh angka persentase perbandingan antara file asli dengan file hasil kompresi dapat menggunakan rumus persamaan matematika seperti : R = ( 1 - ( P / S )) x 100% Dimana : R = Rasio kompresi ( dalam % ) 45 1 = Konstanta P = Ukuran dari file yang telah di kompresi ( dalam bytes ) S = Ukuran dari file asli ( dalam bytes ) 2.2.6 Algoritma Kompresi File Dua dimensi yang digunakan sebagai alat ukur pada kompresi file adalah kompleksitas algoritma dan kuantitas kompresi file. Tujuan utama penggunaan kompresi file pada aplikasi pengiriman file adalah kecepatan. Yang mana kecepatan pengiriman file sendiri tergantung pada beberapa hal seperti jumlah bit yang ditransfer. Waktu yang dibutuhkan oleh encoder serta waktu yang dibutuhkan oleh decoder, semakin rumit algoritma kompresi dan dekompresi maka waktu yang dibutuhkan semakin lama. Karenanya kompleksitas dari algoritma yang digunakan harus tetap dijaga kesederhanaannya. Saat ini cukup banyak algoritma kompresi file yang digunakan, berikut ini beberapa algoritma kompresi file. Berdasarkan tipe peta kode yang digunakan untuk mengubah pesan awal (isi file input) menjadi sekumpulan codeword, metode kompresi terbagi menjadi dua kelompok, yaitu metode statik dan metode dinamik (http://www2.toki.or.id/book/AlgDesignManual/BOOK/BOOK5/NODE205.HTM). Salah satu contoh dari metode statik adalah algoritma Huffman, sedangkan salah satu contoh dari metode dinamik adalah algoritma LZW. 46 2.2.6.1 Algoritma Huffman Algoritma Huffman merupakan salah satu teknik pengompresan yang banyak dipakai dan sangat populer. Teori pengkodean ini diciptakan oleh David A. Huffman pada tahun 1952. Huffman Coding yaitu teknik pengompresan file yang menempatkan variable length codes (VLC) kedalam simbol-simbol, sehingga simbol-simbol yang sering muncul memiliki kode yang paling singkat. Pada pendekompresian simbol-simbol tersebut akan dikembalikan menjadi kode aslinya. Ketika digunakan untuk mengompres teks, contohnya, variable length codes digunakan sebagai ganti kode-kode ASCII dan karakter-karakter yang sering muncul, biasanya spasi, e dan t digunakan sebagi kode-kode terpendek. Dengan cara ini jumlah total bit yang diperlukan untuk mentransmisikan file dapat dipertimbangkan lebih sedikit dibandingkan dengan jumlah bit yang diperlukan jika representasi ukuran aslinya digunakan. Huffman coding secara khusus lebih efektif jika file didominasi oleh simbolsimbol yang kecil. Gambar 2.10 menggambarkan bahwa tabel encoding menentukan masing-masing dari tujuh karakter yang digunakan dalam contoh dibawah ini, panjang variabel biner berdasarkan pada kemungkinan yang sering muncul. Data stream yang asli disusun berdasarkan dari 7 karakter yang diterjemahkan oleh tabel ke dalam data encode Huffman. Jika kode Huffman memiliki panjang yang berbeda, maka data biner harus dikelompokkan ulang kedalam 8 bit yang merupakan standar dari penyimpanan dan transmisi. 47 Gambar 2.9 Contoh Algoritma Huffman http://www.dspguide.com/datacomp.htm 2.2.6.2 Algoritma LZW Kompresi LZW pada awalnya merupakan hasil pemikiran dari Abraham Lempel dan Jacob Ziv. Pada tahun 1977, mereka menerbitkan makalah “Sliding - Window Compression” dan kemudian pada tahun 1978, makalah kedua “Dictionary Based Compression” menyusul diterbitkan. Algoritma ini dikenal sebagai LZ77 dan LZ78. Kemudian pada tahun 1984, Terry Welch membuat modifikasi LZ78 yang kemudian menjadi sangat populer dan dikenal dengan sebagai algoritma LZW. Konsep dari algoritma LZW secara sederhana mengganti string dari karakter dengan kode tunggal dan tidak melakukan analisa apapun pada teks masukan. Tetapi 48 hanya menambahkan setiap string dari karakter baru yang ditemuinya ke tabel string (dictionary). Kompresi terjadi ketika ditemui string berulang, algoritma ini menghasilkan kode tunggal menggantikan string-string berulang yang ditemui selama proses kompresi. Panjang kode yang dihasilkan algoritma LZW dapat berubah-ubah, tetapi jumlah bit yang dimiliki kode tersebut harus lebih banyak daripada sebuah karakter tunggal. 256 kode pertama (ketika menggunakan 8 bit karakter) digunakan untuk karakter standar. Gambar 2.11 menggambarkan dasar dari metode kompresi LZW yang populer. Proses encode terjadi dengan pengindetifikasian terurut dari byte di file asli yang ada dalam tabel kode. Kode 12 bit mengkaji ulang urutan ditempatkan dalam file yang terkompres sebagai ganti dari urutan. 256 data yang masuk pertama kali ke dalam tabel mengacu pada setiap nilai bit, dari 0 sampai 255, sementara itu data masuk yang tersisa mengacu pada urutan dari bytes itu sendiri. Algoritma LZW adalah salah satu cara yang efisien dalam menghasilkan tabel kode yang berdasarkan pada data tertentu yang akan dikompresi. Tabel kode dalam contoh gambar dibawah ini adalah contoh yang telah disederhanakan, bukan yang sebenarnya dihasilkan oleh algoritma LZW. 49 Gambar 2.10 Contoh Algoritma LZW http://www.dspguide.com/datacomp.htm