BAB II LANDASAN TEORI
Dalam menganalisa, merancang dan mengimplementasikan sistem ini terdapat teori-teori ilmu terkait yang digunakan untuk membantu penelitian serta menyelesaikan permasalahan yang ada berkaitan dengan sistem yang akan dibangun. Tujuannya adalah agar sistem ini memiliki pijakan pustaka yang dapat dipertanggungjawabkan. 2.1
ILMU KOMPUTER Secara umum diartikan sebagai ilmu yang mempelajari baik tentang
komputasi, perangkat keras maupun perangkat lunak. Ilmu komputer mencakup beragam topik yang berkaitan dengan komputer. Ilmu komputer mempelajari apa yang bisa dilakukan oleh beberapa program, apa yang tidak, bagaimana program itu harus mengevaluasi suatu hasil, bagaimana program harus menyimpan dan
7
8
mengambil bit tertentu dari suatu informasi, dan bagaimana program dan pengguna saling berinteraksi. (Wikipedia,2009) 2.2
JARINGAN KOMPUTER Kemajuan teknologi komputer sebagai pengolah data berkembang semakin
cepat. Sejak terjadi penggabungan teknologi komputer dengan teknologi komunikasi, maka pengolahan data yang semula saling terpisah (stand alone) antar unit komputer sekarang dapat saling dihubungkan melalui suatu sistem jaringan komputer (computer network). 2.2.1 Dasar Jaringan Komputer Jaringan komputer merupakan sebuah sistem yang terdiri atas komputer dan perangkat jaringan lainnya yang bekerja bersama-sama untuk mencapai suatu tujuan yang sama. Jaringan komputer juga bisa diartikan sebagai kumpulan sejumlah terminal komunikasi yang berada diberbagai lokasi yang terdiri lebih dari satu komputer yang saling berhubungan. (Microsoft Partner in Learning, 200).Tujuan dari jaringan komputer adalah : 1. Membagi sumber daya, contohnya berbagi pemakaian CPU, harddisk, printer 2. Komunikasi, contohnya e-mail, chatting 3. Akses informasi, contohnya web browsing Agar dapat mencapai tujuan yang sama, setiap bagian dari jaringan komputer meminta dan memberikan layanan. Pihak yang meminta layanan disebut klien dan yang memberikan layanan disebut server. Arsitektur ini disebut dengan sistem client-server, dan digunakan pada hampir seluruh aplikasi jaringan komputer. 2.2.2 Topologi Jaringan
9
Topologi jaringan adalah hal yang menjelaskan hubungan geometris antara unsur-unsur dasar penyaring jaringan yaitu node, link dan station. (Wikipedia, 2009). Topologi jaringan dapat dibagi menjadi 5 kategori utama dibawah ini : 1. Topologi bus Pada topologi bus, kedua ujung jaringan harus diakhiri dengan sebuah terminator. Barel connector dapat digunakan untuk memperluasnya. Jaringan hanya terdiri dari satu saluran kabel yang menggunakan kabel BNC 2. Topologi ring Topologi ini adalah topologi jaringan berbentuk lingkaran titik yang masingmasing terhubung ke dua titik lainnya, sedemikian sehingga membentuk jalur melingkar membentuk cincin. Pada topologi cincin, komunikasi data dapat terganggu jika satu titik mengalami gangguan 3. Topologi mesh Topologi ini adalah sejenis topologi jaringan yang menerapkan hubungan antar sentral secara penuh. Jumlah saluran yang harus disediakan untuk membentuk jaringan ini adalah jumlah sentral dikurangi 1 (n-1, n=jumlah sentral). Tingkat kerumitan jaringan sebanding dengan meningkatnya jumlah sentral yang terpasang. Topologi ini selain kurang ekonomis juga relatif mahal dalam pengoperasiannya. 4. Topologi star Topologi ini merupakan bentuk topologi jaringan yang berupa konvergensi dari node tengah ke setiap node atau pengguna. Topologi jaringan bintang termasuk topologi jaringan dengan biaya menengah. 5. Topologi tree
10
Topologi ini disebut juga sebagai topologi jaringan bertingkat. Topologi ini biasanya digunakan untuk interkoneksi antar sentral dengan hirarki yang berbeda. Untuk hirarki yang lebih rendah digambarkan pada lokasi yang rendah dan semakin ke atas mempunyai hirarki semakin tinggi. Topologi jaringan jenis ini cocok digunakan pada sistem jaringan komputer. 2.2.3 Jenis Jaringan Komputer Secara umum jaringan komputer dibagi atas 5 jenis, yaitu : 1. Local Area Network (LAN) Jaringan komputer yang jaringannya hanya mencakup wilayah kecil, seperti jaringan komputer kampus, gedung, kantor, dalam rumah, sekolah atau yang lebih kecil. Saat ini, kebanyakan LAN berbasis pada teknologi IEEE 802.3 Ethernet menggunakan perangkat switch, yang mempunyai kecepatan trasfer data 10,100, atau 1000 Mbps. Selain teknologi Ethernet, saat ini teknologi 802.11 (atau biasa disebut Wi-Fi) juga sering digunakan untuk membentuk LAN. Tempat-tempat yang menyediakan koneksi LAN dengan teknologi Wi-Fi biasa disebut dengan hotspot. Pada sebuah LAN, setiap node atau komputer mempunyai daya komputasi sendiri, berbeda dengan konsep dump terminal. Setiap komputer juga dapat mengakses sumber daya yang ada di LAN sesuai dengan hak akses yang telah diatur. Sumber daya tersebut dapat berupa data atau perangkat seperti printer. Pada LAN, seorang pengguna juga dapat berkomunikasi dengan pengguna yang lain dengan menggunakan aplikasi yang sesuai. 2. Metropolitan Area Network (MAN)
11
Suatu jaringan dalam suatu kota dengan transfer data berkecepatan tinggi, yang menghubungkan berbagai lokasi seperti kampus, perkantoran, pemerintahan, dan sebagainya. Jaringan MAN adalah gabungan dari beberapa LAN. Jangkauan dari MAN ini antar 10 hingga 50 KM, MAN ini merupakan jaringan yang tepat untuk membangun jaringan antar kantor-kantor dalam suatu kota antara pabrik/instansi dan kantor pusat yang berada dalam jangkauannya. 3. Wide Area Network (WAN) Merupakan jaringan komputer yang mencakup area yang besar, sebagai contoh yaitu jaringan komputer antar wilayah, kota atau bahkan negara, atau dapat didefinisikan juga sebagai jaringan komputer yang membutuhkan router dan saluran komunikasi publik. WAN digunakan untuk menghubungkan jaringan lokal yang satu dengan jaringan lokal yang lain, sehingga pengguna atau komputer dilokasi yang satu dapat berkomunikasi dengan pengguna dan komputer di lokasi yang lain. 4. Internet Internet (kependekan dari interconnected-networking) adalah rangkaian komputer yang terhubung di dalam beberapa rangkaian. Manakala internet (huruf T besar) adalah sistem komputer umum, yang terhubung secara global dan menggunakan TCP/IP sebagai protokol pertukaran paket (packet switching communication protocol). Rangkaian internet yang terbesar dinamakan Internet. Cara menghubungkan rangkaian dengan kaidah ini dinamakan internetworking. 5. Jaringan Nirkabel Jaringan tanpa kabel merupakan suatu solusi terhadap komunikasi yang tidak bisa dilakukan dengan jaringan yang menggunakan kabel. Misalnya orang yang
12
ingin mendapat informasi atau melakukan komunikasi walaupun sedang berada diatas mobil atau pesawat terbang, maka mutlak jaringan tanpa kabel diperlukan karena koneksi kabel tidaklah mungkin dibuat di dalam mobil atau pesawat. Saat ini jaringan tanpa kabel sudah marak digunakan dengan memanfaatkan jasa satelit dan mampu memberikan kecepatan akses yang lebih cepat dibandingkan dengan jaringan yang menggunakan kabel. 2.2.4 Internet Protocol (IP) Layer kedua adalah layer IP yang merupakan inti dari protokol TCP/IP dimana seluruh data yang berasal dari semua layer diatas IP harus dilewatkan, diolah oleh protokol IP dan dikirimkan sebagai paket IP, IP mempunyai beberapa karakteristik, antara lain : 1. Unreliable (kehandalan) Internet Protokol tidak menjamin datagram yang dikirim pasti sampai ke tempat tujuan, namun berusaha semaksimal mungkin untuk mengirimkannnya dan jika terjadi permasalahan dalam pengiriman paket datagram tadi akan diberitahukan ke pengirim paket melalui protokol ICMP (Internet Control Message Protocol). 2. Connectionless Untuk melakukan pengiriman datagram dari tempat asal ke tujuan baik pengirim dan penerima tidak melakukan pertukaran (handshake) terlebih dahulu. 3. Datagram delivery service Setiap paket data yang dikirimkan adalah independen terhadap paket data yang lain. Oleh karena itu jalur yang ditempuh oleh masing-masing paket data IP untuk mencapai tujuan akan berbeda-beda antara satu dengan yang lainnya dan
13
kedatangan paket ditempat tujuan pun tidak bisa beruntun. Metode ini dipakai untuk menjamin agar data tetap sampai ke tempat tujuan, walaupun salah satu jalur tujuan mengalami gangguan. 2.2.4.1 IP Address Internet Protocol menggunakan IP Address sebagai identitas, pengiriman data akan dibungkus dalam paket dengan label berupa IP Address si pengirim dan IP Address si penerima. Jika si penerima melihat paket tersebut dengan identitas IP Address yang sesuai, maka datagram tersebut akan diambil dan disalurkan ke TCP melalui port yang sesuai dengan aplikasi yang digunakan. IP Address terdiri dari dua bagian yaitu Network ID (identitas jaringan) dan Host ID (identitas komputer) 2.2.4.2 Format Penulisan IP Address Format IP Address terdiri atas 4 angka yang dipisahkan dengan tanda titik dan yang masing-masing memiliki nilai maksimum 255. Nilai maksimum ini diperoleh dari 2 8. Hal ini dikarenakan format IP Address adalah bilangan biner yang hanya terdiri dari 0 dan 1. Sehingga nilai yang diperoleh adalah dari 0 sampai 255. Format penulisan IP Address adalah sebagai berikut :
Bentuk biner IP Address
: 0000000.00000000.00000000.00000000 11111111.11111111.11111111.11111111
Bentuk desimal IP Address
: 0.0.0.0 255.255.255.255
2.2.4.3 Kelas IP Address
14
Pada dasarnya IP Address memiliki dua bagian yaitu network ID dan host ID. Network ID menentukan alamat jaringan sedangkan host ID menentukan alamat host/komputer. Oleh sebab itu IP address memberikan alamat lengkap suatu host/komputer berupa
alamat jaringan dan alamat host.
Untuk
mempermudah pemakaian, bergantung kebutuhan pemakai, IP address dibagi dalam tiga kelas seperti pada tabel 2.1. Tabel 2.1 Kelas IP Address Kelas A B C
Network ID a. a.b. a.b.c.
Host ID b.c.d c.d D
Default Subnet Mask 255.0.0.0 255.255.0.0 255.255.255.0
Agar peralatan dapat mengetahui kelas suatu IP address, maka setiap IP address harus memiliki subnet mask. Angka desimal 255 atau biner 11111111 suatu default subnet mask menandakan bahwa oktet dari suatu IP Address adalah untuk network ID. Sedangkan angka desimal 0 atau biner 00000000 menandakan bahwa oktet adalah untuk host ID. Dengan memperhatikan default subnet yang diberikan, kelas suatu IP address dapat diketahui. Untuk membedakan kelas satu dengan yang lain, maka dibuat beberapa peraturan sebagai berikut : 1. Oktet pertama kelas A harus dimulai dengan angka binary 0 2. Oktet pertama kelas B harus dimulai dengan angka binary 10 3. Oktet pertama kelas C harus dimulai dengan angka binary 110 4. Oktet pertama kelas D harus dimulai dengan angka binary 1110 5. Oktet pertama kelas E harus dimulai dengan angka binary 1111
15
Oleh sebab itu, IP Address masing-masing kelas harus dimulai dengan angka desimal atau biner tertentu pada oktet pertama. Kelompok oktet pertama untuk masing – masing kelas tampak pada tabel 2.2. Table 2.2 Kelompok oktet pertama dalam desimal dan biner kelas IP Address Kelas A B C D E
Kelompok oktet pertama dalam decimal 1 – 126 128 – 191 192 – 223 224 – 239 240 – 247
Kelompok oktet pertama dalam biner 00000001 - 01111110 10000000 - 10111111 11000000 - 11011111 11100000 - 11101111 11110000 - 11110111
Disamping peraturan tentang kelas IP Address ada juga beberapa aturan tambahan yang perlu kita ketahui, yaitu: 1. Angka 127 pada oktet pertama digunakan untuk loopback. 2. Network ID tidak boleh semuanya terdiri atas angka 0 atau 1. 3. Host ID tidak boleh semuanya terdiri atas angka 0 dan 1. 2.2.4.4 Subnetting Jaringan dengan ukuran tertentu jarang sekali langsung digunakan untuk membentuk satu jaringan. Biasanya sebuah perusahaan memiliki lebih dari satu jaringan (LAN), yang masing-masing jumlah host tidak sebesar jumlah maksimal host yang disediakan oleh satu kelas IP Address. Sehingga dalam penerapannya di sebuah jaringan IP Address dalam kelompok kelas A, B dan C dikelompokkan dalam sebuah group yang disebut sub jaringan atau subnet. Kegunaan subnetting tersebut antara lain adalah: 1. Memadukan teknologi yang berbeda, seperti Ethernet dan Token Ring. 2. Menghindari terbatasnya jumlah simpul dalam satu segment.
16
3. Mengurangi trafik yang disebabkan oleh broadcast maupun tabrakan (collision) di jaringan Ethernet. Sebagai contoh adalah jaringan pada kelas C yang memiliki 254 host (8 bit). 2.2.4.5 PING Packet InterNet Groper atau yang disebut dengan PING merupakan salah satu perintah yang digunakan untuk mengecek komunikasi antar komputer dalam sebuah jaringan melalui protokol TCP/IP dengan menggunakan paket data ICMP (Internet Control Message Protocol). Proses ini dimulai ini dengan mengirimkan paket ICMP ECHO REQUESTS pada IP address komputer tujuan ”ping” dan meminta respon dari komputer tujuan dengan mengirim balik paket ICMP ECHO REPLY . Berikut contoh command ping pada sistem operasi linux :
Gambar 2.1 Screen Capture proses ping 2.3
OSI MODEL OSI Reference Model adalah sebuah model ideal dari koneksi logis yang
harus terjadi agar komunikasi data dalam jaringan dapat berlangsung. Beberapa protokol yang digunakan dalam dunia nyata, seperti TCP/IP, DECnet dan IBM
17
Systems Network Architecture (SNA) memetakan tumpukan protokol mereka ke OSI Reference Model. OSI reference model pun digunakan sebagai titik awal untuk mempelajari bagaimana beberapa protokol jaringan di dalam sebuah kumpulan protokol dapat berfungsi dan berinteraksi. Berikut struktur lapisan model OSI :
Gambar 2.2 Struktur OSI Model (http://www.ccnaguru.com) 1. Physical layer Berfungsi
mendefinisikan media transmisi jaringan, metode pensinyalan,
sinkronisasi bit, arsitektur jaringan (misalnya ethernet dan token ring), topologi jaringan dan pengkabelan. Selain itu level ini juga mendefinisikan bagaimana network interface card (NIC) dapat berinteraksi dengan media kabel atau radio. 2. Data link layer Berfungsi bagaimana bit-bit data dikelompokkan menjadi format yang disebut sebagai frame. Selain itu, pada level ini terjadi koreksi kesalahan, flow control, pengalamatan perangkat keras (MAC Address), dan menentukan bagaimana perangkat-perangkat jaringan seperti hub, bridge, repeater, switch layer 2
18
ebroperasi. Spesifikasi IEEE 802.3 membagi level ini menjadi 2 level anak, yaitu lapisan Logical Link Control (LLC) dan lapisan Media Access Control (MAC) 3. Network layer Berfungsi mendefinisikan alamat-alamat IP, membuat header untuk paketpaket, dan kemudian melakukan routing melalui internetworking dengan menggunakan router dan switch layer 3. 4. Transport layer Berfungsi memecah data ke dalam paket-paket data serta memberikan nomor urut ke paket-paket tersebut sehingga dapat disusun kemmbali pada sisi tujuan setelah diterima. Pada level ini juga dilakukan pembuatan tanda bahwa paket diterima dengan sukses (acknowledgement), dan mentransmisikan ulang terhadap paket-paket yang hilang di tengah jalan. 5. Session layer Berfungsi untuk mendefinisikan bagaimana koneksi dapat dibuat, dipelihara, atau dihancurkan. 6. Presentation layer Berfungsi menterjemahkan data yang akan dikirimkan oleh aplikasi ke dalam format yang dapat ditransmisikan melalui jaringan. 7. Application layer Berfungsi sebagai antarmuka dengan aplikasi dengan fungsionalitas jaringan, mengatur bagaimana aplikasi dapat mengakses jaringan, dan membuat pesanpesan kesalahan. Protokol yang berada dalam lapisan ini adalah HTTP, FTP, SMTP dan sebagainya. 2.4
OPEN SOURCE
19
Open source adalah sistem pengembangan yang tidak dikoordinasi oleh suatu individu/lembaga pusat, tetapi oleh para pelaku yang bekerja sama dengan memanfaatkan kode sumber (source code) yang tersebar dan tersedia bebas (biasanya menggunakan fasilitas kommunikasi internet). (Wikipedia, 2009). Pola pengembangan ini mengambil model ala bazaar, sehingga pola open source ini memiliki ciri bagi komunitasnya yaitu adanya dorongan yang bersumber dari budaya memberi, yang artinya ketika suatu komunitas menggunakan sebuah program open source dan telah menerima sebuah manfaat kemudian akan termotivasi untuk menimbulkan sebuah pertanyaan apa yang bisa pengguna berikan balik kepada orang banyak. Pola open source lahir karena kebebasan berkarya, tanpa intervensi berpikir dan mengungkapkan apa yang diinginkan dengan menggunakan pengetahuan dan produk yang cocok. Kebebasan menjadi pertimbangan utama ketika dilepas ke publik. Komunitas yang lain mendapat kebebasan untuk belajar, mengutak-atik, merevisi ulang, membenarkan ataupun bahkan menyalahkan, tetapi kebebasan ini juga datang bersama dengan tanggung jawab, bukan bebas tanpa tanggung jawab. Open source terbagi menjadi 2, yaitu : 1. Perangkat lunak bebas Perangkat lunak bebas adalah istilah yang diciptakan oleh Richard Stallman dan Free Software Foundation yang mengacu kepada perangkat lunak yang bebas untuk digunakan, dipelajari dan diubah serta dapat disalin dengan atau tanpa modifikasi, atau dengan beberapa keharusan untuk memastikan bahwa kebebasan yang sama tetap dapat dinikmati oleh pengguna-pengguna berikutnya. Bebas di sini juga berarti dalam menggunakan, mempelajari, mengubah, menyalin atau
20
menjual sebuah perangkat lunak, seseorang tidak perlu meminta izin dari siapa pun. (Wikipedia, 2009) Untuk menjadikan sebuah perangkat lunak sebagai perangkat lunak bebas, perangkat lunak tersebut harus memiliki sebuah lisensi, atau berada dalam domain publik dan menyediakan akses ke kode sumbernya bagi setiap orang. Gerakan perangkat lunak bebas (free software movement) yang merintis perangkat lunak bebas berawal pada tahun 1983, bertujuan untuk memberikan kebebasan ini dpat dinikmati oleh setiap pengguna komputer. 2. Perangkat lunak sumber terbuka Perangkat lunak sumber terbuka adalah jenis perangkat lunak yang kode sumbernya terbuka untuk dipelajari, diubah, ditingkatkan dan disebarluaskan. Karena sifat ini, umumnya pengembangannya dilakukan oleh satu paguyuban terbuka yang bertujuan mengembangkan perangkat lunak bersangkutan. Anggotaanggota paguyuban itu seringkali sukarela tapi bisa juga pegawai suatu perusahaan yang dibayar untuk membantu pengembangan perangkat lunak itu. Produk perangkat lunak yang dihasilkan ini biasanya bersifat bebas dengan tetap menganut kaidah dan etika tertentu. (Wikipedia, 2009) Semua perangkat lunak bebas adalah perangkat lunak sumber terbuka, tapi sebaliknya perangkat lunak sumber terbuka belum tentu perangkat lunak bebas, tergantung kaidah yang dipakai dalam melisensikan perangkat lunak sumber terbuka. 2.5
CLUSTERING Cluster, dalam ilmu komputer dan jaringan komputer adalah sekumpulan
komputer (umumnya server jaringan) independen yang beroperasi serta bekerja
21
secara erat dan terlihat oleh klien jaringan seolah-olah komputer-komputer tersebut adalah satu buat unit komputer. proses menghubungkan beberapa komputer agar dapat bekerja seperti itu dinamakan dengan clustering. (Wikipedia, 2009). Komponen cluster saling terhubung melalui sebuah interkoneksi yang cepat, atau dapat juga melalui jaringan lokal (LAN). Contoh cluster seperti pada gambar 2.3 dibawah ini :
Gambar 2.3 Contoh Application Clustering (http://www.dell.com) Karena menggunakan lebih dari satu buah server, maka manajemen dan perawatan sebuah cluster jauh lebih rumit dibandingkan dengan manajemen server mainframe tunggal yang memiliki skalabilitas tinggi, meki lebih murah. Cluster dibagi berdasarkan klasifikasi. Klasifikasi cluster tersebut antara lain adalah : 1. High-availability cluster High-availability cluster atau yang biasa disebut sebagai fail over cluster umumnya diimplementasikan untuk meningkatkan kehandalan layanan yang disediakan oleh cluster tersebut. Elemen cluster akan bekerja dengan memiliki
22
node-node redundan, yang kemudian digunakan untuk menyediakan layanan saat salah satu elemen cluster mengalami kegagalan. Ukuran yang paling umum dari kategori in adalah dua node, yang merupakan syarat minimum untuk melakukan redudansi. Implementasi cluster ini akan mencoba untuk menggunakan redudansi komponen cluster untuk menghilangkan kegagalan di satu titik (single point of failure). Contoh dari high-availability cluster dapat dilihat pada gambar 2.4.
Gambar 2.4 Contoh High-availability Cluster (http://www.anterio.com) 2. Load balancing cluster Cluster kategori ini beroperasi dengan mendistribusikan beban pekerjaan secara merata melalui beberapa node yang bekerja dibelakang (back-end node). Umumnya cluster ini akan dikonfigurasikan sedemikian rupa dengan beberapa front-end load balancing redundan. Karena setiap elemen dalam sebuah load balancing cluster menawarkan layanan penuh, maka dapat dikatakan bahwa komponen cluster tersebut merupakan sebuah cluster aktif, yang bisa menerima semua permintaan yang diajukan oleh klien. Contoh load balancing cluster dapat dilihat pada gambar 2.5.
23
Gambar 2.5 Contoh load balancing cluster (http://www.localweb.com) 3. Compute cluster Seringnya, penggunaan utama cluster komputer adalah untuk tujuan komputasi, ketimbang penanganan operasi yang berorientasi I/O seperti layanan web atau database. Sebagai contoh, sebuah cluster mungkin mendukung simulasi komputasional untuk perubahan cuaca atau tabrakan kendaraan. Perbedaan utama untuk kategori ini dengan kategori lainnya adalah seberapa eratkah penggabungan antar node-nya. Sebagai contoh, sebuah tugas komputasi mungkin membutuhkan komunikasi yang sering antar node, ini berarti bahwa cluster tersebut menggunakan sebuah jaringan terdedikasi yang sama, yang terletak dilokasi yang sangat berdekatan, dan mungkin juga merupakan node-node yang bersifat homogen. Contoh dari compute cluster dapat dilihat pada gambar 2.6
24
Gambar 2.6 Contoh compute cluster (http://faq.distributed.net) 4. Grid computing Grid pada umumnya adalah compute cluster, tapi difokuskan pada throughput seperti utilitas perhitungan ketimbang menjalankan pekerjaan-pekerjaan yang sangat erat yang biasanya dilakukan oleh super komputer. Seringnya, grid memasukkan sekumpulan komputer, yang bisa saja didistribusikan secara geografis, dan kadang diurus oleh organisasi yang tidak saling berkaitan. Grid computing dioptimalkan untuk beban pekerjaan yang mencakup banyak pekerjaan independen atau paket-paket pekerjaan, yang tidak harus berbagi data yang sama antar pekerjaan selama proses komputasi dilakukan. Grid bertindak untuk mengatur alokasi pekerjaan kepada komputer-kompuetr yang akan melakukan tugas tersebut secara independen. Sumber daya, seperti halnya media penyimpanan, mungkin bisa saja digunakan bersama-sama dengan komputer lainnya, tapi hasil sementara dari sebuah tugas tertentu tidak akan mempengaruhi pekerjaan lainnya yang sedang berlangsung dalam komputer lainnya. Contoh grid computing dapat dilihat pada gambar 2.7.
25
Gambar 2.7 Contoh grid computing (http://voneural.na.infn.it) Pada penelitian ini digunakan cluster dengan klasifikasi load-balancing cluster. Beberapa teknologi yang digunakan dalam penelitian ini antara lain adalah : 1. PGCluster PGCluster merupakan system replikasi multi-master yang didesain untuk database open source PostgreSQL (pgcluster.projects.postgresql.org, 2009). Pada kondisi standar, PostgreSQL tidak memiliki system replikasi. Saat ini ada beberapa software yang menawarkan solusi replikasi untuk PostgreSQL ini. Ada beberapa alasan PGCluster lebih banyak digunakan, antara lain adalah : a. Sistem replikasi yang sangat berguna PGCluster adalah sistem replikasi multi-master dimana, semua database dapat berlaku sebagai master. Ini merupakan replikasi sinkron dengan unjuk kerja cukup tinggi yang menjamin akan memberikan hasil yang sama jika mengakses database pada waktu yang tidak ditentukan. b. Tidak membutuhkan hardware tambahan
26
Banyak orang berpikir, bahwa sistem cluster membutuhkan hardware khusus. Namun, PGCluster tidak membutuhkan hardware khusus. Yang dibutuhkan hanyalah sebuah server yang menjalankan PostgreSQL. PGCluster memiliki beberapa komponen. Komponen-komponen tersebut dapat dilihat pada tabel 2.3 Tabel 2.3 Komponen-komponen PGCluster Komponen Load-balancing Replikasi Cluster
Fungsi Menerima koneksi dari klien dan mendistribusikannya jika dibutuhkan Menyebarkan query yang dibuat seperi INSERT, UPDATE dan DELETE Menyimpan data dan mengeksekusi query
Load-balancer, server replikasi dan server cluster ini bukan berbentuk fisik, tetapi merupakan unit logik berupa software. Saat ini PGCluster sudah sampai pada versi 1.9.rc7 dengan menggunakan basis PostgreSQL versi 8.4. 2. LVS LVS (Linux Virtual Server) adalah server dengan skalabilitas dan kehandalan yang tinggi yang dibangun diatas real server. (www.linuxvirtualserver.org, 2009). Arsitektur dari server cluster ini adalah transparan terhadap user, dan user berinteraksi dengan sebuah sistem cluster yang terlihat sebagai sebuah server dengan tingkat kehandalan yang tinggi, seperti terlihat pada gambar berikut
27
Gambar 2.8 Arsitektur Linux Virtual Server (http://www.linuxvirtualserver.org) Real server dan load balancer terhubung dengan interkoneksi LAN ataupun terpisah secara geografis dan terhubung dengan menggunakan WAN. Load balancer dapat mengirimkan permintaan dari user menuju server-server yang berbeda dan membuat pelayanan secara paralel, sehingga membentuk sebuah pelayanan virtual yang berjalan pada satu buah IP Address. Untuk mengirimkan permintaan dapat menggunakan teknologi IP load balancing atau load balancing pada level aplikasi. 2.6
LINUX Linux adalah nama yang diberikan kepada sistem operasi komputer bertipe
unix. Linux merupakan salah satu contoh hasil pengembangan perangkat lunak bebas dan sumber terbuka utama. (Wikipedia, 2009). Seperti perangkat lunak
28
bebas dan sumber terbuka lainnya pada umumnya, kode sumber linux dapat dimodifikasi, digunakan dan didistribusikan kembali secara bebas oleh siapa pun. Nama Linux berasal dari nama kernelnya (kernel linux), yang dibuat tahun 1991 oleh Linux Torvalds. Sistemnya, peralatan sistem dan pustakanya umumnya berasal dari sistem operasi GNU, yang diumumkan tahun 1983 oleh Richard Stallman. Kontribusi GNU adalah dasar dari munculnya nama alternatif GNU/Linux. Linux telah lama dikenal untuk penggunaannya di server, dan didukung oleh perusahaan-perusahaan komputer ternama seperti Dell, Hewlett-Packard, IBM, Novell, Oracle Corporation, RedHat, dan Sun Microsystems. Linux digunakan sebagai sistem operasi di berbagai macam jenis perangkat keras komputer, termasuk komputer desktop, super komputer, dan sistem benam seperti pembaca buku elektronik, sistem permainan video, telepon genggam dan router. Para pengamat teknologi informatika beranggapan kesuksesan linux dikarekan linux tidak bergantung kepada vendor, biaya operasional yang rendah, dan kompatibilats yang dinggi dibandingkan versi unix tak bebas, serta faktor kemanan dan kestabilannya yang tinggi dibandingkan dengan sistem operasi lainnya seperti Microsoft Windows. Ciri-ciri ini juga menjadi bukti atas keunggulan model pengembangan perangkat lunak sumber terbuka (open source software). Perbedaan utama antara linux dan sistem operasi populer lainnya terletak pada kernel linux dan komponen-komponennya yang bebas dan terbuka. Linux bukan satu-satunya sistem operasi dalam kategori tersebut, walaupun demikian linux adalah contoh terbaik dan terbanyak digunakan.
29
Linux dikendalikan oleh pengembang dan komunitas penggunanya. Beberapa vendor mengembangkan dan mendanai distribusi mereka sendiri dengan dasar kesukarelaan. Debian merupakan contoh yang bagus. Yang lain memiliki versi komunitas dari versi komersialnya seperti yang RedHat lakukan dengan Fedora. Terdapat banyak distribusi linux (lebih dikenal dengan distro) yang dibuat oleh individu, grup, atau lembaga lain. Masing-masing disertakan dengan program sistem dan program aplikasi tambahan, disamping menyertakan suatu program yang memasang keseluruhan sistem dikomputer (installer program). 2.7
DISK MIRRORING Mirroring adalah suatu teknik yang menjadikan sebuah sistem dapat
melakukan pengaturan pada beberapa copy data, sehingga ketika terjadi kegagalan pada hardware atau sistem, maka dapat direcovery dengan cepat. (Wikipedia, 2009) Pada data storage, disk mirroring adalah replikasi partisi ke dalam beberapa fisikal disk secara real time untuk menjamin kehandalannya. Pada konsep disaster recovery, mirroring data pada jarak yang jauh disebut dengan storage replication. Tergantung pada teknologi yang digunakan, replikasi dapat dilakukan synchronous, asynchronous, semi synchronous, dan point-in-time. Replikasi dilakukan dengan menggunakan microcode, disk array controller, dan software server. Berikut adalah beberapa contoh yang biasa digunakan untuk melakukan disk mirroring : 1. RAID (Redundant Array Inexpensive Disk)
30
RAID adalah teknologi dalam penyimpanan data pada komputer yang digunakan untuk mengimplementasikan fitur toleransi
kesalahan pada media
penyimpanan komputer (harddisk) dengan cara menggunakan redudansi data, baik itu menggunakan perangkat keras maupun perangkat lunak. Ada beberapa konsep dalam RAID itu mirroring (penyalinan data ke lebih dari satu buah harddisk), stripping (pemecahan data ke beberapa harddisk) dan juga toleransi kesalahan, dimana redudansi data disimpan untuk mengizinkan kesalahan dan masalah untuk dapat dikoreksi dan mungkin dikoreksi. RAID terbagi menjadi beberapa level antara lain yaitu : a. RAID 0, distribusi data ke dalam beberapa disk dengan tujuan meningkatkan kecepatan akses dalam eksekusi data. b. RAID 1, replikasi isi disk ke dalam disk yang lain. Isi dari masing-masing disk adalah identik dengan semua disk yang tergabung dalam 1 array. c. RAID 5, kombinasi tiga atau empat disk dengan tujuan memberikan proteksi terhadap hilangnya data yang diakibatkan rusaknya salah satu disk. d. RAID 10, merupakan gabungan daripada RAID 1 dan RAID 0
2. DRBD (Distributed Replicated Block Device) DRBD adalah block device yang dirancang untuk membangun high-availability sistem. Ini dilakukan dengan cara melakukan mirroring terhadap semua disk melalui jaringan. DRBD dapat disamakan dengan RAID-1, yang membedakan adalah sistem ini menggunakan jaringan sebagai media transmisi untuk melakukan sinkronisasi data antar disk. (www.drbd.org, 2009)
31
Gambar 2.9 Konsep DRBD (http://en.wikipedia.org) DRBD berjalan diatas block device, seperti partisi atau LVM. Dengan menggunakan DRBD, mirroring dapat dilakukan dengan mode synchronous atau asynchronous. Beberapa keuntungan menggunakan DRBD a. DRBD melakukan mirroring secara real-time b. DRBD melakukan mirroring secara transparan c. DRBD melakukan mirroring secara synchronous maupun asynchronous Pada penelitian ini penulis menggunakan DRBD untuk melakukan sinkronisasi data hasil upload pada masing-masing server yang terdaftar dalam sistem cluster. 2.8
SYSTEM TESTING Sistem testing adalah pengujian yang dilakukan terhadap hardware, software
maupun sistem ketika pembangunannya telah selesai, ini dilakukan untuk mengevaluasi sistem apakah sudah dapat memenuhi persyaratan seperti yang dibutuhkan. (Wikipedia, 2009). Ada berbagai macam jenis dari system testing, diantaranya adalah load testing dan stress testing.
32
Load test merupakan salah satu tipe pengujian yang berfokus pada perilaku dari sebuah komponen atau sistem dengan semakin bertambahnya beban yang diberikan, contohnya adalah banyaknya koneksi atau transaksi yang bisa dilayani oleh sebuah komponen atau sistem. Ketika memberikan beban di atas batas normal penggunaan, untuk melakukan pengujian terhadap respon dari sistem pada saat beban kerja yang tinggi, dinamakan stress test. Beban yang diberikan pada umumnya sangat tinggi, sehingga hasil yang diharapkan adalah terjadinya error. Dengan adanya error tersebut maka dapat diketahui kekurangan dari sistem yang diimplementasi tersebut. Pada penelitian ini akan digunakan dua metode pengujian yang telah disebutkan diatas. Pengujian ini dilakukan untuk memastikan apakah sistem yang dibangun sudah memenuhi persayaratan dan dapat memecahakan permasalahan yang dihadapi saat ini. Adapun untuk melakukan pengujian ini, penulis menggunakan perangkat lunak bebas dan perl scripting. Perl scripting disini digunakan untuk melakukan Denial of Service. Dengan script ini seorang pengguna akan melakukan koneksi sebanyak-banyaknya terhadap sebuah sistem sesuai dengan nilai yang dimasukkan pada script tersebut. Sedangkan perangkat lunak bebas yang akan digunakan untuk pengujian antara lain adalah curl-loader dan httperf.