• Tidak ada hasil yang ditemukan

Analisis dan perbandingan distro linux untuk server web konfigurasi default

N/A
N/A
Protected

Academic year: 2017

Membagikan "Analisis dan perbandingan distro linux untuk server web konfigurasi default"

Copied!
171
0
0

Teks penuh

(1)

i

ANALISIS DAN PERBANDINGAN DISTRO LINUX UNTUK

SERVER WEB

KONFIGURASI

DEFAULT

SKRIPSI

Diajukan Untuk Memenuhi Salah Satu Syarat

(2)

ii

ANALYSIS AND COMPARISON OF DISTRO LINUX FOR

WEB SERVER DEFAULT CONFIGURATION

THESIS

Presented as Partial Fulfillment of the Requirements

to Obtain Sarjana Komputer Degree

(3)

iii

(4)

iv

(5)

v

HALAMAN PERSEMBAHAN

Hidup itu pilihan,

setiap pilihan yang kamu pilih ada konsekuensinya.

Lawan terberat adalah dirimu sendiri…

Peduli pada sesama, diri sendiri dan lingkungan…

Hasil jerih payah ini saya persembahkan bagi :

Tanah Air tercinta

Keluarga

Sahabat

Almamater

dan waktu yang terkadang saya sia-siakan…

(6)

vi

Terima kasih teman atas hangatnya bangku kuliah…

Mirella – Dian – Astri – Ade Satya – Anton

Brahu – Wienda – Rosi – Pujo – Cosmas – Adit

Malau - Jeanot – Jenny – Chiputera – Puji – Ayu

Febri – Mita – Anis

Ade Ignatio – Gita – Ratna – Gunung – Setyo

Beny – Fiona – Ageng – Unggul – Denny

Alvin – Wayan – Endrik – Bion – Eki

Ardha – Audris – Tinus – Aden – Grace

Tomi – Dika – Ino – Andi – Kiki – Jerry

Nico – Robert – Yosi – Risma – Ruru – Aan

Tri – Annisa – Ina – Wiwin – Cahyo – Elisa

(7)

vii

(8)

viii ABSTRAK

Website merupakan salah satu fasilitas di internet berupa sekelompok

halaman web (web page), gambar, video dan data digital yang disediakan di satu

atau beberapa web server.

Web server adalah sebuah aplikasi yang memiliki tanggung jawab untuk

menerima request HTTP dari sisi client yang dikenal dengan web browser.Selain

itu, web server juga melayani client dengan menyediakan response HTTP berupa

konten data dalam bentuk halaman web.

Sebuah server memberikan layanan-layanan yang dibutuhkan oleh client,

salah satunya adalah layanan web (web server). Untuk dapat memberikan respon

yang baik dalam memenuhi permintaan request dari client maka diperlukan server

yang didukung dengan processor yang bersifat scalable, memori yang besar, dan

sistem operasi khusus untuk server. Sistem operasi yang biasa digunakan untuk

server adalah linux.

Sistem operasi berfungsi untuk mengatur banyaknya request dari client

dan ketersediaan sumber daya yang ada sekaligus sebagai perantara antara

aplikasi dengan hardware. Peningkatan jumlah request dari client secara

signifikan diharapkan mampu diimbangi dengan kinerja server dalam

memberikan response terutama pada layanan web.

Beberapa varian linux (distro linux) akan diuji pada server dengan beban

request yang meningkat secara signifikan. Sehingga bisa didapatkan distro linux

yang mampu untuk memberikan layanan terhadap request yang meningkat secara

signifikan dengan konfigurasi web server standar.

(9)

ix ABSTRACT

Website is one of the internet facilities and it is a group of web page,

picture, video, and digital data, which are provided in one or some of web server.

Web server is an application which has responsibility to receive HTTP

request from a client side known as the web browser. In addition, the web server

also serves the client by providing response HTTP in the form of data content of

the web page.

A server provides service which is needed by the client. One of the needed

service is web server. To give a good response in filling the client‟s request, the

server should be supported by a scalable processor, a large memory, and a special

operating system for the server. The usual operation system which is used to the

server is linux.

The operating system is used to organize the request from the client and

available resources; and it used as a bridge between the application and hardware.

The increase of the request is expected to be balanced with the server

performance in giving response especially in web service.

Some of distro linux would be tested by request load which increases

significantly. Thus, it can be got a distro linux which is able to give service to the

increased request significantly with standard web server configuration.

(10)

x

(11)

xi

KATA PENGANTAR

Puji dan syukur penulis ucapkan kepada Tuhan Yang Maha Esa, karena

atas berkat dan rahmat-Nya penulis dapat menyelesaikan tugas akhir yang

berjudul “Analisis dan Perbandingan Distro Linux Untuk Server Web

Konfigurasi Default”. Tugas akhir ini ditulis sebagai salah satu syarat

memperoleh gelar Sarjana Komputer program studi Teknik Informatika, Fakultas

Sains dan Teknologi Universitas Sanata Dharma.

Penulis mengucapkan banyak terima kasih kepada semua pihak yang turut

memberikan motivasi, semangat dan bantuan dalam bentuk apapun sehingga tugas

akhir ini dapat terselesaikan dengan baik :

1. Tuhan Yang Maha Esa yang selalu memberikan kesehatan, rezeki dan

kesabaran selama penulis menyelesaikan tugas akhir ini.

2. Ibu Paulina Heruningsih Prima Rosa, S.Si., M.Sc. selaku Dekan Fakultas

Sains dan Teknologi.

3. Ibu Ridowati Gunawan, S.Kom., M.T., selaku Ketua Program Studi

Teknik Informatika.

4. Bapak Henricus Agung Hernawan, S.T., M.Kom. dan Bapak Stephanus

Yudianto Asmoro, S.T., M.Kom. selaku dosen penguji yang memberikan

kritik dan saran terhadap tugas akhir ini.

5. Bapak Iwan Binanto, S.Si., M.Cs. selaku dosen pembimbing akademik

sekaligus dosen pembimbing tugas akhir penulis yang selalu memberikan

semangat, kritik dan saran selama penulis mengerjakan tugas akhir ini.

(12)

xii

6. Seluruh dosen yang telah mendidik dan memberikan ilmu pengetahuan

selama penulis menempuh studi di Universitas Sanata Dharma

Yogyakarta.

7. Staff sekretariat dan laboratorium komputer yang membantu dalam

menyelesaikan tugas akhir.

8. Bapak guru Drs. F. Jokowismanto, Ibu guru Dra. Yulita Setia Ernawati

dan mahasiswa baru Christi Maria Saraswati yang selalu mengingatkan

dan memberi semangat kepada penulis.

9. Mas Susilo, yang menjadi partner penulis di Laboratorium Komputer

Dasar. Terima kasih atas ilmu dan pinjaman komputernya!

10.Teman-teman SaOS (Sanata Dharma Open Source) atas sharing dan

kebersamaannya selama ini. Putar dulu gan!!

11.Keluarga UKF Basket FST, tetap rendah hati, attitude nomor 1. UYE, Play

Hard!!

12.Keluarga Teknik Informatika Universitas Sanata Dharma, terima kasih

atas dinamikanya.

13.Pihak-pihak lain yang turut membantu penulis dalam menyelesaikan tugas

akhir ini, yang tidak dapat disebutkan satu persatu.

Penulis menyadari bahwa tugas akhir ini masih memiliki banyak

kekurangan. Oleh karena itu diperlukan saran dan kritik yang penulis

harapkan dalam memperbaiki tugas akhir ini. Akhir kata, penulis berharap

semoga tugas akhir ini bisa memberikan manfaat bagi semua pihak di

masa yang akan datang. Terima Kasih.

Yogyakarta, … Januari 2014

(13)

xiii

1.1. Latar Belakang Masalah... 1

1.2. Rumusan Masalah ... 3

1.3. Tujuan Penelitian ... 3

1.4. Luaran yang diharapkan ... 3

1.5. Batasan Masalah ... 4

1.6. Metodologi Penelitian ... 4

1.7. Sistematika Penulisan ... 6

BAB II ... 7

LANDASAN TEORI ... 7

2.1. Sistem Operasi ... 7

(14)

xiv

2.1.2. Struktur Sistem Operasi ... 8

2.1.3. Pelayanan Sistem Operasi ... 8

2.1.4. Proses ... 10

2.5. Hypertext Transfer Protocol (HTTP) ... 24

2.5.1. Pengertian Hypertext Transfer Protocol (HTTP) ... 24

2.5.2. HTTP version ... 24

2.6. TCP : Transmission Control Protocol ... 33

