10 10 BAB 2 LANDASAN TEORI Bab ini membahas teori

advertisement
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
Download