APLIKASI DETEKSI KELEMAHAN WEBSITE DENGAN MENGGUNAKAN METODE INJEKSI REMOTE FILE INCLUSION DAN LOCAL FILE.

APLIKASI DETEKSI KELEMAHAN WEBSITE DENGAN MENGGUNAKAN
METODE INJ EKSI REMOTE FILE INCLUSION DAN LOCAL FILE
INCLUSION
SKRIPSI
Diajukan untuk memenuhi sebagai prasyarat dalam memperoleh gelar sarjana
komputer program studi teknik infor matika

Disusun Oleh :
LUHUR SASONGKO
0834110016

PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL " VETERAN"
J AWA TIMUR
2012
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

SKRIPSI
APLIKASI DETEKSI KELEMAHAN WEBSITE DENGAN

MENGGUNAKAN METODE INJ EKSI REMOTE FILE INCLUSION
DAN LOCAL FILE INCLUSION
Disusun Oleh :

LUHUR SASONGKO
0834110016
Telah dipertahankan dihadapan dan diterima oleh Tim Penguji Skripsi
Program Studi Teknik Infor matika Fakultas Teknologi Industri
Universitas Pembangunan Nasional “VETERAN” J awa Timur
Pada Tanggal : 19 J uli 2012
Pembimbing :
1.

1.

R. R. Ani Dijah Rahajoe, ST, M.Cs
NIP. 19730512 200501 2 003
2.

Rinci Kembang Hapsari, S.Si, M.Kom

NPT. 37712 080 1681
2.

Fetty Tri Anggareny, S.Kom, M.Kom
NPTY. 38202 060 2081

Ir. Sutiyuono, MT
NIP. 19600713 198703 1 001
3.

Barry Nuqoba, S, Si., M. Kom
NPT. 38411 090 1551

Mengetahui,
Dekan Fakultas Teknologi Industri
Univer sitas Pembangunan Nasional “Veteran” J awa Timur
Surabaya

Ir. Sutiyono, MT
NIP. 19600713 198703 1 001

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

LEMBAR PENGESAHAN

APLIKASI DETEKSI KELEMAHAN WEBSITE DENGAN
MENGGUNAKAN METODE INJ EKSI REMOTE FILE INCLUSION
DAN LOCAL FILE INCLUSION

Disusun Oleh :

LUHUR SASONGKO
0834110016

Telah disetujui mengikuti Ujian Negara Lisan
Gelombang V Tahun Akademik 2012

Menyetujui,
Pembimbing Utama


Pembimbing Pendamping

R. R. Ani Dijah Rahajoe, ST, M.Cs
NIP. 19730512 200501 2 003

Fetty Tri Anggareny, S.Kom, M.Kom
NPTY. 38202 060 2081

Mengetahui,
Ketua Program Studi Teknik Infor matika
Fakultas Teknologi Industri
Univer sitas Pembangunan Nasional “Veteran” J awa Timur

Dr. Ir. Ni Ketut Sari, MT
NIP. 19650731 199203 2001
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

KATA PENGANTAR


Puji syukur kita panjatkan kehadirat Allah SWT, Tuhan Yang Maha Esa yang
telah memberikan rahmat serta hidayah-Nya sehingga penyusunan laporan ini dapat
diselesaikan.
Laporan ini disusun untuk Tugas Akhir saya, dengan judul “ APLIKASI
DETEKSI KELEMAHAN WEBSITE DENGAN MENGGUNAKAN METODE
INJ EKSI REMOTE FILE INCLUSION DAN LOCAL FILE INCLUSION ”
Ucapan terima kasih

saya sampaikan juga ke berbagai pihak yang turut

membantu memperlancar penyelesaian Tugas Akhir ini, yaitu kepada:
1. Bapak Prof.Dr.Ir. Teguh Sudarto, MP Selaku Rektor Universitas Pembangunan
Nasional “Veteran” Jawa Timur.
2. Bapak Ir. Sutiyono, MT Selaku Dekan Fakultas Teknologi Industri UPN
“Veteran” Jawa Timur
3. Ibu Dr.Ir. Ni Ketut Sari, MT Selaku Kepala Jurusan Teknik Informatika. FTI,
UPN “Veteran” Jawa Timur.
4. Rr. Ani Dijah Rahajoe, ST, M.Cs dan Fetty Tri Anggraeny, S.Kom selaku
pembimbing, yang telah sabar dan arif dalam membimbing dan memberikan
nasehat kepada saya.

5. Firza Prima Aditiawan, S.Kom selaku PIA Jurusan Teknik Informatika yang telah
membantu saya.
6. Kedua orang tua saya masing-masing, ibu yang banyak memberikan Doa, Kasih
Sayang, Cinta, Kesabaran sejak saya dalam kandungan serta bimbingan, dan
semangat sampai saya menjadi sekarang ini, terima kasih banyak untuk semuanya
dan terima kasih karena selalu menjadi orang tua yang baik buat saya. Kepada
Ibu yang selalu men-support saya agar selalu bersemangat dan meraih cita-cita.
7. Buat kakak saya Refi Kusuma Wardani dan Ria Sri Wulan S.S terima kasih atas
semangat dan nasehatnya.
8. Buat bapak Muhammad Faizal S.kom sekeluarga yang telah berkenan
memfasilitasi dalam pelaksanan skripsi saya ini

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

ii

9. Buat Teman – teman KoLU yang menyediakan resource tiada henti, Akmad
Taufik Hidayat S.Kom, Akmad Hanafi, Rendy Arif R., Irfansyah Adie K.,
Yuangga K. P., bli jovi, hanis, faizal, fajar, zulfi, arda dll yang tidak bisa saya

sebutkan satu persatu semangat dan hiburan, keep open source guys.

Selesainya Tugas Akhir ini merupakan kebahagiaan tersendiri bagi penulis.
Penulis menyadari bahwa dalam penyusunan Tugas Akhir ini masih banyak terdapat
kekurangan yang harus diperbarui. Untuk itu penulis mengharapkan saran dan kritik demi
kesempurnaan Tugas Akhir ini.
Demikianlah laporan ini disusun semoga bermanfaat, sekian dan terima kasih.

