Database Programming Dengan Gambas2 Linux Ubuntu PDF
Database Programming Dengan Gambas2 Linux Ubuntu PDF
P
ucuk dicinta ulam tiba, inilah akan coba mempelajari salah satu
yang dirasakan penulis ketika komponen yang disediakan Gambas
Gambar 1. Startup class,
dikenalkan oleh InfoLINUX tentang untuk pengolahan database, yaitu Constructor, dan Destructor
Gambas pada edisi April 2003 yang lalu. Connection Class.
Karena selama ini penulis telah Connection Class adalah sebuah kelas MyConn = New Connection
mempelajari bahasa Visual Basic dan tak yang digunakan untuk dapat mengakses MyConn.Type= “mysql”
ingin keahlian itu hilang sewaktu database server seperti MySql atau PgSql, MyConn.Host= “localhost”
berpindah ke Linux, akhirnya bertemu yang terdiri dari beberapa Property dan MyConn.Login= “root”
dengan Gambas (Gambas Almost Mean Method seperti terlihat pada Tabel 1. MyConn.Password=””
Basic). Berdasarkan rujukan yang Untuk dapat menggunakan Connection MyConn.Name=”sahabat”
diberikan, penulis langsung mempelajari Class, kita harus mendeklarasikan sebuah
dokumentasi Gambas di situs http:// variabel objek dan merujuk Connection ‘buka koneksi
gambas.sourceforge.net. Class ke variabel tersebut, kemudian MyConn.Open
Salut dan terimakasih untuk Benoit memberi nilai untuk properti-properti yang
Minisini yang telah membuat Gambas diperlukan dan menjalankan metode .Open ‘Tampilkan messagebox bila ada kesalahan
dalam waktu luangnya dan melepasnya untuk membuka koneksi ke database CATCH
dalam bentuk lisensi GPL yang free. server. Setelah koneksi terbentuk, kita Message.error(Error.text)
Gambas memang memiliki kemudahan dapat mengolah data pada satu tabel atau END
Visual Basic dan kekuatan OOP dari Java. lebih dengan menggunakan metode
Dari alamat situs di atas, Anda dapat .Exec(sql_statement). Mengambil Data Tertentu:
mengambil versi terakhir Gambas 0.58. Metode .Exec() akan mengembalikan PUBLIC SUB ambildata()
Penulis menggunakan versi Gambas 0.57 hasil eksekusinya ke sebuah variabel Dim sql AS String
dengan Linux Red Hat 7.3. Proses object bertype Result, variabel tersebut DIM MyRS AS Result
instalasi program cukup mudah, tidak ada boleh dikatakan sebagai variabel object Dim vNama AS String
kendala sama sekali sesuai dengan yang bertipe Recordset di VB. Dim vTelp AS String
petunjuk InfoLINUX edisi April 2003.
Meskipun Gambas masih dalam tahap Contoh program Sql = “select nama, telp from tsahabat
pengembangan, sampai saat ini penulis Koneksi Ke database server MySql: where id = 1”
belum menemukan Bug Program yang PUBLIC MyConn AS Connection MyRS = MyConn.Exec(sql)
signifikan. Ok, tanpa panjang lebar, kita PUBLIC SUB Koneksi()
‘pindahkan data ke variable
Tabel 1. vNama = MyRS!nama
Connection Class vTelp = MyRS!telp
Property KEGUNAAN
.Host String untuk nama komputer / Host (“localhost”) CATCH
.Login String untuk nama user pada MySql (“root”) Message.error(Error.text)
.Password String untuk kata sandi pada MySql (“”) END
.Type String untuk jenis server database (“mysql” / “pgsql”)
.Name String untuk nama database (“sahabat”) Menghapus data tertentu:
Method KEGUNAAN PUBLIC SUB hapusdata()
.Open Membuka Koneksi ke Server Database DIM sql AS String
.Exec Mengeksekusi Perintah SQL DIM MyRS AS Result
MyConn.Open
CATCH
Message.error(Error.text)
END
Gambar 2. Form Gambas untuk Data Gambar 3. Contoh aplikasi database
Message.error(Error.text) Sahabat dengan Gambas
END ambildata
PUBLIC SUB btnTambah_Click() pindahkan
PUBLIC SUB pindahkan() kosongkan isilistbox
vCari = Str(MyRS!id) btnTambah.Enabled = FALSE END
textbox1.text = MyRS!nama END
textbox2.text = MyRS!almt1 PUBLIC SUB btnBatal_Click()
textbox3.text = MyRS!almt2 PUBLIC SUB btnSimpan_Click() DIM sql AS String
textbox4.text = MyRS!telp DIM sql AS String
CATCH vCari = Trim(Left$(listbox1.text,7))
Message.error(Error.text) IF btnTambah.Enabled = FALSE THEN btnTambah.Enabled = TRUE
END sql = “insert into tsahabat sql = “select * from tsahabat where id =
(nama,almt1,almt2,telp) values (‘“ & “ & vCari
PUBLIC SUB isilistbox() textbox1.text & “‘,’” & textbox2.text & “‘,’” MyRS = MyConn.Exec(sql)
DIM i AS Integer & textbox3.text & “‘,’” & textbox4.text & pindahkan
DIM vKode AS String “‘)”
MyRS = MyConn.Exec(sql) CATCH
listbox1.Clear btnTambah.Enabled = TRUE Message.Error(Error.Text)
FOR i = 1 TO MyRS.Count ELSE END
vKode = Space$( 7 - Len(Str(MyRS!id)) sql = “update tsahabat set “
) & Str(MyRS!id) sql = sql & “nama = ‘“ & PRIVATE SUB kosongkan()
listbox1.add(vKode & “ | “ & textbox1.text textbox1.text = “”
MyRS!nama) sql = sql & “‘,almt1 = ‘“ & textbox2.text = “”
MyRS.MoveNext textbox2.text textbox3.text = “”
NEXT sql = sql & “‘,almt2 = ‘“ & textbox4.text = “”
textbox3.text END
CATCH sql = sql & “‘,telp = ‘“ & textbox4.text
Message.error(Error.text) & “‘ where id = “ & vCari PUBLIC SUB _free()
END MyRS = MyConn.Exec(sql) MyConn.Close
ENDIF Message.Info(“Terimakasih..., Salam
PUBLIC SUB listbox1_Click() ambildata Linux”)
DIM sql AS String isilistbox END
‘End of program
vCari = Trim(Left$(listbox1.text,7)) CATCH
Message.Error(Error.Text) Selanjutnya untuk mencoba program,
sql = “select * from tsahabat where id = END Anda dapat menjalankannya dengan
“ & vCari menekan tombol F5. Apabila tidak ada
MyRS = MyConn.Exec(sql) PUBLIC SUB btnHapus_Click() kesalahan yang muncul, akan tampak
pindahkan DIM sql AS String seperti Gambar 3, dan program sudah
dapat Anda kompilasi dengan memilih
CATCH sql = “delete from tsahabat where id = “ menu Project – Compile.
Message.Error(Error.Text) & vCari Tamrin Syah, S.Kom
END MyRS = MyConn.Exec(sql) (tamrin@e-jambi.net)
B
ukan cerita baru kalau orang bersuara. Istilah plug and play benar- Lihatlah OSDL tempat Linus sekarang
menanyakan apakah hardware benar dapat dipercaya! Penulis bahkan bekerja penuh. Lihatlah siapa yang
yang dimiliki dapat dikenali baik hanya perlu memasukkan sebuah disket mendukung OSDL. Lihatlah seberapa
oleh Linux. Bukan cerita baru pula orang berisi driver. Dan semuanya selesai! banyak hacker Linux yang bekerja pada
tidak berani menginstal Linux hanya Betapa mudahnya hidup. perusahaan hardware terkemuka. Dan
karena ketakutan kalau-kalau hardware- Di saat itu, sistem operasi Windows sebagai hasilnya, seberapa sering Anda
nya ternyata belum didukung. Dan benar-benar pujaan. Penulis bahkan membutuhkan driver ketika Anda
sudah cerita lama kalau hal yang satu ini sempat sinis ketika melihat sebuah iklan menambahkan hardware baru?
digunakan oleh para saingan Linux untuk tempel OS/2. Lebih sinis lagi ketika Penulis tidak pernah menambahkan
menjelek-jelekkan Linux. Dan kita tidak beberapa mahasiswa bertandang ke driver tertentu hanya supaya sebuah
akan membiarkan itu terjadi, Sekali lagi, sekolah dan menawarkan Linux. Bahkan, hardware dapat bekerja. VGA card,
tidak akan! saking sinisnya, penulis sempat berjanji sound card, ethernet, dan lain
setia untuk tidak akan menggunakan sebagainya. Apa yang penulis lakukan
Sekilas cerita untuk plug Linux. Alasannya? Karena Windows bisa adalah mencari dukungan kernel
and play plug and play. (umumnya telah ada), melakukan
Beberapa tahun yang lalu, setelah Waktu pun berlalu. Saatnya kuliah kompilasi ulang kernel atau modul kalau
melewati usaha yang cukup rumit, dan meninggalkan kampung halaman. perlu dan meminta kepada Debian agar
akhirnya tibalah seperangkat komputer Tidak lupa komputer pun diangkut. load modul tersebut pada saat boottime.
dengan CPU Intel Pentium 133 MHz di Sampai di Jakarta, penulis pun segera Semua beres. Di penyimpanan CD-ROM
kamar penulis. Masih teringat bahwa memilih Mangga Dua sebagai tempat milik penulis, tidak ada satupun CD-ROM
RAM yang terpasang hanyalah 8 MB. wisata kali pertama. Keliling sana sini, driver dari vendor. Semuanya hanyalah
Dan karena sistem operasi Microsoft akhirnya penulis kembali menemukan CD-ROM data , CD-RW, CD-R kosong,
Windows 95 sangat umum dipakai oleh Linux. Linux lagi , Linux lagi! Dengan dan Debian Woody/Sarge. Kadang-
teman-teman (beberapa sekolah masih pengenalan hardware yang menjijikkan, kadang tentunya ada juga beberapa
berjaya dengan MSDOS 6 dan Microsoft begitulah pemikiran waktu itu. VCD.
Windows 3.1), maka penulis pun segera Setengah tahun kemudian, penulis Linux mungkin belum mengenali
meminjam CD-ROM installer sistem pun mencoba Linux karena kabarnya semua hardware. Akan tetapi, masih
operasi tersebut. Ada satu istilah yang yang cukup santer terdengar, sekadar tegakah seseorang berpendapat bahwa
sangat menarik: pnp atau plug and play. iseng, dan rupanya masih sama juga, Linux tidak ramah dengan hardware?
Teorinya, tancapkan saja hardware Anda kurang ramah dengan hardware. Waduh!
dan hardware tersebut akan langsung Sampai sekarang pun, isu bahwa Linux Pendeteksian hardware
bekerja. Karena ingin menikmati suara kurang ramah dengan hardware masihlah Prinsip pengenalan hardware sebenarnya
dan saat itu tidak memiliki sound card, tedengar. bersumber pada kernel. Pada sistem
maka langkah menghemat uang jajan pun operasi closed source seperti Microsoft
segera dilakukan. Linux dulu dan sekarang Windows, kernel mereka telah dilengkapi
Akhirnya, sebuah sound card pun Kalau ada lirik lagu yang menyatakan dengan berbagai modul (lebih dikenal
nongol di komputer penulis dan rasa bahwa “Aku masih seperti yang dulu”, dengan istilah driver) yang mereka buat
bahagia pun menyelimuti ketika pada maka Linux sepertinya tidak setia-setia sendiri atau disumbangkan oleh vendor
akhirnya game Street Fighter yang amat, tentunya dalam arti yang positif. hardware. Apabila ternyata hardware
menjadi idola saat itu mulai bisa Linux masih setia dengan keandalannya, baru dirilis ketika sistem operasi telah
Interface disco
dirilis ketika kernel Linux tersebut telah
dirilis dan digunakan oleh orang banyak. didukung oleh kernel. Lantas apakah menggunakan Discover. Anda dapat
Apabila vendor tidak menyediakan driver beliau harus berbengong ria untuk men-download Discover di http://
(modul)-nya, maka kita masih punya mencari tahu apa yang harus dilakukan archive.progeny.com/progeny/discover/.
harapan karena sistem rilis bazaar yang agar ethernet tersebut bekerja, karena Bagi pengguna Debian, Anda dapat
dianut oleh komunitas free software ketika ditancapkan ethernet tersebut belum menginstal Discover dengan memberikan
menyebabkan suatu kernel Linux bisa bisa digunakan? perintah:
dirilis dalam tempo yang sangat cepat. Saat ini, beberapa pendeteksi apt-get install discover.
Kita pun dapat menikmati hardware baru. hardware seperti Kudzu (oleh Red Hat),
Rasa-rasanya, kita tidak perlu khawatir. Detect (MandrakeSoft), dan Discover Untuk menjalankan Discover,
Pada dasarnya, ketika Anda (Progeny, berbasis pada Detect) memang berikanlah perintah sebagai berikut:
menggunakan kernel terbaru, maka cukup diandalkan. Secara umum, Kudzu discover
hampir kebanyakan hardware telah sudah sangat memuaskan. Lantas,
didukung. Apabila belum, Anda mungkin bagaimana dengan Discover? Untuk Discover dapat mengenali bus dengan
perlu melakukan kompilasi ulang kernel fleksibilitas, Discover dijalankan pada tipe berikut ini: pci, isa, pcmcia, usb, ide,
atau modul. Untuk hardware, cukup Command Line Interface. Di artikel ini, scsi, parallel, dan serial. Untuk device,
gunakan saja Xserver terbaru. Rasa- kita akan menjadikan Discover jauh lebih Discover dapat mendeteksi bridge,
rasanya semuanya akan beres. Untuk indah dan mudah untuk digunakan. cdrom, ide, scsi, usb, ethernet, modem,
printer, gunakan saja CUPS. Pada saat sound, dan video. Selain itu, Discover
artikel ini ditulis, rekan penulis baru saja Menggunakan discover dapat pula menampilkan informasi
menguji printer Lexmark E323 dan Discover, merujuk ke situsnya, http:// seputar vendor, model, modul kernel,
bekerja dnegan sangat mulus. hackers.progeny.com/discover/, adalah nama device, dan xserver serta modul
program pendeteksi hardware yang untuk xserver. Luar biasa, bukan? Berikut
Deteksi hardware dari sisi menggunakan modul-modul kernel dalam ini adalah beberapa contoh penggunaan
pengguna pendeteksiannya. Discover dapat Anda Discover yang penulis coba di komputer
Permasalahannya, apakah orang yang gunakan untuk mendeteksi hardware di redaksi InfoLINUX.
baru saja menggunakan Linux perlu sibuk sistem Anda. Penulis mencoba Discover
melakukan kompilasi kernel atau modul pada berbagai perangkat yang berbeda, Pendeteksian VGA card:
kernel? Atau perlukan seorang pemula dan secara umum memberikan hasil yang # discover —vendor video
mengutak atik /proc untuk mendapatkan sangat memuaskan. ATI Technologies, Inc.
informasi real time kernel? Atau katakanlah Sebelum kita membuat interface yang
seseorang membeli ethernet X dan tahu ramah dengan Discover, kita akan # discover —model video
persis bahwa ethernet X tersebut telah melihat bagaimana menyenangkannya 3D Rage IIc [264GT2c GV]
IKLAN
Pendeteksian ethernet:
# discover —vendor ethernet
Compaq Computer Corporation
dan lebih memilih nama user lain etc/mtab. Apa yang kita lakukan di sini del
misalnya. Dan disinilah kita akan mungkin bukan cara terbaik. Akan tetapi, }
memeriksannya). Umumnya, baik user dalam sebagian besar kasus, cara seperti
dan group root memiliki id 0. Maka kita ini cukup memadai. Pertama-tama, kita akan memeriksa
mengambil informasinya dari /etc/ user yang menjalankan dan berbagai
passwd. Andaikata group dari root 3. Pembuatan fungsi pembantu prasyarat lain, Setelah itu, kita akan
bukanlah 0, maka kita tidak akan function del() membuat menu untuk program dialog.
mendapatkan apapun juga. { Kemudian, pada interface program
Dengan demikian, kita mengasumsi- rm -rf $TEMP dialog, kita akan mengulang sampai
kan nama dari user root adalah “super rm -rf /tmp/*.disco pengguna memilih tombol cancel. Untuk
user”. Baris terakhir berguna untuk } setiap pilihan yang user tentukan,
memeriksa apakah user yang sedang sebelum melewatkannya ke fungsi lain,
aktif adalah root (super user) atau bukan. Fungsi del tersebut berfungsi untuk kita akan menampilkan informasi tunggu
Fungsi kedua adalah pemeriksaan mempersingkat pengetikan. terlebih dahulu karena proses pende-
ketersediaan program dan status /proc: teksian cukup memakan waktu.
function checkDeps() 4. Pembuatan fungsi utama Setelah fungsi detect() melaporkan
{ function main() hasilnya ke dalam file, maka kita akan
w_discover=$(which discover) { menampilkannya kepada user. Setelah
if [ -z $w_discover ] checkUser itu, kita akan memanggil fungsi
then checkDeps configureDevice untuk memeriksa apakah
echo “I cant find discover. ada yang bisa dilakukan untuk device
Sorry.” tersebut. Load modul kalau ada modul
exit 1 for i in $ALL kernel yang tersedia, atau pembuatan file
fi do konfigurasi X Server yang saat ini belum
MENUITEMS=”$MENUITEMS $i tersedia.
w_dialog=$(which dialog) $i”
if [ -z $w_dialog ] done 5. Fungsi detect()
then function detect()
echo “I cant find dialog. Sorry.” while [ 1 ] {
exit 1 do bridge=”model vendor module”
fi dialog —menu “Select device” cdrom=”model vendor device module”
20 40 10 $MENUITEMS 2>$TEMP ide=”model vendor device module”
m_proc=$(grep -w proc /etc/mtab| tr test $? -eq 1 && break scsi=”model vendor device module”
-d [:space:]) SELECTED=‘cat $TEMP‘ usb=”model vendor device module”
if [ -z $m_proc ] del ethernet=”model vendor module”
then modem=”model vendor device
echo “/proc is not mounted. tput reset module”
Sorry.” tput cup 10 10 sound=”model vendor module”
exit 1 echo -n “Please wait [$SE video=”model vendor xserver xdriver”
fi LECTED detection in progress] ...”
pretest=$(discover $1 2>/dev/null)
echo “Information for $SE if [ -z “$pretest” ]
} LECTED” > $TEMP then
echo >> $TEMP echo -n “[not found] “
Secara umum, kita menggunakan detect $SELECTED echo “NOT FOUND” >> $TEMP
which untuk memeriksa ketersediaan return
program. Untuk itu, Anda dapat saja dialog —textbox $TEMP 20 60 fi
mengatur $PATH. Program-program
yang kita periksa ketersediaannya pun configureDevice $SELECTED echo -n “[found] “
belum lengkap karena kita tidak
memeriksa ketersediaan modprobe yang del case $1 in
akan kita gunakan nanti. Untuk bridge) for i in $bridge
memeriksa apakah /proc di mount atau done do
tidak, kita akan membaca informasi dari / echo -n “$i “
Pemrograman Web
dengan Shell Script
Shell script tidak hanya dapat digunakan administrasi sistem.
Dengan beberapa baris kode shell script, Anda bahkan dapat
menghasilkan aplikasi web yang mengagumkan. Tidak perlu
instal macam-macam software, hanya Apache dan shell yang
menuruti standar POSIX saja yang diperlukan.
S
aat ini, bahasa pemrograman web bahkan dapat membuatnya dalam waktu memiliki permission executable. Secara
semakin menjamur dan semakin yang sangat singkat. default, akseslah aplikasi CGI Anda di
menjanjikan berbagai kemudahan alamat http://<HOST>/cgi-bin/
yang tidak pernah akan terbayang Aplikasi CGI <PROGRAM_ANDA>.
beberapa saat yang lalu. Sebut saja Pada dasarnya, apa yang akan kita buat Sebagai perbandingan, berikut ini
PHP. Bahasa yang satu ini, setidaknya adalah aplikasi CGI. Bicara teori, aplikasi adalah contoh aplikasi dalam beberapa
menurut penulis, sangat menyenangkan CGI dapat dibangun dengan bahasa bahasa.
untuk digunakan dalam pemrograman apapun juga, selama bahasa tersebut
web. Situs-situs web di dunia juga dapat menampilkan output. Dan boleh Bahasa C
banyak yang mengandalkan bahasa dikatakan, hampir semua bahasa #include <stdio.h>
yang satu ini. Belum lagi aplikasi- pemrograman tentunya dapat
aplikasi siap pakai lain yang dibuat menampilkan output. Dan apapun int main(void)
dengan PHP. bahasa favorit Anda, Anda dapat {
Web hosting pun tidak mau kalah. membuat aplikasi web dengan mudah. printf(“Content-type: text/plain”);
Dukungan PHP jarang sekali absen dalam Walau alangkah baiknya apabila bahasa printf(“\n\n”);
layanan mereka. Sebuah fenomena yang yang Anda gunakan memiliki fungsi printf(“Hello World”);
luar biasa. Anda tidak suka PHP? Baik. pemrosesan string yang cukup baik. Perl return 0;
Masih ada JSP. Penggemar Java akan atau Python adalah contoh yang baik }
berbahagia sekali dengan alat bantu yang dalam pemrosesan string. Shell script
satu ini. Kemudian, pengguna Python dengan tool-tool pendukung seperti awk Lakukanlah kompilasi dan akseslah
mungkin akan berbahagia dengan Zope, akan sangat membantu. lewat web browser Anda. Maka Anda
termasuk penulis. Secara umum, Anda perlu mencetak telah sukses membuat aplikasi CGI
Baiklah, sekarang coba kita simak header tertentu untuk dikenal sebagai dengan bahasa C.
beberapa hal berikut. Anda butuh untuk aplikasi CGI. Untuk menampilkan output
menampilkan informasi sistem via web dalam format hypertext, Anda akan Bahasa PERL
browser. Anda mungkin butuh untuk mencetak header berikut ini: #!/usr/bin/perl
menyimpan informasi pengunjung. Anda Content-type: text/html
mungkin perlu menampilkan isi berbagai <baris kosong> print “Content-type: text/plain”;
file di sistem via web browser. Atau print “\n\n”;
Anda ingin menyulap berbagai tool Sementara, untuk menampilkan print “Hello World”;
sistem menjadi aplikasi Internet. output berupa teks biasa, Anda akan
Lantas, apakah untuk tugas-tugas mencetak header berikut ini: - bahasa python
seperti itu, kita perlu menginstal PHP, Content-type: text/plain #!/usr/bin/python
atau menginstal JSP, atau menginstal <baris kosong>
Zope? Menggunakan PHP mungkin bisa print “Content-type: text/plain”
saja. Akan tetapi, kalau Anda sering Copy-kan program yang Anda buat print “\n”
berkutat dengan shell script, kenapa di direktori CGI Apache (umumnya print “Hello World”
tidak menggunakan shell script saja? direktori cgi-bin di instalasi Apache
Tidak ada software tambahan yang Anda. Untuk Debian, direktori CGI - shell script
perlu diinstal. Dan yang penting, untuk terletak di /usr/lib/cgi-bin). Jangan lupa #!/bin/sh
tugas-tugas tersebut di atas, Anda untuk memastikan program Anda
Informasi internal web server Program x2web
Program x2web sedang menampilkan daftar proses Statistik pengunjung
H
ampir semua penikmat musik di tab Effects/General Plugins. Kemudian, di Kita memiliki dua field dengan
Linux pasti mengenal XMMS. bagian bawah tab tersebut, pilihlah pemisah field adalah tiga buah tanda titik
Wajar adanya karena XMMS General plugin Song Change, dan kliklah dua (:::). Field <jumlah_didengarkan>
menawarkan kemiripan yang luar biasa tombol Configure. Jangan lupa untuk akan selalu ditambahkan ketika lagu yang
dengan Winamp, salah satu pemutar mengaktifkan pilihan Enable plugin sama diputar kembali. Dengan demikian,
audio dan video paling terkenal di dunia sesudahnya. Sebuah window dengan kita memiliki entri yang unik di dalam
ini. Selain itu, tentunya XMMS pun judul Song Change Configuration akan database tersebut. Penampilan datanya,
sangat andal untuk digunakan. terbuka untuk Anda. Di bagian song baik ke console, ataupun ke web, akan
Untuk koleksi musik, hampir semua change, Anda akan menjumpai sebuah menjadi sangat mudah.
penikmat musik mengoleksi musik- input box di mana perintah shell script
musiknya baik secara manual ataupun dapat diberikan begitu pergantian lagu Cara kerja program
menggunakan program pengatur dan terjadi. Program yang akan kita bangun adalah
pendata lagu. Penulis sendiri Apa yang akan kita lakukan adalah program shell script dengan sedikit
mengaturnya secara manual. mencatat informasi lagu tersebut. penggunaan awk. Kita akan memberikan
Dari pengalaman penulis sebagai Sebagai contoh, pemberian perintah: nama xmmsstat untuk program ini.
penikmat musik blues dan lagu-lagu echo “%f” >> ~/xmms.log Selain dapat menampilkan laporan di
lama, semua lagu yang dimasukkan di console, program juga siap menjadi
dalam playlist hanya akan didengarkan akan mengisi file xmms.log di home aplikasi CGI dan dapat menampilkan
saja. Akan tetapi, terkadang ada lagu directory Anda dengan semua nama file laporan di web.
yang dalam situasi dan kondisi tertentu lagu yang telah Anda dengarkan. Apa Apa yang pertama-tama kita periksa
menjadi sangat menarik untuk didengar saja selain nama file yang bisa adalah variabel $QUERY_STRING.
sehingga didengar berulang-ulang. dimasukkan? Berikut ini adalah daftar Apabila variabel ini di-set atau bukan
Beberapa saat yang lalu, penulis merasa selengkapnya: merupakan string kosong, maka kita akan
ingin mengetahui lagu-lagu apa aja yang % F – Frekuensi (dalam hertz) menganggapnya aplikasi CGI dan akan
sebenarnya paling sering di dengarkan. %c – Jumlah channel memanggil fungsi yang bersesuaian
Dan tentu saja juga lagu yang paling %f – Nama file dengan path untuk menampilkan laporan di web.
jarang didengarkan. Suatu hari, lagu-lagu % l – panjang lagu dalam milidetik Apabila tidak ada variabel
yang paling jarang didengarkan akan % n – Nama lagu $QUERY_STRING, maka kita akan
menghilang dari harddisk. %r – Rating lagu memeriksa keberadaan parameter pertama
% s – Nama lagu pada program. Apabila tidak ada
Song Change %t – Posisi dalam playlist
XMMS sendiri sebenarnya menyediakan
sarana bagi kita untuk mencatat lagu-lagu Artikel ini akan memfokuskan pada
apa saja yang telah kita dengarkan. Hal nama file lagu yang telah didengarkan.
tersebut dapat dilakukan dengan
mencatatkan nama file lagu atau judul Struktur data
lagu setiap kali terjadi pergantian lagu. Karena kita akan mengurutkan lagu-lagu
Dengan plug-in song change, semua hal mana saja yang paling sering didengar
tersebut dapat dilakukan dengan mudah. sampai yang paling jarang didengar,
Bukalah XMMS dan bukalah window maka kita tidak dapat memasukkan lagu-
Preferences (bisa Anda lakukan dengan lagu apa saja yang telah kita dengar
menekan kombinasi tombol CTRL+p). begitu saja ke dalam suatu file.
Masih di window Preferences, pilihlah Alasannya, kita perlu menambahkan Window Preferences XMMS
Laporan di web Laporan di console
Membangun Manajemen
Modul Kernel yang Ramah
Dengan tool-tool standar seperti bash dan dialog, kita dapat membangun
interface yang ramah untuk manajemen modul kernel. Karena insmod dan
rmmod terkadang merepotkan.
K
ehadiran sistem modul di kernel kernel yang digunakan, kemudian akan informasi versi dan hak cipta. Kemudian,
dalam beberapa hal sangatlah mendaftar seluruh modul kernel. Hal kita juga perlu untuk membuat file
membantu kita. Dengan mudah tersebut bisa didapat menggunakan sementara yang dibutuhkan oleh
kita dapat menambahkan apa yang program uname dan ls. Kemudian, program dialog. Berikut ini adalah
dibutuhkan oleh kernel maupun dengan program dialog, kita akan beberapa variabelnya:
mengurangi apa yang sudah tidak membuat navigasi modul per direktori. TEMP=/tmp/$$.mymodconf
dibutuhkan lagi. Kernel tidak lagi menjadi Dalam artian, pengguna dapat masuk VERSION=0.1a
sebesar raksasa dan begitu rakus. ke suatu direktori yang dapat COPYRIGHT=”(c) Noprianto, June 2003.
Walau demikian, terkadang proses mengandung direktori lain atau modul GPL”
memasukkan atau menghapus modul kernel. Apabila pengguna memilih
kernel dapat menjadi cukup merepotkan. suatu direktori, maka tindakan default Setelah itu, kita akan mencoba untuk
Salah satu contohnya adalah ketika Anda dari program adalah masuk ke direktori mendapatkan versi kernel dan direktori
ingin memasukkan modul dengan fungsi tersebut dan mandaftar seluruh modul kernel. Setelah itu, apa yang kita
tertentu, namun nama modulnya tidak modulnya. Dalam mendaftar seluruh dapatkan akan diasosiasikan ke variabel-
Anda ketahui. Anda pun segera menuju modul tersebut, program akan mencoba variabel berikut:
direktori /lib/modules/ mengetahui apakah modul tersebut KERNEL_VERSION=$(uname -r)
<VERSI_KERNEL> dan mulai mencari- telah dimasukkan ke dalam kernel. Kita KERNEL_MODULES_DIR=/lib/modules/
cari. Karena modul kernel diletakkan akan menginformasikan hal tersebut $KERNEL_VERSION/kernel/
dalam berbagai direktori, maka kepada pengguna. selected=””
navigasinya akan cukup merepotkan. Apabila pengguna memilih suatu WORKING=$KERNEL_MODULES_DIR/
Menggunakan utiliti seperti Midnight modul, maka tindakan default dari $selected
Commander mungkin bisa membantu. program adalah memeriksa apakah
Pada distro Debian, sebuah program modul tersebut telah dimasukkan ke Variabel KERNEL_VERSION
dengan nama modconf sangatlah dalam kernel. Apabila modul tersebut dimaksudkan sebagai versi kernel yang
bermanfaat untuk melakukan navigasi telah dimasukkan, maka kita akan sedang digunakan. Versi kernel perlu
pada modul-modul kernel dan sekaligus menanyakan apakah pengguna akan didapatkan untuk mengetahui lokasi
melakukan manajemen sederhana. menghapus modul tersebut dari kernel. direktori modul kernel yang disimpan
Dengan menjalankan modconf, Anda Apabila modul tersebut belum dalam variabel KERNEL_MODULES_
akan diberikan daftar modul kernel dan dimasukkan ke kernel, maka kita akan DIR.
keterangan apakah modul tersebut telah menanyakan apakah pengguna ingin Variabel selected dimaksudkan untuk
diinstal atau belum. Di program ini pula, memasukkan modul tersebut ke dalam mendapatkan apa yang dipilih oleh
Anda dapat memasukkan atau kernel. pengguna. Variabel selected juga akan
menghapus modul kernel dengan satu Kekurangan utama dari program ini mempengaruhi lokasi direktori kerja kita
dua kali penekanan tombol ENTER. adalah langsung melakukan terminasi yang disimpan dalam variabel WORK-
Siapkan editor teks Anda dan kita (keluar) apabila pengguna menekan ING.
akan segera memulai pekerjaan kita. tombol Cancel. Selanjutnya, untuk memperindah
Berikut ini adalah langkah-langkahnya: Program ini akan kita beri nama program kita, kita akan membuat alias
mymodconf. untuk program dialog berikut agar
1. Fitur program program kita memiliki tampilan yang
Pertama-tama, tentunya kita perlu 2. Membuat beberapa variabel awal seragam:
mengetahui dahulu apa yang akan kita yang dibutuhkan alias dialog=”dialog —backtitle ‘My Kernel
buat. Secara umum, program yang kita Sebagai suatu aplikasi standar, kita akan Module Configurator v$VERSION
bangun mampu untuk mendeteksi versi mendefinisikan beberapa variabel seperti ($KERNEL_VERSION)’”
mymodconf Mendaftar modul dan statusnya
3. Mendefinisikan beberapa fungsi Kita akan membahas baris pertama: Kemudian, kita akan sampai pada
yang diperlukan fungsi berikutnya: getfiles(). Fungsi ini
Berikutnya adalah mendefinisikan fungsi MODULE=‘echo $i | awk -F. ‘{print $1}’‘ akan mendaftar file-file dalam direktori.
yang dibutuhkan dalam program kita. Apabila yang didapatkan adalah file,
Dalam hal ini, kita akan mendefinisikan Baris ini dimaksudkan untuk maka fungsi ini juga akan memeriksa
tiga fungsi: deltemp(), is_installed() dan menghilangkan ekstensi .o dari nama file apakah modul tersebut telah
getfiles(). Masing-masing akan yang diterima sebagai parameter pertama dimasukkan ke dalam kernel. Secara
menghapus file sementara, mengetahui fungsi ini. Dengan menggunakan umum, fungsi ini dimaksudkan untuk
apakah suatu modul telah dimasukkan program awk, kita memisahkan nama file menyusun rangkaian parameter bagi
dalam kernel atau belum dan tersebut dan mengambil bagian program dialog.
mendapatkan file-file dalam direktori pertamanya. Hal ini sejauh ini bekerja, function getfiles()
modul kernel. walau perlu diperhatikan dan diperbaiki {
Kita akan memulai dengan fungsi apabila nama file modul memiliki lebih files2=””
yang paling sederhana: deltemp(). Fungsi dari satu karakter titik. Sejauh ini, nama files=”$(ls $1)”
ini hanya memiliki satu perintah untuk file modul umumnya hanya memiliki satu for i in $files
menghapus file sementara. Fungsi ini karakter titik. do
tidak memerlukan penjelasan lebih lanjut. INSTALLED=‘lsmod | grep -w $MODULE | if [ -d $1/$i ]
function deltemp() wc -l 2>/dev/null‘ then
{ files2=”$files2 $i $i”
rm -rf $TEMP Kemudian, variabel INSTALLED else
} dimaksudkan untuk mengetahui apakah is_installed $i
modul telah dimasukkan ke dalam kernel. if [ $? -eq 0 ]
Berikutnya adalah fungsi is_installed(), Cara ini bahkan lebih berbahaya daripada then
yang berfungsi untuk mengetahui apakah baris sebelumnya. Saran dan kritik files2=”$files2 $i
suatu modul telah dimasukkan ke dalam diharapkan. Untuk mengetahui suatu not-installed”
kernel atau belum. Perlu dicatat, fungsi modul telah dimasukkan ke kernel atau else
ini belumlah sempurna dan terkadang belum, secara sederhana, kita hanya files2=”$files2 $i
mengembalikan hasil yang tidak sesuai. menjalankan perintah lsmod yang akan installed”
Penjelasan fungsi akan diberikan mendaftar modul-modul kernel yang fi
setelahnya. telah dimasukkan. Hasil keluaran tersebut fi
function is_installed() kita saring sesuai dengan nama modul done
{ yang ingin diperiksa. Untuk }
MODULE=‘echo $i | awk -F. ‘{print $1}’‘ meningkatkan akurasi, kita akan
INSTALLED=‘lsmod | grep -w $MODULE memberikan opsi -w pada program grep Baris berikut ini dimaksudkan untuk
| wc -l 2>/dev/null‘ yang berfungsi untuk melakukan mendapatkan file-file dalam direktori yang
return $INSTALLED saringan per kata (dalam beberapa diberikan:
} kondisi, opsi -w ini justru akan files2=””
merepotkan). files=”$(ls $1)”
Konfirmasi instalasi modul Keberhasilan instalasi
Kemudian, kita akan membahas blok kita akan menyusun nilai kembalian then
kode berikut ini: berikut ini: kode
for i in $files files2=”$files2 $i installed” kode
do else
if [ -d $1/$i ] sebaliknya, kita akan menyusun nilai kode
then kembalian berikut ini: kode
files2=”$files2 $i $i” files2=”$files2 $i not- installed” fi
else done
is_installed $i 4. Program utama
if [ $? -eq 0 ] Pada prinsipnya, program utama Selanjutnya, kode-kode apakah yang
then hanyalah berfungsi sebagai navigator harus dimasukkan apabila pengguna
files2=”$files2 $i not- yang akan bekerja terus menerus memilih direktori? Intinya, kode-kode
installed” sampai pengguna menekan tombol tersebut akan masuk ke direktori dan
else cancel. Untuk itu, kita akan meletakkan mendaftar file-file di dalamnya. Dengan
files2=”$files2 $i semua kode dalam blok perulangan demikian, blok while [ 1 ] kita akan
installed” berikut ini: bertambah panjang menjadi berikut:
fi while [ 1 ] while [ 1 ]
fi do do
done kode WORKING=”$WORKING/$selected”
kode
Algoritmanya adalah: done if [ -d $WORKING ]
Untuk setiap file dalam suatu direktori, then
periksalah apakah file tersebut adalah file Hal berikut yang harus diperhatikan getfiles $WORKING
biasa atau direktori. Apabila file tersebut adalah perlakuan ketika pengguna dialog —menu “category:
adalah direktori, maka susunlah nilai memilih suatu file atau direktori. $selected” 20 60 10 $files2 2>
kembalian berikut ini: Tentunya, apabila pengguna memilih $TEMP
files2=”$files2 $i $i” suatu file, maka kita akan memeriksa if [ $? -ne 0 ]
modul tersebut. Apabila pengguna then
Dalam penampilan menu di program memilih direktori, maka kita akan masuk exit 1
dialog, kita butuh memberikan pasangan ke direktori tersebut dan mendaftar else
<nama> <definisi> untuk setiap item semua modulnya. selected=‘cat $TEMP‘
menu. Untuk itulah, kita perlu menyusun Untuk itu, blok while [ 1 ] kita akan deltemp
nilai kembalian tersebut. berkembang menjadi demikian: fi
Akan tetapi, apabila jika file tersebut while [ 1 ] else
adalah sebuah file biasa, maka kita do kode
akan memeriksa apakah modul tersebut WORKING=”$WORKING/$selected” kode
telah dimasukkan ke dalam modul atau fi
belum. Apabila telah dimasukkan, maka if [ -d $WORKING ] done
while [ 1 ]
do
WORKING=”$WORKING/$selected”
if [ -d $WORKING ]
then
getfiles $WORKING
dialog —menu “category:
$selected” 20 60 10 $files2 2>
$TEMP
if [ $? -ne 0 ]
then
exit 1
else
selected=‘cat $TEMP‘
deltemp
fi
else
is_installed $i
if [ $? -eq 0 ]
then
TODO=”install”
else
TODO=”uninstall”
fi
dialog —yesno “$TODO module
P
enyebaran virus melalui e-mail ClamAV juga semakin lama semakin terinstal), yaitu dengan menjalankan
menempati urutan pertama banyak. perintah:
menurut Symantec Security Dalam artikel ini, penulis hanya akan Perl –MCPAN –eshell
Response dengan tiga dari empat Top membahas instalasi ClamAV di Linux
Virus Threat setengah tahun 2003 dengan MTA Postfix. Sedangkan untuk Bila Anda belum pernah mengguna-
pertama ini adalah virus atau worm yang pengguna MTA qmail dan qmail-scanner, kannya, Anda akan diminta untuk
menyebar melalui e-mail. Dengan silakan membaca artikel http:// memasukkan beberapa parameter.
demikian, instalasi antivirus pada mail people.cakraweb.com/~asfik/writings/ Setelah selesai akan keluar prompt seperti
server seharusnya menjadi kewajiban qmail-scanner-clam.html. di bawah:
bagi setiap administrator mail server. cpan>
Harga antivirus komersial yang bisa Persiapan
digunakan pada mail server bervariasi Download ClamAV dari http:// Kemudian pada prompt tuliskan install
dari mulai US$149. Itu pun hitungannya www.clamav.org/stable/index.html. <nama_modul>. Keuntungannya adalah
bervariasi mulai dari per domain, per Anda memerlukan Perl dan Amavis-ng Anda akan memperoleh modul versi
mailbox atau per instalasi, dan harga sebagai interface dari Postfix ke terbaru dan proses instalasinya otomatis,
tersebut belum termasuk biaya untuk ClamAV. Biasanya Perl sudah terinstall termasuk apabila ada modul tambahan
langganan update basis data virus. Harga pada sebuah sistem Linux. Bila belum yang perlu diinstal lebih dahulu.
tersebut akan terasa berat jika terinstal, Perl dapat di-download dari Bila Anda lebih suka mencari modul–
penggunaannya bukan untuk komersial. http://www.perl.org. Download dan modul tersebut sendiri dan
Clam AntiVirus (ClamAV) hadir instal Amavis-ng dari http:// menginstalnya dari rpm, silakan
sebagai solusi baik untuk pengguna www.sourceforge.net/projects/amavis. mencarinya di http://rpmfind.net. Bila
nonkomersial maupun komersial yang Anda juga memerlukan modul–modul Anda lebih suka menggunakan source
memerlukan solusi antivirus yang tidak perl sebagai berikut: file berbentuk tar.gz untuk diinstal
mahal. Sekarang ClamAV terbaru adalah Archive::Tar manual, silakan mencari modul–modul
versi 0.54. Archive::Zip tersebut di http://cpan.perl.org.
ClamAV adalah antivirus yang Compress::Zlib Kemudian agar bisa memindai
dipublikasikan menggunakan lisensi Config::IniFiles attachment terkompres, Amavis-ng juga
GNU GPL2 dan menggunakan basis data Convert::TNEF membutuhkan paket–paket kompresi arc,
virus dari OpenAntiVirus, sebuah Convert::Uulib lha, unarj, unrar, dan zoo.
antivirus yang juga gratis. Akan tetapi, File::Mmagic
berbeda dengan OpenAntiVirus yang IO::Stringy Proses instalasi
ditulis dalam Java, ClamAV ditulis dalam MIME::tools Jika menginstal ClamAV untuk kali
C dan basis datanya secara teratur di- MailTools pertama, Anda perlu membuat user
update. ClamAV juga mampu mendeteksi Libnet account dan group account untuk
virus–virus polymorphic. ClamAV. Kita namakan saja clamav.
ClamAV dapat digunakan di Linux, Modul–modul di atas diperlukan # groupadd clamav
Solaris, FreeBSD, OpenBSD, NetBSD, untuk mengolah e-mail dan memecahnya # useradd -g clamav -s /bin/false -c “Clam
AIX, Mac OS X, Cygwin B20 pada menjadi bagian–bagian yang akan AntiVirus” clamav
berbagai arsitektur seperti Intel, Alpha, diperiksa ClamAV. Untuk menginstalasi # passwd –l clamav
Sparc, Cobalt MIPS, PowerPC, dan RISC modul–modul tersebut, penulis
6000. MTA (Mail Transfer Agent) yang menyarankan untuk menggunakan modul Baris terakhir untuk memastikan
didukung (dan/atau mendukung) perl CPAN (biasanya juga sudah bahwa user clamav terkunci dan account
L
YX adalah salah satu front-end Dapat memasukkan banyak grafik LATEX dalam bentuk ERT (Evil Red
LATEX yang berbasis GUI, yang terutama jenis raster. Text) dengan menekan perintah
dapat dijalankan pada hampir Ukuran gambar bervariasi dan dapat pendek Ctrl+l. Bagaimana LYX
semua platform sistem operasi. LATEX diletakan secara fleksibel. dapat dijadikan sebagai aplikasi DTP
sudah cukup lama dikenal sebagai alat Format yang kompak. akan dibahas tiap-tiap komponen
untuk menata tata letak (layout) buku atau Judul sebagai huruf normal atau DTP pada LYX berikut ini.
majalah yang berkaitan dengan ilmu pasti. sebagai gambar.
Dengan munculnya LYX yang dapat Mendukung huruf kaligrafi, dapat Jenis huruf atau tipografi
dioperasikan secara intuitif, hampir semua dilakukan dengan menggunakan paket Hingga perkembangan saat ini, hampir
bidang dapat memanfaatkan LATEX chancery. semua jenis huruf bisa digunakan di
sebagai alat untuk menata tampilan buku/ Dapat menghasilkan PDF dengan pada DTP-LYX/LATEX. Namun yang
majalah. Sistem desktop publishing (DTP) kualitas yang baik. paling mudah diinstal adalah jenis
digunakan untuk mengedit teks dan huruf Type1. Huruf TrueType di
gambar yang dimasukkan pada suatu LYX sebagai aplikasi DTP Windows dapat juga dikonversi ke
halaman penuh. Jadi, secara prinsip Berbeda dengan program khusus dalam huruf Type1. Banyak software
hampir semua jenis word processor atau aplikasi DTP yang berbasis bingkai gratis/open source yang dapat
document-processor dapat dijadikan salah (frame), LYX/LATEX tidak mempunyai digunakan untuk konversi ini, misalnya
satu komponen masukan dari sistem fasilitas semacam ini. Peletakan bingkai ttf2* (ttf2afm, ttf2bdf, ttf2pfa, ttf2pfb,
DTP. Apa keunggulan LYX pada sisi pada naskah LYX/LATEX ditentukan ttf2pk, ttf2pt1, dan ttf2tfm) yang
aplikasi DTP? oleh definisi pada makro atau paket berbasis CLI atau PfaEdit yang berbasis
LATEX yang bekerja di balik aplikasi yang digunakan. Namun demikian, GUI.
LYX merupakan text-processor yang pengaturan letak bingkai pada suatu Di lingkungan LATEX terdapat cukup
memiliki banyak keunggulan halaman pada program LYX dapat banyak jenis huruf yang sudah terinstal
dibandingkan word processor, di dikontrol secara langsung dengan secara default. Jika ingin
antaranya adalah konsistensi, referensi- menambahkan perintah TEX atau menambahkan jenis huruf pada basis
silang dan penempatan gambar/tabel
secara otomatis, serta penyusunan
pustaka yang konsisten. Konsistensi
tata letak ini disebabkan karena semua
komponen tata letak dikontrol oleh
suatu makro atau paket LATEX. Dengan
kata lain, sekali suatu makro
didefinisikan maka akan didapatkan tata
letak yang sangat konsisten.
Gambar 4. Contoh kartu nama Gambar 5. Contoh majalah
sendiri-sendiri. Format yang terbaik dengan menata letak buku atau majalah franzine yang dibuat oleh Kathryn
untuk dicetak pada printer sebelum dengan dua kolom yang dikombinasi Andersen. Paket ini dapat di-download
dibuatkan plate adalah DVI (device dengan satu kolom. Untuk mendesain dari URL pada referensi di bawah ini.
independent), karena format ini akan tata letak seperti contoh di bawah ini Tata letak majalah tiga kolom dapat
menggunakan resolusi printer secara dibutuhkan beberapa paket LATEX memanfaatkan kombinasi dua kolom
optimum. Berbeda dengan format DVI tambahan, seperti flushend, cuted, ditambah catatan pinggir (marginpar).
yang mengoptimalkan resolusi printer eso-pic, dan graphicx. Paket floatflt, Pada contoh gambar di bawah ini dibuat
saat mencetak, format PS dan PDF fancyhdr, dan color secara default dengan menggunakan tata letak dua-
secara default hanya diset pada sudah didukung oleh LYX. kolom plus catatan pinggir (dicontoh
resolusi 600 dpi. Resolusi ini biasanya Paket floatflt digunakan untuk dari model tata letak majalah Bauen &
diset secara otomatis pada perintah menempatkan gambar mengambang di Wohnen). Paket LATEX yang digunakan
dvips. Format PDF dapat dikatakan antara teks. Untuk menyisipkan gambar telah dijelaskan pada bagian
relatif sama dengan PS. Bedanya hanya dengan paket ini dapat dilakukan sebelumnya.
terletak pada ukuran berkas yang dengan perintah Insert —> Float —>
sangat kecil. Floatflt figure. Paket fancyhdr Rangkuman
Berkas PDF dapat juga dihasilkan digunakan untuk mengontrol header LYX pada prinsipnya dapat digunakan
dengan program pdflatex. Sejauh atau footer pada halaman teks. untuk mendukung aplikasi desktop
pengalaman penulis naskah PDF yang Penggunaan tiap-tiap paket ini dapat publishing (DTP). Untuk menghasilkan
dihasilkan dari program ps2pdf dan dibaca pada dokumentasi dari masing- tata letak yang baik, dibutuhkan
pdflatex mempunyai kualitas yang relatif masing paket ini. beberapa paket tambahan di luar
sama. Penulis sendiri tidak sering paket yang sudah didukung oleh LYX,
memakai program pdflatex, karena ada Kartu nama yaitu bizcard, colortbl, eso-pic,
beberapa grafik tertentu yang tidak Ada dua paket yang dapat digunakan epigraph, graphicx, multicol, overpic,
dapat dikompilasi dengan program ini. untuk mendesain kartu nama dengan sttools dan ticket. Semua paket ini
LYX/LATEX, yaitu bizcard dan ticket. dapat di-download dari CTAN (http://
Contoh tata letak dengan Berbeda dengan paket bizcard yang www.ctan.org/).
LYX/LATEX memang khusus untuk membuat Di samping program LATEX beserta
kartunama, paket ticket dapat juga paket-paketnya, juga dibutuhkan
Brosur digunakan untuk menata letak tiket dan program lain untuk melengkapi LYX/
Mendesain brosur sederhana dengan kartu pin. Kedua paket ini dapat di- LATEX, seperti GIMP/ImageMagick
latar belakang warna atau gambar download secara gratis di CTAN. untuk mengolah gambar raster, Sketch/
sangat mudah dilakukan dengan LYX. Selain kedua paket itu juga dibutuhkan Xfig/Tgif untuk menambahkan sketsa
Paket LATEX yang dibutuhkan untuk paket tambahan untuk membuat atau gambar vektor pada teks, pstricks
mendukung pekerjaan ini misalnya tampilan menjadi labih baik, misalnya dan pdftricks untuk memodifikasi
multicol untuk membuat tiga kolom paket eso-pic dan graphicx atau gambar yang telah disisipkan pada LYX
atau dapat juga menggunakan overpic kalau ingin dibuat dalam format dan juga barangkali dibutuhkan paket
minipage yang lebih fleksibel, eso-pic latar belakang gambar penuh. CMS (Color Management System)
dan graphicx untuk menambah latar untuk mendefinisikan warna supaya
belakang gambar, color dan colortbl Majalah apa yang dilihat di layar sama persis
untuk pewarnaan pada teks dan tabel. Majalah yang kompleks agak sulit dengan apa yang akan dicetak melalui
didesain pakai LYX, namun ada satu printer berwarna.
Ensiklopedia paket yang bisa digunakan untuk I Wayan Warmada
Menata letak ensiklopedia hampir sama mendesain majalah sederhana, yaitu (warmada@nakula.rvs.uni-bielefeld.de)
Menjalankan Program
File di Web
Anda pernah tertarik dengan kemampuan program file? Anda
tertarik dengan kemampuan web server untuk menampilkan
daftar file di web browser? Tertarik membuat aplikasi CGI
untuk menampilkan daftar file dan informasi file-nya?
M
engamati informasi suatu file meminta apache untuk menampilkan membutuhkan waktu. Menggunakan
terkadang dapat menjadi hal daftar tersebut, maka Anda dapat dengan program url encoding dan url decoding
yang menyenangkan. mudah men-download ataupun sekedar yang dibuat oleh Heiner Steven
Menggunakan program file, kita dapat membaca isi file tersebut. Sayang beribu (heiner.steven@odn.de), kita akan
menelanjangi file tersebut dan melihat sayang, Apache tidak akan menampilkan menampilkan informasi internal suatu file
tipenya. Hampir tidak ada file yang luput deskripsi semua file. dalam navigasi ala Apache.
dari kemampuan program file ini. Dengan sebuah shell script sederhana, Aplikasi CGI yang kita buat ini tidak
Sayangnya, sampai saat ini, kebanyakan sebenarnya kemampuan untuk dimaksudkan untuk menggantikan
program seperti Konqueror ataupun bertingkah laku seperti kemampuan Apache dalam menampilkan daftar file
Nautilus lebih senang untuk menampilkan daftar file dan direktori dan direktori. Apa yang kita lakukan
menampilkan tipe suatu file dalam format seperti Apache dapat dibuat asalkan hanyalah menampilkan keluaran dari
singkat dan padat. Hal tersebut dirasa fungsi url encoding dan decoding telah program file untuk file tersebut. Apabila
wajar-wajar saja karena mereka disediakan. Hal tersebut diperlukan file tersebut merupakan suatu direktori,
menawarkan fungsi lain yang jauh lebih karena nama file dapat mengandung maka direktori tersebut akan kita jadikan
kompleks daripada hanya sekadar karakter-karakter yang harus di-encode hyperlink. Berikut ini adalah langkah-
menampilkan keluaran dari program file. dahulu sebelum dikirimkan dan harus di- langkah pembuatannya.
Sementara itu, kemampuan Apache decode ketika akan diproses. Sayangnya,
dalam menampilkan daftar file dan url encoding dan decoding tidak 1. Mendefinisikan beberapa
direktori sangatlah menyenangkan untuk disediakan oleh program-program variabel penting
diamati dan dipelajari. Begitu Anda standar. Membuatnya jelas PROGNAME=”file2web”
VERSION=”0.1a”
COPYRIGHT=”$PROGNAME $VERSION, (c)
Noprianto, July 2003. GPL.”
COPYRIGHT2=”Urlencode and Urldecode by
Heiner Steven (heiner.steven@odn.de)”
URLENCODE=/usr/lib/cgi-bin/urlencode
URLDECODE=/usr/lib/cgi-bin/urldecode
2. Mendefinisikan fungsi-fungsi
tambahan
function signature()
{
echo “$COPYRIGHT”
echo “$COPYRIGHT2”
echo “$SERVER_SIGNATURE”
}
function urlencode()
File2web dan informasi file Antisipasi untuk direktori yang tidak eksis
IKLAN