Anda di halaman 1dari 30

Tutorial GTK

GTK+

Theme untuk GTK+ 2


Adanya theme memungkinkan Anda melakukan kustomisasi tampilan sesuai
dengan selera atau keinginan.

S
ebagai toolkit grafis standar di berbagai 2.2.0 dengan ukuran tarbal source code sebesar
distro, GTK+ pun dilengkapi dengan 450KB. Anda bisa men-download-nya dari situs
kemampuan theming. Versi teranyarnya, FTP untuk GNOME, misalnya di http://
GTK+ 2, malah memiliki fasilitas theme yang ftp.gnome.org/pub/gnome/sources/gtk-engines/.
begitu canggih, bisa disebandingkan dengan Bagaimana cara menginstalasi gtk-engines?
theme di Microsoft Windows XP. Mudah saja. Mula-mula ekstrak paketnya dan
Bila Anda menggunakan distro seperti lakukan konfigurasi, sebagaimana ditunjukkan
Mandrake 9 atau RedHat 8, secara default perintah di bawah ini:
beberapa theme standar sudah diinstalasikan. tar zxvf gtk-engines-2.2.0.tar.gz
Untuk RedHat 8, yang lazimnya terpasang cd gtk-engines-2.2.0
adalah Bluecurve, theme khas yang menjadi ciri ./configure
khas RedHat dewasa ini. Untuk Anda yang
penasaran, bagaimana theme dapat diinstalasi Jika semua lancar, maka kini Anda dapat
dari nol, jangan lewatkan ulasan yang satu ini! memulai proses kompilasi, yaitu dengan
menjalankan perintah:
Theme standar dengan gtk- make
engines
GTK+ 2 yang diinstalasi dari source code-nya Dalam beberapa saat proses ini akan selesai.
(“fresh”) tidak akan memiliki theme apapun, alias Selanjutnya, pindahlah ke user root
menggunakan tampilan default yang terlihat usang menggunakan perintah su diikuti dengan
dan membosankan. Theme standar GTK+ 2, memasukkan password yang tepat. Lakukan
yakni Metal, Redmond, dan Pixbuf bukan berasal instalasi dengan perintah:
dari source code GTK+ 2 itu sendiri. Bila sistem make install
Anda tidak dilengkapi theme standar ini, ada
Salah satu baiknya Anda menginstalasinya terlebih dahulu. Ada beberapa buah theme engine yang
gudang theme: Yang dibutuhkan adalah paket yang bernama tercantum dalam gtk-engines, yaitu Pixbuf,
www.themede
pot.org gtk-engines. Saat ini versi terbarunya adalah Metal, dan Redmond95.


Yang pertama, yaitu Pixbuf adalah theme


engine yang berbasiskan pixmap atau bitmap.
Artinya, unsur-unsur user interface seperti
button, combobox, dan sebagainya disusun
berdasarkan pixmap tertentu. Kelemahan teknik
yang digunakan Pixbuf ini adalah bahwa
pewarnaan akan susah mengikut color theme
karena tentunya telah dispesifikasi langsung di
pixmap-nya. Di sisi lain, proses rendering-nya
akan terasa lebih lambat dan memakan memori.
Metal adalah gaya yang lain lagi. Di sini
berbagai macam elemen user interface dibuat
seolah-olah mirip dengan Java (yang menggu-
nakan Swing). Bagi Anda yang sering mengem-
bangkan aplikasi menggunakan Java, pastilah
tampilan program GTK+ yang berubah menjadi
mirip Java bukan merupakan barang asing lagi.
Yang cukup unik juga adalah Redmond95,
yakni sebuah theme engine yang mencoba

52 INFOLINUX APRIL 2003 www.infolinux.web.id


Tutorial
TutorialGTK+
GTK

menyimulasikan tampilan sistem operasi


Microsoft Windows 95. Memang mungkin ini
bisa membosankan, tetapi bisa juga berguna
untuk yang bermigrasi dari Microsoft Windows.

Mengganti theme
Nah, anggaplah sekarang semua theme engine
yang disuplai oleh gtk-engines telah terpasang
dengan baik. Langkah selanjutnya tentu saja
adalah mengaktifkan theme yang dimaksud.
Bagaimana caranya? Mudah sekali, ada beberapa
pilihan untuk itu.
Yang pertama dan paling lazim adalah
menggunakan GNOME Control Center. Cara ini
tentu saja cukup lumrah bagi mereka yang
menjalankan GNOME sebagai desktop-nya. Kalau
tidak, maka meluncurkan program GNOME 
Control Center bisa jadi merupakan beban Theme
switcher
tersendiri, terutama kalau Anda adalah pengguna
BlackBox, XFCE, atau window manager yang diletakkan di home directory dengan nama .gtkrc-
serba “ringan” lainnya. 2.0 (perhatikan tanda titik sebagai karakter awal).
Alternatif lain yang sangat sederhana adalah Jika Anda ingin mengganti style yang berlaku
menggunakan utiliti keci yang bernama gtk theme global, file-nya harus diletakkan di direktori /etc/
switcher. Ini bisa diperoleh di http:// gtk.
www.muhri.net/nav.php3?node=gts. Download Tiap-tiap style yang terpasang, seperti Metal
program gtk-theme-switch-2.0.0rc2.tar.gz yang atau Redmond95 akan menyediakan file
dimaksud (cukup kecil, hanya berukuran 14KB) konfigurasi yang dibutuhkan, biasanya diletakkan
dan instalasilah dengan beberapa langkah di direktori /usr/share/theme (sesuaikan dengan
mudah. Mula-mula, ekstrak paket source code- pengaturan distro
nya dengan perintah: Anda). Nah, file inilah
tar zxvf gtk-theme-switch-2.0.0rc2.tar.gz yang bisa Anda salin
Lakukan proses make: sebagai file .gtkrc-2.0.
cd gtk-theme-switch-2.0.0rc2 Sebagai ilustrasi,
make untuk mengaktifkan
style Metal, jalankan
Nah, lagi-lagi pindahlah sebagai root dan perintah berikut:
jalankan: cp /usr/share/themes/
make install Metal/gtk-2.0/gtkrc
.gtkrc-2.0
Sekarang, theme switcher bisa diaktifkan
dengan menjalankan perintah switch2. Untuk melihat
Tampilannya sendiri sangat sederhana, akan hasilnya, Anda perlu
tetapi sudah cukup berguna. Anda hanya menjalankan aplikasi
disodorkan daftar theme yang terpasang di yang berbasis GTK+
A B
sistem dan tinggal pilih yang dikehendaki. 2, termasuk juga


Perbandingan antara Metal (A) dan


Tombol Preview akan mengaktifkan sebuah tentunya aplikasi Redmond95 (B)
window baru yang dapat berfungsi untuk GNOME 2. Secara
sekadar mencoba terlebih dahulu tampilan sederhana, Anda bisa mengeksekusi program
elemen user interface menggunakan theme yang gtk-demo yang biasanya sudah terinstalasi ketika
dipilih. memasang GTK+ 2.
Cara terakhir, sekaligus yang paling manual
adalah dengan mengedit file konfigurasi GTK+ ThinIce dan QNX
yang disebut sebagai resource file. Untuk Akan lebih menyenangkan jika pilihan theme
konfigurasi bagi satu user, biasanya file tersebut yang tersedia semakin banyak, bukan?

www.infolinux.web.id INFOLINUX APRIL 2003 53


Tutorial GTK
GTK+

download dari situs web-nya di http://


thinice.sourceforge.net/. Ambilllah versi terakhir,
yaitu gtk-thinice-engine-2.0.2.tar.gz (172 KB).
Proses instalasinya sama dengan yang sudah-
sudah, yaitu dengan perintah:
tar zxvf gtk-thinice-engine-2.0.2.tar.gz
cd gtk-thinice-engine-2.0.2
./configure
make
make install

(Perhatikan bahwa langkah terakhir harus


dilakukan sebagai user root).
 Menggunakan cara yang telah disebutkan
Galeri sebelumnya, kini cobalah ganti theme GTK+ 2
theme di
Freshmeat menjadi ThinIce dan perhatikan hasilnya.
Jika Anda suka tampilan yang serba gradasi
Karenanya, Anda bisa mencoba menambahnya dengan warna-warna cerah dan terang, maka
dengan mencari theme-theme lain. Sayangnya, theme bernama QNX karya David Reveman
karena relatif masih baru, GTK+2 belum mungkin tepat untuk selera Anda. Untuk
mempunyai koleksi theme sebanyak GTK+ 1. menginstalasinya, cobalah download dari http://
Namun demikian, Anda bisa menjelajahi situs download.freshmeat.net/themes/qnxtheme/
web seperti http://www.themedepot.org dan qnxtheme-default-0.1.tar.gz (13KB). Untuk
http://themes.freshmeat.net yang menyediakan menginstalasi theme ini, mula-mula ekstra terlebih
banyak koleksi theme, termasuk juga yang dahulu paketnya:
khusus untuk GTK+ 2.0. Dua yang akan tar zxvf qnxtheme-default-0.1.tar.gz
dibahas di bawah ini adalah ThinIce dan QNX.
Theme bernama ThinIce yang dibuat oleh Selanjutnya gunakan perintah su untuk
Tomas Ögren dan Tim P. Gerla ini akan berganti ke akses root dan jalankan perintah:
mengingatkan Anda pada tampilan ala Motif cp -r QNX/ /usr/share/themes
yang lumrah ditemui di workstation UNIX dari
HP atau Sun. Namun demikian, tata warnanya Sekarang Anda dapat mengganti theme GTK+
sedikit berbeda (lebih dekat ke SGI Irix) dan 2 ke pilihan QNX, baik menggunakan GNOME
keseluruhan tampilan ThinIce terasa cukup Control Center, switcher, maupun manual
lembut. Theme engine yang satu bisa di- mengedit file .gtkrc-2.0

A B


Perbandingan antara theme QNX (A) dan ThinIce (B)

54 INFOLINUX APRIL 2003 www.infolinux.web.id


Tutorial
TutorialGTK+
GTK

Keramik untuk KDE, Geramik


untuk GNOME
Ternyata tidak hanya BlueCurve yang dapat
“menyatukan” tampilan aplikasi GNOME dan
KDE. Pilihan lain adalah menggunakan Geramik,
yakni sebuah theme untuk GTK+ 2 yang
mencoba mengikuti style Keramik yang digunakan
KDE 3.1. Geramik bisa di-download dari http://
www.kde-look.org/content/
show.php?content=3952 dengan ukuran kira-kira
460KB. Proses instalasinya juga mudah:
tar zxvf Geramik-0.19.tar.gz
cd Geramik-0.19
./configure
make
make install

Begitu terinstalasi, Anda bisa menggunakan




Bluefish dengan Lighthouse Blue


GNOME Control Center atau switcher untuk
Lighthouse Blue, pesaing mengaktifkan theme Geramik ini. Asyiknya lagi,
BlueCurve tata warna Geramik diatur agar mengikuti tata
Sejak versi 8.0, RedHat melengkapi distro-nya warna yang digunakan di Keramik. Dengan
yang terbilang populer ini dengan theme yang demikian, meski Anda menggunakan variasi lain
disebut sebagai Bluecurve. Yang unik, BlueCurve pewarnaan Keramik seperti Keramik Emerald
tersedia untuk toolkit Qt, GTK+ 1, dan GTK+ 2. ataupun Keramik White, maka program GTK+
Dengan demikian, berbagai program Qt, KDE, dan GNOME juga akan mengikutinya.
GTK+, dan GNOME akan mempunyai tampilan Anda bisa melihat contoh hasil perpaduan
yang semakin seragam, tidak lain berkat jasa antara Keramik-nya KDE dan Geramik-nya GTK/
sebuah unified theme seperti BlueCurve. GNOME pada screenshot yang ditampilkan.
Untuk Anda yang tidak menggunakan RedHat Terlihat bagaimana Bluefish digunakan untuk
tetapi ingin menikmati keindahan si kurva biru, menyunting sebuah dokumen HTML sementara
alternatif yang bisa dicoba adalah menggunakan hasilnya dilihat dengan Konqueror. Walaupun
Lighthouse Blue. Memang, versi GTK+ 2 dari Bluefish adalah aplikasi GTK+ 2 (dengan theme
Lighthouse Blue hampir tidak bisa dibedakan Geramik) sementara Konqueror merupakan aplikasi
dengan BlueCurve-nya RedHat. KDE (dengan style Keramik), bisa disimak
Guna memasang Lighthouse Blue, download bagaimana tampilan keduanya cukup serupa satu
terlebih dahulu file lighthouseblue-gtk2-0.6.3.tar.gz dengan yang lainnya. Tertarik? Selamat mencoba!
dari situs web http://lighthouseblue.sourceforge. Ariya Hidayat (ariya@infolinux.co.id)
net/. Ukuran paketnya tidak terlalu besar yakni 
hanya sekitar 200KB. Cara instalasinya adalah Geramik
menggunakan perintah-perintah di bawah ini. dan
Keramik
Jangan lupa, sebelum perintah yang terakhir,
gunakan su untuk berpindah sejenak ke user root!
tar zxvf lighthouseblue-gtk2-0.6.3.tar.gz
cd lighthouseblue-gtk2
./configure
make
make install

Sesungguhnya, Lighthouse Blue juga tersedia


untuk GTK+ 1.x. Jadi, jika Anda ingin membuat
aplikasi GTK 1 (seperti Gimp atau AbiWord) juga
tampil serupa dengan GTK+ 2, maka cobalah
juga untuk memasang lighthouse-gtk1.

www.infolinux.web.id INFOLINUX APRIL 2003 55


Tutorial C++
GTK

