• Tidak ada hasil yang ditemukan

TA : Rancang Bangun Program Aplikasi Serbaguna Berbentuk Web Untuk Administrasi Sistem dan Jaringan Pada Server Yang Menggunakan Sistem Operasi Unix/Linux.

N/A
N/A
Protected

Academic year: 2017

Membagikan "TA : Rancang Bangun Program Aplikasi Serbaguna Berbentuk Web Untuk Administrasi Sistem dan Jaringan Pada Server Yang Menggunakan Sistem Operasi Unix/Linux."

Copied!
121
0
0

Teks penuh

(1)

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

(2)

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.

(3)
(4)

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

(5)

ix

3.4. Structure Chart . . . . . . . 71

3.5. Flow Chart . . . . . . 71

BAB IV. PENGUJIAN SISTEM . . . 73

BAB V. PENUTUP . . . 103

5.1. Kesimpulan . . . 103

(6)
(7)

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

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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 :

(16)

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 {

(17)

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” }

(18)

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

(19)

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

(20)

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

(21)

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

(22)

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.

(23)

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

(24)

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

(25)

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.

(26)

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

(27)

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

(28)

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

(29)

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

(30)

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,

(31)

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

(32)

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.

(33)

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

(34)

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>

(35)

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]
(36)

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.

(37)

<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

(38)

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>

(39)

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

(40)

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

(41)

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.

(42)

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>

(43)

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>

(44)

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.

(45)

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

(46)

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

(47)

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

(48)

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

(49)

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.

(50)

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');

(51)

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;

(52)

$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

(53)

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); }

(54)

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.

(55)

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

(56)

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

(57)

}

$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

Gambar

Gambar 2.3. Contoh halaman HTML
Tabel digunakan untuk menampilkan informasi yang hasilnya disajikan dalam
tabel. Judul tabel dapat diletakkan pada setiap baris. Atribut-atribut yang dapat
Gambar 2.4. Tampilan contoh penggunaan tabel pada dokumen HTML
+7

Referensi

Dokumen terkait

Hancurkan Hancurkan semua semua data yang data yang berharga berharga , , jika jika sudah sudah tidak tidak diperlukan diperlukan (-. ( termasuk termasuk delete delete dari

Konsumen tidak lagi hanya memperhatikan harga barang akan tetapi juga menilai suatu barang dari kualitas barang tersebut, sehingga perusahaan harus berusaha dengan keras untuk

Sedangkan hasil penelitian ini tidak konsisten dengan penelitian yang dilakukan oleh Darma (2004) yang menyatakan bahwa variabel komitmen organisasi tidak dapat

Media dakwah ini bukan saja sebagai alat bantu dakwah namun bila ditinjau dakwah sebagai suatu sistem yang mana sistem ini terdiri dari beberapa komponen (unsur) yang

Dari kegiatan ini masyarakat Pekon Tambahrejo yang memiliki usaha home industry dapat memasarkan produk dengan cepat, tepat dan aman sehingga pelaku usaha dapat memberikan

Penggunaan tawas sebagai penjernih air sudah biasa dilakukan masyarakat Indonesia sejak karena disamping murah cara penerapannya juga mudah, tinggal ambil tawas lalu dimasukkan

&#34;atiluwih yang merupakan objek wisata di Bali yang memiliki cirikhas alam pedesaan yang sangat indah. Sawah berundak atau terasering &#34;atiluwih Bali adalah salah

Campurkan bumbu halus, lalu garam, perisa makanan, dan daun kunyit ke dalam tepung aduk hingga rata2. Masukkan air ke dalam adonan tepung dan