2.6.1. Pengertian TCP ... 33

2.6.2. TCP Header ... 33

(15)

xv

2.7. Jaringan Komputer ... 37

2.7.1 Pengertian Jaringan Komputer ... 37

2.7.2. Jenis Jaringan Komputer ... 38

2.7.3. Topologi Jaringan ... 39

2.8. Alat Ukur ... 40

2.8.1. Pengertian Pengukuran ... 40

2.8.2 Webserver Stress Tool ... 41

2.8.3 Performance, Load dan Stress Testing ... 41

BAB III ... 43

PERANCANGAN ... 43

3.1. Perencanaan Awal ... 43

3.2. Topologi Jaringan ... 44

3.3. Pemilihan Distro Linux ... 45

3.4. Rancangan Server ... 47

3.6. Skenario pengujian dan Kehandalan ... 50

3.6.1 Skenario pengujian ... 50

3.6.2 Kehandalan ... 51

BAB IV ... 52

IMPLEMENTASI & ANALISIS... 52

4.1. Instalasi Server ... 52

4.1.1. Instalasi Distro Linux ... 52

4.1.2. Setting IP Address ... 52

(16)

xvi

4.2. Webserver Stress Tool ... 57

4.3. Hasil Pengujian ... 60

4.4. Analisis Pengujian ... 66

4.4.1. Skenario menggunakan memori 2 GB ... 66

4.4.1.1. Beban 300 ... 66

4.4.1.2. Beban 600 ... 73

4.4.1.3. Beban 900 ... 78

4.4.1.4. Beban 1.200 ... 84

4.4.2. Skenario menggunakan memori 4 GB ... 89

(17)

xvii

DAFTAR TABEL

Tabel 2. 1 : Tabel ukuran field pada TCP Header... 34

Tabel 3. 1 : Spesifikasi client dan server ... 43

(18)

xviii

DAFTAR GAMBAR

Gambar 2. 1 : Diagram status proses ... 11

Gambar 2. 2 : Proses single thread dan multithread ... 12

Gambar 2. 3 : Presentase penggunaan distro linux menurut W3Techs ... 19

Gambar 2. 4 : Elemen web server ... 20

Gambar 2. 5 : Cara kerja web server ... 21

Gambar 2. 6 : Presentase penggunaan web server menurut W3Techs... 23

Gambar 2. 7 : Enkapsulasi TCP pada datagram IP ... 33

Gambar 4. 4 : Jumlah user yang akan disimulasikan beserta Click Delay ... 58

Gambar 4. 5 : Menjalankan simulasi pada server yang dituju ... 59

Gambar 4. 6 : Simulasi berjalan untuk melakukan request pada server ... 59

Gambar 4. 7 : Grafik Click Times and Errors ... 61

Gambar 4. 8 : Grafik Click Time, Hit/s, Users/s ... 62

(19)

xix

Gambar 4. 10 : Grafik Spectrum of Clicks Times ... 63

Gambar 4. 11 : Grafik Server and User Bandwidth ... 64

Gambar 4. 12 : Memori yang digunakan oleh server ... 65

Gambar 4. 13 : Grafik Click Times & Errors Slackware ... 66

Gambar 4. 14 : Grafik Server & User Bandwidth Centos ... 67

Gambar 4. 15 : Grafik Open Requests & Transferred Data Slackware ... 68

Gambar 4. 16 : Grafik Open Requests & Transferred Data Centos ... 68

Gambar 4. 17 : Grafik Spectrum of Click Times Open Suse ... 69

Gambar 4. 18 : Grafik Spectrum of Clicks Times Ubuntu ... 70

Gambar 4. 19 : Penggunaan memori Open Suse dan Centos ... 71

Gambar 4. 20 : Grafik penggunaan memori Open Suse ... 72

Gambar 4. 21 : Grafik penggunaan memori Centos ... 72

Gambar 4. 22 : Grafik Click Times & Errors Ubuntu... 73

Gambar 4. 23 : Grafik Server & User Bandwidth Ubuntu ... 74

Gambar 4. 24 : Grafik Open Requests & Transferred Data Centos ... 75

Gambar 4. 25 : Grafik Spectrum of Clicks Times Slackware ... 76

Gambar 4. 26 : Penggunaan memori Open Suse dan Ubuntu ... 77

Gambar 4. 27 : Grafik penggunaan memori Open Suse ... 78

Gambar 4. 28 : Grafik penggunaan memori Ubuntu... 78

Gambar 4. 29 : Grafik Click Times & Errors Ubuntu... 79

Gambar 4. 30 : Grafik Server & User Bandwidth Centos ... 80

Gambar 4. 31 : Grafik Open Requests & Transferred Data Slackware ... 80

Gambar 4. 32 : Grafik Spectrum of Clicks Times Slackware ... 81

Gambar 4. 33 : Penggunaan memori Slackware dan Centos ... 82

Gambar 4. 34 : Grafik penggunaan memori Slackware ... 83

Gambar 4. 35 : Grafik penggunaan memori Centos ... 83

Gambar 4. 36 : Grafik Click Times & Errors Open Suse ... 84

(20)

xx

Gambar 4. 38 : Grafik Open Requests & Transferred Data Ubuntu ... 85

Gambar 4. 39 : Grafik Spectrum of Click Times Slackware ... 86

Gambar 4. 40 : Penggunaan memori Centos dan Slackware ... 87

Gambar 4. 41 : Grafik penggunaan memori Centos ... 88

Gambar 4. 42 : Grafik penggunaan memori Slackware ... 88

Gambar 4. 43 : Grafik Click Times & Errors Ubuntu... 89

Gambar 4. 44 : Grafik Server & User Bandwidth Open Suse ... 90

Gambar 4. 45 : Grafik Open Requests & Transferred Data Ubuntu ... 91

Gambar 4. 46 : Grafik Spectrum of Click Times Centos ... 92

Gambar 4. 47 : Penggunaan memori Centos dan Open Suse ... 93

Gambar 4. 48 : Grafik penggunaan memori Centos ... 93

Gambar 4. 49 : Grafik penggunaan memori Open Suse ... 94

Gambar 4. 50 : Grafik Click Times & Errors Ubuntu... 95

Gambar 4. 51 : Grafik Server & User Bandwidth Centos ... 95

Gambar 4. 52 : Grafik Open Requests & Transferred Data Open Suse ... 96

Gambar 4. 53 : Grafik Spectrum of Click Times Open Suse ... 97

Gambar 4. 54 : Penggunaan memori Centos dan Ubuntu ... 98

Gambar 4. 55 : Grafik penggunaan memori Centos ... 99

Gambar 4. 56 : Grafik penggunaan memori Ubuntu... 99

Gambar 4. 57 : Grafik Click Times & Errors Centos ... 100

Gambar 4. 58 : Grafik Server & User Bandwidth Ubuntu ... 101

Gambar 4. 59 : Grafik Open Requests & Transferred Data Open Suse ... 102

Gambar 4. 60 : Grafik Spectrum of Click Times Slackware ... 103

Gambar 4. 61 : Penggunaan memori Open Suse dan Ubuntu ... 104

Gambar 4. 62 : Grafik penggunaan memori Open Suse ... 105

Gambar 4. 63 : Grafik penggunaan memori Ubuntu... 105

Gambar 4. 64 : Grafik Click Times & Errors Ubuntu... 106

(21)

xxi

Gambar 4. 66 : Grafik Open Requests & Transferred Data Open Suse ... 108

Gambar 4. 67 : Grafik Spectrum of Click Times Slackware ... 109

Gambar 4. 68 : Penggunaan memori Centos dan Open Suse ... 110

Gambar 4. 69 : Grafik penggunaan memori Centos ... 111

Gambar 4. 70 : Grafik penggunaan memori Open Suse ... 111

Gambar 4. 71 : Penggunaan memori Open Suse dan Ubuntu ... 113

Gambar 4. 72 : Grafik penggunaan memori Open Suse ... 114

Gambar 4. 73 : Grafik penggunaan memori Ubuntu... 115

Gambar 4. 74 : Penggunaan memori Centos dan Slackware ... 116

Gambar 4. 75 : Grafik penggunaan memori Centos ... 117

(22)

1 BAB I

PENDAHULUAN

1.1. Latar Belakang Masalah

Perkembangan teknologi informasi saat ini tidak terlepas dari peran

internet sebagai tulang punggung utamanya. Salah satu layanan yang sering

disediakan adalah website. Website merupakan salah satu fasilitas di internet

berupa sekelompok halaman web (web page), gambar, video, dan data digital yang