Surabaya, 19 September 2012

Penulis

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

iii

DAFTAR ISI

ABSTRAK ................................................................................................................................................................ i

KATA PENGANTAR ............................................................................................................................................ ii
DAFTAR ISI ........................................................................................................................................................... iv
DAFTAR GAMBAR ............................................................................................................................................vii
DAFTAR TABEL ................................................................................................................................................... x
BAB I PENDAHULUAN ....................................................................................................................................... 1
1.1 Latar Belakang ........................................................................................................................................ 1
1.2 Perumusan Masalah ............................................................................................................................... 2
1.3 Batasan Masalah ..................................................................................................................................... 2
1.4 Tujuan ..................................................................................................................................................... 3
1.5 Manfaat ................................................................................................................................................... 3
1.6 Metode Penelitian ................................................................................................................................... 3
1.7 Sistematika Penulisan ............................................................................................................................. 3
BAB II TINJUAN PUSTAKA ............................................................................................................................... 7
2.1 PHP ........................................................................................................................................................ 7
2.2 Protokol HTTP dan HTTPS ............................................................................................................... 12
2.2.1 HTTP (Hypertext Transfer Protokol) ..................................................................................... 12
2.2.2 HTTPS (HTTP Over SSL) ........................................................................................................ 14
iv

Hak Cipta © milik UPN "Veteran" Jatim :

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

2.3 URL (Uniform Resource Locator) ...................................................................................................... 16
2.3.1 URL Encoding dan Meta-karakter ........................................................................................... 17
2.4 Web Server .......................................................................................................................................... 18
2.4.1 Web Server Apache ................................................................................................................... 21
2.5 HTML (Hyper Text Markup Language) ............................................................................................ 27
2.5.1 Struktur HTML ......................................................................................................................... 28
2.6 Perl ....................................................................................................................................................... 30
2.7 Teknik Serangan Website.................................................................................................................... 32
2.8 Remote Code Execution ...................................................................................................................... 33
2.9 Remote File Inclusion.......................................................................................................................... 34
2.10 Local File Inclusion ........................................................................................................................... 36
2.11 Pencurian Data .................................................................................................................................... 39
BAB III ANALISIS DAN PERANCANGAN SISTEM .................................................................................... 41
3.1 Analisi dan Konsep Perancangan Program ........................................................................................ 41
3.2 Analisi Kebutuhan ............................................................................................................................... 41
3.2.1 Identifikasi Kebutuhan Pendukung ........................................................................................... 42
3.3 Design Sistem ...................................................................................................................................... 42
3.4 Perancangan Sistem .............................................................................................................................. 44

3.5 Perancangan Data Input ....................................................................................................................... 44
3.5.1 Data Input Web Vulnerbility Scanner ...................................................................................... 44
v

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

3.6 Perancangan Proses ............................................................................................................................. 45
3.6.1 Proses Scanning ......................................................................................................................... 45
BAB IV IMPLEMENTASI .................................................................................................................................. 54
4.1 Implementasi Sistem ........................................................................................................................ 54
BAB V PENGUJIAN DAN ANALISIS .............................................................................................................. 78
5.1 Lingkungan Pengujian ...................................................................................................................... 78
5.2 Uji Coba ............................................................................................................................................ 78
5.2.1 Aplikasi Web Vulnerability Scanner .................................................................................... 79
5.2.2 Proses RFI_Scanner ............................................................................................................... 79
5.2.3 Proses LFI_Scanner ............................................................................................................... 82
5.3 Analisis ............................................................................................................................................ 100
5.3.1 Analisis RFI_Scanner ........................................................................................................... 100
5.3.2 Analisis LFI_Scanner ............................................................................................................ 101

BAB VI PENUTUP ............................................................................................................................................. 102
6.1 Kesimpulan ..................................................................................................................................... 102
6.2 Saran ................................................................................................................................................. 103

vi

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

Judul
Pembimbing I
Pembimbing II
Penyusun

: APLIKASI DETEKSI KELEMAHAN WEBSITE DENGAN MENGGUNAKAN
METODE INJEKSI REMOTE FILE INCLUSION DAN LOCAL FILE INCLUSION
: Rr. Ani Dijah Rahajoe, ST, M.Cs
: Fetty Tri Anggraeny, S.Kom, M.Kom
: Luhur Sasongko

ABSTRAK
Dalam

pembuat an

Aplikasi

Analisis

Kelemahan

W ebsite

Dengang

M enggunakan M et ode Injeksi Remote File Inclusion dan Local File Incluison ini dapat
menscanning w ebsit e dimana w ebsite t ersebut mempunyai kerentaan t erhadap
injeksi remote file inclusion dan local file inclusion sehingga w ebsit e tersebut dapat
diperbaiki.
Aplikasi ini menggunakan bahasa pemrograman perl dimana hanya t ampilan
t ext yang dit ampilkan dalam pembuatan aplikasi ini. Tam pilan pada aplikasi ini
hanya sekedar text tanpa ada form -form karena menscanning vulnerable pada
w ebsit e t arget yang dit uju.
Dengan adanya aplikasi analisis kelemahan w ebsite menggunkaan met ode
injeksi remote file inclusion dan local file inclusion dapat memberikan informasi
t entang bagaimana sebuah w ebsite t arget rent an terhadap injeksi remot e file
inclusion dan local file inclusion .

Kata Kunci : Remote file inclusion dan local file inclusion, Perl.

i
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

BAB I
PENDAHULUAN

