WEB UNTUK ADMINISTRASI SISTEM DAN JARINGAN PADA SERVER YANG MENGGUNAKAN SISTEM OPERASI UNIX/LINUX
OLEH :
NAMA : PRIHUTOMO ARDIANTO
N I M : 93.410103295 PROGRAM : S1 (STRATA I)
JURUSAN : MANAJEMEN INFORMATIKA
SEKOLAH TINGGI
System operasi unix/linux sebenarnya telah cukup banyak digunakan dan cukup popular. Namun penggunanya adalah para system dan network administrator. Sanagat jarang seorang individu menggunakan system operasi Unix/linux untuk mkeperluan pribadinya, biasanya para individu ini lebih memilh Dos atau Windows.
Pengguna system operasi Unix/linux menggunakan system operasi ini untuk menjalankan server mereka. Unix/linux memang memiliki beberapa kelebihan dalam hal dibanding operasi system lain. Dengan segala fasilitas yang
dimiliki system operasi ini para sistem & network administrator tersebut mampu melaksakan tugas-tugas mereka menjaga dan merawat system serta jaringan agar tetap berfungsi sebagaimana mestinya
Melihat kebutuhan diatas maka akan banyak sekali permasalahan jika diinginkan untuk menjaga dan merawat sebuah system dan jaringan setiap saat. Namun demikian masalah-masalah tersebut dapat dispesifikasikan menjadi beberapa masalah saja. Masalah pokok yang menjadi dasar permasalahan ini yaitu kurangnya fasilitas untuk seorang administrator untuk melakukan kegiatan administrasi dari jarak jauh.
viii
Halaman
ABSTRAKSI . . . .. . . iv
KATA PENGANTAR . . . vi
DAFTAR ISI . . . viii
DAFTAR TABEL . . . x
DAFTAR GAMBAR . . . xi
DAFTAR LAMPIRAN . . . xiii
BAB I. PENDAHULUAN . . . 1
1.1. Latar Belakang . . . . 1
1.2. Tujuan. . . . . 2
1.3. Rumusan Masalah . . . 3
1.4. Pembatasan Masalah . . . .. 4
1.5. Metodologi . . . 4
1.6. Sistematika pembahasan. . . . 6
BAB II. LANDASAN TEORI . . . 8
2.1. Perl. . . . . . 8
2.2. CGI. . . . . . 1 5 2.3. HTML . . . . . . 23
BAB III. ANALISA DAN DESAIN . . . 38
3.1. Gambaran Umum sistem . . . . . . 38
ix
3.4. Structure Chart . . . . . . . 71
3.5. Flow Chart . . . . . . 71
BAB IV. PENGUJIAN SISTEM . . . 73
BAB V. PENUTUP . . . 103
5.1. Kesimpulan . . . 103
1
PENDAHULUAN
1.1. Latar Belakang Masalah
Perkembangan teknologi informasi sangat pesat berkat lahirnya internet
beberapa dekade yang lalu. Bahkan internet sudah menjadi bagian yang amat vital
dalam proses menampilkan informasi. Dapat pula dikatakan bahwa internet adalah
bagian pokok yang memegang peranan sangat penting dalam proses perkembangan
teknologi informasi.
Perkembangan internet yang pesat dapat dilihat dari semakin banyaknya
perusahaan-perusahaan atau organisasi-organisasi yang saling berlomba untuk
memasang dan menggunakan fasilitas-fasilitas yang terdapat pada internet dengan
tujuan agar dapat meningkatkan dan menunjang kegiatan perusahaan atau
organisasinya. Perusahaan atau organisasi yang memanfaatkan fasilitas internet
tidak terbatas pada perusahaan atau organisasi dalam skala besar dan kecil, tetapi
perusahaan atau organisasi dalam skala keluarga pun memanfaatkan fasilitas
internet. Karena mereka mulai menyadari betapa besar keuntungan yang diperoleh
dengan memanfaatkan fasilitas internet.
Jika ditinjau kembali teknologi internet dalam sepuluh atau lima belas tahun
kebelakang, maka dapat disimpulkan bahwa teknologi internet adalah sesuatu yang
sulit untuk dipelajari dan dikembangkan. Tetapi berkat munculnya World Wide
Web (WWW) yang dipelopori oleh tim Berner-Lee dari CERN, semua pandangan
Graphical User Interface (GUI) yang tidak kalah menariknya dengan apliakasi pada
Personal Computer (PC) pada umumnya.
WWW dapat menampilkan berbagai macam bentuk informasi, baik dalam
teks, citra, serta beberapa bentuk data multimedia. Yang paling menarik dari
teknologi internet atau WWW adalah, teknologi ini dapat dijalankan pada berbagai
macam processor serta jenis komputer, hal ini berarti teknologi www dapat pula
diakses dari berbagai jenis komputer yang memiliki berbagai macam sistem operasi
yang berbeda pula.
Seiring dengan berkembangnya dunia internet. Semakin banyak pula
perusahaan atau organisasi yang mengunakan jaringan komputer untuk menunjang
aktivitas kerja mereka. Sebuah jaringan komputer membutuhkan seseorang yang
bertugas untuk menjaga dan merawat seluruh sistem dan jaringan agar dapat
berfungsi dengan baik. Orang yang bertugas untuk menjalankan proses-proses
administrasi tersebut adalah system & network administrator.
1.2. Tujuan
Maksud dan tujuan pembuatan program aplikasi serbaguna untuk
administrasi sistem dan jaringan yang berbasis pada sistem operasi unix/linux
adalah sebagai berikut :
1. untuk memudahkan superuser atau administrator sistem dan jaringan dalam
melaksanakan tugas-tugasnya merawat dan menjaga fungsi-fungsi dari sebuah
server yang digunakan oleh user-user yang ada di dalam sebuah jaringan
meskipun administrator tersebut berada jauh dari server serta mengunakan
2. Sistem administrator dapat tetap memberikan dukungan terhadap segala bentuk
kegiatan yang dilakukan oleh user, sehingga user tetap dapat melaksanakan
tugasnya dengan baik
3. Dengan semakin baiknya kinerja para user berarti telah meningkatkan kinerja
perusahaan secara keseluruhan.
1.3. Perumusan masalahan
Sistem operasi unix/linux sebenarnya telah cukup banyak digunakan dan
cukup populer. Namun pengunanya kebanyakan adalah para sistem & network
administrator. Sangat jarang seorang individu mengunakan sistem operasi
Unix/linux untuk keperluan pribadinya, biasanya para individu ini lebih memilih
sistem operasi Dos atau Windows.
Pengguna sistem operasi unix/linux menggunakan sistem operasi ini untuk
menjalankan server mereka. Unix/linux memang memiliki beberapa kelebihan
dalam hal system & networking dibanding sistem operasi lain. Dengan segala fasilitas yang dimiliki sistem operasi ini para sistem & network administrator
tersebut mampu melaksanakan tugas-tugas mereka menjaga dan merawat sistem
serta jaringan agar tetap berfungsi sebagaimana mestinya.
Melihat kebutuhan diatas maka akan banyak sekali permasalahan jika
diinginkan untuk menjaga dan merawat sebuah sistem dan jaringan setiap saat.
Namun demikian masalah-masalah tersebut dapat dispesifikasikan menjadi
beberapa masalah saja. Masalah pokok yang menjadi dasar permasalahan ini yaitu
kurangnya fasilitas untuk seorang administrator untuk melakukan kegiatan
Maka dalam pembuatan tugas akhir ini, kami mengajukan permasalahan
untuk menjawab "Bagaimana melakukan kegiatan administrasi sistem dan
jaringan pada sebuah server yang menggunakan sistem operasi unix/linux melalui sebuah komputer yang menggunakan sistem operasi selain unix/linux,
dengan membuat aplikasi administrasi sistem dan jaringan dalam bentuk web?".
1.4. Pembatasan masalah
Pembahasan yang dilakukan pada tugas akhir ini tidak meliputi
pembangunan sebuah server jaringan yang menggunakan sistem operasi unix/linux,
tetapi lebih diutamakan pada pembuatan aplikasi-aplikasi yang dapat dijalankan
pada server yang menggunakan sistem operasi unix/linux yang dapat dimanfaatkan
untuk kepentingan pengaturan administrasi pada sebuah sistem jaringan.
Karena tugas-tugas yang akan dilakukan oleh seorang administrator sistem
dan jaringan sangat banyak dan beragam maka dalam tugas akhir kali ini hanya
akan dibahas beberapa tugas saja, antara lain :
1. Administrasi dan konfigurasi sistem
2. Administrasi printer
3. Administrasi & Konfigurasi jaringan
4. User assistance
5. Linux File Sharing / export facility
1.5. Metodologi yang digunakan
Untuk memperoleh keterangan dan data-data yang dibutuhkan dalam
penyusunan tugas akhir ini, maka digunakanlah metode dari proses penelitian
serta pembuatan perangkat lunak dilakukan melalui studi pustaka dari berbagai
macam literatur yang didapat dari berbagai macam sumber pustaka, serta
menggunakan metode-metode sebagai berikut :
1. Studi Literatur.
Studi kepustakaan dari berbagai macam buku literatur maupun referensi
yang didapat dari perpustakaan, internet, maupun dari sumber-sumber pustaka
lainnya akan didapatkan konsep-konsep yang bersifat teoritis, data, ataupun
informasi, yang sangat bermanfaat sehingga dapat mendukung penelitian yang
dilakukan, maka akan didapatkan hasil yang sesuai dengan yang diharapkan
2. Perencanaan dan pembuatan sistem
Dalam perencanaan pembuatan sistem perangkat lunak ini dimulai dari
proses penelitian sebelum penulisan program dilakukan sehingga memperoleh
hasil seperti yang direncanakan dan penelitian terhadap kelayakan perancangan
dan pembuatan perangkat lunak ini dilakukan melalui studi pustaka dari
berbagai macam literatur. Dan dipertimbangkan pula compabilitas dengan
berbagai macam distribusi sistem operasi unix/linux yang banyak beredar di
pasaran.
3. Pengujian sistem
Setelah semua sistem selesai dibuat maka akan dilakukan proses pengujian.
Seluruh program yang telah selesai dibuat akan dicoba untuk dijalankan pada
sebuah sistem operasi yang telah ditentukan, dalam hal ini adalah salah satu
distribusi dari sistem operasi unix/linux dan pada perangkat keras yang berupa
IBM PC Compatible. Dari pengujian sistem ini diharapkan akan didapat hasil
4. Dokumentasi.
Dokumentasi dari pembuatan tugas akhir ini berupa program dari sistem
aplikasi serbaguna berbentuk web untuk administrasi sistem dan jaringan pada
server yang menggunakan sistem operasi unix atau linux, dan buku laporan tugas
akhir. Dalam buku tugas akhir ini semua program akan disertakan dalam
lampiran. Buku tugas akhir ini sendiri akan disusun dalam 5 (lima) bab, tentang
rancangan dan pembuatan program aplikasi akan dijelaskan pada bab III yaitu
tentang desain dan implementasi, sedangkan hasil pengujian dan pembahasan
akan dijelaskan dalam bab IV dari buku tugas akhir.
5. Pengambilan kesimpulan
Dari hasil yang diperoleh selama perencanaan dan pengujian sistem secara
keseluruhan, akan diambil kesimpulan.
1.6. SISTEMATIKA PEMBAHASAN
Penulisan tugas akhir ini secara sistematis diatur dan disusun dalam 5 (lima)
bab. Secara ringkas uraian materi dari bab pertama hingga bab terakhir adalah
sebagai berikut :
BAB I. PENDAHULUAN
Pada bab I pendahuluan ini akan dibuat sub bab antara lain sebagai berikut :
1.1 Latar belakang masalah
1.2 Tujuan
1.3 Perumusan masalah
1.4 Pembatasan masalah
1.5 Metodologi
BAB II. LANDASAN TEORI
Menguraikan landasan teori tentang hal-hal yang mendasar yang berkaitan
dengan pembangunan perangkat lunak yang akan digunakan untuk tugas akhir ini.
BAB III. ANALISA DAN DESAIN SISTEM
Menjelaskan dan menguraikan desain dari perangkat lunak yang dibuat dan
menganalisa terhadap masalah yang mungkin timbul ketika dilakukan implementasi
dari sistem aplikasi yang dibuat berikut pemecahan masalahnya dalam pembuatan
perangkat lunak secara keseluruhan. Dalam bab III ini terdapat sub bab sebagai
berikut :
3.1. Perancangan Data
3.2. Perancangan Proses
3.2.1. Structurre Chart
3.2.2. Diagram Alir
BAB IV. PENGUJIAN SISTEM
Berisi tentang pengujian dan pembahasan perangkat lunak yang telah dibuat.
BAB V. PENUTUP
Merupakan kesimpulan dari penulisan tugas akhir dan saran-saran yang
8 BAB II
LANDASAN TEORI
2.1 Perl
PERL (Practical Extraction and Report Language). Perl dibuat pada tahun
1986 oleh Larry Wall. Pada saat ini perl adalah salah satu sripting language yang
sangat populer yang banyak digunakan pada system operasi linux/unix platform. Pada
tugas akhir kali ini digunakan perl versi 5.004_04. Perl memiliki syntax yang mirip
dengan bahasa C, selain itu perl juga banyak mengandung model-model command
dari unix/linux shell script. Perl juga memiliki elemen-elemen yang sama dengan
HTML. Pembentukan sebuah halaman web berikut fungsinya dapat dideklarasikan
dalam sebuah program yang ditulis dengan bahasa perl ini.
2.1.1. Memulai Perl
Perl biasanya sudah terdapat pada sistem operasi linux ketika mulai
melakukan proses instalasi pada komputer. Untuk memastikannya cukup mengetikan
perintah tertentu pada command prompt.
$ perl âv [enter]
Sedangkan untuk mengetahui pada directory manakah program perl tersimpan, cukup
dengan memberikan perintah sebagai berikut :
$ which perl [enter]
Secara umum perl akan terdapat pada directory /usr/bin/perl. Lokasi directory ini
sangat penting artinya untuk setiap program yang dibuat, tanpa pemberian tanda
program perl berada. Lokasi atau directory program perl akan digunakan setiap
memulai membuat program dengan perl.
Berikut adalah program perl sederhana yang akan menampilkan sebuah kalimat.
#! /usr/bin/perl
print âRed Hat Linux Unleashed, 3rd edition\nâ;
program di atas akan menampilkan kalimat yang berada diantara tanda kutip yaitu
Red Hat Linux Unleashed, 3rd edition. Tanda \n digunakan untuk pindah baris. 2.1.2. Menjalankan Perl.
Sebelum menjalankan program, simpan terlebih dahulu program tesebut.
Nama program tersebut, misal trivial.pl, selanjutnya rubah file permission dari file
trivial.pl dengan perintah chmod +X untuk merubah file trivial.pl menjadi executable
file.
2.1.3. Struktur Data dan Variabel Perl.
Perl tidak memiliki konsep data type seperti integer, string, char dan
sebagainya. Perl memiliki beberapa macam variabel sebagai berikut :
a. Scalar Variables, ditunjukkan dengan karakter dollar ($) sebelum nilai variabel
[$variables], yang dapat diisi dengan angka atau huruf. Dapat pula menggunakan
variabel yang sama baik untuk text/data string maupun data numeric. Syntax dari
scalar: $scalar = âexpressionâ;
Berikut adalah contoh penggunaan variabel scalar :
b. List, list merupakan deretan dari sejumlah nilai dari variabel sacalar, huruf, angka,
atau kombinasi dari keduanya.
c. Arrays, disimbolkan dengan @arrays, berisi satu atau lebih elemen yang dapat
diurut dengan menggunakan index. Sebagai contoh $names[12] akan memberikan
sejumlah 13 elemen di dalam array @names. Perlu diingat bahwa penomoran
dimulai dari 0.
d. Assosiative arrays, diindikasikan dengan %assoc_array, menyimpan nilai-nilai
yang dapat dijadikan acuan dengan kata kunci. Sebagai contoh $days{Feb} akan
memberikan element dalam assosiative arrays %days yang dapat
berkorespondensi langsung dengan kata âFebâ sebagai kata kunci.
2.1.4. Statement Kondisi.
Struktur IF/ELSE sangat bermanfaat dalam pemrograman untuk mengambil
keputusan terhadap kemungkinan adanya lebih dari satu alternatif. Apabila kondisi
bernilai benar, maka perintah-perintah yang berada dalam kelompok statement akan
dieksekusi namu apabila kondisi bernilai salah maka perintah-perintah yang pada
kelompok statement ke dua yang akan dieksekusi. Dalam perl struktur if/else
memiliki syntax :
If (expression) { Statements; }
if (expression) {
# executed if true statements; } ELSE {
Pada perl syntax dari kondisi IF/ELSE dapat dipersingkat menjadi ELSIF adalah
sebagai berikut :
If (Condition/Expression) { Statement(s) ;
}
elsif (Condition/expression) { statement(s)
} else {
statement(s) }
Tanda { } (braces) yang digunakan pada pernyataan di atas digunakan untuk
menandai kelompok-kelompok expression, dan digunakan juga untuk mengakhiri
statement yang ada. Condition dapat saja berupa pernyataan (statement) atau
perbandingan (Comparison). Apabila sebuah statement bernilai âbenarâ, maka
statement tersebut akan dieksekusi. Nilai benar yang dimaksudkan disini adalah :
1. angka bukan 0 (nol)
2. string yang tidak bernilai 0 (nol) atau kosong .
3. kondisi-kondisi lainnya yang membuat bernilai benar.
Contoh penggunaan kondisi if/else :
If ($favorite eq âChocolateâ) { Print â I like chocolate too.\nâ; }
elsif ($favorite eq âspinachâ) {
print âOh, I donât like spinach.\nâ; }
else }
print âYour favorite food is $favorite. \nâ }
Perl memiliki empat tipe looping :
a. for.
For menampilkan sebuah statement (pernyataan) atau sekelompok
statement pada sebuah kelompok kondisi, yang didefinisikan sebagai
berikut :
For (start condition; end condition; increment function) { Statement(s)
}
Start condition merupakan initial expression, dimana perintah-perintah
yang ada dalam kelompok atau blok statement akan dieksekusi, end
condition merupakan terminated condition expression dimana merupakan
kondisi perulangan (loop) akan berakhir, sedangkan increment function
merupakan loop expression. Pada awal proses loop, kondisi awal harus
sudah dideklarasikan terlebih dahulu. Setiap kali loop di jalankan atau
dieksekusi fungsi increment akan berubah secara berurutan sampai kondisi
nilai akhir tercapai. Dibawah adalah contoh dari loop dengan
menggunakan for.
For ($i=1; $i<=10; $i++) {
Print â$i\nâ }
b. Foreach.
Foreach menampilkan sebuah statement atau sekelompok staement
dimana setiap elementnya berada dalam satu kelompok, seperti list atau
Foreach [SCALAR VARIABEL] (LIST) { STATEMENTS;
}
Setiap kali melalui loop, nilai pada variabel scalar akan dipindahkan ke
elemen berikutnya dalam list, dan setelah itu statement akan dieksekusi.
Berikut adalah contoh penggunaan foreach.
Foreach $name (@names) { Print â$name \nâ
}
c. While.
While akan mengeksekusi kelompok perintah yang berada dalam blok
statement secara berulang, selama kondisi tertentu bernilai benar. While
akan berhenti mengeksekusi statement apabila kondid telah bernilai salah.
While (expression) { Statements; Statements; }
contoh dari loop while adalah sebagai berikut :
While ($x<10) { Print â$x \nâ; $x++;
}
d. Until.
Until adalah kebalikan dari statement while. Selama kondisi tertentu
bernilai salah, akan terus menjalankan statement sampai kondisi berubah
Until ($x>10) { Print â$x \nâ; $x++;
}
2.1.6. Conditional.
Conditional berfungsi untuk membandingkan nilai-nilai yang berbeda. Perl
menyediakan dua paket conditional, satu untuk tipe data numeric, dan yang lainnya
untuk data strings.
Perl Usage
Eq Equal
Ge Greater than or equal to
Gt Greater than
Le Less than or equal to
Lt Less than
Ne Not equal
Cmp Returns
Tabel 2.1. String comparisson
Perl Usage
= = Equal
!= Not Equal
< Less than
<= Less than or equal to
> Greater than
>= Greater than wqual to
<=> Return
Tabel 2.2. Numeric comparisson
2.1.7. Subrutin
Subrutin adalah bagian dari perl, yang dapat digunakan untuk mengeksekusi
Pernyataan sub didefinisikan dalam sebuah blok dimulai dari tanda â{â
sampai â}â. Syntax dari subrutin adalah sebagai berikut :
Sub NAME {
Subroutines STATEMENTS; }
Berikut adalah contoh subrutin yang akan mengeksekusi perintah
pendefinisian masalah.
# define an error routine: sub error {
($message) = @_;
print (â<b>ERROR:<b>â, $message,
â<p>Contact the author of the previous page for assistance\nâ); exit(0);
}
2.2. CGI (COMMON GATEWAY INTERFACE)
CGI (Common Gateway Interface) adalah sebuah spesifikasi standar yang
dikeluarkan oleh National Center for Supercomputing Aplications (NCSA) yang
digunakan sebagai media antara sebuah client dengan sebuah server pada suatu
jaringan internet yang menjalankan aplikasi WWW. Seperti halnya aplikasi yang
berjalan pada sebuah PC, pada web server juga dimungkinkan untuk menulis sebuah
aplikasi yang dapat dijalankan pada client dan hasilnya ditampilkan pada sebuah
browser. Secara umum dapat dijelaskan bahwa prinsip kerja dari CGI adalah ketika
web server menerima sebuah permintaan dari client, CGI akan mencari semua nilai
dari variabel yang disertakan pada dokumen HTML dan diarahkan pada standar input
yang sesuai dengan permintaan client, setelah semua proses yang diminta selesai
dijalankan, maka hasil keluaran dari proses tersebut akan diarahkan pada standar
output <STDOUT> untuk proses menghasilkan keluaran. Keluaran yang dihasilkan
dari proses yang menggunakan antar-muka CGI adalah berbentuk dokumen HTML
Pemrograman CGI atau yang lebih dikenal dengan CGI script adalah tehnik
pemrograman yang sama dilakukan pada saat menulis sebuah aplikasi pada
umumnya. Hanya saja yang membedakan terletak pada proses masukan dan keluaran.
CGI script menerima sebuah masukan setelah browser mengirimkan permintaan
sebuah proses dimana variabel atau data yang dikirimkan disertakan dalam bentuk
dokumen HTML. Begitu juga dengan proses keluaran, CGI script memberikan hasil
keluaran juga dalam bentuk dokumen HTML.
Untuk Menulis sebuah CGI script hampir semua jenis bahasa pemrograman
dapat digunakan. Juga tidak tertutup kemungkinanuntuk menulis CGI script dalam
platform atau sistem operasi tertentu. Dengan kata lain pemilihan bahasa
pemrograman hendaknya disesuaikan dengan sistem operasi dimana sebuah web
server dijalankan.
Program CGI mempunyai gerbang dengan dua jalur, dimana data dapat
disampaikan pada program CGI dan sebaliknya program CGI dapat menyampaikan
data kembali kepada browser. Proses yang dilakukan oleh program CGI dari web
browser cukup sederhana, sama seperti akses dokumen HTML biasa. Berikut urutan
terjadinya suatu hubungan antara browser dan web server.
1. Program CGI dipanggil dengan melakukan suatu query atau menjalankan form.
oleh pemakai ke server.
2. Web browser bernegosiasi dengan web server untuk menentukan hak akses dari
pemakai.
3. Web server memeriksa konfigurasi akses file yang telah ditentukan oleh
administration server untuk memastikan apakah permintaan pemakai bisa
dipenuhi.
4. Web server memeriksa apakah program CGI tersebut ada. Jika ada, maka program
tersebut dijalankan.
5. Output yang dihasilkan oleh server diterima oleh browser. Syarat utama dari
lancarnya proses input/output dari sistem CGI adalah program CGI harus
menghasilkan sebuah dokumen dengan header HTML.
6. Web browser menampilkan output CGI pada layar.
Gambar 2.1. Proses hubungan client dan server dalam CGI
Jika tidak ada data yang dikirim kembali ke client, program CGI harus
melalui protocol TCP/IP tetap jalan. Oleh karena itu, program yang dijalankan oleh
web server harus selalu memberikan output berupa header dan isinya dengan
mengikuti standar MIME. Bila sub proses ini tidak dijalankan maka komputer tempat
menjalankan program browser akan mengalami gangguan. Hal ini disebabkan karena
hubungan antara client dengan server tetap berlangsung ketika dokumen HTML hasil
dari program CGI telah dibuat, seketika itu juga hubungan terputus.
Client dapat mengirimkan data atau arguments ke arah gateway melalui HTTP
server . Program gateway yang sebelumnya merupakan suatu program static yang
memiliki keluaran yang sama setiap kali berjalan, akan berubah menjadi sebuah
dynamic entity yang akan merespon setiap kebutuhan user. Ada dua cara dimana
client dapat mengirimkan data kepada program gateway, yaitu melalui :
1. Dengan menggunakan Environment variables (ISINDEX).
2. Sebagai standar input <STDIN> dimana data akan dikirim melalui forms kepada
program.
Gambar 2.2 CGI Processing.
Environtment variabel merupakan fasilitas yang selalu disertakan pada hampir
semua sistem operasi, tidak terkecuali pada sebuah web server. Dengan environtment
dikirim oleh browser yang dijalankan pada client. CGI mempunyai beberapa
environtment variabel standar yang terdapat pada semua web server untuk semua
sistem operasi yang berbeda. Environtment variabel tersebut adalah :
a. SERVER_SOFTWARE.
Menunjukkan nama dan versi dari software yang membuat CGI.
Contoh : SERVER_SOFTWARE=NCSA/1.3
b. SERVER_NAME.
Nama dari host, DNS, Alias, atau IP Address.
Contoh : SERVER_NAME = que.mcp.com
c. GATEWAY_INTERFACE.
Nama dan versi dari protocol CGI yang digunakan
Contoh : GATEWAY_INTERFACE = CGI/1.1
Variabel-variabel diatas adalah variabel yang mengandung informasi HTTP
tentang server dan tidak bergantung pada client request.
d. SERVER_PROTOCOL.
Nama dan versi dari protocol yang digunakan dimana CGI sedang dijalankan.
Contoh : SERVER_PROTOCOL = HTTP/1.0
e. SERVER_PORT.
Port yang digunakan untuk melayani permintaan dari CGI.
Contoh : SERVER_PORT = 80
f. REQUEST_METHOD.
Metode yang digunakan oleh HTTP untuk menerima permintaan proses dari CGI.
g. PATH_INFO.
Path tambahan yang digunakan pada saat memanggil sebuah URL.
Contoh : http://www.innergy.com/cgi-bin/foo/whitepaper/may15
PATH_INFO = /whitepaper/may15
h. PATH_TRANSLATED.
Alias yang digunakan oleh sebuah server untuk sebuah URL.
Contoh : http://www.innergy.com/cgi-bin/foo/whitepaper/may15, dan web server
meletakkan semua dokumennya pada path /bin/httdocs/docs.
PATH_TRANSLATED = /bin/httdocs/docs/whitepaper/may15
i. SCRIPT_NAME.
Path dari sebuah script yang sedang dieksekusi.
Contoh : /cgi-bin/foobar
j. QUERY_STRING.
Semua karakter yang terletak debelakang tanda tanya pada sebuah URL.
Contoh : http://www.innergy.com/cgi-bin/foo?gordon+susan
QUERY_STRING=Gordon+Susan
k. REMOTE_HOST.
Host atau client yang meminta request pada web server.
Contoh : REMOTE_HOST=slip-08.shore.net
l. REMOTE_ADDR.
IP Address dari client yang meminta request pada web server.
Contoh : REMOTE_ADDR=192.233.85.130
Metode yang dibuat untuk menentukan wewenang dari seorang pemakai.
Contoh : AUTH_TYPE=Perl.
n. REMOTE_USER.
Nama dari client yang meminta request pada web server.
Contoh : REMOTE_USER=aeinstein
o. CONTENT_TYPE.
Tipe dari Multipart Internet Mail Extensions (MIME) yang dikirimkan oleh web
server.
Contoh : text/html.
p. HTTP_ACCEPT.
MIME yang dapat dikenali oleh web server.
Contoh : HTTP_ACCEPT=image/gif, image/x-bitmap, image/jpeg
q. HTTP_USER_AGENT.
Berisikan nama dari browser yang digunakan pada client.
Contoh : HTTP_USER_AGENT=Mozilla/20 (Win 16).
Variabel âvariabel di atas bergantung pada kedatangan permintaan dari client.
2.2.1. Mengirim Data.
Mengirim data melalui environment variables (METHOD=GET) sangatlah
baik namun memiliki banyak keterbatasan dan sebenarnya dapat menimbulkan
kerusakan pada sistem. Sebuah program gateway memiliki string yang sangat
panjang, yang terdiri dari URL ditambah dengan query string yang akan digunakan
bersamaan dengan shell script. Hal ini akan menyebabkan crash karena shell script
Untuk menghindari bahaya penggunaan tehnik METHOD=GET data akan
dikirim dengan menggunakan standard input ke program external. Sebuah form
dengan METHOD=POST dapat digunakan untuk mengirim data menuju stdin
program gateway. Data yang dikirim akan dikodekan dan setelah melewati proses
dalam gateway data akan dikembalikan seperti kondisi semula. Berikut adalah
potongan perl script yang dapat digunakan untuk menghindari keadaan di atas
tersebut.
#! /usr/local/bin/perl # name.pl
$user_input = read(STDIN, $_, $ENV{CONTENT_LENGTH}); print âContent â type : text/html\n\nâ;
print âYou input \â$user_input\ â in the input boxes\n\nâ; exit;
Program di atas akan menghasilkan screen output seperti biasanya kecuali
pada hasil URL dimana tidak akan dicantumkan kode QUERY_STRING setelah
nama program. Sebuah form yang menggunakan METHOD=POST akan membuat
environment variabel sebaik stdin, dengan merubah tag form html dengan :<FORM
METHOD=POST ACTION=http://www.some.box/name.pl/screen=subscribe> dan
data akan dikirim pada stdin dan PATH_INFO variabel.
2.2.2. MIME pada CGI Environment
Ketika sebuah client melakukan proses request dan program cgi dieksekusi
untuk memenuhi kebutuhan client, data dari sebuah form atau lebih akan ditulis pada
standard output (stdout) dan akan dikirim oleh server kepada client.
Hal penting yang harus dimengerti pada komunikasi client-server-gateway.
Adalah pengiriman data. Client dapat mengirim cara dengan dua cara, lewat url dan
Ada dua arti dasar dari client untuk mengirim data melalui server ke gateway
program melalui URL (ISINDEX) atau melalui message body (melalui
METHOD=POST form). Cara ini akan mengirimkan data ke gateway program
melalui stdin program. Kemudian environment variabel CONTENT_LEGTH
akan disiapkan sejumlah karakter yang akan dikirim.
Bagaimana server mengirim data ke gateway program. Pada saat ini server
telah menerima data dari client. Ada dua cara untuk mengirim data ke gateway
program.
a. melalui stdin gateway program. Jika request_method dikirim, pertama kali
server akan mengkodekan data, kemudian baru dikirim ke gateway
program sebagai stdin.
b. Melalui environment variabel server.
Gateway output. Sebuah program gateway harus memulai keluarannya dengan
proper header yang dapat dimengerti oleh server. Ada tiga header yang dapat
dikenali server.
a. Content âtype.
b. Location : [URL]
c. Status: [message strings]
2.3. Hyper Text Markup Language
HTML (Hyper Text Markup Language) adalah sebuah format dokumen yang
hampir sama dengan dokumen teks, dimana struktur dokumen HTML mempunyai
elemen-elemen seperti heads, paragraph, dan list. Format dokumen dalam bentuk
selanjutnya akan dapat dipakai sebagai sebuah lembar halaman dalam sebuah web.
Dokumen dengan format HTML adalah dokumen teks standar yang
mempunyai beberapa tanda khusus di dalamnya. Tanda-tanda khusus yang dimaksud
disebut TAG. Sebuah tag adalah gabungan dari beberapa karakter atau string yang
diapit dengan tanda lebih kecil dan tanda lebih besar. Tag memberikan status dari
sebuah teks dan bagaimana harus menampilkannya di dalam browser.
Terdapat tiga aturan yang perlu diperhatikan pada saat menulis sebuah
dokumen HTML.
a. Spasi kosong diabaikan di dalam dokumen HTML.
Spasi kosong seperti tanda â â, tanda tabulasi dan baris baru tidak dianggap
sebagai suatu perintah pada saat dokumen HTML dibaca. Sehingga penempatan
sebuah baris baru dengan melakukan penekanan tombol enter tidak akan
memberikan hasil apa-apa. Hal ini berarti jika ingin menambahkan sebuah baris
baru dapat menggunakan sebuah tag<BR>
b. Tag tidak membedakan antara penulisan huruf besar dengan huruf kecil.
Tag <Pre> dengan tag <PRE> adalah sama. Para penulis dokumen HTML
biasanya menggunakan susunan huruf sama besar untuk menuliskan sebuah tag.
Penggunaan penulisan dengan menggunakan susunan haruf besar dilakukan hanya
untuk mempermudah dalam membedakan antara tag dengan teks atau dokumen.
c. Hampir semua tag mempunyai pasangan.
Sebuah tag biasanya mempunyai tag pembuka dan tag penutup. Sebuah tag
penutup ditandai dengan tanda garis miring di depan tag tersebut. Sebuah contoh,
Seperti halnya dokumen lainnya, dokumen HTML juga mempunyai struktur yang
membedakan antara header dengan data pada dokumen tersebut. Struktur dari
dokumen HTML adalah :
a. Deklarasi.
Pada bagian deklarasi selalu diawali dengan tag <HTML> pada awal dokumen
dan ditutp dengan tag </HTML> di akhir dokumen. Bagian deklarasi bertujuan
untuk memberitahu awal dan akhir dari dokumen HTML.
b. Header.
Bagian header di dalamnya terdapat beberapa tag yang disertakan pada bagian ini.
Seperti <TITLE> dan tag <BASE>. Pada dasarnya bagian header bertujuan untuk
memberikan penjelasan mengenai status, judul dan asal dari dokumen HTML.
c. Body.
Bagian body atau bagian utama dari dokumen HTML di awali dengan tag
<BODY> dan diakhiri dengan tag </BODY>. Bagian body berisikan tentang
informasi yang akan disampaikan kepada para pemakai fasilitas internet dan
beberapa subrutin yang bertujuan memperindah tampilan yang dihasilkan.
Versi yang terbaru dari dokumen HTML mempunyai banyak tag yang
memungkinkan sebuah dokumen HTML untuk diakses oleh beberapa browser untuk
jenis sistem operasi yang berbeda. Berikut ini adalah beberapa tag dan penjelasannya
yang sering digunakan dalam menulis dokumen HTML.
a. TITLE.
Berfungsi untuk memberikan penjelasan singkat berupa judul dari dokumen
b. BASE.
Berfungsi untuk mendefinisikan asal dari dokumen HTML yang berupa Uniform
Resource Location (URL).
c. HEAD.
Berfungsi untuk memisahkan antara bagian header dari dokumen dengan bagian
body pada dokumen HTML.
d. H1,H2,H3,H4,H5.
Huruf H merupakan kependekan dari Heading. Tampilan yang dihasilkan jika
menggunakan tag <H> berupa judul dengan ukuran huruf yang besar.
e. HTML
Untuk memberikan keterangan status kepada browser bagian yang bukan HTML
dan bagian yang merupakan dokumen HTML.
f. PRE.
Digunakan untuk memberitahu pada browser bahwa teks yang akan ditampilkan
sudah diformat atau disusun sesuai dengan bentuk aslinya.
g. I.
Merupakan kependekan dari Italic. Huruf yang dihasilkan akan ditulis dengan
cetak miring.
h. B.
Merupakan kependekan dari Bold atau cetak tebal. Penggunaannya hampir sama
dengan tag <B>.
i. DL.
didefinisikan.
j. DT.
Digunakan untuk mendefinisikan teks yang sudah terdapat pada deklarasi tag
<DL>
k. UL.
Menandakan awal dari sebuah list atau daftar item. Penggunaan tag <UL> harus
diikuti dengan penggunaan tag <LI>.
l. LI.
Digunakan setelah tag <UL>, tag <LI> berfungsi untuk mendefinisikan item dari
sebuah list.
m. HR.
Merupakan kependekan dari Horizontal Rule yang berfungsi untuk menggambar
sebuah garis mendatar.
n. BR.
Berfungsi untuk menyisipkan sebuah garis baru.
o. P.
Menandakan awal dari sebuah paragraf pada dokumen HTML.
p. IMG.
Digunakan untuk menyisipkan sebuah citra atau grafik yang ditampilkan dalam
bentuk sebuah baris dokumen.
q. HREF.
Merupakan kependekan dari Hypertext Reference. Tag HREF digunakan untuk
r. ISINDEX.
Dapat digunakan untuk mengirimkan informasi dalam bentuk sebuah script,
sering digunakan untuk proses pencarian.
Contoh penggunaan tag HTML :
<HTML> <HEAD>
<TITLE>PAGENAME</TITLE> </HEAD>
<BODY BGCOLOR=â#00FFFFâ> <H1>HEADER1<H1>
text or grahphic content<P>
<A HREF=âpage.htmlâ><IMGSRC=âphoto.jpegâ></A> <A HREF=âpage.htmlâ><IMGSRC=âphoto.jpegâ></A><BR> </BODY>
<HR>
<ADDRESS> YOURNAME<BR> YOURPHONE<BR> Fax : YOURFAX<BR> YOURADDRESS<BR>
<A HREF=âmailto:YOURMAILâ>YOURMAIL</A><BR> <A HREF=âindex.htmlâ>Home Page</A><BR>
(C) 1999 YOURNAME </ADDRESS>
[image:34.612.107.549.179.673.2]</HTML>
Semakin bertambahnya orang menggunakan dokumen HTML untuk berbagai
keperluan menjadikan HTML sebagai salah satu kebutuhan utama dalam
menampilkan informasi. Untuk itu diperlukan beberapa fasilitas tambahan yang dapat
menangani beberapa tugas yang tidak terdapat pada HTML versi sebelumnya. Pada
HTML 3.2 terdapat beberapa fasilitas baru yang menghasilkan tampilan informasi
yang lebih menarik. Fasilitas-fasilitas yang baru tersebut adalah sebagai berikut :
a. Tabel.
Tabel digunakan untuk menampilkan informasi yang hasilnya disajikan dalam
susunan baris dan kolom. Tag-tag yang digunakan dalam membuat tabel adalah
sebagai berikut:
a.1. TABLE.
Untuk menandakan awal dari sebuah tabel. Atribut-atribut yang digunakan
pada tag <TABLE> adalh sebagai berikut :
a.1.1. HEIGHT.
Nilai yang diberikan dapat berupa angka atau prosentase. Atribut
HEIGHT berfungsi untuk mengatur tinggi dari sebuah tabel.
a.1.2. WIDTH .
Seperti attribut HEIGHT, atribut WIDTH dapat mempunyai nilai
berupa prosentase atau jumlah pixel.
a.1.3. BORDER
Menentukan lebar tepi batas dari sebuah tabel.
a.2. TR
[image:35.612.93.536.395.617.2]a.3. TH.
[image:36.612.101.535.383.612.2]Tag <TH> digunakan untuk memberikan judul atau keterangan pada sebuah
tabel. Judul tabel dapat diletakkan pada setiap baris. Atribut-atribut yang dapat
mempengaruhi tampilan yang dihasilkan adalah sebagai berikut :
a.3.1. COLSPAN.
Berfungsi menggabungkan beberapa kolom untuk ditampilkan dalam
satu kolom.
a.3.2. ROWSPAN.
Berfungsi menggabungkan beberapa baris untuk ditampilkan dalam
satu baris.
a.4. TD
Memberikan data untuk setiap sel pada sebuah tabel. Attribut-Attribut yang
dapat digunakan adalah sebagai berikut :
a.4.1. ALIGN
Atribut ALIGN digunakan untuk menampilkan data atau teks rata
kanan, rata kiri atau rata tengah secara mendatar.
a.4.2. VALIGN
Atribut VALIGN hampir sama dengan atribut ALIGN, perbedaannya
attribut menampilkan teks rata pada sumbu tegak.
Setelah mengetahui beberapa tag dan atribut yang dapat digunakan untuk
membuat sebuah tabel, di bawah ini akan diberikan contoh dan tampilan penggunaan
sebuah tabel dalam dokumen HTML.
<TITLE>Example of table feature</TITLE> </HEAD>
<BODY>
<TABLE BORDER=3> <TR>
<TH COLSPAN=3> Time for a Nearest Neighbour Search </TH><P>
<TR><TH>Machine</TH><TH>32768 Nodes</TH><TH>65536 Nodes</TH><P> <TR><TD>MM32K</TD><TD>2.2 msec</TD><TD>3.1 msec<BR></TH></TR> <TR><TD>i486</TD><TD>350 msec</TD><TD>700 msec<BR></TH></TR> <TR><TD>MIPS</TD><TD>970 msec</TD><TD>1800 msec<BR></TH></TR> <TR><TD>Alpha</TD><TD>81 msec</TD><TD>177 msec<BR></TH></TR> <TR><TD>Sparc</TD><TD>410 msec</TD><TD>820 msec<BR></TH></TR> </TABLE>
[image:37.612.100.534.89.599.2]</BODY> </HTML>
Gambar 2.4. Tampilan contoh penggunaan tabel pada dokumen HTML
b. FRAME.
Fsilitas frame pertama kali diperkenalkan oleh browser yang yang diproduksi oleh
Netscape. Dengan Frame ini sebuah dokumen dapat ditampilkan menjadi
beberapa bagian di dalam satu layar. Susunan dan tag yang digunakan untuk
membuat frame adalah sebagai berikut :
b.1.FRAMESET.
Mendeklarasikan sebuah group frame baru. Frame dapat disajikan dalam
mendefinisikan sebuah frame dapat digunakan dengan membagi layar dalam
bentuk prosentase atau jumlah pixel.
b.2.FRAME SRC.
Dokumen yang akan ditampilkan pada salah satu bagian sebuah frame.
Format dari dokumen yang akan ditampilkan adalah dalam bentuk dokumen
HTML.
b.3.NOFRAME.
Tag <NOFRAME> digunakan untuk menampilkan informasi pada browser
yang tidak mendukung fasilitas frame.
Di bawah ini akan diberikan potongan dokumen HTML yang menggunakan fasilitas
frame dan tampilan yang dihasilkan.
<html> <head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1"> <title>frame2</title>
</head>
<body bgcolor="#FFFFFF">
<p>This will Appear in Right Row</p> </body>
Gambar 2.5. Contoh penggunaan frame
c. FORM.
Salah satu fasilitas yang disediakan oleh HTML 3.2 untuk dapat berinteraksi
dengan sebuah host atau web server adalah fasilitas form atau yang sering disebut
dengan FILL-IN-FORM. Form pada HTML menyediakan berbagai macam jenis
kontrol masukan seperti teks input, radio button, check box, dan command button.
Terdapat beberapa tag yang digunakan untuk membuat form pada dokumen
HTML.
c.1. FORM.
Tag <FORM> menentukan awal dan akhir dari sebuah form pada dokumen
HTML. Atribut yang disertakan pada tag <FORM> adalah sebagai berikut :
c.1.1. ACTION.
Menentukan sebuah URL yang dijadikan sebagai rujukan jika
sebuah form akan dikirimkan. Atribut ACTION harus disertakan
pada setiap form dalam dokumen HTML.
c.2.2. METHOD.
Protocol HTTP menyediakan beberapa metode yang dapat
digunakan untuk meminta sebuah proses mengambil data pada web
server. Metode-metode yang disediakan adalah GET, PUT, POST
dan HEAD.
c.2. INPUT.
Menyisipkan sebuah variabel yang akan diproses bersamaan pada saat
dan atribut. Penggunaan atribut yang berbeda akan memberikan bentuk
masukan yang berbeda juga. Jenis kontrol masukan yang disediakan oleh
tag <INPUT> adalah sebagai berikut :
c.2.1. CHECKBOX.
Checkbox adalah jenis kontrol masukan yang memungkinkan
untuk memberikan nilai lebih dari satu pada suatu variabel.
c.2.2. RADIO.
Seperti pada checkbox , radio button merupakan sebuah pilihan
yang berbentuk ganda. Akan tetapi yang membedakan antara
check box dengan radio button adalah jika satu pilihan sudah
dipenuhi, maka pilihan yang lain tidak dapat dipilih.
c.2.3. TEXT.
Sebuah masukan yang digunakan untuk memberikan nilai pada
sebuah variabel dilakukan dengan mengetikkan karakter pada
tempat yang telah disediakan.
c.2.4. HIDDEN.
Atribut HIDDEN digunakan jika suatu nilai variabel yang akan
dikirimkan ke web server tidak ingin ditampilkan pada layar
monitor.
c.2.5. PASSWORD.
Atribut password sama halnya dengan atribut text. Perbedaannya
terletak pada tampilan yang dihasilkan. Jika attribut PASSWORD
berupa tanda bintang.
c.2.6. RESET.
Digunakan untuk memberikan nilai kosong kepada semua variabel
yang terdapat pada form di dalam dokumen HTML.
c.2.7. SUBMIT.
Bentuk dari attribut SUBMIT adalah sebuah tombol. Jika tombol
tersebut ditekan maka sebuah form beserta dengan semua variabel
yang terdapat di dalamnya akan dikirimkan ke dalam sebuah web
server.
c.3. SELECT.
Bentuk masukan yang dihasilkan adalah sebuah list box. Biasanya di dalam
tag <SELECT> selalu terdapat tag <OPTION> yang bertujuan untuk
memberikan nilai dari item-item yang terdapat pada sebuah list box. Attribut
yang digunakan untuk membuat sebuah list box adalah sebagai berikut :
c.3.1. MULTIPLE.
Menentukan banyaknya item yang akan ditampilkan dalam sebuah
list box .
c.3.2. NAME.
Nama variabel dari list box. Atribut NAME harus dicantumkan.
c.3.3. SIZE.
Menentukan ukuran dari list box.
c.4. TEXTAREA.
berupa text yang lebih dari satu baris. Untuk mendeklarasikan sebuah text
area diperlukan tiga buah atribut yang harus selalu ada. Attribut-attribut
yang digunakan adalah sebagai berikut :
c.4.1. COLS.
Menentukan besar kolom dari sebuah text area.
c.4.2. ROWS.
Menentukan lebar baris dari sebuah taext area.
c.4.3. NAME.
Memberikan nama dari sebuah tag <INPUT>.
Setelah mengetahui beberapa bentuk masukan dan atribut yang digunakan
untuk membuat sebuah kontrol masukan, di bawah ini akan diberikan potongan
program dan tampilan yang dihasilkan dari penggunaan sebuah form.
<HEAD> <HTML>
<TITLE>Example of form</TITLE> </HEAD>
<body>
<form action=â/cgi-bin/sampleâ method=âpostâ> <center>
<table width=7,5% cellpadding=8 border=2> <tr><td align=âcenterâ colspan=5>
<font size+1>t</font>ravel planning service</td></tr> <td align=âleftâ colspan=2>
What brochure would you like? <br> (check all that apply)
<blockquote>
<input nameâvaclocâ type=âcheckboxâ value=âbahamasâ>Bahamas<br> <input nameâvaclocâ type=âcheckboxâ value=âhonoluluâ>Honolulu<br> <input nameâvaclocâ type=âcheckboxâ value=âlas vegasâ>Las Vegas<br> <input nameâvaclocâ type=âcheckboxâ value=âhobokenâ>Hoboken<br> <blockquote></td>
<td valign=âtopâ align=ârightâ colspan=3> <pre>
Password : <input name=âpasswordâ type=âpasswordâ rows=1 maxlegth=10 sizeâ10â>
</pre></td> </tr>
<tr align=âcenterâ><!- -Bottom line - -> <td width=28%>Weeks of vacation :</td>
<td width=18%><input name=âvacwksâ type=âradioâ value=â1â>1</td> <td width=18%><input name=âvacwksâ type=âradioâ value=â2â>2</td> <td width=18%><input name=âvacwksâ type=âradioâ value=â3â>3</td> <td width=18%><input name=âvacwksâ type=âradioâ value=â4â>4</td> </tr>
</table>
<input type=âsubmitâ value=âsend this requestâ> <input type=âresetâ value=âClear formâ>
[image:43.612.104.531.82.607.2]</center> </form> </body> </html>
BAB III
PERANCANGAN DAN PEMBUATAN SISTEM
3.1. Gambaran umum sistem.
Program aplikasi serbaguna berbentuk web untuk administrasi server dan
jaringan yang menggunakan sistem operasi unix/linux adalah sebuah program
aplikasi yang berfungsi untuk membantu para sistem administrator sistem dan
jaringan dalam melaksanakan tugas mereka melakukan proses administrasi sistem
dan jaringan. Program ini dapat dijalankan dengan menggunakan sebuah browser.
Client dan server berkomunikasi dengan menggunakan sebuah âbahasaâ (protocol)
yang disebut HTTP.
Web browser adalah contoh dari sebuah web client, sedangkan sebuah
remote machine yang di dalamnya berisi dokumen yang akan diminta dinamakan
web server.
Server bukan sebuah hardware melainkan sebuah program yang berjalan
dalam sebuah komputer, web server mendengarkan (listen) pada sebuah port dalam
suatu jaringan (network), dan menunggu sampai clients meminta melalukan
transaksi melalui HTTP protocol. Setelah merespons request dari client, browser
akan menampilkan data-data yang relevan yang telah dikirim oleh server.
Pada saat server melalukan proses Initialisasi setiap kali server melakukan
proses booting program aplikasi akan langsung dijalankan.
initsupp=`grep "^os_support=" $wadir/init/module.info | sed -e 's/os_support=//g' | grep $os_type`
atboot=0
if [ "$initsupp" != "" ]; then
printf "Start Linux-admin at boot time (y/n): " read atbootyn
if [ "$atbootyn" = "y" -o "$atbootyn" = "Y" ]; then atboot=1
fi else
echo " Linux-admin does not support being started at boot time on your system."
fi
makeboot=$atboot
3.2. Perancangan Data.
Untuk melakukan initialisasi terhadap socket, perlu dibuat sebuah input data
sebagai masukan dari user.
Data keterangan
Config_dir Untuk meletakkan configurasi directory
Perldef Memberikan keterangan tentang letak directory perl
Real_os_type Nama sistem operasi
Real_os_version Versi sistem operasi
Port Nomer port yang digunakan
Login Input data login
Passw Input data password
[image:45.612.105.531.77.532.2]Host Nama host
Tabel 3.1. Tabel data Initialisasi
Untuk melakukan penyuntingan terhadap user administrator maka
dibutuhkan data-data yang berisi user administrator, password dan hak akses. Data
tersebut merupakan konfigurasi dari pengguna program admin yang pertama kali.
Perlu untuk dimasukkan pada saat initialisasi karena untuk menggunakan
Data Keterangan
Mods Daftar modul/Task
Ulist Daftar user dari pwfile
PWFILE File berisi user password
Tabel 3.2. Tabel data user administrator
Pada module Schedule Cron Job dibutuhkan data-data yang akan digunakan
untuk menampilkan seluruh cronjob yang terdapat dalam sistem.
Data Keterangan
TAB Daftar seluruh cron job yang dimiliki oleh user
Jlist Daftar seluruh cron job beserta user name dan perintahnya
cron_allow_file Daftar user diterima (allowed)
[image:46.612.100.527.251.503.2]cron_deny_file Daftar user ditolak (denied)
Tabel 3.3. data Cron job
Modul export membutuhkan data yang berisi seluruh export file atau
directory yang ada di dalam sistem untuk digunakan sebagai input untuk proses
editing export.
Data Keterangan
Exp Berisi daftar export
Tabel 3.4. data export
Pada tabel 3.5 merupakan data-data yang akan berfungsi untuk menyimpan
informasi tentang protocol dan service yang terdapat di dalam sistem.
Data Keterangan
Config{service_file} Konfigurasi services dari service file
Config{Inetd_conf_file} Berisi configurasi internet service
Config{protocol_file} Berisi daftar protocols dalam sistem
SERVICES Daftar service
Tabel 3.5. Data service & protocol
Pada modul printer administration diperlukan tempat untuk menyimpan
data-data yang akan digunakan untuk proses edit, delete, maupun create.
Data Keterangan
Prn Menampung nama printer
Jobs Daftar printer Jobs
CAP File princap
[image:47.612.104.528.240.580.2]Plist Daftar semua printer
Tabel 3.6. Data printer
Untuk menunjukkan status file-file maupun direktori tertentu dapat
menggunakan data-data seperti di bawah ini untuk menyimpan informasi dari sistem
tentang status file maupun direktori yang ada dalam sistem.
Data Keterangan
MTAB Daftar mount (/etc/mtab)
FSTAB Daftar filesystem saat booting (/etc/fstab)
Tabel 3.7. Data Mount
Berikut adalah data-data yang diambil dari sistem yang akan digunakan
untuk administrasi dan konfigurasi network .
Data Keterangan
HOTS Daftar hosts dan alamat
IFC Daftar Interface
RESOLV Konfigurasi dns
STATIC Konfigurasi rute statis
Tabel 3.8. Data Network
Untuk melakukan proses administrasi terhadap unix/linux user dibutuhkan
informasi tentang user, group dan password. Untuk menyimpan informasi tersebut
Data Keterangan
Passwd Daftar linux user
Group Daftar linux group
Pam Daftar Password acak
Base uid UID untuk user
Base gid GID untuk group
Tabel 3.9. Data Linux user
3.3. Perancangan Proses.
Sebelum melakukan proses pengiriman dan penerimaan data (HTTP
Interactions), terlebih dahulu dilakukan proses membuka socket. Socket dapat
diibaratkan sebagai chanel pada sebuah radio yang mempunyai
gelombang-gelombang tertentu dalam proses pengiriman dan penerimaan data. Apabila sebuah
socket dibuka dengan âgelombangâ tertentu, maka hanya komputer dengan
âgelombangâ yang sama yang dapat menerima data yang dikirim. Setelah socket
dibuka, maka dialokasikan alamat protokol lokal ke dalamnya. Alamat protokol
terdiri dari kombinasi 32-bit sampai dengan 128-bit alamat internet (IP Address)
ditambah dengan 16-bit nomor port pada protokol TCP dan UDP. Proses
pengalokasian alamat protokol disebut proses BIND. Socket yang telah diaktifkan
dan dialokasikan kemudian bersiap untuk merima data yang dikirim oleh komputer
lain (listen). Pada server, proses ini digunakan untuk menunggu koneksi dari client.
Setiap koneksi ditampung dalam satu antrian dan secara otomatis server akan
mengatur koneksi-koneksi tersebut serta memilih koneksi mana yang benar-benar
komplit dan siap untuk ditanggani (accept). Client yang sudah terkoneksi dapat
Server akan menunggu koneksi terhadap network pada port, ketika client
terhubung dengan port, server akan menerima koneksi tersebut dan kemudian akan
berhubungan dengan client dengan menggunakan protocol yang mereka sepakati
(tcp, http, nntp, smtp, dll).
Server akan menggunakan socket() system call untuk menciptakan socket,
dan bind() call akan menugaskan socket pada port tertentu pada host. Server
kemudian akan menggunakan rutin listen() dan accept() untuk menciptakan
komunikasi pada port. Pada sisi yang lain client juga menggunakan socket() system
call to create socket dan kemudian akan menggunakan connect() call untuk
inisialisasi koneksi yang berasosiasi dengan socket pada remote host tertentu dan
port. Server menggunakan accept() call untuk menerima koneksi yang datang dan
inisialisasi komunikasi dengan client. Client dan server akan menggunakan
sysread() dan syswrite() untuk berkomunikasi pada HTTP sampai transaksi selesai.
Apabila transaksi telah selesai maka baik client maupun server akan menggunakan
close() atau shutdown() untuk mengakhiri koneksi. Proses-proses yang terjadi diatas
akan dijelaskan dalam sebagai berikut:
3.3.1. Proses transaksi http.
Sebelum memasuki proses penerimaan dan pengiriman data yang merupakan
inti dari sistem aplikasi ini, diperlukan beberapa deklarasi awal yang berlaku secara
global atau menyeluruh disemua proses-proses yang ada didalam sistem. Setelah itu
dilakukan inisialisasi terhadap proses dan prosedur yang telah dibuat tersebut
sebagai tanda dimulainya proses pengiriman dan penerimaan data.
Salah satu deklarasi yang perlu didefinisikan adalah terlebih dahulu adalah
socket. Function dari pendeklarasian tersebut adalah sebagai berikut :
$perl -e 'use Socket; socket(FOO, PF_INET, SOCK_STREAM,
getprotobyname("tcp")); setsockopt(FOO, SOL_SOCKET, SO_REUSEADDR, pack("l", 1)); bind(FOO, sockaddr_in($ARGV[0], INADDR_ANY)) || exit(1); exit(0);' $port
if [ $? != "0" ]; then
echo "ERROR: TCP port $port is already in use by another program" echo ""
exit 13
Baik client dan server keduanya sama-sama menggunakan fungsi socket()
untuk menciptakan I/O buffer dalam sistem operasi. Socket() memerlukan
beberapa argumen yang berupa file handle yang berasosiasi dengan socket,
network protocol, dan bagaimana tipe socket, stream-oriented atau
record-oriented. Untuk transaksi HTTP, tipe socket yang digunakan adalah tipe
stream-oriented. Dalam contoh berikut di bawah ini, file handle SH berasosiasi dengan
socket yang baru diciptakan. PF_INET adalah indikasi dari internet protocol,
sedangkan getprotobyname('tcp') merupakan indikasi dari Transmission Control
Protocol (TCP), sedangkan SOCK_STREAM adalah indikasi dari tipe socket
stream-oriented. Bila socket calls gagal maka program akan die() menggunakan
pesan kesalahan (error message) yang terdapat dalam $!. Di bawah adalah
berbagai macam variasi yang biasa digunakan untuk melalukan insialisasi socket:
socket(SH, PF_INET, SOCK_STREAM, getprotobyname("tcp")) || $!;
$proto = getprotobyname('tcp');
socket($h, PF_INET, SOCK_STREAM, getprotobyname("tcp")) || &error("Failed to create socket : $!");
Kemudian socket diinisialisasi (dibuka) sesuai dengan jenis protocol yang
digunakan. Berikut ini adalah inisialisasi socket dengan menggunakan protocol
TCP secara lengkap.
# Open main socket {miniserv.pl}
$proto = getprotobyname('tcp');
socket(MAIN, PF_INET, SOCK_STREAM, $proto) || die "Failed to open main socket : $!";
setsockopt(MAIN, SOL_SOCKET, SO_REUSEADDR, pack("l", 1)); $baddr = $config{"bind"} ? inet_aton($config{"bind"}) : INADDR_ANY; bind(MAIN, sockaddr_in($config{port}, $baddr)) ||
die "Failed to bind port $config{port} : $!"; listen(MAIN, SOMAXCONN);
# Read the HTTP request and headers ($reqline = &read_line()) =~ s/\r|\n//g;
if (!($reqline =~ /^(GET|POST)\s+(.*)\s+HTTP\/1\..$/)) { &http_error(400, "Bad Request");
}
$method = $1; $request_uri = $page = $2; %header = ();
while(1) {
($headline = &read_line()) =~ s/\r|\n//g; if ($headline eq "") { last; }
($headline =~ /^(\S+):\s+(.*)$/) || &http_error(400, "Bad Header"); $header{lc($1)} = $2;
}
if (defined($header{'host'})) {
if ($header{'host'} =~ /^([^:]+):([0-9]+)$/) { $host = $1; } else { $host = $header{'host'}; }
}
if ($page =~ /^([^\?]+)\?(.*)$/) {
# There is some query string information $page = $1;
$querystring = $2; if ($querystring !~ /=/) {
$queryargs = $querystring; $queryargs =~ s/\+/ /g;
$querystring = ""; }
}
b. Membuat koneksi network
Dengan mengunakan fungsi connect() dapat dibuat sebuah hubungan dengan
server dalam sebuah network (network connections) berikut host dan port yang
dikehendaki, dan menyelaraskan (associate) dengan I/O buffer yang telah
diciptakan oleh socket().
$sin = sockaddr_in (80, inet_aton, (âlocalhost.localdomain.comâ)); connect(SH,$sin) || die $!;
Rutin sockaddr_in() menerima sebuah port number sebagai parameter
pertama dan IP address sebaggai parameter kedua. Inet_aton() menerjemahkan
(translates) sebuah hostname string atau sebuah dotted decimal string menjadi
sebuah IP address 32-bit. sockaddr_in mengembalikan struktur data yang datang
melalui fungsi connect(), dari sanalah connect() mampu melakukan proses
koneksi pada sebuah jaringan komputer pada server dan port secara spesifik.
Berikut adalah penerapan fungsi connect() pada aplikasi:
($addr = inet_aton($_[0])) ||
&error("Failed to lookup IP address for $_[0]"); connect($h, sockaddr_in($_[1], $addr)) ||
&error("Failed to connect to $_[0]:$_[1] : $!");
Apabila koneksi terhadap network tersebut sukses, maka nilai yang kembali
adalah true, namun apabila gagal maka nilai false akan diberikan, untuk
setelah connect() untuk menghentikan program dan melaporkan kesalahan.
Fungsi connect() ini hanya dapat digunakan oleh client saja.
# open_socket(host, port, handle) <weblib.pl> sub open_socket
{
local($addr, $h); $h = $_[2];
socket($h, PF_INET, SOCK_STREAM, getprotobyname("tcp")) || &error("Failed to create socket : $!");
($addr = inet_aton($_[0])) ||
&error("Failed to lookup IP address for $_[0]"); connect($h, sockaddr_in($_[1], $addr)) ||
&error("Failed to connect to $_[0]:$_[1] : $!"); select($h); $| =1; select(STDOUT);
}
c. Menulis data pada koneksi network
Untuk menulis file handle (data) yang berasosiasi dengan socket (network
connection), dapat digunakan rutin syswrite(). Parameter pertama merupakan file
handle untuk menulis data, sedang data yang akan ditulis dijadikan parameter
kedua. Sedangkan parameter ketiga adalah panjang data yang akan ditulis.
Syswrite() digunakan oleh client dan server.
$buffer = âLinux Web Administrationâ; syswrite (FH, $buffer, length($buffer)); # sysprint(handle, [string]+)
sub sysprint {
local($str, $fh);
$str = join('', @_[1..$#_]); $fh = $_[0];
syswrite $fh, $str, length($str); }
Untuk membaca data dari sebuah koneksi network dapat digunakan rutin
sysread() fungsi tersebut dapat berjalan baik pada server maupun client sysread()
membaca data dari file handle yang berasosiasi dengan socket tersebut, pada
parameter pertama file handle diberikan untuk menerangkan koneksi yang akan
dibaca. Sedangkan parameter kedua menunjukkan sebuah variabel scalar untuk
menyimpan data yang telah dibaca. Parameter ketiga menunjukkan bytes
maksimum yang akan dibaca dari sebuah koneksi.
Sysread(FH, $buffer, 200); # read at most 200 bytes from FH $buffer = <FH>;
e. Mengakhiri Koneksi
Setelah transaksi selesai (complete), rutin close() akan mengakhiri koneksi
jaringan (closing network connections). Fungsi ini dapat digunakan baik oleh
client maupun server.
close(FH);
f. Mendengarkan port
Fungsi bind() digunakan hanya oleh server. Rutin bind() menyelaraskan
(associate) antara socket buffer dengan port pada perangkat keras (computer).
Apabila port yang dimaksud telah digunakan oleh program lain maka bind() akan
memberikan nilai false (zero). Sockaddr_in() dapat digunakan untuk identifikasi
atau mengenali port untuk bind(). Definisi port dapat berupa variabel dapat juga
ditulis secara langsung. Proses ini dikenal dengan Binding the Port.
bind(MAIN, sockaddr_in($config{port}, $baddr)) || die "Failed to bind port $config{port} : $!";
Socket yang telah diinisialisasi atau diaktifkan, menandai dibukanya jalur
akses ke alamat lokal protokol. Oleh karena itu diperlukan proses untuk
memasuki jalur yang telah disediakan oleh socket tersebut.
Fungsi bind akan sukses atau berhasil dijalankan jika nilai yang dihasilkan
berupa 0 (null) dan bernilai â1 (socket_error) jika tidak berjalan semestinya.
Proses bind akan menspesifikasikan alamat lokal dan port yangg sudah
didefinisikan sebelumnya. Alamat lokal yang tidak didefinisikan secara jelas
(inaddr_any), akan menonaktifkan sistem untuk memilih alamat lokal sampai
adanya koneksi dari socket yang lain. Dengan demikian default alamat lokal
dengan INADDR_ANY sangat effisien dipakai diawal pertama kali socket
diaktifkan.
g. Menunggu koneksi
Fungsi listen() hanya digunakan oleh server untuk menunggu datangnya
koneksi dari client. Fungsi listen() memberitahukan pada sistem operasi bahwa
server siap untuk menerima koneksi jaringan yang akan masuk pada port yang
telah ditentukan. Parameter pertama merupakan file handle pada socket untuk
melakukan proses listen.
listen(MAIN, SOMAXCONN);
h. Menerima Koneksi
menerima datangnya koneksi dari client. Dengan kata lain Accept() berfungsi
untuk menunggu datangnya permintaan (request) pada server. Untuk parameter
accept() menggunakan dua file handle, satu berassosiasi dengan socket sedang
yang lain berassosiasi dengan koneksi network tertentu (specifik network
connections).
# got new connection
$acptaddr = accept(SOCK, MAIN); if (!$acptaddr) { next; }
Proses yang terjadi pada program aplikasi ini akan dikelompokkan berdasar
fungsi-fungsi yang ada dalam program aplikasi.
i. Proses penerimaan data
Pada saat data yang diminta dikirim segera dijalankan proses penerimaan
data. Proses ini merupakan tahap dari sistem untuk menerima koneksi dari socket
lain. Setelah alamat dan port sudah teralokasikan melalui proses bind, dapat
diartikan bahwa socket telah diaktifkan untuk menerima koneksi dari socket lain
serta membuka jalur bagi data-data yang akan memasuki sistem (receive).
# read_line()
# Reads one line from SOCK sub read_line
{
local($idx, $more, $rv); if ($use_ssl) {
while(($idx = index($read_buffer, "\n")) < 0) { # need to read more..
if (!($more = Net::SSLeay::read($ssl_con))) { # end of the data
}
$read_buffer .= $more; }
$rv = substr($read_buffer, 0, $idx+1);
$read_buffer = substr($read_buffer, $idx+1); return $rv;
}
else { return <SOCK>; } }
Fungsi receive form berfungsi sebagai jalur pembuka yang selalu siap
menangani setia