1 TUTORIAL Red Hat ala Debian Red Hat ala Debian Pernah kesulitan menginstal paket yang saling tergantung pada paket lain? Kalau pernah, pasti Anda me...
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Red Hat ala Debian
Red Hat ala Debian Pernah kesulitan menginstal paket yang saling tergantung pada paket lain? Kalau pernah, pasti Anda mengerti benar istilah dependency hell yang menyebalkan tersebut.
50
Penggunaan apt-get untuk menginstal program.
INFOLINUX FEBRUARI 2004
tidak disediakan dan di-maintain oleh pembuat distronya. Akhirnya, banyak pengguna Linux yang memilih untuk melakukan kompilasi sendiri, dengan berbagai konsekuensi. Ya. Konsekuensi untuk kompilasi sendiri tidaklah tanggung-tanggung. Barangkali kita akan mendapatkan peningkatan efisiensi, tapi kita juga harus membuang waktu untuk membaca berbagai cara kompilasi, membuang uang, membuang waktu dan resource komputer, dan lain sebagainya. Itu pun kalau hasil kompilasinya optimal. Sebagai pengguna Linux dan paham akan keadaan tersebut, sudah sepantasnya bagi kita untuk sedikit bersikap bijak. Tidak ada pilihan yang segalanya baik. Jika Anda memandang dari satu sisi seperti ketersediaan software baru, maka barangkali penggunaan Debian unstable adalah pilihan terbaik. Tapi Anda harus membayarnya dengan sering-sering meng-update dan kehilangan fungsi deteksi hardware yang dimiliki oleh Red Hat. Apabila Anda menggunakan Red Hat, maka Anda akan berhadapan dengan kurangnya paket yang di-maintain oleh Red Hat dan proyek Fedora, namun Anda mendapatkan deteksi hardware dan berbagai fasilitas lain. Tapi
K
alau mau jujur, pekerjaan instal menginstal di Windows jauh lebih sederhana daripada di Linux. Walaupun seringkali tercipta kondisi yang jauh dari optimal seperti terjadi duplikasi file di sana sini dan komputer harus di-reboot, namun pengguna tidak perlu pusing dengan berbagai varian distro, perbedaan versi pustaka C, dan lain sebagainya. Keinginan mulia untuk terciptanya kondisi ideal di dunia Linux membuat instalasi terkadang menjadi sangat susah. Kita punya beberapa pilihan. Di antaranya mempercayakan semuanya pada paketpaket distro. Ini mungkin bisa kalau kita menggunakan Debian. Namun, Debian juga tidak bisa memuaskan penggunanya, apalagi jika kita menggunakan Debian stable yang laksana museum. Selain itu, menuruti aturan DFSG (Debian Free Software Guidelines), Debian tidak memasukkan banyak program yang tidak sesuai dengan kaidah free software di repositorinya. Walau untungnya, kita bisa mendapatkannya dari pihak ketiga. Apabila kita mempercayakan kebutuhan program pada distro selain Debian, kita bisa susah setengah mati. Banyak sekali paket tambahan yang harus di-download karena
jangan lupa, penggunaan RPM pada Red Hat sangat tidak sebanding dengan kemudahan pengguna Debian mengatur paket di sistem mereka. Coba saja melakukan instalasi paket A, dimana A membutuhkan paket B dan C. Kemudian paket B membutuhkan D dan E, serta C membutuhkan F. Anda harus menyediakan semua paket tersebut. Parahnya, terkadang tidak semua paket tersebut diletakkan dalam CD-ROM yang sama. Terpaksalah Anda menginstal dari paket yang paling tidak rewel. Berapa waktu yang terbuang? Dan pengguna Debian barangkali sudah selesai minum kopi dan siap bekerja kembali sementara Anda masih sibuk mount sana mount sini, dan melakukan instalasi paket secara manual.
APT di Red Hat Apakah mungkin kita menikmati kemudahan Red Hat namun sekalian mendapatkan kemudahan Debian dalam manajemen paket softwarenya? Jawabannya adalah mungkin. Dan hal tersebut diwujudkan oleh Conectiva. Porting APT ke sistem RPM memungkinkan semua distro yang berbasis RPM menjadi semudah Debian dalam mengatur paket di sistem. Dengan menginstal satu paket saja, Anda sudah siap untuk bekerja secepat pengguna Debian dalam soal instal menginstal program. Pertama-tama, kunjungilah freshrpms.net. Kemudian, carilah versi Red Hat Anda. Dan download-lah paket apt-xxx.rpm sesuai dengan konfigurasi Anda. Paket tersebut
Penggunaan apt-get untuk menghapus program.
www.infolinux.web.id
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Red Hat ala Debian
APT: Benar-benar Advanced! Siapa sih yang mau susah-susah hanya untuk melakukan instalasi program? Maunya menikmati segala fitur baru, tapi malah segala kerumitan yang ditemui. Tapi, semua hal tersebut sudah pantas masuk museum. kehadiran APT lah yang memungkinkan semua hal tersebut. Dengan APT, cukup sebut paket yang ingin Anda instal. Urusan ketergantungan, konflik, dan lainnya, kita tidak perlu tahu. Berkat APT, boleh dikatakan, instalasi program di Linux sudah sangat mudah.
berukuran cukup kecil. Setelah itu, sebagai root, berikan perintah berikut ini: apt-get update Perintah tersebut bertujuan untuk memperbarui daftar paket ke Internet. Setelah itu, Anda siap untuk melakukan instalasi dan uninstalasi dengan mudah, cukup berikan perintah berikut ini untuk melakukan instalasi: apt-get install [nama_paket2>] [nama_paketn] Secara default, APT akan mencari otomatis ke entri yang terdapat pada /etc/ apt/sources.list. Anda akan membutuhkan koneksi Internet untuk itu. Instalasi suatu paket akan menyebabkan paket yang dibutuhkannya terinstal juga. Untuk menghapus paket, berikanlah perintah berikut ini: apt-get remove [nama_paket2] [nama_paketn] Uninstalasi suatu paket yang dibutuhkan oleh paket lain akan menyebabkan paket yang membutuhkan tersebut untuk dihapus juga secara otomatis. Selain apt-get, Anda barangkali juga akan tertarik dengan apt-cache. Dengan tool ini, Anda dapat mencari paket dan menampilkan informasi tentang paket tersebut tanpa melakukan instalasi terlebih dahulu. Sangat cocok bagi Anda yang senang mencoba program-program baru. Untuk mencari paket-paket yang berhubungan dengan GNOME misalnya, berikanlah perintah berikut ini: apt-cache search gnome
Anda akan disuguhkan daftar yang cukup panjang. Selanjutnya, untuk melihat informasi tentang paket kdebase misalnya, berikanlah perintah berikut ini: apt-cache show kdebase Selanjutnya, informasi seputar paket kdebase termasuk apa yang dibutuhkan dan keterangan singkat akan ditampilkan.
Trik mempercepat download paket Terkadang, satu paket bisa bergantung kepada beberapa paket. Dan ukuran paket bisa bervariasi. Katakanlah kita kebetulan harus menginstal paket berukuran besar, yang juga kebetulan membutuhkan beberapa paket, yang berukuran besar pula. Sementara, koneksi Internet terkadang cukup lambat, walaupun rekan sekantor telah pulang semua. Kita dapat melakukan beberapa hal agar download dapat dilakukan lebih cepat, dan tanpa risiko terputus. Langkah pertama adalah tetap menjalankan perintah apt-get dan membiarkannya
untuk men-download satu file, sekadar untuk mengetahui lokasi file tersebut. Setelah ditampilkan, cepat-cepatlah untuk menekan CTRL-C. Maka apt-get akan terhenti tanpa masalah. Jangan lupa untuk mencatat paketpaket apa saja yang akan diinstal pula. Langkah kedua adalah membuka web browser. Arahkanlah ke alamat yang Anda lihat tadi. Selanjutnya, pastikan file-file yang akan diinstall terdapat dilokasi yang sama. Langkah ketiga adalah men-downloadnya dengan download manager seperti halnya prozilla. Download-lah dengan jumlah proses sekitar 4 agar jaringan tidak terlalu berat. Ulangi untuk semua paket yang dibutuhkan. Langkah keempat adalah memindahkan semua RPM yang telah Anda download tersebut ke /var/cache/apt/archives. Dan hapus RPM yang Anda hentikan dengan CTRL-C pada langkah pertama. File RPM tersebut terletak di /var/cache/apt/archives/ partial/. Langkah kelima adalah menjalankan kembali apt-get tersebut. Anda akan
IKLAN
www.infolinux.web.id
INFOLINUX FEBRUARI 2004
51
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Synaptic – lebih mudah untuk digunakan.
menemukan bahwa Anda tidak perlu lagi men-download dengan APT. APT akan langsung melakukan instalasi karena semua file yang dibutuhkan telah Anda download dan tempatkan di direktori yang bersesuaian dengan keinginan APT. Hal ini kita lakukan karena download dengan APT, walaupun akan diresume otomatis, tetaplah lambat. Prozilla adalah download manager luar biasa. Satu hal yang barangkali perlu diperhatikan adalah jangan melakukan hal ini ketika traffic koneksi Internet sedang sibuk. Bisa-bisa malah komputer Anda diblok oleh robot.
APT dan CD-ROM Red Hat Dari tadi, kita terus bicara download. Seolah-olah setiap pengguna Internet adalah penikmat koneksi broadband. Lantas, apakah penggunaan APT berarti kita harus ramai-ramai terkoneksi ke Internet? Selain itu, kalau diperhatikan, CD-ROM Red Hat 9, tidak berlaku dalam penggunaan APT. Pengguna Debian bisa bergembira karena apt-get bisa mencari ke CD-ROM Debian. Tapi di Red Hat, apt-get selalu mencari ke Internet. Tentunya kita tidak selalu harus terkoneksi ke Internet. Bahkan, kita dapat membuat CD-ROM Red Hat dikenali oleh APT sehingga apt-get dapat pula mencari ke CD-ROM Red Hat dan atau ke Internet, sesuai keinginan Anda. Sayangnya, Anda harus menyediakan tiga buah CD-ROM kosong dan tentunya sebuah CD Writer untuk membakar CD-
52
INFOLINUX FEBRUARI 2004
Red Hat ala Debian
Apt-cache menampilkan informasi paket.
ROM. Ruang kosong harddisk yang cukup besar juga harus disediakan. Sebelum itu, Anda harus men-download terlebih dahulu package list di freshrpms.net. Sesuaikan dengan versi Red Hat Linux Anda. Setelah itu, lakukan langkah-langkah berikut ini. Untuk CD-ROM pertama, masukkan CDROM, dan berikan perintah berikut ini: mount /mnt/cdrom mkdir -p /tmp/cd cp -a /mnt/cdrom /tmp/cd/shrike-cd1 cd /tmp/cd/shrike-cd1 tar xzvf /path/to/shrike-i386-disc1-apt.tar.gz mkisofs -J -r -T -l -V ‘Apt-enabled Shrike disc1’ \ -b images/bootdisk.img \ -c boot.catalog \ -o /path/to/put/isos/shrike-cd1.iso . umount /mnt/cdrom Untuk CD-ROM kedua dan ketiga, lakukan dan sesuaikan perintah berikut ini: mount /mnt/cdrom cp -a /mnt/cdrom /tmp/cd/shrike-cd2 cd /tmp/cd/shrike-cd2 tar xzvf /path/to/shrike-i386-disc2-apt.tar.gz mkisofs -J -r -T -l -V ‘Apt-enabled Shrike disc2’ \ -o /path/to/put/isos/shrike-cd2.iso . umount /mnt/cdrom Secara umum, berikut ini adalah penjelasan langkah-langkah tersebut. Pertama-tama, kita memasukkan CD-ROM Red Hat, dan melakukan mount serta mengcopy-kan isinya ke direktori sementara.
www.infolinux.web.id
Kemudian, kita masuk ke dalam direktori sementara tersebut dan menambahkan daftar paket yang kita download tersebut. Karena daftar paket tersebut terkompres, maka kita harus mengekstraknya terlebih dahulu. Setelah itu, kita buat kembali ISO image-nya. Perbedaan antara CD 1 dan CD 2/3 hanyalah penambahan fasilitas boot untuk CD 1. Untuk menghemat ruang kosong harddisk, lakukanlah pembuatan ISO dan pembakaran satu demi satu. Selanjutnya, Anda dapat memberikan perintah berikut ini untuk menambahkan daftar paket di CD-ROM ke database APT Anda: apt-cdrom add Lakukan perintah tersebut untuk setiap CD Red Hat Anda. Dengan demikian, apabila Anda memberikan perintah apt-get install, maka pencarian paket akan dicari pula ke dalam CD-ROM Red Hat Anda. Untuk mengubah-ubah alamat pencarian paket, utak-atiklah file /etc/apt/sources.list. Untuk front end APT yang lebih ramah, Anda mungkin akan tertarik dengan penggunaan Synaptic. Berikan perintah berikut ini untuk menginstal synaptic: apt-get install synaptic Demikianlah penggunaan APT di Red Hat. APT membuat kita jauh lebih mudah dalam menginstall program. Memang belum ideal. Tapi paling tidak, kita tidak lagi berurusan dengan dependency hell. Noprianto ([email protected])
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
TUTORIAL Hidup Lebih Teratur dengan Evolution
Hidup Lebih Teratur dengan Evolution Hari-hari Anda semakin sibuk dan Anda terlihat semakin berantakan? Dimarahi terus karena lupa janji? Selalu ketinggalan berita dan e-mail penting? Barangkali sudah saatnya Anda mengatur kegiatan Anda dengan Evolution.
H
ari Kamis ketemu klien. Hari Jumat harus ikut seminar. Hari Sabtu mengajar. Hari Minggu beristirahat sejenak, tarik nafas. Hari Senin harus ke luar kota sampai Rabu, tapi klien yang ditemui hari Kamis lalu tiba-tiba harus ketemu hari Senin itu juga. Keluar kota di ganti menjadi selasa sampai kamis. Pulang dari luar kota harus ikut serta acara KPLI. Waduh. Selain kegiatan utama dalam satu hari tersebut, masih banyak lagi kegiatan kecil-kecil lainnya, yang walau kecil, tapi juga menuntut perhatian yang sama. Benarbenar sibuk. Apabila semua kegiatan tersebut dicatat di kertas, dan kemudian terjadi hal-hal yang kurang berkenan pada kertas tersebut, tinggallah kita kalangkabut. Kalau Anda begitu sibuk dan menggunakan Linux, mari coba atur lebih baik dengan Evolution. Kali pertama melihat Evolution, barangkali kesan pertama yang terpikir adalah cukup lambat, namun tampilannya bagus. Kebaikan OpenOffice.org untuk lambat sepertinya memang membuat hampir semua aplikasi terlihat relatif lebih cepat. Beberapa saat yang lalu, jarang ada aplikasi Linux yang bisa memiliki tampilan seindah dan seprofesional Evolution.
Summary Panel kiri akan menampilkan berbagai shortcut yang akan mengantar kita ke fungsi-fungsi tertentu seperti melihat secara keseluruhan (summary), daftar e-mail (inbox), daftar tugas (task), kalender, dan alamat-alamat kontak. Pada bagian summary, Evolution dapat menampilkan beberapa cuplikan berita dari berbagai situs populer yang menyediakannya. Dengan demikian, untuk melihat headline berita di beberapa situs, Anda tidak perlu mengunjungi situs tersebut secara
langsung. Karena Evolution akan menampilkannya untuk Anda. Dan situssitusnya pun dapat Anda atur sendiri. Mau berita lokal atau berita internasional yang menyediakan cuplikan berita tersebut, tinggal pilih sendiri. Fitur ini sangat berguna bagi Anda yang super sibuk namun akan merasa sangat berdosa kalau ketinggalan berita. Di halaman summary ini, Anda juga bisa melihat keadaan cuaca di lokasi tertentu. Kita juga dapat mengarahkannya ke penyedia lokal. Di halaman yang sama ini, Anda juga dapat melihat jumlah e-mail yang baru saja masuk atau yang baru saja Anda kirim. Dengan demikian, apabila ada e-mail yang masuk, barulah daftar e-mail diaktifkan. Praktis! Hanya itu? Belum. Anda juga dapat melihat janji apa saja yang harus ditepati hari ini. Kumpulan tugas juga ditampilkan. Dengan demikian, diharapkan tidak ada lagi janji yang lupa untuk ditepati hanya karena lupa. Tidak semua fitur tersebut harus diaktifkan. Sebagai contoh, jika Anda tidak memiliki jaringan internet, maka fitur untuk pengambilan berita tidak perlu diaktifkan. Demikian juga dengan pengambilan cuaca. Barangkali lebih cepat kalau kita mendengarkan berita dari radio atau televisi. Namun, apabila Anda memang sibuk, fasilitas untuk menampilkan tugas dan janji sebaiknya tetap ditampilkan. Untuk mengatur halaman summary, ketika sedang aktif di halaman tersebut, pilihlah menu Tools|Settings. Dari sebuah dialog yang ditampilkan, aktifkanlah bagian Summary Preferences, apabila belum aktif. Anda akan menjumpai empat buah tab: Mail, News Feeds, Weather, dan Schedule.
www.infolinux.web.id
Sesuai dengan namanya, tab Mail berisikan pengaturan untuk penampilan summary email. Anda bisa memilih sendiri direktori mana saja yang akan ditampilkan. Kemudian pada tab News Feeds, Anda bisa memilih untuk memasukkan cuplikan berita dari website tertentu. Umumnya, Anda akan menjumpai daftar situs yang telah disediakan. Apa yang perlu Anda lakukan adalah klik pada tombol Add ataupun Remove. Tentu saja daftar tersebut tidak selalu sesuai dengan kebutuhan Anda. Anda bisa menambahkan sendiri situs-situs yang Anda inginkan. Namun, harap diperhatikan bahwa Anda tidak bisa sembarangan saja menambahkan situs yang ingin cuplik beritanya, karena tidak semua situs menyediakannya. Umumnya, situs yang menyediakannya akan menampilkan sebuah link atau image yang berjudul XML ataupun RSS Feeds. Tab berikutnya adalah tab untuk mengatur cuaca. Sayang sekali walaupun terdapat kategori Asia di sana, Indonesia belum termasuk. Anda bisa mencarinya di berbagai penyedia lokal. Situs seperti www.bmg.go.id barangkali dapat dicoba. Pada tab terakhir, calendar, Anda bisa memilih untuk menampilkan kegiatankegiatan dalam berapa hari sekaligus. Apabila banyak kegiatan yang harus dipersiapkan beberapa hari sebelumnya, mungkin cukup bijak apabila menampilkan kegiatan dalam satu minggu sekaligus. Hal tersebut sama pula untuk penampilan tugas-tugas Anda. Anda bisa memilih untuk menampilkan semua tugas ataupun tugas hari yang aktif saja. Semua terserah Anda. Jadikan halaman summary benar-benar summary. Artinya, tidak terlalu detail, namun juga tidak membuat Anda kalang kabut nantinya karena banyak persiapan yang belum dikerjakan.
INFOLINUX FEBRUARI 2004
53
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Evolution – Summary.
Inbox Mari berpindah ke halaman Inbox. Di halaman inilah semua pengaturan e-mail Anda akan dilakukan. Anda bisa mendaftar semua e-mail Anda di sini dalam satu kelompok ataupun mengelompokkannya. Evolution juga membuat pencarian email menjadi sangat mudah. Cukup masukkan saja kata kunci pencarian yang terdapat dalam subjek, pengirim, dan lainnya. Pengurutan dan lainnya juga dapat dilakukan dengan sangat bagus, dan manis. Bagi Anda yang mementingkan tampilan isi e-mail yang indah, maka program ini dapat menjadi satu yang terbaik. Penampilan header e-mail dilakukan dengan sangat baik dan tidak banyak menampilkan istilah teknis yang membingungkan. Kemudian, penanganan attachment juga dilakukan sangat baik. Isi attachment juga dapat langsung ditampilkan, tergantung pada format attachment tersebut. Untuk dapat menikmati semua fasilitas tersebut, Anda perlu melakukan pengaturan. Beberapa informasi seperti alamat SMTP dan IMAP/POP3 harus Anda ketahui. Mintalah terlebih dahulu kepada administrator lokal Anda ataupun kepada penyedia jasa internet di mana Anda berlangganan. Bukalah Tools|Settings. Sebuah dialog akan ditampilkan untuk Anda. Aktifkanlah bagian Mail Accounts apabila belum aktif. Anda dapat menambahkan account baru dengan klik pada tombol Add. Sebuah wizard akan tampil dan memandu Anda untuk membuat account e-mail. Buatlah account sebanyak yang Anda inginkan.
54
Hidup Lebih Teratur dengan Evolution
INFOLINUX FEBRUARI 2004
Evolution – Tasks.
Dengan demikian, di satu halaman Inbox tersebut, kita bisa sekaligus mengecek semua e-mail kita. Praktis bukan? Dan apabila dihubungkan dengan halaman summary sebelumnya, semua e-mail yang baru masuk akan segera tampil. Satu hal yang harus diperhatikan adalah protokol e-mail yang disediakan oleh penyedia jasa e-mail Anda. Alamat untuk IMAP/POP3 harus benar-benar diketahui dengan benar. Karena apabila tidak, maka e-mail Anda tidak akan bisa ditampilkan. Begitu pun dengan alamat SMTP. Dari sekian banyak e-mail account yang Anda tambahkan, Anda dapat mengatur account yang mana saja yang akan diaktifkan. Kemudian, Anda juga dapat mengatur account mana saja yang akan dijadikan sebagai account default. Setelah semua pengaturan e-mail selesai, kliklah tombol OK. Pada halaman Inbox, kliklah tombol Send/Receive untuk memeriksa email Anda. Untuk mengirim e-mail baru, kliklah tombol New. Untuk membalas e-mail, kliklah tombol Reply ataupun Reply to All. Penampilan e-mail juga dilakukan sesuai dengan kebutuhan Anda. Sebagai contoh, apabila Anda mengikuti mailing list yang cukup ramai, maka terkadang akan terbentuk thread yang cukup dalam. Evolution dapat diminta untuk menampilkan thread tersebut ataupun tetap menampilkan e-mail secara flat.
Tasks Kalau Anda termasuk orang yang selalu
www.infolinux.web.id
sibuk dan memiliki banyak tugas untuk dikerjakan, maka halaman ini akan terasa sangat berguna. Misalnya saja, Anda adalah seorang pelaku bisnis yang memiliki beberapa bisnis sekaligus. Kemudian, Anda juga tergabung sebagai salah satu dosen di salah satu perguruan tinggi. Di komunitas Linux pun Anda ingin tetap terlibat. Dan Anda harus tetap mengatur agar hidup tetap teratur. Liburan bersama keluarga, misalnya. Manusia mudah lupa, dan lupa bukan alasan yang paling tepat. Catat semua kegiatan Anda di halaman ini. Kemudian, Anda juga dapat membuat kriteria sesuai dengan kesibukan Anda. Dengan mengatur benar tugas dan ketegori tugas, pencarian dan pengaturan di masa depan akan terasa lebih mudah. Untuk menambahkan tugas baru, kliklah pada tulisan Click to add a task di halaman tersebut. Setelah itu, tekanlah tombol ENTER. Dengan segera tugas tersebut bergabung bersama barisan tugas lainnya. Untuk melihat detil tugas tersebut, kliklah dua kali pada tugas. Sebuah dialog detil tugas akan ditampilkan untuk Anda. Di dialog ini, Anda dapat memberikan keterangan lebih detil seperti deadline, keterangan lain maupun persentase pengerjaan. Anda juga dapat mengatur tugas ini termasuk tugas Public, Private, ataupun Confidential. Dan jangan lupa untuk memasukkan tugas bersangkutan ke kategori yang tepat. Untuk membuat kategori baru, kliklah tombol Categories di bagian bawah dialog
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Hidup Lebih Teratur dengan Evolution
Evolution – Kalender mingguan.
tersebut. Pada sebuah dialog yang tampil, kliklah tombol Edit Master Category List. Pada sebuah dialog yang tampil, masukkanlah kategori baru Anda. Pada bagian detil tugas, Anda juga dapat memasukkan alamat kontak personal yang terlibat dalam tugas tersebut. Tugas yang sampai pada deadline akan diwarnai berbeda. Sebagai hasil akhir, Anda dapat melihat kegiatan Anda dalam lingkup yang lebih luas, sehingga berbagai persiapan dapat dilakukan, untuk hasil yang lebih baik.
Calendar Anda telah memiliki daftar tugas. Dan tentu banyak diantara tugas tersebut yang tidak selesai dalam satu atau dua hari. Anda harus menyusun jadwal penyelesaian tugas tersebut secara rinci. Hari apa saja tugas akan dikerjakan secara prioritasnya, kemudian apa saja yang akan Anda lakukan dalam satu hari tersebut dapat diatur di halaman ini: Calendar. Anda dapat memilih untuk menampilkan kalender dalam tampilan per hari, per hari kerja, per minggu ataupun per bulan. Apabila Anda menampilkan per hari, maka Anda dapat mengisikan kegiatan hari tersebut sampai sedetail-detailnya. Anda bahkan dapat mengatur sampai satuan menit. Jam kerja akan diwarnai berbeda dengan jam lainnya. Apabila tampilan per hari dirasa terlalu detil, maka tampilan per hari kerja ataupun tampilan per minggu dapat ditampilkan. Dengan memilih tampilan per minggu, Anda dapat memantau kegiatan dalam satu
Evolution – Kalender bulanan.
minggu. Dengan demikian, Anda dapat mempersiapkan kegiatan hari esok, agar tidak banyak tugas yang bertumpuktumpuk. Detail per hari akan berusaha ditampilkan oleh Evolution, namun tidak sampai satuan terkecil. Benar-benar sibuk dan hari-hari Anda begitu berantakan? Cobalah melihat dalam lingkup lebih luas: tampilan per bulan. Tentunya dengan menggunakan tampilan per bulan, detail harian akan semakin berkurang. Termasuk pula detail mingguan. Namun, Anda memiliki pandangan yang lebih luas. Apabila Anda bekerja sebagai perencana jadwal perusahaan, maka tampilan per bulan akan terasa sangat berguna. Apabila detil harian diperlukan, Anda hanya perlu mengubah tampilan menjadi tampilan per hari. Ganti-gantilah tampilan sesuai kebutuhan. JIka pengaturan kategori dilakukan dengan benar, maka Anda pun dapat menggunakan fasilitas pencarian berdasarkan kategori. Anda juga dapat mencari dengan kriteria lainnya.
Contacts Setiap orang pasti memiliki teman. Pelaku bisnis pasti memiliki rekan bisnis. Dan karena manusia mudah lupa seperti yang dikatakan sebelumnya, tidaklah mungkin bagi kita untuk mengingat semua alamat, nomor telepon dan e-mail setiap rekan kita. Evolution menyertakan sebuah fasilitas contact yang sangat berguna. Dengan fasilitas tersebut, kita bisa mengatur alamat
www.infolinux.web.id
kontak kita lebih terorganisasi. Kita bisa mengelompokkan beberapa rekan dalam satu kelompok kategori yang berbeda misalnya. Detil setiap kontak dapat diatur sampai sekecil-kecilnya. Mulai dari nama, pekerjaan, e-mail (dan preferensi untuk menerima e-mail HTML), alamat homepage, nomor telepon (mulai dari bisnis sampai kerja), alamat bisnis dan rumah, sampai detail-detail perkerjaan seperti nama Atasan dan departemen tempat bekerja. Halaman ini bisa pula berfungsi sebagai buku alamat konvensional dan membiarkan penggunanya untuk mencari berdasarkan huruf awal kontak. Dibuat oleh perusahaan Ximian (yang dibeli oleh Novell), yang dimotori oleh Miguel de Icaza, orang penting untuk proyek GNOME dan Mono, Evolution adalah program yang luar biasa. Evolution tidak hanya sekadar buku alamat dan tanggalan. Evolution menawarkan suatu tool untuk membantu hidup kita agar lebih teratur, terutama bagi Anda yang sibuk. Hari demi hari memang akan terus berlalu, seperti bumi yang terus berputar, dan berbagai tugas pun datang silih berganti. Suka atau tidak, kita harus menyelesaikannya. Teratur ataupun berantakan, tergantung bagaimana kita bisa mengatur. Gunakan Evolution untuk membantu, dan walaupun sibuk, Kita akan tetap hidup dengan indah, berwarna, dan tidak menjadi robot! Selamat bekerja! Noprianto ([email protected])
INFOLINUX FEBRUARI 2004
55
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Memecahkan Masalah dengan Solusi Tepat
Memecahkan Masalah dengan Solusi yang Tepat Berbagai masalah dapat kita temui pada saat kita menggunakan Linux. Solusi yang tepat harus diterapkan, agar kita tidak direpotkan lagi di kemudian hari. Kita akan membahas beberapa contoh masalah dan kemungkinan solusinya.
B
ayangkan ilustrasi berikut. Indonesia sedang mengalami musim hujan. Begitupun rumah Badu. Hampir setiap malam, Badu berharap semoga malam itu tidak hujan. Berharap supaya hujannya siang atau sore hari saja. Karena jika malam hari hujan, kamar Badu akan kebanjiran. Namun, harapan seringkali tinggal harapan. Badu yang kecewa karena harapannya tidak terkabul tetap harus mengepel lantai dan tidur lebih malam. Hari demi hari berlalu dengan kondisi serupa, Badu pun mulai mencari solusi agar tetap aman dan kering apabila hujan deras. Badu pun bekerja memperbaiki langit-langit kamarnya. Badu membeli cat dan mengecat ulang langit-langit kamarnya. Badu pun menambal lubang di langit-langit tersebut. Dengan berbuat demikian, Badu berharap akan tetap kering ketika langit kembali memuntahkan air. Bagaimana menurut Anda dengan solusi tersebut? Barangkali dalam satu atau dua kali hujan, Badu akan terlindung. Namun, solusi tersebut tidak akan memecahkan masalah. Masalah sebenarnya dari Badu barangkali terdapat lubang di atap rumah. Maka solusinya pun harus benar. Dengan memperbaiki atap misalnya. Identifikasi dan mencari solusi yang benar untuk satu masalah memang bukan perkara mudah. Apalagi ketika menggunakan Linux, di mana sistem begitu kompleks dan transparan serta terkadang pemahaman akan sistem masih sangat merepotkan. Sebagian besar pengguna Linux pasti pernah merasa bingung ketika sound card tidak terdeteksi. Atau ketika X server tidak dapat dijalankan. Atau bahkan ketika program yang sering dipakai tiba-tiba ngambek dan komputer menjadi hang. Menjadi lebih bingung lagi ketika teman Anda yang menggunakan Linux, dengan
56
INFOLINUX FEBRUARI 2004
sound card yang sama dapat menikmati lagu-lagu MP3 menggunakan sound card tersebut. Dengan asumsi sound card tersebut tidak rusak, tentunya solusi yang benar bukanlah membeli sound card baru. Hal yang seringkali terjadi barangkali sistem menjadi hang. Apabila hal tersebut sering sekali terjadi, berarti sistem Anda bermasalah. Dan solusinya jelas bukan lantas me-reboot komputer dan menjadi begitu pemaaf dan maklum dengan kekurangan teknologi. Mengelus dada dan menerima bahwa komputer memang harus hang bukanlah sifat yang benar dalam kasus ini. Reboot bukanlah solusi general untuk setiap masalah komputer. Dalam berkomputer, walaupun bukan seorang hacker atau programer sistem, kita harus bertindak cerdas. Berikut ini kita akan membahas beberapa masalah yang sering terjadi, dan bagaimana kita menyikapinya serta mencoba untuk mencari solusi yang paling tepat.
Hardware tidak dikenal Linux adalah sistem operasi yang sedang berkembang dengan sangat pesat. Dukungan resmi dari vendor barangkali baru bisa kita nikmati tahun-tahun belakangan ini. Jangan ditanya dukungan resmi perusahaan ketika Linux baru mencapai versi 1.x atau 2.0. Oleh karena itu, wajar adanya apabila terdapat hardware yang belum didukung oleh Linux. Tapi, sebagai pemilik suatu jenis hardware, kita harus tetap mencari sampai dapat, apakah hardware tersebut memang belum didukung atau sudah didukung, tapi distro yang kita gunakan kebetulan tidak memasukkan kernel yang mendukung hardware tersebut. Sebagai satu contoh. Beberapa tahun yang lalu, penulis mendapatkan
www.infolinux.web.id
kesempatan untuk mencoba seperangkat komputer baru di tempat di mana penulis bekerja. Karena baru bisa menggunakan Linux, maka instalasi adalah hal yang sangat penulis gemari. Kepuasan melihat komputer baru terinstal Linux rasanya tak tergantikan dengan apa pun, waktu itu. Sayangnya, setelah berkali-kali melakukan instalasi, kartu jaringan tetap tidak terdeteksi. Tanya sana tanya sini pun tidak membuahkan jawaban. Mau tahu solusi apa yang penulis ambil? Beli kartu jaringan baru! Dan beberapa bulan kemudian, penulis baru menyadari bahwa kartu jaringan tersebut sebenarnya didukung sekali oleh Linux, karena rekan penulis menggunakan kartu jaringan yang sama di komputernya, yang juga bersistem operasi Linux. Dan untuk mengaktifkannya, kita perlu melakukan kompilasi ulang kernel. Berikut adalah cerita kedua. Karena kesal dengan solusi yang penulis ambil waktu itu, maka penulis pun menjadi sangat cerewet dengan dukungan hardware. Basis pengetahuan yang terbentuk di otak penulis membuat penulis terus berpendapat, bahwa kompilasi kernel adalah hal yang wajib. Apapun masalahnya, mulai dari kurangnya dukungan hardware sampai masalah jaringan harus selalu diselesaikan dengan kompilasi kernel. Dengan demikian, barangkali penulis menjadi salah satu pengguna Linux yang sangat sibuk karena selalu melakukan kompilasi kernel. Setahun lamanya kira-kira penulis menjadi pengguna Linux yang banyak merepotkan kompiler. Akhirnya, penulis menyadari bahwa terkadang distro telah menyertakan modul kernel untuk hardware ataupun berbagai fasilitas lainnya. Tinggal di insmod, dan masalah pun
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
TUTORIAL
Hardware browser.
selesai. Tidak perlu buang waktu dengan kompilasi kernel. Tapi untuk mendapatkan solusi tersebut, butuh waktu setahun. Rasanya sayang sekali. Dengan demikian, apabila sekiranya Anda mendapati masalah yang sama dengan penulis waktu itu—hardware tidak didukung, periksalah terlebih dahulu apakah Linux mendukung hardware tersebut. Anda bisa mencarinya dengan melihat dokumentasi resmi dari vendornya, atau dengan mencari di Internet, atau bahkan dengan mengikuti milis. Menggunakan IRC juga boleh-boleh saja. Apabila ternyata didukung, maka periksalah apakah distribusi Anda menyertakan modul kernel untuk hardware tersebut. Apabila tidak, cobalah cari pihak ketiga. Apabila tidak ada atau kurang yakin, barulah kompilasi kernel dilakukan. Yang jelas, untuk dukungan hardware, saat ini Linux telah mendukung banyak hardware. Untuk kartu jaringan, harusnya tidak terdapat masalah. Untuk suara juga harusnya tidak terlalu masalah. Apalagi dukungan processor. X Server terbaru juga menyediakan dukungan untuk begitu banyak karti grafis, baik video card kuno ataupun modern. Sebuah catatan untuk kartu grafis nVIDIA, Anda dapat mendownload driver dari nvidia.com langsung, ketimbang mengandalkan driver genericnya. Apabila hardware sepertinya telah dikenali namun pada saat boot distro Anda memberikan pesan kegagalan misalnya, maka pastikan dulu Anda telah
Memecahkan Masalah dengan Solusi Tepat
Daftar proses di sistem.
mengatur hardware tersebut dengan benar. Dalam mengatur kartu jaringan misalnya, apabila komputer Anda tidak terhubung dengan pihak luar dan Anda meminta informasi jaringan dari server DHCP, maka pesan kegagalan pada saat boot lebih karena server DHCP tidak berhasil dihubungi, dan bukannya kartu jaringan tidak dikenali. Pengguna Linux tidaklah seberuntung pengguna Windows dalam hal dukungan hardware. Terkadang, hardware mahal yang baru saja kita beli rupanya belum didukung penuh. Atau, didukung dengan bantuan driver generic. Perasaan kecewa pastilah ada, namun tetaplah mencari solusi dan jangan pernah menyerah. Dengan demikian, kita senantiasa akan menjadi pengguna yang kreatif dan gampang menyerah. Pada saat artikel ini ditulis, kernel 2.6 dikatakan akan memiliki dukungan hardware dan penamaan device yang jauh lebih baik.
Aplikasi hang, komputer pun hang Pernahkan Anda alami komputer hang karena salah satu aplikasinya hang ketika menggunakan Linux? Barangkali pernah. Barangkali sering. Namun yang jelas, solusinya bukan hanya sekadar reboot. Sistem operasi yang multitask harusnya mampu untuk terus berjalan dan melayani penggunanya walaupun salah satu program yang berjalan di atasnya ngeyel. Sederhananya, sistem hanya perlu membunuh proses tersebut, dan semuanya
www.infolinux.web.id
akan kembali normal. Namun, hal tersebut adalah kondisi ideal, dan umumnya teoretis. Linux bukan sistem operasi yang sempurna, dan oleh karenanya, hang mungkin saja terjadi. Apabila hanya sekali, reboot barangkali tidak masalah. Dan, jangan pula berpikir untuk instal ulang sistem operasi. Instal ulang hanya karena sistem operasi hang disebabkan oleh satu program bukanlah solusi yang bijak, dan barangkali hanya akan menunjukkan kita memiliki terlalu banyak waktu. Hapus dan instal ulang aplikasi tersebut juga bukan solusi yang selalu memecahkan masalah sampai ke akar-akarnya. Instal ulang aplikasi barangkali berlaku apabila terdapat binary yang rusak. Namun, kalau ternyata hang disebabkan karena kita salah melakukan konfigurasi atau karena terdapat hal lain yang membuat aplikasi tersebut macet, instal ulang aplikasi hanya akan menghabiskan waktu. Apabila salah satu aplikasi terus menerus hang, sebagai contoh, misalnya XMMS selalu ngambek dan mau tidak mau bersuara lantas hang, maka kita harus melihat apa akar masalahnya. Pertamatama, pastikan dulu konfigurasi dilakukan dengan benar. Sebelum menyalahkan variabel lain, ada baiknya kita melihat ke dalam program itu sendiri. Apabila ternyata konfigurasi benar, atau konfigurasi menggunakan konfigurasi default—dengan asumsi program tersebut Anda dapatkan dari CD distro Anda, maka barulah kita melihat faktor luar.
INFOLINUX FEBRUARI 2004
57
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Manajemen paket distro untuk cara instalasi yang lebih baik.
Pertama-tama, carilah tahu apakah dukungan untuk sound card telah bekerja dengan baik. Anda bisa menggunakan hardware browser yang umumnya terdapat di beberapa distro besar, atau carilah tahu apakah aplikasi lain yang menggunakan sound card seperti halnya mplayer atau xine juga bekerja dengan tidak benar. Apabila ternyata mplayer dan xine juga ngawur—barangkali sesekali bersuara sesekali tidak, maka pastilah ada yang salah dengan penanganan sound card Anda. Ini kembali lagi kepada penanganan hardware sebelumnya. Namun, apabila ternyata hanya XMMS yang ngambek, kemungkinan dapat dipersempit dan difokuskan pada program tersebut. Apabila berbagai hal telah dicoba dan XMMS masih ngambek, maka instalasi ulang aplikasi tersebut bisa dilakukan. Apabila masih terjadi lagi, dan aplikasi sejenis tidak mengalami masalah, maka barangkali Anda akan mempergunakan media player lain. Contoh lain adalah aplikasi yang ketika dijalankan selalu menjadi terlalu perlahan, dan akhirnya menjadi hang. Tidak ada aplikasi sejenis yang dapat diperbandingkan. Namun, untungnya, kita mendapatkan satu petunjuk: aplikasi menjadi semakin pelan. Cobalah memeriksa daftar proses Anda, dan siapa tahu terdapat begitu banyak proses untuk aplikasi tersebut. Atau terlalu banyak proses di sistem. Terlalu banyak proses di sistem dapat dikurangi dengan mengurangi servis yang dijalankan.
58
INFOLINUX FEBRUARI 2004
Memecahkan Masalah dengan Solusi Tepat
Mendeteksi hardware dengan berbagai tool distro.
Atau menutup berbagai aplikasi yang terbuka dan memakan memory. Terlalu banyak proses untuk dirinya sendiri barangkali mencerminkan kesalahan konfigurasi. Namun, apabila ternyata konfigurasi pun telah dilakukan dengan benar, barangkali program tersebut memiliki bug. Atau Anda sedang diganggu oleh proses atau pihak lain. Apabila Anda sedang diganggu oleh pihak lain seperti jenis serangan denial of service misalnya, baik tidak tersebar ataupun tersebar, maka perbaikilah sistem keamanan Anda. Apabila semua ini hanyalah masalah terdapatnya bug, maka carilah upgrade atau patch-nya.
Program-program berantakan Wajar adanya apabila manusia gemar tergoda. Rekan Anda mengatakan bahwa beliau baru saja men-download aplikasi baru, dan hidup terasa lebih berwarna. Rekan Anda yang lain, yang sama sibuknya dengan Anda mengatakan bahwa rekannya baru saja menginstal aplikasi hebat di sistemnya sehingga kesibukannya berkurang sekian persen. Anda pun ngiler. Ruang kosong pun dialokasikan, dan aplikasiaplikasi tersebut pun terinstal. Kalau perlu, hapus saja MP3 atau video klip. Anda kemudian mendapatkan bahwa rupanya teman Anda berhiperbolisme setinggi langit dalam memuji fungsi program yang terinstall. Rupanya tidak terlalu hebat bagi Anda. Karena satu dan lain hal, maka aplikasi tersebut pun dihapus.
www.infolinux.web.id
Dalam kesempatan lain, Anda mendapatkan update terbaru program yang sering Anda gunakan telah tersedia. Download pun dimulai. Dengan mengaplikasikan update terbaru tersebut, Anda berharap produktivitas dan nilai penggunaan komputer akan terbang menembus atmosfir. Namun rupanya belum. Update malah membuat aplikasi semakin haus memory dan ruang kosong harddisk. Apa yang dilakukan kemudian sudah dapat ditebak. Update tersebut dihapus lagi. Ulangilah tindakan demikian puluhan kali, dan Anda tidak perlu terkejut ketika mendapati sistem Anda seperti kapal pecah. Apalagi jika instalasi tidak dilakukan dengan manajemen paket distro Anda. Lantas, jika kondisi telah sedemikian buruknya, apakah yang sebaiknya dilakukan? Satu rekan Anda menjawab instal ulang. Rekan Anda yang lain mengatakan hapus saja semua yang tidak penting, dan biarkan inti sistem operasi tetap dipertahankan. Kedua saran tersebut tentunya sangatlah logis. Namun, solusi kedua yang ditawarkan patut pula dicoba, terutama jika instalasi dilakukan dengan manajemen paket distro Anda. Kalau Anda menggunakan Red Hat misalnya, maka Anda selalu mencari paket RPM untuk diinstal, dan tidak pernah menginstal sendiri dari source code. Namun, apabila Anda tidak melakukannya dengan manajemen paket distro Anda, maka solusinya pertama barangkali lebih masuk akal, kecuali Anda
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Memecahkan Masalah dengan Solusi Tepat
rajin menghapus satu per satu. Atau kecuali Anda begitu malas melakukan pembersihan terhadap sistem. Biarlah berantakan. Memang, program yang berantakan tidak selalu menghambat komputer Anda untuk berkinerja tetap baik. File-file yang terinstal tidak selalu akan membuat sistem Anda bekerja lebih lambat. Namun, apabila kebersihan sistem ingin dijaga, maka sebaiknya Anda tetap mencoba untuk menghapus dengan manajemen paket distro Anda. Biasakan untuk menginstal sesuai dengan manajemen paket distro Anda. Kalau Anda menggunakan Red Hat, maka gunakanlah paket RPM untuk Red Hat. Apabila Anda menggunakan Debian, maka gunakanlah paket Debian. Jangan gunakan paket Mandrake kalau Anda menggunakan Red Hat, hanya karena sama-sama RPM. Untuk Debian sendiri, cobalah bertahan di stable, dan carilah backport sebisa mungkin. Jangan mencoba untuk campurcampur stable dan unstable. Karena kegiatan komputasi Anda bisa-bisa menjadi perpaduan stable dan unstable. Lebih parah apabila ketika diperlukan untuk serius, sistem Anda menjadi unstable, dan stable di kala tidak dibutuhkan untuk serius. Apabila terdapat suatu program di mana tidak tersedia paket resmi untuk distro Anda, maka cobalah cari ke pihak ketiga yang terpercaya sebelum Anda melakukan tindakan kompilasi sendiri. Kompilasi semua program yang dibutuhkan dari source code memang akan membuat seorang pengguna Linux kelihatan hebat dan mengerikan, namun, kita tidak perlu selalu begitu. Kompilasilah hanya apabila diperlukan. Namun, yang jelas, apabila kompilasi sendiri harus dilakukan, maka sebisa mungkin gunakan PREFIX yang terpisah dari tempat menyimpan binary sistem. Misalnya, gunakan PREFIX /usr/local atau /opt/ nama_program. Dengan demikian, apabila aplikasi tersebut ternyata harus dihapus, kita dapat menghapusnya dengan mudah. Yang jelas, instalasi ulang sistem operasi bukanlah selalu menjadi solusi yang terbaik. Cegahlah agar sistem Anda tidak kacau balau dengan membiasakan diri menggunakan cara yang benar dalam menginstall program.
Ingin mendalami Linux Pepatah mengatakan bahwa “pengalaman adalah guru yang terbaik”. Di salah satu sisi benar. Namun, apakah untuk mempelajari Linux dengan lebih baik Anda harus mengalami semua masalah yang mungkin terjadi dan menjadi berpengalaman karenanya? Tentunya tidak. Berikut ini kita akan membahas beberapa cara mempelajari Linux, yang mungkin cocok dengan cara belajar Anda, karena tidak semua cara belajar dapat diikuti oleh semua orang. Anda dapat mencari tahu sebenarnya apa yang ingin Anda dalami di Linux. Linux adalah sistem yang sangat kompleks, namun tetap transparan. Untuk mempelajari semuanya jelas tidak mungkin. Sebagai contoh, apabila ternyata Anda senang dengan pemrograman GUI di Linux. Maka, Anda tidak perlu mendalami masalah kernel dan segala tetek bengeknya. Sebaliknya, ketahuilah penanganan layar dengan baik. Kemudian, pelajari juga tentunya cara membuat interface yang baik. Atau, Anda ingin memperdalam jaringan di Linux. Maka, pelajarilah dan perdalamlah
konsep jaringan Anda. Masalah kernel dan pengaturan jaringan di dalamnya harus diperhatikan pula. Kemudian, barangkali kita akan kesulitan apabila kita harus membaca beberapa howto sehari. Apalagi jika tanpa disertai praktek langsung. Mungkin akan sulit juga apabila kita harus online dan berdiskusi belasan jam sehari. Cara-cara tersebut memang barangkali manjur bagi sebagian orang, namun kalau tidak memungkinkan, kita masih bisa belajar dari berbagai kasus yang pernah di alami, kemudian mencoba untuk memperdalam konsep. Linux datang dengan berbagai kelebihan. Namun, Linux juga bukannya datang tanpa masalah. Bukan berarti kita harus menyerah apabila mendapati masalah. Bukan pula kita harus memecahkan masalah dengan solusi yang tidak langsung mengatasi akar masalah. Linux dan budaya free softwarenya membuat kita lebih bijak dalam memandang satu masalah. Dengan demikian, kita dapat menerapkan solusi yang berguna. Dan kita pun semakin kreatif. Salam. Noprianto ([email protected])
IKLAN
www.infolinux.web.id
INFOLINUX FEBRUARI 2004
59
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
File Manager Berbasis Web dengan PHP
Membangun File Manager Berbasis Web dengan PHP Mari bersama-sama membangun file manager berbasis web dengan PHP. File manager tersebut dapat dikembangkan menjadi semacam kontrol panel yang sering ditemui pada layanan web hosting.
A
ndi adalah staf TI sebuah perusahaan perdagangan PT Dagang Siang Malam. Karena semakin maraknya penggunaan Internet, departeman TI perusahaan tersebut lantas berpendapat bahwa mereka harus memiliki situs dengan nama domain sendiri, kemudian syukur-syukur dapat menerapkan e-commerce suatu hari nanti. Mereka juga berpendapat bahwa memiliki situs pribadi akan memperjelas eksistensi mereka di dunia perdagangan nusantara. Andi pun melakukan hosting pada sebuah web hosting terkemuka. Untuk mengatur hosting-nya, Andi dapat menggunakan control panel yang diproteksi dengan password. Kini, perusahaan tersebut memiliki sebuah situs pribadi dengan domain dagang-siang-malam.com. Pengembangan situs pun dilakukan. Perusahaan yang relatif konvensional tersebut perlahan mulai menapaki dunia Internet. Hampir semua staf penting juga diberikan fasilitas untuk memiliki homepage masing-masing. Departemen TI Dagang Siang Malam menerapkan kebijakan bahwa setiap staf yang berhak memiliki homepage akan diberikan alamat http:// www.dagang-siang-malam.com/ /. Minggu-minggu pertama, Andi pun sibuk melayani para staf yang akan melakukan upload file ke direktori masingmasing. Apa boleh buat. Control panel yang diberikan oleh perusahaan hosting dapat digunakan untuk mengatur situs perusahaan secara keseluruhan, dan sangat tidak mungkin untuk memberikan password control panel tersebut kepada setiap staf yang akan mengatur homepage masing-masing. Terlalu riskan, karena bisa saja situs dan data perusahaan juga ikut berubah. Andi pun semakin sibuk, karena
60
INFOLINUX FEBRUARI 2004
para staf tersebut juga semakin sibuk untuk berlomba memiliki situs terindah. Setiap ketemu dengan para staf tersebut, Anda harus siap untuk meng-upload filefile mereka, menghapus file-file mereka, dan tugas lainnya yang banyak memakan waktu. Akhirnya Andi menyerah. Sebagai staf TI, pekerjaan utama Andi adalah membuat situs perusahaan, dan bukannya mengurus isi homepage para staf di perusahaan tersebut. Andi pun berniat untuk membuat sebuah file manager berbasis web yang dapat digunakan oleh para staf untuk mengatur file mereka masing-masing. Setiap staf akan diberikan password yang berbedabeda. Dengan demikian, diharapkan urusan upload, hapus, dan lain sebagainya dapat dilakukan masingmasing. Karena Andi cukup sibuk, maka file manager yang dibuat tidak boleh memakan waktu pembuatan terlalu lama. Perancangan pun segera dilakukan.
Pengaturan keamanan Andi cukup sadar bahwa urusan pengaturan file melalui web bisa sangat berbahaya. Apabila perancangan tidak dilakukan dengan cukup cermat, maka bisa-bisa staf yang satu bisa menghapus file milik staf lain, dan hal-hal tersebut dapat membuat Andi lebih sibuk lagi. Akhirnya, Andi memutuskan bahwa file manager tersebut, yang kemudian dinamakan sebagai webfileman harus memiliki fitur-fitur keamanan berikut ini: Proses login dan logout yang memadai. Setiap staf tidak boleh masuk ke direktori staf lain. Setiap staf tidak boleh masuk ke direktori lain di sistem. Setiap staf hanya boleh melihat file dan direktori yang mereka miliki.
www.infolinux.web.id
Setiap staf hanya boleh menghapus file dan direktori yang mereka miliki. Setiap staf hanya boleh membuat file dan direktori di bawah home directory mereka masing-masing. Ukuran file yang di-upload harus dibatasi. Webfileman harus mampu memastikan bahwa setiap file dan direktori yang ingin diakses oleh staf harus merupakan miliknya sendiri, dan penipuan dengan menggunakan notasi .., ../../, ../../../../dir/../file dan sebagainya harus mampu ditangani. Pada pengembangan selanjutnya, Andi juga berpendapat bahwa logging untuk setiap operasi harus dilakukan. Apabila suatu hari terdapat penyalahgunaan fasilitas ini, maka logging dapat digunakan.
Persiapan database Langkah pertama yang dilakukan adalah membuat sebuah database dengan spefisikasi sebagai berikut: Variabel
Nilai
Nama database
Webfileman
User dengan hak penuh
Webfileman, password webfileman
Andi pun memberikan perintah berikut ini untuk membuat database tersebut: CREATE DATABASE webfileman; GRANT ALL PRIVILEGES ON webfileman.* TO webfileman@localhost IDENTIFIED BY ‘webfileman’; FLUSH PRIVILEGES; Setelah itu, Andi membuat sebuah tabel, yang sementara digunakan untuk menyimpan pasangan nama dan password staf. Tabel tersebut dinamakan sebagai webfileman_auth, dengan spefisikasi field sebagai berikut:
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
TUTORIAL File Manager Berbasis Web dengan PHP
Field
Keterangan
Username
Varchar (15), menyimpan nama staf Varchar (15), menyimpan password staf. Untuk saat
Passwd
ini, password tidak dienkrip.
Berikut ini adalah perintah SQLnya: CREATE TABLE webfileman_auth( username varchar(15), passwd varchar(15)); Selanjutnya, Andi mulai memasukkan data staf yang berhak memiliki homepage pribadi: Username
Password
jengkolman drupadi sendi
jengkolman123 drupadi123 sendi123
Berikut ini adalah perintah SQLnya: INSERT INTO webfileman_auth VALUES (‘jengkolman’,’jengkolman123'); INSERT INTO webfileman_auth VALUES (‘drupadi’,’drupadi123'); INSERT INTO webfileman_auth VALUES (‘sendi’,’sendi123'); Dengan demikian, urusan database pun selesai. Kini Andi akan melanjutkan ke tahap pembuatan direktori yang akan berfungsi sebagai home directory bagi masing-masing staf.
Pembuatan direktori Karena alamat staf berupa http:// www.dagang-siang-malam.com/ /, maka direktori untuk masing-masing staf perlu disiapkan. Direktori-direktori tersebut di buat di dalam direktori utama tempat menyimpan file-file www.dagang-siang-malam.com. Program mkdir dapat digunakan sebagai berikut untuk membuat direktori-direktori tersebut: mkdir jengkolman mkdir drupadi mkdir sendi
Persiapan permission Andi menyadari bahwa file manager berbasis web yang akan dibuat memungkinkan para staf untuk membuat
file dan direktori baru, kemudian menghapus file dan direktori tersebut. Tentunya, kondisi demikian akan bisa terjadi kalau direktori para staf tersebut dapat ditulisi oleh user yang menjalankan web server. Pada perusahaan hosting di mana PT. Dagang Siang Malam meletakkan websitenya, pengaturan permission tersebut telah diatur, sehingga webfileman dapat dijalankan dengan mudah. Namun, karena Andi membuat webfileman ini di dalam desktop-nya yang berisikan Red Hat Linux 9, maka beberapa pengaturan perlu dilakukan terlebih dahulu. Yang pertama, user yang menjalankan Apache pada Red Hat Linux 9 adalah user apache. Saat ini, program webfileman dimiliki oleh user Andi. Andi pun memberikan sebagian kepemilikan direktori webfileman dan seluruh isinya kepda user apache dengan mengubah grup pemilik. Berikut adalah perintah yang dijalankan: chgrp apache -R webfileman Yang kedua, user apache harus memiliki kemampuan menulisi direktori webfileman tersebut. Dengan demikian, Andi memberikan hak tulis kepada user apache terhadap direktori webfileman tersebut: chmod 775 -R webfileman Untuk saat ini, Andi sangat menyadari bahwa pemberikan permission seperti ini cukuplah rentan. Namun, sekali lagi, Andi harus segera menyelesaikan program ini, karena berbagai tugas utama sudah mengantri untuk dikerjakan. Sampai saat ini, seluruh isi direktori webfileman kini dapat ditulisi oleh user apache. Pengaturan file sistem pun selesai. Andi siap untuk masuk ke langkah berikutnya.
Proses login dan logout Andi ingin membuat webfileman ini sesederhana mungkin. Dalam artian, tidak ada pesan atau tulisan yang tidak perlu di layar. Proses login yang berhasil akan memperlihatkan file dan direktori mereka. Proses login yang gagal akan segera kembali ke halaman login. Begitu juga dengan proses logout. Setelah para staf melakukan operasi logout, maka halaman
www.infolinux.web.id
login kembali ditampilkan. Untuk proses login dan logout, Andi menggunakan session. Pertama-tama, staf akan melihat halaman login.html yang berfungsi sebagai tempat memasukkan username dan password. Halaman ini jugalah yang akan ditampilkan apabila proses login gagal. Proses otentikasi akan dilakukan oleh halaman login.php. Apabila otentikasi berhasil, maka staf kan dibawa ke halaman staff.php. Apabila terdapat para staf yang nakal dan mencoba mengunjungi staff.php tanpa melakukan otentikasi, maka secara otomatis para staf tersebut akan menjumpai halaman login.html. File staff.php berfungsi sebagai halaman utama tempat para staf dapat melihat file dan direktori mereka serta melakukan berbagai operasi terhadap file dan direktori miliknya. File staff.php juga menampilkan lokasi direktori aktif dan menyediakan link untuk melakukan logout. Di halaman yang sama, staf akan menjumpai link untuk mengupload file dan membuat direktori. Operasi sebenarnya untuk setiap file dan direktori tidak akan dilakukan oleh staff.php. File fs.php lah yang bertanggung jawab untuk hal tersebut. Ketika staf melakukan klik pada link untuk logout, file logout.php akan dipanggil, dan segala session yang ada akan dibersihkan. Halaman login.html kembali ditampilkan.
Halaman utama: staff.php File staff.php adalah file utama dari program webfileman ini. File ini bertanggung jawab untuk menampilkan berbagai informasi dan link yang berhubungan dengan direktori aktif user. File ini juga menyediakan link untuk logout. Kemudian, file ini juga bertanggung jawab untuk memberikan operasi tertentu kepada file dan direktori. Sebuah file tidak dapat diklik di webfileman ini. Sebaliknya, direktori dapat diklik, dan apabila hal tersebut dilakukan, staf akan masuk ke dalam direktori tersebut. Sebuah link baru untuk kembali ke direktori orang tua pun segera ditampilkan oleh staff.php. Apabila sebuah direktori masing kosong, maka sebuah link untuk
INFOLINUX FEBRUARI 2004
61
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Halaman login Webfileman.
menghapus direktori akan ditampilkan. Link untuk menghapus file akan selalu ditampilkan. Pada setiap direktori, staff.php juga akan menampilkan link untuk meng-upload dan membuat direktori baru. Apabila staf melakukan operasi klik pada sebuah direktori, maka staf tersebut akan dibawa masuk ke dalam direktori tersebut. Akan tetapi, file staff.php tidak bertanggung jawab untuk melakukan hal tersebut. Demikian juga ketika staf melakukan klik pada link untuk menghapus file. Staff.php juga tidak bertanggung jawab untuk menghapus file tersebut. Apa yang dilakukan oleh staff.php hanyalah menampilkan segala sesuatu yang boleh ditampilkan. Segala operasi file sistem menjadi tanggung jawab fs.php.
Penanggung jawab operasi file sistem: fs.php Setiap operasi file sistem akan ditangani oleh file ini. File ini akan menerima maksimal tiga parameter yang akan menentukan cara kerjanya. Yang pertama adalah type dari file dan direktori. Type dapat berupa file atau dir. Yang kedua adalah task. Parameter task berisikan tugas yang akan dilakukan terhadap file atau direktori tersebut. Task yang mungkin untuk file adalah delete dan upload. Sementara, task yang mungkin untuk direktori adalah cd (change directory, harap diperhatikan, operasi ini tidak benar-benar masuk ke suatu direktori, melainkan hanya mengganti
62
INFOLINUX FEBRUARI 2004
File Manager Berbasis Web dengan PHP
Daftar file dan direktori.
variabel penanda direktori aktif), up (kembali ke direktori orang tua, hanya mengubah penanda direktori aktif), create (membuat direktori) dan del (menghapus direktori kosong). Sebagai salah satu cara mencegah tindakan yang tidak bertanggung jawab, task up tidak akan berlaku untuk home directory para staf atau pun segala direktori di luar home directory staf tersebut. Yang ketiga adalah filename apabila nilai parameter pertama adalah file. Parameter ini akan bernilai dirname apabila nilai parameter pertama adalah dir. Tidak semua task memerlukan parameter ini. Task up pada type dir misalnya, tidak membutuhkan parameter ini. Katakanlah seorang staf memiliki file file1 dan direktori dir1. Link untuk menghapus file ini akan mengacu kepada fs.php?type=file&task=del&filename=file1. Sementara itu, apabila direktori dir1 masing kosong, maka link untuk menghapus direktori ini akan mengacu kepada fs.php?type=dir&task=del&dirname=dir1. Dan link untuk masuk ke dalam direktori ini akan mengacu kepada fs.php?type=dir&task=cd&dirname=dir1. Hal tersebut disadari oleh Andi sangatlah rentan. Andi bukanlah seseorang yang mengenal betul keamanan sistem, tapi Andi sangat sadar bahwa staf jengkolman, teman dekatnya yang kebetulan juga berhak untuk memiliki homepage, adalah rekan kerja yang sedikit nakal. Apabila jengkolman sukses melakukan authentikasi dan kemudian mengganti
www.infolinux.web.id
alamat URL menjadi fs.php?type= file&task=del&filename=../drupadi/file1 misalnya, maka file1 milik drupadi bisa saja terhapus. Atau jengkolman bisa saja mengarahkan URL menjadi fs.php?type= dir&task=cd&dirname=../drupadi/, dan file-file drupadi akan terlihat semuanya. Kelemahan tersebut dapat ditangani dengan hanya mengambil basename dari dirname dan filename, sehingga hanya nama file dan direktori yang akan diambil. Dengan demikian, ../../drupadi/file1 akan menjadi file1. Namun, karena memiliki sedikit waktu luang, cara tersebut tidak digunakan oleh Andi. Sebagai gantinya, Andi mendaftar semua file dan direktori milik staf yang sedang aktif ketika fs.php dipanggil, dan setiap operasi terhadap file dan direktori hanya bisa dilakukan terhadap file milik staf tersebut. Semua file dan direktori tersebut akan dimasukkan ke dalam sebuah array. File fs.php adalah program yang cukup mulia. Tidak ada satu pun tulisan yang dicetak oleh file ini. Karena, setelah semua tugas selesai, halaman aktif segera dipindahkan ke staff.php.
Pembuatan direktori Pembuatan direktori ditangani oleh file createdir.php. Apabila staf mengakses file ini tanpa melakukan authentikasi terlebih dahulu, maka halaman login.html kembali akan ditampilkan. Sederhananya, nama direktori akan dilewatkan ke fs.php dengan parameter type=dir&task=create&dirname =.
TUTORIAL
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
File Manager Berbasis Web dengan PHP
Upload file Karena keterbatasan waktu, Andi hanya membatasi staf untuk mengupload satu file dalam satu waktu. Artinya, apabila staf ingin meng-upload file kedua, maka upload.php harus dipanggil kembali. Atau link untuk upload file harus diklik sekali lagi. Sama seperti createdir.php dan halaman lainnya, upload.php akan membawa staf kembali ke login.html apabila proses otentikasi belum dilakukan oleh staf tersebut.
Variabel-variabel session Apabila proses login berhasil, maka beberapa variabel session berikut ini akan diatur: