1 TUTORIAL Dapatkan Lebih dari Anjuta Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial Dapatkan Lebih dari Anjuta Sebagai suatu Integ...
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Dapatkan Lebih dari Anjuta
Dapatkan Lebih dari Anjuta Sebagai suatu Integrated Development Environment canggih, Anjuta datang dengan berbagai fitur luar biasa yang dapat memudahkan Anda.
T
erkadang susah juga untuk mencari editor sekaligus integrated development environment canggih yang dapat membantu kita dalam melakukan pemrograman agar pemrograman dapat dilakukan lebih cepat dan berbagai kesalahan ketik dapat dikurangi. Anda memang bisa memilih Vim, yang datang dengan segala kelebihan seperti interface yang sederhana, perintah yang dapat diberikan lebih cepat dan fleksibel karena tidak perlu menggerakkan mouse untuk klik pada menu tertentu, kemampuan syntax highlighting yang canggih, help yang cukup lengkap, dan sebagainya. Tapi, Vim juga datang dengan berbagai kekurangan, yang di antaranya adalah cukup susah digunakan oleh pengguna yang datang dari lingkungan Windows. Selain itu, Anda harus menghafal beberapa perintah Vim agar pekerjaan menjadi lebih cepat. Selain Vim, kita juga mengenal berbagai editor canggih yang tersebar di dunia open source, mengingat ketersediaan editor yang mencapai lebih dari 300 editor. Editor pemrograman yang paling tidak mendukung syntax highlighting saja bisa mencapai puluhan. Ada pula editor canggih seperti Kate yang umumnya digandrungi oleh pecinta KDE. Dan masih banyak lagi editor lainnya. Namun, jika Anda menginginkan editor yang canggih sekaligus berfungsi sebagai integrated development environment yang cukup lengkap, barangkali Anda perlu mencoba Anjuta. IDE yang dimotori oleh programer India ini sedianya memang lahir sebagai IDE untuk pembuatan aplikasi berbasis C/C++, X, wxWindows, dan GTK+/GNOME. Namun, bisa digunakan pula oleh programer Python, Perl, Java, Shell Script, Web, Pascal, Ruby, dan lainnya. Walau dukungan yang diberikan tidak sebanyak dukungan untuk pembuatan aplikasi C/C++, X, wxWindows, GTK+/ GNOME, paling tidak Anda mendapatkan berbagai fasilitas seperti code folding, auto
50
INFOLINUX MARET 2004
completion, syntax highlighting, dan masih banyak lagi. Artikel ini akan membahas bagaimana kita mengubah preferensi Anjuta, menggali fitur tersembunyi, dan pada akhirnya mendapatkan lebih dari Anjuta untuk kegiatan pemrograman yang jauh lebih menyenangkan. Anjuta yang digunakan di sini adalah Anjuta di atas versi 1.1.
Interface Kita akan mulai dari interface Anjuta. Karena itulah yang akan selalu kita hadapi ketika membuka dan bekerja dengan Anjuta. Interface yang tidak sesuai keinginan dapat menghambat kita dalam bekerja. Pada Anjuta 1.1.97 yang penulis gunakan di Red Hat 9, secara default, interface-nya datang dengan satu menubar, dua toolbar, dan satu status bar. Menurut penulis, satu toolbar saja sudah cukup, karena penulis tidak banyak memerlukan toolbar. Yang bisa digantikan dengan shortcut, akan digantikan agar bisa bekerja dengan lebih cepat. Maka kustomisasi toolbar pun dilakukan. Anjuta datang dengan lima toolbar. Anda dapat memilih toolbar mana saja yang akan ditampilkan dengan mengakses menu View|Toolbars. Secara pribadi, penulis menyukai satu atau bahkan tidak ada toolbar, karena dengan demikian, area kerja akan menjadi semakin luas. Setelah toolbar, kita akan membahas tentang pengeditan banyak file di Anjuta. Anjuta secara default akan membuat tab baru begitu file baru diedit. Hal tersebut diupayakan agar tampilan menjadi lebih rapi. Namun, tidak semua orang menyukai hal tersebut. Ada pula yang lebih suka dengan tampilan MDI dengan banyak window. Untuk itu, untuk setiap file yang ingin dijadikan window terpisah, pilihlah menu Format|Detach Current Document. File yang diedit akan segera ditampilkan dalam window terpisah. Untuk mengembalikannya sebagai tab, klik kananlah pada area kerja, dan pilihlah Docked.
www.infolinux.web.id
Bicara soal tab, rupanya Anjuta memberi kebebasan kepada kita untuk mengatur bagaimana tab tersebut ditampilkan. Anda bisa memilih untuk menampilkan urutan tab sesuai urutan file yang dibuka, atau file yang paling sering diedit, atau dalam urutan alfabet, atau bahkan tidak menampilkannya sama sekali. Sekalin itu, posisi tab pun bisa diatur sesuai keinginan. Anda bisa memilih untuk menampilkan tab di atas, di bawah, di kiri atau di kanan area kerja. Anda yang tentukan. Ubahlah pilihan Anda di Settings |Preferences|Editor. Kita akan melanjutkan pengaturan kita kepada penggunaan warna. Hal ini dirasa penting karena Anjuta, walau merupakan IDE hebat, terkadang tidak datang dengan pemahaman akan interaksi manusia komputer yang baik dalam masalah warna. Anda bisa membayangkan bagaimana susahnya membaca teks warna kuning terang di atas latar berwarna putih? Menurut penulis, hal tersebut susah sekali. Rasanya tidak ada keinginan untuk menambah minus mata penulis. Parahnya, warna tersebut adalah warna default untuk teks yang berada di dalam apitan tanda kutip dua. Hal tersebut umumnya ditemui pada isi variabel bertipe string dalam banyak bahasa. Anda bisa mengubah berbagai warna lain yang tidak Anda sukai melalui menu Settings|Editor colors and fonts. Anda juga dapat mengubah font di sini. Sesuaikan font dan warna sesuai keinginan Anda. Satu lagi yang cukup penting. Terutama jika Anda melakukan pemrograman dengan bahasa scripting seperti halnya Python atau Perl. Setelah melakukan perubahan pada kode program dan ingin melihat hasilnya, tentunya kita akan mengeksekusi program
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Dapatkan Lebih dari Anjuta
item yang diinginkan, dan menekan tombol shortcut yang Anda inginkan. Anda bisa melihat perubahan pada menu item tersebut. Untuk meniadakan shortcut, tekanlah tombol Backspace. Selanjutnya, penekanan shortcut yang telah Anda definisikan tersebut akan mengeksekusi menu item tersebut. Dengan demikian, siapa yang perlu toolbar?
Pengeditan file Setelah mengubah user interface sesuai keinginan, kita juga perlu mengubah beberapa hal sehubungan dengan fungsi pengeditan file Anjuta. Bahkan, pengubahan preferensi pada pengeditan file dirasa jauh lebih penting karena fungsi itulah yang kita gunakan pada Anjuta. Hal pertama-tama barangkali adalah indentasi. Anda berhak untuk meminta suatu editor untuk melakukan indentasi otomatis ketika awal blok baru kode program dibuat. Namun, bagi Anda yang tidak menyukai hal tersebut dan lebih menyenangi untuk melakukan indentasi manual, Anda tetap akan mendapatkan hak Anda. Anjuta secara default datang dengan kemampuan indentasi otomatis ketika awal blok baru dimulai. Untuk mematikan fasilitas tersebut, nonaktifkanlah Enable automatic indentation pada Settings| Preferences|Indentation. Sebagai saran, umumnya fasilitas ini tetap diaktifkan karena indentasi otomatis yang konsisten diharapkan akan memudahkan pembacaan kode. Masih mengenai indentasi, beberapa programmer menuliskan blok kode program dengan cara berikut ini: while (1){ printf (“jalan terus”); printf (“jalan terus lagi”); };
dengan statement saat itu, sehingga baris berikutnya adalah awal dari blok kode yang baru. Cara kedua meletakkan kurung kurawal pembuka di baris setelah statement saat itu. Kedua hal ini sepertinya merupakan hal sepele, namun tidak bagi Anjuta. Anjuta secara default datang dengan cara pertama. Apabila Anda termasuk programer yang menyukai cara kedua dan tidak memberi tahu anjuta, Anda akan kebingungan sendiri karena kurung kurawal awal atau penutup akan selalu dicetak satu tabulasi ke belakang. Bagi Anda yang menyukai cara kedua, aktifkanlah pilihan Indent opening braces dan Indent closing braces pada Settings| Preferences|Indentation. Apabila Anda menggunakan bahasa yang indentation-sensitive seperti halnya Python, maka indentasi adalah masalah yang cukup serius. Apabila tombol TAB ditekan, maka seharusnya yang tercetak adalah karakter tabulasi. Karakter tabulasi berbeda dengan karakter spasi. Apabila Anda tidak konsisten dengan tabulasi dan spasi, maka bandingkan apa yang akan terjadi ketika Anda mencampuradukkannya. Sekilas kode terlihat terinden dengan konsisten, namun, apabila diperiksa, bisa saja terjadi kesalahan indentasi karena ketidak konsistenan penggunaan tabulasi dan spasi. Selain itu, dalam pemrograman Python, penggunaan tabulasi umumnya tidak disarankan. Anda sangat disarankan untuk mengganti sebuah tabulasi dengan beberapa spasi. Dengan demikian, setiap kali tombol TAB ditekan, tidak ada lagi karakter tabulasi yang tercetak. Sebagai
Beberapa lagi menuliskannya dengan cara berikut: while (1) { printf (“jalan terus”); printf (“jalan terus lagi”); }; Cara pertama meletakkan kurung kurawal pembuka di baris yang sama
www.infolinux.web.id
tersebut. Umumnya, Anda akan menjalankannya di terminal. Dalam kondisi biasa, Anda dapat berpindah ke terminal dan kemudian menjalankan program Anda. Untuk memperbaiki program, Anda bisa kembali lagi ke window Anjuta. Sekilas terdengar baik-baik saja. Tapi Anda akan memiliki cukup banyak window dan penekanan Alt-Tab. Anjuta menyediakan kemampuan untuk menampilkan terminal dalam window-nya. Dengan demikian, Anda tidak perlu berpindah-pindah window. Untuk menampilkan terminal, pilihlah View| Message Window. Secara default, message window tersebut akan tampil di bagian bawah area kerja. Anda bisa memilih terminal dari message window untuk bekerja di terminal. Message window adalah window yang sangat berguna. Di sini, selain mendapatkan akses terminal, Anda akan mendapatkan pula informasi tentang stdout, stderr, debug, stack, watch, dan lain sebagainya. Apabila Anda memilih untuk tidak menampilkan toolbar sama sekali, maka Anda akan memiliki banyak urusan dengan shortcut. Apabila Anda mengetahui shortcut untuk melakukan fungsi tertentu, maka pekerjaan dapat dikerjakan lebih cepat. Demikian juga sebaliknya. Namun, Anjuta bukanlah editor yang datang dengan sejuta shortcut. Dan kalaupun datang dengan jutaan shortcut, belum tentu sebagian shortcut tersebut dapat dengan mudah Anda ingat. Solusi yang lebih baik adalah mendefinisikan shortcut Anda sendiri untuk setiap menu item yang Anda inginkan. Caranya pun mudah sekali. Pertama-tama, bukalah program gconf-editor terlebih dahulu. Kita akan mengubah beberapa hal sehubungan dengan user interface. Apabila Anda menggunakan Red Hat Linux 9, gconf-editor bisa dijalankan dari System Tools|More System Tools| Configuration Editor. Pada layar gconfeditor yang terbuka, pilihlah desktop| gnome|interface|can_change_accels, dan ubahlah nilainya menjadi ON. Setelah itu, apa yang perlu Anda lakukan untuk mendefinisikan shortcut sendiri sesuai keinginan adalah dengan mengarahkan pointer mouse Anda ke menu
Interface Anjuta.
INFOLINUX MARET 2004
51
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Code folding pada Anjuta.
gantinya, beberapa spasi akan secara otomatis tercetak untuk Anda. Dengan demikian, indentasi akan menjadi konsisten, dan diharapkan tidak terjadi kesalahan indentasi lebih lanjut. Anjuta mendukung penggantian karakter tabulasi dengan beberapa karakter spasi. Jumlah karakter spasi yang digantikan terserah Anda. Anjuta datang dengan default empat spasi untuk menggantikan satu tabulasi. Setelah membahas indentasi, kita akan membahas beberapa hal lain yang dapat digunakan untuk mempercepat pengetikan kode dan mengurangi kesalahan yang mungkin terjadi. Pernahkah Anda menggunakan beberapa variabel yang terdiri dari beberapa kata seperti contoh berikut ini: jumlah_huruf_konsonan, rerata_pendapatan_perbulan dan lain sebagainya? Dan pernahkah Anda kecapaian dalam melakukan penulisan kode program? Kalau jawaban Anda adalah ya, maka Anda mungkin pernah melakukan kesalahan dalam penulisan variabel sehingga banyak terjadi kesalahan pada program. Untuk mengurangi kesalahan, Anda dapat meminta kepada Anjuta untuk melakukan autocomplete seperti pada OpenOffice. org. Kata-kata yang sering muncul akan ditampilkan sebagai pilihan apabila Anda mengetikkan kata dengan awalan yang sama dengan kata-kata tersebut. Anda bisa memilih dari sebuah popup yang muncul. Penggunaan autocomplete diharapkan akan
52
INFOLINUX MARET 2004
Dapatkan Lebih dari Anjuta
Message window.
mengurangi kesalahan tulis. Anjuta secara default telah datang dengan fasilitas tersebut. Tetapi, ngomong-ngomong, apabila terlalu disenangi, autocomplete bisa juga menjadi masalah. Terutama ketika autocomplete diterapkan pada closing tag untuk tag HTML/XML. Apabila pilihan ini diaktifkan, maka anjuta akan selalu menambahkan closing tag untuk tag HTML/XML yang Anda tulis, tidak peduli tag apa pun itu, dan di manapun Anda mengetikkan opening tag tersebut. Jadi, sesuaikan dengan cara dan gaya penulisan kode program Anda. Pengaturan autocomplete bisa dilakukan di Settings| Preferences|Editor. Lepas dari autocomplete, kita akan membahas fitur code folding. Code folding adalah fitur yang berguna untuk menyembunyikan detail dari suatu blok kode program sehingga kode program terlihat lebih sederhana. Blok kode yang tidak perlu ditampilkan bisa disembunyikan. Setelah menerapkan code folding, percayalah, kode program Anda akan terlihat cukup rapi dan pendek. Fitur code folding ini termasuk fitur yang sedang naik daun. Beberapa editor terkini juga menyertakan fitur serupa. Namun, code folding pada Anjuta dinilai cukup bagus, berdasarkan wawancara singkat beberapa programer yang pernah menikmati code folding di berbagai editor lain. Code folding dapat diterapkan pada hampir semua blok kode dari kode program
www.infolinux.web.id
Anda. Di antaranya,blok perulangan dan kondisi, fungsi, class, dan lain sebagainya. Dan sebagai tambahan, Anjuta juga memberikan fasilitas untuk melakukan folding untuk komentar. Hal ini termasuk menarik. Beberapa blok komentar dapat menjadi terlalu memakan tempat sementara sang programer tidak selalu perlu melihat komentar yang ditulisnya sendiri. Khusus untuk HTML, Anjuta juga menyediakan code folding untuk Anda. Dengan demikian, Anda dapat menyembunyikan detail antara
dan table>. Luar biasa bukan? Setiap blok kode HTML yang rapi dapat disembunyikan. Python pun mendapatkan perhatian serupa. Karena komentar pada Python cukup barvariasi, maka Anjuta menyediakan fasilitas tambahan untuk melakukan comment folding pada komentar-komentar dalam kode program Python. Begitupun dengan string pada Python. Karena Python mendukung string yang sangat-sangat penjang, maka code folding khusus untuk string Python juga disediakan. Indentasi sudah. Code folding sudah. Tapi anjuta masih memberikan fitur lain. Di antaranya adalah pengecekan kelengkapan tanda kurung. Baik kurung untuk fungsi maupun kurung untuk penanda blok. Umumnya, karena kita sering lupa, maka dalam pemanggilan berbagai fungsi bertingkat, kita sering pula lupa untuk menuliskan pasangan kurung secara lengkap. Secara default, Anjuta akan menampilkan warna yang berbeda apabila
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Dapatkan Lebih dari Anjuta
Pengaturan preferensi.
pasangan kurung belum dituliskan. Harapannya, programer menjadi sadar. Anjuta pun tidak lupa dengan keamanan data dan datang dengan fitur autosave yang umumnya datang bersama paket office populer. Dengan fasilitas autosave ini, diharapkan dapat mengurangi kehilangan data hanya karena terjadi berbagai kesalahan power atau proses sistem operasi. Interval autosave disesuaikan dengan selera Anda. Satu yang tidak terlupakan oleh Anjuta: penghapusan spasi di ujung yang tidak perlu. Agar lebih rapi dan bersih, Anjuta bersedia untuk menghapus trailling space yang tidak dibutuhkan begitu penyimpanan dilakukan. Selengkapnya, pengaturan pengeditan file bisa Anda lihat pada Settings|Preferences|Editor.
Membangun aplikasi Sebuah IDE yang baik harusnya mampu melakukan proses kompilasi untuk kita. Dengan demikian, kita tidak perlu berpindah-pindah antara IDE dan terminal. Apa yang perlu kita lakukan hanyalah menekan satu atau dua tombol, dan proses kompilasi akan segera dimulai. Segala pesan kesalahan akan ditampilkan. Untuk melakukan kompilasi dengan Anjuta, apa yang harus Anda lakukan adalah menuliskan kode program Anda atau sebuah Makefile. Kemudian, akseslah menu Build, dan Anda akan menemukan beberapa menu item untuk melakukan konfigurasi, kompilasi, instalasi sampai eksekusi program hasil kompilasi.
Gconf-editor.
Anjuta secara default datang dengan beberapa pengaturan kompilasi standar. Namun, jika terdapat beberapa hal yang tidak sesuai dengan preferensi Anda, Anda dapat mengubahnya di Settings|Preferences|Build. Apabila aplikasi yang Anda bangun membutuhkan banyak pustaka dengan lokasi yang berbeda-beda atau tidak umum, lokasi tersebut harus diberitahukan kepada Anjuta melalui menu Settings|Compiler and Linker Settings. Demikian juga apabila Anda perlu mengatur beberapa parameter kompilasi. Optimasi dan CFLAGS juga bisa diatur di menu ini. Bagi programer C yang datang dari dunia Borland C, barangkali pendefinisian shortcut dan menu Build akan terasa sangat membantu. Cukup ketik kode program dan tekan shortcut untuk melakukan kompilasi. Sama persis ketika Anda menggunakan Borland C. Harusnya, pengguna Turbo Pascal juga dapat merasakan hal yang sama. Ketik, dan lakukan kompilasi dalam satu tempat. Tentunya, pengaturan compiler untuk Pascal harus diatur terlebih dahulu. Manfaatkan juga message window yang ditampilkan untuk melakukan debug dan melihat informasi yang berhubungan dengan internal program Anda.
CVS Dalam sebuah team work, penggunaan versioning system sangatlah penting. Dengan Anjuta, lupakan segala command line yang diperlukan untuk mengakses
www.infolinux.web.id
CVS. Lupakan juga program eksternal lain. Anjuta dapat diandalkan untuk bekerja dengan CVS. Mulai dari pengubahan file sampai pembuatan file diff. Semua hal yang berhubungan dengan CVS dapat diakses dari menu CVS. Sementara, pengaturannya dapat dilakukan dari Settings|Preferences|CVS.
Dokumentasi Apabila berbagai paket dokumentasi terinstal di sistem Anda, maka Anjuta dapat berlaku manis dengan menampilkan dokumentasi-dokumentasi tersebut. Salah satu program yang cukup berguna barangkali adalah devhelp. Anjuta juga dapat digunakan untuk membaca manual atau info yang datang dengan program lain, walaupun membaca manual atau info dari terminal sepertinya lebih cepat. Sebagai suatu kesimpulan, Anjuta adalah sebuah IDE serba guna yang mencoba untuk menyajikan segala sesuatu dalam satu tempat. Anda diharapkan untuk tidak perlu berpindah ke aplikasi-aplikasi lain. Bagi Anda yang membangun proyek relatif besar, Anjuta tetap diandalkan karena Anjuta memang didesain untuk hal tersebut. Namun, bagi Anda yang hanya menggunakan Anjuta untuk mengetik kode PHP, Python, Shell script, Pascal, dan lain sebagainya, paling tidak Anda masih bisa menikmati berbagai fitur pengeditan file yang luar bisa. Fitur pengeditan yang luar biasa tersebut akan membantu Anda agar dapat menghasilkan lebih cepat. Noprianto ([email protected])
INFOLINUX MARET 2004
53
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Lebih Teratur dengan Korganizer
Lebih Teratur dengan Korganizer Pecinta KDE sebenarnya memiliki sebuah tool yang dapat membantu mengelola tugas-tugas harian Anda. Tool tersebut bernama Korganizer.
Interface Secara default, Korganizer akan menampilkan sebuah menubar, sebuah toolbar, sebuah kalender di sisi kiri atas, sebuah to do list di kiri bawah, dan rincian kegiatan di bagian kanan. Icon-icon di toolbar telah diatur agar berisikan perintahperintah yang sering diakses. Kalender kecil di kiri atas berguna sebagai navigator untuk kalender besar Anda yang berisikan rincian kegiatan. Sementara, to do list adalah daftar tugas yang akan dikerjakan. Hari demi hari, daftar kegiatan Anda bisa terus bertambah sehingga daftar yang ditampilkan menjadi terlalu kompleks. Untuk itu, barangkali Anda akan menyenangi salah satu fasilitas untuk mengurangi kompleksitas penampilan daftar tugas: filter. Dengan filter, Anda dapat meminta Korganizer untuk hanya menampilkan tugas-tugas dengan kriteria tertentu, atau tugas-tugas yang masuk dalam kelompok tugas tertentu. Untuk menampilkan filter, pilihlah Settings|Show Filter. Filter akan tampil di bawah to do list. Korganizer dapat menampilkan rincian tugas harian dalam bentuk daftar lengkap, tampilan satu hari penuh, tampilan hari kerja dalam satu minggu, tampilan per minggu, tampilan per bulan, sampai tampilan satuan beberapa hari. Anda dapat menentukan tampilan mana yang paling
54
INFOLINUX MARET 2004
sesuai dengan keinginan Anda. Untuk memilih, akseslah menu View, kemudian pilihlah menu item yang bersesuaian dengan preferensi Anda. Apabila tampilan dirasa terlalu ramai, Anda dapat menampilkan rincian tugas harian semata dengan melakukan klik pada tombol dengan lambang panah kiri yang terletak di sebelah kanan kalender. Selanjutnya, setelah Anda merasa sesuai dengan tampilan pilihan Anda, kita akan melongok lebih dalam ke inti penggunaan Korganizer.
Penggunaan AddressBook Untuk mengakses AddressBook dari Korganizer, pilihlah menu File| AddressBook. Aplikasi KaddressBook pun dijalankan. Anda dapat mengisikan kontak baru, ataupun sekadar mencari alamat kontak relasi-relasi Anda. Apabila Anda ingin membuat entri baru di KaddressBook, pilihlah File|New Contact. Dari sebuah dialog yang ditampilkan, Anda bisa mengisikan berbagai informasi dari relasi Anda tersebut, termasuk alamat-alamat,
S
ekilas terlihat sederhana dan tidak dapat diandalkan. Sekilas terlihat seperti aplikasi bawaan desktop yang kadang-kadang tidak memiliki banyak fitur. Sekilas terlihat biasa-biasa saja. Tapi, Korganizer adalah personal organizer yang hebat. Kita akan melihat bagaimana menggunakan program tersebut untuk mengelola berbagai kesibukan Anda. Anda pun akan memiliki sekeretaris pribadi yang siap menemani pekerjaan Anda. Korganizer umumnya datang bersama desktop KDE. Apabila Anda ingin mendapatkan informasi dan rilis terbaru, kunjungi korganizer.kde.org.
Interface Korganizer.
www.infolinux.web.id
nomor telepon, e-mail, website, IM, dan lain sebagainya. KaddressBook termasuk aplikasi addressBook yang menyimpan sangat banyak informasi dari suatu kontak.
Kategorisasi kegiatan Pengaturan kategori dapat dilakukan dengan mengakses menu Settings|Edit Categories. Di dialog yang ditampilkan, Anda bisa membuat kategori baru, menghapus kategori-kategori yang tersedia, ataupun memodifikasi kategori yang telah Anda buat. Kategorisasi ini akan terasa lebih berguna apabila Anda memberikan pengenal warna tertentu di preferensi Korganizer. Dengan demikian, Anda dapat mengenali suatu tugas sebagai bagian dari kategori tertentu hanya dengan melihat warnanya.
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
TUTORIAL Lebih Teratur dengan Korganizer
Pilihlah Settings|Configure Korganizer. Sebuah dialog akan ditampilkan untuk Anda. Pertama-tama, kita akan mengatur informasi kita terlebih dahulu. Kita akan memilih bagian Personal, dan mulai mengisikan alamat e-mail kita. Untuk mengirimkan e-mail, kita bisa memilih untuk menggunakan Kmail ataupun Sendmail. Kemudian, untuk mencegah kehilangan data, kita bisa meminta Korganizer untuk melakukan autosave setiap berapa interval waktu tertentu. Masih di bagian Personal, Anda juga dapat meminta sekretaris pribadi Anda ini untuk membuat versi HTML setiap kali Anda melakukan penyimpanan. Setelah itu, kita akan mengatur waktu dan tanggal agar sesuai dengan kondisi kita di Indonesia. Pilihlah Time & Date. Di sini, kita bisa menentukan timezone kita, sekaligus menentukan beberapa variabel waktu. Termasuk jam kerja Anda. Pengaturan lebih lengkap lagi bisa dilakukan dari menu Settings|Configure Date & Time. Pengaturan ini diambil dari modul KDE Control Center. Dua pengaturan penting lainnya adalah Fonts dan Colors. Pada pengaturan Fonts, Anda dapat mengatur font tertentu untuk tugas tertentu. Sementara pada pengaturan Colors, Anda dapat menentukan warna apa saja yang sesuai dengan kategori tugas Anda. Barangkali Anda akan menyusun warna yang lebih cerah untuk Special Occasion. Masih dalam pengaturan warna, Anda juga dapat mengatur warna-warna apa saja untuk tugas-tugas yang belum terselesaikan, tugas yang telah mencapai deadline, dan lain sebagainya.
Melakukan penjadwalan Kliklah pada rincian tugas harian Anda. Klik ganda pada area tersebut akan membaca Anda kepada suatu dialog. Apabila Anda melakukan klik ganda pada area kosong, maka tugas baru akan dibuat. Klik ganda pada tugas tertentu akan membawa Anda untuk mengedit tugas tersebut. Pada dialog yang tampil, perhatikanlah tab General. Di tab ini, Anda dapat mengisikan summary untuk tugas Anda. Lokasi pengerjaan tugas juga dapat diberikan di sini. Kemudian, pengaturan
Mengatur preferensi
Pengaturan preferensi.
hari/jam mulai dan hari/jam selesai juga dapat diberikan. Apabila tugas Anda termasuk tugas harian dan tidak memerlukan informasi tentang jam, maka Anda bisa mengaktifkan checkbox No time associated. Di sini, Anda juga memasang alarm untuk mengingatkan. Anda bisa mengisikan suara-suara yang diinginkan, ataupun program yang akan dijalankan. Lebih lanjut lagi, suatu tugas tentunya merupakan bagian dari kategori tertentu kegiatan kita. Kliklah tombol Categories yang terletak pada bagian bawah tab General. Anda bisa mengasosiasikan tugas yang Anda buat sebagai anggota kategori kegiatan tertentu. Apabila hal ini dilakukan dengan konsisten, maka pencarian dan filtrasi dapat dilakukan dengan sangat mudah. Apabila kegiatan Anda melibatkan pihak lain, ada baiknya untuk mengaturnya terlebih dahulu. Pindahlah ke tab Attendees. Di sini, Anda dapat mengisikan relasirelasi yang terlibat dalam kegiatan Anda tersebut. Daftar alamat kontak yang kita simpan dalam KaddressBook juga dapat digunakan. Peran pihak lain tersebut juga dapat dicatat. Bahkan, status keterlibatannya pun dapat dicatat. Lengkap bukan? Sekarang, bagaimana kalau tugas yang baru kita buat tersebut adalah tugas yang
www.infolinux.web.id
rutin berulang, baik dalam setiap hari, minggu, bulan, ataupun tahun? Contoh yang cukup baik adalah ketika Anda mengikuti kegiatan KPLI yang dilakukan setiap hari senin dan kamis setiap minggunya. Apakah Anda akan mendefinisikan tugas baru lagi? Tentunya tidak perlu. Karena, apabila hal tersebut dilakukan, Anda perlu mendefinisikan banyak sekali tugas yang sebenarnya sama saja. Apa yang perlu Anda lakukan hanyalah kembali ke tab General, dan aktifkan pilihan Recurring event. Kemudian, pindahlah ke tab Recurrence, dan aturlah pengulangan yang sesuai dengan kegiatan Anda. Fitur yang satu ini sangatlah berguna. Penulis sangat berterima kasih dengan adanya fitur ini. Hal ini menjadikan Korganizer berbeda dengan beberapa organizer lain. Kalau didalami, masih terdapat cukup banyak fitur lain yang dimiliki oleh Korganizer. Selain itu, Korganizer pun dapat dikembangkan lebih lanjut lagi dengan bantuan plugin. Beberapa plugin yang datang dengan Korganizer di antaranya Web export, Holiday, Birthday import, Exchange 2000 plugin, dan lain sebagainya. Dan, kalau Anda belum mencoba fitur pencetakannya, cobalah! Anda akan begitu terkesan. Baiklah, selamat mengatur hari-hari Anda. Noprianto ([email protected])
INFOLINUX MARET 2004
55
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Pascal di Linux
Pascal di Linux Masih memiliki kode-kode program Pascal yang Anda buat ketika masih mengunakan DOS? Jangan dibuang atau diarsip. Anda masih bisa menjalankan dan mengembangkannya di Linux!
P
ascal adalah bahasa pemrograman yang sangat akrab di kalangan akademisi. Tak terkecuali kalangan akademisi di Indonesia. Wajar saja, bahasa yang satu ini memiliki sintaks yang bersih dan dekat dengan bahasa manusia, dan sebagai bahasa general purpose, Pascal dapat digunakan mulai dari membuat aplikasi low level sampai aplikasi bisnis. Bahasa Pascal juga datang dengan tipe data yang cukup untuk membuat aplikasi tanpa membuat programernya harus mempelajari berbagai hal low level lainnya. Turbo Pascal adalah compiler Pascal yang sangat terkenal dan mengesankan. Seorang programer hanya perlu membuka IDE-nya—yang sangat canggih untuk saat itu—kemudian dapat segera melakukan pemrograman. Fasilitas help-nya juga luar biasa. Bahkan, sebagian besar help untuk fungsi atau prosedur juga datang dengan contoh. Delphi lahir untuk menggantikan Turbo Pascal sebagai penerus bahasa Pascal untuk sistem operasi Windows 32-bit. Yang satu ini pun sukses. Bahkan, Delphi sempat dijuluki sebagai Visual Basic Killer. Seperti pendahulunya, Delphi pun sangat banyak digunakan oleh programer Windows. Keemasan Delphi membuat Borland / Inprise membuat Kylix, yang merupakan Delphi for Linux. Sayangnya, Kylix sendiri cukuplah mahal.
Sementara, Free Pascal mencoba untuk mengimplementasikan pascal yang kompatibel dengan Borland dan mencoba untuk mewujudkannya di banyak platform. Saat ini, Free Pascal telah dapat dinikmati di berbagai platform seperti DOS, Win32, Linux, FreeBSD, NetBSD, OS/2, BeOS, dan AmigaOS. Arsitektur yang didukung oleh Free Pascal saat ini terbatas pada Intel dan Motorola. Sementara, GNU Pascal dapat jalan di berbagai sistem operasi yang dapat menjalankan GNU C. GNU Pascal sendiri ditulis dengan bahasa C. Sementara, Free Pascal ditulis dengan Pascal itu sendiri (dengan ukuran source code sekitar 6 MB). Free Pascal bahkan dapat digunakan untuk mengompilasi source code Delphi, walaupun kompatibilitasnya hanya sampai dengan Dephi 2. Free Pascal datang dengan IDE yang mirip dengan IDE Turbo Pascal. Sayangnya, untuk versi Linux, IDE tersebut masih dalam pengembangan. Kita masih belum bisa menikmatinya. Karena kompatibilitas dengan Borland, artikel ini akan membahas tentang Free Pascal. Beberapa contoh program yang mewakili berbagai kasus pemrograman disertakan, dengan harapan berguna bagi Anda yang ingin membuat sesuatu di Linux dengan Pascal.
Free Pascal Compiler Pascal di linux Apabila Anda memang benar-benar mencintai Pascal dan memiliki uang lebih, barangkali Anda bisa menggunakan Kylix. Namun, Kylix bukanlah satu-satunya solusi. Paling tidak, kita mengenal dua compiler Pascal lain: GNU Pascal dan Free Pascal. GNU Pascal mencoba untuk mengimplementasikan Pascal yang portabel berdasarkan standar POSIX.
56
INFOLINUX MARET 2004
Dari namanya, saja, kita bisa menduga bahwa bahasa yang satu ini adalah bagian dari keluarga besar free software. Free Pascal sendiri dilisensikan di bawah lisensi GPL. Namun, Anda tetap bisa menulis program closed source ataupun proprietary dengan compiler ini. Compiler ini memiliki sejarah yang cukup panjang. Cikal bakalnya telah dimulai sejak bulan Juni 1993. Beberapa bulan sebelumnya, tepatnya pada Oktober
www.infolinux.web.id
1993, compiler ini mulai sedikit menunjukkan fungsinya. Dua tahun kemudian, Free Pascal dikompilasi menggunakan kompiler itu sendiri. Dan pada bulan Maret 1996, Free Pascal Compiler pun diluncurkan di Internet. Sejak itu, berbagai pengembangan pun dilakukan. Empat tahun kemudian, Juli 2000, Free Pascal mencapai versi 1.0. Dan sejak itu, penomoran versi pada Free Pascal menuruti aturan penomoran versi kernel Linux. Bulan September 2003, versi 1.0.10 dari compiler ini dirilis. Semua hal tersebut dimungkinkan oleh Florian Klaempfl, seorang programer Jerman dengan bakat luar biasa.
Fitur Sejarahnya mungkin penuh liku. Tapi Anda akan segera tercengang mendengar fitur yang datang dengan Free Pascal. Yang pertama, kompiler yang satu ini dapat dijalankan di berbagai sistem operasi dan mendukung adanya cross compiling. Berikutnya, Anda akan menemukan bahwa source code Anda akan sangat kompatibel dengan source code yang ditulis untuk dikompilasi dengan Turbo Pascal 7.0. Bahkan, Anda tetap dapat menggunakan unit CRT seperti halnya Anda menggunakan unit ini di Turbo Pascal 7.0. Kedekatan dengan bahasa C pun dimungkinkan karena Anda dapat dengan mudah mengakses berbagai fungsi di pustaka C. Kemudian, binding ke berbagai pustaka populer pun disertakan. Termasuk penggunaan XML dan database. Luar biasa bukan? Dukungan untuk database yang datang dengan kompiler ini termasuk MySQL, PostgreSQL dan berbagai database populer. Masih soal dukungan pustaka, Anda bahkan dapat membangun aplikasi GUI dengan bantuan pustaka GTK+. Aplikasi-aplikasi yang dekat dengan sistem operasi pun dimungkinkan untuk ditulis dengan Free Pascal. Dan kalau Anda ingin, dengan senang hati Anda dapat menulis shared library Linux. Sama mudahnya ketika Anda menulis aplikasi Client/Server. Sebuah unit Linux pun disertakan khusus untuk pembuat aplikasi Linux. Beberapa teknik pemrograman seperti method, function, atau operator overload-
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Pascal di Linux
ing dan dukungan Object Oriented Programming pun disertakan. Jadi, kurang apa lagi?
Kompatibilitas Free Pascal memang mencoba untuk datang dengan kompatibilitas penuh dengan produk kompiler dari Borland. Namun, karena berbagai hal, terdapat beberapa perbedaan yang sebaiknya kita ketahui terlebih dahulu untuk mengurangi debugging. Kita akan melihat apa saja yang tidak akan berlaku atau berlaku di Free Pascal, dan melihat bagaimana menyiasati kode yang telah ditulis dengan Turbo Pascal agar dapat dikompilasi dengan mulus di Free Pascal. Beberapa hal yang berbeda antara Free Pascal dan Turbo Pascal adalah: Duplikasi case label tidak diizinkan. Hal ini tidak akan disesuaikan dengan Turbo Pascal mengingat ini adalah bug di Turbo Pascal. Karena Turbo Pascal mendukung function overloading, maka parameter list untuk fungsi atau prosedur yang telah didefinisikan harus sesuai. MEM, MEMW, MEML, dan PORT untuk memori dan port tidak tersedia di unit system. Protected, public, published, try, finally, except, dan raise adalah reserved word. Reserved word far dan near tidak berlaku karena Free Pascal adalah kompiler 32-bit. INTERRUPT tidak berlaku di Linux. Sintak assembler yang digunakan secara default adalah sintak AT&T. Anda bisa mengubahnya dengan mudah. Turbo Vision belum matang dan belum dapat digunakan. Anda dapat mempergunakan FreeVision, namun kompatibilitas dengan Free Pascal masih memerlukan banyak kerja keras. Unit overlay tidak tersedia karena Free Pascal adalah kompiler 32 bit. Free Pascal datang dengan lebih baik reserved word. Switch dan directive relatif kompatibel dengan Turbo Pascal, walaupun Free Pascal menambahkan beberapa switch dan directive.
Unit tidaklah kompatibel pada level binary. Set selalu 4 byte di Free Pascal. Destructor tidak boleh memiliki parameter. Namun, hal ini dapat disesuaikan. Dalam OOP, kita hanya boleh memiliki satu destructor. Namun, hal ini dapat disesuaikan. Free Pascal datang dengan berbagai kelebihan, di antaranya: Free Pascal datang dengan reserved word tambahan. Anda dapat menggunakan hasil dari fungsi (nama fungsi) sebagai variabel biasa. Pada Turbo Pascal, hal ini akan dianggap pemanggilan fungsi secara rekursif. Namun, pada Free Pascal, dianggap sebagai variabel biasa. Pemanggilan rekursif dilakukan dengan menambah tanda () pada akhir nama fungsi, untuk fungsi yang tidak memiliki parameter. Free Pascal mendukung Delphi, dalam level tertentu. Fungsi exit dapat dipanggil dengan parameter. Free Pascal mendukung function atau operator overloading. Penggunaan nama file panjang dimungkinkan pada Free Pascal. Walaupun memiliki berbagai perbedaan, Free Pascal juga dapat diatur untuk bertingkah laku seperti halnya Turbo Pascal. Cukup berikan saja opsi -So pada command line Free Pascal. Berikut ini adalah beberapa catatan ketika Free Pascal harus bertingkah laku seperti halnya Turbo Pascal: Procedure overloading tidak akan berlaku. Forward tidak memerlukan pendefinisian parameter list yang sesuai karena fitur function overloading tidak akan berlaku. Pemanggilan fungsi rekursif tanpa parameter harus menambahkan tanda () setelah nama fungsinya. Komentar bersarang tidak akan berlaku.
Daftar reserved word Berikut ini adalah reserved word pada Turbo Pascal. Hal ini penting ketika Anda
www.infolinux.web.id
meminta Free Pascal untuk bertingkah laku seperti halnya Turbo Pascal: absolute, and, array, asm, begin, break, case, const, constructor, continue, destructor, div, do, downto, else, end, file, for, function, goto, if, implementation, in, inherited, inline, interface, label, mod, nil, not, object, of, on, operator, or, packed, procedure, program, record, repeat, self, set, shl, shr, string, then, to, type, unit, until, uses, var, while, with, dan xor. Berikut ini adalah reserved word pada Delphi 2. Pada mode kompatibilitas dengan Turbo Pascal (-So), reserved word berikut ini tidak akan berlaku: as, class, except, exports, finalization, finally, initialization, is, library, on, property, raise, dan try. Berikut ini adalah reserved word tambahan dari Free Pascal: dispose, exit, false, new, dan true. Sementara, berikut ini adalah beberapa modifier yang tidak dapat didefinisikan ulang di Free Pascal: absolute, abstract, alias, assembler, cdecl, default, export, external, far, forward, index, name, near, override, pascal, popstack, private, protected, public, published, read, register, saveregisters, stdcall, virtual, dan write.
Memanggil fungsi C Anda dapat dengan mudah memanggil fungsi dalam pustaka C dengan cara berikut. Contoh berikut memanggil fungsi strcmp: function strcmp(s1 : pchar;s2 : pchar) : integer;cdecl;external;
Unit yang datang dengan fpc Berikut ini adalah unit-unit yang datang bersama Free Pascal. Ketersediaan unit-unit tersebut ada kalanya bergantung pada pustaka sistem. CRT, penanganan layar. DOS, fungsi-fungsi OS. DXELOAD, membaca file dxe, hanya untuk DOS. EMU387, emulasi koprosesor, hanya untuk DOS. GETOPTS, penanganan opsi-opsi command line. GPM, penanganan mouse di Linux. GO32, unit untuk GO32 (DOS). GRAPH, penanganan layar dalam mode grafis.
INFOLINUX MARET 2004
57
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Pascal di Linux
HEAPTRC, memory allocation debugging. IPC, System V Interprocess Communication, hanya untuk Linux. KEYBOARD, penanganan keyboard. LINUX, unit untuk Linux. MATH, menyediakan fungsi matematika tambahan. MMX, dukungan untuk MMX. MOUSE, penanganan mouse. MsMouse, penanganan mouse di DOS. Objects, berbagai objek tambahan. PORTS, penanganan port, berlaku di berbagai OS, namun penggunaannya tidak disarankan. Di Linux, program harus dijalankan oleh root, atau dengan memanggil system call ioperm(). PRINTER, penanganan printer, tersedia untuk Linux, dengan sedikit penanganan berbeda. SOCKETS, penanganan socket. STRINGS, penanganan string. SYSUTILS, pada awalnya dibuat untuk kompatibel dengan Delphi, namun saat ini, telah dapat digunakan di berbagai platform yang dapat menjalankan Free Pascal. TYPINFO, query informasi RTTI (Run Time Type Information). VIDEO, penanganan video.
Terminal function, fungsi-fungsi untuk terminal. Contoh: isATTY, IOCtl. Port IO, penanganan port. Contoh: ReadPort, WritePort. Utility, berbagai utilitas tambahan. Contoh: FDSet, Mmap.
x:=40; y:=12; dx:=1; dy:=1; clrscr; repeat x:= x + dx; y:= y + dy; if (x < 2) or (x > 68) then dx := -dx; if (y < 2) or (y > 23) then dy := -dy; gotoxy(x,y); write(‘o’); delay(100); gotoxy(x,y); write(‘ ‘); until keypressed; readkey;
Free Pascal umumnya terdapat dalam distribusi Anda. Apabila tidak tersedia, maka download-lah dari www.freepascal. org. Carilah terlebih dahulu paket untuk distro Anda, sebelum kompilasi dari source dilakukan. Kompilasi dari source code akan sangat merepotkan.
Kompilasi program Anda dapat melakukan kompilasi dengan memberikan perintah berikut ini: fpc Semua contoh pada tulisan ini dapat dikompilasi dengan cara tersebut.
Ekstensi file Anda dapat memberikan ekstensi .pas untuk program Anda. Namun, menuruti contoh yang datang bersamanya, penulis menggunakan ekstensi .pp untuk source code Pascal.
Contoh-contoh program Berikut ini adalah beberapa contoh program dan penjelasannya. Karena keterbatasan halaman, maka contoh-contoh yang diberikan hanya difokuskan sebisa mungkin pada keperluan pemrograman di dunia nyata. Animasi sederhana Program ini menampilkan animasi berupa bola pantul. Source code program bola_pantul; { (c) Noprianto, 19/1/2004, GPL} uses crt;
www.infolinux.web.id
: integer;
begin
Instalasi
Free Pascal menyediakan unit LINUX yang berguna bagi Anda yang ingin melakukan pemrograman khusus untuk Linux. Sesuai namanya, unit ini hanya tersedia untuk sistem operasi Linux. Nama fungsi atau prosedur yang digunakan umumnya mirip dengan nama fungsi pada pustaka C. Free Pascal datang dengan beberapa kategorisasi fungsi: File Input Output, penanganan IO file. Contoh: fdOPen, fdClose. File handling, penanganan file. Contoh: Chown, Chmod. Pipe, FIFO, stream. Berguna untuk penanganan pipe. Contoh: Popen, Mkfifo. Directory handling, penanganan directory. Contoh: OpenDir, ReadDir. Process handling, penanganan prosesproses os. Contoh: Fork, WaitPid. Signal, penanganan signal. Contoh: Signal, Kill. System Information, informasi sistem. Contoh: Uname, GetTime.
INFOLINUX MARET 2004
x,y,dx,dy
Dokumentasi dan contoh yang datang bersama unit ini cukup lengkap. Selain itu, karena nama fungsi yang relatif sama dengan fungsi dalam bahasa C, maka diharapkan dapat memudahkan penggunaannya.
Unit LINUX
58
var
end. Penjelasan: Bola dicetak pada koordinat tertentu. Setelah beberapa lama, bola dihapus. Koordinat kemudian akan dihitung ulang dengan penambahan dx (penambahan x) dan dy. Apabila posisi x telah mencapai batas kanan atau kiri layar, maka dx akan dinegasikan. Demikian juga untuk dy. Array Contoh penggunaan array di Free Pascal. Tanpa penjelasan. source code program tes_array; { (c) Noprianto, 19/1/2004, GPL} uses crt; var a : array [1..10] of integer; i : byte; temp : integer; begin randomize; clrscr; write(‘sepuluh bilangan acak: ‘);
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Pascal di Linux
for i:=1 to 10 do begin a[i]:= random(100); write(a[i],’ ‘); end; writeln; write(‘nilai minimum: ‘); temp:=100; for i:=1 to 10 do if a[i] < temp then temp:=a[i]; writeln(temp); write(‘nilai maksimum: ‘); temp:=0; for i:=1 to 10 do if a[i] > temp then temp:=a[i]; writeln(temp);
Linked list Pembuatan dan penggunaan linked list di Free Pascal. Linked list yang digunakan adalah double linked list. Source code program linked_list; { (c) Noprianto, 19/1/2004, GPL} uses crt; type tnode = record number : integer; next : ^tnode; prev : ^tnode; end; var head : ^tnode; tail : ^tnode; curr : ^tnode; node : ^tnode; i : integer;
readkey; end. Rekursif Contoh penggunaan fungsi rekursif pada Free Pascal. Fungsi yang dicontohkan adalah fungsi untuk menghitung faktorial suatu bilangan. Penjelasan tidak tersedia.
head:= nil; tail:= nil; curr:= nil; for i:=1 to 5 do begin new(node); node^.number := i; if head = nil then begin head:= node; head^.prev := nil; curr := node; end else begin curr^.next := node; node^.prev := curr; curr := node; end; curr^.next := nil; tail := curr; end; curr := head; while curr <> nil do begin
begin
Source code program rekursif; { (c) Noprianto, 19/1/2004, GPL} uses crt; function faktorial(n: integer): longint; begin if n = 1 then faktorial:= 1 else faktorial:= n * faktorial(n-1) end;
IKLAN
var n
: integer;
begin clrscr; write(‘Masukkan bilangan: ‘); readln(n); write(‘Faktorial ‘,n,’ adalah ‘,faktorial(n)); readkey; end.
www.infolinux.web.id
INFOLINUX MARET 2004
59
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
for j:= i+1 to high(a) do begin if a[j] < a[temp] then temp:=j; end; if temp <> i then swap(a[temp], a[i]);
end; end. Penjelasan: Setiap perulangan yang dilakukan akan membuat satu node baru. Apabila linked list masih belum tersedia, yang ditandai dengan head bernilai nil, maka kita akan membuat head dari linked list tersebut. Apabila linked list telah tersedia, maka kita perlu menghubungkan pointer next dari node terakhir ke node baru kita, dan menghubungkan pointer prev dari node baru kita ke node terakhir dari list. Kemudian, node baru akan menjadi node terakhir di dalam list. Untuk menguji apakah linked list telah dibuat dengan benar, kita mencetak satu per satu node dari head, sambil menghapus node tersebut. Sorting Contoh pengurutan data dengan selection sort. Source code program sort_selection; { (c) Noprianto, 19/1/2004, GPL}
end; end; begin randomize; clrscr; write(‘sepuluh bilangan acak: ‘); for i:=1 to 10 do begin a[i] := random(100); write(a[i],’ ‘); end; writeln; write(‘diurutkan menjadi: ‘); selection_sort(a); for i:=1 to 10 do write(a[i],’ ‘); writeln;
end. Penjelasan: Selection sort adalah salah satu algoritma sorting dengan kompleksitas 0.5N2 + O(N). Untuk setiap perulangan, carilah data terkecil dan tempatkanlah pada urutan pertama.
begin assign(fin, file_data); assign(fout, file_out); reset(fin); rewrite(fout); while not eof(fin) do begin read(fin, temp); for i:=1 to temp do begin for j:=1 to i do begin write(fout,temp); end; writeln(fout,’’); end; end; close(fout); close(fin);
uses crt; var a: array [1..10] of integer; i: integer;
procedure swap(var a,b: integer); var temp: integer; begin temp:= a; a:= b; b:= temp; end; procedure selection_sort(var a: Array of integer); var i,j, temp : integer; begin for i:=0 to high(a) do begin temp := i;
60
INFOLINUX MARET 2004
File Pada contoh ini, kita akan membaca isi dari file.in yang berisi angka-angka satuan tunggal, dan mencetak ke file.out dengan hasil segitiga karakter dengan tinggi sesuai dengan setiap karakter yang terbaca. File.in 23574 File.out 2 22 3 33 333 5 55 555 5555 55555
end. Penjelasan: reset mempersiapkan file untuk dibaca, dan rewrite mempersiapkan file untuk ditulis. Untuk setiap karakter yang terbaca, kita melakukan perulangan untuk membuat
www.infolinux.web.id
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Pascal di Linux
segitiga, dan menuliskannya ke dalam file output. Contoh kombinasi linked dan file Contoh yang satu ini menyimulasikan tips yang seringkali ditemukan pada awal aplikasi dijalankan. Tip akan dibaca dari file (tips.txt), dan setiap tip akan menjadi node baru dalam double linked list. Pengguna dapat melihat tip saat ini, tip berikut, dan tip sebelumnya dengan menekan tombol panah. Tip sebelumnya dapat diakses apabila tip aktif bukan head. Demikian juga tip berikutnya bisa diakses apabila tip aktif bukan tail. Apabila tombol ESC ditekan, setiap node akan dihapus sebelum program diterminasi. Penjelasan terdapat di dalam source code. Source code program tips; { simulation of ‘show tips’ program, oftenly seen in program startup (c) Noprianto, January 19 2004 licensed under GPL to do: - truncate tip, fit on window area Change log: 19/1/2004: - initial release } uses crt;
temp : string; key : char;
press, check the availability of next or prev node, respectively. quit from loop if escape is pressed
begin { initialization set all unaddressed to nil open and reset the file } head:= nil; tail:= nil; curr:= nil; assign(file_tips, file_data); reset(file_tips);
gotoxy(1,8); clreol; if curr^.prev <> nil then begin gotoxy(30,8); write(‘<- prev ‘); end;
create double linked list push file data into the list } while not eof(file_tips) do begin readln(file_tips, temp); new(node); node^.tip := temp; if head = nil then begin head:= node; head^.prev := nil; curr := node; end else begin curr^.next := node; node^.prev := curr; curr := node;
if curr^.next <> nil then begin gotoxy(40,8); write(‘next ->’); end; key:= readkey; if key = #0 then key:= readkey; case key of #75 : if curr^.prev <> nil then curr := curr^.prev; #77 : if curr^.next <> nil then curr := curr^.next; end;
type tnode = record tip : string; next : ^tnode; prev : ^tnode; end;
end; curr^.next := nil; tail := curr; end;
until key=#27; curr := head;
const file_data
= ‘tips.txt’;
{ {
var head : ^tnode; tail : ^tnode; curr : ^tnode; node : ^tnode; file_tips : text;
create main UI create window write the tip of current node print next or prev button read the keypressed on right arrow or left arrow
www.infolinux.web.id
cleanup actions dispose all unneeded memory space close the file blah! } curr := head;
INFOLINUX MARET 2004
61
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Pascal di Linux
while curr <> nil do begin node:= curr; curr := curr^.next; dispose(node); end; close(file_tips);
GTK+ Contoh untuk mengakses pustaka GTK+. Untuk penjelasan, Anda bisa merujuk kepada dokumentasi pustaka GTK+. Kita akan membuat aplikasi dengan sebuah tombol yang apabila ditekan, akan mencetak tulisan Pascal Keren!
end. Function overloading Contoh untuk function overloading. Tanpa penjelasan.
Source code program function_overload; { (c) Noprianto, 19/1/2004, GPL} uses crt; function test: integer; begin test:= 10; end; function test(x: integer): integer; begin test := x; end; function test(x, y: integer): integer; begin test := x * y; end;
procedure OnMainWindowDestroyed; cdecl; begin gtk_main_quit; end; procedure OnButtonClick; cdecl; begin writeln(‘Pascal Keren!’); end;
clrscr; writeln(‘Hasil dari fungsi test: integer —> ‘,test); writeln(‘Hasil dari fungsi test(x: integer): integer, x=10 —> ‘,test(10)); writeln(‘Hasil dari fungsi test(x,y : integer): integer, x=10,y=10 —> ‘,test(10,10)); writeln(‘Hasil dari fungsi test(c: char): integer, c=A —> ‘,test(‘A’));
function test(c: char): integer; begin test := ord(c); end;
end.
PostgreSQL Contoh program berikut ini akan mengakses database PostgreSQL dari Free Pascal. Contoh ini hanya akan mencoba melakukan koneksi database template1 dan mencetak hasilnya. Untuk dokumentasi lebih lanjut, Anda bisa membaca dokumentasi libpq. program test_pg;
www.infolinux.web.id
if (PQstatus(conn) = CONNECTION_ BAD) then begin writeln (stderr, ‘Connection to database ‘,dbname,’ failed.’); writeln (stderr, PQerrorMessage (conn)); PQfinish(conn); halt(1); end; writeln(‘Connection to database ‘,dbname,’ established.’); end. Apabila Anda senang menggunakan Pascal, jangan sia-siakan kemampuan Anda. Dengan Free Pascal, Anda dapat membuat aplikasi kelas tinggi yang tersedia untuk berbagai platform, dengan penulisan kode ulang yang sangat sedikit. Di situsnya, Free Pascal menyediakan berbagai dokumentasi dan forum komunitas yang bisa meningkatkan kemampuan setiap pengguna atau pengembang Free Pascal. Selamat mencoba! Noprianto ([email protected])
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
KDE, Seleraku
KDE, Seleraku Sebagai salah satu desktop populer di Linux, KDE dapat dibuat sepersonal mungkin, sesuai selera Anda.
K
ian hari, KDE senantiasa berkembang. Salah satu fitur yang selalu ditingkatkan adalah kemampuannya untuk dikustomisasi sesuai selera penggunanya. Mulai dari kustomisasi desktop, fasilitas yang diaktifkan, kustumisasi panel, dan lain-lain. Kita akan membahas berbagai kostumisasi tampilan satu per satu, dan pada akhirnya, Anda akan memiliki desktop KDE dengan tampilan sesuai selera. KDE yang digunakan dalam artikel ini adalah KDE 3.1. Namun, penerapakannya seharusnya bisa digunakan oleh versi-versi yang dekat dengan 3.1.
Desktop kerja Kita akan mulai dengan tampilan desktop kerja yang setiap kali Anda lihat begitu memasuki KDE. Paling tidak, kita bisa mengatur background, screen saver, dan cara desktop bertingkah laku. Semua pengaturan tersebut dapat Anda lakukan dengan melakukan klik kanan pada area kosong desktop, dan pilihlah Configure Desktop dari menu yang disediakan. Sebuah dialog akan ditampilkan. Pada dialog tersebut, kita akan melihat enam menu pada panel kiri. Masing-masing adalah Appearance, Behavior, Multiple Desktops, Paths, Background, dan Screen Saver. Untuk pengaturan font dan propertinya, pilihlah bagian Appearance. Untuk mengatur wallpaper, masuklah ke bagian Background. Di bagian atas, Anda akan mendapati jumlah desktop. Tidak seperti halnya Windows yang hanya memiliki satu desktop, KDE dapat memiliki banyak desktop. Setiap desktop pun bisa memiliki background yang berbeda. Hal tersebut bisa Anda capai dengan menghilangkan tanda centang () pada Common Background. Pada bagian bawah, Anda bisa melihat tiga tab untuk pengaturan background, wallpaper, dan pengaturan lanjutan. Apabila Anda ingin menggunakan gambar latar, maka segeralah menuju ke tab wallpaper.
Sementara, apabila Anda lebih senang bermain dengan warna-warni, tab background adalah tujuan Anda. Pada pengaturan lanjutan, Anda bisa mengatur blending dan cache yang digunakan. Cache yang semakin tinggi akan lebih baik apabila Anda memiliki ruang kosong dan memory yang lebih besar. Cobalah bermain-main dengan blending untuk mendapatkan kombinasi background yang Anda sukai. Dari background, kita akan berpindah ke Multiple desktops. Sebagaimana yang kita lakukan pada pengaturan background sebelumnya, kita dapat mengatur jumlah desktop sesuai keinginan. Anda dapat melakukan pengaturan di sini. Setiap desktop pun bisa diberi nama. Semuanya terserah kepada Anda saja. Satu tip di sini adalah: jangan membuat terlalu banyak desktop yang tidak perlu. Berpindahlah ke bagian Screen Saver. Umumnya, pengguna komputer menginginkan layarnya aktif apabila komputernya tidak digunakan selama beberapa waktu tertentu. Anda bisa mengaktifkan pilihan untuk menjalankan screen saver secara otomatis setelah komputer anda tidak bekerja dalam waktu tertentu. Cukup aktifkan saja pilihan Start screen saver automatically. Kemudian, pilihlah waktu. Sepuluh menit adalah waktu yang wajar. Apabila Anda menginginkan keamanan lebih, maka berikanlah password agar screen saver tidak dapat dihentikan oleh pengguna yang tidak berhak. Cukup aktifkan saja pilihan Require password to stop screen saver. Kemudian, pilihlah screen saver yang Anda inginkan. Cobalah Molecule. Penulis telah menggunakannya selama mingguan dan masih tetap terpesona dengan karya Jamie Zawinski ini. Setiap pilihan umumnya memiliki pengaturan ekstra. Pilihlah tombol setup untuk mengatur beberapa parameter screen saver tersebut. Untuk mencoba screen saver terpilih, kliklah tombol Test. Satu pengaturan lagi. Apabila Anda memiliki berbagai pekerjaan yang
www.infolinux.web.id
ditinggalkan dengan komputer tetap bekerja untuk menyelesaikan pekerjaan tersebut, ubahlah nilai prioritas screen saver menjadi sekecil mungkin agar tidak mengganggu pekerjaan yang berjalan. Setelah selesai dengan bagian screen saver, kita dapat memasuki bagian Behavior. Bagian ini mengatur tingkah laku desktop secara keseluruhan. Yang pertamatama, apabila Anda menaruh file di direktori desktop, Anda bisa meminta KDE untuk membuat preview untuk file tersebut. Cukup pilih file apa saja yang ingin dipreview dengan mengaktifkan pilihan di bagian Show Previews For. Lakukanlah hal ini hanya apabila komputer Anda cukup kencang. Pada bagian Misc Options, Anda masih dapat mengatur beberapa hal lain. Barangkali yang cukup menyenangkan adalah pilihan untuk menampilkan icon di desktop dan mengaktifkan desktop menu. Apabila Anda menyenangi desktop yang bersih, nonaktifkanlah pilihan Enable icons on desktop. Apabila Anda ingin mengaktifkan desktop menu, aktifkanlah pilihan Enable desktop menu. Tampilan KDE Anda akan menyerupai tampilan MacOS. Pada bagian tengah, kita masih dapat mengatur beberapa hal sehubungan dengan klik tombol mouse di desktop. Anda dapat mengaturnya sesuka keinginan. Kemudian, pada bagian bawah, Anda dapat memilih untuk menampilkan icon untuk device apa saja yang ingin Anda tampilkan. Berpindahlah ke bagian terakhir yang belum tersentuh: Paths. Pengaturan lebih lanjut tentang path bisa dilakukan di sini. Umumnya, bagian yang satu ini tidak perlu diutak-atik lagi. Untuk mengaplikasikan segera perubahan yang telah kita buat, Kliklah tombol Apply dan OK. Bagaimana? Terjadi perubahan di desktop Anda? Kita akan segera melanjutkan pada pengaturan panel.
Panel Pengguna Windows yang datang dengan Linux barangkali akan sedikit bingung dengan istilah panel. Umumnya, bagi pengguna Windows, panel dapat diartikan sebagai taskbar. Pada instalasi default, panel dapat Anda temukan pada bagian bawah area kerja Anda. Panel dilengkapi
INFOLINUX MARET 2004
63
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Pengaturan background desktop.
dengan sebuah K Menu, berbagai tombol untuk menjalankan aplikasi, sebuah pager yang berguna sebagai miniatur desktopdesktop Anda, sebuah taskbar, sebuah system tray, dan sebuah jam digital. Harap diperhatikan, taskbar dalam hal ini adalah area yang berguna untuk menampilkan daftar-daftar aplikasi yang sedang dijalankan. Dan oleh karena itulah dinamakan sebagai taskbar (task dapat diartikan sebagai tugas, aplikasi yang berjalan). Kustomisasi pertama yang bisa dan termudah untuk dilakukan barangkali adalah memindahkan lokasi panel. Klik dan tahanlah tombol panah yang terletak pada bagian paling kanan atau kiri panel Anda. Kemudian, geserlah mouse Anda ke lokasi yang Anda inginkan. Anda bisa mencobanya ke bagian kanan atau kiri layar. Beberapa pengguna juga menyukai posisi panel di bagian atas. Kemudian, pengubahan kedua yang juga mudah dilakukan adalah menghilangkan beberapa isi dari panel. Umpamanya, Anda tidak begitu menyukai pager. Maka buanglah pager dari panel Anda. Caranya mudah sekali. Coba lihat tombol panah atas di sebelah kiri pager Anda. Kliklah, dan Anda akan menjumpai sebuah menu. Pilihlah Remove Pager dari menu yang tersedia, dan pager Anda pun menghilang. Cara serupa bisa Anda terapkan apabila Anda ingin menghapus elemen tertentu dalam panel. Khusus untuk tombol-tombol untuk menjalankan aplikasi, Anda hanya perlu melakukan klik kanan pada tombol tersebut, kemudian pilihlah menu Remove.
64
INFOLINUX MARET 2004
KDE, Seleraku
Pengaturan screen saver.
Setelah menghapus, kita akan membicarakan bagaimana menambahkan elemen-elemen tertentu ke dalam panel. Cukup klik kanan pada bagian kosong panel Anda, kemudian lihatlah submenu Add. Apabila sub menu Add tersebut tidak tersedia, carilah sub menu Panel Menu. Pilihlah sub menu Panel Menu tersebut, dan seharusnya Anda akan menemukan submenu Add. Dari submenu Add tersebut, Anda masih bisa menemukan beberapa submenu lagi, yaitu Applet, Application Button, Special Button, dan Extension. Pilihlah salah satu dari submenu tersebut, dan pilihlah item yang ingin ditambahkan. Sampai di sini, kita bisa melihat bahwa penambahan ataupun penghapusan elemen dari panel sangatlah mudah. Berikutnya, kita akan sedikit mengutak-atik setiap elemen dalam panel. Sebagai contoh, lihatlah clock. Klik lah pada tombol panah atas yang terletak di sebelah kiri clock tersebut. Kemudian, pilihlah Configure Clock dari menu yang tersedia. Sebuah dialog akan ditampilkan, dan Anda bisa membuat clock bertingkah laku sesuai keinginan Anda. Buatlah tampilan atau tingkah laku setiap elemen tersebut lebih personal bagi Anda. Baik. Sebagian besar hal yang bisa kita lakukan dengan panel telah kita selesaikan. Tinggal beberapa lagi. Namun, beberapa pengaturan berikut ini akan membuat Anda tercengang betapa KDE bisa dibuat sesuka selera masing-masing. Kliklah pada area kosong, dan pilihlah Configure Panel. Atau, bagi Anda yang
www.infolinux.web.id
tidak dapat menemukan menu ini, pilihlah terlebih dahulu Panel Menu, dan pilihlah Configure Panel. Sebuah dialog besar akan ditampilkan untuk Anda. Kita akan membahas beberapa bagian penting yang bisa membuat panel kelihatan lebih menarik. Pertama-tama, aktiflah terlebih dahulu di bagian Layout. Di sini, kita bisa mengatur hal-hal yang berhubungan dengan pengaturan dan penempatan panel. Pilihlah tab Arrangement di bagian kanan dialog. Anda bisa melihat bahwa pengaturan posisi panel bisa diatur pula di sini. Cukup klik saja posisi yang Anda inginkan. Kemudian, pengaturan panjang panel juga bisa dilakukan dengan men-drag slider atau mengisikan nilai persentase pada bagian Length. Di bagian bawah dialog, Anda akan meemukan pula pengubahan ukuran panel. Cobalah bereksperimen dengan ukuran-ukuran yang disediakan atau custom untuk ukuran yang Anda atur sendiri. Sebagai tip, apabila Anda ingin menikmati keindahan KDE, pilihlah ukuran Normal ke atas. Ukuran tiny akan membuat area kerja Anda luas sehingga menjadi pilihan tepat bagi di pecinta kerja. Namun sayangnya, Anda tidak bisa menikmati keindahan icon dan berbagai elemen lain di dalam panel apabila ukuran tiny dipilih. Sekarang, dari tab Arrangement, pindahlah ke tab Hiding. Kita mengenal tiga mode hiding di sini. Pertama, hiding, atau penyembunyian panel hanya akan dilakukan apabila pengguna memintanya secara eksplisit, yaitu dengan melakukan klik pada tombol hide yang terletak di
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Memilih color scheme.
kanan atau kiri panel. Pengaturan lokasi tombol hide ini bisa Anda atur di tab Hiding ini juga, yaitu di bagian Panel-Hiding Buttons. Mode penyembunyian kedua adalah penyembunyian otomatis seperti yang sering kita temui di Windows. Anda bisa mengatur berapa lama panel mulai akan disembunyikan begitu kursor mouse meninggalkan panel. Mode ketiga mengizinkan window lain untuk menutupi panel. Cobalah beberapa mode tersebut. Sebagai saran bagi pecinta kerja, barangkali mode kedua cocok untuk Anda. Bagi pecinta tampilan konsisten dan rapi, mode pertama tidak bisa ditawar lagi. Pada bagian bawah dialog, Anda akan menemukan bagian Panel Animation. Di sinilah Anda bisa mengatur animasi penyembunyian panel. Terserah Anda saja. Mau dianimasikan atau tidak. Mau cepat atau lambat. Selera Anda kuncinya. Dari tab Hiding, pindahlah ke tab Menus. Di sini, banyak hal yang bisa Anda lakukan. Yang pertama-tama dan cukup menarik adalah pengubahan pada bagian K Menu. Anda bisa memilih format menu item yang ditampilkan. Anda bisa memilih untuk menampilkan nama program saja, atau nama diikuti deskripsi, atau bahkan deskripsi diikuti nama. Pengeditan K Menu juga dapat dilakukan dengan mengklik pada tombol Edit K Menu. Apabila Anda mengaktifkan pilihan Show side image, maka sebelah kiri K Menu Anda akan dilengkapi dengan image yang umumnya menampilkan versi KDE Anda. Anda bisa mencoba bagian lain seperti QuickBrowser Menus dan QuickStart Menu
KDE, Seleraku
Memilih style.
Items sesuai keinginan. Kliklah tombol Apply untuk mengaplikasikan perubahan yang dilakukan. Baik. Selesai dengan Layout, kita akan berpindah ke bagian Appearance. Pengaturan yang satu ini relatif lebih sederhana. Namun, ada satu pengaturan yang—percayalah—akan membuat Anda semakin kagum dengan KDE. Fasilitas icon zooming. Yang satu ini akan membuat tampilan KDE Anda mirip dengan tampilan MacOS belakangan. Aktifkanlah pilihan Enable icon zooming, dan icon Anda akan membesar ketika kursor mouse diarahkan kepadanya. Pada bagian Button Background, Anda bisa mengatur latar belakang tomboltombol Anda. Latar belakang panel sendiri bisa diatur pada bagian berikutnya: Panel Background. Selesai dengan sedikit pengaturan pada Appearance, kita akan berpindah ke bagian Taskbar. Pada bagian Taskbar, Anda bisa mengatur penampilan task-task Anda. Anda juga bisa memilih untuk mengaktifkan atau menonaktifkan fasilitas grouping similar task. Apabila fasilitas ini diaktifkan, maka ketika Anda membuka beberapa aplikasi yang sama, yang tampil pada taskbar hanyalah satu task, yang apabila diklik akan menampilkan task-task yang menjadi anggota grupnya. Pilihlah pengaturan yang paling sesuai dengan keinginan Anda. Beberapa pengguna lebih menyenangi grouping ini karena desktop terlihat lebih sederhana. Sebuah saran, apabila Anda senang menggunakan mouse untuk
www.infolinux.web.id
berpindah-pindah aplikasi ketimbang menekan kombinasi tombol Alt-TAB, maka pengelompokan task adalah ide yang kurang menarik. Selesai sudah pengaturan panel kita. Sekarang, bagaimana tampilan panel Anda? Sudah sesuai selera? Kalau kurang, aturlah kembali, jangan malu-malu dengan KDE.
Color, style... Pernahkah Anda melihat rekan Anda yang menggunakan distro yang sama, tidak mengubahnya sama sekali, menggunakan KDE yang sama, namun tampilan KDE-nya berbeda sama sekali baik dari sisi warna, bentuk tombol ataupun tampilan lainnya? Dan teman Anda mengatakan bahwa desktop yang digunakan masih tetap KDE? Kalau begitu, pastilah teman Anda telah mengubah color scheme, style ataupun window decoration yang digunakan. Sekarang, kita juga akan mencobanya agar tampilan KDE Anda juga tidak kalah. Bukalah KDE Control Center yang umumnya bisa diakses dari K|Control Center. Sebuah dialog KDE Control Center akan ditampilkan untuk Anda. Di sinilah Anda dapat mengatur keseluruhan desktop KDE. Namun, untuk saat ini, kita hanya akan melihat pada bagian Appearance & Themes. Apabila Anda memilih menu ini, beberapa submenu akan ditampilkan. Namun, untuk saat ini, kita hanya akan berkonsentrasi pada menu Colors, Window decorations, dan style. Pilihlah menu Colors. Di menu ini, Anda bisa mendefinisikan warna-warna per komponen KDE Anda. Atau untuk lebih
INFOLINUX MARET 2004
65
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Pengaturan efek GUI.
mudahnya, Anda bisa memilih salah satu color scheme yang tersedia. Anda juga bisa mencoba mengaplikasikan warna yang Anda pilih untuk aplikasi non-KDE lain. Untuk itu, aktifkanlah pilihan Apply colors to non-KDE applications. Color scheme yang disediakan umumnya sudah cukup mewakili berbagai color scheme dari sistem operasi lain. Pecinta Windows barangkali akan mencoba color scheme Redmond 95, Redmond 2000, ataupun Redmond XP. Baiklah. Anda ingin yang spesial. Tak satupun dari color scheme tersebut yang menurut Anda benar-benar personal. Kalau demikian, atur sendiri warna yang cocok untuk Anda. Pergilah ke bagian Widget Color, pilihlah widget yang ingin diubah warnanya, serta pilihlah warna yang Anda inginkan untuk widget tersebut. Setelah Anda selesai, barangkali Anda ingin menyimpan color scheme tersebut dengan menekan tombol Save Scheme. Berikan nama yang Anda inginkan. Dan, Anda baru saja membuat color scheme baru! Untuk mengaplikasikan color scheme terpilih, kliklah tombol Apply. Setelah itu, amatilah tampilan baru KDE Anda. Setelah dilihat-lihat, walaupun warnanya telah sesuai keinginan, Anda masih merasa ada sesuatu yang mengganjal dan tidak cocok. Rupanya bentuk title bar setiap aplikasi yang Anda lihat terasa sangat tidak cocok dengan warna yang Anda pilih. Baiklah. Kita siap untuk mengubah window decoration. Kembali ke Control Center dan Appearance & Themes. Pilihlah menu Window Decorations. KDE datang dengan beberapa
66
INFOLINUX MARET 2004
KDE, Seleraku
Pengaturan launch feedback.
window decoration yang cukup menarik. Pilihlah window decoration yang Anda inginkan, kemudian, amatilah tab yang terletak pada bagian atas tempat Anda memilih window decoration. Barangkali, Anda akan menemukan bahwa tab Configure dapat diklik, yang berarti Anda dapat mengatur beberapa hal lagi dari window decoration terpilih. Kalau tidak, berarti tidak ada lagi pengaturan lain yang perlu dilakukan. Bagi pecinta Windows, Anda bisa memilih window decoration Redmond. Kliklah tombol Apply untuk mengaplikasikan perubahan yang dilakukan, dan amati kembali tampilan title bar aplikasi-aplikasi yang sedang berjalan. Bagaimana? Terlihat sesuai selera? Oops. Anda baru saja ingat bahwa tampilan Anda masih belum seindah tampilan teman Anda. Bagaimana mungkin tombol-tombol di KDE teman Anda terlihat begitu berbeda? Begitu juga dengan scroll barnya ? Baiklah. Anda sampai pada pengaturan terakhir kita. Pengaturan Style. Pilihlah menu Style. Dan Anda akan melihat beberapa style yang telah disediakan. Pecinta Windows barangkali akan memilih style QT Windows. Anda bisa melihat preview setiap style di bagian bawah tempat Anda memilih style. Masih ada yang dapat dilakukan sehubungan dengan style. Pilihlah tab Effects yang terletak di sebelah tab Style. Kemudian, aktifkan Enable GUI effects. Anda bisa memilih efek untuk Combobox, tooltip dan menu. Sesuai dengan selera
www.infolinux.web.id
Anda. Penulis memiliki beberapa saran yang dapat Anda coba sehubungan dengan GUI effects ini. Biarkan efek pada combobox dan tooltip disable. Keduanya tidak terlalu menarik. Biarkan juga Menu tear-off handles tetap disable. Nah, sekarang, pilihlah Make Translucent untuk Menu effect. Aktifkan pula Menu drop shadow. Pada bagian bawah, di bagian menu translucency type, pilihlah Xrender Blend, dan aturlah Menu opacity menjadi 90%. Kliklah tombol Apply, dan cobalah klik pada K Menu ataupun menu aplikasi KDE lain. Apa yang Anda lihat? Menu yang transparan lengkap dengan drop shadow. Harap diperhatikan, beberapa style tidak mendukung translucency. Pilihlah kembali style lain apabila fasilitas ini cukup menarik bagi Anda. Di sebelah tab Effects, Anda masih akan menjumpai tab Miscellaneous. Pada bagian Toolbar settings, Anda dapat mengatur beberapa hal sehubungan dengan penampilan toolbar Anda. Anda dapat meminta KDE untuk meng-highlight tombol ketika mouse diarahkan padanya. Atau, ketika toolbar dipindahkan, Anda dapat meminta KDE untuk menjadikannya transparan. Senang dengan tampilan MacOS dengan menu globalnya? Aktifkan saja pilihan Menubar on top of the screen in the style of MacOS yang terletak pada Visual Appearance. Apakah Anda menjadi pangling dan mengenali KDE Anda sebagai Mac? Lengkap dengan icon zooming? Sekarang, apakah tampilan KDE Anda masih kalah spesial dengan tampilan teman
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
TUTORIAL KDE, Seleraku
Anda? Rasanya tidak. Anda telah mendapatkan tampilan yang paling sesuai dengan selera Anda.
Lain-lain Kita telah mengatur banyak sekali hal yang berhubungan dengan tampilan. Tapi, di KDE, itu jelas belum segalanya. Masih banyak hal lain yang bisa Anda atur sesuai selera. Sekarang, bagaimana kalau kita mengatur dua hal kecil yang sepertinya kurang berarti, namun merupakan hal yang menarik? Cobalah menjalankan aplikasi yang berat. OpenOffice.org adalah contoh yang paling baik untuk saat ini. Amatilah kursor Anda. Amati juga taskbar Anda. Kursor akan kelihatan berkedip-kedip dan taskbar Anda akan menampilkan indikator sedang menjalankan aplikasi untuk aplikasi yang Anda jalankan tersebut. Soal kursor, Anda bisa memilih untuk tidak menampilkan kursor sibuk sama sekali, sehingga dalam kondisi apapun, kursor selalu berbentuk panah. Atau, Anda ingin tetap menampilkan indikator sibuk pada kursor namun tidak menginginkan kursor Anda berkedip-kedip. Atau, sesuai pengaturan default, Anda tetap ingin kursor Anda berkedip-kedip. Masuklah ke Control Center, Appearance & Themes, dan pilihlah menu Launch Feedback. Kemudian, amatilah bagian Busy Cursor. Apabila Anda tidak menginginkan indikator sibuk sama sekali, nonaktifkanlah pilihan Enable busy cursor. Sementara, apabila Anda menginginkan indikator sibuk namun tidak menyukai kursor yang berkedip-kedip, nonaktifkanlah pilihan Enable blinking. Untuk taskbar, apabila Anda menginginkan adanya indikator sedang menjalankan aplikasi, maka aktifkan pilihan Enable taskbar notification. Sebaliknya, nonaktifkanlah. Berikutnya, masih di Control Center, Appearance & Themes, pilihlah Icons. Di sini, Anda dapat memilih icon theme yang Anda sukai. KDE yang penulis gunakan hanya datang dengan satu theme. Namun, kita dapat mencari theme di Internet dan menginstalnya dengan klik pada tombol Install New Theme. Namun, lupakan dulu theme baru. Kita
akan mencoba untuk mengubah-ubah beberapa hal pada icon theme saat ini. Bukalah tab Advanced. Pada bagian Use of Icon, kita bisa memilih pengaturan penggunaan icon di bagian tertentu. Mulai dari Desktop atau File manager, Toolbar, toolbar utama, icon-icon kecil, Panel dan keseluruhan icon secara umum. Pilihlah salah satu bagian tersebut, dan Anda dapat mengatur tingkah laku icon seperti ukuran dan penganimasian icon. Pada bagian bawah, Anda juga dapat memilih efek tertentu untuk masing-masing status icon: default, active, dan disabled. Status default berarti ketika icon ditampilkan dalam keadaan biasa. Active umumnya icon dalam keadaan terpilih, dan disabled ketika icon dalam keadaan tidak dapat diklik (tidak aktif). Cobalah klik pada tombol Set Effect... untuk salah satu status icon tersebut. Sebuah dialog akan ditampilkan, dan Anda dapat mengatur efek untuk status tersebut. Efek yang tersedia antara lain semi transparan, menjadi abu-abu, pemberian warna tertentu, pengaturan gamma dan desaturate. Aturlah efek yang Anda inginkan. Rasanya, pengaturan tampilan KDE saat ini cukup sampai di sini saja. Apabila Anda mengikuti pengaturan mulai awal tulisan sampai akhir tulisan dan mengatur segalanya berbeda dengan pengaturan default, penulis yakin 100% bahwa tampilan Anda kini benar-benar luar biasa. Terbayang desktop dengan wallpaper yang menyala-nyala, panel yang diletakkan di sebelah kiri layar, berukuran sangat kecil, lengkap dengan beberapa applet yang menggoda, dan selalu malu-malu kucing apabila kursor mouse tidak menyentuh dirinya. Begitu satu aplikasi KDE dibuka, window decoration yang digunakan pun jauh dari window decoration default. Apalagi stylenya. Teman Anda yang sudah menggunakan berbagai sistem operasi pun akan kaget karena window decoration dan stylenya begitu mirip dengan salah satu sistem operasi yang pernah digunakan. Kalau Anda senang dengan tampilan demikian, tidak salah dong, menyebut KDE, seleraku? Noprianto ([email protected])
www.infolinux.web.id
IKLAN
INFOLINUX MARET 2004
67
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Mengenal Gentoo dan Instalasinya
Mengenal Gentoo dan Instalasinya
K
ali pertama yang terlintas di pikiran kita adalah apa itu Gentoo? Gentoo itu adalah salah satu distro linux, dengan mengadopsi sedikit dari BSD membuat tampil prima. Gentoo dibaca “gentoo”, “g” didalam “gentoo” merupakan “g” yang bermakna lembut, seperti “g” dalam “gentle”. Gentoo diciptakan karena pembuat Gentoo tidak menemukan distro yang disukai. Itu merupakan sejarah mulai diciptakannya Gentoo. Gentoo berkembang cukup pesat karena pemakai menyukai portage yang ada di dalam Gentoo. Portage? Apa itu portage? Portage adalah jantung Linux Gentoo, yang mendistribusikan software untuk Linux Gentoo. Portage juga merupakan package building dan instalasi sistem. Portage juga dapat mengoptimasi software yang ada dengan hardware Anda untuk kinerja optimal. Dengan teknologi portage, Linux Gentoo dapat menjadi sebuah server yang secure, desktop workstation, sistem untuk game, sistem embedded atau yang lain sesuai dengan keinginan kita Untuk mendapatkan software terbaru Anda hanya tinggal memberikan satu perintah “emerge sync” yang akan otomatis meng-update semua portage tree yang ada dalam sistem Anda, dan tentu saja Anda membutuh koneksi Internet untuk ini. Dan untuk meyakinkan semua paket dalam komputer Anda yang terbaru anda tinggal memberikan perintah “emerge -u world”, cukup menyenangkan, bukan? Gentoo didistribusikan dalam dua CD, di mana CD pertama adalah CD instalasi dan package package penting, CD kedua berisi package package yang lain.
Sebelum Instalasi Pertama-tama yang Anda butuhkan sebelum menginstalasi Linux Gentoo yang perlu dipersiapkan antara lain: 1. Tentu saja yang paling dibutuhkan, yaitu
68
INFOLINUX MARET 2004
CD instalasi Linux Gentoo. 2. Memory minimal 64 MB + swap 64 MB tapi dengan spesifikasi ini proses akan berlangsung cukup lama 3. Dan Anda juga memerlukan harddisk yang cukup untuk installasi. Instalasi Gentoo sendiri mirip seperti Linux From Scratch atau seperti BSD, yang installasinya sedikit rumit dan menuntut keahlian yang lebih dalam Linux. Sebelum melangkah lebih jauh, terlebih dahulu kita harus mengenal cara instalasi Gentooyang terbagi menjadi 3 Stage. Stage
Akses Internet
CD yang diperlukan
1 2 3
Ya Ya Tidak jika
Basic atau CD1 Basic atau CD1 Basic atau CD1
3+GRP
memakai CD 1 Tidak
CD1, CD2 optional
Yang akan dibahas kali ini mengenai installasi Stage 3 + GRP, di mana installasi yang dilakukan cukup mudah dan Anda hanya memakai pre-build package yang telah tersedia.
Installasi Boot melalui CD-ROM, dan yang kali pertama Anda lihat adalah sebuah pilihan yang harus Anda pilih cukup dengan menekan tombol enter, tapi jika Anda menginginkan konfigurasi yang lain misalnya multiprocessor, Anda bisa menulis smp lalu tekan enter. Berikut ini daftar kernel yang ada. gentoo, kernel default. nofb, untuk mendisable framebuffer. smp, untuk multiprocessor dan framebuffer didisable. acpi, mengaktifkan mode acpi. memtest, boot dengan program testing memory.
www.infolinux.web.id
Begitu banyak distro linux. Salah satunya adalah Linux Gentoo, Linux yang harus Anda coba. Linux Gentoo dalam sebuah poster.
Jika Anda mengakftikan mode framebuffer dengan default kernel dari Gentoo, maka Anda akan terpukau dengan tampilan console yang diberikan oleh Gentoo. Cek harddisk Anda dihubungkan ke konektor ATA yang mana. Primary master = hda, secondary master = hdb, primary slave = hdc, secondary slave = hdd. Ganti hdx dengan harddisk anda hdparm -d 1 /dev/hdx hdparm -d1 -A1 -m16 -u1 -a64 /dev/hdx Langkah selanjutnya Anda harus mempartisi harddisk Anda. Ada banyak bentuk partisi yang dapat Anda pilih di antaranya. 1. root partition / dan swap saja. 2. root partition /, boot partition /boot, dan swap. 3. root partition /, boot partition /boot, usr partition /usr, dan swap 4. root partition. Untuk lebih gampang mengaturnya kita dapat memilih konfigurasi yang kedua atau pertama. Misalkan kita memilih konfigurasi yang pertama, yang harus dilakukan adalah misalkan harddisk kita adalah hda, Anda bisa mengantinya sesuai dengan yang Anda miliki, dan asumsikan Anda telah membuat partisi yang akan dipakai di Linux dengan tool lain misalnya partition magic atau tools lain yang open source. Yang harus Anda lakukan: fdisk /dev/hda atau cfdisk /dev/hda Buat new partition untuk root partition /, Buat partisi untuk boot atau anda tidak perlu membuatnya. Buat juga partition untuk swap cukup 2 kali ukuran ram Anda atau sebesar ram Anda.
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
TUTORIAL Mengenal Gentoo dan Instalasinya
Sesudah membuat partisi Linux kita harus melangkah ke langkah berikutnya. Partisi Anda telah siap, sekarang Anda tinggal menentukan partisi apa yang akan dipakai. Disarankan untuk mengunakan ext3 untuk partisi. Untuk membuat partisi: Membuat partisi ext3 di hda5 mkfs.ext3 /dev/hda5 Membuat partisi swap di hda6 mkswap /dev/hda6 Untuk mengaktifkan swap di partisi hda6 swapon /dev/hda6 Mount partisi Anda di sini. mount /dev/hda5 /mnt/gentoo Karena yang dibahas kali ini adalah installasi dari stage3, maka kita harus mengekstrak file ini. cd /mnt/gentoo tar -xvjpf /mnt/cdrom/stages/stage*.tar.bz2 stage3-* ini sesuai dengan yang ada di cdrom Anda. (note: ingat untuk modus “p” dalam tar yang mengektract file bersama dengan permission-nya).
/dev/cdroms/cdrom0 noauto,ro,user none defaults
/mnt/cdrom iso9660 00 /proc proc 00
Instalasi kernel Instalasi kernel sebenarnya ada dua cara, tapi kita memilih yang manual. USE=”bindist” emerge -K gentoo-sources cd /usr/src/linux cat /proc/config > .config make menuconfig (catatan emerge -K xxx adalah instalasi yang hanya berdasarkan package binary yang sudah ada di /usr/portage/ packages/All) Ganti konfigurasi kernel sesuai dengan keinginan masing masing, yang paling penting adalah, sesuaikan processor Anda. Kernel anda siap di-compile. make dep && make modules modules_install bzImage cp /usr/src/linux/arch/i386/boot/bzImage / boot/vmlinuz-2.4.20-xfs-r3 cp /usr/src/linux/System.map /boot/ System.map-2.4.20-xfs-r3 (nama kernel bisa disesuaikan dengan versi kernel Anda).
tar -xjvf /mnt/cdrom/snapshots/portage*.tar.bz2 -C /mnt/gentoo/usr (* = tgl dalam format yyyymmdd)
Selanjutnya instalasi cron dan syslog. Begitu banyak program cron, tapi yang kita pilih vcron. USE=”bindist” emerge -K vcron USE=”bindist” emerge -K sysklogd
Anda juga memerlukan boot manager kita pilih grub saja karena tampilannya begitu indah. USE=”bindist” emerge -K grub
Sekarang semua file telah ada. Anda sudah bisa memulai instalasi. mount -t proc proc /mnt/gentoo/proc chroot /mnt/gentoo/ /bin/bash env-update source /etc/profile – update profile anda beserta pathnya.
Instalasi grub telah berhasil dilakukan anda harus menjalankan grub dulu, dan tidak seperti lilo yang setiap ada perubahan harus dilakukan berulang-ulang, Anda hanya perlu memasukan grub ke dalam mbr dan Anda sudah bisa memakainya terus menerus. grub root (hd0,4) setup (hd0) (catatan hd0 = hda/sda, hd1 = hdb/ sdb, hd2 = hdc/sdc, demikan seterusnya)
edit fstab anda /dev/hda5 defaults /dev/hda6 sw
/ 01 none 00
ext3 swap
www.infolinux.web.id
Kemudian Anda harus membuat file grub.conf di /boot/grub/grub.conf dengan nano -w /boot/grub/grub.conf default 0 timeout 30 splashimage=(hd0,4)/boot/grub/ splash.xpm.gz title=Linux Gentoo Keren root (hd0,4) kernel (hd0,4)/boot/vmlinuz-2.4.20-xfs-r3 root=/dev/hda5 Dan yang terakhir yang perlu Anda lakukan adalah setting password dan hostname sebelum di-restart dan mengimplementasikan kernel Anda ke dalam sistem yang baru dibuat. Selamat, kernel Anda sudah siap dipakai. Barangkali, Anda menginginkan pengubahan tertentu untuk membuat Linux Anda lebih personal. Sebagai contoh, gantilah hostname Anda. Kemudian, installah berbagai paket lain. Untuk menginstallasi package kde (paket yang pasti ada) atau gnome (tergantung dari CD gentoo Anda) Anda perlu restart dulu untuk masuk ke sistem Anda dan masukan CD2. mount /dev/hdd /mnt/cdrom cp -R /mnt/cdrom/packages /usr/portage/ packages USE=”bindist” emerge -K kde untuk menginstal KDE USE=”bindist” emerge -K gnome untuk menginstal gnome jika disertakan USE=”bindist” emerge -K openldap untuk menginstal openLDAP Jika Anda adalah salah satu dari sekian banyak orang yang mempunyai akses Internet yang cukup, maka Anda bisa memanfaatkan repository dari Gentoo yang cukup lengkap dan yang perlu dilakukan adalah menunggu update dan mengcompile ulang program Anda. Akhir kata, selamat mencoba dan menikmati rasanya membuat Linux dari tahap yang cukup dasar. Dody Wijaya ([email protected])
INFOLINUX MARET 2004
69
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Extreme Programming dengan Ant
Extreme Programming dengan Ant Bagi Anda yang menerapkan extreme programming, berbagai tools siap pakai sudah dapat Anda gunakan. Salah satunya adalah dengan Ant. Dengan extreme programming dan Ant, pembuatan aplikasi besar menjadi lebih menyenangkan.
Berdasarkan empat acuan di atas, Kent Beck membuat 5 prinsip lagi, yaitu: Rapid Feedback Assume Simplicity Incremental Changes Embrace Change Quality Work Kent Beck juga menerangkan mengenai 4 dasar cara praktis pengembangan, yaitu: Coding Testing Listening Designing Di mana semua cara praktis tersebut mengekspresikan 12 area, yaitu: Planning Game Small Releases Simple Design Testing Continous Integration
Dari semua teori XP yang ada, yang menarik dari semua ini adalah adanya kedekatan antara open source dengan XP. Keduanya merupakan ideologi yang kuat sekali yang memungkinkan terjadinya kolaborasi berdasarkan sesuatu yang sering terjadi yang disebabkan oleh kelemahan manusia, meliputi ketidakmampuan untuk mengembangkan sebuah kode yang sempurna, asistensi antar pengembang untuk mencari dan menyelesaikan masalah dalam coding. Dari semua area XP, penulis akan membahas dan menerangkan 2 area saja yaitu Automated Testing dan Continous Integration untuk artikel ini, dan membahas 1 Java Open Source project yang terkenal yang dapat digunakan untuk implementasi XP, yaitu Ant. Ant membuat Java menjadi sangat bernilai. Ingin tahu nilainya, cobalah gunakan Ant untuk pekerjaan sehari-hari.
memiliki 2 buah desain dan setelah dilakukan testing, kita hendak memindahkan salah satu desain ke desain yang lain, proses ini disebut dengan refactoring. Umumnya bila automated testing telah berjalan dengan baik, code dari desain yang satu ke desain yang lain akan dapat dipindahkan dengan mudah. Untuk melakukan automated testing ini, banyak cara yang dapat dilakukan, penulis umumnya menggunakan 2 metode pendekatan yaitu unit testing dan unit acceptance testing. Dua metode ini dilihat dari sisi management level, padahal sesungguhnya yang harus dilakukan dalam testing itu adalah integration testing, functional testing, dan auxilary testing (performance testing, regresion testing), di mana semua testing ini akan meyakinkan bahwa code bekerja dengan baik. Saat ini ada beberapa tools pendukung yang membantu automated testing ini, yaitu Junit (http://www.junit.org) untuk Unit Testing, Cactus (http://jakarta. apache.org/cactus) untuk Integration Testing, HttpUnit (http://www.httpunit. org) untuk Acceptance Testing, JUnitPerf
Automated Testing Malah dengan menggunakan automated testing memungkinkan untuk melakukan testing code, step ini dirasakan perlu terutama saat hendak melakukan integrasi. Automated Testing ini akan secara tidak langsung melakukan validasi terhadap code-code yang dikembangkan. Tanpa testing, biasanya tim akan mengira-ngira code yang dikerjakan adalah sesuai. Ada yang menarik dari XP ini, yaitu bila kita
www.infolinux.web.id
S
emenjak Kent Beck mengarang buku Extreme Programming Explained yang menerangkan tentang bagaimana perasaan berinteraksi saat membuat program. Extreme Programming (XP) menjadikan pembuatan aplikasi lebih berstruktur, dengan pendekatan penyelesaian berdasarkan dari masalah yang datang. Saat ini situs mengenai XP dapat dilihat melalui http:// www.xprogramming.com menerangkan banyak informasi mengenai XP. Kent Beck mendefinisikan, bahwa XP memiliki 4 acuan dalam pengembangan, yaitu: Communication Simplicity Feedback Courage
Eclipse dan Ant.
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
TUTORIAL Extreme Programming dengan Ant
dan JMeter (http://jakarta.apache.org/ jmeter) untuk Performance Testing.
Continous Integration memungkinkan dilakukan pengulangan testing secara berkesinambungan, sehingga tim dapat melihat progress dari sebuah pengembangan sistem, dan semua tim yakin bahwa hasil kerjanya adalah sesuai. Continous Integration ini memungkinkan terjadinya penekanan error karena dilakukannya testing secara rutin. Continous Integration ini akan terasa sekali bila dilakukan pengembangan yang menggunakan aplikasi yang saling tergantung. Apalagi para programer Java Open Source yang mana setiap komponen yang digunakan cenderung terus berubah dan bertambah, Continous Integration ini sangat diperlukan. Saat ini didunia Java Open Source ada 2 tools yang sangat bermanfaat yang dapat di-download secara cuma-cuma yaitu Ant (http://ant.apache.org) dan Maven (http:// maven.apache.org) . Maven ini berjalan diatas Ant. Maven asal mulanya merupakan sebuah project didalam Turbine, sebuah project framework populer di Apache Jakarta. Ant memungkinkan kita membuat semua aktivitas testing hanya dalam sebuah file XML, umumnya build.xml. Integratsinya dengan beberapa tools automated testing, memungkinkan kita melakukan continous integration secara otomatis, karena file script Ant ini akan secara berkelanjutan akan melakukan testing secara terus menerus. Malah kasus update component terbaru, dapat dilakukan dengan menggunakan Maven.
Bekerja dengan Ant Ant adalah sebuah project Java Open Source yang paling bernilai dalam dunia pengembangan Java. Project ini dikembangkan oleh James Duncan Davidson, semenjak 1.5, Ant tidak hanya mendukung Java, tetapi juga Python dan Perl.Untuk mendapatkan Ant edisi terbaru, dapat mengunjungi situsnya http:// ant.apache.org. Untuk menginstal Ant, caranya mudah sekali. Dapatkanlah binary distribution-nya,
Continous Integration
Proses kompilasi dengan eclipse.
kemudian extractlah file tersebut. Anggap saja direktorinya di /usr/java/jakarta-ant1.5.3. Setelah itu dilanjutkan dengan memodifikasi .bash_profile. Tambahkan 2 baris di bawah JAVA_HOME. JAVA_HOME=/usr/java/j2sdk1.4.2 (bila menggunakan JSDK 1.4.2) export $JAVA_HOME ANT_HOME=/usr/java/jakarta-ant-1.5.3 export $ANT_HOME PATH=$PATH:$ANT_HOME/ bin:$JAVA_HOME/java export $PATH setelah selesai coba lakukan relogin terhadap account yang dimodifikasi, ketik Ant di console. Maka akan keluar sebuah pesan kesalahan seperti di bawah ini: Buildfile: build.xml does not exist! Build failed Ini artinya Ant sudah terinstal, dan siap digunakan untuk pengembangan.
Ant Console Development Memulai sebuah project dengan dengan Ant untuk pemula terkadang sulit, karena harus membaca tag-tag XML yang harus didefinisikan dahulu, tetapi tidak perlu
www.infolinux.web.id
khawatir, karena penulis telah membuat sebuah ant-init.zip, sebuah archive file siap pakai sehingga bisa digunakan untuk project Java baru. Ant-init ini sudah siap digunakan project Java standalone ataupun menggunakan Eclipse IDE. Bila file ini telah di-extract, seorang programer tinggal memindahkan package aplikasi Javanya ke direktori /src/java. Misalnya kalau package tersebut adalah org.blueoxygen.cimande, maka maka di bawah direktori java akan ada file file *.java di /java/org/blueoxygen/cimande. Setelah itu lakukan modifikasi build.xml yang disertakan (terdapat di directory build) editlah tag di bawah ini: <property name=”project.fullname” value=”Cimande Project”/> <property name=”project.name” value=”cimande”/> <property name=”project.version” value=”0.2b”/> Tag ini yang nantinya akan menghasilkan sebuah file cimande-0.2b.jar. Kemudian modifikasi tag di arena javadoc, tag ini akan membuat javadoc secara otomatis. <javadoc sourcepath=”${src.java.dir}” destdir=”${javadocs.destdir}” packagenames=”org.blueoxygen.
INFOLINUX MARET 2004
71
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
source akan diarahkan ke directory src. Sedangkan hasil compile akan ditaruh di direktori /bin/classes. Cobalah masuk ke directory build, dan arahkan mouse kamu ke file build.xml (build.xml akan diberi icon semut), dan lakukan click kanan, terus pilihlah Run Ant. Secara otomatis akan keluar menu, coba pilihlah build, build akan mengcompile source code, dan meng-generate sebuah java archive sesuai dengan tag modifikasi diatas. Bila berhasil di-console Eclipse akan keluar lokasi di mana file .jar itu dibuat. Untuk membuat javadoc, dapat dilakukan cara di atas, dengan memilih target javadoc, tetapi Eclipse memiliki kemampuan untuk membuat Javadoc dengan Javadoc Wizard-nya.
Penggunaan Ant di dunia nyata Dalam pengembangan sesungguhnya, Ant ini bekerja baik sekali dengan CVS, sayang sekali module Subversion (CVS versi terbaru) belum ada. CVS memiliki beberapa kekurangan yang telah diperbaiki oleh Subversion. Saat ini, walaupun modul untuk subversion telum tersedia, dalam waktu singkat, harapannya akan segera tersedia. Ant ini adalah solusi yang efektif untuk pengembangan secara tim.
Berterimakasihlah dengan tim IBM yang telah membuat Ant terintegrasi penuh dengan Eclipse, sehingga kita tidak perlu report menginstall plug-ins-nya. Ant-ini yang penulis buat ini dapat juga bekerja dengan baik di Eclipse IDE versi 2.x dan 3.x. Hanya cara pendekatannya tidak sama dengan membuat sebuah project Java di Eclipse. Untuk melakukannya cobalah buat sebuah project Java, tetapi setlah directorinya bukan default tetapi mengarah ke direktori di mana ant-init ini di-extract. Setelah itu klik Next, dan Eclipse secara otomatis akan mencari semua setting untuk memulai project. Direktori lib akan dibaca, sehingga semua .jar yang ada, langsung terinclude. File source code dan binary secara otomatis akan dipisah, untuk
72
INFOLINUX MARET 2004
Menggunakan Ant-Init dengan Eclipse
Eclipse menjalankan unit testing.
www.infolinux.web.id
Umumnya setiap anggota tim, akan melakukan checkout intial project structure dari server baik itu CVS maupun Subversion, kemudian tim akan bekerja secara lokal di komputer masing-masing. Setelah selesai, programer tersebut menjalankan Ant, setelah semua sukses, baru dikirim ke server CVS. Dengan demikian, pembuatan suatu aplikasi dapat dibagi-bagi sehingga waktu pengerjaan menjadi lebih singkat. Setelah update selesai, tim member lainnya tinggal update repository lokal mereka, dan secara otomatis code rekan tim yang lain pindah ke repository-nya di PC-nya itu. Jangan mengirim code yang belum dicoba ke CVS server. Hal ini merupakan suatu etika yang perlu dipahami dalam pengerjaan software secara teamwork. Setiap programer memiliki tanggung jawab masing-masing, termasuk tanggung jawab agar kerja sama tim tetap baik. Apabila seorang programer mengirimkan code yang belum teruji, maka ketika terjadi kesalahan, pihak yang melakukan merger akan mengalami kesulitan. Ant dapat diintegrasikan dengan Junit untuk melakukan unit testing, umumnya sebelum kode terbaru dikirim ke server CVS, Junit akan menghasilkan sebuah mekanisme unit testing. Frans Thamura ([email protected])
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Sistem Linux dengan Syscalltracker
Mengawasi Sistem Linux dengan Syscalltracker Kadang kita ingin mengawasi sistem Linux kita secara detail. Pasang log di sana-sini, pasang intrusion detection, tool integrity checking, dan sebagainya. Tapi kadang terasa kurang memadai karena programnya bisa diakali, diutak-atik user, bahkan di-disable. Terus bagaimana? Ada pengawas sistem di level kernel dengan tingkat keandalan tinggi. menjalankan program shell script? Berarti Anda memanggil system call exec() atau execve(). Jadi hampir semua aksi Anda diterjemahkan menjadi system call. Inilah ide dasar mengapa pelacakan berbasis system call bisa menjadi senjata ampuh pelacakan sistem. Tertarik? Anda ingin mencoba? Kita langsung percobaan saja. Penulis di sini menggunakan distribusi Red Hat 7.3. Arahkan browser ke http://syscalltrack. sourceforge.net dan download tarball-nya dari bagian “Download”. Penulis menggunakan paket syscalltrack-0.82.tar.gz yang berukuran kurang lebih 500 kilobyte. Uraikan paket ini misal di direktori /usr/src. # tar zxvf syscalltrack-0.82.tar.gz -C / usr/src Berikutnya cek apakah Anda sudah memiliki source code kernel Linux di /usr/src.
S
uatu hari penulis sedang “nongkrong” di milis user openMosix. Kebetulan bahasannya tentang seorang user yang menanyakan kejanggalan sistem akibat patch kernel. Lalu user lain di milis itu mencoba membantu merekonstruksi permasalahan dengan bantuan tool analisis bernama Syscalltracker. Saya langsung bertanya-tanya, “Tool apaan nih? Bisa dibuat apa aja?” Saya sendiri mendengar nama serem seperti ini langsung membayangkan mekanisme yang “njelimet” serta syntax yang aneh-aneh. Syscalltracker (http://syscalltrack. sourceforge.net) adalah suatu program, persisnya modul kernel, untuk membantu melacak system call yang terjadi dalam mekanisme internal kernel Linux. Gunanya apa? Secara umum bisa kita gunakan untuk melacak penyebab keganjilan pada sistem yang sukar dipecahkan program biasa. Contoh mudahnya begini. Misal Anda memiliki suatu file konfigurasi di direktori / etc. Nama file ini misal abc.conf. Anda sudah mengeset isi file ini untuk setting suatu program yang baru Anda instalasi. Sedang enak-enaknya program tersebut berjalan, isi file konfigurasi ini tiba-tiba hilang. Siapa yang dicurigai? Program ini sendiri? Script pembersih file bawaan distro? Atau jangan-jangan ada exploit? Buka log kiri-kanan, jalankan ‘ps’, intip dengan ‘who’, sepertinya si Linux normal saja. Buat file konfigurasi lagi, ternyata hilang lagi. Kesel kan? Jalan keluar dari permasalahan seperti di atas terletak pada fakta, bahwa semua aksi atau perintah pada sistem pasti menjalankan satu atau lebih prosedur internal sistem atau yang lebih dikenal dengan system call. Anda menghapus file? Berarti Anda memanggil system call unlink. Anda
# ls -al /usr/src/linux-2.4* Jika belum ada isi source kernel, ambil CD Linux Red Hat, lalu instalasi dengan perintah berikut ini: # rpm —replacepkgs -Uvh /path/to/your/ RPM/kernel-source-2.4.18-3.i386.rpm Perlu diperhatikan, syscalltracker harus di-complile berdasarkan source kernel yang sedang dijalankan pada sistem Linux Anda. Contohnya, jika Anda memakai kernel standar bawaan Red Hat Linux 7.3, maka Anda harus men-compile dengan source code dari kernel Red Hat Linux 7.3. Untuk itulah kita instalasi RPM dari source code kernel seperti di atas. Atau jika Anda menggunakan source code kernel bukan bawaan distro, maka nantinya arahkan kompilasi syscalltracker ke source kernel tersebut.
Homepage Syscalltracker.
www.infolinux.web.id
INFOLINUX MARET 2004
73
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Sistem Linux dengan Syscalltracker
linux=/path/ke/direktori/source/kernel/ anda) # make && sudo make install
Setelah kompilasi sukses, Anda akan menemui dua module berikut: /lib/modules/2.4.18-3/syscalltrack-0.82/ sct_rules.o /lib/modules/2.4.18-3/syscalltrack-0.82/ sct_hijack.o Ini adalah dua module utama yang akan menangani pelacakan sistem Anda. Berikutnya Anda perlu me-load dua module ini ke dalam kernel. Sudah disediakan shell script oleh pembuat sycalltracker untul hal ini. # sct_load
Module Syscalltracker di load.
Catatan lain, pastikan Anda menggunakan versi compiler (gcc) yang sama dengan yang digunakan untuk mencompile kernel Anda. Jadi jika Anda menggunakan gcc-2.95 untuk kompilasi kernel, gunakan versi 2.95 juga untuk kompilasi syscalltracker. Untuk contoh dalam tulisan ini, Anda cukup menggunakan gcc bawaan Red Hat Linux karena diasumsikan Anda menggunakan kernel standar bawaan Red Hat. Selain membutuhkan source kernel, untuk mempermudah kompilasi sycalltracker, Anda juga butuh file konfigurasi kernel dari distribusi Red Hat ini. Coba cek isi direktori /boot. # ls -al /boot/config*
aman dalam kebanyakan kasus. Setelah paket kernel terinstalasi, copy file confignya seperti cara di atas. Atau Anda ingin file ‘.config’ hasil konfigurasi manual? Caranya mudah. Pertama pindah ke direktori source code kernel Linux Anda, lalu jalankan mrproper dan menuconfig. # cd /usr/src/linux-2.4.18-3 # make mrproper # make menuconfig Lakukan setting pada kernel, lalu “Exit”. Otomatis di direktori source kernel Anda akan tercipta file ‘.config’. Sekarang kita langsung compile dan instalasi syscalltracker. # cd /usr/src/syscalltrack-0.82 # ./configure(atau ./configure –with-
Lalu cross check apakah dua modul ini sudah dimuat, dengan perintah lsmod. Anda mestinya akan menemukan keluaran yang mengandung baris berikut. # lsmod Module Size Used by Not tainted sct_rules 257788 2 sct_hijack 110176 1 [sct_rules] Selamat! Anda sukses me-load dan menjalankan syscalltracker. Tapi ini masih belum berfungsi maksimal. Anda perlu menulis rule yang akan dimuat oleh syscalltracker dan dijalankannya. Penulis akan memberi contoh satu rule sederhana. rule {
Jika ada output semisal config-2.4.18-3, maka Anda tinggal copy file ini ke /usr/src/ linux-2.4. Ubah namanya menjadi ‘.config’. # cp /boot/config-2.4.18-3 /usr/src/linux2.4/.config
Sesuaikan paket dengan arsitektur prosesor Anda. Jika Anda memakai sistem multiprocessor, pakai tipe ‘-SMP’. Jika memerlukan PCMCIA, pilih nama kernel yang mendandung kata ‘-PCMCIA’. Namun secara umum pilihan ‘i386’ sudah cukup
74
INFOLINUX MARET 2004
Jika file ini hilang atau tidak ditemukan, cara termudah adalah instalasi ulang paket kernel. # rpm -Uvh /path/to/your/RPM/kernel2.4.18-3.i386.rpm
Syscalltracker me-load rule yang telah didefinisikan.
www.infolinux.web.id
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Tiap rule pada syscalltracker dimulai dengan reserved word “rule”. Lalu kurung kurawal “{“. Berikutnya Anda set, pada system call yang mana syscalltracker akan men-intercept pada variable syscall_name=. Ada banyak system call yang bisa Anda awasi. Untuk daftarnya coba lihat isi file / usr/local/lib/syscalltrack-0.82/syscalls.dat2.4.18-3. Makna tiap system call kadang ada yang mudah ditebak dari namanya, ada juga yang agak sulit. Untuk contoh ini, saya ambil misal system call unlink(). System call ini pasti dijalankan setiap kali ada proses penghapusan file. Saya pikir cukup menarik untuk percobaan awal, jadi idenya kita ingin tahu sistem Linux kita menghapus file apa saja saat sedang berjalan. Pada variable rule_name, Anda tulis nama untuk rule ini. Anda bisa secara bebas mengisinya, misal saja Anda namakan unlink_rule1. Lalu pada section action, Anda tulis tindakan yang akan dilakukan. Syscalltraker mendukung beberapa action, tapi di sini kita gunakan tipe LOG. Action ini akan
}
Satu Konsole menjalankan "sctrace /bin/ls", Konsole lain melihat isi log.
menulis hasil pelacakan ke device /dev/ sct_log. Sedang direncakan untuk bisa melakukan intercecpt syscall lalu melakukan rewriting. Jika rencana ini bisa diimplementasikan, Anda bakal bisa memainkan sistem sesuka Anda. Untuk action LOG, Anda perlu mendefinisikan format output. Ada beberapa macro yang bisa membantu Anda mendapatkan output yang diinginkan, yaitu: ruleid: nomor dari rule yang sesuai syscall yang diintercept. sid: nomor dari syscall yang diintercept.
sname: nama dari system call. params: parameter dari system call. pid: ID dari proses yang memanggil syscall. uid: ID dari user yang menjalankan proses ini. euid: user ID efektif dari user yang menjalankan proses. suid: user ID tercatat yang menjalankan proses. gid: ID dari group dari user yang menjalankan proses ini. egid: group ID efektif dari user yang menjalankan proses ini. sgid: group ID tercatat dari user yang menjalankan proses ini. comm: nama dari perintah yang dijalankan oleh proses ini. retval: nilai kembalian dari system call. Berguna untuk LOG bertipe “after”.
Untuk contoh ini, saya menggunakan: log_format {%comm : %params delete by %euid —> %suid} Artinya, saya menginginkan dicatat perintah yang menjalankan system call unlink(), lalu user id efektif dan user id tercatat.
Pada variabel when, kita bisa definisikan “before” atau “after”. Perbedaannya cukup
INFOLINUX MARET 2004
75
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Sistem Linux dengan Syscalltracker
Perintah di atas akan menampilkan output “Successfully uploaded rules from file ‘/tmp//coba.conf’ “. Jika tidak ada output seperti ini, cek ulang rule Anda. Anda bisa juga membaca dokumentasi yang terletak pada direktori hasil ekstrak source code syscalltracker, subdirektori doc. OK, semua sudah dikerjakan. Tinggal menguji coba. Buka dua console, misal xterm pada X Window. Pada satu console, jalankan perintah sctlog. # sctlog Sctlog akan menampilkan ke stdout semua hasil intercept system call (syscall), jika terkena rule yang telah Anda definisikan. Di console lain, misal Anda lakukan sebagai berikut: # cd /tmp # touch ./hehe (perintah untuk membuat file bernama hehe) # rm -f ./hehe Maka pada console output sctlog, akan ada keluaran sebagai berikut: “rm” : “./hehe” delete by 0 —> 0 Dari sini Anda bisa tahu, bahwa telah ada action sebagai berikut. Perintah “rm” dengan parameter “./hehe” menjalankan system call unlink() alias menghapus file. Perintah dijalankan dengan user ide efektif 0 alias root. Satu lagi contoh rule seperti berikut ini. rule { syscall_name = unlink rule_name = cegah_delete filter_expression {PARAMS[1]==”/etc/ passwd” && UID == 0} action {
76
INFOLINUX MARET 2004
type = FAIL error_code = -1 } when = before } Contoh rule kedua ini mirip dengan contoh rule pertama, tapi di sini kita menggunakan action FAIL. Khusus untuk FAIL, kita harus mendefinisikan “error_code” alias nilai kembalian system call. Di sini saya pakai nilai -1 alias “operation not permited”. Daftar lengkap error code bisa Anda lihat di /usr/include/ asm/errno.h. Pada baris “filter expression”, saya mendefinisikan kondisi bahwa pengecekan dilakukan jika parameter pertama / PARAMS[1] (file yang akan dihapus) adalah /etc/passwd. Catatan: ini mungkin tidak sempurna, mengingat bisa saja delete dilakukan sbb “cd /etc && rm -f ./passwd’. Variable UID dicek apakah sama dengan 0, berarti pengecekan dilakukan terhadap user ide root. Sekarang coba load ulang rule di atas, dengan cara sebagai berikut. # sct_config delete # sct_config upload ./coba.conf Perhatikan bahwa urutan rule juga penting. Misalnya Anda tulis rule “cegah_delete” sebelum “unlink_rule1”. Jika ada operasi perintah “rm -f /etc/ passwd”, maka operasi “delete” akan match dengan rule “cegah delete” terlebih
jelas. Jika “before” pencatatan akan dilakukan sebelum system call dijalankan. Jika “after”, pencatatan akan dilakukan setelah system call dijalankan. Sebagai penutup rule, tulis kurung kurawal tutup “}”. Seluruh rule ini bisa Anda tulis pada sembarang file text. Misal Anda namai coba.conf dan Anda tempatkan di /tmp. Berikutnya Anda perlu meload rule ini ke dalam syscalltracker. # sct_config upload /tmp/coba.conf
Syscalltracker mencatat aktivitas fork dan delete.
www.infolinux.web.id
dahulu dan operasi akan digagalkan. Selanjutnya proses logging akan diabaikan. Tapi jika Anda balik (“unlink rule1” terlebih dahulu daripada “cegah_delete”), maka operasi delete hanya akan di-log tanpa dicegah. Selamat jika Anda berhasil sampai di sini, karena Anda sudah satu langkah dalam usaha menginvestigasi sistem. Memang tidak secanggih sistem intrusion detection lainnya, tapi syscalltracker menawarkan fleksibilitas yang cukup tinggi. Sebagai tambahan, jika Anda ingin melihat rule yang telah dimuat, ketikkan: # sct_config download Untuk menghapus semua rule yang telah dimuat, ketikkan: # sct_config delete Terakhir, jika Anda tidak lagi memerlukan syscalltracker, Anda bisa unload module-nya dengan perintah: # sct_unload Ada kemungkinan perintah ini gagal dengan output “Device or resource busy”. Jika demikian, ada kemungkinan modul syscalltracker masih berjalan. Biarkan saja sementara dan coba lagi beberapa saat kemudian. Modul syscalltracker ini tidak berbahaya bagi sistem dan tidak akan menambah beban kerja kernel secara berlebihan (kecuali ada rule sangat banyak). Jadi cukup aman sekalipun Anda tidak unload. Mulyadi Santosa ([email protected])
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
TUTORIAL OpenOffice.org Draw
Menggambar dengan OpenOffice.org Draw OpenOffice.org bukan sekadar aplikasi kantor biasa. Anda pun dapat menuangkan kreativitas Anda dalam menggambar dengan OpenOffice.org draw.
Pengaturan text.
dapat digunakan untuk membuat berbagai bagan ataupun diagram. Bagi Anda yang senang bermain-main atau ingin membuat poster sederhana, rasanya Draw bisa menjadi tool yang baik.
Text Kita akan segera memulai bekerja dengan text. Perhatikanlah toolbar yang terletak di kiri layar tersebut, dan kliklah tombol dengan logo T di dalamnya. Setelah itu, klik dan draglah area gambar Anda untuk menyediakan tempat bagi text Anda. Sebuah kotak dengan kursor di dalamnya akan segera terlihat. Anda bisa memulai mengetik seperti biasa. Anda dapat mengubah fontnya apabila dirasa kurang sesuai keinginan. Anda pun dapat menempatkan text dalam posisi rata kiri, rata kanan, tengah, ataupun rata kiri kanan, sama seperti halnya ketika Anda mengetik dengan Writer. Kliklah pada area kosong begitu Anda selesai dengan text Anda. Klik gandalah text untuk mengeditnya kembali. Selanjutnya, masih dengan text, kita akan membuat text kedua yang spesial. Text
S
elain datang dengan Writer, Calc dan Impress, OpenOffice.org pun datang dengan Draw, sebuah aplikasi untuk menggambar. Anda dapat membuat bagan, diagram, bentuk 3D, dan berbagai bentuk kreatif lain, untuk kemudian dapat disimpan menjadi format EPS, BMP, EMF, GIF, JPEG, dan lainnya. Apabila diinginkan, karya Anda juga bisa diekspor ke format flash ataupun PDF. Bukalah OpenOffice.org draw dengan memilihnya dari menu desktop Anda. Anda juga bisa membukanya dengan membuka Writer terlebih dahulu, dan memilih File| New|Drawing. Sebuah interface yang mirip dengan Writer akan segera Anda lihat. Bedanya, sebagian besar kontrol Anda terletak di toolbar kiri. Di toolbar inilah Anda bisa memilih bentuk-bentuk tertentu untuk memvisualisasikan angan-angan Anda. Apabila jumlah tombol terlihat terlalu sedikit, jangan khawatir, karena masingmasing tombol umumnya dapat diklik dan akan membawa Anda ke berbagai tombol lainnya. Draw datang dengan interface sederhana dan intuitif. Bagi Anda yang serius bekerja, Draw
yang kedua akan berusaha untuk menyesuaikan ukurannya dengan tempat yang tersedia. Dengan demikian, Anda tidak perlu berpusing-pusing untuk menentukan ukuran font yang akan digunakan. Pokoknya, berapapun tempatnya, ukuran text akan disesuaikan. Untuk itu, klik dan tahanlah tombol dengan logo T di dalamnya. Sebuah dialog kecil akan muncul di sebelah tombol T tersebut. Pilihlah tombol kedua dari kiri yang berpetunjuk Fit Text to Frame. Seperti sebelumnya, buahlah kotak di dalam area gambar Anda. Dan mulailah mengetik. Setelah selesai, kliklah pada area kosong di lembar kerja Anda. Seperti sulap, ukuran setiap karakter akan disesuaikan dengan ukuran yang tersedia. Pembuatan text yang berikutnya akan lebih sedikit menarik, terutama apabila Anda ingin membuat komik sederhana. Kali ini, kita akan membuat text dalam balon, seperti text ketika tokoh dalam komik berbicara. Tahanlah tombol T tadi, dan pilihlah tombol ketiga dari kanan pada dialog yang muncul. Drag-lah di area kerja Anda. Dan
Pembuatan persegi.
www.infolinux.web.id
INFOLINUX MARET 2004
77
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Bangun-bangun 3D.
jadilah sebuah balon. Anda tinggal mengisikan text di dalam balon tersebut.
Rectangle dan Ellipse Selesai dengan text, kita akan bekerja dengan rectangle dan ellipse. Setidaknya, Draw menyediakan delapan bentuk rectangle untuk kita pilih. Mulai dari persegi panjang terisi dan kosong, persegi terisi dan kosong, persegi panjang dengan sudut tumpul terisi dan kosong serta persegi dengan sudut tumpul terisi dan kosong. Pilihlah tombol yang bergambar persegi. Cara untuk meletakkan rectangle tersebut ke area kerja sama dengan cara meletakkan text. Pilih rectangle yang diinginkan, kemudian klik dan draglah di area kerja Anda. Sebuah rectangle pun tersedia. Anda bisa mencoba berbagai kombinasi rectangle tersebut. Setelah itu, kita akan bermain dengan ellipse. Yang satu ini lebih seru untuk dimainkan. Pilihlah tombol yang bergambar elips di dalamnya. Banyak variasi elips yang disediakan untuk kita. Elips yang terisi ataupun yang kosong. Elips yang sempurna maupun elips yang tidak sempurna. Cara untuk meletakkannya pun sama dengan text dan rectangle. Namun, perhatikanlah cara untuk menggambar elips tidak sempurna. Sebagai contoh, pilihlah tombol ketiga dari kiri baris pertama. Kita akan menggambar elips yang kehilangan sebagian dirinya. Ketika didrag, yang terlihat tetaplah elips. Lepaskan tombol mouse Anda, dan gerakkanlah ke dalam elips yang baru saja
78
OpenOffice.org Draw
INFOLINUX MARET 2004
Penggunaan konektor untuk
Anda buat. Anda bisa menggerakkan sebuah garis lurus yang muncul dari titik tengah elips. Garis ini akan menjadi awal elips Anda. Kliklah di mana Anda inginkan. Garis vertikal adalah ide yang baik. Setelah Anda melakukan klik tombol mouse dan menggeser mouse Anda sedikit, maka keseluruhan elips akan hilang, dan yang tersisa hanyalah garis yang baru saja Anda buat tersebut. Geserlah mouse untuk membuat garis akhir elips Anda. Kliklah di mana Anda inginkan, dan elips pun selesai dibuat.
Bangun 3D Cukup dengan bangun 2D, kita akan mulai dengan bangun 3D. Kliklah tombol di bawah tombol elips. Tahanlah tombol tersebut, dan Anda akan menemukan delapan bentuk yang datang bersama Draw. Walaupun cara meletakkannya beda seperti bangun-bangun sebelumnya, Anda akan menemukan bahwa apapun bangun yang ingin Anda letakkan di area kerja, ketika Anda sedang mendrag mouse Anda, yang terlihat adalah bentuk kotak 3D. Jangan khawatir. Setelah tombol mouse Anda lepaskan, bangun yang sesungguhnyalah yang akan muncul. Cobalah menyusun berbagai kombinasi dari bangun-bangun 3D tersebut.
Menghubungkan dua bangun Anda dapat membuat garis penghubung di antara dua bangun yang Anda buat.
www.infolinux.web.id
Fasilitas ini menyerupai fasilitas Microsoft Visio ketika Anda membuat diagram seperti DFD. Ketika salah satu atau kedua bangun digeser, maka garis penghubungnya akan tetap mengikuti. Untuk itu, bentuklah dua bangun sesuai keinginan, dan pilihlah tombol dengan petunjuk Connector. Draw menyediakan banyak konektor yang bisa Anda gunakan. Pilihlah salah satu. Tempatkan kursor mouse Anda pada bagian tengah sisi bangun pertama sampai terlihat tempat untuk meletakkan konektor. Kemudian, lakukan hal yang sama pada bangun kedua. Kedua bangun pun terhubung. Kemana pun salah satu atau kedua bangun tersebut Anda geser, keduanya akan selalu terhubung. Untuk mempermudah penggambaran, Anda bisa menggunakan bantuan grid. Pilihlah menu View|Grid, dan pilihlah cara penampilan grid dari berbagai pilihan yang ditampilkan. Kemudian, Draw juga menyediakan berbagai efek untuk mengubah ukuran, merotasi, flip, transparansi, dan lainnya. Cukup pilih saja tombol kelima dari bawah, atau yang berpetunjuk Effects. Draw adalah aplikasi penggambar serbaguna. Pekerja kantor bisa memanfaatkannya, sama seperti Anda yang ingin menuangkan kreativitas Anda. Dan yang paling penting: mudah. OpenOffice.org Draw sangat mudah untuk digunakan. Hasilnya pun diekspor ke berbagai format. Selamat berkreasi! Noprianto ([email protected])
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
TUTORIAL PHP-GTK
PHP-GTK Ketika dilahirkan, PHP adalah sosok bahasa pemrograman khusus untuk lingkungan web. Sejak dilahirkan hingga sekarang, popularitas PHP sangat luar biasa. Rasanya tidak ada satu orang pun yang berkecimpung dalam dunia Internet tidak mengenal PHP, bahkan PHP sudah dianggap bahasa pemrograman yang wajib dikuasai oleh setiap programer web.
D
ari sekian banyak programer Internet di dunia, ada seorang yang bernama Andrei Zmievski yang memiliki ketertarikan lain pada PHP. Dia melihat bahwa PHP bisa juga dijadikan sebagai bahasa pemrograman untuk lingkungan desktop. Ide awalnya adalah ketika dia melihat implementasi GTK+ pada Python dan Perl. Kalau GTK+ bisa diimplementasikan pada Python dan Perl, mengapa tidak jika GTK+ diimplementasikan pada PHP. Andrei Zmievski lalu meminta bantuan James Henstridge (pengembang PyGTK) untuk mengimplementasikan GTK+ pada PHP. Di bulan Agustus 2000, lahirlah PHPGTK. PHP-GTK adalah ekstension PHP pertama yang menjadikan PHP sebagai bahasa untuk lingkungan desktop. Awalnya PHP-GTK hanya bisa berjalan di lingkungan Linux saja, namun setelah Andrei Zmievski menyelesaikan sebagian proyek PHP-GTKnya, dia menunjukkan kode PHP-GTK kepada Frank Kromann, dan dengan bantuan Frank Kromman, PHP-GTK bisa dijalankan di lingkungan Windows juga.
Instalasi PHP-GTK di Linux PHP-GTK bisa di-download di http:// gtk.php.net/download.php/. Untuk Linux pilih file source code PHP-GTK. Karena PHP-GTK adalah ekstension PHP dan tidak bisa berdiri sendiri, maka sebelum menginstal dan menggunakan PHP-GTK, Anda harus memiliki PHP terlebih dahulu. Anda harus menginstal PHP sebagai binary/ CGI bukan sebagai Apache Modul. Jika Anda belum memiliki PHP, silakan download source code PHP di http:// www.php.net/downloads.php. PHP yang harus Anda gunakan minimal versi 4.2.3. Secara umum, instalasi PHP adalah sebagai berikut: Extract file source code PHP, misalkan file source code PHP adalah php-
4.3.3.tar.gz. #tar -xvzf php-4.3.3.tar.gz Akan terbentuk sebuah direktori yang berisi source code PHP. Misalkan direktorinya adalah php-4.3.3. Masuklan ke dalam direktori tersebut. #cd php-4.3.3 Jalankan skrip configure untuk memeriksa sistem dan mempersiapkan file-file untuk proses kompilasi. #./configure Anda bisa memberikan parameter -withmysql agar PHP mendukung MySql, tapi jangan gunakan opsi -with-apache, misalkan: #./configure —with-mysql Jalankan skrip make untuk melakukan proses kompilasi source code PHP. #make Jalankan skrip make sekali lagi dengan opsi install untuk menginstal file-file hasil kompilasi ke direktori yang bersesuaian. #make install Bisa terjadi proses instalasi PHP tidak berjalan dengan baik. Jika ada masalah, Anda dapat mencari jawabannya di http:// www.php.net. Setelah instalasi PHP selesai, Anda dapat melanjutkannya dengan proses instalasi PHP-GTK. Secara umum instalasi PHP-GTK adalah sebagai berikut: Extract file source code PHP-GTK, misalkan file source code PHP-GTK adalah php-gtk-0.5.2.tar.gz. #tar -xvzf php-gtk-0.5.2.tar.gz Akan terbentuk sebuah direktori yang berisi source code PHP-GTK. Misalkan direktorinya bernama php-gtk-0.5.2.
www.infolinux.web.id
Masuklah ke dalam direktori tersebut. #cd php-gtk-0.5.2 Jalankan skript buildconf untuk mensetup file-file yang diperlukan dan membuat skrip configure. #./buildconf Jalankan skrip configure yang telah dibuat secara otomatis pada proses sebelumnya. #./configure Jalankan skrip make untuk mengkompilasi source code PHP-GTK. #make Jalankan skrip make lagi dengan opsi install untuk menginstal PHP-GTK pada direktori default extention PHP. #make install Pada beberapa kasus, instalasi tidak berjalan mulus. Misalkan pada RH 7.3 ke atas, proses kompilasi tidak berjalan dengan sempurna dan berhenti di tengah jalan. Jika hal tersebut terjadi, cobalah untuk mengubah isi file php.ini. Biasanya file php.ini ada di direktori /etc/php.ini. Tapi jika tidak coba cari dengan cara: php -i | grep ini Buka file php.ini, dan cari statement sebagai berikut. memory_limit = 8MB Ubahlah nilainya menjadi 64MB, lalu jalankan kembali skrip make. Jika masih ada kesalahan atau ada masalah lain selama proses instalasi, silakan untuk mencari penyelesaiannya di http:// gtk.php.net. Jika proses instalasi berjalan dengan baik, cobalah untuk masuk ke lingkungan XWindow, dan buka terminal emulator.
INFOLINUX MARET 2004
79
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
PHP-GTK
Masuk ke direktori test pada direktori phpgtk, dan jalankan file gtk.php sebagai berikut. php -q gtk.php Jika Anda melihat tampilan seperti Gambar 1, berarti proses instalasi PHP-GTK telah sukses dan siap untuk belajar PHPGTK.
Hello World Aplikasi PHP-GTK pertama yang akan Anda pelajari di sini adalah aplikasi ‘Hello World’. connect(‘destroy’, ‘shut down’); $mainwin->set_title(‘PHP-GTK :)’); $button = &new GtkButton(‘Hello World! Joy to the world’); $button->connect(‘clicked’, ‘shutdown’); $mainwin->add($button); $mainwin->show_all(); gtk::main();
if (!class_exists(‘gtk’)) { if (strtoupper(substr(PHP_OS, 0, 3) == ‘WIN’)) { dl(‘php_gtk.dll’); } else { dl(‘php_gtk.so’); } } Library PHP-GTK untuk Linux dan Windows berbeda, sehingga diperlukan pemeriksaan sistem operasi terlebih dahulu di awal skrip PHP-GTK. Namun jika Anda yakin bahwa skrip Anda hanya akan berjalan di Linux, maka pernyataan di atas bisa langsung memanggil library php_gtk.so tanpa harus memeriksa sistem operasi terlebih dahulu. $mainwin = &new GtkWindow();
Kemudian, kita menggunakan method connect() untuk mendaftarkan fungsi shutdown() sebagai handler. Handler adalah fungsi yang bertugas untuk menangani signal destroy yang dipancarkan oleh window $mainwin. Jadi ketika objek window $mainwin memancarkan signal destroy, maka fungsi shutdown() akan dipanggil. $mainwin->set_title(‘PHP-GTK :)’);
Simpanlah skrip tersebut dengan nama helloworld.php lalu ketik: #php -q helloworld.php
Pernyataan tersebut untuk menentukan judul window utama. $button = &new GtkButton(‘Hello World! Joy to the world’);
Jika Anda klik tombol “Hello World! Joy to the world”, maka skrip helloworld.php akan berakhir. Sekarang mari kita bahas skrip di atas. Seperti halnya skrip PHP, skrip PHP-GTK diawali dengan tag . Perhatikan pada bagian awal skrip yang diawali dengan pernyataan sebagai berikut:
Pernyataan di atas adalah membuat tombol. Untuk membuat tombol bisa dilakukan dengan membuat objek dari kelas GtkButton().$button->connect(‘clicked’, ‘shutdown’); Dengan menggunakan method connect(), signal clicked dihubungkan dengan fungsi shutdown(). $mainwin->add($button);
INFOLINUX MARET 2004
Kemudian semua objek ditampilkan pada layar. gtk::main(); Fungsi statik gtk::main() adalah kunci dan mutlak ada di bagian akhir skrip PHPGTK. Fungsi ini memberitahukan kepada PHP-GTK bahwa pembuatan interface sudah selesai, dan main loop dapat dimulai. Tanpa fungsi statis ini, maka skrip akan langsung berhenti sesaat setelah interface ditampilkan di layar.
Beberapa istilah seputar PHP-GTK Widget
Pernyataan tersebut berguna untuk membuat window utama dengan membuat objek dari kelas GtkWindow(). Perhatikan bahwa pembuatan objek menggunakan kata kunci new yang diawali dengan operator referensi &. $mainwin->connect(‘destroy’, ‘shut down’);
?>
80
Pernyataan di atas akan menempatkan $button pada $mainwin. $mainwin->show_all();
www.infolinux.web.id
Dalam lingkungan PHP-GTK, widget adalah user interface. Jadi user interface apa pun, dalam PHP-GTK disebut widget. Widget mungkin berwujud text box, label, frame, window atau komponen GUI lainnya. Semua GTK widget berasal dari kelas abstrak GtkWidget. Semua widget juga mewarisi method, signal, dan properties yang diimplementasikan pada GtkWidget. Dari sisi pandang programmer, suatu widget memiliki 5 bagian siklus hidup yaitu: Creation. Dalam lingkungan PHP-GTK, ini dilakukan dengan dembuat suatu objek. Contoh: $window = &new GtkWindow(); Placement. Ini merupakan langkah menambahkan / menempatkan suatu widget pada suatu container. Secara umum, sintak penulisan langkah ini adalah. $container->add($widget); atau $container->pack_start($widget); atau $container->pack_end($widget) Signal Connection. Ini merupakan langkah mengatur fungsi callback yang akan digunakan. Contoh: $widget->connect(“signal”, “my_func”); Dengan “signal” merupakan keadaan yang terdefinisi. Yang dimaksud
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
TUTORIAL PHP-GTK
terdefinisi adalah bahwa keadaan tersebut sudah terdaftar dalam PHPGTK, misalkan seperti clicked. Sedangkan “my_func” adalah subroutine atau fungsi yang akan dipanggil saat signal dipancarkan. Display. Ini menggambarkan apakah suatu widget akan ditampilkan atau tidak. Caranya sederhana, yaitu: $widget->show(); $widget->hide();
Container Suatu container adalah sebuah widget yang bisa menampung widget lainnya. Yang umum termasuk dalam kategori container adalah: GtkWindow, GtkBox, dan sebagainya. Selebihnya mareka persis sama dengan widget lainnya. Container pun bisa ditambahkan ke dalam container lain. Container diturunkan dari kelas dasar GtkContainer. GtkContainer sendiri diturunkan dari kelas GtkWidgetSignal dan Callback.
Dalam pemrograman GUI, sangat diperlukan adanya mekanisme untuk merespon suatu aksi atau tindakan yang dilakukan oleh user ataupun oleh sesuatu dalam skrip itu sendiri. Mengklik suatu tombol adalah salah satu contoh aksi yang umum dilakukan oleh user. Ketika user mengklik suatu tombol, maka harus ada respon atau reaksi dari skrip sesuai dengan tujuan tombol tersebut. Misalkan, tombol EXIT berguna untuk menghentikan jalannya skrip. Untuk keperluan tersebut, harus ada mekanisme yang menghubungkan aksi klik dengan suatu fungsi yang akan memberikan respon atas aksi tersebut. Contohnya dapat dilihat pada skrip helloword.php di atas: $button->connect(‘clicked’, ‘shutdown’);
Signal & Callback Dalam PHP-GTK, mekanisme komunikasi demikian ditangani oleh signal. Signal berguna agar suatu skrip dapat mengetahui bahwa ada suatu aksi yang terjadi. Sumber suatu signal adalah widget. Signal adalah
suatu pemberitahuan yang dipacarkan oleh widget. Dalam PHP-GTK, fungsi yang dibuat untuk menangani atau merespon signal disebut dengan nama callback. Oleh karena itu callback disebut juga signal handler function (fungsi yang menangani / merespon signal). Callback bisa berupa default handler, atau user defined handler. User defined handler adalah callback yang didefinisikan oleh programer. Membahas PHP-GTK tidaklah mungkin disajikan hanya dalam sebuah artikel. Contoh program lain juga perlu dipelajari. Oleh karena itu, bagi rekan-rekan yang tertarik untuk mempelajari PHP-GTK, silakan merujuk pada referensi berikut. Buku “Tuntunan Praktis PHP-GTK” yang ditulis oleh Y.B. Mulyana dan diterbitkan oleh ANDI. Manual PHP-GTK: http://gtk.php.net/ Semoga dari artikel kecil ini ada manfaat yang bisa dipetik oleh kita semua. Mulyana ([email protected])