disediakan di satu atau beberapa web server. Perkembangan website sejalan

dengan perkembangan web server dalam memberikan layanan untuk menyimpan

informasi yang terdapat pada website.

Web server merupakan sebuah aplikasi yang memiliki tanggung jawab

untuk menerima request HTTP dari sisi client yang dikenal dengan web browser

dan melayani mereka dengan menyediakan response HTTP berupa konten data

berupa halaman web. Web server berjalan pada sebuah sistem operasi. Sistem

operasi berfungsi untuk mengontrol dan mengkoordinasi penggunaan hardware di

antara berbagai bentuk aplikasi dan user.

Sebuah server memberikan layanan-layanan yang dibutuhkan oleh client.

Untuk memberikan response yang baik dalam memenuhi permintaan request dari

client maka diperlukan server yang didukung dengan processor yang bersifat

(23)

2

operasi jaringan. Sistem operasi jaringan adalah sistem operasi komputer yang

sering dipakai sebagai server dalam jaringan komputer yang memiliki berbagai

layanan yang ditujukan untuk melayani pengguna atau client. Berdasarkan hasil

survei yang dilakukan oleh W3Techs – World Wide Web Technology Survey,

sistem operasi yang biasa digunakan untuk server adalah berbasis linux. Beberapa

distro linux yang populer digunakan untuk server antara lain debian, centos, dan

ubuntu.

Menurut Engelschall (1998), situs-situs yang menangani banyak

pengunjung/client, kualitas layanan suatu web server tergantung pada dua

parameter yaitu kecepatan transfer dalam jaringan komputer dan waktu respon

server. Kecepatan transfer secara garis besar berkaitan dengan bandwidth dan

jalur yang digunakan ketika mengakses web server tersebut, sedangkan waktu

respon server tergantung pada sumber daya yang digunakan.

Terkait dengan sumber daya yang digunakan, permintaan request secara

signifikan dari client dapat mempengaruhi kinerja server. Sistem operasi

berfungsi untuk mengatur banyaknya request dari client dengan ketersediaan

sumber daya yang ada sekaligus sebagai perantara antara aplikasi dengan

hardware. Peningkatan jumlah request dari client secara signifikan diharapkan

mampu diimbangi dengan kinerja server dalam memberikan response terutama

(24)

1.2. Rumusan Masalah

Masalah yang ingin diselesaikan berdasarkan latar belakang yang sudah

disampaikan adalah bagiamana menentukan distro linux untuk server agar sesuai

dengan sumber daya yang tersedia dan mampu memberikan layanan terhadap

permintaan request yang meningkat dari client secara signifikan terutama pada

layanan web.

1.3. Tujuan Penelitian

Mencari distro linux untuk server yang dapat diuji kehandalannya ketika

sumber daya yang tersedia digunakan untuk memberikan layanan terhadap request

dari client yang meningkat secara signifikan, terutama pada layanan web dengan

konfigurasi standar.

1.4. Luaran yang diharapkan

Harapan dari hasil kegiatan ini adalah memberikan sebuah distro linux

untuk server yang teruji kehandalannya ketika sumber daya yang tersedia dapat

melayani request dari client yang meningkat secara signifikan dengan konfigurasi

(25)

1.5. Batasan Masalah

Ruang lingkup dan batasan masalah yang dikaji pada penelitan dalam

memilih distro linux untuk server antara lain :

1. Menggunakan jaringan komputer skala kecil.

2. Tidak membandingkan web server yang berbeda, hanya menggunakan web

server apache.

3. Membandingkan sistem operasi khusus untuk server berbasis linux dengan

versi kernel di atas 2.2

4. Lebih difokuskan pada layanan web serta dampaknya terhadap distro linux

yang digunakan untuk server.

1.6. Metodologi Penelitian

1. Studi Pustaka

Mencari referensi yang berasal dari berbagai sumber yang

ada seperti dari buku, jurnal ilmiah dan artikel internet terutama

yang berkaitan dengan topik permasalahan yang akan diteliti.

Referensi inilah yang akan digunakan sebagai dasar dari

pengembangan skripsi yang akan dibuat.

(26)

Metode perancangan yang akan dilakukan antara lain:

1. Perancangan topologi jaringan skala kecil antara client dan

server.

2. Pemilihan distro linux khusus untuk server yang akan

digunakan.

3. Menentukan spesifikasi hardware yang akan digunakan.

4. Konfigurasi layanan web yang dipasang pada

masing-masing distro linux.

5. Instalasi apliaksi Webserver Stress Tool pada sisi client.

3. Implementasi

Melakukan pengujian terhadap server khususnya distro

linux yang digunakan pada server dengan meningkatkan jumlah

request terhadap server. Peningkatan jumlah request secara

signifikan berasal dari Webserver Stress Tool.

4. Analisa Hasil

Melakukan analisa terhadap hasil implementasi yang sudah

dilakukan. Analisa dengan berlandaskan pada teori-teori yang

(27)

1.7. Sistematika Penulisan

Sistematika penulisan pada tulisan ini terdiri dari 5 bab :

BAB I PENDAHULUAN

Bab ini mengungkap latar belakang masalah, rumusan masalah,

tujuan penelitian, luaran yang diharapkan, batasan masalah, dan

sistematika penulisan.

BAB II LANDASAN TEORI

Bab ini menjelasakan dan menguraikan teori-teori yang digunakan

sebagai pedoman penelitian.

BAB III PERANCANGAN

Perancangan yang akan dilakukan secara rinci beserta metode yang

akan dilakukan.

BAB IV IMPLEMENTASI DAN ANALISIS

Menjelaskan mengenai tahapan dalam melakukan pengujian,

dilanjutkan dengan analisa serta evaluasi terhadap hasil pengujian yang

sudah diimplementasikan.

BAB V KESIMPULAN DAN SARAN

Berisi kesimpulan pengerjaan tugas akhir dan saran untuk

(28)

7 BAB II

LANDASAN TEORI

2.1. Sistem Operasi

2.1.1. Pengertian Sistem Operasi

Sebelum membahas sistem operasi, terlebih dahulu dibahas tentang

sistem komputer. Sistem komputer dapat dibagi menjadi 4 komponen,

yaitu :

1. Hardware, menyediakan sumber daya komputer. Misal CPU,

Memori, I/O device.

2. Sistem operasi, mengontrol dan mengkoordinasikan penggunaan

hardware di antara berbagai aplikasi dan user.

3. Program-program aplikasi, mendefinisikan cara di mana sumber

daya sistem digunakan untuk memecahkan masalah penghitungan

(computing) user. Contoh : word processors, sistem database,

compilers.

4. User-user, mendefinisikan manusia, mesin atau komputer lain.

Menurut Silberschatz (2005), sistem operasi merupakan sebuah

program untuk mengatur hardware sebuah komputer. Sistem operasi

(29)

berdaya guna. Tujuan dasar dari sistem komputer adalah mengeksekusi

program dan memecahkan permasalahan user lebih mudah.

2.1.2. Struktur Sistem Operasi

Sistem operasi menyediakan lingkungan di mana program dapat

dieksekusi. Salah satu aspek terpenting sistem operasi adalah kemampuan

untuk melakukan multiprogramming. Multiprogramming meningkatkan

pemanfaatan CPU dengan mengorganisir job (kode atau data) sehingga

CPU selalu mempunyai satu job untuk diproses (mengurangi idle).

Time Sharing (multitasking) adalah perluasan logical dari

multiprogramming. Dalam sistem ini CPU mengeksekusi banyak job

dengan me-switch diantaranya, tetapi switch tersebut dilakukan sesering

mungkin, sehingga user dapat berinteraksi pada setiap program yang

berjalan.

2.1.3. Pelayanan Sistem Operasi

Pelayanan sistem operasi menyediakan beberapa fungsi yang

sangat membantu user, yaitu :

1. User interface, bentuk-bentuk user interface yang umum

(30)

a) Command Line Interface (CLI), menggunakan perintah

dalam bentuk teks dan sebuah metode untuk memasukinya.

b) Batch Interface, di mana perintah dan directive

4. File-System manipulation, program dapat melakukan baca/tulis,

pengubahan, penghapusan file.

5. Communications, suatu proses terkadang memerlukan informasi

dari proses yang lainnya. Komunikasi juga dapat dilakukan melalui

satu mesin komputer atau mesin komputer lain melalui jaringan.

6. Error detection, sistem operasi mampu melakukan deteksi

kesalahan yang disebabkan oleh perangkat keras maupun perangkat

(31)