1.1 Latar Belakang
Dunia Internet telah menjadi sarana bagi semua orang untuk saling
bertukar informasi dan berkomunikasi. Hal tersebut dapat dilakukan dengan hanya
mengetik alamat ip address suatu situs di browser dengan lengkap dan benar.
Namun tanpa kita sadari, setiap situs tersebut terdapat kelemahan-kelemahan yang
tidak diketahui oleh user atau pengelola situs yang sering disebut admin. Akhirnya
sebuah situs tersebut dapat dimanfaatkan oleh orang yang tidak bertanggung
jawab.
Kelemahan-kelemahan tersebut dapat berupa kode-kode program yang
lemah dan tidak terlindungi oleh keamanan yang kuat. Terdapat beberapa teknik
web hacking yang dapat kita gunakan untuk memanfaatkan kelemahan tersebut.
Diantaranya ialah teknik Remote File Inclusion (RFI), Local File Inclusion (LFI)).
Teknik-teknik tersebut memanfaatkan kode yang terdapat di dalam program
sebuah situs yang lemah tanpa perlindungan yang kuat dari sebuah admin situs
tersebut.
RFI dan LFI, File Inclusion itu sendiri adalah menyisipkan potongan
malicious code attacker ke dalam sebuah situs yang vulnerable. Dampak yang
dihasilkan dari File Inclusion bisa dikatakan “High Risk” karena File Inclusion
bisa digunakan untuk mendapatkan akses shell.
Dari penelitian ini diharapkan peniliti dapat membuat suatu sistem yang
dapat di implementasikan untuk mengetahui kelamahan website di khususkan
1
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

2

pada website yang akan di serang atau website target. Sehingga website target
tersebut dapat di perbaharui sistem keamanannya.
Untuk itu studi ini merencanakan membuat sebuah sistem bagaimana
mengetahui

kelemahan

website

yang

diinjeksi

dengan

menggunakan

pemrograman Perl sehingga dapat dijalankan di multiplatform sehingga tidak
tergantung pada sistem operasi tertentu dan dapat dijalankan baik di windows,
linux, maupun unix.

1.2 Perumusan Masalah
Berdasarkan latar belakang diatas, maka perumusan masalah yang
dipergunakan dalam tugas akhir ini adalah :
1. Bagaimana mengetahui kelemahan khususnya pada website ?
2. Memperlihatkan kelamahan pada website dengan menggunakan bahasa
pemrograman Perl dengan metode RFI dan LFI ?

1.3 Batasan Masalah
Adapun batasan masalah yang dipergunakan dalam tugas akhir ini agar
pembahasan tidak menyimpang dari tujuan adalah :
1. Aplikasi yang dibangun menggunakan bahasa pemrograman Perl.
2. Aplikasi yang dibangun hanya menemukan kelemahan yang menyebabkan
kerugian pada website target.
3. Penggunaan source code bahasa pemrograman Perl yang diimplementsikan
hanya sebatas yang digunakan dalam pembuatan aplikasi ini.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

3

1.4 Tujuan
Tujuan yang diharapkan dari penulis tugas akhir ini adalah bagaimana cara
mengalisa dan menemukan kelemahan website dengan aplikasi analisis
kelemahan website terhadap metode injeksi RFI dan LFI.

1.5 Manfaat
Aplikasi ini diharapkan akan dapat dimanfaatkan untuk mengetahui
kelemahan website dengan metode injeksi RFI dan LFI sehingga pemilik website
yang terkena serangan dapat memperbaiki website tersebut sehingga tidak ada
celah yang bisa diserang.

1.6 Metode Penelitian
Metode yang dipakai dalam menyelesaikan penelitian ini adalah:
1. Studi literatur
Melakukan studi, analisis dan dokumentasi literature, dan sumber catatan
lain yang berkaitan dengan permasalahan yang dibahas, yaitu memastikan
bagaimana kelamahan terhadap website menggunakan metode injeksi RFI
dan LFI dengan bahasa pemrograman Perl.
2. Pengumpulan data
Mencari proses-proses pencarian data penunjang mengenai kelamahan
website dengan menggunakan metode injeksi RFI dan LFI dengan bahasa
pemrograman Perl yang diperoleh dari survei dan studi pustaka.
3. Perencanaan sistem

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

4

Perencanaan pembuatan sistem meliputi perencanaan bagaimana cara
menganalisis kelemahan website dengan menggunakan metode injeksi RFI
dan LFI dalam proses pembuatan aplikasi.

4. Pembuatan program komputer yang meliputi pembuatan antar muka
Pembuatan program menggunakan bahasa pemrograman Perl dan Active
Perl untuk menjalankan dan menampilkan aplikasi tersebut.
5. Uji coba sistem
Melakukan pengujian sistem terhadapa aplikasi yang dibuat dengan
menguji penginjeksian terhadap website target.
6. Perbaikan atau penambahan data
Setelah melakukan proses pengujian sistem dan ternyata terjadi beberapa
kekurangan, maka sistem perlu diperbaiki lagi sehingga sistem yang dibuat
bersifat valid hasilnya.
7. Analisis
Dari pengujian sistem dan perbaikan atau penambahan data yang dibuat
analisis sistemnya apakah sudah bekerja seperti yang telah diencanakan.
8. Membuat kesimpulan
Membuat suatu kesimpulan dari pengujian sistem tugas akhir dengan
membandingkan apakah hasilnya seperti yang diharapakan.
9. Penyusunan laporan
Membuat sebuah laporan berbentuk buku tugas akhir sebagai tahap akhir
dalam proses pengerjaan skripsi sebagai bukti dokumentasi dari penulis.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

5

1.7 Sistematika Penulisan
Sistematika penulisan tugas akhir ini disusun untuk memberikan gambaran
umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini
adalah sebagai berikut :
BAB I

PENDAHULUAN
Berisi latar belakang yang menjelaskan pentingnya penelitian yang
dilakukan, latar belakang masalah, perumusan masalah, batasan
masalah, tujuan penelitian, manfaat pengguna, metodologi yang
dipakai selama penelitian, dan sistematika penulisan.

BAB II

TINJ AUAN PUSTAKA
Pada bab ini akan dijelaskan landasan teori-teori yang akan
mendukung pada proses pembuatan sistem. Teori-teori tersebut
diantaranya adalah

sebagai berikut : pengertian tentang web,

pengertian dan penjelasan tentang metode injeksi RFI dan LFI.
Pengertian tentang bahasa pemrograman Perl.
BAB III