Expad, Editor Yang akan dijelaskan dalam tutorial ini adalah


sebuah studi kasus pengembangan aplikasi
contoh yang cukup berguna dalam kehidupan

Multifile dengan Qt nyata, yaitu sebuah editor multifile bernama


Expad.

Bagian 1 dari 3 Artikel Expad


Sebuah editor teks dikatakan multifile jika dapat
Kalau Anda telah sedikit mengenal dasar pemrograman menyunting beberapa file sekaligus. Lazimnya
aplikasi grafis berbasis Qt, maka mencoba untuk mengem- kemampuan seperti ini dimiliki oleh aplikasi-aplikasi
bangkan aplikasi sederhana adalah suatu latihan yang office, misalnya StarOffice atau Microsoft Office
(di Windows). Yang akan diulas di sini tentu saja
praktis.
aplikasi yang lebih sederhana karena hanya
bertugas mengedit file teks biasa saja, namun

Q
t adalah sebuah toolkit dari Trolltech AS punya keunggulan menampung sejumlah file pada
(Norwegia) yang digunakan sebagai satu window aplikasi.
kerangka aplikasi yang menggunakan Mula-mula marilah kita definisikan spesifikasi
antarmuka grafis (GUI). Penggunaan Qt untuk dari editor yang akan dinamakan Expad ini. Syarat
membangun sebuah program akan banyak utama tentu bahwa editor dapat menampilkan dan
menolong sang programer. Selain kaya akan menangani file-file teks sekaligus, dengan jumlah
berbagai rutin untuk menyusun antarmuka grafis yang tidak dibatasi. Untuk mudahnya, sekian
(GUI), Qt juga menyertakan beragam fungsi- banyak file teks ini tidak dipisah-pisah dengan
fungsi untuk operasi file, network, struktur data, menggunakan window editor sendiri-sendiri. Akan
XML, basis data, dan lain sebagainya. Salah satu lebih indah jikalau digunakan tab untuk memilih
proyek open source yang cukup besar, yaitu file yang akan diaktifkan. Kira-kira hal demikian
KDE, juga mengandalkan Qt sebagai fondasi serupa dengan fitur tab browsing yang ada di
dasarnya. browser web. Sebut saja fasilitas Expad ini
Tulisan ini mengasumsikan bahwa pembaca sebagai tab editing.
telah memahami konsep pemrograman aplikasi Untuk memilih-milih file yang akan diedit,
dengan Qt. Jika tidak, Anda bisa menyimak Expad diharapkan dapat menampilkan struktur
kembali InfoLINUX No. 7/2001 hingga 10/2001 direktori pada sebuah panel tersendiri. Selain
yang memuat tutorial bersambung tentang dasar mendaftar direktori, panel ini juga menyajikan
penggunaan Qt. Referensi dan tutorial online yang daftar file-file pada direktori yang aktif. Dengan
dapat dibaca di http://doc.trolltech.com juga akan panel ini, user bisa berpindah direktori dengan
sangat menolong. mudah dan juga dapat memilih file yang ingin
 disunting. Jadi begitu menyorot file tertentu dan
Tampilan mengkliknya, maka file ini akan dimuatkan ke
Expad
yang editornya dan siap dimodifikasi.
sudah Dari deskripsi sederhana tentang fungsionalitas
jadi Expad ini mestinya sudah dapat disketsakan
secara kasar apa-apa saja yang perlu
diimplementasikan. Yang jelas dibutuhkan adalah
window utama aplikasi harus selalu ada dan ini
diturunkan dari widget QMainWindow. Untuk
kasus ini, window utama ini akan disebut sebagai
Expad.
Dua elemen lain yang akan menjadi bawahan
dari Expad adalah editor teks dengan tab dan
panel yang menyajikan daftar direktori dan file.
Yang pertama akan berupa widget Tab dan yang
kedua adalah DirList. Widget Tab berasal dari
widget QTabWidget yang sudah disediakan Qt
yang memang khusus dipergunakan kalau ingin
memanfaatkan tab-tab, lumrahnya dijumpai pada

56 INFOLINUX APRIL 2003 www.infolinux.web.id


Tutorial C++
GTK

pembuatan kotak dialog yang kompleks.


Sementara itu DirList mewarisi widget QListView,
dimodifikasi untuk bisa mendaftar direktori dan
file.
Melongok dokumentasi Qt, telah disediakan
widget QTextEdit yang akan berfungsi sebagai
ruang untuk menyunting teks. Sayangnya,
QTextEdit belum dilengkapi dengan fasilitas untuk
menyimpan teks ke file atau mengambil teks dari
file. Oleh karenanya, akan dibangun kelas baru
bernama Editor yang tidak lain adalah QTextEdit
dengan tambahan kemampuan beroperasi dengan
file.
Satu per satu dari kelas-kelas yang telah
disebutkan akan dibahas di bawah ini.

Editor
Kelas Editor mewakili widget utama tempat user
mengedit isi dari file. Kelas Editor ini hanya


Dokumentasi
merupakan modifikasi kecil dari widget QTextEdit Penyunting teks lumrahnya bekerja dengan Qt di situs
yaitu dengan penambahan fungsi untuk font yang sifatnya fixed-width, yakni yang lebar web Trolltech
memudahkan menyimpan dan mengambil isi dari per karakternya sama semua, tidak bergantung dari
file teks yang sedang disunting. Terdapat juga karakter itu sendiri. Jadi, baik huruf m maupun
fungsi filename() yang akan memberikan nama file huruf i akan menyita ruang yang sama. Font
yang bersesuaian dengan Editor tersebut. Bila ini semacam Courier tergolong font yang seperti ini.
adalah widget Editor yang baru dibuat dan isinya Karenanya, dari awal widget Editor mengatur agar
belum pernah disimpan ke file, filename() akan font yang digunakan adalah font adobe-courier,
mengembalikan string kosong. Berikut adalah isi yakni salah satu ragam font Courier yang biasanya
dari file editor.h. sudah terinstalasi di sistem Linux. Umpamanya
#ifndef __EDITOR_H Anda ternyata tidak punya font ini, silakan ganti
#define __EDITOR_H dengan yang tersedia, misalnya bitstream-courier
atau malah Courier New jika Anda memasang
#include <qtextedit.h> font-font yang TrueType.
#include <qstring.h> Implementasi kelas Editor akan diletakkan pada
file editor.cpp berikut ini:
class QWidget; #include <qfile.h>
#include <qfileinfo.h>
class Editor: public QTextEdit #include <qfont.h>
{ #include <qtextedit.h>
Q_OBJECT #include <qstring.h>

public: #include “editor.moc”


Editor( QWidget * parent=0, const char * name=0 );
void load(); // — implementation of Editor —
void save();
QString filename() const; Editor::Editor( QWidget * parent, const char * name ):
QString title() const; QTextEdit( parent, name )
void setFilename( const QString& fn ); {
setTextFormat( Qt::PlainText );
private: m_filename = m_shortname = “”;
QString m_filename; setFont( QFont( “adobe-courier” ) );
QString m_shortname; }
};
#endif QString Editor::filename() const

www.infolinux.web.id INFOLINUX APRIL 2003 57


Tutorial C++
GTK

{ repaint();
return m_filename; }
} }

QString Editor::title() const void Editor::save()


{ {
return m_shortname; if( filename().isEmpty() ) return;
}
QFile f( filename() );
void Editor::setFilename( const QString& fn )
{ if ( f.open( IO_WriteOnly ) )
m_filename = fn; {
QFileInfo fi( m_filename ); QTextStream t( &f );
m_shortname = fi.fileName(); t << text();
if( m_shortname.isEmpty()) f.close();
m_shortname = “Untitled”; }
} }

void Editor::load() DirListItem dan DirList


