Your SlideShare is downloading. ×
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
50 tutorial 11
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

50 tutorial 11

7,372

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
7,372
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
106
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | TutorialMoodleE-Learning dengan MoodleAnda dapat membangun sistem pendidikan secara elektronis (e-learning) dengan mudahdan murah di Linux. Anda dapat menggunakan Apache, PHP, MySQL, plus paket Moodle.Semua itu tersedia secara bebas (free) dan open source.S eiring kemajuan teknologi dan peruba- bantu pendidik dalam membuat suatu kur- open source. Oleh karena itu, Moodle sesuai han tren serta gaya hidup manusia yang sus online yang berkualitas dengan mudah digunakan di lingkungan pendidikan. Di cenderung bergerak secara dinamis tanpa membangun dari awal, CMS yang samping itu, Moodle bisa dimodifikasi dan(mobile), kebutuhan akan proses belajar jarak dimaksud adalah paket software dengan na- disesuaikan dengan kultur yang ada di In-jauh atau yang biasa disebut dengan tele- ma Moodle (http://www.moodle.org), yang donesia.edukasi semakin meningkat pula. E-learn- dikembangkan oleh Martin Dougiamas.ing sebagai salah satu bagian dari teleedukasi Apa yang menjadi keunggulan dan yang Kebutuhan untuk Instalasi Moodlememberikan alternatif cara belajar baru. Mu- kita dapatkan dari membangun e-learning Moodle dikembangkan di lingkunganrid dan guru tidak berada dalam ruang dan dengan menggunakan Moodle: platform LAMP (Linux, Apache, MySQL,waktu yang sama. Meskipun demikian, pros- 1. Sederhana, efisien, ringan dan kompati- dan PHP) namun telah dites juga denganes belajar dan mengajar tetap dapat berjalan bel dengan banyak browser. database PostgreSQL. Moodle juga pernahdalam lingkungan virtual. Oleh karena itu, 2. Mudah cara instalasinya serta mendukung diuji pada lingkungan Windows XP dane-learning sering disebut juga dengan Virtual banyak bahasa, termasuk Indonesia. Netware 6.Learning Environment (VLE). 3. Tersedianya manajemen situs untuk peng- Untuk menjalankan Moodle di Linux aturan situs keseluruhan, mengubah the- diperlukan:Moodle: Course Management me, menambah module, dan sebagainya. 1. Webserver Apache.System (CMS) 4. Tersedianya manajemen pengguna. 2. PHP versi 4.1.0 ke atas, dengan settingMungkin sebelumnya Anda sudah tahu 5. Manajemen kursus, penambahan jenis sebagai berikut:dengan istilah CMS dengan aplikasi-ap- kursus, pengurangan, atau pengubahan Dukungan terhadap pustaka GD diak-likasinya seperti PHP Nuke, Post Nuke atau kursus. tifkan, mendukung JPG dan PNG.MamboServer, mungkin Anda berpikiran 6. Modul Chat, modul pemilihan (polling), Dukungan terhadap pustaka zlibsingkatan di atas salah karena selama ini modul forum, modul untuk jurnal, mo- diaktifkan.CMS yang kita kenal adalah singkatan dari dul untuk kuis, modul untuk survai dan Dukungan terhadap session diaktif-Content Management System bukan Course workshop, dan masih banyak lainnya. kan.Management System, namun tahukah Anda 7. Free dan open source software. Dukungan terhadap upload file di-CMS yang penulis maksudkan memang aktifkan.Course Management System, yaitu suatu Ini sejalan dengan kebijakan pemerintah Dukungan terhadap Safe Mode haruspaket software yang didesain untuk mem- dengan IGOS-nya, Moodle bersifat free dan dinonaktifkan.Gambar 1. Pengaturan variabel Moodle. Gambar 2. Pengaturan situs.50 INFOLINUX 11/2004 www.infolinux.web.id
  • 2. Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial TUTORIAL MoodleGambar 3. Pengaturan admin. Gambar 4. Halaman Depan moodle.3. Database server MySQL atau PotgreSQL. direktori yang berada di luar direktori web. >quit Versi Moodle selanjutnya juga akan # mkdir /home/data # mysqladmin -p reload mendukung software database lainnya. Cara lain, lindungi direktori data dengan Untuk kemudahan mengelola MySQLInstalasi Moodle membuat sebuah file .htaccess yang berisi gunakan phpMyAdmin atau mysqlcc.1. Ekstrak file Moodle baris berikut:Download Moodle dari http://moodle.org/ deny from all 5. Pengaturan Apache dan PHPdownload, misalnya moodle-latest-stable. Pastikan DirectoryIndex (pada httpd.conf)tgz. Versi terbaru sampai tulisan ini dibuat Pastikan bahwa web server Apache pada web server Anda di-setting agar lang-adalah versi 1.3.2. Copy ke folder sementara mempunyai permisi untuk menulis pada sung menjalankan file index.php sebagai(misal di /tmp) dan ekstrak file tersebut direktori data tersebut. Hal ini berarti owner halaman default (di samping index html,dengan perintah: dari direktori tersebut adalah nobody atau default.html, dan lain-lain). # tar -zxvf moodle-latest- apache. Jika Anda menggunakan Apache 2, tam- stable.tgz # chown apache.apache /home/data bahkan baris berikut pada httpd.conf: AcceptPathInfo onakan terdapat folder dengan nama Moodle. Meskipun dapat pula dilakukan dengan mengubah permisi direktori tersebut men- Pastikan setting di php.ini (biasanya2. Copy ke Root Document Apache jadi 777, namun cara ini kurang aman kare- terletak di /etc/php.ini) sebagai berikutCopy-kan direktori Moodle dan isinya ke na user lain bisa menghapus data Moodle. (catatan: On=Yes=1 dan Off=No=0):document root web server Anda (misal /var safe_mode = 0/www/html) dan sesuaikan dengan nama 4. Membuat database magic_quotes_gpc = 1institusi Anda. Misalnya saya melakukan Buat sebuah database kosong dengan nama magic_quotes_runtime = 0instalasi untuk departemen Teknik Perta- misalnya “tep” dengan pengguna khusus. file_uploads = 1nian IPB, maka nama folder-nya saya ganti Sebagai contoh “admintep”. Anda dapat session.auto_start = 0dengan “tep”. Bisa juga diletakkan di direk- menggunakan user root, namun tidak disa- session.bug_compat_warn = 0tori public_html pada masing-masing di- rankan dengan alasan keamanan. Contohrektori user atau diletakkan pada direktori perintah dari MySQL untuk membuat data- Jika tidak mempunyai hak akses padalain asalkan dibuat aliasnya pada httpd.conf base dengan nama tep: file httpd.conf atau php.ini pada server An-dari Apache. # mysql -u root -p da, maka Anda perlu membuat file .htaccess # cp -R moodle /var/www/html/tep password : (isikan dengan pada direktori utama Moodle. Hal ini hanya password anda, default tanpa bekerja pada web server Apache dan hanya3. Membuat direktori data password) ketika Overrides diizinkan. TambahkanBuat direktori data untuk menyimpan file >CREATE DATABASE tep; baris berikut:yang akan di-upload seperti dokumen kur- >GRANT SELECT,INSERT, DirectoryIndex index.php index.sus atau foto pengguna. Untuk alasan ke- UPDATE,DELETE,CREATE,DROP, html index.htmamanan, hal terbaik adalah direktori terse- INDEX,ALTER ON tep.* TO <ifDefine APACHE2>but tidak dapat diakses secara langsung me- admintep@localhost IDENTIFIED BY AcceptPathInfo onlalui web. Cara termudah adalah membuat ‘passwordadmintep’; </ifDefine> www.infolinux.web.id INFOLINUX 11/2004 51
  • 3. TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | TutorialMoodle $CFG->dbname = ‘tep’ ; //nama Arahkan browser Anda pada alamat situs php_flag magic_quotes_gpc = 1 database anda, misalnya http://agrinux.linux.net.ud/ php_flag magic_quotes_runtime $CFG->dbuser = ‘admintep’; tep. Kemudian akan tampil halaman awal = 1 //nama user database perjanjian lisensi dari Moodle. php_flag file_uploads = 1 $CFG->dbpass = Proses instalasi selanjutnya adalah pem- php_flag session.auto_start = 0 ‘passwordadmintep’; //password buatan tabel-tabel database yang dilakukan php_flag session.bug_compat_warn user database otomatis oleh Moodle. Kita hanya melaku- = 0 $CFG->prefix = ‘tep_’ ;//prefix kan klik pada link continue, dan mengikuti untuk nama tabel pada database proses instalasi selama tidak terdapat pesan Anda dapat juga Anda mendefinisikan $CFG->dbpersist =’false’ // kesalahan.ukuran maksimum file yang dapat di-up- apakah koneksi database dapat Contoh pesan kesalahan:load: digunakan ulang? Fatal error: of 8388608 bytes LimitRequestBody 0 //false --> setting exhausted (tried to allocate php_value upload_max_filesize 2M yang stabil 184320 bytes) in /var/www/html/ php_value post_max_size 2M //true --> kadang moodle/mod/workshop/lib.php on dapat meningkatkan kinerja line 2354 Cara termudah membuat file .htaccess $CFG->wwwroot =’http://agrinux.ini adalah dengan meng-copy dari lib/htacc- linux.net.id/tep’; //alamat Penulis sempat berkali-kali melakukaness pada direktori utama moodle dan edit situs Anda instalasi dan selalu mendapat pesan kesala-sesuai kebutuhan Anda. $CFG->dirroot =’/var/www/html/ han seperti di atas. Hingga akhirnya penu- cp lib/htaccess .htaccess tep’; //direktori utama moodle lis temukan solusinya di FAQ pada situs $CFG->dataroot =’/home/data’; Moodle (http://moodle.org). Kesalahan ini6. Edit file config.php $CFG->directorypermissions dikarenakan PHP mengizinkan masing-ma-Copy file config-dist.php pada direktori uta- =0777; //hak akses direktori sing proses untuk menggunakan sejumlahma moodle menjadi config.php. Edit config. data memori tertentu (secara default pada php.php dan sesuaikan dengan kebutuhan Anda. $CFG->admin =’admin’; // ini adalah 8 MB). Moodle terkadang perluBerikut ini contoh pengaturannya (kalimat pengaturan nama admin me-load banyak file (contoh: file bahasa danyang diawali dengan // adalah penjelasan file pustaka) untuk membuat halaman web.yang diabaikan oleh program). 7. Setup database, pengaturan situs, dan Versi development Moodle sekarang men- $CFG->dbtype = ‘mysql’ ; admin jalankan banyak plug-in yang dapat meng- //MySQL atau Postgres7 Coba jalankan apache dan mysql: habiskan limit memory untuk beberapa $CFG->dbhost = ‘localhost’; # /etc/init.d/httpd start halaman. Untuk mengatasi permasalahan //host mysql server # /etc/init.d/mysql start ini edit file php.ini pada bagian: memory_limit = 8M; Ganti menjadi: memory_limit = 16M; Jika Anda tidak punya hak akses pada file php.ini, maka tambahkan baris berikut pada file .htaccess yang telah dibuat sebelumnya. php_value memory_limit “16M” Kemudian restart apache Anda dan jalankan lagi Moodle melalui web browser. Sampailah kita pada tampilan form penga- turan variabel untuk admin yang berisikan konfigurasi variabel untuk menjalankan si- tus, seperti bahasa, waktu, pemilihan negara, host SMTP, user dan password SMTP, dan lain-lain, seperti terlihat pada Gambar 1. Setelah pengaturan variabel selesai, langkah selanjutnya adalah pengaturan si-Gambar 5. BCC e-learning dengan Moodle. tus yang meliputi nama situs, keterangan52 INFOLINUX 11/2004 www.infolinux.web.id
  • 4. Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial TUTORIAL Moodlehalaman depan, dan lain-lain. (Lihat Gam- Edit cron dengan perintah:bar 2). Setelah tahapan pengaturan situs ke- crontab -emudian diikuti dengan pengaturan admin,Gambar 3. Dan tambahkan sebuah baris berikut Setelah instalasi selesai, maka akan di- (crontab akan membawa Anda pada editortampilkan halaman depan dari situs, seperti teks vi):terlihat pada Gambar 4. */5 * * * * wget -q -O /dev/null http://agrinux.linux.net.ud/tep/8. Pengaturan jadwal dengan cron admin/cron.phpBeberapa modul pada Moodle memerlu-kan pengecekan secara kontinyu untuk Pasca Instalasimenjalankan perintah-perintah. Sebagai Setelah proses instalasi selesai, tugas ad-contoh, Moodle perlu mengecek forum min selanjutnya adalah menambah kursusdiskusi sehingga dapat mengirimkan sali- sesuai dengan institusi pendidikan yangnan kiriman kepada e-mail pengguna yang bersangkutan, melakukan konfigurasi situs,berlangganan. Skrip yang menjalankan menyesuaikan theme dan aktivitas lainnya.ini berada pada direktori admin pada file Moodle menyediakan secara lengkap doku-cron.php. Akan tetapi, skrip ini tidak dapat mentasi untuk administrasi seperti prosesberjalan sendiri sehingga diperlukan me- instalasi, upgrading, dokumentasi petunjukkanisme pengaturan supaya skrip ini dapat penggunaan untuk pengajar serta doku-berjalan secara reguler, misalnya setiap mentasi untuk pengembangan Moodle bagi5 atau 10 menit. Pada mesin Linux, me- para developer. Baca petunjuk dalam doku-kanisme tersebut dapat dilakukan dengan mentasi dan ikuti dengan saksama. Nikmaticron. Perlu dicatat bahwa antara komputer kemudahan yang diberikan moodle untukyang menjalankan cron dan komputer membangun sebuah portal e-learning.tempat Anda meletakkan file-file Moodletidak harus sama. Pengguna Moodle di Indonesia Sebagai langkah awal adalah menguji Berikut ini adalah daftar institusi penggunaskrip cron.php langsung dari web browser Moodle yang terdaftar di situs Moodle:Anda. Sebagai contoh, arahkan pada http:// Bandung Cyber CommunityBandungagrinux.linux.net.ud/tep/admin/cron.php. Cyber Community (http://www.bcc.Pastikan skrip tersebut berjalan, dan atur or.id/elearning).supaya skrip tersebut berjalan secara kon- Fakultas Matematika dan Ilmu Penge-tinyu. Anda dapat memanggil file cron.php tahuan Alam UGM (http://mipa.ugm.dengan menggunakan wget, perintahnya se- ac.id/moodle).bagai berikut: KIPPIKIPPI (http://www.riau2020.com/wget -q -O /dev/null http:// moodle).agrinux.linux.net.ud/tep/admin/ Kuliah OnLine IKIP Negeri Gorontalocron.php (Link tidak aktif). KursusKu.com-Kursus Online (http:// Dapat pula dengan menggunakan lynx, www.kursusku.com).web browser CLI (Command Line Inter- Physics OpenCoursePhysics OpenCourseface): (http://physiscs.or.id).lynx -dump http://agrinux.linux. Situs Elearning Forum SMK-TI Kaltimnet.ud/tep/admin/cron.php >/dev/ (http://www.smkti.net/elearning).null STB6 @ Sidharta.net (Link tidak aktif). Alternatif lain adalah menggunakan php Pada Departemen Teknik Pertanianversi CLI: IPB, Moodle dijalankan dalam lingkupphp /var/www/html/tep/admin/ intranet di lingkungan civitas akademikacron.php Teknik Pertanian IPB. Selamat menggu- nakan Moodle, jaya dan maju terus pendi- Jalankan perintah tersebut, misalnya se- dikan Indonesia.tiap 5 menit, dengan menggunakan cron. Sri Wiyana (wiyana@linuxmail.org) www.infolinux.web.id INFOLINUX 11/2004 53
  • 5. TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | TutorialKonquerorImage Gallerydengan KonquerorPunya koleksi gambar yang ingin ditampilkan di situs? Tidak perlu capai-capai mengetik-kan kode HTML. Gunakan saja Konqueror!K onqueror adalah tool yang hebat lu- apabila menginginkan hasil yang optimal. tori web yang berisikan galeri. Misal, penu- ar biasa. Tidak hanya mampu ber- Developer Konqueror mengerti kebu- lis membuat direktori Gallery yang memi- fungsi sebagai file manager dan web tuhan kita, dan dengan mengakses sebuah liki level sama dengan direktori Natures. Dibrowser, berbagai kelebihan aplikasi ini dan menu di Konqueror, image gallery dapat dalam direktori Gallery inilah, semua gam-saktinya arsitektur KDE telah menjadikan dibuat dalam hitungan detik. Dan hasilnya bar dan thumbnail akan diletakkan.kita jauh lebih mudah dalam menggunakan pun, tidak main-main! Langkah ketiga, jalankan Konqueror.komputer. Langkah pertama. Siapkan dahulu satu Kemudian, aktiflah di direktori root un- Salah satu fasilitas yang akan kita bahas direktori yang berisi gambar-gambar. Se- tuk gambar-gambar atau foto-foto Anda.kali ini adalah pembuatan image gallery. lanjutnya, Anda bisa membuat berbagai Pada komputer penulis, penulis harus aktifBanyak di antara kita yang memiliki koleksi tingkat direktori ke dalamnya. Konqueror pada direktori Natures. Setelah itu, akseslahfoto atau gambar yang gila-gilaan. Seandai- dapat diminta untuk melakukan pencarian menu Tools|Create Image Gallery. Sebuahnya saja kumpulan foto tersebut ingin kita secara rekursif. dialog akan ditampilkan untuk Anda.tampilkan ke situs dengan elegan, maka hal Berikut ini adalah contoh hirarki direk- Langkah keempat. Aktiflah pada ba-tersebut merupakan pekerjaan besar. tori yang penulis miliki: gian Look dialog tersebut. Bagian ini akan Tentu saja, kumpulan foto yang disaji- Natures mengatur penampilan umum halaman webkan elegan tidak hanya mengandalkan ke- Flowers Anda. Anda dapat mengubah judul hala-mampuan web server dalam menampilkan Forrest man sesuai yang Anda inginkan. Sebagaiisi direktori, melainkan juga harus memiliki Lake contoh, penulis memberikan judul: Galleryfasilitas penampilan thumbnail sebelum Landscape of Natures.pengunjung benar-benar membuka foto Mountain Di bagian ini juga, kita bisa menentu-yang diinginkan. Sea kan berapa gambar dalam satu baris. Secara Bisa Anda bayangkan kalau ratusan atau Sky default, Konqueror menganjurkan empatribuan foto harus Anda sajikan ke situs se- gambar dalam satu baris. Pilihan lain yangcara manual? Sangat susah. Menggunakan Langkah kedua. Setelah itu, siapkan pula dapat diatur adalah opsi untuk menampil-script juga bukan pekerjaan yang mudah direktori yang akan di-upload sebagai direk- kan nama file (sebaiknya diaktifkan), imageDirektori yang berisikan gambar. Dialog pembuatan Image Gallery54 INFOLINUX 11/2004 www.infolinux.web.id
  • 6. Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial TUTORIAL KonquerorProses pembuatan gallery. Hasil akhir Image Gallery.dimension (dimensi gambar, apabila gambar tifkanlah pilihan Copy original files. Pilihan atau ratusan MB, jangan bingung apabiladimaksudkan untuk download, sebaiknya ini akan menjadikan image gallery inde- Konqueror terlihat seperti tidak responsifdiaktifkan untuk mempermudah pengun- penden dengan lokasi gambar asli. Apabila pada awalnya.jung) dan image file size (ukuran file gam- Anda memilih untuk mengopikan gambar, Hal ini disebabkan karena adanya ope-bar, aktifkan apabila dimaksudkan untuk maka ketika meng-upload, Anda hanya rasi intensif pada disk dan CPU. Pengolahandownload). perlu meng-upload direktori galeri saja. gambar membutuhkan CPU untuk berpikir Anda dapat mengatur font yang di- Satu hal yang paling menarik dari bagian keras. Sementara, mengambil gambar dariinginkan. Termasuk jenis font, ukuran font, ini adalah fasilitas untuk menambahkan ko- harddisk juga pekerjaan yang merepotkanwarna latar, dan warna font yang bersang- mentar. Anda dapat mengaktifkan fasilitas harddisk.kutan. Apabila memilih banyak gambar use comment file dan tentukanlah lokasi file Sebuah window kecil berisikan progressdalam satu baris, pastikan Anda memilih komentar Anda. Umumnya, apabila Anda bar akan ditampilkan. Untuk satu direk-font dengan ukuran kecil. memiliki ribuan gambar, fasilitas ini sangat tori yang ditemukan, Konqueror akan me- Langkah kelima. Pindahlah ke bagian jarang diperlukan. Merepotkan! nampilkan satu progress bar. Jadi, janganFolders. Bagian ini akan mengatur hal-hal Langkah keenam. Pindahlah ke bagian senang dulu apabila proses terlihat sangatyang berhubungan dengan lokasi penyim- thumbnails. Bagian ini akan mengatur hal- cepat. Progress bahkan akan lebih lambatpanan gambar dan lain sebagainya. Anda hal yang berhubungan dengan penampilan lagi apabila Anda memilih untuk meng-dapat memilih lokasi penyimpanan. Penu- thumbnail itu sendiri. Thumbnail tidak copy-kan gambar asli ke direktori galeri.lis akan menyimpannya ke direktori Galle- boleh merepotkan dan harus mampu di- Jangan lupa siapkan ruang kosong yang cu-ry yang telah dipersiapkan sebelumnya. load dengan cepat. Oleh karena itu, pilihlah kup besar untuk itu.Apabila Anda ingin mengaktifkan pilihan kombinasi pengaturan seefisien mungkin. Setelah semuanya selesai, windows barurekursif untuk hirarki direktori yang men- Penulis memilih format thumbnail berisikan Image Gallery akan ditampilkandalam, aktifkan saja pilihan Recurse subfold- JPEG, dengan ukuran thumbnail 128. Satu untuk Anda. Anda bisa melihat betapaers, kemudian tentukan ke dalamanya. hal yang penting karena dapat mengurangi profesionalnya Image Gallery yang dibuat Secara default, tingkat kedalaman adalah waktu load, Anda dapat pula mengatur ke- oleh Konqueror. Apabila dirasa kombinasitidak terbatas (dibatasi oleh filesistem). Ka- dalaman warna yang berbeda untuk thumb- warnanya kurang cocok, Anda selalu dapatpankah rekursif diperlukan? Opsi ini perlu nail. Umumnya, selama masih mirip den- membuat image gallery barudiaktifkan apabila ingin mencari sampai gan gambar aslinya, kita boleh-boleh saja Dengan menggunakan Konqueror, pem-sedalam-dalamnya direktori di bawah di- mengatur kedalaman warna yang berbeda. buatan image gallery, sekali lagi, menjadirektori root gambar kita. Opsi ini harus Tapi, jangan memberikan ukuran thumb- jauh lebih mudah. Namun, saat ini, tersediadiaktifkan apabila struktur direktori Anda nail yang terlalu kecil dan kedalaman yang banyak proyek open source untuk pembu-sama seperti struktur direktori penulis, di terlalu kecil. Atau, thumbnail Anda akan atan image gallery. Anda dapat mempergu-mana di root direktori gambar tidak berisi terlihat aneh dan kehilangan fungsi. nakan proyek lain seperti PHP Image Galle-gambar dan Anda ingin membuat galeri un- Setelah semuanya selesai, kliklah tombol ry apabila tidak puas dengan keluaran darituk semua gambar yang terletak di bawah OK. Tunggulah sejenak ketika Konqueror Konqueror. Banyak fitur lain yang tersediadirektori tersebut. membuat image gallery untuk Anda. Apa- dalam berbagai image gallery open source Apabila Anda ingin meng-copy-kan file bila ruang kosong yang diperlukan untuk tersebut. Selamat mencoba!asli ke dalam direktori galeri, maka ak- menampung gambar mencapai puluhan Noprianto (noprianto@infolinux.co.id) www.infolinux.web.id INFOLINUX 11/2004 55
  • 7. TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | TutorialRendermanAnimasi 3D Berbasis RendermanBagian 2 dari 2 tulisanSetelah mengulas gambaran umum, instalasi, dan pembuatan objek primitive pada bagianpertama, selanjutnya pada bagian ini kita akan menerapkan attribute dan pencahayaanpada objek yang telah dibuat beserta utiliti yang terkait dengan Renderman.D engan menerapkan pencahayaan menjadi merah “intensity” [nilai] “color” pada Renderman, kita akan dapat AttributeBegin [r g b] “coneangle” [sudut] menyimulasikan berbagai efek Translate 0.5 0 0 “conedeltaangle” [sudut]cahaya pada permukaan objek sehingga di- Sphere 1 -1 1 360dapatkan hasil mendekati nyata. Efek pan- AttributeEnd Jenis terakhir adalah ambientlight. Penca-tulan yang mengenai benda atau objek akan WorldEnd hayaan jenis ini akan memberikan cahayamenciptakan berbagai efek yang sering dise- pada seluruh permukaan objek. pendefini-but dengan Global Illumination. Beberapa Setelah di-render Anda akan mendapat- sian ambientlight adalah sebagai berikut:objek pada scene dapat pula dikelompok- kan dua bola yang saling overlap (Gambar LightSource “ambientlight” 4kan menjadi satu attribute, seperti Transale, 5), namun yang satu memiliki nilai opa- “intensity” [nilai] “color” [rOpacity, LightSource, dan Color, sehingga city 0.5 pada masing-masing warna RGB, g b]parameter-parameter tersebut tidak mem- dan terlihat pada pendefinisian perintahpengaruhi objek yang lain dalam satu scene. AttributeBegin/End, yang kedua tidak akan Pada dasarnya, jenis pencahayaan terse-Dengan demikian, akan lebih mudah kita mempengaruhi pada blok pertama. but seperti ambienlight, spotlight, distant-mengatur parameter yang akan diterapkan light, dan pointlight adalah shader yang di-pada objek primitive atau pada cahaya. Pencahayaan tempelkan pada objek LightSource. Untuk Macam pencahayaan di Renderman terdiri mengetahui lebih jelas penggunaan Light-Pengelompokan attributes dari Pointlight, Distantlight, Spotlight, dan Source, ketikkan program di bawah danSeperti halnya blok TransformBegin/End, Ambienlight. Pointlight adalah tipe cahaya simpan dengan nama test5.rib.pengelompokan attribute masing-masing yang memiliki arah sinar ke segala arah. #test5.ribobjek seperti opacity dan color dapat diatur Untuk membuat pencahayaan di file RIB Display “test5.tif”agar tidak mempengaruhi objek yang lain. gunakan perintah LightSource. “framebuffer” “rgba”Ketikkan baris perintah berikut dengan edi- LightSource “pointlight” 1 Format 300 300 1tor teks Anda dan beri nama test4.rib. “from” [x y z] “intensity” Projection “perspective” “fov”#test4.rib [nilai] “color” [r g b] [40]Display “test4.tif”“framebuffer” “rgba” Nilai 1 (satu) setelah pendefinisian jenis WorldBeginProjection “perspective” “fov” cayaha “pointlight” adalah untuk memberi- Translate 0 0 3[40] kan urutan saja.Format 300 300 1 Distantlight adalah jenis pencahayaan LightSourceWorldBegin yang memiliki arah, namun tidak memiliki “ambientlight” 0 Translate 0 0 4 asal sumber. Color [1 0 0] LightSource “distantlight” 2 AttributeBegin “to” [x y z] “intensity” [nilai] Translate -0.5 0 0 Color [1 1 0] Spotlight adalah bentuk cahaya yang me- Opacity [0.5 0.5 0.5] miliki sinar seperti kerucut, contohnya adalah Sphere 1 -1 1 360 lampu mercusuar dan lampu mobil. pendefi- AttributeEnd nisian Spotlight adalah sebagai berikut: LightSource “spotlight” 3 # disini warna obyek kembali “from” [x y z] “to” [z y z] Gambar 5. Atribut dua objek yang tidak berpengaruh.56 INFOLINUX 11/2004 www.infolinux.web.id
  • 8. Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial TUTORIAL Renderman Cutter dibuat dengan Java dan dapat dengan harga ribuan dollar untuk bisa dijalankan di beberapa platform sistem mengkonversi file scene Anda. operasi seperti Linux, Windows, FreeBSD, Bagi Anda pecinta Blender terdapat OSX dan IRIX. Anda dapat men-down- Blenderman yang tentu free dan open load-nya di http://sfdm.ca.scad.edu/vsfx/ source. Bagi penggemar Maya, jangan ku- faculty/malcolm/tutorials/. Di situs ini da- atir bila Anda ingin mendapatkan program pat dijumpai juga tutorial penggunaan serupa namun free dan dapat berjalan di Cutter beserta tutorial yang berkaitan de- semua platform, yaitu Liquidmaya. Liquid- ngan Renderman. maya telah dipakai oleh Weta Digital untuk membuat Film Trilogy Lord of The Rings. RIB Converter Saat ini Liquidmaya telah mencapai ver- Untuk membuat objek sesuai dengan yang si 1.6 dan support dengan Maya 6.0. Penu-Gambar 6. Efek pencahayaan. Anda inginkan tentu tidak perlu bersusah lis pribadi menggunakan Maya for Linux “intensity” [0.25] payah untuk menuliskan beratus-ratus sebagai modelingnya, dan untuk mengon- baris hanya untuk mendapatkan hasil yang versi scene dari maya ke dalam bentuk RIB, LightSource maksimal. Dengan adanya RIB Converter, penulis menggunakan Liquidmaya. Liquid- “pointlight” 1 mudah sekali mengubah scene yang Anda maya dapat di-download di http://liquid- “from” [-2 2 -2] buat dengan program seperti Blender, maya.sourceforce.net. “intensity” [12] Maya, 3D Studio Max, XSI, dan Haudini Masih banyak yang harus diulas dalam ke bentuk file RIB agar dapat di-render de- pemrograman Renderman ini. Namun Color [0 0 1] ngan renderman compliant renderer. dengan minimnya informasi yang disam- Surface “plastic” Program RIB Converter yang paling ter- paikan oleh penulis, Anda diharapkan tetap Sphere 1 -1 1 360 kenal adalah MTOR (Maya To Renderman) semangat untuk berkreativitas dalam dunia WorldEnd milik Pixar Studios, Animalogic Mayaman, grafis, khususnya 3D animation dan visual Maxman, dan Softman. Namun program effect di Linux. Baris Surface “plastic” untuk menempel- ini tidaklah free, Anda harus membelinya Teddy Widhi L. (teddy@limaxindo.com)kan shader pada surface bola sehingga apa-bila diberikan pencahayaan akan diperolehefek pencahayaan yang baik. Apabila Andatidak memberikan shader pada surface bolatersebut, maka efek cahaya yang menimpaobyek tersebut tidak akan tampak dan seba-liknya apabila Anda menempelkan shaderplastic pada suatu objek, namun tidakmemberikan pencahayaan maka Anda akanmendapatkan hasil yang gelap. Perlu diketahui pula, bahwa setiap ren-derer seperti halnya Aqsis atau yang lain me-nyertakan shader default. Plastic, metal, dis-tantlight, pointlight, matte, dan sebagainyamerupakan shader yang telah ada pada Aqsisdan renderer yang lain. Untuk itu, pada aw-al instalasi kita mendefinisikan letak shadertersebut barada. Anda dapat melihat semuashader yang disertakan aqsis pada direktori/usr/local/aqsis/share/aqsis/shaders.Utility RendermanCutterProgram ini adalah untuk melakukan edit-ing pada rile RIB ataupun pada File SL yangdibuat dengan RSL. Cutter mendukung syn-tax highlighting renderman baik RIB mau-pun RSL. www.infolinux.web.id INFOLINUX 11/2004 57
  • 9. TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | TutorialMambo Open SourceTips dan PenggunaanMambo Open SourceMambo Server adalah salah satu content management system open source yang terbaik.Selain indah dan sangat mudah digunakan, aplikasi yang satu ini pun sangat customize-able dan modular.T ak heran apabila Mambo mendapat- selalu dilakukan, Anda dapat men-download yang melibatkan banyak user. Situs priba- kan penghargaan di mana-mana. Ap- dokumentasi Mambo di http://mosforge.net/ di tentunya tidak membutuhkan user lain likasi dengan nama mirip dengan na- projects/mosdoc. Dokumentasi yang terakhir untuk mendaftar. Aktiflah di Site|Globalma salah satu jenis es krim kita ini memang penulis download terdiri lebih dari 100 hala- Configuration|Site. Pilih No untuk Allowluar biasa. Mulai dari instalasi, Mambo sudah man. Kurang lengkap, tapi cukup memban- User Registration.dapat menerapkan sistem instalasi langsung tu. Satu hal yang menggembirakan. Mambodari web. Dari sisi teknologi, hal yang satu inibukan lompatan besar. Tapi, dari sisi usabi-lity dan kepedulian dengan pengguna, hal ini adalah CMS yang sangat self-contained. Apabila menginginkan dokumentasi cepat, Anda juga bisa mengaksesnya melalui menu 6 Apabila Anda menginginkan sistem registrasi user dengan mengirimkan password kepada user baru, pilih Yes un-merupakan lompatan yang sangat besar. Help Konfigurasi, pada bagian Help Index. tuk Email New User Password di Site|Global Setelah melakukan instalasi, konfigurasi Configuration|Site.lebih lanjut untuk menyesuaikan dengankebutuhan pengguna pun dilakukan. Dan,sekali lagi, tidak ada istilah mengubah-ubah 2 Konfigurasi. Apabila Anda adalah pe- cinta KDE, Anda harus memperhatikan sedikit selera Mambo. Rupanya, CMS yang 7 Pada saat Anda sedang melakukan pem- benahan situs dengan mengubah se-file konfigurasi dengan editor Vim atau satu ini kurang senang apabila didatangi bagian besar content Mambo, sebaiknyasemacam itu. Langsung juga melalui web. KDE. Apabila Anda memaksakan juga, Anda mengubah status situs menjadi offline.Dan seperti bisa ditebak, tampilannya luar maka beberapa sub menu akan tampil pada Ubahlah Site Offline menjadi Yes di Site|Globalbiasa bagus. lokasi yang salah sehingga susah diakses. Configuration|Site, kemudian ubahlah Offline Mambo tidak dikembangkan dalam sa- Gunakanlah Firefox, misalnya. Message sesuai yang diinginkan.tu atau dua bulan, atau merupakan aplikasiiseng-iseng untuk unjuk gigi. Karya MiroInternational setidaknya telah dikembang-kan selama empat tahun. Bukan waktu 3 Apabila Anda tidak tertarik untuk me- nampilkan banner, pergilah ke Site| Global Configuration, dan aktifkan pada ba- 8 Pada pembuatan situs pribadi yang mengandung berita, Anda mung- kin perlu menyembunyikan nama penu-singkat untuk sebuah CMS. gian Site. Kemudian, pilihlah No pada field lis berita karena pasti hanya Anda yang Kita akan melihat beberapa penggunaan Use Banner. melakukannya. Akan terasa lucu apabiladan tips seputar CMS yang banyak menarik di satu halaman tertulis banyak nama yangpopularitas pecinta dan pengguna CMS ini. 4 Di manakah tombol Simpan di Konfi- gurasi Mambo? Hal ini memang sedikit sama, yang merupakan nama pemilik si- tusnya. Minta Mambo untuk menyembu-1 Dokumentasi. Apabila Anda hanya ingin menggunakan Mambo untuk sekadarmenampilkan berita, maka tentu saja Anda membingungkan. Umumnya, terletak di bagian atas layar konfigurasi. Namun ter- kadang, Anda tidak perlu mencari tombol nyikan nama penulis berita di Site|Global Configuration|Content. Ubah Hide Author Names menjadi Yes. Anda dapat pula me-tidak membutuhkan dokumentasi. Semua- simpan karena ketika Anda mengubah salah nyembunyikan waktu pembuatan dengannya sudah begitu mudah. Namun, apabila satu nilai, ada yang bisa langsung tersimpan, mengubah Hide Created Date and Timetertarik untuk, misalnya, mendalami atau seperti Modules|Manage Modules. Penguba- menjadi Yes.mengembangkan komponen Mambo, Anda han properti Published setiap item akan me-membutuhkan dokumentasi. Salah satubidang yang kurang dimanja oleh pengem- micu penyimpanan. 9 Ketika Anda membuat situs perusa- haan dengan Mambo, ada baiknya Andabangnya. Sejak waktu yang lama, dokumen-tasi yang lengkap susah untuk ditemukan.Walau demikian, perbaikan terus menerus 5 Anda bisa menggunakan Mambo untuk berbagai kebutuhan. Termasuk situs pribadi ataupun situs untuk komunitas selalu memperhatikan apa saja yang dicari pengunjung ketika mereka berkunjung ke situs Anda melalui fasilitas search yang di-58 INFOLINUX 11/2004 www.infolinux.web.id
  • 10. Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial TUTORIAL Mambo Open Sourceberikan. Catat setiap kata kunci pencarianyang mereka miliki. Aktifkan fasilitas inidi Site|Global Configuration|Content. Ubah 13 Statistik untuk halaman mana yang paling menarik bagi user juga dise- diakan oleh Mambo. Akses Site|Statistics| Tables misalnya. Anda juga tidak bisa mem- berikan perintah Delete. Perintah Select akan diterima dengan senang hati. Cobalah mem-Log Search Strings menjadi Yes. Kemu- Page Impressions untuk mengamatinya. berikan perintah ini “select * from mos_dian, Anda bisa mengamati apa-apa saja modules”.yang dicari pengunjung dengan mengaksesSite|Statistics|Search Text. 14 Mambo tidak menyebut tampilan- nya dengan skin. Melainkan dengan istilah template. Pengubahan template dapat 17 Untuk melakukan back-up berupa dump file, akseslah System|Database10 Untuk mempercepat pengiriman konten ke pengunjung, Anda dapatmengompres keluaran dari Mambo. Ten- dilakukan melalui Site|Template Manager. Di bagian ini, Anda dapat langsung mengubah HTML dan CSS template. Apabila Anda in- | Backup. Anda memiliki cukup banyak pilihan dalam melakukan back-up. Anda bisa men-download back-up atau sekadartunya, apabila hal ini didukung oleh web gin meng-copy file CSS tersebut, misal ingin menampilkan, atau bahkan sekadar me-server Anda. dicontek karena gemes, akseslah direktori nyimpannya di server Mambo. Anda juga templates relatif terhadap direktori insta- dapat memilih keseluruhan atau tabel ter-11 Untuk keamanan, atur waktu ex- pire untuk session login setiap user.Ubahlah nilai Login Session Lifetime di Site lasi Mambo. Kunjungi mambosolutions.com atau mambotemplates.com untuk template lainnya. tentu yang ingin di-back-up. Begitupun dengan output file-nya, yang selain dapat dikompress Zip, Bzip atau Gzip, masih juga|Global Configuration|Server. bisa ditampilkan dalam HTML terformat.12 Dengan mambo, tidak perlu susah- susah untuk melihat statistik pen- 15 Anda dapat menambahkan user da- lam group tertentu. Berbagai group dengan hak tertentu disediakan. Penam- Untuk restore, akseslah System|Database| Restore. Anda dapat mempergunakan file dump yang Anda back-up. Ubahlah situsgunjung, browser, dan sistem operasinya. bahan user dapat dilakukan dengan meng- ke modus offline apabila proses restore me-Cukup akses saja Site|Statistics|Browser, akses Site|User Manager|Add/Edit Users. makan waktu yang besar.OS, Domain. Statistik yang satu ini disaji- Pemblokiran user juga bisa dilakukan dikan menarik sekali. Mulai dari pewarnaan,penampilan persentasi dan nilai, sertafasilitas pengurutan. Anda dengan mudah sini. Klik saja nama usernya dan pilih Yes untuk Block User. 18 Mambo dikembangkan dengan sangat modular. Anda bahkan bisa mengembangkan modul Mambo sendiri.mengurutkan dengan klik pada tombolurut di sebelah kanan field yang diamati(misal Browser, Operating System, dan 16 Apabila ingin melihat isi tabel in- ternal Mambo misalnya, akseslah System|Database|Query. Anda tidak dapat Untuk meng-upload modul baru yang dibuat sendiri ataupun didapatkan dari komunitas Mambo, akseslah ComponentsDomain). memberikan perintah Show seperti Show |Install/Uninstall. Anda juga dapat meng- hapus component yang tidak diinginkan. Componen mambo diawali dengan string com. Apabila Anda termasuk programer yang malas membaca dokumentasi namun ingin membuat component secara instan, Anda selalu dapat meng-copy component yang Anda, kemudian melakukan modifi- kasi. Lihatlah direktori components relatif terhadap instalasi Mambo Anda. 19 Pada saat membuat situs perusa- haan, Anda akan membuat menu sendiri dan umumnya tidak menggunakan menu-menu yang sudah ada. Untuk mem- buat menu sendiri, aktiflah di Site|Menu Manager |Main Menu. Kita asumsikan, An- da tidak mengijinkan registrasi user sehing- ga tidak ada menu spesifik user (Site|Menu Manager|User Menu). Pada bagian Main Menu, Anda dapat membuat menu dengan nama sesuai keinginan. Misal, kita akan membuat menu Product yang berisikanLayar Kredit Mambo. submenu Distro Linux (yang berisikan sub- www.infolinux.web.id INFOLINUX 11/2004 59
  • 11. TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | TutorialMambo Open Sourcemenu SUSE, Fedora, dan MEPIS), Hard-ware server, dan Notebook Linux (yangberisikan sub menu lokal dan luar). Perta-ma-tama, yang harus dilakukan adalah kliktombol New (di bagian atas Main Menu).Anda akan diminta untuk menentukan tipemenu. Apabila Anda hanya ingin mengisi-kan sendiri dengan HTML, Anda bisa me-milih Typed Content. Setelah itu, tentukanParent Itemnya. Parent Item adalah orangtua menu kita. Karena Product tergolongmenu utama, maka Parent-nya adalah Top.Namun, Parent Item untuk Distro Linuxadalah Product. Dan Parent Item untukSUSE adalah Distro Linux. Setelah itu,Anda perlu memberikan nama dan judul,kemudian mengisikan isinya. Anda bisamemberikan kode-kode HTML sebagaiisi. Kembali ke Main Menu dan ubah pro-perti published-nya. Setelah itu, Anda bisamelakukan hal yang sama untuk menu Dis- Statistik pengunjung.tro Linux (lalu SUSE, Fedora, dan MEPIS),Hardware server dan Notebook Linux. ponent banner mambo untuk memungkin- Menurut penulis, ada beberapa hal yangTentukan Parent Item yang benar, dan ja- kan adanya banner di situs Anda. Hebatnya, bisa dipelajari dengan hadirnya Mambo. Se-ngan lupa di-publish. suatu banner bisa memiliki impresi yang jak beberapa saat yang lalu, sudah bulanan, terbatas atau tidak terbatas. Pada impresi penulis tidak habis kagum dengan proyek20 Dengan mambo, hebatnya, Anda bisa menjadikan website Anda se-bagai News/RSS Feeder. Cukup akses Com- terbatas, Anda bisa menentukan kapan suatu banner selesai setelah dikunjungi user de- ngan jumlah tertentu. Akseslah Components yang satu ini. Bukan perkara hebat sekali. Plone (www.plone.org), menurut penulis juga hebat. Tapi, menurut penulis, proyekponents|News Feeds|Manage New Feeds. |Banners|Manage Banners. Namun, jangan berbasis Zope (www.zope.org) tersebut, yangWebsite-website berita umumnya menye- lupa mengubah Site|Configuration|Site|Use juga pernah penulis gunakan, tidak mem-diakan RSS (atau Atom) untuk diambil. Banner menjadi Yes. perhatikan penggunanya seperti Mambo.Selama Anda mengetahui alamatnya, Anda Mambo peduli dengan hal kecil. Dan ter-bisa membuat news feed yang baru. Janganlupa untuk mengubah cache time (janganterlalu sering, tapi jangan terlalu lama kare- 23 Ingin membuat News Flash sendiri? Mudah sekali dengan Mambo. Cu- kup akses Components|Newsflash. Kemudian kadang, hal kecil tersebut malah dibutuhkan oleh user. Mungkin Mambo tidak se-scalable plone, atau masih kalah dari yang lain. Tapina berita bisa basi, 1 jam cukup masuk akal) buat newsflash yang diinginkan, dan atur ka- Mambo memperhatikan penggunanya.dan properti published. pan waktu pemunculan dan waktu selesai. Hal kedua adalah kesabaran dalam meng- hasilkan produk. Apabila ingin buru-buru,21 Anda membangun situs perusahaan dan menginginkan adanya menucontact. Manfaatkan component contect 24 Pada saat membuat item baru, ter- kadang Anda diminta untuk me- milih gambar. Bukan meng-upload gam- proyek Mambo mungkin bisa dikerjakan dalam waktu bulanan, tidak perlu tahunan. Tapi, apakah arsitekturnya akan sebagus(com_contact) dan isilah informasi kontak bar. Lantas, bagaimana kalau tidak ada ini? Mungkin tidak. Apakah peduli denganperusahaan. Berbagai informasi bisa dima- gambar yang Anda sukai? Jawabnya, Anda harmonisasi warna? Mungkin tidak.sukkan di sini. Setelah semuanya selesai, bisa mengupload sendiri. Lakukan di Mambo tidak sempurna, banyak hal yangAnda dapat membuat menu baru (misal Components|Media Manager. masih bermasalah apabila kita mengabaikanHubungi Kami) yang bertipekan compo- faktor keindahan dan kemudahan. Namun,nent yang mengacu kepada com_contact. 25 Ingin melihat tokoh-tokoh hebat dibelakang Mambo? Akses saja Help usaha menghadirkan Mambo sendiri sudah pantas dipuji dan dihargai. Sifat rendah22 Ingin mendapatkan uang lebih dengan memasang banner? Sejak situs dite-mukan, hal yang satu ini sudah sangat umum |Credits. Anda akan melihat nama-nama pembuatnya yang ditampilkan bergiliran. Anda juga bisa melihat proyek-proyek be- hati proyek ini sendiri (tidak mengharuskan tulisan semacam Powered by Mambo, mi- salnya) juga sangat pantas diikuti. Selamatditerima. Bahkan, ada situs yang sepertinya sar apa saja yang digunakan untuk memper- berkarya!hanya penuh dengan banner. Gunakan com- indah Mambo. Noprianto (noprianto@infolinux.co.id)60 INFOLINUX 11/2004 www.infolinux.web.id
  • 12. Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial TUTORIAL SMSMengirim SMS denganKomputer LinuxAnda capai menulis SMS pada tombol ponsel? Jangan khawatir, saat ini telah tersediabeberapa program pilihan, berbasis teks dan grafis, untuk menulis SMS di keyboard kom-puter Linux. Dua di antaranya adalah gnokii dan scmxx.G NU/Linux atau yang lebih sering menggunakan SuSE 9.0, ponsel, kabel data Editlah pada bagian port dan model. disebut Linux memang sistem ope- yang support untuk ponsel, dan paket-pa- Sesuaikan port dan model ponsel yang kita rasi yang powerful. Tidak hanya ket yang mendukung SMS. Ponsel yang gunakan. Misal, port yang biasa digunakanbagus untuk server, penggunaan Linux se- digunakan penulis adalah Nokia 3350 dan COM1 dengan notasi di Linux /dev/ttyS0.bagai desktop pun mulai merambah kom- Siemens M50. Kabel untuk masing-masing Berhubung penulis menggunakan portputer di Indonesia, bahkan dunia. Bukti ponsel berbeda. Untuk Nokia 3350 penulis USB dan Nokia 3350 yang masih satu serikenyamanan atau bagusnya Linux di desk- menggunakan kabel dengan harga kurang dengan 3330, maka kurang lebih yang diedittop adalah dapat mengirim SMS via kom- lebih Rp35.000. Untuk Siemens penulis adalah:puter Linux. menggunakan kabel data bawaan Siemens port = /dev/ttyUSB0 Penulis menggunakan dua software yang S45. Sebenarnya di pasaran kabel data Sie- model = 3330dapat berjalan untuk ponsel Nokia dan mens ini cukup mahal, bisa didapat denganSiemens. Untuk Nokia, kita dapat meng- harga kurang lebih Rp100.000. Namun, Untuk mengecek apakah ponsel sudahgunakan gnokii dan xgnokii yang dapat untuk percobaan atau investasi ke depan, terkoneksi dengan komputer bisa menggu-didownload dari http://www.gnokii.org atau harga tidak menjadi masalah. nakan perintah:paket-paket yang disediakan oleh pihak linux:~ # gnokii –identifyketiga seperti http://rpm.pbone.net atau gnokii dan xgnokiihttp://www.tuxfinder.com. Untuk Siemens, Di dalam CD SuSE 9.0 sudah tersedia gnokii Setelah muncul informasi seperti dikita dapat menggunakan scmxx dan gsc- versi 0.5.2-80 dan xgnokii versi 0.5.2-80. Ti- bawah ini, berarti ponsel kita sudah ter-mxx yang dapat di-download di http://www. dak ada salahnya kita update dengan paket koneksi dengan komputer.hendrik-sattler.de/scmxx/download.html dan terbaru. Paket-paket yang penulis gunakan GNOKII Version 0.6.0http://gscmxx.sourceforge.net. Untuk distro sebagai berikut: IMEI : 350686306527252debian dan turunannya (knoppix, DSL, 1. gnokii-0.6.0-44.1.i586.rpm Manufacturer : Nokiagnoppix, dan lain-lain), cukup cek di http:// 2. gnokii-smsd-0.6.0-40.i586.rpm Model : NHM-9packages.debian.org. 3. xgnokii-0.6.0-40.i586.rpm Revision : SW 05.15, HW 1006 Menggunakan komputer untuk SMScukup menyenangkan karena tidak perlu Masalah dependecies di SuSE 9.0 sudahjempol kita “capai-capai” menekan tom- bisa teratasi dengan baik. Adapun cara ins-bol-tombol pada ponsel. Dalam implemen- talasi dengan cara update sebagai berikuttasinya kita, seperti melakukan chatting (jangan lupa menggunakan akses root ):baik melalui IRC atau IM. Kelemahannya linux:~ #rpm -Uvh gnokii-0.6.0-adalah kontrol mengetiknya kurang ter- 44.1.i586.rpmkendali apalagi bagi pengguna atau pelang- linux:~ #rpm -Uvh gnokii-smsd-gan pasca bayar. Oleh sebab itu, harap ha- 0.6.0-40.i586.rpm Gambar 1. Menjalankan xgnokiigbr1 Menjalankan xgnokii.ti-hati dan berhemat pulsa. Masalah tarif linux:~ #rpm -Uvh xgnokii-0.6.0-tidak berbeda dengan tarif yang ditetapkan 40.i586.rpmoperator. Di sini hanya kemudahan me-ngetikkan huruf-huruf dan kemudahan Apabila sudah selesai instalasi, silakanmengirim. gunakan text editor kesayangan kita untuk Hal-hal yang harus dipersiapkan adalah mengedit file gnokiirc di /etc.komputer yang terinstal Linux. Penulis linux:~ #vi /etc/gnokiirc Gambar 2. Tampilan unik xgnokii. www.infolinux.web.id INFOLINUX 11/2004 61
  • 13. TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | TutorialSMS sebelah kiri, seperti gambar 5. 22:58:56 2004 Xgnokii ini mendukung delivery report. Untuk mengaktifkannya, cukup check saja. SIM card related information: Cukup mudah kan? Silakan eksplorasi lebih IMSI: 510110200980483 jauh xgnokii ini. card ID: 8962112202009804832 scmxx dan gscmxx Network related information:Gambar 3. Contacs mengambil data phone book. Siemens merupakan salah satu ponsel Status: checked in yang cukup powerful dan stabil teknolo- Area code: 0035 ginya. Bagi pecinta ponsel Siemens, untuk Cell ID: 5745 berkirim sms dapat menggunakan scmxx Operator: proXL dan gscmxx. Paket yang diperlukan sebagai SMS Server: +62818445009 berikut: Signal: -81 dBm 1. scmxx-0.6.3.8-32.i586.rpm GPRS class: B 2. gscmxx-0.4.1-177.i586.rpm GRPS status: not registered, not searching, Namun hati-hati terhadap dependecies- detached nya gscmxx, karena dibangun mengguna-Gambar 4. Menulis SMS di xgnokii. kan gtk dan perl. Jadi, kedua paket terse- Slot information (readable, not but harus terinstall terlebih dahulu. Cara all may be writeable/deletable): Tahapan instalasi sudah selesai. Sekarang instalnya cukup mudah, hanya mengetikan Bitmap (bmp): 0-2cara menggunakan xgnokii. Silakan update berikut ini. Midi (mid): 0-4menu program kita dengan menambahkan linux:~ #rpm -Uvh scmxx-0.6.3.8- vCal (vcs): 1-50icon xgnokii. Penulis lebih suka klik start 32.i586.rpm Phonebooks: FD, SM, ON, ME,menu|Run Command|xgnokii|Run, seperti linux:~ #rpm -Uvh gscmxx-0.4.1- LD, MC, RC, OW,Gambar 1. Setelah itu muncul tampilan yang 177.i586.rpm SD, MS, CD, BL,cukup unik, tidak seperti tampilan software RD, CSpada umumnya, seperti Gambar 2. Berhubung default-nya scmxx adalah in- SMS storages: MT, SM, ME Sebelum mengirim SMS, tidak ada fra merah dengan port /dev/ircomm0, makasalahnya “mencicipi” fitur-fitur xgnokii. kita harus mengubah sesuai dengan port Untuk menggunakan grafikal dari sc-Fitur yang cukup menarik adalah Contacts yang kita gunakan, misal port /dev/ttyS0 mxx kita dapat memilih gscmxx. Kita up-yang berisi tentang phone book di memory dengan menggunakan symbolic link. Ber- date menu program dengan menambahkanponsel dan SIM Card. Klik Contacts ke- hubung penulis menggunakan USB makamudian akan muncul suatu form kosong. perintahnya sebagai berikut:Silakan klik read from phone, yang berada linux:~ #ln -sf /dev/ttyUSB0/di pojok kiri, untuk mengambil data phone dev/ircomm0book. Mungkin ini memakan waktu sedikitlama. Tampilannya seperti Gambar 3. Setelah itu untuk mengetahui koneksi Jika kita menambahkan headset pada atau informasi ponsel dengan komputer,ponsel, pilih salah satu nomor untuk di- ketikkan:hubungi kemudian klik tombol paling ka- telkom@linux:~>scmxx -inan dengan icon gagang telepon berwarnahijau, tunggu sebentar pasti kita akan segera Lalu akan muncul informasi seperti diterhubung. bawah ini: Untuk mengirim SMS, klik SMS, se- Accessing device /dev/ircomm0 Gambar 5. Memilih nomor tujuan di xgnokii.hingga muncul Gambar 4. Jangan lupa OK, a modem device is present.untuk mengaktifkan SMS dengan cara Phone related information:Ctrl+A, setelah itu kita bebas melakukan Vendor: SIEMENSaktivitas pengiriman dan membaca SMS. Model: M50Untuk mengirim, klik New Message di po- Revision: 14jok sebelah kiri, lalu masukkan nomor yang IMEI: 350810370108399akan dikirimi sms. Atau klik select contacs Battery: 100%di sebelah kanan|pilih|klik OK|ketikkan ka- Charset: GSMta-kata kesayangan kita|klik send di pojok Time: Wed Aug 4 Gambar 6. Menjalankan gscmxx.62 INFOLINUX 11/2004 www.infolinux.web.id
  • 14. Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial TUTORIAL SMSgscmxx supaya mudah untuk menjalank-annya. Penulis lebih suka menggunakanrun command|ketik gscmxx|Run sepertiGambar 6. gscmxx agak berbeda dengan scmxx pa-da penggunaan port. Kalau scmxx harus di-set menggunakan symbolic link, sedangkangscmxx melalui preferences dari gscmxx,seperti tampak pada gambar 7. gscmxx selain dapat mengirim SMS jugadilengkapi dengan Phonebooks, yang dibe-dakan menjadi dua memori utama, yaitu Gambar 7. Preferences gscmxx Gambar 8. Memilih memori SIM atau ponsel.ME dan SM. ME adalah memory phone-book yang tersimpan pada memory ponsel, SMS| ketikkan kata-kata indah kita|klik Ada cara lain mengirim SMS tidak me-sedangkan SM adalah memory phonebook Send SMS. lalui menu SMS melainkan dari menuyang tersimpan pada SIM Card. Kedua Kita juga dapat menggunakan fasili- Phonebooks, yaitu cukup klik kanan tahanmemory tersebut dapat diakses bersamaan tas Send as Flash-SMS, yaitu mengirim- sedikit (seperti drag mouse) dari nomordengan menggunakan memory tipe CS. kan pesan namun hasilnya cukup di layar yang kita pilih kemudian pilih Send SMS.Cara menggunakannya cukup mudah, dengan tulisan berjalan, tidak tesimpan Gscmxx ini juga memiliki dua fasilitashanya klik icon Phonebooks|pilih jenis di memory. Fasilitas ini mempunyai kele- lagi yaitu Bitmaps untuk mengganti wall-memori|reload, seperti Gambar 8. mahan yaitu hanya kompatibel dengan paper atau screensaver pada ponsel, dan Mengirim SMS, klik menu SMS|send ponsel Siemens. Membaca SMS. klik icon Ringtones untuk menambahkan ringtones.SMS. Untuk menentukan nomor ponsel, SMS|pilih kategori SMS|reload. Untuk me- Namun sayang sekali, dua fasilitas ini be-klik icon kecil yang bergambar ponsel| do- reply, klik icon kecil reply sms di masing- lum sempurna. Selamat ber-SMS-ria.bel klik pada nomor yang akan dikirimi masing pesan. Dedy Hariyadi (milisdad@yahoo.com) www.infolinux.web.id INFOLINUX 11/2004 63
  • 15. TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | TutorialPostgreSQLCara Mudah Mem-back-upPostgreSQLUntuk berjaga-jaga, sebaiknya kita selalu mem-back-up data kita, termasuk yang disim-pan di database server. Kita akan membuat sendiri cara back-up database PostgreSQLyang mudah.D ari sekian banyak database server dengan bantuan menu yang memudahkan. Script CleanAll. Untuk membersih- yang beredar di pasaran, Post- Tujuannya adalah agar dapat digunakan kan sampah-sampah yang dibuat oleh greSQL termasuk salah satu yang dalam otomatisasi proses seperti penggu- program, termasuk menghapus semuapaling baik. PostgreSQL 8.0 yang akan naan cron. backup.datang bahkan akan melengkapi database Selain itu, PgBackup dibuat pula untuk Script DoRestore. Untuk melakukan re-server canggih ini dengan berbagai fitur luar semodular mungkin. Setiap tugas yang ber- store dengan membaca template, mem-biasa. Ditambah, akhirnya PostgreSQL akan beda dipecah ke dalam file tersendiri. baca konfigurasi program dan user,tersedia secara native di platform Windows. Berikut ini adalah cara kerja program: membuat script restore sendiri, kemu- Namun secanggih-canggihnya teknologi, Akan memeriksa konfigurasi per user, dian menjalankan script tersebut.kita sebaiknya tidak mempercayakan segala yang disimpan dalam file .PgBackup, se- Script MakeBackup. Untuk melaku-sesuatunya begitu saja. Apalagi ketika kita cara default. kan backup dengan membaca template,bicara data. Kita wajib mem-back-up data Apabila file ditemukan, maka menu uta- mambaca konfigurasi program dan user,kita secara berkala. Ya, backup adalah man- ma akan ditampilkan. Selanjutnya, un- membuat script back-up sendiri, kemu-tra ampuh untuk menjaga kehilangan data tuk kebutuhan tertentu, akan dilakukan dian menjalankan script tersebut.(yang terlalu besar). pemanggilan script yang bersangkutan. Script PgBackup. Menu utama program. Terdapat banyak tool untuk mempermu- Apabila file tidak ditemukan, maka layar Script WriteCD. Untuk membuat CDdah bekerja dengan PostgreSQL. Phppgad- selamat datang akan ditampilkan, dilan- Image dan mem-burn CD-ROM. Pro-min sangat terkenal untuk tool yang berjalan jutkan dengan konfigurasi user. gram ini membutuhkan informasi de-di web. Namun, tool yang satu ini tidak bisa Setelah script dijalankan pada menu vice CD Writer yang didapatkan dariterlalu fleksibel untuk penggunaan desktop, utama, eksekusi selalu akan kembali ke program cdrecord (cdrecord -scanbus).seperti membakar data ke CD-ROM. menu utama. File konfigurasi user .PgBackup. Konfi- Untuk kebutuhan back-up, sebenarnya gurasi user, yang meliputi host databasekita bisa membuat sendiri yang sederhana, Berikut ini daftar-daftar file yang dibu- server, nama database dan nama userdengan bantuan program pg_dump yang tuhkan PgBackup: yang bekerja dengan database tersebut.datang bersama paket client untuk Post- Direktori backups. Untuk menyimpan Apabila file ini tidak ditemukan padagreSQL. Dengan dibungkus program dialog, hasil dump. Termasuk link file dengan saat PgBackup dijalankan, maka config/aplikasi kita akan lebih mudah digunakan. nama NEWEST, yang merupakan link PgBackup-Config akan dijalankan. Sebut saja program yang akan kita buat untuk back-up yang terbaru.ini sebagai PgBackup dengan fitur berikut: Direktori config. Berisikan file welcome Mempersiapkan program Back-up dan menyimpan semua file sebagai ucapan selamat datang dan 1. Buatlah terlebih dahulu tiga direktori dump ke dalam suatu direktori. script PgBackup-Config, yang berguna yang dibutuhkan dengan perintah-pe- Restore back-up terakhir. untuk melakukan konfigurasi user dan rintah berikut: Membakar semua file hasil back-up ke menghasilkan file konfigurasi user .Pg- mkdir PgBackup-Script CD-ROM. Backup. cd PgBackup-Script Cara konfigurasi yang mudah. Program Direktori template. Berisikan file bckup. mkdir backups ini memiliki dua konfigurasi, konfigurasi TEMPLATE dan restore.TEMPLATE. mkdir config untuk program itu sendiri dan konfigu- Keduanya berfungsi sebagai template mkdir template rasi per user. untuk back-up dan restore. File konfigurasi program dengan nama 2. Membuat template back-up dan restore Program ini dirancang agar dapat di- CONFIG-DATA. Berisikan konstanta dengan perintah-perintah berikut:jalankan dari command line, di samping yang digunakan program. cd template64 INFOLINUX 11/2004 www.infolinux.web.id
  • 16. Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial TUTORIAL PostgreSQLvi bckup.TEMPLATE server remote. -scanbus)n(contohvi restore.TEMPLATE (**) Password akan ditanyakan device=2,0,0)n(kosongkancd .. atau tidak tergantung apabila tidak tersedia cd konfigurasi database server writer)” 20 60 $CDWRITERDEV 2>isi file bckup.TEMPLATE: Anda. $TEMPpg_dump -h __DBHOST__ -d __ --------------------------------DBNAME__ -U __DBUSER__ Hal-hal yang tidak disebutkan CDWRITERDEV=`cat $TEMP` sebagai catatan akan merujuk rm -f $TEMPisi file restore.TEMPLATE: kepada konfigurasi server echo “CDWRITERDEV=$CDWRITERDEV” Database. >> ../$USERCONFIGpsql -h __DBHOST__ -U __DBUSER__ ---------------------------------d __DBNAME__ < backups/NEWEST dialog --backtitle “$BACKTITLE” isi file PgBackup-Config: --msgbox “Konfigurasi selesai.3. Mempersiapkan program konfigurasi #!/bin/sh nTutup dialog ini untuk dan ucapan selamat datang. melanjutkan ke PgBackup. “ 20 60cd config source ../CONFIG-DATAvi welcome 4. Membuat file konfigurasi program,vi PgBackup-Config [ $1 -eq -1 ] && dialog -- CONFIG-DATA:chmod +x PgBackup-Config backtitle “$BACKTITLE” -- vi CONFIG-DATAcd .. textbox welcome 20 60 isi file CONFIG-DATA:isi file welcome: test -f ../$USERCONFIG && source APPNAME=’PgBackup’Selamat datang di PgBackup v0.1a ../$USERCONFIG APPVERSION=’0.1a’-------------------------------- APPVERSIONDATE=’Aug 19 2004’ dialog --backtitle “$BACKTITLE” APPAUTHOR=’Noprianto’Layar ini tampil karena Anda --inputbox “Masukkan IP database APPAUTHOREMAIL=’opennopri@yahoo.menjalankan PgBackup untuk server” 20 60 $DBHOST 2> $TEMP com’pertama kali atau Anda menghapus DBHOST=`cat $TEMP`semua konfigurasi PgBackup. rm -f $TEMP BACKTITLE=”$APPNAME echo “DBHOST=$DBHOST” > v$APPVERSION (c) $APPAUTHORSetelah ini, Anda akan diminta ../$USERCONFIG <$APPAUTHOREMAIL>”untuk memasukkan informasiseputar database yaitu: USERCONFIG=”.$APPNAME”- IP Database server (*) dialog --backtitle “$BACKTITLE”- Nama Database aktif --inputbox “Masukkan nama TEMP=temp- Nama User yang memiliki hak database” 20 60 $DBNAME 2> bekerja dengan database aktif $TEMP DBHOSTTEMPLATE=’__DBHOST__’ (**) DBNAME=`cat $TEMP` DBNAMETEMPLATE=’__DBNAME__’ rm -f $TEMP DBUSERTEMPLATE=’__DBUSER__’Selamat menikmati ! echo “DBNAME=$DBNAME” >>-------------------------------- ../$USERCONFIG RESTORETEMPLATE=’template/CATATAN: restore.TEMPLATE’ dialog --backtitle “$BACKTITLE” RESTORECOMMAND=’restore’Untuk saat ini, PgBackup hanya --inputbox “Masukkan nama user” RESTOREFILENAME=NEWESTdapat bekerja dengan satu host, 20 60 $DBUSER 2> $TEMPsatu database atau satu user. DBUSER=`cat $TEMP` BCKUPTEMPLATE=’template/bckup.Untuk bekerja dengan host/db rm -f $TEMP TEMPLATE’/user yang berbeda, lakukan echo “DBUSER=$DBUSER” >> BCKUPCOMMAND=’bckup’konfigurasi ulang dari menu ../$USERCONFIG BCKUPDIR=backupsutama (menu nomor 5). BCKUPISO=backups.iso(*) Pastikan database server dialog --backtitle “$BACKTITLE” 5. Membuat script CleanAll Anda bisa menerima koneksi --inputbox “Masukkan device cd vi CleanAll dari luar, jika menggunakan writern(gunakan cdrecord chmod +x CleanAll www.infolinux.web.id INFOLINUX 11/2004 65
  • 17. TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | TutorialPostgreSQLisi file CleanAll: $DBUSER/g” $BCKUPTEMPLATE > continue#!/bin/sh $BCKUPCOMMAND . WriteCD . $BCKUPCOMMAND > “$BCKUPDIR/ echo “press ENTER” && readsource CONFIG-DATA $BCKUPFILENAME” ;; 3) clearrm -f $TEMP cd “$BCKUPDIR” . DoRestorerm -f $BCKUPCOMMAND ln -sf “$BCKUPFILENAME” NEWEST echo “press ENTER” && readrm -f $BCKUPDIR/* ;;rm -f $RESTORECOMMAND cd .. 4) clear rm -f $BCKUPCOMMAND . CleanAll6. Membuat script DoRestore echo “press ENTER” && readvi DoRestore 8. Membuat script menu utama, PgBackup ;;chmod +x DoRestore vi PgBackup 5) clear chmod +x PgBackup cd configisi file DoRestore: . PgBackup-Config#!/bin/sh isi file PgBackup: cd .. #!/bin/sh ;;source CONFIG-DATA 6) breaksource $USERCONFIG # PgBackup ;; # (c) Noprianto esacFOUND=1 # August 19, 2004 donetest ! -f “$BCKUPDIR/ # GPL clear$RESTOREFILENAME” && echo “Tidakditemukan file backup” && source CONFIG-DATA 9. Membuat script WriteCDFOUND=0 vi WriteCD test ! -f $USERCONFIG && cd chmod +x WriteCDif [ $FOUND -eq 1 ] config && . PgBackup-Config -1then && cd .. isi file WriteCD: sed -e “s/$DBHOSTTEMPLATE/ #!/bin/sh$DBHOST/g;s/$DBNAMETEMPLATE/$DBNAME/g;s/$DBUSERTEMPLATE/ source CONFIG-DATA$DBUSER/g” $RESTORETEMPLATE > QUIT=0 source $USERCONFIG$RESTORECOMMAND while [ 1 ] . $RESTORECOMMAND do echo “please wait...” rm -f $RESTORECOMMAND dialog --no-cancel mkisofs --max-iso9660-filenamefi --backtitle “$BACKTITLE” -- -V $DBNAME -o $BCKUPISO 1>/dev/ menu Actions 14 40 8 1 Backup null 2>&17. Membuat script MakeBackup 2 WriteCD 3 Restore Latest 4 echo -n “done “vi MakeBackup CleanAllchmod +x MakeBackup du -sh $BCKUPISO 5 ReConfigure 6 Exit 2>$TEMP cdrecord -vv speed=4isi file MakeBackup: PILIH=`cat $TEMP` dev=$CDWRITERDEV $BCKUPISO#!/bin/sh rm -f $TEMP rm -f $BCKUPISO case $PILIH insource CONFIG-DATA 1) clear Selesai. Kini, PgBackup dapat dijalan-source $USERCONFIG . MakeBackup kan. Jalankanlah ./PgBackup dan Anda echo “press ENTER” && read akan menjumpai layar selamat datang, yangNOW=`date | tr -d [:space:] | ;; diikuti oleh layar Konfigurasi. Lakukanlahsed -e ‘s/:/_/g’` 2) clear Konfigurasi. Dan, setelah itu, program dapatBCKUPFILENAME=”$NOW.backup” test -z $CDWRITERDEV && segera digunakan. Hati-hati dalam melaku- dialog --backtitle kan restore. Penulis tidak bertanggap jawabsed -e “s/$DBHOSTTEMPLATE/ “$BACKTITLE” --msgbox atas segala kerusakan yang terjadi atas peng-$DBHOST/g;s/$DBNAMETEMPLATE/ “Device cd writer tidak gunaan PgBackup. Selamat mencoba!$DBNAME/g;s/$DBUSERTEMPLATE/ diketahui” 20 60 && Noprianto (noprianto@infolinux.co.id)66 INFOLINUX 11/2004 www.infolinux.web.id
  • 18. Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial TUTORIAL ASP.NETMembangun Aplikasi Webdengan ASP.NETASP.NET tidak hanya dapat berfungsi di server berbasis MS Windows. Di Linux pun, Andadapat membangun aplikasi web dengan ASP.NET, sehingga Anda tidak hanya terpaku padaPHP, Perl, dan Java. Anda tidak perlu kembali ke MS Windows hanya demi ASP.NET.D apatkah Anda membayangkan bangun aplikasi web dengan bahasa ASP di XSP. Segeralah download XSP dari situs membuat aplikasi desktop dengan server Apache dengan bantuan modul Perl. ofisialnya atau lewat CVS anonimus. Sebe- bahasa assembly? Tidak, bukan? Tapi ASP bukan ASP.NET. Malah Micro- lumnya pastikan Anda sudah menginstalPenulis juga tidak. Makanya diciptakanlah soft dalam situs resminya sudah sangat Mono terlebih dahulu. Bagi Anda yangbahasa pemrograman yang lebih “tinggi”. menyarankan untuk migrasi dari ASP ke menggunakan distro Fedora, SuSE, atau RedBahasa-bahasa pemrograman seperti C/ ASP.NET. ASP.NET memiliki lebih banyak Hat, berbahagialah karena situs resmi MonoC++ atau Pascal “mengabstraksikan” baha- keunggulan daripada ASP biasa. Jadilah, sudah menyediakan paket binari ofisial un-sa assembly sehingga sangat memudahkan jika Anda membaca “perang” antara PHP tuk distro ini. Sedangkan bagi pemakai dis-Anda untuk membuat program. dengan ASP.NET misalnya di forum diskusi tro Gentoo atau Debian, paket binari ofisial Hal yang mirip terjadi untuk aplikasi atau milis, platform atau server juga ikut disediakan oleh pihak ketiga.web. HTML memang jauh lebih mudah dibawa-bawa. Artinya PHP vs ASP.NET itu Bagi pemakai distro lain yang tidak dise-daripada bahasa assembly. Tapi membuat juga berarti Linux vs Windows atau Apache diakan paket binarinya ataupun pemakaiaplikasi web terutama yang berskala besar vs IIS, walaupun sebenarnya kita pun bisa distro Debian atau Gentoo yang untuk satuhanya dengan HTML murni atau paling ti- membuat aplikasi web dengan PHP di ser- dan lain hal memutuskan untuk menggu-dak dibantu dengan JavaScript, tentu tidak- ver selain Apache atau sebaliknya. nakan paket ofisial dari situs resmi Monolah menyenangkan. Tapi itu adalah cerita lama. Terimakasih bukannya paket binari dari pihak ketiga, Dari waktu ke waktu, web semakin me- kepada Novell dan Ximian yang membawa jangan khawatir. Tidak sulit untuk meng-megang peranan penting dalam teknologi framework .NET ke platform Linux dengan instal XSP dari source. Cara instalnya tidakinformasi. Semakin banyak aplikasi web proyek yang diberi nama Mono. Dengan jauh berbeda dari cara menginstal softwareyang diciptakan dan menggantikan aplikasi Mono, maka membangun aplikasi web de- dari source. Cuma pada saat tahap ./con-desktop. Banyak keuntungan dari aplikasi ngan ASP.NET di platform Linux menjadi figure sebaiknya menggunakan parameterweb, antara lain bisa diakses dari mana saja mungkin. /usr. Jika Anda menggunakan cvs, maka(tentu dengan syarat memiliki koneksi in- Ok, penulis tahu Anda benci basa-basi. langkah ./configure digantikan dengan ./ternet dan browser) dan menjangkau orang Agar Anda bisa ber-ASP.NET-ria, Anda autogen.sh.banyak. Untuk itu, HTML saja tidak layak mempunyai dua pilihan untuk meng-host- Selesai menginstal XSP, gunakan konsollagi. Maka diciptakanlah teknologi web sep- ing ASP.NET. Pertama ialah dengan XSP, dan browse ke /usr/share/doc/xsp/test. Danerti PHP, Java, CGI yang sangat memudah- yaitu server web ringan yang ditulis dengan jalankan perintah mono /usr/bin/xsp.exe.kan kita untuk membuat aplikasi web teru- bahasa C#. Ini adalah pilihan yang paling Anda akan mendapatkan pesan seperti:tama yang berskala besar. HTML dengan mudah. Cara kedua adalah dengan meng- Adding applications ‘/:.’...digabung teknologi web itu akan menghasil- gunakan server Apache (1.3 atau 2) dengan Registering application:kan produktivitas tinggi dalam menghasil- bantuan modul mod_mono. Orang meng- Host: anykan aplikasi web. gunakan XSP untuk masa pengembangan Port: any Masih ada pilihan lagi bagi Anda para de- dan testing. Apache lebih cocok digunakan Virtual path: /veloper web, yaitu ASP.NET. Dengan ASP. untuk masa deployment. Anda bisa melihat Physical path: /usr/doc/xsp/NET Anda bisa membangun aplikasi web beberapa aplikasi web berbasiskan ASP. testberskala besar dengan produktivitas yang NET seperti BlogX dan IBuy Spy Portal yang Listening on port: 8080mengesankan. Tapi sayangnya, teknologi ini dijalankan di Mono, seperti tampak dalam Listening on address: 0.0.0.0terbatas pada satu platform yaitu Windows Gambar 1 dan Gambar 2. Root directory: /usr/doc/xsp/atau pada satu server, yaitu IIS (Internet Dalam artikel ini, kita hanya akan mem- testInformation Services). Memang bisa mem- bahas cara meng-hosting ASP.NET dengan Hit Return to stop the server. www.infolinux.web.id INFOLINUX 11/2004 67
  • 19. TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | TutorialASP.NET Server web xsp secara default meng- yang Anda tulis. Hanya delapan baris untuk <body>gunakan port 8080 (Anda bisa mengganti- membuat sebuah kalendar. Kalendar ini <form runat=server>kannya dengan mengedit file xsp.exe.config memang jelek. Tapi setidaknya sudah mem- <h3> Calendar and propertiesyang bisa ditemukan di direktori yang sama) berikan gambaran bagi Anda bahwa ASP. </h3>yang artinya tidak akan mengganggu server NET sudah menyediakan berbagai fungsi- <asp:calendar id=”Calendar1”Apache Anda jika sudah berjalan sebelum- fungsi rutin seperti dalam contoh ini, yaitu Font-Name=”Arial” showtitlenya (yang biasanya menggunakan port 80). membuat kalender. Bayangkan jika Anda =”true” Gunakan browser kesayangan Anda un- membuat kalendar dengan HTML dibantu runat=”server”>tuk membuka URL http://localhost:8080/ dengan JavaScript. Berapa baris kode yang <SelectedDayStyleindex.aspx. Jika Anda melihat halaman Anda perlukan? ASP.NET mengabstraksi BackColor=”Blue”web dengan page heading yang bertuliskan kode-kode rumit HTML ke dalam kode- ForeColor=”Red”/>“Welcome to Mono XSP!”, maka Anda kode yang lebih praktis. Lihat Gambar 4. <TodayDayStyleberhasil ber-ASP.NET-ria di Linux. Pada Sekarang kita mencoba untuk melihat BackColor=”#CCAACC”halaman itu terdapat banyak link contoh contoh aplikasi web kalender yang sudah ForeColor=”#000000”/>halaman web yang ditulis dengan bahasa disediakan di direktori yang bersangkutan </asp:Calendar>ASP.NET. Anda bisa melihat-lihat contoh- dengan nama calendar.aspx. Bukalah de- </form>contoh yang tersedia. Tentu dengan syarat ngan browser dengan cara mengetikkan url </body>server web XSP bekerja juga pada saat ber- ini di Location browser Anda: http://local- </html>samaan. Lihat Gambar 3. host:8080/calendar.aspx. Lalu cobalah un- Tapi tentu Anda tidak akan puas hanya tuk membuka file itu dengan text editor. Ini adalah kalendar yang sudahmelihat-lihat saja. Mari kita membuat apli- Jangan coba untuk melihat kode file ini dari di”improve”. Anda mungkin heran dengankasi web dengan bahasa ASP.NET ini. Kita browser (misalnya jika Anda menggunakan kalimat pertama, yaituakan merasakan kedahsyatan ASP.NET. Mozilla, Anda klik kanan dan memilih opsi <%@ Page Language = “C#” %>Ingat apa yang penulis katakan di awal view Page Source). Isinya lebih banyak dariartikel. ASP.NET diciptakan untuk memu- file sebelumnya. ASP.NET berbasiskan framework .NET.dahkan kehidupan developer web dari me- <%@ Page Language = “C#” %> Karena itu ASP.NET mendapatkan seluruhlaksanakan tugas-tugas rutin, membuat <html> ketangguhan dan fleksibilitas frameworksubmisi form yang sederhana dan otenti- <head> .NET. Pustaka-pustaka yang kaya untukkasi klien, sampai konfigurasi server web <title> Calendar Test </title> framework .NET tersedia siap pakai bagi pa-dan deployment. Kata kuncinya adalah </head> ra developer web. ASP.NET juga tidak ter-produktivitas, produktivitas, dan produk-tivitas. Buka text editor kesayangan Anda.Ketiklah:<html><body> <form runat=server> <asp:calendarid=”Calendar1” runat=”server”> </asp:calendar> </form></body></html> Simpanlah file tersebut dengan namakalendar.aspx di direktori yang sama. Iniadalah ekstensi yang umum dipakai. Eks-tensi yang lain adalah *.ascx, *.ashx, dan*.asmx. Ingat, sebelumnya Anda harus mem-beri izin menulis di direktori tersebut untukuser biasa kecuali Anda sedang mengguna-kan account root sekarang ini. Bukalah de-ngan browser. URL-nya adalah http://local-host:8080/kalendar.aspx. Anda akan meli-hat sebuah kalendar. Selamat! Coba lihat file Gambar 1. BlogX_berjalanDenganMono.68 INFOLINUX 11/2004 www.infolinux.web.id
  • 20. Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial TUTORIAL ASP.NETgantung pada satu bahasa tertentu. Secarateoretis, Anda bisa menggunakan bahasapemrograman apa saja untuk mengembang-kan aplikasi web dengan ASP.NET sepan-jang bahasa itu mendukung properti .NET.Tapi bahasa yang umum dipakai adalah VB,JScript, dan tentu saja C#. Tapi sayangnyauntuk platform Mono sampai artikel ini di-tulis, hanya bahasa C# yang didukung. Jadisebenarnya, kalimat pertama itu bisa diha-pus seperti yang penulis lakukan pada con-toh pertama. Singkatnya ASP.NET adalah.NET di web. Keunggulan ASP.NET yang lain adalahperformansi yang meningkat. ASP.NETsebenarnya adalah kode CLR (Common La-nguage Runtime) yang sudah di-compile danbekerja di server. Tidak seperti pendahulu-nya, yaitu ASP yang cuma menggunakan Gambar 2. IBuySpyPortal_berjalanDenganMono.pendekatan interpretasi, ASP.NET bisa me-ngambil keuntungan dari early binding, kom- halaman berbasis ASP.NET adalah semudah ngan semestinya. Mungkin penampilan ha-pilasi just-in-time, ataupun optimasi untuk mendrag-drop kontrol elemen yang mau laman web akan berbeda jika di-hosting dimesin. Kita akan melihat bagaimana C# ber- dipakai dan mengatur properti visualnya. platform Windows. Ini wajar karena Monoperan dalam aplikasi web. Ini adalah contoh Mirip membuat GUI dengan desainer GUI se- baru berada pada tahap awal.yang sederhana di mana kode C# dimasuk- perti VB atau Glade. Tapi saat ini, sayangnya, Cukup banyak developer Windows yangkan (di-embbed) ke dalam halaman aspx. IDE yang berhubungan dengan ASP.NET itu antusias dengan projek Mono ini. Ada yang<%@ Page Language=”C#”%> tidak ada. Penulis mencoba MonoDevelop. berharap dengan projek Mono, orang bisa Pada waktu mau membuat file baru (New menghindari atau menekan biaya lisensi<html> File), tidak ada pilihan untuk membuat file Windows. Atau ada yang lebih merasa nya- <body> berbasiskan ASP.NET walaupun ada pilihan man dengan server Apache daripada IIS <center> C# web service. Tapi penulis memperkirakan karena alasan keamanan misalnya. Tidak <% for ( int i=0; i<8; dukungan untuk ASP.NET di MonoDevelop seperti komunitas Linux, sebagian besar i++ ) { %> sedang diusahakan. Lihat Gambar 6. developer .NET di platform Windows me- <font size=”<%=i%>”> Sebagaimana yang dijawab oleh Miguel nyambut gembira projek Mono ini. InfoLinux Keren </font> lewat e-mail yang ditanyakan penulis, ASP. Mono dengan masalah lisensi dan paten <br> NET di platform Mono itu lengkap 100% seperti dua sisi yang berbeda dari satu keping <% }%> sebagaimana yang disadari oleh para devel- koin yang sama. Mono secara singkat adalah </center> oper Mono dengan catatan plug-in bahasa implementasi framework .NET yang dikem- </body> seperti VB dan JScript sedang dikerjakan. Ja- bangkan pertama kali oleh Microsoft. Frame-</html> ngan terkejut kalau 1% dari server web yang work .NET dan bahasa pemrograman yang melayani halaman web berbasiskan ASP. dikembangkan khusus untuk framework Jalankan file itu dan Anda akan meli- NET di Internet berada di platform Linux. .NET itu, yaitu C# dan “JVM”-nya, yaituhat tulisan “InfoLinux Keren” yang makin Ini berdasarkan survey dari Netcraft. Anda CLI (Common Language Infrastructure) itumembesar. Anda sendiri bisa melihat sen- bahkan bisa membuat halaman web dengan berada pada standar ECMA. Artinya orangdiri perulangan for biasa yang berasal dari ASP.NET di platform Windows dengan IDE bebas mengimplementasi teknologi ini de-sintaks C#. Lihat Gambar 5. Visual Studio .NET lalu menhostingnya di ngan bebas dan demi tujuan apapun. Di artikel ini sudah dikatakan, ASP.NET web server Linux dengan Mono. Miguel de Icaza, didukung oleh perusa-diciptakan untuk mendongkrak produkti- Tapi tentu saja untuk bagian tertentu haan Ximian, yang merupakan anak pe-vitas para developer web. Jadi bagaimana Anda akan menjumpai bug-bug. Bisa saja rusahaan dari perusahaan bereputasi besar,dengan IDE? Kita tahu sendiri, IDE ber- proyek Anda berjalan mulus waktu ditesting yaitu Novell mengimplementasi frameworkperan sangat penting untuk lebih mendong- dengan IIS di Windows tapi terjadi hal yang .NET ini di platform Linux khususnya de-krak produktivitas para developer. Di dunia aneh jika ditesting dengan Mono. Kadang- ngan proyek Mono. Ini hal-hal yang sahWindows, ada yang namanya Visual Studio kadang Anda akan menemukan satu atau saja. Tapi tetap sebagian komunitas Linux.NET. Dengan Visual Studio .NET, membuat beberapa kontrol elemen tidak bekerja de- tidak bisa menerima ini. Pertama-tama sebe- www.infolinux.web.id INFOLINUX 11/2004 69
  • 21. TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | TutorialASP.NET nya Microsoft. Jika proyek Mono diadakan dengan tujuan agar developer-developer di platform Linux memiliki alat-alat pengem- bangan yang bisa meningkatkan produktivi- tas dibandingkan dengan C/C++, bukankah sudah ada Python, PHP, dan Java? Mengapa mengambil risiko yang tidak perlu? Beginilah pembelaan dari Miguel de Icaza, orang paling penting dalam proyek Mono. Tidak menggunakan Mono dalam bentuk apa pun bukan merupakan jawaban dari ma- salah software patents. Itu berarti jika Anda memutuskan untuk menggunakan alat-alat pengembangan yang lain, seperty Python, Java, dan lain-lain, Anda tetap mempunyai kecenderungan yang besar untuk melanggar paten seseorang. Kita tahu ada beribu-ribu (sampai hi- tungan puluhan ribu) paten yang sudah “dipatenkan” oleh orang atau perusahaan, misalnya seperti Microsoft, IBM, Canon, dan lain-lain. Jadi bagaimana Anda tahu kalauGambar 3. HalamanAwalSample_dariXSP. Anda tidak melanggar paten seseorang yang jumlahnya ribuan waktu Anda menuliskanlumnya, kita harus menyadari Linux secara ngan adanya sistem operasi baru yang akan kode? Ada yang berkomentar. Adalah musta-khususnya dan open source secara umum- datang dari Microsoft, Longhorn, yang akan hil menulis kode lebih dari seribu baris tanpanya adalah saingan berat, serius, dan utama menawarkan fitur-fitur baru. Bagaimana melanggar paten. Berita baiknya adalah ka-dari Microsoft. Microsoft secara resmi tidak kalau Microsoft mengubah spesifikasi .NET lau kita melanggar paten seseorang, kita bisapernah memberi restu kepada proyek Mono di masa mendatang sehingga proyek Mono menyediakan fitur serupa dengan mengubahini. Microsoft secara resmi tidak pernah tidak bisa lagi kompatibel dengan .NET- cara implementasinya. Itulah yang dilakukanmemberi pernyataan bahwa Microsoft men-jamin untuk tidak akan “menyerang” proyekMono. Tapi Microsoft secara resmi juga tidakmemberi pernyataan bahwa Microsoft “tidaksenang” dengan projek Mono ini seperti yangdilakukan grup SCO kepada IBM dan komu-nitas Linux. Malah terjadi komunikasi yangcukup menyenangkan dari insinyur yangbekerja pada projek .NET (Microsoft) dangrup ECMA yang membantu mengklarifikasihal-hal teknis dari framework .NET. Dari dasar ini komunitas Linux yangtidak bisa menerima Mono dan mengang-gap Mono sebagai suatu risiko yang tidakbisa diterima, berargumentasi sebagai beri-kut. Microsoft memang belum melakukanapa yang dilakukan SCO. Microsoft akanmenunggu proyek Mono sampai matang.Lalu dengan segala cara Microsoft akan me-ngambil keuntungan dari ini. Mungkin Mi-crosoft akan meminta royalti atau semacam-nya. Selain itu terlalu berisiko dan susah bagiprojek Mono untuk menjaga kompatibilitasdengan .NET-nya Microsoft, apalagi de- Gambar 4. Calendar_contohHalamanASPNET.70 INFOLINUX 11/2004 www.infolinux.web.id
  • 22. Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial TUTORIAL ASP.NETMono. Proyek Mono tidak berniat untukmelanggar paten .NET-nya Microsoft tapijika terbukti melanggar paten, proyek Monoakan membuat klaim itu tidak valid denganmengubah cara implementasinya. Makanya, Miguel sudah mewanti-wantideveloper-developer yang mau bergabung kedalam proyek Mono untuk tidak membacakode dari implementasi .NET Microsoft.Bagi mereka yang sudah, kecil kemungki-nannya untuk diterima di proyek Mono.Lalu bukankah sudah ada Java, PHP, danPython? Java tidak opensource. Jadi peng-gunaan Java di platform open source apalagiuntuk menulis aplikasi free software agak ter-batas. Umumnya orang lebih suka menulisaplikasi open source dengan alat pengem-bangan opensource. Python tidak sepopulerC#, C++, atau Java di platform Windows.Dan pendekatannya yang menggunakan in-terpretasi memiliki kelemahan tertentu. Ingat, salah satu alasan diciptakan proyekMono adalah untuk membuat developer di Gambar 6. C#WebService_denganMonoDevelop.platform Windows tertarik untuk migrasi keplatform Linux atau setidaknya memperha- tidak berlaku di negara Indonesia. mendapat jawaban dari channel irc mono.tikan platform Linux ini. Sedangkan penulis Ada lagi yang mengemukakan kekhawati- Mengkloning API seperti ADO.NET danmemutuskan untuk tidak mengomentari ran seperti ini. C#/CLI berada dalam standar ASP.NET tidaklah melanggar paten sepan-“perang religius” antara ASP.NET dengan ECMA tapi bagaimana dengan komponen jang proyek Mono menggunakan imple-PHP. Lagi pula bukankah “Choices are good”? .NET seperti ADO.NET atau ASP.NET yang mentasi yang berbeda untuk API tersebut.Kabar baik yang lain adalah software patents bukan berada dalam standar ECMA. Penulis Tentu saja tidak semua orang setuju de- ngan pembelaan dari Miguel ini. Tapi satu artikel ini saja tidak cukup dalam memuat diskusi tentang Mono dan risikonya beserta pro dan kontranya. Banyak yang menolak, dan banyak yang mendukung. Kalangan dari Red Hat umumnya skeptis dengan Mono. Apalagi Sun yang berinvestasi sangat besar pada saingan .NET, yaitu Java. Tapi, bagaimana dengan di dunia nyata? Kesannya proyek Mono ini hanyalah proyek untuk hobi. Begitulah salah satu hal yang membuat orang enggan menggunakan framework .NET ini. Pertama-tama, proyek ini baru mencapai rilis stabilnya yang per- tama. Jadi ini hanyalah masalah waktu saja. Apakah seiring dengan bertambahnya waktu, projek Mono akan semakin memiliki banyak pengguna dan menunjukkan tajinya sebagai salah satu alat pengembangan yang dapat meningkatkan produktivitas, atau menetap sebagai projek yang kontroversial dan hanya untuk kalangan hobi, waktu yang akan menjawabnya.Gambar 5. ContohHalamanASPNET_denganC#. Akbar (tuxer@softhome.net) www.infolinux.web.id INFOLINUX 11/2004 71
  • 23. TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | TutorialKylix dan PostgreSQLKylix dan PostgreSQLKylix termasuk salah satu RAD tool yang sangat memudahkan dalam pembuatan aplikasiGUI. Digabungkan dengan PostgreSQL, kita dapat membuat aplikasi berbasis databaseyang mudah digunakan sekaligus canggih.P emrograman di Linux memang dikan programer Windows yang berpindah konektivitas Kylix dan PostgreSQL dapat gampang-gampang susah. Di satu ke Linux menjadi gila. dimungkinkan. Contoh aplikasi yang dapat sisi, Linux adalah surga bagi para Beberapa RAD tool bagus memang digunakan untuk memahami Kylix dan data-programer. Banyak sekali pustaka bebas tersedia. Seperti misalnya Netbeans untuk base lebih lanjut juga akan diberikan.yang bisa digunakan. Belum lagi, dengan programmer Java, atau Qt Designer untuk Distro yang digunakan adalah SUSEbanyaknya aplikasi open source, seorang programmer C++ dengan pustaka GUI Qt. 9.1, namun penerapan pada distro berba-programer—asal rajin—dapat mengintip Sayangnya, Qt Designer versi bebas tidak sis kernel 2.6.x.y lainnya seharusnya tidaksource code-nya untuk mendapatkan penge- mengijinkan kita untuk membuat aplikasi akan terlalu berbeda. Kylix yang digunakantahuan lebih. Semua kemudahan tersebut proprietary. Ada pula Gambas, yang cukup adalah Kylix 3 edisi enterprise. PostgreSQLlantas ditunjang lebih lanjut lagi dengan ambisius, namun masih jauh dari matang. yang digunakan adalah 7.3.4 yang penuliskehadiran berbagai tool pengembangan ap- Beberapa lainnya masih ada, termasuk Laza- koneksikan secara remote ke server lain.likasi seperti ArgoUML untuk pemodelan rus untuk programer pascal, namun seba- Untuk mendukung artikel ini, sebaiknyaUML, Eclipse untuk IDE, Cervisia sebagai gian besar, tidaklah sematang dan semudah Kylix telah terinstal di sistem Anda. BacalahCVS front end, dan lain sebagainya. Kom- Visual Basic ataupun Delphi. edisi yang lalu untuk seluk-beluk instalasi-plit. Seperti seolah-olah Linux hadir hanya Borland kemudian merilis Kylix yang nya. PostgreSQL juga sebaiknya telah ter-untuk programer. dapat digunakan sebagai RAD untuk ba- install, atau Anda memiliki hak akses ke Sayangnya, perhatian para pengembang hasa Delphi ataupun C++. Kylix sendiri server postgreSQL lain. Instalasi PostgreSQLsoftware untuk RAD sepertinya masih be- juga dirilis dalam beberapa edisi, yang salah di luar cakupan artikel ini.lum terlalu besar. Atau, budaya pengem- satu di antaranya adalah open edition. Gratisbangan aplikasi dengan sistem drag-sana- download dan pakai, namun hanya bisa di- Menyiapkan databasedrag-sini lantas menulis kode sesedikit gunakan untuk membangun aplikasi GPL. Pertama-tama, nyalakan terlebih dahulumungkin, sepertinya kurang populer di du- Seperti halnya Delphi, Kylix cukup PostgreSQL Anda, dan pastikan Anda me-nia free software. Sebagian besar developer matang dan lengkap. Kylix edisi enterprise miliki hak akses ke server tersebut. Apabilalebih senang menyusun ribuan kepingan bahkan menyediakan dukungan untuk belum, kita akan membuat sebuah user danpuzzle-nya sendiri untuk menghasilkan konektifitas database besar seperti Oracle database dengan nama yang sama denganaplikasi besar. Termasuk menyusun GUI dan DB2. Walau dengan tidak adanya up- nama username sistem.sendiri dengan berbagai pustaka GUI yang date dari Borland selama dua tahunan dan Login-lah terlebih dahulu ke komputerada. perkembangan Linux yang semakin cepat, server apabila database server Anda terpisah Menyusun sendiri memang sangat meng- Kylix masih dapat diandalkan untuk mem- dengan komputer yang Anda gunakan.goda. Kita memiliki kontrol penuh atas bangun aplikasi besar. Berikut ini adalah perintah-perintah untukkode-kode kita. Bahkan, kalau tidak puas, Di edisi lalu, kita membahas seluk beluk membuat user dan membuat database:kita bisa mengubah sedikit-sedikit binding instalasi Kylix. Beberapa hal memang harus nop@bios:~> supustaka dengan bahasa pemrograman yang diperhatikan untuk menyiasati tidak adanya Password:kita gunakan. Sekedar mengubah construc- update resmi dari Borland untuk menye- bios:/home/nop # su postgrestor class yang kita inginkan, misalnya. suaikan diri dengan perkembangan Linux. postgres@bios:/home/nop> Sayangnya, sistem susun sendiri memi- Di edisi ini, kita akan membahas konek- createuser nopliki kekurangan: waktu pengembangan, ter- tifitas Kylix dengan PostgreSQL, sebagai Shall the new user be allowed toutama dalam penyusunan GUI menjadi le- ORDBMS yang populer dan semakin po- create databases? (y/n) ybih lama. Hal tersebut belum lagi ditambah puler. Sebagai konsekuensi dari tidak ada- Shall the new user be allowed todengan kurangnya widget misalnya. Selain nya update Kylix tersebut, banyak kondisi create more new users? (y/n) nitu, kekurangan-kekurangan lain seperti telah menjadikan beberapa hal tidak dapat CREATE USERkurang matangnya binding juga bisa men- langsung digunakan. Butuh beberapa trik postgres@bios:/home/nop> exitjadi masalah. Belum lagi dengan banyaknya untuk menyesuaikan diri. Kita akan mem- exitpilihan pustaka GUI. Semuanya bisa menja- bahas tuntas trik yang diperlukan agar bios:/home/nop # exit72 INFOLINUX 11/2004 www.infolinux.web.id
  • 24. Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial TUTORIAL Kylix dan PostgreSQL exit net) atau PgAccess (dibuat dengan Tcl/Tk, nop@bios:~> createdb nop Type: copyright for lengkap namun tampil dengan ciri khas Tk, CREATE DATABASE distribution terms dapatkan di http://pgacces.org). h for help with SQL Database telah siap digunakan. Kini, kita Perintah-perintah tersebut dapat diarti- commands tinggal mengurus konektivitas Kylix dengankan sebagai berikut: ? for help on internal PostgreSQL. User nop telah login ke server. slash commands Memberikan perintah su untuk menjadi g or terminate with Konektivitas Kylix dan PostgreSQL user root. semicolon to execute query Sebelum kita melanjutkan, pastikan Anda Setelah menjadi user root, memberikan q to quit telah menginstall Kylix enterprise leng- perintah su postgres untuk menjadi user kap dengan dbexpress driver untuk Post- postgres. Di SUSE (dan umumnya di nop=> greSQL. distro lain), postgres adalah super user Konektifitas Kylix dan PostgreSQL men- untuk database PostgreSQL. Apabila Anda menjumpai tampilan jadi masalah karena Kylix membutuhkan Setelah menjadi user postgres, kita mem- tersebut, maka koneksi dengan database membutuhkan pustaka client yang kuno berikan perintah createuser nop untuk server PostgreSQL menggunakan client psql dan sudah tidak digunakan lagi saat ini membuat user nop di database server telah berhasil. Sebagai catatan, karena server (Kylix membutuhkan libpq.so.2, sementara PostgreSQL. User nop diijinkan untuk PostgreSQL penulis berada pada komputer umumnya yang ada saat ini adalah libpq. membuat database, namun tidak di- yang berbeda, maka opsi -h <host> harus so.3). izinkan untuk membuat user lain. diberikan. Dalam melakukan koneksi, Kylix memi- Dengan perintah exit sebanyak dua kali, Buatlah sebuah table, katakanlah dengan liki mekanisme yang sedikit berbeda dengan kita kembali ke user root dan kembali ke nama test. Ketikkanlah perintah berikut ini bahasa-bahasa lainnya. Kylix menggunakan user nop. pada prompt nop=> sebelumnya: penengah untuk dapat terhubung ke da- Sebagai nop, kita membuat database nop nop=> create table test (no tabase server PostgreSQL melalui libpq. dengan perintah createdb nop. serial, nama character Pustaka penengah tersebut adalah libsqlpg. varying(64)); so. Pustaka yang satu inilah yang nakal dan Secara default, pengaturan server Post- NOTICE: CREATE TABLE will sangat setia dengan libpq.so.2 (libpq.so).greSQL umumnya memberi kemudahan create implicit sequence ‘test_ Solusinya sebenarnya mudah. Apabila(dan keamanan) untuk identifikasi ber- no_seq’ for SERIAL column ‘test. Anda tidak memiliki libpq.so.2, copy-kandasarkan user yang sedang login ketika no’ saja libpq.so.3 (bisa dari server remote ataukonektifitas dilakukan. Pengaturan default- CREATE TABLE dari server PostgreSQL lokal Anda, um-nya berdasarkan credential socket untuk user nop=> umnya di /usr/lib) ke direktori binary kylixyang sama dengan user yang sedang login di (umumnya di ~/kylix3/bin)sistem. Untuk mengubah hal ini, aturlah isi Kini, Anda telah memiliki satu table de- Kemudian, berikan perintah berikut inifile pg_hba.conf yang umumnya terletak di ngan nama test yang terdiri dari dua field: untuk menguji ketergantungan libsqlpg.so:/var/lib/pgsql/data/. no dan nama. ldd libsqlpg.so Ujilah koneksi dengan memberikan pe- Untuk memudahkan administrasi Post- linux-gate.so.1 =>rintah berikut ini: greSQL, Anda mungkin ingin menggunakan (0xffffe000) psql -h 192.168.0.1 -U nop -d PHPPgAdmin (berbasis web, Anda mem- libpq.so.2 => not found nop butuhkan Apache dan PHP terinstal, sedikit libdl.so.2 => /lib/lib Welcome to psql 7.4.2, the Post repot namun memiliki tampilan memikat. dl.so.2 (0x40035000) greSQL interactive terminal. Dapatkan di http://phppgadmin.sourceforge. libm.so.6 => /lib/tls/Project1. Project2. Project3. www.infolinux.web.id INFOLINUX 11/2004 73
  • 25. TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | TutorialKylix dan PostgreSQLKylix untuk Delphi. Phppgadmin. libm.so.6 (0x40039000) libcrypt.so.1 => /lib/ Karena SQLConnection adalah non vi- libc.so.6 => /lib/tls/ libcrypt.so.1 (0x402a5000) sual component, maka Anda bisa me- libc.so.6 (0x4005b000) libresolv.so.2 => /lib/ letakkannya di mana saja. Aturlah nilai /lib/ld-linux.so.2 => libresolv.so.2 (0x402d6000) LoginPrompt menjadi False. /lib/ld-linux.so.2 (0x80000000) libnsl.so.1 => /lib/ Klik ganda komponen tersebut. Sebuah libnsl.so.1 (0x402e9000) dialog akan terbuka. Anda bisa melihat betapa nakalnya libs- /lib/ld-linux.so.2 => Pilihlah PostgreSQL Connection danqlpg.so. /lib/ld-linux.so.2 (0x80000000) aturlah nilai yang benar pada Connection Karena Anda sudah memiliki libpq.so.3, Settings.maka apa yang perlu Anda lakukan adalah Kini, Anda sebenarnya sudah siap un- Klik tombol Test Connection (tombolmembuat link file dari libpq.so.3 ke libpq. tuk melakukan koneksi ke PostgreSQL dari kedua dari kanan di deretan tombol ba-so.2 dan libpq.so dengan perintah berikut Kylix. Hanya, perhatikan juga apakah libpq. gian atas dialog). Apabila tertulis Success-ini: so.2 dan libpq.so terdapat dalam library fully Connected, maka koneksi berhasil. ln -sf libpq.so.3 libpq.so.2 path Anda. Sebagian besar dari Anda akan Apabila gagal, ulangi langkah-langkah ln -sf libpq.so.3 libpq.so mengatur variabel sistem LD_LIBRARY_ sebelumnya ketika kita memberikan link PATH untuk ikut mengarah ke direktori bi- dari libpq.so.3 ke libpq.so.2 dan libpq.so. Kemudian, uji kembali libsqlpg.so dan nary kylix3 (umumnya ~/kylix3/bin) karenapastikan Anda tidak menjumpai tulisan not pustaka runtime aplikasi Anda disimpan di Simpanlah Project1 Anda. Kita akanfound lagi. Berikut ini adalah keluaran di direktori tersebut. Sayangnya, apabila psql menggunakannya untuk contoh-contoh ap-komputer penulis: di sistem Anda harus membutuhkan libpq. likasi kita selanjutnya. ldd libsqlpg.so so.3, maka Anda harus mengatur penca- linux-gate.so.1 => rian lokasi pustaka, atau kalau tidak ingin Contoh 1: Penggunaan DBGrid (0xffffe000) melakukan hal tersebut, Anda harus meng- Contoh pertama kita adalah aplikasi yang libpq.so.2 => libpq.so.2 unset LD_LIBRARY_PATH setiap kali ingin dapat menampilkan data tabel test dalam (0x40024000) menjalankan psql. sebuah grid. Kita juga dapat menambahkan libdl.so.2 => /lib/libdl. Hal ini seharusnya tidak diperlukan apa- data, atau menghapus data. Kita juga dapat so.2 (0x4004a000) bila Anda menggunakan pgacces ataupun melakukan navigasi sederhana di dalam grid libm.so.6 => /lib/tls/libm. phppgadmin. tersebut. Dan hebatnya, kita hanya perlu so.6 (0x4004e000) Untuk percobaan koneksi, bukalah Ky- menuliskan satu atau dua baris kode. Begitu libc.so.6 => /lib/tls/libc. lix (Delphi) dan lakukan langkah-langkah mudah, begitu cepat! so.6 (0x40070000) berikut ini: Lakukan langkah-langkah berikut ini: libssl.so.0.9.7 => /usr/ Buka proyek baru, simpan dengan nama Bukalah Project1 sebelumnya. Anda telah lib/libssl.so.0.9.7 (0x40185000) default sebagai Project1. memiliki komponen TSQLConnection libcrypto.so.0.9.7 => Masukkan komponen SQL Connection di Form1 Anda. Aturlah agar peletakan /usr/lib/libcrypto.so.0.9.7 di Form1. Komponen ini didapat dari komponen ini tidak menghalangi kom- (0x401b5000) tab dbExpress (komponen paling kiri). ponen lain di dalam form.74 INFOLINUX 11/2004 www.infolinux.web.id
  • 26. Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial TUTORIAL Kylix dan PostgreSQL Siapkan komponen TSQLDataSet yang Kini, kita akan mencoba Project1 kita Bagaimanakah kalau kita ingin mencegah dapat diambil dari tab dbExpress (bera- tersebut. Anda bisa menambahkan data, penghapusan data dengan cara demikian? da di sebelah kanan TSQLConnection). mengubah data atau mengurangi data, atau Bloklah penekanan tombol tersebut. Beri- Berikan nama default SQLDataSet1. melakukan navigasi sederhana. Hanya, satu kan kode-kode berikut untuk menangani Aturlah nilai properti SQLConnection kekurangan yang ada yaitu tidak otomatis- event OnKeyDown Dbgrid1: menjadi SQLConnection1. Kemudian, nya update pada database. if (key = key_delete) and berikan perintah berikut ini sebagai nilai Agar setiap perubahan langsung dikirim (ssCtrl in Shift) then key := 0; properti CommandText: “Select * from dan diberlakukan, tariklah sebuah button ke test”. Terakhir, ubahlah nilai properti dalam form1 dan berikan kode-kode beri- Harap diperhatikan, untuk dapat men- Active menjadi True. Anda telah ter- kut ini pada event OnClick: gompile kode tersebut (konstanta key_de- hubung dengan database server pada da- if ClientDataSet1.State in lete), Anda harus menggunakan unit tam- tabase nop. [dsEdit, dsInsert] then Client bahan, yaitu unit Qt. Tambahan pada ba- Siapkan komponen TdataSetProvider DataSet1.Post; gian atas unit Anda. yang dapat diambil dari tab Data Access ClientDataSet1.ApplyUpdates(-1); Demikianlah contoh pertama kita. Sim- (komponen ketiga dari kiri). Berikan na- panlah Project1. Kita akan segera melanjut- ma default DataSetProvider1. Ubahlah Sebagai sentuhan terakhir, perindahlah kan ke contoh berikutnya. nilai properti DataSet menjadi SQLData- tampilan form Anda. Berikut ini adalah be- Set1. berapa hal yang dapat dilakukan: Contoh 2: Penggunaan DB Control Lain Siapkan komponen TclientDataSet Ubahlah caption Button1 menjadi ‘&Up- Bukalah Project baru dan simpanlah de- yang dapat diambil dari tab Data Access date’ Misalnya. ngan nama default Project2. Di Project2 (komponen kedua dari kiri). Berikan Ubahlah agar Dbgrid dapat dipilih per ini, kita akan melihat lebih lanjut berbagai nama default ClientDataSet1. Ubahlah baris dengan mengubah properti Op- DB Control lain. Kita masih akan meng- nilai properti ProviderName menjadi tions.dgRowSelect menjadi True. Na- gunakan table test database nop. Apabila DataSetProvider1 dan nilai properti Ac- mun, hal ini akan menyusahkan pema- di contoh pertama kita menggunakan DB- tive menjadi True. sukan data baru. Grid untuk segala-galanya, kali ini kita Siapkan komponen TdataSource yang Anda dapat menampilkan button yang akan menggunakan komponen-komponen dapat diambil dari tab Data Access (kom- hanya Anda inginkan pada DBNaviga- lainnya. ponen paling kiri). Berikan nama default tor1 dengan mengubah properti Visible- Lakukan langkah-langkah berikut ini: DataSource1. Ubahlah nilai properti Buttons. Seperti biasa, kita akan meletakkan ber- DataSet menjadi ClientDataSet1. Anda dapat mengubah hint pada tom- bagai komponen agar koneksi ke Post- Semua komponen nonvisual telah kita bol-tombol DBNavigator1 menjadi ba- greSQL dapat dilakukan. letakkan dan persiapan koneksi telah hasa Indonesia dengan mengubah pro- Tambahkan komponen Tlabel ke form selesai kita lakukan. Kini, kita akan ber- perti Hints. dan ganti captionnya menjadi Nomor. hubungan dengan komponen visual. Tambahkan sekali lagi Tlabel dan ubah Pindahlah ke tab Data Controls dan Satu hal yang cukup menarik untuk di- captionnya menjadi Nama Kontak. Po- tariklah sebuah TDBGrid (komponen perhatikan. Umumnya, nama field dibuat sisikan vertikal. paling kiri) ke dalam form. Berikan na- sedemikian rupa agar ringkas. Namun bagi Tambahkan komponen TDBText di ma default DBGrid1. Aturlah agar pele- user, hal yang satu ini malah merugikan. Ada sebelah kanan Label dengan caption takannya enak dipandang. Kemudian, baiknya, kita mengubah field nama misal- Nomor dan TDBEdit di sebelah kanan ubahlah nilai properti DataSource men- nya, menjadi Nama Kontak dan no menjadi Label dengan caption Nama Kontak. jadi DataSource1. Anda akan melihat isi Nomor. Berikanlah kode-kode berikut ini Berikan keduanya nama default Dbtext1 dari DBGrid1 menjadi isi dari tabel test pada event OnShow Form1: berkat perintah “select * from test”. ClientDataSet1. Kita akan menambahkan sebuah navi- FieldByName(‘no’).DisplayLabel gator ke dalam form kita. Masih di tab := ‘Nomor’; Data Controls, tariklah TDBNavigator ClientDataSet1. (komponen kedua dari kiri) ke dalam FieldByName(‘nama’).DisplayLabel form. Berikan nama default DBNaviga- := ‘Nama Kontak’; tor1. Ubahlah nilai properti DataSource menjadi DataSource1. Sekarang, masih dalam tahapan mem- Selesai. Simpan Project1 dan jalankanlah perindah aplikasi, cobalah menekan kom- dengan menekan tombol F9. Anda telah binasi tombol CTRL-DEL di dalam DB- selesai membuat aplikasi tanpa menulis Grid. Apa yang terjadi? Ya. Sebuah konfir- satu baris kode pun. masi penghapusan data akan ditampilkan. pgaccess. www.infolinux.web.id INFOLINUX 11/2004 75
  • 27. TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | TutorialKylix dan PostgreSQL dan Dbedit1. Ubahlah properti Data- Seperti biasa, kita akan meletakkan ber- End; Source Dbtext1 menjadi DataSource1 bagai komponen agar koneksi ke Post- end; dan properti DataField menjadi no. Ke- greSQL dapat dilakukan. mudian, Ubahlah properti DataSource Tambahkan StringGrid ke dalam Form1. Pertama-tama, kita menutup dan mem- DbEdit1 menjadi DataSource1 dan Berikan nama default StringGrid1. buka kembali dataset yang kita miliki. properti DataField menjadi nama. Tambahkan sebuah button, berikan Setelah itu, kita menentukan jumlah baris Tambahkan komponen TDBNavigator nama default Button1, ganti caption- dan kolom StringGrid1. Setelah itu, kita ke dalam form dan aturlah sedemikan nya menjadi ‘Refresh’. Berikut ini adalah mengisikan nama field ke kolom 0 baris 0 sehingga button yang aktif hanyalah prosedur lengkap untuk menangani dan kolom1 baris 0 StringGrid1. Dan, yang button first, prior , last, next, insert, dan event OnClick: terakhir, kita mengisikan isi setiap record ke delete. procedure TForm1. dalam StringGrid1. Tambahkan pula button Update seperti Button1Click(Sender: TObject); Bisa kita lihat, untuk mendapatkan hasil contoh sebelumnya. Berikan kode yang var i : integer; seperti ini, kode yang diperlukan sebenarnya sama untuk menangani event OnClick: begin cukup panjang (menurut ukuran Delphi).if ClientDataSet1.State in SQLDataSet1.Close; Namun, dengan memahami kode-kode[dsEdit, dsInsert] then Cli ClientDataSet1.Close; seperti ini, kita setidaknya bisa menguasaientDataSet1.Post; SQLDataSet1.CommandText := kode-kode kita sendiri untuk membuat ap-ClientDataSet1.ApplyUpdates(-1); ‘Select * from test order by likasi database. Membuat aplikasi database no’; tidak harus selalu menggunakan komponen Kini, data Anda tidak lagi ditampilkan SQLDataSet1.Open; database control. tabular lagi. ClientDataSet1.Open; Berikutnya, ketika kali pertama form1 Contoh kedua ini siap dijalankan tanpa StringGrid1.ScrollBars := ditampilkan (event OnShow), jalankanpenambahan kode-kode lainnya. Contoh ssAutoBoth; prosedur sebelumnya. Berikut ini adalahini ingin memperlihatkan integrasi antara StringGrid1.FixedCols := 0; kode untuk menangani event OnShowsetiap komponen db control. Pembuatan StringGrid1.FixedRows := 1; tersebut:program akan menjadi sangat mudah. StringGrid1.ColCount := Data Button1.Click; Ada sebuah lelucon tentang Delphi. Anda Source1.DataSet.FieldCount;menjalankan Delphi dan tidak tahu apapun StringGrid1.RowCount := Dengan demikian, pada saat pertamasoal pemrograman. Anda membaca tutorial DataSource1.DataSet.Record kali form1 ditampilkan, kita sudah bisa me-langkah demi langkah untuk membuat ap- Count+1; nikmati tampilan data terbaru tanpa haruslikasi database. Setelah aplikasi selesai, dan klik pada tombol Refresh terlebih dahulu.Anda dapat menggunakannya, Anda tetaptidak mengerti apa-apa. for i:= 0 to DataSource1. Selanjutnya, kita akan memasukkan Pada dasarnya, Delphi sangat meman- DataSet.FieldCount -1 do data ke dalam tabel test dengan kompo-jakan usernya. Namun, seperti yang kita Begin nen non-database control. Tariklah satuketahui, manja berlebihan tidaklah baik. StringGrid1.Cells[i,0] TLabel ke sebelah kanan StringGrid1Dalam kedua contoh sebelumnya, Anda := DataSource1.DataSet.Field dan posisikan vertikal. Berikan captionsebenarnya bisa menggunakan komponen- Defs.Items[i].Name; ‘Nama Kontak’.komponen biasa untuk menampilkan data End; Letakkan komponen Tedit, dengan na-dari database. Hanya, lebih susah. ma edit1 ke sebelah kanan label ‘Nama Pada contoh ketiga, kita akan meli- i := 1; Kontak’. Kosongkan properti Text. Edit1hat contoh bagaimana menampilkan data while not DataSource1.Data akan menampung nama yang akan kitamenggunakan komponen-komponen biasa. Set.Eof do masukkan ke tabel test. Kita tidak perluTanpa menggunakan komponen database Begin memasukkan no sendiri karena field nocontrol. StringGrid1.Cells[0,i] bertipe serial (auto increment). := DataSource1.DataSet. Di sebelah kanan edit1, tariklah sebuahContoh 3: Fields[0].AsString; button, beri nama default button2, danContoh 1 dengan komponen biasa StringGrid1.Cells[1,i] ubah captionnya menjadi ‘Simpan’.Contoh ketiga ini adalah pembuatan ulang := DataSource1.DataSet. Tuliskan kode-kode berikut untuk me-contoh pertama dengan komponen-kom- Fields[1].AsString; nangani event OnClick Button2:ponen biasa, yang tidak database-aware. DataSource1.DataSet. SQLDataSet1.Close;Simpanlah dengan nama Project3. Next; ClientDataSet1.Close; Lakukan langkah-langkah berikut ini: inc(i); SQLDataSet1.CommandText :=76 INFOLINUX 11/2004 www.infolinux.web.id
  • 28. Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial TUTORIAL Kylix dan PostgreSQL‘insert into test (nama) sor berada di dalam StringGrid1, kita selalu SQLDataSet1.Params[0].values(:nama)’; mengambil informasi kolom 0, yang digu- AsString := StringGrid1.SQLDataSet1.Params[0].AsString nakan untuk menampung isi field no. Cells[1,StringGrid1.Row];:= Edit1.Text; SQLDataSet1.Params[1].SQLDataSet1.ExecSQL; Selanjutnya, giliran fasilitas update data AsString := StringGrid1.Button1.Click; yang akan kita buat. Cara untuk melaku- Cells[0,StringGrid1.Row]; kan update adalah dengan mengubah SQLDataSet1.ExecSQL; Sebagai catatan, kita perlu langsung me- langsung data di dalam StringGrid. Button1.Click;masukkan isi edit1.text ke dalam Command- Tariklah sebuah Button ke dalam form1 End;Text SQLdataSet1. Sebagai gantinya, kita dan posisika di bawah StringGrid1. Berimenggunakan parameter :nama, yang nanti- nama default Button6 dan gantilah Cap- Jangan lupa tambahkan Qt sebagai unitnya akan digantikan dengan Edit1.Text. tionnya menjadi ‘Update’. Berikut ini yang digunakan (penggunaan konstanta adalah kode-kode untuk menangani key_return) pada bagian atas unit kita. Berikutnya, kita akan membuat naviga- event OnClick Button6: Ketika user menekan tombol ENTER, kita tor sederhana yang bisa melakukan navi- if StringGrid1.Col = 1 then akan segera memproses perubahan yang di- gasi prior dan next. Tariklah dua Button begin lakukan dan mengirimkannya ke database ke bawah StringGrid1 dan berilah nama StringGrid1.Options := server. Kita juga tidak lupa untuk segera default masing-masing Button3 dan But- [goFixedVertLine, goFixedHor menonaktifkan opsi editing pada String- ton4. Ganti Caption Button3 menjadi zLine, goVertLine, goHorzLine, Grid1 sehingga pengeditan lebih lanjut ti- ‘prior’ dan Caption Button4 menjadi goRangeSelect, goEditing]; dak lagi dimungkinkan. ‘next’. end; Sampai di sini, kita sudah selesai mem- Isikan kode-kode berikut ini untuk buat fungsi sendiri untuk fasilitas-fasilitas menangani event OnClick Button3: Sebagai catatan, kita perlu memeriksa yang sediakan oleh Delphi seperti padaif StringGrid1.Row > 1 then kolom aktif karena kita hanya mengizin- Contoh 1. Apabila pada contoh 1 kita hanyaStringGrid1.Row := StringGrid1. kan update untuk field nama. Hanya ketika mengetikkan satu atau dua baris, maka diRow – 1; kursor pada kolom 1 lah kita akan menam- contoh 3 ini, kita mengetikkan lebih dari 50 bahkan opsi goEditing pada StringGrid1 baris. Jauh berbeda. Namun, cobalah perha- Isikan kode-kode berikut ini untuk sehingga memungkinkan editing. Hal yang tikan ukuran executable-nya. Dengan lebih menangani event OnClick Button4: seperti ini harus diperhatikan untuk me- banyak komponen, kita mendapatkan uku-if StringGrid1.Row < String mastikan kita tidak memperbolehkan user ran yang lebih kecil.Grid1.RowCount - 1 then String mengisikan nilai atau perubahan pada ko- Dan, yang pasti, pemahaman kita akanGrid1.Row := StringGrid1.Row + lom yang tidak diizinkan. Pendekatan lain jauh lebih meningkat, dibandingkan ketika1; untuk pengisian pada stringgrid apabila kita meminta Delphi untuk melakukan se- Anda tidak menyukai pengisian langsung galanya untuk kita. seperti ini adalah penggunaan inputbox. Bagaimana menurut Anda untuk con- Berikutnya, kita akan membuat fasilitas Caranya, periksalah tombol keyboard yang toh ketiga ini? Sejujurnya, cara seperti ini penghapusan data. Tariklah sebuah But- ditekan. Apabila tombol ENTER ditekan, mungkin belum cara yang dapat dikategori- ton ke form1. Beri nama default Button5. tampilkanlah InputBox. kan sebagai cara low level, masih banyak lagi Gantilah Captionnya menjadi ‘Delete’. cara yang lebih low level, namun jelas lebih Berikan kode-kode berikut ini untuk Fasilitas update belum selesai. Kita per- susah dan sayangnya, Delphi akan kehila- menangani event OnClick Button5: lu memroses event OnKeyDown milik ngan kekuatannya apabila kita mengguna-SQLDataSet1.Close; StringGrid1. Berikut ini adalah kode- kan cara yang sangat low level.ClientDataSet1.Close; kodenya: Sampai di sini dulu perkenalan kita de-SQLDataSet1.CommandText := if key = key_return then ngan Kylix dan Database. Di edisi-edisi men-‘Delete from test where no=:no’; Begin datang, kita akan terus membahas bagaima-SQLDataSet1.Params[0].AsString StringGrid1.Options := na meningkatkan usability Linux, dari ber-:= StringGrid1.Cells[0, String [goFixedVertLine, goFixedHor bagai bidang, termasuk pemrograman.Grid1.Row];; zLine, goVertLine, goHorzLine, Karena, agar Linux digunakan lebih me-SQLDataSet1.ExecSQL; goRangeSelect]; luas, kita harus menjadikan Linux sebagaiButton1.Click; SQLDataSet1.Close; lingkungan yang cukup ramah dan produk- ClientDataSet1.Close; tif. Kita serap hal bagus yang dimiliki oleh Sebagai catatan, kita akan menggunakan SQLDataSet1.CommandText Windows atau Mac OS dan kita terapkan difield no sebagai penanda record yang akan := ‘update test set nama=:nama Linux. Setuju?dihapus. Oleh karena itu, dimanapun kur- where no=:no’; Noprianto (noprianto@infolinux.co.id) www.infolinux.web.id INFOLINUX 11/2004 77

×