ANALISIS DAN PERANCANGAN SISTEM
Pada bab ini akan membahas tentang perancangan umum maupun
uraian lebih lanjut mengenai perancangan sistem dalam pembuatan
aplikasi. Uraian perancangan sistem ini meliputi perancangan data
menganai data input dan data output sistem, perancangan proses
mengenai bagaimana sistem akan bekerja dengan proses-proses
tertentu maupun perancangan antar muka dalam desain.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

6

BAB IV

IMPLEMENTASI
Pada

bab

ini

akan

diuraikan

hasil

penelitian

beserta

pembahasannya.
BAB V

UJ I COBA DAN EVALUASI
Membahas mengenai pengimplementasian aplikasi yang telah
dibuat ke perangkat yang akan digunakan dan diuraikan beserta
pembahasannya. Pengujian

sistem secara umum maupun

terperinci. Pengujian sistem secara umum mambahas mengenai
lingkungan uji coba untuk menggunakan sistem ini. Selanjutnya
lebih terperinci dijelaskan dalam pengujian sistem meliuti skenario
pengujian sistem, beserta langkah-langkah dalam uji coba sistem.
Dari seluruh hasil uji coba tersebut, kemudian dianalisis kembali
apakah telah sesuai dengan tujuan pembuatan aplikasi.
BAB VI

PENUTUP
Bab ini merupakan bagian terakhir dari laporan tugas akhir yang
berisi kesimpulan dari uji coba dan saran-saran yang diambil dari
kelemahan aplikasi untuk pengembangan lebih lanjut dari sistem
yang telah dibuat oleh penulis.

DAFTAR PUSTAKA
Pada bagian ini akan dipaparkan sumber-sumber literature yang
digunakan dalam pembuatan laporan tugas akhir ini.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

BAB II
TINJ AUAN PUSTAKA

2.1 PHP
PHP adalah bahasa pemrograman script yang paling banyak dipakai saat
ini. PHP banyak dipakai untuk memrogram situs web dinamis, walaupun tidak
tertutup kemungkinan digunakan untuk pemakaian lain. Contoh terkenal dari
aplikasi PHP adalah phpBB dan MediaWiki (software di belakang Wikipedia).
PHP juga dapat dilihat sebagai pilihan lain dari ASP.NET/C#/VB.NET Microsoft,
ColdFusion Macromedia, JSP/Java Sun Microsystems, dan CGI/Perl. Contoh
aplikasi lain yang lebih kompleks berupa CMS yang dibangun menggunakan PHP
adalah Mambo, Joomla!, Postnuke, Xaraya, dan lain-lain. Pada awalnya PHP
merupakan kependekan dari Personal Home Page (Situs Personal). PHP pertama
kali dibuat oleh Rasmus Lerdorf pada tahun 1995. Pada waktu itu PHP masih
bernama FI (Form Interpreted), yang wujudnya berupa sekumpulan script yang
digunakan untuk mengolah data form dari web. Selanjutnya Rasmus merilis kode
sumber tersebut untuk umum dan menamakannya PHP/FI. Dengan perilisan kode
sumber ini menjadi open source, maka banyak programmer yang tertarik untuk
ikut mengembangkan PHP. Pada November 1997, dirilis PHP/FI 2.0. Pada rilis
ini interpreter PHP sudah diimplementasikan dalam program C. Dalam rilis ini
disertakan juga modul-modul ekstensi yang meningkatkan kemampuan PHP/FI
secara signifikan. Pada tahun 1997, sebuah perusahaan bernama Zend menulis
ulang interpreter PHP menjadi lebih bersih, lebih baik, dan lebih cepat. Kemudian
pada Juni 1998, perusahaan tersebut merilis interpreter baru untuk PHP dan

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

7

8

meresmikan rilis tersebut sebagai PHP 3.0 dan singkatan PHP dirubah menjadi
akronim berulang PHP: Hypertext Preprocessing. Pada pertengahan tahun 1999,
Zend merilis interpreter PHP baru dan rilis tersebut dikenal dengan PHP 4.0. PHP
4.0 adalah versi PHP yang paling banyak dipakai pada awal abad ke-21. Versi ini
banyak dipakai disebabkan kemampuannya untuk membangun aplikasi web
kompleks tetapi tetap memiliki kecepatan dan stabilitas yang tinggi.

Pada Juni 2004, Zend merilis PHP 5.0. Dalam versi ini, inti dari interpreter PHP
mengalami perubahan besar. Versi ini juga memasukkan model pemrograman
berorientasi objek ke dalam PHP untuk menjawab perkembangan bahasa
pemrograman ke arah paradigma berorientasi objek. kelebihan PHP dari bahasa
pemrograman lain :

a.

Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak

melakukan sebuah kompilasi dalam penggunaanya.
b.

Web Server yang mendukung PHP dapat ditemukan dimana - mana dari

mulai apache, IIS, Lighttpd, nginx, hingga Xitami dengan konfigurasi yang relatif
mudah.
c.

Dalam sisi pengembangan lebih mudah, karena banyaknya milis - milis dan

developer yang siap membantu dalam pengembangan.
d.

Dalam sisi pemahamanan, PHP adalah bahasa scripting yang paling mudah

karena memiliki referensi yang banyak.
e.

PHP adalah bahasa open source yang dapat digunakan di berbagai mesin

(Linux, Unix, Macintosh, Windows) dan dapat dijalankan secara runtime melalui
console serta juga dapat menjalankan perintah-perintah system.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

9

PHP memiliki 7 tipe data yaitu :

1. Integer

Nilai sebuah data dari sebuah tipe data integer adalah nilai bilangan bulat
tersebut dalam matematika. Representasi data ini merupakan cara bagaimana
nilainya disimpan di dalam memori komputer. Tipe data integral terbagi
menjadi dua buah kategori, baik itu bertanda (signed) ataupun tidak bertanda
(unsigned). Bilangan bulat bertanda mampu merepresentasikan nilai bilangan
bulat negatif, sementara bilangan bulat tak bertanda hanya mampu
merepresentasikan bilangan bulat positif. Representasi integer positif di dalam
komputer sebenarnya adalah untaian bit, dengan menggunakan sistem
bilangan biner. Urutan dari bit-bit tersebut pun bervariasi, bisa berupa Little
Endian ataupun Big Endian. Selain ukuran, lebar atau ketelitian (presisi)
bilangan