{ Kelas DirListItem akan merepresentasikan
if( filename().isEmpty() ) return; informasi mengenai satu item yang ditampilkan
di widget DirList, baik untuk direktori maupun
QFile f( filename() ); untuk file. Sebagai kelas pembantu untuk
widget DirList, DirListItem akan memberikan
if( f.open( IO_ReadOnly ) ) keterangan dalam bentuk dua kolom: yang
{ pertama untuk nama file atau direktori dan yang
clear(); kedua untuk jenisnya, “Directory” ataukah
QTextStream t( &f ); “File”. Guna membedakan antara file dan
while ( !t.eof() ) direktori, kelas DirListItem akan mengatur agar
{ sebuah pixmap kecil bergambar folder
QString s = t.readLine(); dibubuhkan di bagian kiri jika item tersebut
append( s ); merupakan sebuah direktori.
} Widget DirList merupakan panel yang
f.close(); mendaftar isi sebuah direktori tertentu. Hal ini
sendiri dilakukan dengan menggunakan
Qt Assistant QFileInfoList sebagaimana bisa dilihat di fungsi
Salah satu utiliti DirList::setDir(). Fungsi QDir::entryInfoList sendiri
yang cukup akan mengembalikan item-item yang dimiliki oleh
berharga yang direktori yang dimaksud dan kemudian bisa
disertakan ditelusuri menggunakan iterator bernama
bersama Qt adalah QFileInfoListIterator. Dari hasil penjelajahan iterasi
Qt Assistant. Juga
ini akan dibentuk sejumlah DirListItem yang
masih buatan
mewakili masing-masing item yang ditemukan
Trolltech, Qt
Assistant dapat (quiz untuk pembaca: mengapa entri “.”
berperan sebagai diabaikan?). Perhatikan bahwa karena membuat
penjelajah item baru QListView (dan juga DirList) akan
dokumentasi, menyebabkan item tersebut ditambahkan di akhir
referensi, dan daftar item yang ada sehingga item yang dibuat
tutorial Qt.
pertama akan tampil paling bawah. Karenanya,
Memang semua
penelusuran iterator harus dilakukan dari akhir ke
dokumentasi Qt
disimpan dalam format HTML sehingga bisa dibaca dengan menggu- awal agar nantinya justru item yang harusnya
nakan browser web biasa. Akan tetapi, Qt Assistant yang sangat mudah urutannya awal tetap tampil paling atas.
digunakan ini menawarkan ekstra fitur, seperti fasilitas print, indeks Baik kelas DirListItem maupun DirList
terstruktur, full-text search, dan masih banyak lagi. dideklarasikan dalam file dirlist.h berikut ini:

58 INFOLINUX APRIL 2003 www.infolinux.web.id


Tutorial C++
GTK

#ifndef __DIRLIST_H tasikan dalam slotDoubleCllicked(). Fungsi yang


#define __DIRLIST_H berupa slot ini dikoneksikan dengan signal
bernama doubleClick(). Bila item yang diklik
#include <qmainwindow.h> adalah sebuah file, maka DirList akan
#include <qaction.h> membangkitkan signal bernama selected( const
#include <qwidget.h> QString& ). Kelak signal ini akan dihubungkan
#include <qlist.h> dengan slot yang tepat sehingga menghasilkan
#include <qstring.h> aksi memuat file yang diklik ke editor.
List vs Tree
#include <qmultilineedit.h> Sementara itu kejadiannya akan berbeda jika
#include <qtabwidget.h> item yang diklik adalah direktori. DirList segera
#include <qprinter.h> beralih ke direktori yang dimaksud, tentu apabila
#include <qsplitter.h> pengaturan permission mengizinkan user masuk
#include <qlistview.h> ke dalamnya. Dalam kasus direktori ini, tidak
perlu ada signal yang dipicu.
class DirListItem: public QListViewItem File dirlist.cpp di bawah ini mengimplemen-
{ tasikan hal-hal yang telah dikemukakan di atas.
protected: #include “dirlist.moc”
bool m_isDir;
bool m_isReadable; #include <qdir.h>
QString m_name; #include <qfile.h>
#include <qfileinfo.h> Implementasikan
public: #include <qlistview.h> DirList yang dibahas di
DirListItem( QListView*, const QString&, bool, bool ); #include <qstring.h> tutorial ini hanya
QString text( int ) const; menghasilkan daftar
direktori dan file yang
bool isDir(){ return m_isDir; } #include “editor.h”
sederhana. Jika Anda
bool isReadable(){ return m_isReadable; }
bandingkan dengan
QString shortName(){ return m_name; } static const char* icon_folder_xpm[]={ struktur direktori yang
}; “16 16 17 1”, ditampilkan di file
“ c None”, manager seperti
class DirList: public QListView “. c #020202”, Konqueror, tentu saja
{ “+ c #A1741D”, yang demikian terlihat
sederhana sekali. Akan
Q_OBJECT “@ c #CC943A”,
tetapi, sesungguhnya
“# c #8D6819”, membuat tree tidaklah
public: “$ c #C5C2BE”, susah. Jika Anda telah
DirList( QWidget* parent=0, const char* name=0 ); “% c #2B2B2B”, mengerti dan
void setDir( const QString& ); “& c #E2DCD5”, memahmi kelas DirList
QString dir(){ return m_dir; } “* c #484848”, dengan baik, tidaklah
“= c #ACA69C”, sulit untuk
mengembangkannya
protected slots: “- c #737373”,
untuk menghasilkan
void slotDoubleClicked( QListViewItem* item ); “; c #7A5A12”,
directory tree, tidak lain
“> c #6A6A6A”, karena QListView
signals: “, c #EEEEEE”, sebagai kelas induk
void selected( const QString& filename ); “‘ c #CEA975", dari DirList telah
“) c #563A06”, dilengkapi dengan
protected: “! c #AD6A0E”, kemampuan tersebut.
Untuk lebih jelasnya,
QString m_dir; “ .* “,
bacalah dokumentasi
“ .$,**% “,
kelas QListView dan
}; “ *#)-=$,*.*-. “, QListViewItem.
“ %&,’#)-=$,,,. “,
#endif “ %’@’&,’+)-=$,*”,
“ %@!@’’’&,’#)-*”,
Penting pula untuk diterangkan bagaimana “ %@++!!@@’$&,’*”,
DirList menangani klik ganda dari user ketika “ %+;###+!!@@’&*”,
menyoroti sebuah item, yang diimpelemen- “ *,,=#;##++!!’*”,

www.infolinux.web.id INFOLINUX APRIL 2003 59


Tutorial C++
GTK

“ *,,,,&=#;##+@*”,
“ *,,,&&&&$=#;#*”, m_dir = dir;
“ %$&&&&&$$$$$>*”,
“ .%>$$$$$$$=>*”, d.setSorting( QDir::Name | QDir::DirsFirst |
“ .%>=$$==>*”, QDir::IgnoreCase );
“ .%>==>*”, const QFileInfoList *list = d.entryInfoList();
“ .%% “}; QFileInfoListIterator it( *list );
QFileInfo *fi;
// — implementation of DirListItem —
clear();
DirListItem::DirListItem( QListView* parent, const it.toLast();
QString& name,
bool dir, bool readable ): while ( ( fi = it.current() ) )
QListViewItem( parent, name ) {
{ if( fi->fileName() != “.” )
m_name = name; {
m_isDir = dir; QListViewItem* item;
m_isReadable = readable; item = new DirListItem( this, fi->fileName(),
fi->isDir(), fi->isReadable() );
if( m_isDir ) setPixmap( 0, icon_folder_xpm ); }
—it;
} }
}
QString DirListItem::text( int column ) const
{ void DirList::slotDoubleClicked( QListViewItem* i )
if( column == 0 ) return m_name; {
else if( column == 1 ) return m_isDir ? “Directory” : DirListItem* item = (DirListItem*) i;
“File”; if( item )
else return QString::null; if( item->isReadable() )
} {
QString fullName = m_dir + “/” + item-
// — implementation of DirList — >shortName();
if( item->isDir() ) setDir( fullName );
DirList::DirList( QWidget* parent, const char* name ): else emit selected( fullName );
QListView( parent, name ) }
{ }
m_dir = “”;
addColumn( “Name” ); Yang menarik untuk disimak adalah array yang
addColumn( “Type” ); bernama icon_folder_xpm. Sebenarnya ini adalah
ikon yang akan digunakan untuk mencirikan
setDir( “/” ); sebuah direktori, untuk membedakanya dengan
setMinimumSize( 100, 50 ); file biasa. Lihat di konstruktor DirListItem, terdapat
setSorting( -1 ); perintah setPixmap jika item tersebut merupakan
Edisi direktori. Format ikon yang dipakai adalah X
berikutnya: connect( this, SIGNAL( doubleClicked( Pixmap (xpm). Anda bisa saja mengganti ikon
Masih ada dua QListViewItem* ) ), tersebut sesuai dengan yang Anda minati.
kelas yang akan this, SLOT( slotDoubleClicked( QListViewItem* ) ) ); Jalankan Gimp, buka file ikon yang dikehendaki
diulas, yakni kelas } (bisa PNG atau GIF atau format lain yang
Tab dan kelas
didukung Gimp) kemudian simpan dalam format
Expad. Jangan
void DirList::setDir( const QString& dir ) XPM). File xpm hasil dari Gimp tadi mestinya bisa
lewatkan bagai-
mana kesemuanya { dibuka dengan editor teks biasa, kemudian
akan dirangkai QDir d( dir ); salinkan saja untuk mengganti icon_folder_xpm di
membentuk satu atas. Mudah bukan?
aplikasi utuh! if( !d.exists() ) return; Ariya Hidayat (ariya@infolinux.co.id)

60 INFOLINUX APRIL 2003 www.infolinux.web.id


Tutorial GTK

IKLAN
LANGGANAN

www.infolinux.web.id INFOLINUX APRIL 2003 61


Tutorial GTK
LILO

Sibak Tabir 2. Berbagai file yang diperlukan Lilo untuk boot.


Boot loader adalah contohnya. File-file
tersebut umumnya dapat ditemukan di /boot.

Konfigurasi LILO File-file tersebut di antaranya boot loader dan


file peta (map). Salah satu file terpenting
adalah lilo.conf (umumnya dapat ditemukan
di /etc/lilo.conf).

Lilo dapat menangani berbagai sistem


operasi. Akan tetapi, Lilo sendiri tidak dapat
membaca suatu file sistem. Oleh karena itu, map
installer (/sbin/lilo) akan membaca lokasi fisikal
file yang diperlukan untuk boot. Dengan cara
demikian, Lilo dapat menangani berbagai sistem
operasi yang ada.
Bicara Lilo, kita perlu menyelam sedikit ke
dalam organisasi disk. Bagaimana sebuah disk
akhirnya dapat digunakan sebagai device untuk
boot?
Mari kita perhatikan boot device yang
sederhana dulu, floppy adalah contoh yang
paling baik. Sebuah floppy terdiri dari boot
sector, administrative data (FAT atau super-
LILO is a versa-

W
aktu boot sebuah komputer adalah block), dan data area. Administrative data tidak
tile boot loader saat yang sangat penting. Pada berhubungan dengan proses boot, dan dalam
for Linux. It waktu boot, kita dapat menentukan hal ini, dapat dianggap sebagai data area.
does not depend sistem operasi yang ingin kita jalankan, ataupun Berbeda dengan floppy, sebuah harddisk
on a specific file memberikan parameter-parameter tertentu sangatlah kompleks. Harddisk dapat dipisahkan
sehingga sistem operasi dapat berjalan sesuai dalam partisi-partisi. Satu harddisk dapat
system, can boot
yang dikehendaki. Untuk itu, sebuah boot berisikan empat partisi primary. Apabila ingin
Linux kernel
loader yang baik sangat diperlukan. Lilo adalah membuat banyak partisi, Anda bisa membuat
images from
salah satunya. satu partisi extended dan tiga partisi primary.
floppy disks and
Partisi extended tersebut dapat berisikan banyak
from hard disks Pengenalan partisi logical. Karena kerumitan seperti ini, maka
and can even act Lilo adalah boot loader yang luar biasa. Anda tabel partisi dibuat. Sektor pertama harddisk
as a “boot mungkin pernah atau sering mengalami masalah perlu berisikan tabel partisi. Partisi extended dan
manager” for dengan boot loader yang satu ini. Akan tetapi, setiap partisi logical juga mengandung tabel
other operating LInux Loader ini dapat Anda gunakan sebagai partisi.
systems. boot manager yang baik untuk menangani Tabel partisi di simpan di dalam boot sector
berbagai sistem operasi yang ada ataupun dapat partisi. Dalam kondisi umum, hanya partisi boot
Anda gunakan untuk melakukan proses boot ke
Linux dengan parameter-parameter yang tidak
umum.
Lilo sendiri adalah koleksi dari program dan
file berikut ini:
1 . Map installer. Ini adalah program yang kita
jalankan di Linux, yang berguna untuk
meletakkan semua file yang diperlukan dalam
proses boot ke alamat yang diperlukan.
Setiap kali kita memberikan perintah lilo
(yang umumnya terletak di /sbin/lilo), kita
menjalankan map installer. Istilah map
installer sering kali diabaikan dan diganti
dengan istilah /sbin/lilo.


Organisasi disk pada floppy

62 INFOLINUX APRIL 2003 www.infolinux.web.id


Tutorial
Tutorial LILO
GTK

boot ini telah digantikan dengan tampilan


grafikal yang indah luar biasa.

Konfigurasi
Lilo memiliki satu file konfigurasi tunggal, yaitu
lilo.conf yang umumnya tersimpan di direktori /
etc. File konfigurasi lilo.conf membagi opsi-opsi
yang disediakan ke dalam tiga bagian. Opsi
bagian pertama adalah opsi global yang akan
mempengaruhi Lilo secara keseluruhan. Opsi
bagian kedua adalah opsi umum per image, dan
opsi bagian terakhir adalah opsi per image untuk
kernel.


Organisasi disk pada harddisk

sector dari keseluruhan disk yang digunakan  Opsi global


sebagai boot sector. Bagian ini disebut sebagai BACKUP=<backup_file>
MBR (Master Boot Record). meng-copy boot sector original ke
Boot sector Lilo dirancang untuk digunakan <backup_file>
pada boot sector partisi. Oleh karena itu, boot BOOT=<boot_device>
sector Lilo dapat disimpan di boot sector floppy, Mengarahkan <boot_device> ke
MBR dari harddisk pertama, boot sector dari file nama device yang mengandung boot
sistem utama Linux di harddisk pertama dan sector. Apabila opsi ini dikosongkan,
boot sector partisi extended harddisk pertama. maka boot sector akan dibaca dari
Boot sector Lilo tidak dapat disimpan di boot (dan ditulis ke) device di mana
sector floppy non-linux atau partisi utama non- sedang di-mount sebagai root.
linux, partisi swap Linux, boot sector partisi CHANGE-RULES Mendefinisikan nomor tipe partisi
logical yang terkandung di dalam partisi COMPACT Mencoba untuk menggabungkan
extended, atau pun di harddisk kedua (secara beberapa operasi baca pada sektor
default). yang berdekatan menjadi satu operasi
baca. Pilihan ini secara drastis dapat
Boot prompt LILO mempercepat waktu boot. Opsi ini
Apabila Lilo telah terinstalasi dengan baik, maka sangat dianjurkan apabila floppy
selama proses boot, Lilo akan memeriksa apakah digunakan sebagai device boot. Opsi
ada tombol keyboard yang ditekan. Lilo akan ini dapat mengakibatkan konflik
menampilkan prompt seperti berikut ini: dengan opsi LBA32 atau LINEAR.
boot: DEFAULT=<name>
Mendefinisikan <name> sebagai boot
Anda dapat mengisikan image kernel yang image default.
ingin di-boot. Pada prompt ini juga, Anda dapat DELAY=<tsecs>
mengisikan parameter-parameter sesuai Mendefinisikan waktu tunggu (dalam
keinginan. Pada beberapa distro modern, prompt sepersepuluh detik) sebelum
melakukan boot dengan boot image
default ataupun boot image pertama
DISK=<device_name>
Mendefinisikan parameter tidak
standar untuk disk tertentu.
FIX-TABLE Membuat Lilo menyesuaikan
pengalamatan 3D (sector/head/
cylinder) di tabel partisi
FORCE-BACKUP=<backup_file>
Memaksakan tindakan backup dan
menimpa back up yang lama.
IGNORE-TABLE Memberitahu Lilo untuk mengabaikan
tabel partisi yang rusak dan


Struktur MBR

www.infolinux.web.id INFOLINUX APRIL 2003 63


Tutorial GTK
LILO

mengizinkan peletakan boot sector Lilo PASSWORD=<password>


di partisi yang tidak umum dipakai Menentukan password untuk image.
INSTALL=<boot_sector> Berhati-hatilah dalam menentukan
Menginstalasi boot sector baru password. File lilo.conf hanya boleh
KEYTABLE=<table_file> dibaca oleh superuser (root) karena
Memetakan ulang keyboard seperti password disimpan dalam format
yang terdapat di dalam <table_file> plain text. Ubahlah hak akses lilo.conf
LBA32 Membuat pengalamatan 32 bit logical Anda menjadi 600.
block dan menghindari pengalamatan RESTRICTED Opsi ini menyebabkan password hanya
sector/head/cylinder diminta apabila pengguna memasukkan
LINEAR Membuat pengalamatan linier dan parameter tertentu untuk image.
menghindari pengalamatan sector/ SINGLE-KEY Image dapat di-boot dengan hanya
head/cylinder menekan satu tombol, tanpa diikuti
MAP=<map_file> ENTER. Label dari image harus terdiri
Menentukan lokasi file map (peta) dari hanya satu karakter.
MESSAGE=<message_file>
Menentukan file yang berisi pesan  opsi per image untuk kernel
yang akan ditampilkan bersama prompt APPEND=<string>
Lilo Menambahkan secara otomatis
NOWARN Tidak menampilkan peringatan akan parameter tertentu untuk kernel.
kemungkinan bahaya. Sebaiknya opsi INITRD=<file> Menentukan file yang digunakan
yang satu ini tidak diaktifkan. sebagai Initial RAMDISK
PROMPT Mengijinkan pengguna komputer untuk LITERAL=<string>
berinteraksi dengan prompt Lilo. Opsi Seperti APPEND, akan tetapi akan
yang satu ini harus diaktifkan apabila menghapus semua opsi lainnya
Anda ingin memberikan berbagai RAMDISK=<size>
parameter. Menentukan ukuran RAMDISK
SERIAL=<parameters> READ-ONLY File sistem root akan di mount read-
Mengijinkan kontrol dari jalur serial only
TIMEOUT=<tsecs> READ-WRITE File sistem root akan di mount read-
Mendefinisikan timeout (dalam write
sepersepuluh detik) untuk input VGA=<mode> Menentukan mode VGA dalam modus
keyboard. teks
VERBOSE=<level>
Menentukan tingkat verbosity Beberapa opsi umum per image dan opsi per
image untuk kernel juga dapat digunakan sebagai
 opsi umum per image opsi global. Untuk proses boot, terutama untuk
ALIAS=<name> sistem operasi lain, Lilo masih memiliki opsi
Mendefinisikan nama alias tersendiri. Silakan merujuk ke file lilo.conf Anda
FALLBACK=<command_line> untuk contoh!
Menentukan perintah yang dijalankan
apabila image di-boot Pemecahan masalah
LABEL=<name> Suatu hari ketika boot, Anda yang biasanya tidak
Menentukan nama lain dari suatu menjumpai masalah dalam proses booting sistem
kernel. Nama suatu kernel bisa tiba-tiba hanya menjumpai tulisan LI pada saat
menjadi sangat panjang dan menjalankan Lilo. Rekan Anda mungkin hanya
merepotkan. Nama inilah yang Anda menjumpai LIL. Atau bahkan rekan Anda yang
panggil dari boot prompt Lilo. lain menjumpai tulisan L 01 yang tersu dicetak
LOCK Mengizinkan perekaman otomatis dari secara berulang. Bukan hanya itu, kloning
command line pada saat boot sebagai harddisk yang sedikit berbeda saja bisa
nilai default untuk boot berikutnya. menyebabkan Lilo ngambek dan menolak untuk
OPTIONAL Abaikan image apabila file utama tidak bekerja sama.
ditemukan pada saat pembuatan map Lilo memang terkenal dengan beberapa
(peta) masalah. Akan tetapi, apabila diatur dengan baik,

64 INFOLINUX APRIL 2003 www.infolinux.web.id


Tutorial
Tutorial LILO
GTK

hal tersebut bisa diminimasi. Berikut ini kita akan  L <error>. Bagian pertama dari boot loader
melihat beberapa permasalahan yang umum dan telah dijalankan, akan tetapi bagian keduanya
penyebabnya. tidak bisa dijalankan. <error> berisikan kode
kesalahan. Anda dapat merujuk kepada
 fatal error dokumentasi Lilo untuk selengkapnya.
<device_name> is not a valid partition device  LI. Bagian pertama boot loader dapat membaca
Penyebab: Device yang dispesifikan bukan bagian kedua. Akan tetapi, bagian kedua
merupakan device, sebuah disk ataupun partisi tersebut gagal untuk dijalankan. Umumnya hal
dari disk yang berbeda. ini disebabkan oleh tidak tepatnya geometri.
Hal ini juga bisa terjadi akibat memindahkan /
Duplicate entry in partition table boot/boot.b tanpa menjalankan /sbin/lilo
Penyebab: Terdapat entri ganda tabel partisi. setelahnya. Yang satu ini termasuk yang paling
Tabel partisi harus diperbaiki dengan fdisk. sering terjadi.
 LIL. Bagian kedua boot loader telah
Hole found in map file (<location>) dijalankan, akan tetapi bagian kedua boot
Penyebab: Map installer (/sbin/lilo) mengalami loader tersebut tidak dapat membaca tabel
kesulitan dengan organisasi disk. Pesan ini bisa deskripsi dari file map (peta). Umumnya,
Anda laporkan ke pembuat Lilo. terjadi karena tidak tepatnya geometri ataupun
kerusakan media.
Fatal error (umumnya jarang terjadi) dapat  LILO. Lilo berjalan tanpa kesalahan.
menyebabkan hal yang berbahaya pada disk
Anda. Apabila harddisk Anda belum di-back up,  siapkan bootdisk non-Lilo
segera lakukan back up apabila memungkinkan. Bermain-main dengan Lilo bukanlah yang terlalu
Terdapat sangat banyak fatal error yang mungkin menyenangkan. Untuk itu, sebaiknya Anda
terjadi. siapkan sebuah bootdisk yang tidak berisi Lilo
sama sekali. Di kala Lilo rewel, lupakan dahulu.
 peringatan Berikut ini adalah cara untuk membuat sebuah
Warning: <config_file> should be owned by root bootdisk non Lilo dan hanya berisikan sebuah
Penyebab: file lilo.conf dimiliki oleh user lain. kernel.
Berhati-hatilah dalam menentukan kepemilikan file dd if=/path/to/kernel of=/dev/fd0 bs=1k seek=0
konfigurasi lilo. Kesalahan pengaturan pada Lilo
bisa menyebabkan kerusakan permanen pada Cara tersebut akan meletakkan kernel pada
data. bagian bootable dari sebuah floppy. Tanpa Lilo,
proses booting akan langsung ditangani oleh
Warning: <config_file> should be readable only for kernel. Dan setelah kernel berhasil di-load, maka
root if using PASSWORD rutin boot distro Anda akan dikerjakan. Cara ini
Penyebab: Anda menggunakan opsi PASSWORD dapat Anda gunakan bila Lilo bermasalah. Setelah
sementara hak akses file lilo.conf bukanlah 600. masuk ke dalam sistem, segeralah perbaiki Lilo
Hal ini sangat berbahaya karena menyebabkan Anda supaya tidak rewel lagi. Apabila Lilo terlalu
lilo.conf dapat dibaca oleh user lain. rewel, jangan ragu untuk mencoba GRUB sebagai
alternatif. Kabarnya, boot loader yang satu ini
WARNING: The system is unbootable ! “sedikit kurang rewel” dibandingkan Lilo.
Penyebab: Sebagian instalasi Lilo gagal. Pada Karena kompleksitasnya, masih banyak
kondisi demikian, sebuah bootdisk yang andal permasalahan yang dapat terjadi. Anda dapat
seharusnya telah disiapkan. merujuk kepada dokumentasi Lilo untuk lebih
lengkapnya.
 start message Demikianlah, Lilo. Boot loader yang satu ini,
Pada saat Lilo dijalankan, program tersebut akan walaupun telah berusia cukup tua tetap masih
mencetak tulisan LILO. Setiap karakter dari LILO banyak digunakan sebagai boot loader default
dicetak setelah tugas tertentu dilakukan. Karakter- sebagian besar distro besar. Dengan mengetahui
karakter yang tercetak dapat digunakan dalam lebih tentang Lilo, banyak permasalahan yang bisa
analisis masalah. diselesaikan. Banyak optimasi sistem yang bisa
 Tidak tercetak apa-apa. Kondisi ini dilakukan.
menunjukkan tidak ada Lilo yang dijalankan. Noprianto (noprianto@infolinux.co.id)

www.infolinux.web.id INFOLINUX APRIL 2003 65


Tutorial GTK
Scribus

Scribus:
Desktop Publisher di Linux
S
istem desktop publishing (DTP) digunakan teks editor biasa. Ini salah satu keunggulan
untuk mengedit teks dan gambar yang Scribus dibandingkan program lainnya yang
dimasukkan pada suatu halaman penuh. menggunakan format biner. Di lingkungan KDE,
Terminologi desktop publisher mengingatkan kita perintah drag and drop dapat dijalankan. Format
Membuat buku pada suatu peranti lunak populer dan komersial, grafik yang dapat disisipkan pada dokumen
atau majalah di seperti QuarkXpress, Adobe InDesign, Adobe Scribus, meliputi Encapsulated PostScript (EPS),
PageMaker, CorelVentura, dan Microsoft Pub- TIFF, Joint Photographic Experts Group (JPEG),
Linux tidaklah
lisher. Semua program ini dibuat pada platform Portable Network Graphics (PNG), dan XPixMap
sulit. Kini telah
Microsoft Windows. Apakah di dunia open source (XPM).
tersedia aplikasi
tersedia peranti semacam ini? Adobe PageMaker Format keluaran baik dalam bentuk
yang dibuat
dapat dijalankan pada platform Unix, sehingga pencetakan, PDF, dan SVG dilakukan melalui
khusus untuk dapat juga dijalankan pada platform Linux namun pustaka driver dan plug-ins. Scribus dapat
mengatur layout tentunya tidak gratis. Pada tulisan ini akan menghasilkan keluaran PDF yang dilengkapi
(tata letak). diperkenalkan suatu peranti lunak yang berbasis dengan efek-efek presentasi, formulir PDF yang
open source untuk aplikasi DTP di Linux, Scribus. interaktif, dan naskah SVG terformat vektor.
Driver printer internal telah mendukung secara
Scribus lengkap Postscript Level 2 dengan sedikit Level
Sejak musim semi 2001 telah muncul peranti 3. Driver PDF dapat ditambahkan jenis huruf
lunak berbasis open source dengan lisensi GNU/ untuk pencetakan postscript dan dapat
General Public Lisence, Scribus, yang dapat menghasilkan berkas EPS resolusi tinggi.
digunakan untuk melakukan tata letak penulisan
(layout). Scribus dapat dijadikan alternatif yang Sumber dan instalasi
murah untuk aplikasi DTP di lingkungan Linux Scribus terbaru dapat di-download dari http://
atau BSD yang hampir sama dengan web2.altmuehlnet.de/fschmid. Ada beberapa
CorelVentura, QuarkXpress, Adobe PageMaker, persyaratan yang harus dipenuhi untuk
atau InDesign. Hingga tulisan ini dibuat, Scribus menginstalasi Scribus versi stabil terakhir, yaitu:
telah memiliki versi stabil 0.8 (artikel ini  Qt-3.0.3.
menggunakan versi developer 0.9.7). Program ini  GNU Ghostscript 6.53 atau 7.05.
telah dapat digunakan untuk melakukan beberapa  Jenis huruf Postscript dan True Type Fonts.
task layout dalam  Scribus dapat dijalankan di lingkungan
percetakan, seperti window manager apapun, kecuali fungsi drag
peletakan terpresisi, and drop hanya berfungsi di lingkungan KDE.
memutar teks dan/
atau gambar pada Kompilasi dan instalasi Scribus menggunakan
suatu halaman, standar perintah GNU sebagaimana biasa
menentukan kerning (configure && make && make install). Perintah ini
pengetikan secara dapat dilakukan setelah membuka paket yang
manual, poligon telah di-download atau meng-copy paket yang
kurva bezier, serta disertakan dalam CD InfoLINUX edisi ini.
layering dengan $ mount /mnt/cdrom
warna RGB dan $ cp /mnt/cdrom/scribus/scribus-0.9.7.tar.gz ./
CMYK. $ tar xvzf scribus-0.9.7.tar.gz
Dokumen $ cd scribus-0.9.7
Scribus disimpan $ ./configure atau ./configure -help
dalam format $ make
standar open $ su (sebagai root/superuser, isikan password root
source, XML yang setelah ini)
dapat diedit dengan # make install


Gambar 1. Layout sederhana

66 INFOLINUX APRIL 2003 www.infolinux.web.id


Tutorial
Tutorial
Scribus
GTK

Secara default, program eksekusi diletakkan di atau StarOffice 5.2 atau


direktori /usr/local/bin. Dokumentasi terletak pada bisa juga dengan
direktori /usr/local/share/scribus/doc. LATEX/LYX. Yang
Hingga saat ini, Scribus telah dimasukkan di terpenting adalah bahwa
dalam distribusi Debian, Gentoo, Mandrake, program yang
Lindows, Lycoris, dan Fink. digunakan untuk
membuat tabel bisa
Mengenal perintah dasar Scribus menghasilkan berkas
Hampir semua program aplikasi di Linux yang terformat EPS. Dengan
berbasis GUI dapat digunakan melalui istilah lain, tabel
pendekatan intuitif (tinggal klik). Jadi, tanpa diperlakukan sama
membaca manualnya kita dapat menggunakan sebagai gambar di
program tersebut secara global, namun tidak dalam Scribus.
optimal. Pada bagian ini akan dibahas mengenai Untuk menyisipkan
perintah dasar Scribus dari memasukkan teks dan gambar pada naskah


Gambar 2.
gambar, mengolah posisi dan atribut teks, hingga Scribus dapat dilakukan dengan mengklik ikon Membuat Dokumen
ke perintah pre-print (pra-percetakan). Scribus penyisipan kotak gambar, lalu menyeret seukuran Baru Dua Kolom
mempunyai 7 perintah menu utama, meliputi yang diinginkan. Perintah untuk menyisipkan
File, Edit, Style, Item, Page, View, dan Tools. gambar/tabel hampir sama dengan perintah untuk
Seperti pada program lain, pemakaian Scribus menyisipkan teks, yaitu: File-Import-Figure Load.
dapat dimulai dengan perintah File-New. Pada Gambar yang akan disisipkan harus diset dengan
perintah ini akan muncul jendela dialog seperti resolusi yang sesuai dengan resolusi keluaran
pada gambar 2. yang diinginkan.
Hasil setting pada jendela dialog New Docu-
ment ini, akan dihasilkan dua kolom yang siap Mengatur posisi gambar dan
untuk diisi materi yang akan di-layout (teks, tabel, teks
dan gambar). Setting yang lebih detail dapat Mengatur posisi teks dan gambar pada program
dilakukan melalui menu Edit-Preferences-General. Scribus sangat mudah, persis sama dengan cara
pengaturan teks dan gambar pada program-
Memasukkan teks program DTP yang lain, seperti FrameMaker atau
Teks dapat dimasukkan dalam naskah Scribus InDesign. Posisi teks dan gambar dapat diseret
dengan dua cara, yaitu mengetik langsung pada dan ditempatkan di mana saja dalam halaman.
kotak teks (text border) atau melalui perintah Pengaturan teks dan gambar dapat juga dilakukan
impor. Cara yang paling cepat adalah melalui melalui pemilihan menu dengan mengklik mouse
perintah impor. Berkas teks yang dapat disisipkan kanan. Letakkan mouse di atas kotak teks atau
melalui perintah ini adalah berkas yang terformat gambar/tabel lalu klik mouse kanan.
ASCII (*.txt). Hampir semua word- atau docu-
ment-processing mempunyai fasilitas untuk Mengekspor file ke dalam
mengekspor menjadi ASCII yang dapat format lain
menghasilkan berkas *.txt. Berkas ini dapat juga Hingga versi developer terakhir, 0.9.7 (stabil
diketik langsung dengan program teks editor 0.8) Scribus hanya menyediakan tiga format
biasa, seperti pico, vim, jed, joe, mc, bluefish, keluaran pre-print, yaitu EPS, PDF, dan SVG.
quanta+, dan lain-lain. Format SVG belum stabil dan belum semua
Untuk menyisipkan berkas *.txt ke dalam program yang terkait bisa membaca format ini.
naskah Scribus, klik kotak yang akan disisipi teks Fasilitas ekpor yang paling lengkap adalah
dan lakukan perintah File-Import-Text Load. Lalu dengan mengekspor sebagai file PDF. Jendela
pilih berkas yang akan disisipkan (*.txt). dialog PDF dapat dilihat pada gambar 3.

Memasukkan gambar dan tabel Mengoptimalkan Linux untuk


Memasukkan gambar dan tabel hampir sama, Scribus dan DTP
karena Scribus tidak punya fasilitas untuk Dalam terminologi desktop publishing, tiga hal
membuat tabel (barangkali tidak terlalu penting di yang paling penting adalah teks/tipografi, grafik,
dalam DTP). Tabel dapat dibuat dengan peranti dan tabel. Teks sangat tergantung pada jenis
lunak yang lain, misalnya OpenOffice.org 1.0 huruf atau fonts yang tersedia pada sistem,

www.infolinux.web.id INFOLINUX APRIL 2003 67


Tutorial GTK
Scribus

sedangkan grafik dan Gimp setara dengan Photoshop di lingkungan


tabel sangat tergantung Microsoft Windows. Untuk membuat tabel
pada program yang sebaiknya menggunakan program OpenOffice.org
digunakan untuk 1.0 atau LATEX/LYX. Sketch/Xfig/Tgif/
mendesain grafik dan Artstream dapat digunakan untuk mengolah
tabel. Sejak X11 versi gambar vektor. Diagram dan diagram alir dapat
4.x keluar, Linux sudah dibuat dengan menggunakan program Dia/
dapat menggunakan graphiz. Dengan mengombinasikan semua
True Type Font dengan program ini, Scribus merupakan program DTP
mudah sehingga yang sangat andal di lingkungan Linux. Anda
Scribus dapat tidak perlu mengeluarkan uang secara percuma
menggunakan baik jenis untuk membeli program DTP komersial, untuk
huruf Type1 maupun menghasilkan produk percetakan yang setara.
True Type Font. Selamat mencoba alternatif murah dan andal ini!
Grafik dan tabel
memerlukan perlakukan Bibliography


Gambar 3. lain karena tidak berhubungan dengan sistem, 1 . Ceccone, Y., 2001. Scribus, enfin la mise en
Mengekspor ke
Format PDF tetapi dengan program aplikasi grafik/tabel. Salah page professionnelle sous Linux? Terjemahan
satu keunggulan program berbasis open source dalam bahasa Inggris dapat dibaca di: http://
adalah terletak pada interface antarprogram web2.altmuehlnet.de/fschmid/docs/index.html.
melalui format standar yang dikeluarkan masing- 2 . Khazaeli, C.D., 2001. Crashkurz: Typo und
masing program. Seperti kita ketahui, tidak ada Layout vom Schriftdesign zum visuellen
satu pun program yang dapat digunakan untuk Konzept. Rowohlt Taschenbuch Verlag,
mengerjakan semua hal tanpa memerlukan Hamburg. 480 hal.
bantuan program lain. 3 . Kipphan, H., 2001. Handbook of print media.
Dalam desktop publishing, Scribus Bab 3. Prepress. Springer-Verlag, Berlin.
membutuhkan peranti lunak lain seperti CMS 1207 hal.
(color management system). Program ini dapat 4 . Schmid, F. dan Zastrow, T., 2001. Das
digunakan untuk mengatur warna pada gambar Scribus-Handbuch. http://www.thomas-
yang disisipkan ke dalam naskah Scribus. Selain zastrow.de/scribus/de/index.html.
program ini, Scribus membutuhkan program I Wayan Warmada
Gimp/PhotoPaint untuk mengolah gambar raster. (warmada@nakula.rvs.uni-bielefeld.de)

68 INFOLINUX APRIL 2003 www.infolinux.web.id


Tutorial
Tutorial Java
GTK

Di Sini Java, di Sana Java


Ternyata nama Java tidak hanya milik orang Jawa atau Indonesia. Saatnya
Anda ikut merasakan kehebatan bahasa pemrograman Java, yang dapat
berjalan di berbagai sistem operasi dan peranti keras komputer.

J
ava kini merajai komputasi di sistem kumpulan beberapa file kelas. File-file kelas ini
enterprise dan Internet. Padahal saat dirintis dapat disatukan dan dipadatkan menjadi file
sekitar tahun 90-an, Java justru jar (Java archive).
dirancang buat sistem kecil-kecil seperti TV Pada akhirnya, kode byte tersebut akan
kabel atau home theater. Setelah berjalan dijalankan sebagai program oleh Java Runtime
lebih dari empat tahun, ternyata pasar Environment (JRE). Untuk masing-masing
tersebut tidak berkembang. Pemimpin proyek landasan komputer dan sistem operasi, tersedia
Java, James Gosling, bahkan sampai JRE yang berbeda. JRE inilah yang
khawatir masa depannya bakal suram. Lalu menyembunyikan si landasan dan menyediakan
terbersit ide, mengapa tidak mencoba ke lingkungan yang serupa bagi program Java agar
Internet? Keputusan setengah putus asa di dapat bekerja sebagai mana mestinya. Dengan
tahun 1994 ini ternyata menjadi nasib baik strategi ini, Java mampu menjadi peranti lunak
mereka dan juga seluruh dunia. yang “write once run everywhere”.
Artikel ini secara singkat memperkenalkan
keunikan dan kelebihan Java yang membuatnya Satu alat buat segala keperluan
sukses. Setelah itu akan dibahas bagaimana Kunci lain kesuksesan Java adalah beragamnya
menyiapkan sarana untuk membangun dan arsitektur program yang didukungnya (Gambar
menjalankan program Java di mesin Linux Anda. 2). Dengan Java Anda bisa membangun
program aplikasi yang berjalan di satu komputer,
Sekali tulis, lari di mana saja program terdistribusi yang bekerja antara
Ada tiga ide cemerlang yang menjadi ciri beberapa komputer, bahkan program mobile-
kesuksesan Java, yaitu bahasa, kode byte, dan agent yang bisa melompat-lompat dari satu
virtual machine. Seperti terlihat pada Gambar 1, komputer ke komputer lainnya di Internet.
siklus hidup Java dimulai dari kode sumber Arsitektur-arsitektur tesebut sangat menunjang
yang ditulis manusia (pemrogram) memakai komputasi tersebar dan paralel, sehingga Java
bahasa Java. Bahasa ini merupakan bahasa sangat populer di kalangan peneliti dan akademik.
berorientasi objek yang diturunkan dari C++ Sementara itu di dunia bisnis, arsitektur Java Gambar 1.
Tahap-tahap
dengan banyak penyempurnaan. Pada yang menarik adalah applet, servlet, Java pengembangan
umumnya, para pakar berpendapat bahwa Server Page (JSP), dan


Java
bahasa Java memiliki konsep yang konsisten Javascript. Sejauh ini,
dengan teori pemrograman objek dan aman arsitektur-arsitektur
untuk diimplementasikan. Kini universitas- tersebut merupakan
universitas di berbagai negara berpaling dari pilihan terlengkap yang
Pascal atau C++ dan memilih Java sebagai bisa disediakan oleh satu
bahasa untuk belajar memprogram. alat pengembangan.
Setelah selesai ditulis, kode sumber Java Aplikasi adalah
harus diubah menjadi kode siap eksekusi dengan arsitektur Java paling
menggunakan Java Development Kit (JDK). Di klasik, di mana kode
sini letak keunikan Java. Java menggunakan sumber dikompilasi
kode byte yang portabel dan modular. Portabel menjadi kode byte lalu
karena dia bukan kode mesin prosesor (peranti dijalankan menjadi program
keras) tertentu, justru sebaliknya dia bisa dimuat di sebuah komputer.
ke berbagai landasan komputer maupun sistem Aplikasi Java mampu
operasi. Dia juga modular karena tiap objek bekerja dengan antarmuka
dikompilasi menjadi satu file kelas (class) yang teks maupun grafik
mandiri. Aplikasi lengkap Java merupakan untuk mengerjakan

www.infolinux.web.id INFOLINUX APRIL 2003 69


Tutorial GTK
Java

segala jenis web browser. Dengan menggabungkan


komputasi dari HTML, Javascript ditambah cascading style
pengolah sheet (CSS), Anda bisa membuat halaman
numerik, kata, web yang dinamik dengan tata letak menarik.
hingga grafik. Setelah makin populer, informasi yang
Dari luar, aplikasi tersimpan di web server makin menumpuk
Java tidak ada sehingga tidak mungkin lagi diedit satu per satu.
bedanya dengan Karenanya, diperlukan cara otomatis untuk
aplikasi C++ menerbitkan halaman HTML dari informasi
atau lainnya. mentah misalnya dari database. Arsitektur Java
Saat ini, yang dirancang untuk itu adalah servlet dan Java
arsitektur Java Server Page (JSP).
yang paling Kebalikan dari applet, servlet adalah program
bagus Java mini yang dijalankan sebagai modul web


Gambar 2. Berbagai arsitektur Java


pemasarannya server. Ketika suatu web browser meminta
adalah yang berhubungan dengan world wide halaman servlet, web browser akan memakai
web (WWW). Bahkan boleh dikata, Java ikut JVM untuk menjalankan kode byte servlet yang
meledakkan kepopuleran WWW dengan bersangkutan. Servlet mampu mengambil data
Applet yang mampu menampilkan grafik dari berbagai sumber, mengolahnya, kemudian
animatif di jendela web browser. Web server menghasilkan dokumen HTML yang seterusnya
men-download kode byte applet dari web dikirim ke web browser.
server, kemudian mengeksekusinya dengan Jika di sisi web browser applet ditemani
JVM. Setiap applet akan diberi satu area Javascript, maka di sisi server servlet ditemani
terbatas di layar web browser untuk JSP. Dengan JSP, Anda bisa menyisipkan script
menampilkan grafik dan masukan papan kunci bahasa Java dalam dokumen HTML. Saat web
maupun mouse. Dengan demikian, applet browser meminta sebuah dokumen JSP, web
mampu mengerjakan komputasi interaktif apa browser menerjemahkannya menjadi kode byte,
saja mulai animasi sederhana sampai games. kemudian dieksekusi sebagai jsp-servlet dalam
Sementara itu untuk keperluan yang ringan- web server. Keluaran jsp-servlet ini berupa
ringan, Netscape mengembangkan Javascript halaman HTML, tanpa script Java lagi, yang
berupa scripting yang disisipkan di HTML untuk dikembalikan ke web browser. Dalam praktiknya,
dijalankan langsung oleh web browser. Bahasa JSP sering dipakai sebagai latar depan (front-end)
Javascript lebih sederhana dari pada bahasa Java yang bekerja sama dengan servlet.
Gambar 3.
Pemasangan dan serta objek-objeknya hanya khusus untuk Terlihat bahwa arsitektur-arsitektur Java ini
pemrograman memanipulasi dokumen HTML dan lingkungan sangat beragam dan sampai saat ini tidak ada


Java di Linux
teknologi lain yang menyamainya. Tabel 1.
memperlihatkan perbandingan Java dengan
beberapa bahasa populer lain.

Memasang Java SDK di Linux


Berikut ini kita akan menyiapkan JDK dan JRE
Java di Linux agar dapat digunakan membangun
dan menjalankan aplikasi Java. Tahap-tahap
pemasangan disampaikan dalam bentuk bash
script (saya ambil dari history, jika perlu dapat
Anda jalankan. Jika ada file yang harus diedit
akan disampaikan dalam kotak terpisah. Dalam
melakukan instalasi gunakan user level root,
sedangkan untuk mencoba pemrograman
gunakan user biasa. Seluruh instalasi dan
pemrograman dapat dilakukan dari desktop GUI
(Gambar 3).
Saat ini JDK dan JRE untuk Linux dapat anda
peroleh dari empat sumber utama:

70 INFOLINUX APRIL 2003 www.infolinux.web.id


Tutorial
Tutorial Java
GTK

 Sun microsystems, merupakan pembuat Java ■ Tabel 1.


panutan. Sun mengeluarkan tiga kelas paket Arsitektur Program
Java, yaitu J2-SE JRE (hanya berisi JRE), J2- Bahasa/Alat Modul Web Scripting Web Modul Web Scripting
SE SDK (berisi JDK + JRE), dan J2-EE SDK pengembangan Server Server Browser Web
(berisi JDK+JRE dan tools untuk aplikasi Browser
enterprise). Versi SE (Standard edition) tersedia Java servlet JSP Applet Javascript
gratis dari http://java.sun.com. C++ CGI exe ActiveX 
 Blackdown, merupakan proyek mandiri yang Perl CGI script
memindah J2-SE Sun khusus ke Linux. Phyton CGI script
Homepage-nya di http://www.blackdown.org. PHP PHP script
 IBM, menawarkan paket Java Developer Kit Visual Basic ASP  ActiveX  VB Script 
yang performanya jauh lebih bagus dibanding 
) Hanya di landasan Windows, tidak bisa di Linux.
Sun dan Blackdown, namun versinya agak
ketinggalan. (http://www.ibm.com/java). mount /dev/cdrom /mnt/cdrom
· Kaffe, adalah open source JVM dan pustaka cp /mnt/cdrom/java/j2sdk-1.4.1-01-linux-
kelas Java. Sayangnya tidak begitu kompatibel i586.gcc3.2.bin /usr/java
(http://www.kaffe.org). chmod a+x j2sdk-1.4.1-01-linux-i586.gcc3.2.bin

CD-ROM InfoLINUX edisi April 2003 # Eksekusi paket tersebut untuk memasangnya.
menyertakan Blackdown J2 SDK versi 1.4.1- ./j2sdk-1.4.1-01-linux-i586.gcc3.2.bin
01. Ini sama dengan versi terbaru dari Sun,
dengan perbaikan dan penyempurnaan khusus # Buat link agar mudah diakses, lalu hapus file
untuk Linux. instalasi dan umount cdrom
Sebagai langkah awal, siapkan mesin Linux ln -s j2sdk-1.4.1-01 j2sdk
dengan spesifikasi minimum sebagai berikut: rm j2sdk-*.bin
 Komputer PC Pentium, Memori 128MB, ruang umount /mnt/cdrom
harddisk 500MB.
 Blackdown tidak meminta distro Linux tertentu, # Buat bash script untuk mensetup environment yang
tapi Sun menyarankan RedHat 7.1 - 7.3. diperlukan
 Peket kernel-2.4.18, pustaka glibc-2.2.5, echo “#” > /etc/profile.d/setjava.sh
kompiler gcc-3.2. Anda bisa periksa hal ini chmod 755 /etc/profile.d/setjava.sh
dengan: vi /etc/profile.d/setjava.sh
rpm –q <nama-paket-tanpa-versi>
#!/bin/bash
 X-Free versi 4.1. Anda bisa pakai desktop
manager apa saja baik KDE, GNOME atau # Listing-2.: /etc/profile.d/setjava.sh
lainnya. Anda juga perlu terminal dan editor # Bash login script untuk menyiapkan environment Java
teks, misalnya vim atau emacs.
# Tempat j2sdk dan variabel-variabel yang diperlukan
Setelah hal tersebut siap, masukkan CD-ROM Java
InfoLINUX edisi April 2003, maka kita bisa mulai JAVA_HOME=/usr/java/j2sdk
memasangan J2 SDK seperti tahap-tahap di CLASSPATH=./
Listing-1. Anda juga perlu mengedit skrip Bash PATH=$JAVA_HOME/bin:$PATH
seperti Listing-2. Pekerjaan ini harus dilakukan
sebagai root. export JAVA_HOME CLASSPATH PATH
# Listing-1. Perintah-perintah untuk pemasangan j2sdk
di Linux Membuat aplikasi Java
Sekarang marilah kita mencoba menggunakan
# Buat direktori /usr/java (anjuran Sun) untuk pemasangan Java untuk membuat program aplikasi
mkdir -p /usr/java sederhana. Login-lah sebagai user biasa di
cd /usr/java desktop (bukan di konsole teks). Jalankan
terminal untuk mengedit, meng-kompile dan
# Mount cd-rom, dan salin paket j2-sdk lalu diberi mengeksekusi sepeti Listing-3. Silakan pakai
mode bisa-dieksekusi editor apa saja, contoh menggunakan emacs,

www.infolinux.web.id INFOLINUX APRIL 2003 71


Tutorial GTK
Java

untuk mengedit kode sumber Java seperti pada final JFrame frame = new JFrame(“Hello”);
Listing-4! JLabel label = new JLabel(“Hello World”);
# Listing-3. Perintah –perintah membangun dan frame.getContentPane().add(label);
menjalankan aplikasi Java
// pernik-pernik Swing
# Membuat direktori kerja di home frame.setSize(200,50);
cd $HOME frame.setVisible(true);
mkdir -p java/src frame.addWindowListener(
mkdir -p java/classes new WindowAdapter() {
cd java/src public void windowClosing(WindowEvent e) {
frame.dispose();
# Membuat kode sumber Java System.exit(0);
emacs Hello.java & }
});
# Mengkompile kode sumber java menjadi kode byte, }
ditaruh di direktori classes }
javac -d ../classes Hello.java
Penutup
# Menjalankan program Hello Bermula dari teknologi coba-coba untuk embedded
java -classpath ../classes Hello mikro prosesor, siapa kira kini Java menjadi
teknologi terpopuler untuk Internet dan sistem
// Listing-4. Hello.Java enterprise. Kunci suksesnya adalah:
// Contoh tersederhana aplikasi Java  Portable. Anda bisa memrogram Java di
notebook dengan sistem operasi Windows
public class Hello { kemudian menjalankannya di PC dengan sistem
public static void main(String[] args) { operasi Linux tanpa masalah.
System.out.println(“Hello World”);  Lengkap dan kaya. Anda bisa membuat
} berbagai arsitektur program dengan Java.
} Bandingkan jika Anda harus belajar C++, Perl
atau Phyton dan PHP, atau ASP untuk hal
Membuat aplikasi Java GUI yang setara!
Java dengan mudah dipakai untuk membuat  Mudah dipelajari. Bahasa Java, boleh dikata
aplikasi berbasis GUI. Silahkan edit contoh kode adalah yang teranggun (elegant) untuk
sumber pada Listing-6, lalu kompile dan jalankan pemrograman berorientasi objek.
dengan perintah-perintah seperti pada Listing-5.
# Listing-5. Perintah-perintah membuat aplikasi Java GUI Hal yang sering dikeluhkan terhadap Java
emacs HelloGui.java & adalah lambat dan makan memori. Hal ini memang
tidak bisa dibantah. Namun, kenyataan
# Meng-kompile kode sumber java menjadi kode byte, menunjukkan bahwa Java sukses di pasar
ditaruh di direktori classes enterprise computing dan menjadi standard
javac -d ../classes HelloGUI.java platform di dunia akademik. Dengan demikian,
bisa disimpulkan bahwa portabilitas kode,
# Menjalankan program HelloGui fleksibilitas aplikasi, dan konsistensi pemrograman
java -cp ../classes HelloGUI jauh lebih menarik dibanding hambatannya.

// Listing-6. HelloGUI.java Referensi


// Contoh aplikasi Java memakai Swing GUI 1. Java History, http://java.sun.com/features/
1998/05/birthday.html.
import java.awt.event.*; 2 . Blackdow Java-Linux Installation, ftp://
import javax.swing.*; ftp.uk.linux.org/pub/linux/java/JDK-1.4.1/
i386/01/INSTALL-j2sdk.
public class HelloGUI { 3. Java Tutorial: Getting Started, http://
public static void main(String[] args) { java.sun.com/docs/books/tutorial/getStarted/.
// Utama E. M. Budi (k0c1l@yahoo.com)

72 INFOLINUX APRIL 2003 www.infolinux.web.id


Tutorial DNS
GTK

Membangun Server DNS


dengan djbdns
DNS adalah sistem penamaan komputer yang terdistribusi. Sebagai
alternatif pengganti BIND di mesin-mesin yang menjalankan sistem
operasi turunan UNIX adalah djbdns. Meski konsep yang dijalankan
berbeda, tetapi mempunyai fungsi yang sama.

D
NS adalah singkatan dari Domain Name lebih ditekankan pada pemakaian praktis, dengan
System. Kadang-kadang diartikan sebagai asumsi pembaca sudah bisa bekerja dengan Linux
Domain Name Server, jika sedang dalam mode text. Ya, bukan grafik.
membahas server. DNS berfungsi untuk Paket djbdns adalah sekumpulan program
mengatur proses penerjemahan nama domain ke aplikasi dengan ukuran kecil yang bisa disusun
nomor IP atau sebaliknya. DNS adalah juga sesuai dengan kebutuhan. Peranti lunak ini dibuat
sistem database yang terdistribusi, sehingga dengan kerangka berpikir yang mengutamakan
memungkinkan setiap bagian dari database keamanan dan unjuk kerja yang tinggi. Untuk
dikelola secara terpisah. membatasi pembahasan supaya tidak terlalu
DNS bekerja dengan konsep client-server. melebar, hanya akan dibahas tiga program aplikasi
Yang menjalankan fungsi sebagai server adalah dalam paket djbdns, yaitu tinydns, dnscache, dan
server DNS. Di dunia *nix (Unix/Linux) biasanya axfrdns. Pertimbangan yang diambil karena
dipakai program yang bernama named dari paket aplikasi ini yang paling sering dipakai.
BIND, sedangkan di sisi klien disebut dengan Dalam lapisan-lapisan TCP/IP, tinydns bekerja
resolver. di lapisan UDP bukan di lapisan TCP. Karena itu
Database DNS mempunyai struktur yang mirip tinydns mempunyai respons yang lebih cepat,
dengan pohon yang terbalik atau direktori dalam akan tetapi mempunyai kelemahan panjang data
sistem operasi *nix. Struktur seperti ini bisa dilihat yang bisa disampaikan sangat terbatas. Hal ini
pada Gambar 1. disebabkan protokol UDP tidak berorientasi pada
Kalau root direktori diberi lambang dengan koneksi, jadi agar bagian-bagian data tidak hilang
karakter garis miring (/), dalam DNS root harus dikirim dalam paket yang kecil.
dilambangkan dengan karakter titik (.). Antara Kesederhanaan dan optimasi database tinydns
nama domain dan sub-domain dipisahkan dengan juga menyumbang pada unjuk kerja. Semua
karakter titik juga. aplikasi dalam djbdns memakai database statik
DNS memegang peranan penting dalam dalam format cdb. Akibatnya Anda harus selalu
komunikasi melalui Internet. Karena kita mengonversi file text data DNS menjadi format
mengetahui komputer saling mengenal dan cdb ini jika ada perubahan yang Anda lakukan
berkomunikasi memakai nomor IP. Sedangkan terhadap data DNS. Akan tetapi, Anda tidak perlu
manusia lebih mudah berkomunikasi dengan khawatir, yang perlu dilakukan untuk melakukan
nama. Sebagai contoh, lebih mudah bagi kita konversi ini hanyalah menjalankan perintah make.
mengirim e-mail dengan alamat Karena layanan DNS sangat penting, maka
salman@openware.or.id, daripada perlu adanya server cadangan yang melayani
salman@[202.159.11.155]. Demikian juga akan sebuah domain. Paket BIND menyediakan
lebih mudah mengingat nama host mekanisme penggandaan layanan dengan nama
www.salman.or.id dari pada nomor IP-nya. zone transfer. Layanan ini sudah dimasukkan
Jika Anda ingin lebih tahu lebih dalam dalam program utama yang bernama named.
mengenai Domain Name System ini, saya Layanan yang sama, diimplementasikan di
anjurkan untuk membaca DNS HOWTO tulisan djbdns dengan menjalankan aplikasi terpisah.
Nicolai Langfeldt, Jamie Norris, dkk. Buku Program tersebut bernama axfrdns. Kalau tinydns
karangan Paul Albitz dan Cricket Liu yang berjudul berjalan di lapisan UDP dan mendengarkan pada
DNS and BIND sangat lengkap membahas teori port 53, maka axfrdns berjalan pada lapisan TCP
dan cara kerja DNS. Dalam tulisan ini pembahasan dengan port yang sama, sehingga kedua layanan

www.infolinux.web.id INFOLINUX APRIL 2003 73


Tutorial DNS
GTK

 ucspi-tcp, peranti lunak ini bisa Anda dapatkan


dari URL:
 http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
 http://sas.docspages.com/software/ucspi-
tcp-0.88.tar.gz
 djbdns, peranti lunak ini bisa Anda dapatkan
dari URL:
 http://cr.yp.to/djbdns/djbdns-1.05.tar.gz
 http://sas.docspages.com/software/djbdns-
1.05.tar.gz

daemontools
Paket program daemontools adalah sekumpulan
program untuk mengadministrasi program-
program yang akan dijalankan sebagai server/
daemon. Dalam paket ini juga terdapat program
untuk mencatat aktivitas server.
Ikuti langkah-langkah berikut untuk meng-
instalasi paket program daemontools secara
manual:


Struktur
Database ini bisa berjalan pada saat bersamaan. Dan  Buat direktori /package/
DNS
biasanya kedua program ini mengambil data dari # mkdir -p /package
sumber yang sama, yaitu file /etc/tinydns/root/ # chmod 1755 /package
data.cdb.
Sebenarnya ada cara lain yang lebih bagus dan  Urai file paket program dalam direktori /
aman untuk membuat server DNS cadangan, yaitu package/
dengan cara menyalin setiap perubahan file data di # tar -xzv -C /package/ -f daemontools-0.76.tar.gz
server utama ke server-server cadangan tersebut.
Anda bisa menggunakan program rsync atau scp.  Kompilasi dan setup daemontools
Dengan cara ini konsep zone transfer sudah tidak # cd /package/admin/daemontools-0.76/
berlaku lagi. # package/install
Program ketiga yang akan kita bahas adalah
dnscache. Program ini akan kita perlukan jika kita Proses setup akan membuat direktori /service/
tidak ingin membangun dns server sendiri. Ia akan dan /command/. Selain itu, pada file /etc/inittab
menyimpan setiap permintaan penerjemahan DNS akan ditambahkan baris:
yang didapatkan dari server-server DNS di SV:123456:respawn:/command/svscanboot
Internet. Jika dnscache menerima permintaan dari
resolver, dia akan meneruskan ke server-server Itu untuk distribusi Linux yang menganut
DNS di Internet. Setelah jawaban yang benar System V. Tapi jika file tersebut tidak ada, maka
didapatkan, kemudian akan disimpan ke dalam akan ditambahkan pada file /etc/rc.local baris:
cache. Jika nanti ada resolver meminta csh -cf ‘/command/svscanboot &’
penerjemahan nama dengan nama domain yang
sudah ada dalam cache, maka akan diambilkan Proses ini juga akan mengirimkan pesan pada
dari cache. init untuk membaca ulang file konfigurasinya,
yang juga berarti langsung menjalankan program
Instalasi djbdns svscanboot. Program ini akan selalu diawasi oleh
Untuk menjalankan DNS dengan djbdns init supaya tidak mati.
diperlukan tiga paket peranti lunak, yaitu: svscanboot menjalankan program svscan,
 daemontools, peranti lunak ini bisa Anda yang akan selalu mengawasi direktori /service/.
dapatkan dari URL: Jika program ini melihat keberadaan sebuah
 http://cr.yp.to/daemontools/daemontools- subdirektori dalam direktori /service/, ia akan
0.76.tar.gz menjalankan script yang bernama run di
 http://sas.docspages.com/software/ subdirektori tersebut. Tentu saja script tersebut
daemontools-0.76.tar.gz harus bisa dieksekusi.

74 INFOLINUX APRIL 2003 www.infolinux.web.id


Tutorial DNS
GTK

ucspi-tcp Untuk mempermudah pembahasan, anggap


Paket program ucspi-tcp terdiri dari program server kita akan mensetup sebuah layanan dns yang
dan beberapa program aplikasi kecil lainnya. Paket melayani domain salman.or.id dan penerjemahan
progam ini berfungsi untuk membangun aplikasi nomor IP 192.168.1.*.
client-server dengan mudah. Sekadar Anda tahu Setup tinydns sangat mudah. Jika Anda
saja, UCSPI sendiri adalah kependekan dari UNIX mengikuti langkah-langkah yang saya berikan di sini,
Client-Server Program Interface. Anda tidak akan menemukan masalah yang berarti.
Paket peranti lunak ini bisa menggantikan  Langkah pertama, Anda harus menyiapkan user
posisi inetd/xinetd yang biasanya dijadikan yang akan menjalankan server dns dan log-
komponen standar dalam semua distribusi linux. nya. Standard user-user ini adalah tinydns dan
ucspi-tcp diklaim mempunyai kelebihan dnslog. Akan tetapi, Anda boleh memakai
dibandingkan dengan inetd/xinetd. Salah satu nama user yang lainnya.
kelebihannya adalah proses koneksi yang terjadi # useradd -d /etc/tinydns -s /dev/null tinydns
bersamaan bisa dibatasi dengan jumlah tertentu. # useradd -d /etc/tinydns -s /dev/null dnslog
Kelebihan lain bisa Anda lihat di situs resminya di
http://cr.yp.to. User-user tersebut tidak perlu memiliki privilege
Ikuti langkah-langkah berikut secara bertahap: apapun, tetapi harus bisa menjalankan program.
 Download file dan salin ke direktori /usr/local/  Kedua, jalankan perintah berikut untuk
src/ menyalin file-file yang diperlukan oleh tinydns.
# cp ucspi-tcp-0.88.tar.gz /usr/local/src/ # tinydns-conf tinydns dnslog /etc/tinydns
192.168.1.20
 Urai file.
# cd /usr/local/src/ /etc/tinydns adalah root direktori tinydns,
# tar -xzvf ucspi-tcp-0.88.tar.gz sedangkan 192.168.1.20 adalah nomor IP
komputer termpat kita akan menjalankan
 Kompilasi dan setup paket program layanan tinydns.
# cd ucspi-tcp-0.88 • Ketiga, informasikan pada program svscan
# make bahwa kita akan menjalankan layanan dns.
# make setup check Program ini adalah bagian dari paket
daemontools. Jalankan perintah:
djbdns # ln -s /etc/tinydns /service
Instalasi paket djbdns dapat dilakukan dengan
langkah-langkah berikut:  Keempat, buat database DNS. Tambahkan
 Setelah Anda download file djbdns- domain salman.or.id dan 1.168.192 untuk
1.05.tar.gz, salin ke direktori /usr/local/src/, permintaan reverse-nya.
dengan perintah: # cd /service/tinydns/root/
# cp djbdns-1.05.tar.gz /usr/local/src/ # ./add-ns salman.or.id 192.168.1.20
# ./add-ns .1.168.192.in-addr.arpa 192.168.1.20
 Uraikan file tersebut. # make
# cd /usr/local/src/
# tar -xzvf djbdns-1.05.tar.gz Hasil dari perintah-perintah tersebut adalah dua
buah file bernama data dan data.cdb. File yang
 Kemudian lakukan proses kompilasi dan terakhir disebut ini adalah hasil dari perintah
instalasi, dengan perintah: make yang berfungsi untuk membuat file
# cd djbdns-1.05 database dengan format cdb dari file text. Isi
# make file text tersebut adalah:
# make setup check .salman.or.id:192.168.1.20:a:259200
.1.168.192.in-addr.arpa:192.168.1.20:a:259200
Setup tinydns
Setelah djbdns diinstalasi, ia belum berfungsi Anda tidak perlu pusing-pusing memikirkan
sebagai DNS. Untuk bisa melayani permintaan format file text yang agak eksentrik ini. Nanti kita
dari program-program yang ingin menerjemahkan akan bahas kembali untuk memahami apa artinya.
nama menjadi nomor IP, djbdns harus  Langkah terakhir, kita harus mencoba name
dikonfigurasi sesuai dengan kebutuhan. server kita apakah sudah berfungsi, sebelum

www.infolinux.web.id INFOLINUX APRIL 2003 75


Tutorial DNS
GTK

mempelajari lebih dalam lagi djbdns. Untuk menambahkan mail server untuk
# dnsq a salman.or.id 192.168.1.20 domain tertentu gunakan perintah add-mx.
1 salman.or.id: # ./add-mx salman.or.id 192.168.1.20
82 bytes, 1+0+1+0 records, response, authorita # make
tive, noerror
query: 1 salman.or.id Apabila perintah-perintah di atas Anda
authority: salman.or.id 2560 SOA a.ns.salman.or.id lakukan, file /etc/tinydns/root/data, akan seperti ini:
hostmaster.salman.or.id 1045229519 16384 .salman.or.id:192.168.1.20:a:259200
2048 1048576 2560 .1.168.192.in-addr.arpa:192.168.1.20:a:259200
=fariz.salman.or.id:192.168.1.192:86400
Tentu saja ini harus Anda lakukan setelah =salma.salman.or.id:192.168.1.20:86400
Anda mengisi file /etc/resolv.conf dengan nomor +mail.salman.or.id:192.168.1.20:86400
IP dari komputer yang sedang Anda setup sebagai @salman.or.id:192.168.1.20:a::86400
name server. Dan selamat, Anda sudah memiliki
dns server yang siap menjalankan tugasnya! Format data tinydns
Format perintah dnsq adalah: Tinydns mencari informasi tentang domain dari file
dnsq type name server database dengan format cdb, namanya data.cdb.
Seperti telah disebutkan sebelumnya, file ini
di mana, type adalah resource record apa yang berasal dari file yang bernama data. File yang
kita inginkan misalnya, a, ns, any, mx, txt, soa. disebutkan terakhir inilah yang akan kita bahas
Sedangkan name adalah nama host lengkap atau lebih lanjut.
nama domain dan server adalah name server Kalau Anda jeli melihat contoh file data yang
tujuan. dihasilkan dari script-script yang kita jalankan di
bagian-bagian sebelumnya, bisa Anda lihat ada
Menambahkan data empat hal:
Dalam paket djbdns sudah disediakan script-script  Informasi nama name server diawali dengan
untuk menambahkan data ke dalam database. karakter titik (.).
Pekerjaan yang sering dikerjakan dalam mengelola  Informasi nama host diawali dengan karakter
dns adalah: sama-dengan (=).
 Menambahkan nama host.  Informasi nama alias selalu diawali dengan
 Menambahkan alias host. karakter plus (+).
 Menambahkan informasi mail server untuk  Informasi nama mail server selalu diawali
domain. dengan karakter at-sign (@).
 Menambahkan informasi name server untuk
domain. Mari kita lihat satu per satu isi dari file data
 Mendelegasikan sebuah sub-domain kepada tersebut. Lihat dua baris yang berisi informasi
server dns yang lain. mengenai name server berikut ini:
.salman.or.id:192.168.1.20:a:259200
Jalankan perintah-perintah di bagian ini dari .1.168.192.in-addr.arpa:192.168.1.20:a:259200
root direktori tinydns, /service/tinydns/root/.
Untuk menambah hostname bisa dipakai Pola keduanya sama, yaitu:
perintah seperti ini: .nama-domain:nomor-ip:name-server:ttl
# ./add-host fariz.salman.or.id 192.168.1.192
# ./add-host salma.salman.or.id 192.168.1.20 Nama-domain harus dalam bentuk Full
# make Qualified Domain Name (FQDN) dan diawali
dengan karakter titik. Name server utama untuk
Jika Anda mencoba menambahkan nama baru domain ini adalah name-server.ns.nama-domain,
dengan nomor IP yang sudah pernah didaftarkan jika name-server tidak mengandung tanda titik.
akan ditolak. Pada dasarnya sebuah server hanya Akan tetapi, jika tidak ada tanda titik maka name-
memiliki satu nama, tapi jika ingin sebuah server/ server dipakai sebagai name server tanpa
host bisa memiliki nama lain Anda bisa ditambahkan nama-domain di belakangnya.
menambahkan nama alias ini ke file data. nomor-ip adalah nomor IP dari name-
# ./add-alias mail.salman.or.id 192.168.1.20 server.ns.nama-domain. Setiap domain boleh
# make diberikan name server lebih dari satu, akan tetapi

76 INFOLINUX APRIL 2003 www.infolinux.web.id


Tutorial DNS
GTK

yang dianggap server utama hanya satu saja. Perbedaan kedua jenis cache ini hanya terletak
Alamat kontak administrator adalah pada tempat meletakkan cache DNS. Cache
hostmaster@nama-domain. internal biasanya dipakai untuk akses melewati
Pada contoh ini, jika name-server adalah nomor IP 127.0.0.1, yang akan diterjemahkan
ns..salman.or.id, maka nama ini yang akan dipakai sebagai localhost. Sedangkan layanan cache DNS
sebagai NS resource record. eksternal terletak pada nomor IP ethernet card.
Time to live atau disingkat ttl adalah batas Cara men-setup cache DNS server seperti ini:
waktu—dalam detik—data DNS bisa disimpan  Tambahkan user yang akan menjalankan
dalam cached. cachedns:
Dua baris berikutnya berisi informasi tentang # useradd -d /dev/null -s /dev/null dnscache
hostname, seperti ini: # useradd -d /dev/null -s /dev/null dnslog
=fariz.salman.or.id:192.168.1.192:86400
=salma.salman.or.id:192.168.1.20:86400  Konfigurasikan dnscache dengan perintah:
# dnscache-conf dnscache dnslog /etc/dnscache/
Pola keduanya sama, yaitu:
=nama-host:nomor-ip:ttl  Aktifkan server baru ini dengan daemontools,
dengan cara membuat link di direktori service.
Informasi ini menentukan nomor-ip # ln -s /etc/dnscache/ /service/
diasosiasikan dengan nama-host. Nama host
harus disebutkan lengkap dengan domainnya. Untuk melihat bahwa server dnscache kita
Alias dari hostname direpresentasikan dengan sudah berjalan, perintahkan:
baris, # netstat -pln|grep dnscache
+mail.salman.or.id:192.168.1.20:86400
Hasilnya akan ditampilkan seperti berikut:
Format ini sama dengan informasi hostname (Not all processes could be identified, non-owned
hanya disini diawali dengan tanda plus (+). process info
Sedangkan, informasi tentang mail server will not be shown, you would have to be root to see it
sebuah domain diberikan dengan all.)
@salman.or.id:192.168.1.20:a::86400 tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 5038/
dnscache
Polanya adalah: udp 0 0 127.0.0.1:53 0.0.0.0:* 5038/
@nama-domain:nomor-ip:mail-server:bobot:ttl dnscache

Aturan yang berlaku di sini sama dengan Terlihat di sini bahwa dnscache local bekerja
aturan yang berlaku untuk name server. Tetapi ada di nomor IP 127.0.0.1 port 53 dengan protokol
informasi tambahan di sini, yaitu bobot. Anda bisa UDP dan TCP.
memberikan beberapa mail server untuk satu nama Untuk membuat server cache DNS eksternal
domain. Mail server akan diakses sesuai dengan prosesnya sama dengan cache internal hanya ada
urutan bobot ini. sedikit perbedaan saat menjalankan program
dnscache-conf dan saat membuat soft link.
Setup dnscache # dnscache-conf dnscache dnslog /etc/dnscachex
Tanpa menggunakan cache, setiap kita mencari 192.168.1.192
informasi tentang sebuah domain maka server # ln -s /etc/dnscachex /service/
DNS akan sibuk menjawab pertanyaan yang sama
berkali-kali. Jika proses ini dilakukan untuk banyak Setup axfrdns
client, akibatnya beban kerja dari DNS server akan Untuk memberi kemudahan proses back up data
berat. Seyogyanya setiap administrator sistem dari sebuah name server ke name server yang
menyiapkan paling tidak sebuah server cache kedua, djbdns menyertakan program axfrdns
DNS. dnscache adalah bagian dari paket djbdns. untuk menjaga kompatibilitas dengan BIND.
Ia bekerja pada port 53 dengan protokol TCP dan Program ini berguna jika Anda ingin menjalankan
UDP. back up name server Anda dengan konsep zone-
Ada dua jenis cache yang bisa kita buat, yaitu: transfer milik BIND.
 Cache internal. Akan tetapi, jika Anda menjalankan semua
 Cache external. DNS server Anda, baik primary maupun second-

www.infolinux.web.id INFOLINUX APRIL 2003 77


Tutorial DNS
GTK

ary, dengan djbdns sangat dianjurkan tidak  dnnsip, dipakai untuk mencari nomor IP dari
menggunakan konsep zone-transfer ini. Lebih baik sebuah full qualified domain name atau
gunakanlah program bantu lain yang lebih aman disingkat fqdn. Format dan contoh:
dan cepat, misalnya scp atau rsync. scp adalah dnsip [fqdn] [fqdn] ...
bagian dari paket openSSH. # dnsip xyz.openware.or.id salman.or.id
Jika Anda masih berkeras mau menggunakan
zone-transfer, langkah-langkah berikut bisa  dnsmx, dipakai untuk mencari mail server/MX
dijalankan untuk mengaktifkan axfrdns: record dari sebuah domain. Format dan
 Buatlah user axfrdns dan dnslog jika belum ada. contoh:
# useradd -d /dev/null -s /dev/null axfrdns dnsmx fqdn
# useradd -d /dev/null -s /dev/null dnslog # dnsmx salman.or.id

 Setup axfrdns dengan perintah:  dnsname, berfungsi untuk melakukan reverse


# axfrdns-conf axfrdns dnslog /etc/axfrdns /etc/ lookup sebuah nomor IP untuk mengetahui
tinydns 192.168.1.20 nama host-nya. Format dan contoh:
dnsname nomor_ip
 Tambahkan no IP host yang boleh melakukan # dnsname 202.159.11.156
zone transfer beserta domain apa saja. Untuk
menambahkan edit file /etc/axfrdns/tcp.  dnsq, berguna untuk melakukan query
Sebagai contoh isi file ini adalah: nonrekursif terhadap sebuah dns server. Jadi
# sample line: query tidak akan dilacak dari name server root.
1.2.3.4:allow,AXFR=”heaven.af.mil/3.2.1.in- Format dan contoh:
addr.arpa” dnsq type name server
192.168.1.192:allow,AXFR=”salman.or.id” # dnsq a salman.or.id ns3.sslguarded.com
:deny
Catatan:
Kemudian onversi file text ini menjadi format Server boleh berupa nomor IP atau nama server.
cdb dengan perintah: Sedangkan type boleh berisi type RR, misalnya a,
# make mx, ns, soa, dan lain sebagainya.

Dengan isi file seperti ini host yang boleh  dnsqr, untuk mencari type RR tertentu di
melakukan zone transfer hanyalah host dengan IP bawah domain. Format dan contoh:
192.168.1.192. Dan zone yang boleh ditransfer dnsqr type name
hanyalah salman.or.id. Jika Anda menginginkan # dnsqr a google.com
zone lain juga bisa ditransfer dari host yang sama,
tambahkan zone itu ke dengan format yang  dnstrace, berguna untuk melacak name server
ditunjukkan pada baris yang diberi remark di atas. apa saja yang mempengaruhi resolusi sebuah
Baris ketiga menetapkan host lain akan ditolak jika type RR tertentu dari sebuah domain. Proses
melakukan transfer zone. pelacakan dimulai dari satu atau lebih name
 Langkah terakhir jalankan service. server root. Format dan contoh:
# ln -s /etc/axfrdns/ /service/ dnstrace t fqdn r
# dnstrace a salman.or.id a.root-servers.net
Sekian pembahasan singkat dari instalasi sampai
setup name server menggunakan djbdns. Segala  dnstxt, dipakai untuk mencari RR TXT dari
kritik, komentar, koreksi, alamatkan ke sebuah domain. Format dan contoh:
sas@salman.or.id. Versi terbaru dari dokumen ini dnstxt fqdn
bisa Anda dapatkan dari url http:// # dnstxt openware.or.id
www.salman.or.id/djbdns/.
Daftar rujukan
Menggunakan utilitas paket  DNS HOWTO, Nicolai Langfeldt, Jamie Norris
djbdns dkk.
Dalam paket djbdns selain berisi peranti lunak dns  DNS and BIND, Paul Albitz dan Cricket Liu.
server-nya sendiri, juga terdapat software-software  http://cr.yp.to/djbdns/djbdns.html.
client untuk proses troubleshooting. Salman Agus Supriadi (http://salman.or.id)

78 INFOLINUX APRIL 2003 www.infolinux.web.id


Tutorial
TutorialDHCP
GTK

Membangun Jaringan dengan DHCP


S
erver DHCP (Dynamic Host Configuration
Protocol) merupakan program aplikasi
yang berjalan di server, yang memung-
kinkan untuk PC client yang terhubung ke server
tidak perlu melakukan pengaturan nomor IP.
Karena nomor IP sudah ditentukan oleh server.

Konfigurasi server DHCP


Untuk melakukan konfigurasi DHCP, Anda dapat
mengedit file /etc/dhcpd.conf. Beberapa parameter
harus diawali dengan kata “option”. Semua
parameter termasuk option, yang dinyatakan network Memberi alamat
sebelum penggunaan tanda {} disebut dengan subnet 192.168.0.0 netmask IP, gateway, dan
global parameter. 255.255.255.0 { DNS kepada
Adapun langkah-langkahnya adalah sebagai parameters for subnet setiap komputer
berikut: range 192.168.0.1 192.168.0.31; bisa membuat
1 . Pada konsol, login sebagai root: } capek. Apalagi
Login: root subnet 192.168.0.32 netmask untuk jaringan
Password: password 255.255.255.0 { besar atau
parameters for subnet banyak
2 . Lakukan editing pada file /etc/dhcpd.conf. range 192.168.0.33 192.168.0.63; komputer yang
[root@localhost:~] # vi /etc/dhcpd.conf } datang dan
}
pergi. Tiba
3 . Di bawah ini, diperlihatkan router
saatnya Anda
menggunakan alamat IP 192.168.0.254 dan 5 . Setelah selesai, kita lanjutkan dengan group
mengatur semua
DNS (hanya satu) menggunakan alamat IP sharing, Anda terlebih dahulu harus
itu secara
192.168.0.254 mengetahui alamat (mac) atau nomor seri dari
subnet 192.168.1.0 netmask 255.255.255.0 { setiap kartu jaringan yang akan Anda
otomatis melalui
option routers 192.168.0.254; daftarkan ke DHCPD. Kemudian masukkan server DHCP.
option subnet-mask 255.255.255.0; nomor seri kartu jaringan tersebut ke dalam
option domain-name “contoh.com”; kalimat hardware ethernet. Seperti tampak
option domain-name-servers 192.168.1.1; pada contoh berikut ini:
option time-offset -5; # Eastern group {
Standard Time option routers 192.168.0.254;
range 192.168.0.10 192.168.0.100; option subnet-mask 255.255.255.0;
} option domain-name “ai.co.id”;
option domain-name-servers 192.168.0.1;
4 . Kemudian kita tambahkan dengan option time-offset -5; # Eastern
penggunaan DNS ns1 dan ns2. Fungsi dari Standard Time
ns2 adalah untuk melakukan back up jika ns1 host masaji {
mengalami crash atau shutdown. Kita option host-name “apex.co.id”;
tambahkan juga dengan group sharing, hardware ethernet 00:A0:78:8E:9E:AA;
subnet, host, dan range alamat IP client yang fixed-address 192.168.0.4;
kita izinkan untuk mengakses server. }
shared-network name { host hartx {
option domain-name “server.net”; option host-name “raleigh.ai.co.id”;
option domain-name-servers hardware ethernet 00:A1:DD:74:C3:F2;
ns1.server.net, ns2.server.net; fixed-address 192.168.0.6;
option routers 192.168.0.254; }
more parameters for EXAMPLE shared- }

www.infolinux.web.id INFOLINUX APRIL 2003 79


Tutorial GTK
DHCP

langsung bisa mengetahui aktivitas user yang


Anda kehendaki. Anda bisa melakukan
pencatatan nomor seri atau mac address dari
setiap client yang terhubung ke server
sebelum Anda daftarkan ke DHCPD, untuk
selanjutnya Anda sertakan seperti contoh di
bawah ini.
host masaji {
option host-name “apex.example.com”;
hardware ethernet 00:A0:78:8E:9E:AA;
fixed-address 192.168.0.4;
}

8 . Jika Anda menginginkan penggunaan DHCP


hanya pada satu pintu, dalam arti hanya
menggunakan satu kartu jaringan, Anda bisa
menambahkan kalimat seperti di bawah ini:
# Command line options here


Gambar 1.
Setup Klien 6 . Selanjutnya, kita masukkan parameter range DHCPDARGS=eth0
DHCP dengan dari alamat IP klien yang bisa mengakses
Drakconf dan server. Pada contoh di bawah ini, alamat 9 . Simpan hasil pekerjaan Anda.
Netconf
range tersebut berkisar dari 192.168.0.10 10. Jalankan DHCPD Server dengan mengetikkan
sampai dengan 192.168.0.100 perintah berikut ini:
default-lease-time 600; [root@localhost:~] # /etc/init.d/dhcpd start
max-lease-time 7200;
option subnet-mask 255.255.255.0; 11. Jika ingin diaktifkan oleh sistem secara
option broadcast-address 192.168.0.255; otomatis pada saat PC dinyalakan, ada dua
option routers 192.168.0.254; cara untuk menjalankan DHCPD secara
option domain-name-servers 192.168.0.1, otomatis.
192.168.0.2;
option domain-name “contoh.com”; Menggunakan chkconfig
subnet 192.168.0.0 netmask 255.255.255.0 { a. Pada konsol, lakukan login sebagai root
range 192.168.0.10 192.168.0.100; login: root
} Password: password (ganti dengan pasword Anda)

7 . Jika Anda memutuskan untuk melakukan b. Masuk ke direktori /etc/init.d


sharing IP secara statis, di mana Anda secara Selanjutnya Anda masuk ke direktori /etc/init.d,
dengan mengetikkan perintah sebagai berikut:

Gambar 3. [root@localhost:~] # cd /etc/init.d
Network
pada
c. Mengaktifkan service
Control
Panel Untuk mengaktifkan service dhcpd, ketikkan
Windows sintaks perintah sebagai berikut:
[root@localhost:init.d] # chkconfig dhcpd 345

Selanjutnya DHCPD akan dijalankan secara


otomatis oleh sistem pada saat Anda
menghidupkan PC.

Menggunakan program ntsysv


ntsysv merupakan suatu program aplikasi yang
berfungsi untuk menjalankan service pada sistem
dengan cara yang interaktif. Adapun langkah-
langkahnya adalah sebagai berikut:

80 INFOLINUX APRIL 2003 www.infolinux.web.id


Tutorial
TutorialDHCP
GTK

 4 . Fungsi tersebut di atas adalah


Gambar 2.
Menjalankan
memerintahkan sistem untuk
Control Panel senantiasa menjalankan
di Windows network pada saat komputer
setiap kali dinyalakan.
5 . Kemudian lakukan editing
pada file etc/sysconfig/
network-scripts/ifcfg-eth0,
ketikkan perintah berikut ini:
[root@localhost:~] # vi /etc/
sysconfig/network-
scripts/ifcfg-eth0

6 . Pada file etc/sysconfig/


network-scripts/ifcfg-
a. Pada konsol, lakukan login sebagai root eth0,isikan kalimat sebagai


login: root berikut: Gambar 4.
Memilih
Password: password (ganti dengan pasword Anda) DEVICE=eth0
Protokol
BOOTPROTO=dhcp dan Kartu
b. Menjalankan ntsysv ONBOOT=yes Jaringan
Windows
Untuk menjalankan ntsysv, Anda tinggal
mengetikkan sintaks perintah sebagai berikut: 7 . Untuk mengaktifkannya, Anda bisa
[root@localhost: init.d] # ntsysv mengetikkan perintah berikut ini:
root@localhost # /etc/init.d/network restart
c. Mengaktifkan service dhcpd
Sekarang Anda bisa mengaktifkan service Setting konfigurasi client Windows
dhcpd, dengan cara mengarahkan pointer pada Untuk menjalankan DHCP pada Windows client,
tulisan dhcpd, kemudian tekan tombol spasi, caranya adalah sebagai berikut:
sehingga tampak tanda bintang pada bagian 1 . Jalankan sistem operasi Windows.
sebelah kiri service dhcpd. 2 . Pada menu Start, klik Control Panel (Gambar 2).
d. Kemudian tekan tombol [Ok] untuk keluar dari 3 . Pilihlah bagian Network
jendela service. (Gambar 3).
e. Sekarang, DHCP Server akan langsung berjalan 4 . Kemudian pada TCP/
secara otomatis, pada saat Anda menyalakan IP, klik Properties
PC. (Gambar 4).
5 . Pilihlah tab IP Address
Konfigurasi DHCP Client sehingga muncul
Setting konfigurasi client Linux Gambar 5.
Untuk melakukan konfigurasi pada client Linux, 6 . Klik pada bagian Obtain
Anda bisa menggunakan tool yang disediakan IP address automati-
setiap distro (misalnya netconf dan drakconf cally.
seperti pada Gambar 1) atau mengedit file /etc/ 7 . Klik OK.
sysconfig/network seperti langkah-langkah 8 . Restart Windows untuk
berikut: melihat efeknya. (Inilah
1 . Pada konsol, login sebagai root: bedanya dengan Linux


Gambar 5.
Login: root yang tidak harus restart ketika mengubah Setup
Password: password konfigurasi jaringan). Windows
sebagai
Klien DHCP
2 . Lakukan editing pada file /etc/sysconfig/ Dengan cara demikian, setiap kali client
network, sebagai berikut: Windows menyalakan komputer, maka secara
[root@localhost:~] # vi /etc/sysconfig/network otomatis akan menghubungi server terlebih dahulu
untuk meminta alamat IP dan informasi jaringan
3 . Tambahkan kalimat seperti di bawah ini: Internet lainnya. Selamat mencoba!
NETWORKING=yes R. Kresno Aji (masaji@ai.co.id), Atlantis Indonesia

www.infolinux.web.id INFOLINUX APRIL 2003 81

Anda mungkin juga menyukai