7. Resource allocation, di mana beberapa user dan beberapa job

berjalan bersama, sumber daya harus dialokasikan.

8. Accounting, menjaga jalur di mana user menggunakan berapa dan

apa jenis sumber daya komputer tersebut.

9. Protection and security, perlindungan sangat diperlukan sistem dari

berbagai gangguan yang berasal dari luar maupun di dalam sistem

tersebut.

2.1.4. Proses

Menurut Silberschatz (2005), proses tidak hanya sekedar suatu

kode program, melainkan meliputi beberapa aktivitas yang bersangkutan

seperti program counter dan stack. Sebuah proses juga melibatkan stack

yang berisi data sementara (parameter fungsi/metode, return address, dan

variabel lokal) dan data section yang menyimpan variabel-variabel global.

Menurut Tanenbaum (2001), proses adalah sebuah program yang

dieksekusi yang mencakup program counter, register, dan variabel di

dalamnya. Proses yang dieksekusi mempunyai lima status yang terdiri

dari:

1. New : Pembentukan suatu proses.

(32)

3. Waiting : Proses menunggu untuk beberapa event yang terjadi.

4. Ready : Proses menunggu untuk dialirkan ke pemroses (processor).

5. Terminated : Proses telah selesai dieksekusi.

Gambar 2. 1 : Diagram status proses

Sebuah proses dapat memiliki karakteristik sebagai unit of

resource ownership atau unit of dispatching. Unit of resource ownership

akan mengabstraksi alamat virtual untuk menyimpan proses image dan

dari waktu ke waktu, proses diberi memori utama ditambah kendali

terhadap sumber daya lain. Biasa disebut dengan proses atau task.

2.1.5. Thread

Unit of dispatching akan memiliki satu jalur eksekusi (trace).

Eksekusi ini mungkin bergantian (interleaving) dengan proses lain.

Sebuah proses memiliki status proses dan prioritas penjadwalan yang

(33)

penjadwalan processor. Biasa disebut dengan thread atau lightweight

process.

Thread terdiri dari dua bentuk, yaitu user thread dan kernel thread.

User thread adalah thread yang diatur dengan menggunakan pustaka level

thread. Sedangkan kernel thread adalah thread yang didukung oleh kernel.

Proses merupakan sebuah program yang mengeksekusi thread

tunggal. Kendali thread tunggal ini hanya memungkinkan proses untuk

menjalankan satu tugas pada satu waktu. Maka dari itu dikembangkan

sebuah konsep agar memungkinkan sebuah proses untuk mengeksekusi

multi-threads. Salah satu contoh aplikasi yang perlu menjalankan beberapa

tugas serupa adalah web server.

Gambar 2. 2 : Proses single thread dan multithread

(34)

1. Responsif, menjadi tetap responsif meski sebagian dari program

sedang melakukan operasi atau tugas kepada pengguna.

2. Berbagi sumber daya, mengizinkan sebuah aplikasi untuk

mempunyai beberapa thread yang berbeda dalam lokasi memori

yang sama.

3. Ekonomis, lebih ekonomis dalam pembuatan sebuah proses.

4. Utilisasi arsitektur multiprocessor, setiap thread dapat berjalan

secara paralel di atas processor yang berbeda.

2.1.6. Kernel

Kernel adalah komponen sentral dari sistem operasi yang mengatur

hal-hal seperti interrupt handler (layanan interupsi), process scheduler

(pembagian proses dalam processor), memory management, input/output,

dan sebagainya. Dengan kata lain bisa dikatakan bahwa kernel adalah

jembatan antara hardware dengan software.

Ada 2 cara untuk membangun sistem operasi, yaitu :

1. Cara tradisional, membuat kernel monolitis, yaitu semua fungsi

disediakan oleh kernel, dan menjadikan kernel program yang besar

(35)

2. Cara modern, menggunakan kernel mikro, yaitu dengan

mengimplementasikan fitur-fitur yang diperlukan saja, bisa

disesuaikan dengan kebutuhan sistem operasi.

Setiap distro linux memiliki versi kernel yang kemungkinan

berbeda satu dengan lainnya. Format dari sebuah kernel linux bertuliskan

X.Y.Z yang terdiri dari 3 bagian yaitu Major Number (X), Minor Number

(Y), dan Revision Number (Z) yang masing-masing terpisah oleh tanda

titik.

Major Number, terletak pada awal penulisan kode. Pada format

penulisan dilambangkan dengan X. Angka pada major number akan jarang

berubah untuk waktu yang lama. Jika terjadi perubahan pada angka ini,

menandakan adanya perubahan besar atau upgrade terhadap kernel.

Minor Number, terletak pada tengah penulisan kode. Pada format

penulisan dilambangkan dengan Y. Minor Number bisa berupa angka

ganjil atau angka genap. Angka ganjil mengandung experimental code dan

fitur terbaru yang ditambahkan oleh developernya (sedang dalam tahap

pengembangan). Sedangkan angka genap menandakan kernel yang stabil

dan ketika dirilis tidak ada penambahan apapun.

Revision Number, terletak pada akhir penulisan kode. Pada format

penulisan dilambangkan dengan Z. Revision Number menunjuk pada

nomor revisi yang menandakan current patch versi tersebut. Pada tahap

(36)

2.2 Linux

2.2.1 Pengertian Linux

Linux adalah sebuah program open source gratis di bawah lisensi

GNU (GNU‟s Not Unix) yang merupakan turunan dari Unix yang dapat

dijalankan di berbagai macam platform perangkat keras. Linux didesain

oleh Linus Torvalds yang terinspirasi dengan lisensi GNU, pengguna

dapat memperoleh kode sumbernya (source code), mengubah kode sumber

tersebut dan mengkopi sebanyak yang diinginkan.

Kernel linux membentuk inti dari sistem operasi linux yang

menyediakan semua fungsi yang diperlukan untuk menjalankan proses dan

menyediakan servis sistem untuk memberikan pengaturan dan proteksi

akses ke sumber daya perangkat keras.

2.2.2 Distro Linux

Distro atau distribusi linux merupakan kernel linux dan kumpulan

aplikasi-aplikasi linux yang dipaketkan oleh perusahaan, organisasi atau

personal yang tertarik dengan linux. Pemaketan dilakukan berdasarkan

kebutuhan. Saat ini sudah banyak sekali distro turunan, namun distro

induk/besar yang terkenal antara lain adalah redhat, debian, dan slackware.

Distro induk memiliki sistem manajemen paket yang berbeda-beda

ditandai dengan ekstensi file paket, misalnya debian memiliki ekstensi

(37)