bulat

juga

bervariasi,

tergantung

jumlah

bit

yang

direpresentasikanya. Bilangan bulat yang memiliki n bit dapat mengodekan 2n.
Jika tipe bilangan bulat tersebut adalah bilangan bulat tak bertanda, maka
jangkauannya adalah dari 0 hingga 2n-1.

2. Double

Double adalah deklarasi untuk tipe data numerik bilangan pecahan secara
default menggunakan.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

10

3. Boolean

Boolean adalah suatu tipe data yang hanya mempunyai dua nilai. Yaitu
true atau false (benar atau salah). Pada beberapa bahasa pemograman nilai true
bisa digantikan 1 dan nilai false digantikan 0.

4. String

String dalam pemrograman komputer adalah sebuah deret simbol. Tipe
data string adalah tipe data yang digunakan untuk menyimpan barisan
karakter.

5. Object

Object merupakan tipe data yang bisa berupa bilangan, variabel atau
fungsi. Data ini dapat dimasukkan ke dalam skrip program sehingga
meringkas beberapa fungsi dan memperkecil ukuran file.

6. Array

Array adalah suatu tipe data terstruktur yang dapat menyimpan banyak
data dengan suatu nama yang sama dan menempati tempat di memori yang
berurutan (kontigu) serta bertipe data sama pula. Array dapat diakses
berdasarkan indeksnya. Indeks array umumnya dimulai dari 0 dan ada pula
yang dimulai dari angka bukan 0. Pengaksesan larik biasanya dibuat dengan
menggunakan perulangan (looping).

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

11

7. Null

Null itu artinya kosong, Tapi artian kosong tidak sama dengan string ""
atau string empty.

Kode program PHP menyatu dengan tag-tag HTML dalam satu file. Kode
PHP diawali dengan tag . File yang
berisi tag HTML dan kode PHP ini diberiekstensi .php atau ekstensi lainnya yang
ditetapkan pada Apache atau web server. Berdasarkan ekstensi ini, pada saat file
diakses, server akan tahu bahwa file ini mengandung kode PHP. Server akan
menerjemahkan kode ini dan menghasilkan keluaran dalam bentuk tag HTML
yang akan dikirim ke browser client yang mengakses file tersebut. Sebagai
contoh:



Pemrograman PHP








Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

12

Pada contoh program diatas terdapat satu baris perintah PHP, yaitu



Perintah ini dibuka dengan tag . Perintah
PHP dapat disisipkan disembarang tempat dari file diatas. Setiap baris perintah
PHP diakhiri dengan tanda titik koma (;), tag penutup ?> juga dapat berfungsi
sebagai pengganti titik koma (;), jadi baris perintah diatas dapat juga dituliskan
.

2.2 Protokol HTTP dan HTTPS
2.2.1 HTTP (Hyper Text Transtfer Pr otocol)
Hypertext Transfer Protocol (HTTP) adalah sebuah protokol
jaringan lapisan aplikasi yang digunakan untuk sistem informasi
terdistribusi, kolaboratif, dan menggunakan hypermedia. Penggunaannya
banyak pada pengambilan sumber daya yang saling terhubung dengan
tautan, yang disebut dengan dokumen hypertext, yang kemudian
membentuk World Wide Web pada tahun 1990 oleh fisikawan Inggris, Tim
Berners-Lee.
Pengembangan standar HTTP telah dilaksanakan oleh Konsorsium
World Wide Web (World Wide Web Consortium/W3C) dan juga Internet
Engineering Task Force (IETF), yang berujung pada publikasi beberapa
dokumen Request for Comments (RFC), dan yang paling banyak dirujuk

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

13

adalah RFC 2616 (yang dipublikasikan pada bulan Juni 1999), yang
mendefinisikan HTTP/1.1.
Dukungan untuk HTTP/1.1 yang belum disahkan, yang pada waktu
itu RFC 2068, secara cepat diadopsi oleh banyak pengembang penjelajah
web pada tahun 1996 awal. Pada bulan Maret 2006, salah satu perusahaan
web hosting melaporkan bahwa lebih dari 40% dari penjelajah Web yang
digunakan di Internet adalah penjelajah web yang mendukung HTTP/1.1.
Standar HTTP/1.1 yang didefinisikan dalam RFC 2068 secara resmi dirilis
pada bulan Januari 1997. Peningkatan dan pembaruan terhadap standar
HTTP/1.1 dirilis dengan dokumen RFC 2616 pada bulan Juni 1999.

Gambar 2.1: Request-Response Protokol HTTP
Cara kerja protokol HTTP yaitu meminta/menjawab antara client
dan server seperti tampak pada Gambar 2.1. Sebuah klien HTTP (seperti
web browser atau robot dan lain sebagainya), biasanya memulai
permintaan dengan membuat hubungan ke port tertentu di sebuah server
Webhosting tertentu (default port 80). Klien yang mengirimkan
permintaan HTTP juga dikenal dengan user agent. Server yang

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

14

meresponsnya, yang menyimpan sumber daya seperti berkas HTML dan
gambar, dikenal juga sebagai origin server. Di antara user agent dan juga
origin server, bisa saja ada penghubung, seperti halnya proxy, gateway,
dan juga tunnel.
2.2.2 HTTPS (HTTP Over SSL)
HTTPS adalah protokol yang digunakan untuk lalu lintas yang
terenkripsi dalam aliran HTTP. Keseluruhan pesan dienkripsi sewaktu
Secure Socket Layer (SSL) digunakan. Ada banyak versi SSL dan tersedia
protokol-protokol (Transport Layer Security, TLS, dan RFC2246) yang
berhubungan dengannya, termasuk SSLv1, SSLv2, dan SSLv3. Dan untuk
membuat paket data semakin dikacaukan, SSL menwarkan variasi pilihan
untuk standar enkripsi yang digunakan dalam versi tertentu dan SSL.
Misalnya, dengan SSLv3, bisa menggunakan DES sampai RSA (RC2 dan
RC4).
Jadi, HTTPS itu mempunyai rekues dan respon yang sama dengan
HTTP. Akan tetapi proses pengirimannya yang berbeda, yaitu melalui
SSL. Berikut contoh rekues dan respon yang terjadi saat meminta halaman
https://mail.google.com:
HTTP Request
GET / HTTP/1.1
Host: mail.google.com
User-Agent:

Mozilla/5.0

(Windows;

U;

Windows

NT

5.1;

rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

en-US;

15

Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie:
PREF=ID=de0629378c497e52:U=5e34c068afae3794:TM=1272874619:LM=12756865
79:GM=1:S=MK4oAGcG7tHV2HQk;
NID=35=OwQpNQEW0Qu_vJX3ieCm0MQx8VFTkaeKUfIYTnyj_Jj9qeZlmg3WMwysupKc5xoEQlBlSQeD_gFT5VYeweQwpnraSSHVkjXosuWfSBEIwzGOcj34oNEAw6M0bTtJSL

HTTP Request
HTTP/1.1 200 OK
Cache-Control: public, max-age=604800
Expires: Sun, 13 Jun 2010 20:44:43 GMT
Date: Sun, 06 Jun 2010 20:44:43 GMT
refresh: 0;URL=https://mail.google.com/mail/
Content-Type: text/html; charset=UTF-8
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Content-Length: 234
Server: GSE

Berbeda dengan contoh rekues dan respon sebelumnya, pada
HTTPS ditambahkan X-Content-Type-Options: nosniff. Header respon
tersebut menandakan bahwa semua data yang akan ditransfer akan akan

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

16

dienkripsi dan diacak terlebih dahulu dan tidak ditransfer dalam bentuk
plaintext seperti pada versi HTTP tanpa SSL. Dalam versi HTTP, Expires
diset -1 sedangkan pada versi HTTPS diset Expires: Sun, 13 Jun 2010
20:44:43 GMT. Artinya, pada versi HTTPS lebih mengutamakan
keamanan dengan memberikan masa expired pada pengguna.

2.3 URL (Unifor m Resource Locator)
URL merupakan suatu inovasi dasar bagi perkembangan sejarah Internet.
URL pertama kali diciptakan oleh Tim Berners-Lee pada tahun 1991 agar penulispenulis dokumen-dokumen dapat merujuk pranala ke World Wide Web. Sejak
1994, konsep URL telah dikembangkan menjadi istilah Uniform Resource
Identifier (URI) yang lebih umum sifatnya. Walaupun demikian, istilah URL
masih tetap digunakan secara luas. Tabel 2.1 menjelasakan komponen-komponen
URL.
Tabel 2.1: Komponen-komponen URL (McClure, 2003)
Komponen
Protokol
Server [:port]

Alamat/ke/file
Parameter

Keterangan
Protokol lapisan aplikasi yang dipakai. Seperti HTTP,
FTP, dan yang lainnya.
Nama DNS, Nama Netbios, atau alamat IP dari sebuah
host sumber yang diminta. \[:port] merupakan pilihan
jika menggunakan port yang tidak default (default
HTTP = 80)
Alamat direktori atau folder dan file yang diminta.
Parameter dapat dilewatkan ke sumber bila ia adalah
sebuah aplikasi atau sebuah program yang secara
dinamis membangkitkan output. Kadangkala bagian
URL yang mengkhususkan parameter yang disebut
juga Query String.

URL juga merupakan sebuah mekanisme untuk mengenali sumber-sumber
pada web, SSL, atau server FTP, termasuk protokol layer aplikasi yang membuat

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

17

request ke server Web. URL digunakan dengan software browser untuk
menempatkan dan mengakses informasi di web. Struktur URL adalah:
Protokol://Server\[:port]/Alamat/ke/file?Parameter=nilai_parameter
Contoh:
https://www.site.com:80/order/buy.asp?item=100
2.3.1

URL Encoding dan Meta-Karakter

Pada intinya, URL merupakan string alfanumerik dengan beberapa simbol lain
yang dimasukkan ke dalamnya. Karakter penyusun string URL terdiri dari simbolsimbol, simbol alfanumerik yang terdiri dari A-Z, a-z, dan bilangan 0-9. Selain itu
ada simbol tambahan, diantaranya ; / ? : @ & = + $ , < > # % “ dan karakter
khusus meliputi - _ . ! ~ * ‘ ( ) { } | \ ^ [ ].
Pada banyak bagian, string URL terdiri dari huruf-huruf, angka-angka, dan
simbol-simbol tambahan yang memiliki arti khusus di dalam string URL.
Karakter-karakter khusus yang lain bisa ditemukan pada beberapa string URL,
walaupun karakter-karakter itu tidak memiliki arti khusus sejauh menyangkut
URL. Namun demikian, karakter-karakter itu bisa memiliki arti khusus bagi web
server yang menerima URL atau aplikasi yang diminta lewat web server. Tabel
2.2 menjelaskan tentang arti karakter khusus dalam URL.
Tabel 2.2: Karakter Khusus dan Artinya dalam URL (McClure, 2003)
Karakter
?
&
=
+
:
#

Arti
Pemisah query string. Bagian string URL di sebelah kanan simbol ?
adalah Query String.
Delimiter parameter. Digunakan untuk memisahkan pasangan
parameter name=value pada Query String.
Memisahkan nama parameter dari nilai parameter.
Diterjemahkan menjadi spasi.
Pemisah protokol. Bagian string URL mulai dari awal sampai simbol
: menentukan protokol layer aplikasi.
Dipakai untuk menentukan titik anchor pada halaman web.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

18

%
@

~

Dipakai sebagai karakter escape untuk menentukan karakter
heksadesimal yang ter-encode.
Dipakai pada URL mailto: sewaktu menentukan alamat email atau
sewaktu melewatkan login berkas-berkas penting milik pengguna ke
sumber yang terproteksi, khususnya pada FTP.
Dipakai untuk menentukan home directory pengguna pada sistem
multi pengguna seperti unix.

Sedangkan untuk karakter-karakter seperti * ; | dan ‘ memiliki arti tertentu
sebagai meta-karakter pada script aplikasi.

Karakter-karakter ini tidak

mempengaruhi URL, tetapi jika karakter-karakter itu mengakhiri perintah untuk
masuk ke aplikasi, bisa mengubah arti input seluruhnya dan kadang kala
menciptakan lubang keamanan.

2.4 Web Server
Web server merupakan sebuah perangkat lunak dalam server yang
berfungsi menerima permintaan (request) berupa halaman web melalui HTTP atau
HTTPS dari klien yang dikenal dengan browser web dan mengirimkan kembali
(response) hasilnya dalam bentuk halaman-halaman web yang umumnya
berbentuk dokumen HTML. Sehingga web server adalah software yang menjadi
tulang belakang web.
Web server menunggu permintaan dari client yang menggunakan browser
seperti Netscape Navigator, Internet Explorer, Mozilla, dan program browser
lainnya. Jika ada permintaan dari browser, maka web server akan memproses
permintaan itu kemudian memberikan hasil prosesnya berupa data yang
diinginkan kembali ke browser. Data ini mempunyai format yang standar, disebut
dengan format SGML (Standar General Markup Language). Data yang berupa

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

19

format ini kemudian akan ditampilkan oleh browser sesuai kemampuan browser
tersebut.
Proses yang dimulai dari permintaan browser, diterima web server,
diproses, dan dikembalikan hasil prosesnya oleh web server ke browser lagi
dilakukan secara transparan. Setiap orang dapat dengan mudah mengetahui apa
yang terjadi pada tiap-tiap proses. Secara garis besarnya web server hanya
memproses semua masukan yang dikirim oleh browser. Contoh web server yaitu
Apache, nginx, GWS, Apache Tomcat, Microsoft Windows server 2003 Internet
Information Service (IIS), lighttp, Jigsaw, Sun java system web server, Xitami
web server, Zerus web server.
Cara Kerja Web Server
prinsip atau cara kerja web server itu sendiri? Cukup sederhana untuk dipahami,
karena pada dasarnya tugas web server hanya ada 2 (dua), yaitu:
a. Menerima permintaan (request) dari client.
b. Mengirim apa yang diminta oleh client (response).

Gambar 2.2: Cara kerja web server

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

20

Penjelasan Gambar 2.2 :
1.

Client disini dapat berupa computer desktop dengan minimal memiliki
browser dan ter hubung ke web server melalui jaringan (intranet atau
internet).

2.

Komputer yang berfungsi sebagai server, dimana didalamnya terdapat
perangkat lunak web server. Agar computer ini dapat diakses oleh client
maka computer harus terhubung ke jaringan (intranet atau internet). Dalam
jaringan internet, computer ini biasa saja bernama www.google.com.
www.bl.ac.id atau memiliki kode computer (disebut IP Address) seperti
202.10.20.10 dan 200.100.50.25.

3.

Pertama-tama, client (user) akan meminta suatu halaman ke (web) server
untuk ditampilkan di computer client. Misalnya client mengetikan suatu
alamat (biasa disebut URL) di browser http://www.google.com. Client
menekan tombol enter atau klik tombol Go pada browser. Lalu apa yang
terjadi? Melalui media jaringan (bisa internet, bisa intranet) dan melalui
protocol http,akan dicarilah computer bernama www.google.com. Jika
ditemukan, maka seolah-olah terjadi permintaan, “hai google, ada client yang
minta halaman utama nih, ada dimana halamanya?”. Inilah yang disebut
request.

4.

Sekarang dari sisi server (web server). Mendapat permintaan halaman utama
google dari client, si server akan mencari-cari di komputernya halaman
sesuai permintaan. Jika ditemukan, maka halaman yang diminta akan
dikirimkan ke client (si peminta), namun jika tidak ditemukan, maka server
akan memberi pesan “404. page Not Found”,

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

21

2.4.1 Web Server Apache
Apache adalah server web yang dapat dijalankan di banyak sistem operasi
(Unix, BSD, Linux, Microsoft Windows dan Novell Netware serta platform
lainnya) yang berguna untuk melayani dan memfungsikan situs web. Protokol
yang digunakan untuk melayani fasilitas web ini menggunakan HTTP.
Apache juga didukung oleh sejumlah antarmuka pengguna berbasis grafik
(GUI) yang memungkinkan penanganan server menjadi mudah. Apache
merupakan perangkat lunak sumber terbuka dikembangkan oleh komunitas
terbuka yang terdiri dari pengembang-pengembang dibawah naungan Apache
Software Foundation. Proyek Apache diawali dengan terbentuknya milis "newhttpd" yang dicanangkan untuk mendiskusikan pengembangan dan masa depan
dari server NSCA (National Center for Supercomputing Applications) yang ada di
University of Illinois.

Sebagai basis pengembangan digunakan versi 1.3 dari NCSA-httpdServer, dan tim baru ini tak lama kemudian menerbitkan Apache 0.6.2 pada bulan
April 1995. Di bulan Desember pada tahun yang sama berhasil membuahkan versi
final pertama Apache 1.0 dari web server yang telah dikenal piawai sampai saat
ini. Selanjutnya Apache yang bermula dari NSCA-Server itu telah meraih
peringkat nomor satu dunia. Pada tahun 2001 berhasil meraup pangsa pasar dunia
sekitar 60 persen kemudian meningkat menjadi 70 persen dari di akhir tahun
2005. Sedangkan untuk Mei 2012, Apache tetap menempati urutan teratas, namun
hanya 64.20 persen dari seluruh web server di dunia. (sumber: Netcraft Web
server Survey, Mei 2012)

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

22

Gambar 2.3: Persentase penggunaan web server(1995-2012)
(http://news.netcraft.com/)

Tabel 2.3: Persentase penggunaan web server (1996-2010)
(http://news.netcraft.com)
Developer

April 2012

Percent

May 2012

Percent

Change

Apache

443,102,56165

46%

425,631,72164

20%

-1.26

Microsoft

92,488,75113

66%

92,406,48013

94%

0.28

nginx

69,869,91610

32%

70,764,24810

67%

0.35

Google

22,039,9013

26%

21,264,6163

21%

-0.05

Apache merupakan web server yang pertama sebagai alternatif terhadap
web server komersil dari Netscape Communications Corporation (setelah
diakuisisi menjadi Sun Java System Web Server), dan sejak keberadaannya
merupakan saingan nomor satu diantara sesama web server turunan unix dalam
hal fungsionalitas, fitur dan kinerja. Dari berbagai sumber dapat diklaim bahwa
kebanyakan web serverApache dijalankan diatas sistem operasi Linux.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

23

Ar sitektur Apache
Sebagai lawan dari arsitektur monolitik server di mana semua kegiatan
tersebut dilakukan oleh satu, Apache menggunakan pendekatan modular.
Gambar 2.3 menggambarkan arsitektur umum dari Apache. Ada bagian inti dari
server yang bertanggung jawab untuk mendefinisikan dan mengikuti langkahlangkah dalam melayani permintaan (Apache Core) dan beberapa modul yang
benar-benar melaksanakan berbagai tahapan penanganan permintaan (Apache
Module).
Apache Core mengimplementasikan fungsi dasar server. Selain itu,
Apache Core juga menerapkan sejumlah fungsi tambahan. Fungsi tambahan itu
seperti pengalokasian memori atau sumber daya untuk menangani atau
memproses suatu permintaan dari client (HTTP Request). Apache Core ini juga
berfungsi untuk membangun child setiap permintaan yang masuk.

.
Gambar 2.4: Arsitektur umum Apache (Dragoi, 1999)

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

24

Modul Apache
Apache merupakan aplikasi server web yang memiliki inti (core) yang
kecil kemudian digabungkan dengan modul-modul. Modul-modul tersebut dicompile dengan referensi yang sudah ditentukan dalam Apache Core sehingga
modul-modul tersebut dapat bekerja seiring dengan Apache Core. Modul-modul
tersebut diletakkan pada direktori /modules/ atau /libexec/ dan di-load oleh
Apache Core sesuai fungsi masing-masing.
Selain itu, server Apache mengacu pada librari-librari yang disebut
Apache Portable Runtime (APR) yang bisa dijalankan secara lintas platform baik
tingkatan layer dan kebutuhan, sehingga modul-modul tidak membutuhkan
eksekusi dari sistem operasi yang sifatnya non-portabel. Selain APR yang
berfungsi sebagai “sistem operasi virtual” untuk modul-modul, ada juga modul
yang disebut Multi-Processing Module (MPM) yang berfungsi untuk membantu
optimalisasi Apache pada sistem operasi. Gambar 2.5 merupakan gambaran lebih
detail dari arsitektur Apache beserta modul-modulnya.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

25

Gambar 2.5: Arsitektur Apache dan modul Apache (Dragoi, 1999)

Apache dikompilasi dengan memasukkan modul-modulnya sebagai bagian
dari file binary. Modul-modul tersebut yang mendukung fitur-fitur yang
ditawarkan oleh Apache. Misalnya mod_auth yang mendukung otentikasi teks
murni. Modul yang disediakan oleh Apache secara default adalah :
1) Pembuatan environment
a) mod_env Pembuatan variabel environment untuk skrip CGI/SSI
b) mod_setenv if Pembuatan variabel environment berdasarkan header HTTP
c) mod_unique_id Pengenal khusus untuk permintaan Content Type Decision
d) mod_mime Penentuan tipe isi/encoding (configured)
e) mod_mime_magic Penentuan tipe isi (otomatis)

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