*.tgz/*txz. Ekstensi ini akan tetap digunakan oleh turunan dari distro induk

tersebut. Misal ubuntu merupakan turunan dari debian, maka ekstensi yang

digunakan adalah *.deb. Selain itu tiap-tiap distro memiliki dependensi

(ketergantungan) terhadap package lain. Contohnya meskipun sama-sama

berekstensi .deb, apabila dependensinya tidak terpenuhi maka tidak dapat

diinstal. Perbedaan versi dan penamaan package juga dapat menjadi

masalah tersendiri.

2.3. Server

2.3.1. Pengertian Server

Server adalah komputer yang “melayani” sesuatu. Server

umumnya dapat menangani permintaan client dalam jumlah yang banyak

secara simultan.

Server merupakan sebuah sistem komputer yang menyediakan

jenis layanan tertentu dalam sebuah jaringan komputer. Server didukung

dengan processor bersifat scalable dan RAM yang besar, juga dilengkapi

sistem operasi jaringan yang memiliki berbagai macam layanan yang dapat

diakses oleh client.

Terdapat dua jenis server, yaitu dedicated server dan undedicated

server. Pada dedicated server hanya tersedia satu layanan saja. Sedangkan

undedicated server memiliki beberapa layanan di dalamnya, sehingga

(38)

2.3.2. Layanan

Berikut ini merupakan layanan yang secara umum terdapat pada

server, antara lain :

1. DHCP server (Dynamic Hosting Configuration Protocol),

merupakan pemberian dan pengalokasian alamat IP pada jaringan

secara otomatis. Sehingga client yang akan berkomunikasi akan

mendapatkan alamat IP secara otomatis.

2. DNS server (Domain Name System), merupakan sistem yang

menyimpan informasi tentang nama host maupun nama domain

dalam bentuk basis data terdistribusi di dalam jaringan komputer.

3. Web server, salah satu layanan dari server yang berfungsi untuk

melayani permintaan web pages oleh client melalui protokol HTTP

atau HTTPS dan memberikan response dengan mengirimkan

dokumen berupa HTML.

4. FTP server (File Transfer Protocol), merupakan salah satu layanan

dari server yang digunakan untuk melakukan transaksi pengiriman

suatu file. Layanan ini paling banyak digunakan oleh pemakai

internet.

5. Mail server, layanan yang digunakan untuk melakukan pengiriman

(39)

6. Proxy server, sebuah layanan yang bertindak sebagai perantara

antar client dan public network, dapat menghemat bandwidth serta

filtering kepada client.

2.3.3. Sistem Operasi Server

Seperti kita ketahui bahwa server diibaratkan sebagai sebuah

komputer yang selalu memberikan layanan secara non-stop dan selalu siap

sedia untuk menerima permintaan request dari client. Server juga memiliki

sistem operasi yang berfungsi sebagai kontrol terhadap aplikasi dan

layanan yang ada pada server.

Menurut pengamatan W3Techs – World Wide Web Technology

Survey, sistem operasi pada server yang sering digunakan adalah berbasis

Unix/Linux. Dipilih demikian karena Unix/Linux stabil, tangguh, dan

bersifat open source. Distribusi linux yang pesat memberikan dampak

pada pemilihan sistem operasi khusus untuk server. Beberapa sistem

operasi yang biasa digunakan pada server antara lain centos, debian,

ubuntu, fedora, slackware, dan open suse.

Berikut distro linux yang sering digunakan untuk sebuah server

berdasarkan data yang diambil dari W3Techs – World Wide Web

(40)

Gambar 2. 3 : Presentase penggunaan distro linux menurut W3Techs

2.4. Web Server

2.4.1. Pengertian Web Server

Menurut Achmad (2008), web server adalah sebuah perangkat

lunak server yang berfungsi menerima permintaan (request) melalui HTTP

atau HTTPS dari client yang dikenal dengan web browser dan

mengirimkan kembali (response) hasilnya dalam bentuk halaman-halaman

web yang umumnya berbentuk dokumen HTML.

Menurut Aulds (2002), web server adalah aplikasi perangkat lunak

(41)

berupa halaman web dengan menggunakan protokol HTTP. Protokol ini

yang dipergunakan untuk mentransfer dokumen yang umumnya berbentuk

HTML.

Beberapa contoh aplikasi web server antara lain apache,

micrsosft-IIS, nginx, litespeed,dan lighttpd web server.

2.4.2. Prinsip dan Cara Kerja

Web Server merupakan kombinasi perangkat keras, sistem operasi,

perangkat lunak server dan content.

Gambar 2. 4 : Elemen web server

Elemen tersebut mempunyai pengaruh, baik secara langsung maupun tidak

langsung terhadap performansi web server. Prinsip kerja dari web server

ada dua, yaitu :

1. Menerima permintaan (request) dari client.

2. Mengirimkan apa yang diminta oleh client (response).

(42)

Gambar 2. 5 : Cara kerja web server

Penjelasan gambar sebagai berikut :

A. Client bisa berupa sebuah komputer yang sudah memiliki aplikasi

web browser di dalamnya serta terhubung pada sebuah jaringan

internet atau intranet.

B. Server, sebuah komputer yang selalu siap sedia dalam melayani

client yang terhubung pada sebuah jaringan tertentu. Di dalam

server terdapat perangkat lunak web server. Pada jaringan, server

ini bisa dikenal dengan www.usd.ac.id, www.google.com atau

memiliki IP Address seperti 202.94.83.16, 192.168.1.1

1. Di sisi client, user meminta (request) sebuah halaman website

kepada server untuk ditampilkan pada komputer client. Di sini

client mengetikan suatu alamat yang disebut URL (Uniform

Resource Locator) pada browser. Misal client mengetik

(43)

atau HTTPS dicarilah komputer bernama www.usd.ac.id. Jika

ditemukan, maka seolah-olah terjadi sebuah permintaan “Halo

USD, ada client yang minta halaman utama, ada di mana halaman

utamanya?”. Ini yang disebut dengan request.

2. Di sisi server (web server). Mendapat permintaan halaman utama

USD dari client, server mencari halaman sesuai dengan

permintaan. Jika halaman yang diminta ditemukan, maka server

akan mengirimkannya pada client. Namun jika tidak ditemukan,

server akan memberikan pesan bahwa halaman yang diminta tidak

ditemukan yang dikenal dengan “404. Page Not Found”.

2.4.3. Apache

Apache merupakan salah satu aplikasi web server yang banyak

digunakan. Hasil pengamatan survei W3Techs – World Wide Web

Technology Survey pada awal tahun 2013 menyatakan bahwa web server

(44)

Gambar 2. 6 : Presentase penggunaan web server menurut W3Techs

Perkembangan apache dimulai dari tahun 1995 oleh sekelompok

kecil pemrogram yaitu Apache Software Foundation incorporated, tahun

1999 mulai berkonsentrasi untuk mendukung projek Apache HTTP server.

Beberapa keunggulan yang ditawarkan antara lain :

1. Tingkat stabilitas tinggi.

2. Aplikasi secara keseluruhan, dan modul-modul tambahan bersifat

open source dengan masing-masing lisensi dari aplikasi.

3. Bekerja pada berbagai macam platform dan sistem operasi.

4. Menghadirkan tingkat keamanan yang lebih baik.

5. Dapat diintegrasikan dengan berbagai modul seperti PHP, MySQL,

(45)

2.5. Hypertext Transfer Protocol (HTTP)

2.5.1. Pengertian Hypertext Transfer Protocol (HTTP)

Hypertext Transfer Protocol (HTTP) adalah suatu protokol untuk

menentukan aturan yang harus diikuti oleh web browser dalam meminta

atau mengambil suatu dokumen yang berasal dari sebuah server tertentu.

Web browser biasanya memulai permintaan dengan membuat hubungan

TCP/IP ke port 80 (port default dari HTTP).

HTTP digunakan untuk mentransfer dokumen dalam World Wide

Web (WWW), termasuk protokol ringan, tidak berstatus dan generik yang

dapat dipergunakan pada berbagai macam dokumen. Pengembang standar

HTTP dilaksanakan oleh Konsorium World Wide Web (World Wide

Consortium/W3C) dan juga Internet Engineering Task Force (IETF) yang

menghasilkan publikasi beberapa dokumen Request for Comments (RFC),

antara lain RFC 1945 yang mendefinisikan tentang HTTP/1.0 dan RFC

2616 yang mendefinisikan tentang HTTP/1.1

2.5.2. HTTP version

2.5.2.1. HTTP/0.9

HTTP/0.9 adalah versi pertama dari HTTP yang diperkenalkan

pada tahun 1991. Versi ini merupakan versi mentah dari HTTP yang

dikenal saat ini, yaitu HTTP/1.0 dan HTTP/1.1. Versi ini masih sangat

(46)

2.5.2.2. HTTP/1.0

HTTP/1.0 diperkenalkan pada tahun 1996 ketika internet juga

mulai banyak digunakan. Perubahan HTTP dari 0.9 ke 1.0 dilakukan

untuk mengakomodasi tipe-tipe dokumen yang hendak dikirim beserta

enkoding yang dipergunakan dalam pengiriman data dokumen. Pada

HTTP/1.0 masih menggunakan koneksi terpisah untuk setiap

dokumen.

Protokol HTTP berdasar pada paradigma request dan respon.

Client membuat sebuah koneksi dengan server lalu mengirimkan

permintaan pada server. Kemudian server memberikan respon sesuai

dengan apa yang diminta oleh client disertai status pesan yang

diberikan.

2.5.2.3. HTTP/1.1

HTTP/1.1 merupakan versi yang paling banyak digunakan saat ini

yang diperkenalkan sejak tahun 1997. Salah satu keunggulan dari

HTTP/1.1 yaitu dapat menggunakan koneksi yang sama untuk

melakukan transaksi. Dengan demikian, HTTP/1.1 bisa lebih cepat

karena memang tidak perlu untuk membuang waktu untuk koneksi

(47)

2.5.3. Metode Umum HTTP

Menurut RFC 2616, pada HTTP ada beberapa metode dalam

melakukan request dan respon antara client dan server, seperti di bawah

ini:

1. GET, mengambil informasi dari server sesuai alamat URL yang

sudah diberikan dan tidak berpengaruh pada data yang lain.

2. POST, mengirim data ke server yang dituju untuk diproses.

3. HEAD, sama dengan metode GET tetapi hanya mentransfer baris

status dan bagian header.

4. PUT, mengunggah representasi sumber tertentu.

5. DELETE, meminta pada server untuk menghapus sumber tertentu.

6. OPTIONS, mengembalikan metode HTTP yang mendukung

server, pilihan komunikasi yang tersedia pada request/respon.

7. CONNECT, mengubah koneksi permintaan untuk memfasilitasi

komunikasi terenkripsi.

8. TRACE, menganalisis koneksi antara client dan server dalam

(48)

2.5.4. Kode Status Respon HTTP

Saat server memberikan respon terhadap sebuah permintaan HTTP

ada sebuah pesan berupa kode angka 3 digit yang dikirimkan pada client.

Digit pertama pada kode status itu menentukan salah satu dari lima kelas

respon yang terdapat di bawah ini:

1. 1xx  Informational, kelas dari kode status ini menunjukkan

respon sementara.

a. 100  Continue, client diperbolehkan untuk melanjutkan

permintaannya.

b. 101 Switching Protocols, server memahami dan bersedia

untuk memenuhi permintaan client.

2. 2xx Success, permintaan telah berhasil. Informasi yang kembali

disesuaikan dengan metode yang digunakan dalam melakukan

permintaan.

a. 200  OK, permintaan telah berhasil.

b. 201  Created, permintaan telah terpenuhi dan

menghasilkan sumber daya yang baru dibuat.

c. 202  Accepted, permintaan telah diterima untuk diproses,

(49)

d. 203 Non-Authoritative Information, tidak diperlukan dan

hanya sesuai apabila respon sebaliknya akan OK (kode

status 200)

e. 204  No Content, server telah memenuhi permintaan

tersebut, tetapi tidak perlu mengembalikan isi dari entitas

tersebut atau bahkan memperbaharuinya.

f. 205  Reset Content, server telah memenuhi permintaan

dan client harus melihat ulang dokumen yang sudah dikirim

sebagai permintaan.

g. 206 Partial Content, server telah memenuhi permintaan

GET secara parsial untuk sumber daya.

3. 3xx  Redirection, perlunya untuk mengambil tindakan lebih

lanjut oleh client untuk memenuhi permintaan.

a. 300  Multiple Choices, client dapat memilih representasi

yang disukai dan dapat mengarahkan permintaan ke lokasi

tersebut.

b. 301  Moved Permanently, sumber daya yang diminta

telah ditetapkan secara permanen.

c. 302 Found, sumber daya yang diminta sementara berada

(50)

d. 303  See Other, respon terhadap permintaan dapat

ditemukan pada URI (Uniform Resource Identifier) yang

berbeda menggunakan metode GET.

e. 304 Not Modified, server memberikan respon pada client

yang melakukan permintaan GET bersyarat dan akses

diperbolehkan akan tetapi dokumen belum dimodifikasi.

f. 305  Use Proxy, sumber yang diminta harus diakses

melalui proxy yang sudah diberikan.

g. 306  (Unused), digunakan pada versi sebelumnya dan

sudah tidak lagi digunakan.

h. 307  Temporary Redirect, sumber daya yang diminta

untuk sementara dialihkan pada URI (Uniform Resource

Identifier) yang berbeda.

4. 4xx  Client Error, kesalahan yang dilakukan oleh client dalam

melakukan permintaan, sehingga server memberikan penjelasan

tentang situasi kesalahan tersebut.

a. 400 Bad Request, permintaan tidak dapat dipahami oleh

server.

b. 401  Unauthorized, permintaan memerlukan otentikasi

(51)

c. 402  Payment Required, kode ini disediakan untuk

penggunaan masa depan.

d. 403  Forbidden, server memahami permintaan, tetapi

menolak untuk memenuhinya.

e. 404  Not Found, server tidak menemukan apa-apa yang

cocok sesuai dengan request yang diminta client.

f. 405 Method Not Allowed, metode yang ditetapkan dalam

melakukan request tidak diperbolehkan.

g. 406  Not Acceptable, sumber daya yang diidentifikasi

oleh permintaan hanya mampu menghasilkan respon tidak

dapat diterima sebagai sebuah permintaan.

h. 407  Proxy Authentication Required, kode ini mirip

dengan kode 401 (tidak sah), tapi menunjukkan bahwa

client harus terlebih dahulu mengotentikasikan dirinya

dengan proxy.

i. 408  Request Timeout, client tidak menghasilkan

permintaan pada saat server standby.

j. 409 Conflict, permintaan tidak dapat diselesaikan karena

(52)

k. 410 Gone, sumber daya yang diminta tidak tersedia pada

server dan tidak ada alamat yang dikenal.

l. 411  Length Required, server menolak untuk menerima

permintaan tanpa memenuhi syarat tertentu.

m. 412  Precondition Failed, prasyarat yang diberikan

ketika dievaluasi dan diuji ternyata palsu.

n. 413  Request Entity Too Large, server menolak untuk

memproses permintaan karena entitas permintaan lebih dari

kemampuan server dalam melakukan proses.

o. 414  Request-URI Too Long, server menolak untuk

melayani permintaan karena request URI (Uniform

Resource Identifier) lebih panjang, sehingga sulit untuk

ditafsirkan.

p. 415  Unsupported Media Type, server menolak untuk

melayani permintaan karena format yang tidak mendukung.

q. 416 Request Range Not Satisfiable, server harus kembali

memberikan respon jika permintaan termasuk pada rentang

dan tidak saling tumpang tindih.

r. 417  Expectation Failed, harapan untuk melayani

(53)

5. 5xx  Server Error, kesalahan pada server karena tidak mampu

untuk merespon permintaan yang masuk.

a. 500  Internal Server Error, server mengalami kondisi

yang tidak terduga sehingga tidak dapat memenuhi

permintaan.

b. 501  Not Implemented, server tidak mendukung fungsi

yang diperlukan dalam memenuhi permintaan.

c. 502  Bad Gateway, server yang sementara bertindak

sebagai gateway atau proxy tidak mampu memberikan

respon yang valid dalam memenuhi permintaan.

d. 503  Service Unavailable, server saat ini tidak dapat

mendukung versi protokol HTTP yang digunakan dalam

(54)

2.6. TCP : Transmission Control Protocol

2.6.1. Pengertian TCP

Transmission Control Protocol (TCP) merupakan salah satu

protokol terpenting pada layer transport selain User Datagram Protocol

(UDP). TCP memiliki beberapa karakteristik, yaitu connection oriented,

reliable dan byte stream service.

TCP merupakan protokol yang bersifat connection oriented.

Artinya sebelum memulai proses transmisi data terjadi, dua aplikasi TCP

harus melakukan pertukaran control informasi (handshaking). TCP juga

bersifat reliable karena menerapkan fitur deteksi kesalahan dan retransmisi

apabila ada data yang rusak, sehingga keutuhan data dapat terjamin.

terdapat pada gambar 2.7 di bawah ini:

(55)

Ukuran normal dari TCP header itu sendiri adalah 20 bytes. Gambar 2.8

menunjukkan format header dari TCP.

Gambar 2. 8 : TCP Header

Format dari header TCP dilengkapi dengan ukuran pada masing-masing

fieldnya seperti pada Tabel 2.1 di bawah ini.

Tabel 2. 1 : Tabel ukuran field pada TCP Header

Nama Field Ukuran Keterangan

Source Port 16 bit (2 byte) Mengindikasikan sumber protokol lapisan aplikasi yang mengirimkan segmen TCP yang bersangkutan.

Destination Port 16 bit (2 byte) Mengindikasikan tujuan protokol lapisan aplikasi yang menerima segmen TCP yang bersangkutan.

Sequence Number 32 bit (4 byte) Mengindikasikan nomor urut dari oktet pertama dari data di dalam oktet selanjutnya dalam aliran byte yang diharapkan untuk diterima oleh pengirim dari penerima pada pengiriman selanjutnya.

Header Length (Data offset)

(56)

berarti ukuran dari header TCP.

Reserved 6 bit Direservasikan untuk digunakan pada masa depan. Pengirim segmen TCP akan mengeset bit-bit ini ke dalam nilai nol.

Flags 6 bit Mengindikasikan flag-flag TCP yang jumlahnya ada enam yaitu :

Window 16 bit (2 byte) Mengindikasikan jumlah byte yang tersedia yang dimiliki oleh buffer host penerima segmen yang bersangkutan.

Checksum 16 bit (2 byte) Mampu melakukan pengecekan integritas segmen TCP.

Urgent Pointer 16 bit (2 byte) Menandakan lokasi data yang

dianggap “urgent” dalam segmen.

Options 32 bit (4 byte) Berfungsi sebagai penampung beberapa opsi tambahan TCP.

Data 32 bit (4 byte) Digunakan untuk memenuhi panjang header, merupakan kelipatan 32 bit. Jika terdapat header yang kurang, maka akan ditambahkan sampai berjumlah 32 bit.

2.6.3. TCP State Transition Diagram

TCP State Transition Diagram merupakan sebuah ringakasan yang

menjelaskan berbagai aturan dalam melakukan inisiasi hingga pemutusan

koneksi menggunakan protokol TCP. Aturan-aturan tersebut terdapat pada

(57)

Gambar 2. 9 : TCP State Transtiton Diagram

Secara singkat makna dari masing-masing state sebagai berikut:

1. LISTEN, menggambarkan ketika menunggu sebuah request untuk

membuat sebuah koneksi.

2. SYN-SENT, menunggu sambungan request yang cocok setelah

mengirimkan permintaan koneksi.

3. SYN-RECEIVED, menunggu untuk mengkonfirmasi sebuah

request setelah menerima dan mengirimkan kembali permintaan

(58)

4. ESTABLISHED, koneksi yang sudah terbuka, data yang diterima

dapat dikirim ke pengguna. Bisa dikatakan sebagai keadaan normal

untuk tahap transfer data menggunakan sebuah koneksi.

5. FIN-WAIT-1, menunggu permintaan untuk melakukan pemutusan

koneksi yang dikirim sebelumnya.

6. FIN-WAIT-2, menunggu permintaan untuk pemutusan koneksi

dari remote TCP.

7. CLOSE-WAIT, menunggu permintaan untuk pemutusan koneksi

dari pengguna lokal.

8. CLOSING, menunggu permintaan pemutusan koneksi ACK dari

remote TCP.

9. LAST-ACK, menunggu ACK dari permintaan pemutusan koneksi

yang sebelumnya dikirim TCP server.

10.TIME-WAIT, waktu tunggu yang diperlukan untuk memastikan

bahwa TCP server menerima permintaan penghentian koneksi.

11.CLOSED, tidak ada koneksi sama sekali.

2.7. Jaringan Komputer

2.7.1 Pengertian Jaringan Komputer

Jaringan komputer adalah sekumpulan komputer, printer, dan

peralatan lainnya yang terhubung dalam satu kesatuan. Informasi dan data

bergerak melalui kabel maupun tanpa kabel sehingga memungkinkan

(59)

pada printer yang sama dan bersama-sama menggunakan perangkat keras

dan perangkat lunak yang terhubung dalam jaringan. Setiap komputer,

printer atau periferal yang terhubung dalam jaringan disebut node.

Menurut Lukas (2000), jaringan komputer adalah kumpulan

perangkat yang berinteraksi satu sama lain untuk menyediakan

komunikasi. Pada dasarnya tujuan suatu jaringan adalah penyampaian

informasi dari suatu tempat yang disebut sumber ke tempat lain yang

disebut tujuan, dengan menggunakan media transmisi dan

perangkat-perangkat serta protokol tertentu.

2.7.2. Jenis Jaringan Komputer

Berdasarkan luas areanya, jaringan komputer diklasifikasikan

menjadi :

1. Local Area Network (LAN)

LAN merupakan jaringan yang menghubungkan

komputer dan perangkat dalam area yang terbatas.

2. Metropolitan Area Network (MAN)

Merupakan jaringan yang mencakup satu kota besar

beserta daerah setempat. Area cakupannya lebih besar dari

(60)

beberapa LAN menjadi suatu bagian jaringan yang lebih

besar lagi.

3. Wide Area Network (WAN)

Jaringan dengan cakupan seluruh dunia. Jaringan

yang digunakan untuk membuat interkoneksi antar jaringan

dengan cakupan jarak yang luas.

Berdasarkan fungsi atau pengoperasiannya maka jaringan

komputer dibagi menjadi :

1. Peer to peer, merupakan jenis jaringan komputer di mana setiap

komputer bisa menjadi server sekaligus client. Setiap komputer

dapat menerima dan memberikan akses dari atau ke komputer

lain. Banyak diimplementasikan pada LAN.

2. Client server, merupakan jaringan komputer yang salah satu

(boleh lebih) komputernya difungsikan sebagai server untuk

melayani komputer lain. Komputer yang dilayani server disebut

client.

2.7.3. Topologi Jaringan

Topologi adalah suatu aturan/rules bagaimana menghubungkan

(61)

komponen-komponen yang berkomunikasi melalui media/peralatan

jaringan.

Topologi berdasarkan jumlah komputer yang menggunakan media

transmisi data dibagi menjadi dua, yaitu :

1. Point to Point (P2P), topologi yang hanya melibatkan dua buah

komputer saja.

2. Multipoint, topologi yang melibatkan lebih dari dua komputer.

Contoh topologi multipoint antara lain :

a. Topologi Bus

Pengukuran merupakan suatu aktivitas atau tindakan

membandingkan suatu besaran yang belum diketahui nilainya terhadap

besaran lain yang sudah diketahui nilainya. Sedangkan pembandingnya

(62)

bagaimana menentukan besaran yang akan diukur, bagaimana

mengukurnya, dan mengetahui dengan apa besaran tersebut harus diukur.

2.8.2 Webserver Stress Tool

Aplikasi yang dikembangkan oleh perusahaan bernama Paessler

AG yang berfungsi untuk mengetahui kinerja dari sebuah web server.

Paessler AG berdiri sejak 1997 dan menjadi anggota dari perusahaan

pengembang jaringan Cisco dan VMware Technology Alliance Partner.

Dengan menggunakan aplikasi ini, bisa diketahui kinerja dari

sebuah web server dalam keadaan baik atau tidak dalam menghadapi

permintaan request dari client secara simultan. Keluaran yang dihasilkan

bisa ditampilkan seberapa cepat dan handal sebuah layanan web dalam

memberikan response kepada client dalam bentuk grafik.

2.8.3 Performance, Load dan Stress Testing

Performance, sebuah pengujian yang digunakan untuk menemukan

cara terbaik dalam mengoptimalkan dan meningkatkan lalu lintas web.

Webserver Stress Tools mendukung untuk melakukan permintaan

simultan pada satu URL dan mencatat rata-rata waktu untuk memproses

(63)

Load, bagaimana sebuah layanan mampu memberikan waktu yang

optimal dalam memuat sebuah halaman web yang diminta oleh client/user.

Di sini waktu memuat (loading) sangat mempengaruhi tingkat kepuasan

client dalam mengakses sebuah website.

Stress testing, melakukan serangan terhadap layanan web yang ada

secara berlebihan. Dilakukan dengan membuat lonjakan client/user.

Tujuannya agar dapat diketahui beban maksimum yang dapat diterima

oleh layanan web. Hasilnya dapat diketahui ambang batas dari layanan

web tersebut dan solusi yang dapat dilakukan ketika sudah melebihi

(64)

43 BAB III

PERANCANGAN

3.1. Perencanaan Awal

Sebelum melakukan pengujian, diperlukan beberapa hal yang diperlukan

dalam mendukung kegiatan pengujian. Di antaranya adalah pemilihan topologi

jaringan, pemilihan distro linux yang akan diuji, pemilihan website yang akan

digunakan serta cara mengukur kehandalan dari sebuah server khususnya pada

layanan web.

Pengujiaan menggunakan sebuah komputer sebagai client dan sebuah

komputer sebagai server. Client dan server akan terhubung oleh sebuah jaringan.

Masing-masing komputer memiliki spesifikasi seperti pada tabel 3.1 di bawah ini.

(65)

Alat ukur pengujian akan diinstal pada komputer client dan pada komputer

server akan dipilih beberapa distro linux yang nantinya akan diuji kehandalannya.

Pada komputer server layanan yang digunakan hanya layanan web.

3.2. Topologi Jaringan

Topologi jaringan yang akan digunakan dalam pengujian ini menggunakan

topologi Point-to-Point. Client dan Server terhubung secara langsung tanpa

melalui melalui perangkat jaringan lainnya seperti router atau switch. Digunakan

kabel tipe cross untuk menghubungkan client dan server. Topologi jaringan yang

digunakan seperti di bawah ini.

Gambar 3. 1 : Topologi jaringan client dan server

Pada client dan server diberi IP Address secara statik. Client memiliki IP

Address 192.168.1.2 dengan subnet 255.255.255.252 sedangkan server memiliki

(66)

jaringan sudah dapat digunakan, dilakukan PING baik dari client ke server

maupun dari server ke client.

3.3. Pemilihan Distro Linux

Menurut data survei yang dilakukan oleh W3Techs – World Wide Web

Technology Survey pada awal tahun 2013, didapatkan bahwa sistem operasi yang

banyak digunakan untuk server adalah linux. Linux memiliki berbagai varian,

namun ada 3 distro besar yaitu debian, red hat dan slackware. Setiap distro besar

itu memiliki turunan, misalnya saja ubuntu merupakan turunan dari distro besar

debian, centos merupakan turunan dari distro besar redhat dan open suse

merupakan turunan dari distro besar slackware.

Pada pengujian ini, rencana akan diambil tiga hingga empat distro linux

serta memiliki versi kernel yang sama, terutama pada major number dan minor

number. Distro linux yang akan digunakan pada pengujian berasal dari hasil

survei yang dilakukan oleh W3Techs – World Wide Web Technology Survey

pada awal tahun 2013. Berikut ini hasil survei dari distro linux yang biasa

(67)

Gambar 3. 2 : Pemilihan distro linux

Dari hasil survei tersebut, debian menjadi distro linux yang paling populer

untuk dijadikan sistem operasi sebuah server. Di sini, penulis memilih distro linux

yang berasal dari data survei di atas yaitu ubuntu, centos, open suse serta

slackware sebuah distro yang berasal dari luar data survei di atas. Pemilihan distro

tersebut didasarkan pada tingkat kepopuleran serta merupakan distro turunan dari

masing-masing distro induk. Khusus untuk distro slackware, penulis memilih

dengan tujuan untuk menjadikan pembanding distro linux yang sudah ada pada

(68)

3.4. Rancangan Server

 Partisi extended pasti hanya ada satu, menempati Sda4.

 Partisi logical ada 2, yaitu Sda5 dan Sda6.

3.4.2 Layanan Web

Pada masing-masing distro linux yang sudah dipasang pada server,

(69)

kemungkinan untuk membuka layanan lain seperti SSH. Layanan web

yang digunakan pada server menggunakan apache. Versi apache yang

digunakan memiliki versi yang sama, terutama pada major number dan

minor number.

Dipilih sebuah website (berbasis PHP, HTML, dan CSS) yang akan

dimasukkan ke dalam layanan web tersebut. Website yang digunakan tidak

memiliki keterkaitan dengan database. Isi dari website bisa berupa

gambar, flash, serta media lainnya yang dapat memberikan beban kepada

client ketika mengaksesnya. Konfigurasi pada apache yang digunakan

dibuat standar (default).

Berikut contoh halaman website yang akan disimpan pada web

server apache

Gambar 3. 4 : Halaman website

(70)

3.5. Client

3.5.1. Spesifikasi

Spesifikasi yang digunakan pada komputer client, Intel Core 2 Duo

CPU @ 2.10 GHz (2 CPUs) dengan RAM 2 GB dan harddisk sebesar 320

GB. Sistem operasi yang digunakan adalah Windows 7 Ultimate. Pada

client akan diinstal aplikasi yang berfungsi untuk menguji kinerja dari

layanan web yang ada pada server.

3.5.2. Webserver Stress Tool

Sebuah aplikasi yang digunakan untuk melakukan pengujian

terhadap layanan web pada server. Aplikasi ini akan memberikan sebuah

infromasi mengenai performansi dari web server itu sendiri. Dengan

menciptakan simulasi user yang akan meningkat saat mengakses server

tersebut. Webserver Stress Tool yang digunakan adalah versi 7.

(71)

Ada beberapa fungsi utama pada aplikasi ini, antara lain

mensimulasikan pola beban pada web server, mengidentifikasi kinerja dari

web server dan sebagai alat pembantu dalam perawatan sebuah web

server.

3.6. Skenario pengujian dan Kehandalan

3.6.1 Skenario pengujian

Skenario yang akan dilakukan dalam pengujian dibagi menjadi

dua, yaitu skenario ketika RAM pada server yang digunakan sebesar 2 GB

dan skenario ketika RAM pada server yang digunakan sebesar 4 GB.

Server sendiri menggunakan sistem multiboot, di mana terdapat beberapa

distro linux yang sudah dipilih dan dipasang pada server.

Tidak dilakukan perubahan pada konfigurasi web server, hanya

menggunakan konfigurasi standar/default. Pada sisi client, Webserver

Stress Tool dijalankan dengan membangkitkan user yang meningkat

secara signifikan. Setiap distro linux yang dipasang pada server, akan diuji

dengan skenario yang sama.

Beban yang akan digunakan dalam pengujian adalah banyaknya

user yang melakukan request pada server dengan jumlah yang akan

meningkat. Berdasarkan hasil percobaan awal (lampiran I) maka jumlah

(72)

apache) dan berlaku kelipatannya. Masing-masing user juga akan

membawa request per child dengan jumlah yang sama.

3.6.2 Kehandalan

Menurut Nielsen (1993), ada beberapa kriteria mengenai

kehandalan sebuah website yang terdapat pada tabel 3.2

Tabel 3. 2 : Tabel kehandalan sebuah website

Respon terhadap

request Pandangan dari sisi pengguna

< 0.1 s Sistem bereaksi seketika

< 1.0 s Berdasarkan pengalaman, pengguna merasa tidak senang, tetapi tetap fokus pada halaman

website

< 10 s Mendekati 10 detik, pengguna mulai merasakan adanya gangguan yang meningkat

melakukan permintaan request kepada client dalam jumlah yang signifikan

(73)

52

digunakan. Distro linux tersebut adalah Ubuntu Server 10.04 LTS, CentOS

6.3, OpenSuSE 11.3 dan Slackware 13-1. Masing-masing distro memiliki

versi kernel yang sama yaitu 2.6. Server memiliki empat distro linux

secara langsung (multiboot) yang dapat diganti penggunaannya.

Urutan instalasi distro linux dimulai dari distro linux yang

memiliki tingkat kesulitan instalasi tinggi ke rendah. Penulis memulai dari

instalasi Slackware 13-1 terlebih dahulu, dilanjutkan dengan instalasi

CentOS 6.3, kemudian OpenSuSE 11.3 dan diakhiri oleh Ubuntu Server

10.04 LTS. Masing-masing distro diberi kapasitas ruang 80 GB dan

menggunakan konfigurasi minimal server dengan hanya menginstal

layanan web saja.

4.1.2. Setting IP Address

(74)

Distro linux yang sudah diinstal akan diberi IP address. IP address

yang diberikan bersifat statik. Pada linux cara yang paling mudah untuk

melakukan setting IP address statik dengan perintah :

# ifconfig eth0 [Ip Add] netmask [Netmask] up

Contoh : ifconfig eth0 192.168.1.1 netmask 255.255.255.252 up

Namun dengan perintah ini, IP address yang disetting akan hilang (bersifat

sementara) jika server dimatikan atau direstart.

Cara lain agar setting IP Address tidak hilang yaitu dengan

mengubah file network yang ada pada distro linux itu sendiri.

Pada Ubuntu Server 10.04 LTS, lakukan edit pada /etc/network/interfaces

# nano /etc/network/interfaces

# This file describes the network interfaces available on your system

# and how to activate them. For more information, see interfaces(5).

Setelah edit file tersebut, lakukan restart pada network dengan perintah :

# /etc/init.d/networking restart

Pada Slackware 13-1, lakukan edit pada /etc/rc.d/rc.inet1.conf

(75)

# Config information for eth0: IPADDR[0]="192.168.1.1"

NETMASK[0]="255.255.255.252" USE_DHCP[0]=""

DHCP_HOSTNAME[0]=""

Setelah edit file tersebut, lakukan restart pada network dengan perintah :

# /etc/rc.d/rc.inet1 restart

Pada CentOS 6.3, lakukan edit pada

/etc/sysconfig/network-scripts/ifcfg-eth0

# nano /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"

Setelah edit file tersebut, lakukan restart pada network dengan perintah :

# service network restart

Pada OpenSuSE 11.3, lakukan edit pada /etc/sysconfig/network/ifcfg-eth0

# nano /etc/sysconfig/network/ifcfg-eth0

BOOTPROTO='static' BROADCAST=''

Gambar

Gambar 2. 1  :  Diagram status proses
Gambar 2. 3  :  Presentase penggunaan distro linux menurut W3Techs
Gambar 2. 4  :  Elemen web server
Gambar 2. 5  :  Cara kerja web server
+7

Referensi

Dokumen terkait

Dapat digunakan sebagai acuan dalam pengelolaan sumber daya air untuk Kota Padang, khususnya di kawasan DAS Batang Kuranji. Memberikan masukan ilmiah dan formal untuk