26

f) mod_negotiation Penentuan pemilihan berdasarkan the HTTP Accept
headers URL mapping
2) Pengaturan direktori
a) mod_dir Pengaturan direktori dan direktori default file
b) mod_autoindex Kontrol akses terhadap direktori file indeks secara
otomatis.
c) mod_access Kontrol akses (user, host, jaringan)
d) mod_auth Autentikasi dasar HTTP (user, passwd)
e) mod_auth_dbm Autentikasi dasar HTTP lewat file Unix NDBM.
f) mod_auth_db Autentikasi dasar HTTP lewat file Berkeley-DB
g) mod_auth_anon Autentikasi dasar HTTP untuk user anonymous
h) mod_digestAutentikasi HTTP Digest Autentikasi HTTP response
i) mod_headers Respon header HTTP secara acak (configured)
j) mod_expires Respon HTTP yang lewat jangka waktu
k) mod_include Dukungan Server Side Includes (SSI)
l) mod_cgi Dukungan Common Gateway Interface (CGI)* 'handlers'
3) Pengaturan content internal
a) mod_status Pengaturan content untuk status server run-time
b) mod_info Pengaturan content untuk info singkat konfigurasi server
4) Pencatatan akses
a) mod_log_config Pencatatan akses yang dapat diatur sesuai keinginan
b) mod_log_agent Pencatatan HTTP User-Agent khusus (deprecated)
c) mod_log_refer Pencatatan HTTP Referrer khusus (deprecated)
d) mod_usertrack Pencatatan atas user click-trails lewat cookie HTTP

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

27

5) Lain-lain
a) mod_imap Dukungan Server-side Image Map
b) mod_proxy Caching Modul Proxy (HTTP, HTTPS, FTP)
c) mod_so Dynamic Shared Object (DSO) bootstrapping
6) Experimental
mod_mmap_static Caching halaman yang sering diminta lewat mmap()
7) Pengembangan
mod_example Demonstrasi Apache API demonstration (developers only)

2.5 HTML (Hyper Text Markup Language)
Di dalam desain web,

tidak akan bisa lepas dengan yang namanya

HTML (Hypertext Markup Language). HTML adalah bahasa standar yang
digunakan

untuk menyusun/membangun suatu halaman web. Meskipun telah

muncul software-software yang dapat digunakan untuk membangun suatu
ha