Heriyadi adalah programer yang

Ukuran: px
Mulai penontonan dengan halaman:

Download "Heriyadi adalah programer yang"

Transkripsi

1 TUTORIAL WebDAV di Linux Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial WebDAV di Linux Protokol HTTP adalah protokol luar biasa yang memiliki sejumlah fitur. Salah satu fiturnya adalah dapat dikembangkan sedemikian rupa sehingga dapat memenuhi kebutuhan lebih lanjut. WebDAV adalah salah satu perluasan HTTP yang luar biasa berguna! Heriyadi adalah programer yang bekerja satu tim dengan Lely. Dalam pembuatan program, ada kalanya mereka bekerja pada file yang sama, walaupun hal tersebut jarang terjadi. Sewaktu masih dalam satu kantor, mereka dengan senang hati menggunakan server internal untuk saling bertukar file dan melakukan berbagai kegiatan kolaboratif lainnya. Pada suatu hari, Heriyadi dikirim ke Rusia untuk memperdalam ilmunya. Selama belajar ke Rusia, Heriyadi tetap bertanggung jawab sebagai programer yang bekerja sama dengan Lely. Karena berjauhan secara geografis, adalah tidak mungkin bagi Heriyadi untuk berhadapan muka dengan Lely. Kegiatan pun dipindahkan ke server publik yang kebetulan berada dalam satu gedung. Heriyadi mendambakan cara untuk mengirimkan file dengan mudah. Dan terkadang, heriyadi menginginkan Lely untuk tidak mengedit file tertentu yang sedang diedit oleh Heriyadi. Apakah solusi untuk kebutuhan Heriyadi tersebut? Menggunakan dan mengirimkan attachment jelas tidak praktis karena Lely harus menerima dan meletakkan attachment Heriyadi ke tempat yang bersesuaian. Menggunakan ftp? Kedengarannya keren dan memenuhi kebutuhan. Tapi, ftp jelas tidak cukup keren untuk kebutuhan strong authentication, encryption, proxy support, dan caching. Selain itu, fasilitas locking sangat diperlukan oleh Heriyadi. Solusi untuk Heriyadi dan Lely adalah penggunaan WebDAV untuk bekerja secara kolaboratif. Dengan penggunaan WebDAV yang baik, Heriyadi dan Lely dapat saling kirim mengirim file dengan aman, cepat, dan mudah. Heriyadi dan Lely dapat pula menggunakan versioning untuk menjaga perubahan yang mereka kerjakan. Dan mereka mendapatkan segala kemampuan HTTP. Bahkan, dengan penggunaan Davfs di Linux, mereka dapat bekerja pada WebDAV server seperti halnya bekerja dengan folder biasa. Tertarik? Apa itu WebDAV? Beberapa pihak lebih menyukai istilah DAV dibandingkan dengan WebDAV. DAV sendiri adalah singkatan dari Distributed Authoring and Versioning, suatu perluasan protokol HTTP yang memungkinkan pengguna untuk bekerja secara terdistribusi. Pengertian bekerja di sini tentunya juga melibatkan penulisan atas file tertentu. Dengan demikian, apabila tanpa WebDAV kita akan mendapatkan kemampuan read-only dari HTTP, maka dengan hadirnya WebDAV, kita akan mendapatkan fasilitas read-write. DAV menambahkan method dan header untuk HTTP. DAV menspesifikasikan bagaimana menggunakan segala penambahan fasilitas, cara untuk menformat request dan response serta segala perubahan pada tingkah laku HTTP. Seperti kasus Heriyadi dan Lely, DAV sangat berguna untuk bekerja jarak jauh. Setiap pelaku yang terlibat dapat langsung bekerja, bahkan dalam beberapa kondisi dapat langsung bekerja di web. Dalam bentuk yang lebih nyata, DAV seringkali digunakan oleh CMS (Content Management System) untuk meningkatkan kemudahan penggunaan. WebDAV diramalkan dapat menggantikan beberapa protokol yang aktif bekerja. Seperti halnya adalah protokol POP3 dan IMAP. Percaya atau tidak, Anda bisa membaca dengan WebDAV client! Melihat isi direktori dari cadaver Melihat isi direktori dari Zope 50 INFOLINUX JANUARI 2004

2 Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial TUTORIAL WebDAV di Linux File a.pdf di ZMI tidak terkunci File a.pdf di ZMI terkunci Bahkan salah satu contoh di dokumentasi resmi cadaver (salah satu WebDAV client) menggambarkan cara untuk membaca e- mail dari server Hotmail. Dan satu lagi yang paling menguntungkan, DAV adalah teknologi terbuka. Sistem operasi mana saja yang ingin mengikuti teknologi terbaru sepertinya harus mendukung protokol ini. Windows, Linux, dan Mac OS telah terbukti sangat mendukung. WebDAV dan FTP Kalau hanya untuk transfer file, kenapa harus sampai menggunakan WebDAV? Bukankah FTP berfungsi untuk melakukan transfer file? Ada beberapa kelemahan FTP yang membuat FTP kurang layak untuk dipakai. Yang pertama-tama adalah DAV mengambil segala keuntungan dari HTTP. Hal tersebut termasuk otentikasi yang kuat, enkripsi, dukungan proxy, dan caching. Yang kedua, transfer pada HTTP dapat dilakukan secara lebih efisien karena beberapa transfer dapat di-pipeline melalui sebuah koneksi TCP tunggal, sementara, setiap transfer pada FTP memerlukan koneksi baru. WebDAV kini banyak didukung oleh web server terkemuka, di antaranya Apache dan komponen Zope. Server WebDAV Untuk mencoba WebDAV, kita memerlukan sebuah server. Bagi fanatik Apache, Anda bisa mempergunakan mod_dav. Dalam artikel ini, kita akan mempergunakan Zope. Zope siap untuk bekerja dalam protokol DAV. Jalankanlah Zope Anda. Client untuk WebDAV Saat ini, terdapat banyak sekali client untuk WebDAV yang bisa digunakan. Sebagian di antaranya adalah free software, dan sebagian lagi adalah software proprietary. Salah satu client berbasiskan teks yang luar biasa adalah cadaver. Cadaver menggunakan interface teks dan tampilannya sangat mirip dengan tampilan ftp client berbasis teks lainnya. Sebagai WebDAV client berbasis teks, kemampuan cadaver sangat patut diberikan acungan jempol. Dengan cadaver, kita dapat melakukan upload ataupun download file. Selain itu, fasilitas help yang diberikan juga cukup memadai, walaupun tidak berlebihan. Operasi namespace seperti copy dan move juga didukung dengan baik. Begitupun dengan fasilitas untuk bekerja dengan collection/direktori. Property manipulation dan recource locking adalah fasilitas tambahan yang sangat berguna. Apabila Anda menggunakan Debian, installah cadaver dengan perintah berikut ini: apt-get install cadaver Untuk distro lain, carilah ke dalam cdrom distro Anda. Apabila tidak didapatkan, carilah rpm yang dipaketkan untuk distro Anda oleh pihak ketiga. Apabila masih tidak tersedia, lakukan kompilasi dengan men-download source code-nya terlebih dahulu di Setelah terinstal, jalankanlah cadaver dengan perintah: cadaver Sebuah prompt akan ditampilkan untuk Anda. Sampai saat ini, Anda menjumpai prompt seperti halnya prompt pada beberapa ftp client berbasis teks. Segala perubahan akan langsung dikerjakan pada server. Melakukan koneksi Berikanlah perintah open <host> untuk membuka koneksi dengan server yang mendukung WebDAV. Contoh: open Tanda seru pada prompt akan digantikan dengan path aktif. Melihat isi direktori/collection Sama seperti halnya pada FTP ataupun file sistem, berikanlah perintah ls. Contoh: ls Membuat direktori/collection Untuk membuat direktori/collection, berikanlah perintah mkcol. Anda harus melalui proses authentikasi terlebih dahulu. Masukkanlah username dan password. Contoh: mkcol A Masuk ke dalam direktori Berikanlah perintah cd untuk masuk ke INFOLINUX JANUARI

3 TUTORIAL WebDAV di Linux Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial Mencari object yang terkunci dengan ZMI Penggunaan DAVFS dalam suatu direktori Contoh: cd A Melihat direktori aktif Berikanlah perintah pwd untuk melihat direktori aktif Contoh:pwd Melihat isi file teks Gunakanlah perintah less untuk melihat isi dari suatu file teks di server. Contoh: less index_html Men-download file Sama seperti halnya FTP, cadaver pun mendukung perintah get untuk mendownload file. Contoh: get index_html Meng-upload file Berikanlah perintah put untuk meng-upload file. Contoh: put index_html Menghapus file Berikanlah perintah delete untuk menghapus file. Contoh: delete index_html Meng-copy file Meng-copy file dapat dengan mudah dikerjakan dengan perintah copy. Contoh: copy index_html index_html2 Mengunci sebuah resource Dalam bekerja secara kolaboratif, ada kalanya kita perlu mengunci sebuah resource agar tidak dimodifikasi oleh pihak lain terlebih dahulu. Berikanlah perintah lock untuk mengunci sebuah resource. Contoh: lock a.pdf Membebaskan resource Untuk membebaskan resource yang terkunci, berikanlah perintah unlock. Contoh: unlock a.pdf DAVFS Penggunaan DAVfs memungkinkan Anda untuk mengakses DAV Server seperti halnya mengakses file sistem. Untuk menggunakan Dav file system, pastikan Anda mengaktifkan dukungan coda file system di kernel Anda. Coda file system dapat diaktifkan pada File Systems Network File Systems Coda file system support. Untuk mengetahui apakah sistem Anda telah memiliki dukungan Coda file system, berikanlah perintah berikut ini: $ grep coda /proc/filesystems nodev coda Apabila perintah grep menampilkan hasil seperti pada contoh, maka Anda telah mengaktifkan dukungan Coda pada kernel. Lanjutlah ke langkah berikutnya. Apabila perintah tersebut kembali ke prompt tanpa menampilkan hasil apapun, maka jangan khawatir terlebih dahulu. Umumnya, coda telah diaktifkan dalam modul. Beberapa distro hadir dengan dukungan coda file system. Berikan perintah berikut ini apabila perintah grep sebelumnya tidak memberikan output apapun juga: # modprobe coda Apabila masih terjadi kesalahan, sepertinya kompilasi ulang kernel dengan pengaktifan Coda harus dilakukan. Langkah berikutnya, download-lah source code DAVFS2 terlebih dahulu di http;//dav.sourceforge.net. Setelah itu, lakukanlah perintah-perintah berikut ini: tar zxvf davfs tar.gz cd davfs /./configure make su make install Berikut ini adalah contoh-contoh penggunaan mount.davfs untuk proses mounting: mount.davfs /mnt/ mount.davfs /mnt/ -o username=nopri,password=nopri Untuk unmounting, lakukanlah seperti biasa: umount /mnt Kini Anda dapat mengakses WebDAV di direktori lokal Anda. Luar biasa, bukan? Selesai sudah perkenalan kita dengan WebDAV, sebuah protokol yang sangat berguna. Dengan WebDAV, perbedaan jarak tidak membuat pekerjaan menjadi lebih susah dan merepotkan. Bekerja secara kolaboratif pun menjadi lebih seru dan menyenangkan. Tetap berkarya! Noprianto (noprianto@infolinux.co.id) 52 INFOLINUX JANUARI 2004

4 Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial TUTORIAL Linked List pada C Linked List pada C Akan bekerja dengan record dalam jumlah besar? Barangkali Anda membutuhkan alokasi memory dinamis dengan penggunaan linked list. Alokasi memory konvensional tidak lagi bisa diandalkan. Bekerja dengan data yang besar tidak dapat kita hindari. Dan tidak jarang pula, data besar tersebut memiliki hubungan yang erat. Sebagai contoh, kita akan bekerja dengan file yang menyimpan sangat banyak record, di mana setiap record juga memiliki banyak field. Tugas kita tidak hanya sekadar menampilkan setiap record-nya, melainkan harus pula menambahkan record, menghapus beberapa record sesuai keinginan user, sampai mengurutkan record! Kondisi tersebut mengharuskan kita memiliki satu rantai data yang panjang dan saling berhubungan. Rantai data tersebut harus mampu menampung semua data yang kita miliki. Penggunaan array saja jelas tidak bisa, karena kita bekerja dengan barisan data heterogen. Kita perlu menggunakan union ataupun struct. Namun, kita juga tidak dapat semena-mena menggunakan array of struct dalam jumlah besar. Karena lokasi penampungan memory untuk alokasi konvensional tidak akan mempu mencukupi kebutuhan memory kita. Selain itu, kita mungkin akan melakukan alokasi dan dealokasi beberapa kali di dalam program untuk mengoptimasi penggunaan memory. Solusi yang lebih baik adalah menggunakan linked list, baik singly (single) linked list ataupun doubly (double) linked list. Pembuatan struct Apa yang harus kita lakukan kali pertama adalah mengerti penggunaan struct di C. Bagi pengguna Pascal, struct adalah istilah di C untuk record. Penggunaan struct memungkinkan kita bekerja dengan satu record yang memiliki banyak field. Kita akan mulai dengan penggunaan struct sederhana. #include <stdio.h> int main() struct Test int x; char c; ; struct Test test1; test1.x = 10; test1.c = A ; printf( Isi dari test1.x: %d\n, test1.x); printf( Isi dari test1.c: %c\n, test1.c); return 0; Program sederhana tersebut akan membuat satu struct bernama Test, kemudian membuat variabel test1 yang bertipe Struct Test. Setelah itu, nilai 10 dan A masingmasing akan diisikan ke field x dan c untuk test1 tersebut. Terakhir, program mencetak isi dari test1.x dan test1.c. Perhatikanlah kode berikut ini: 1. struct Test int x; char c; ; 2. struct Test test1; 3. test1.x = 10; test1.c = A ; Bagian (1) memperlihatkan bagaimana mendeklarasikan sebuah struct dengan nama Test. Sementara, bagian (2) memperlihatkan bagaimana mendeklarasikan variabel test1 yang bertipe Struct Test. Bagian terakhir, memperlihatkan bagaimana cara mengakses field di dalam test1. Struct adalah salah satu dasar penggunaan linked list. Apabila pemahaman akan struct sudah baik, maka penggunaan linked list akan semakin mudah. Berikutnya, kita akan membahas lebih jauh tentang alokasi memory dinamis. Alokasi memory dinamis Setelah memahami penggunaan struct, kita akan bergerak ke pengalokasian memory secara dinamis. Setelah yang satu ini beres, maka kita akan melangkah dengan tenang ke linked list. Anda membutuhkan sebuah array of character yang begitu panjang. Dan sayangnya, array tersebut mungkin tidak Anda perlukan sepanjang program berjalan. Memesan memory secara konvensional seperti char s[10000] mungkin mudah dipakai. Sayangnya, kita akan kehilangan kebebasan untuk mendealokasikan memory yang sudah tidak terpakai. Sementara, C bukanlah Java atau Python yang cukup pemaaf dan sangat mengerti kelalaian programer dalam menggunakan memory. Apa yang akan terjadi apabila Anda memiliki banyak variabel sejenis char s[10000] tanpa pengalokasian dinamis? Melangkah lebih jauh, apa yang akan terjadi dengan memory sistem apabila kita menggunakan array of struct besar dalam jumlah banyak? Kita menjadi begitu boros dengan sumber daya yang cukup terbatas! Kita butuh alokasi memory secara dinamis. Pengalokasian memory secara dinamis dapat dilakukan dengan salah satu fungsi alokasi memory yaitu malloc(). Sementara, lawannya, dealokasi memory, dapat dilakukan dengan memanggil fungsi free(). Fungsi malloc() void *malloc(size_t size); Fungsi ini dideklarasikan di dalam header stdlib.h. Dengan demikian, jangan lupa untuk meng-include header tersebut. Fungsi INFOLINUX JANUARI

5 TUTORIAL Linked List pada C Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial ini akan meminta memory sebanyak size bytes, dan apabila sukses, pointer ke lokasi memory yang dipesan akan dikembalikan. Apabila gagal, fungsi ini akan mengembalikan NULL. Memory yang dialokasikan tidak akan dibersihkan. Hal ini berbeda dengan fungsi calloc(). Linux mengikuti prinsip optimistic memory allocation strategy. Hal ini berarti, apabila malloc() sukses dan mengembalikan nilai bukan NULL, tidak akan ada jaminan bahwa memory selalu tersedia. Pustaka libc (di atas ) dan GNU Libc (2.x) datang bersama mallloc() yang dapat dipengaruhi oleh variabel environment. Umumnya, kita juga melibatkan penggunaan typecasting. Fungsi free() void free(void *ptr); Fungsi ini dideklarasikan di dalam header stdlib.h. Dengan demikian, jangan lupa untuk meng-include header tersebut. Fungsi ini akan membebaskan memory teralokasi yang ditunjuk oleh variabel ptr. Apabila ptr adalah NULL, maka tidak ada operasi yang akan dilakukan. Fungsi ini tidak mengembalikan nilai. Contoh: Sebagai contoh, kita akan mengalokasikan array of character sejumlah buah secara dinamis. Untuk itu, kita akan menggunakan kode berikut ini: #include <stdio.h> #include <stdlib.h> int main() char *s = (char *) malloc (50000 * sizeof (char)); free(s); return 0; Program ini tidak melakukan tindakan yang visible terhadap pengguna. Berikut ini adalah penjelasan untuk fungsi malloc() dan free() yang digunakan. 1. char *s = (char *) malloc (50000 * sizeof (char)); 2. free(s); Pada bagian (1), kita memesan memory sejumlah kali ukuran char. Setelah itu, kita melakukan typecasting ke bentuk char *. Sementara pada bagian (2), kita membahaskan memory teralokasi. Contoh berikut mungkin akan sedikit lebih dekat kepada penggunaan linked list. Kita akan memesan sebuah struct secara dinamis. #include <stdio.h> #include <stdlib.h> int main() struct Test int x; char c; ; struct Test * test1 = (struct Test *) malloc (sizeof (struct Test)); test1 -> x = 10; test1 -> c = A ; printf( Isi dari test1->x: %d\n, test1->x); printf( Isi dari test1->c: %c\n, test1->c); free(test1); return 0; Sama seperti contoh struct sebelumnya, program ini mengisikan nilai 10 dan A kepada masing-masing field x dan c struct test1. Setelah itu, pencetakan dilakukan. Bedanya, contoh yang satu ini menggunakan alokasi memori secara dinamis yang ditandai dengan pemanggilan fungsi malloc(). Perhatikanlah bagian berikut ini: 1. struct Test int x; char c; ; 2. struct Test * test1 = (struct Test *) malloc (sizeof (struct Test)); 3. test1 -> x = 10; test1 -> c = A ; 4. free(test1); Pada bagian (1), seperti contoh terdahulu, kita mendeklarasikan Struct Test. Pada Bagian (2), kita memesan memori secara dinamis yang akan digunakan oleh struct test1. Kita memesan sejumlah ukuran Struct Test, dan hasilnya akan digunakan untuk menyimpan test1. Perhatikan bagian (3). Apabila sebelumnya kita menggunakan notasi titik untuk mengakses field, maka dalam pengalokasian dinamis ini, kita menggunakan notasi ->. Bagian terakhir akan membebaskan memory teralokasi. Saatnya untuk terbang ke singly linked list. Singly linked list Secara teori, linked list adalah sejumlah node yang dihubungkan secara linier dengan bantuan pointer. Dikatakan singly (single) linked apabila hanya ada satu pointer yang menghubungkan setiap node. Setiap node akan berbentuk struct dan memiliki satu buah field bertipe struct yang sama, yang berfungsi sebagai pointer. Dalam menghubungkan setiap node, kita dapat menggunakan cara first-create-firstaccess ataupun first-create-last-access. Dalam artikel ini, kita hanya akan membahas cara first-create-first-access. Kita akan mulai dengan deklarasi struct untuk node. struct tnode int x; struct tnode *next; Yang berbeda dengan deklarasi struct sebelumnya adalah satu field bernama next, yang bertipe struct tnode. Hal ini sekilas dapat membingungkan. Namun, satu hal yang jelas, variabel next ini akan menghubungkan kita dengan node di sebelah kita, yang juga bertipe struct tnode. Hal inilah yang menyebabkan next harus bertipe struct tnode. Asumsikan kita memiliki sejumlah node yang selalu menoleh ke sebelah dalam arah yang sama. Atau, sebagai alat bantu, Anda bisa mengasumsikan beberapa orang yang bermain kereta api. Yang belakang akan 54 INFOLINUX JANUARI 2004

6 Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial TUTORIAL Linked List pada C memegang yang depan, dan semuanya menghadap arah yang sama. Setiap pemain adalah node. Dan tangan pemain yang digunakan untuk memegang bahu pemain depan adalah variabel next. Sampai di sini, kita baru saja mendeklarasikan tipe data dasar sebuah node. Selanjutnya, kita akan mendeklarasikan beberapa variabel pointer bertipe struct tnode. Beberapa variabel tersebut akan kita gunakan sebagai awal dari linked list, node aktif dalam linked list, dan node sementara yang kita gunakan dalam pembuatan node di linked list. Berikan nilai awal NULL kepada mereka. Berikan deklarasi seperti berikut ini: struct tnode *head=null, *curr=null, *node=null; Dengan demikian, sampai saat ini, kita telah memiliki tiga node. Satu sebagai kepala (head), satu sebagai node aktif dalam linked list (curr) dan satu lagi node sementara (node). Kita telah siap untuk membuat singly linked list. Untuk itu, kita akan memasukkan nilai tertentu sebagai nilai untuk field x dengan cara melakukan perulangan sehingga campur tangan user tidak diperlukan. Seperti yang dikemukakan sebelumnya, kita akan membuat singly linked list dengan cara first-create-first-access. Dengan cara ini, node yang dibuat pertama akan menjadi head. Node-node yang dibuat setelahnya akan menjadi node-node pengikut. Untuk mempermudah pengingatan, ingatlah gambar anak panah yang mengarah ke kanan. Head akan berada pada pangkal anak panah, dan node-node berikutnya akan berbaris ke arah bagian anak panah yang tajam. [head]->[node1]->[node2]->[node3]... [noden]->null > node = (struct tnode *) malloc (sizeof(struct tnode)); node -> x = i; if (head == NULL) head = node; curr = node; else curr -> next = node; curr = node; curr -> next = NULL; Berikut adalah penjelasan kode-kode pembuatan singly linked list tersebut. Pertama-tama, kita membuat perulangan dari 0 sampai 4, yang dimaksudkan untuk membuat lima buah node yang masingmasing field x nya berisikan nilai dari 0 sampai 4. Pembuatan node dilakukan dengan fungsi malloc(). for (i=0; i<5; i++) node = (struct tnode *) malloc (sizeof(struct tnode)); node -> x = i; Setelah itu, kita perlu membuat node dan penghubung. Pertama-tama, kita akan menguji apakah head bernilai NULL. Kondisi head bernilai NULL hanya terjadi apabila kita belum memiliki satu node pun. Dengan demikian, node tersebut akan kita jadikan sebagai head. Node aktif (curr), juga kita dapat dari node tersebut. Sekarang, bagaimana kalau head tidak bernilai NULL alias kita telah memiliki satu atau lebih node? Yang pertama kita lakukan adalah menghubungkan pointer next dari node aktif (curr) ke node yang baru saja kita buat. Dengan demikian, kita baru saja membuat penghubung antara rantai lama dengan mata rantai baru. Atau, dalam permainan kereta api, pemain paling depan dalam barisan lama akan menempelkan tangannya pada bahu pemain yang baru bergabung. Node aktif (curr) kemudian kita pindahkan ke node yang baru dibuat. if (head == NULL) head = node; curr = node; else IKLAN Apabila kita perhatikan, setiap node memiliki petunjuk untuk node sebelahnya. Bagaimana dengan node terakhir? Kita berikan nilai NULL. Dengan demikian, setiap node kebagian jatah. int i; for (i=0; i<5; i++) INFOLINUX JANUARI

7 TUTORIAL Linked List pada C Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial curr -> next = node; curr = node; Setelah semuanya dibuat, sudah saatnya bagi kita untuk menghubungkan pointer next untuk mata rantai terakhir ke NULL. curr -> next = NULL; Dan bravo! Singly linked list baru saja kita ciptakan. Ada yang terlupa? Ada. Bagaimana kita tahu bahwa linked list yang kita ciptakan adalah linked list yang benar? Salah satu cara untuk mengetahuinya adalah dengan mencetak field x untuk semua node. Dari head sampai node terakhir. curr = head; while (curr!= NULL) printf( %d, curr -> x); curr = curr -> next; printf( \n ); Pertama-tama, kita meletakkan node aktif (curr) ke posisi head. Setelah itu, kita akan pindahkan kunjungi satu per satu node dengan memindahkan node aktif (curr) ke posisi sebelahnya. Semua kunjungan tersebut akan kita lakukan apabila node aktif (curr) tidak menemui NULL. Anda mungkin ingin menambahkan pemanggilan free() untuk melakukan dealokasi. Kode selengkapnya: #include <stdio.h> #include <stdlib.h> int main() struct tnode int x; struct tnode *next; ; struct tnode *head=null, *curr=null, *node=null; int i; for (i=0; i<5; i++) node = (struct tnode *) malloc (sizeof(struct tnode)); node -> x = i; if (head == NULL) head = node; curr = node; else curr -> next = node; curr = node; curr -> next = NULL; curr = head; while (curr!= NULL) printf( %d, curr -> x); curr = curr -> next; printf( \n ); return 0; Singly linked list pun selesai. Siap terbang lebih tinggi untuk doubly (double) linked list? Doubly linked list Apabila dalam singly linked list setiap node memiliki satu pointer yang menunjuk ke node sebelahnya, maka doubly linked list lebih serakah dengan membuat setiap node memiliki dua buah pointer: ke sebelah kiri (sebelum) dan ke sebelah kanan (setelah). Gambarkan sekali lagi dalam anak panah berikut ini: NULL<-[head]-><-[node1]-><-[node2]- >...<-[tail]->null > Bertambah lagi komponen yang akan kita gunakan. Apabila dalam singly linked list kita hanya memiliki head, curr dan node, maka untuk doubly linked list, kita menambahkan satu penunjuk yang berfungsi sebagai akhir dari list: tail. Bagian kiri dari head akan menunjuk ke NULL. Demikian pula dengan bagian kanan dari tail. Setiap node saling terhubung dengan pointer kanan dan kiri. Bagaimana dengan permainan kereta api kita yang populer tersebut? Sayang sekali. Kita tidak dapat memainkannya lagi. Sebagai gantinya, kita akan memainkan sesuatu yang lebih menarik. Saling berpegangan tangan, kemudian membuat barisan. Setiap pemain memegang teman di sebelah kirinya dengan tangan kiri, dan memegang teman di sebelah kanannya dengan tangan kanan. Bagaimana dengan pemain-pemain paling ujung yang kesepian? Pemain paling kiri akan memegang udara dengan tangan kirinya, dan pemain paling kanan akan memegang udara dengan tangan kanannya. Seperti biasa, kita mulai dengan pembuatan struct tnode. Harap diperhatikan bahwa kini kita juga memiliki pointer prev selain next. struct tnode int x; struct tnode *prev; struct tnode *next; ; Kemudian, tiba saatnya bagi kita untuk mendeklarasikan beberapa node yang akan kita gunakan sebagai head, tail, node aktif (curr) dan node sementara (node). struct tnode *head=null, *curr=null, *node=null, *tail=null; Sama seperti pada pembuatan singly linked list, dalam pembuatan doubly linked list ini, kita akan membuat sebuah perulangan sebanyak 5 kali untuk mengisikan nilai 0 sampai 4 ke dalam field x untuk masing-masing node. int i; for (i=0;i<5;i++) node = (struct tnode *) malloc (sizeof(struct tnode)); node -> x = i; if (head == NULL) head = node; head -> prev = NULL; curr = node; else curr -> next = node; 56 INFOLINUX JANUARI 2004

8 Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial TUTORIAL Linked List pada C node -> prev = curr; curr = node; curr -> next = NULL; tail = curr; Secara umum, kode yang kita buat hampir sama dengan pembuatan singly linked list. Hanya bedanya, pada doubly linked list, kita menghubungkan pointer kiri dan kanan suatu node. if (head == NULL) head = node; head -> prev = NULL; curr = node; else curr -> next = node; node -> prev = curr; curr = node; Pertama-tama, tentunya kita perlu menguji apakah head bernilai NULL yang artinya belum ada satu node pun yang tercipta. Apabila demikian, maka node yang kita buat akan menjadi head. Node aktif (curr) pun di set sesuai node yang dibuat. Dan sebagai konsekuensi dari doubly linked list, kita mengatur pointer prev pada head menunjuk ke NULL. Pada permainan gandeng menggandeng tangan kita, kita meminta satu orang untuk mulai membuat barisan, dengan tangan kirinya memegang udara dan tangan kanannya siap untuk menggandeng pemain berikut. Bagaimana kalau head tidak NULL? Hal tersebut berarti kita telah memiliki satu atau lebih node yang terhubungan secara double. Yang perlu kita lakukan adalah membuat pointer next pada node aktif (curr) untuk menunjuk ke node yang baru saja kita buat. Dan tidak lupa, sebagai konsekuensi dari doubly linked list, kita juga membuat pointer prev pada node yang baru saja kita buat untuk menunjuk kepada node aktif (curr). Setelah keduanya saling tahu kiri dan kanan masing-masing, kita memindahkan node aktif (curr) ke node yang baru saja dibuat. Pada permainan kita, satu atau lebih pemain telah membentuk barisan. Lalu datang pemain baru. Pemain kesepian di barisan akan menggandeng pemain yang baru bergabung tersebut dengan tangan kanannya. Sementara, pemain baru akan menyambut dengan tangan kirinya. Maka pemain baru telah tergabung ke dalam barisan. Dan tidak lupa, pemain aktif (yang akan meggandeng) kita pindahkan ke pemain baru tersebut. Setelah semuanya terbentuk, saatnya untuk menutup doubly linked list. Pemain baru dilarang masuk dulu. Ekor (tail) akan kita pindahkan ke node terakhir. curr -> next = NULL; tail = curr; Untuk menguji keberhasilan doubly linked kita, kita akan mencetak dari awal list sampai akhir list: curr = head; while (curr!= NULL) printf( %d, curr -> x); curr = curr -> next; printf( \n ); Dan karena apa yang kita buat adalah doubly linked list, maka kita juga dapat mencetak dari tail sampai head. Berikut ini adalah caranya: curr = tail; while (curr!= NULL) printf( %d, curr -> x); curr = curr -> prev; printf( \n ); Anda mungkin ingin membebaskan memori teralokasi dengan pemanggilan fungsi free(). Kode selengkapnya: #include <stdio.h> #include <stdlib.h> int main() struct tnode int x; struct tnode *prev; struct tnode *next; ; struct tnode *head=null, *curr=null, *node=null, *tail=null; int i; for (i=0;i<5;i++) node = (struct tnode *) malloc (sizeof(struct tnode)); node -> x = i; if (head == NULL) head = node; head -> prev = NULL; curr = node; else curr -> next = node; node -> prev = curr; curr = node; curr -> next = NULL; tail = curr; curr = head; while (curr!= NULL) printf( %d, curr -> x); curr = curr -> next; printf( \n ); curr = tail; while (curr!= NULL) printf( %d, curr -> x); curr = curr -> prev; printf( \n ); return 0; Operasi pada linked list tidak hanya pembuatan dan pencetakan. Suatu saat, Anda mungkin perlu untuk menghapus node yang terletak di tengah-tengah list. Atau bahkan Anda mungkin perlu menyelipkan node di tengah-tengah node. Sama seperti halnya permainan gandeng-menggandeng tangan tersebut, sangat mungkin apabila tiba-tiba ada pemain baru yang ingin menyelipkan dirinya di tengah-tengah barisan. Tertantang? Selamat mencoba! Noprianto (noprianto@infolinux.co.id) INFOLINUX JANUARI

9 TUTORIAL Software RAID di Linux Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial Software RAID di Linux Data adalah bagian yang sangat penting dalam komputasi. Kehilangan data harus senantiasa dicegah. Berbagai cara bisa ditempuh. Menggunakan RAID adalah salah satunya. Bayangkanlah skenario berikut ini. Perusahaan Anda menyimpan hampir segalanya secara tersentralisasi. Hampir semua data di simpan di dalam satu server. Dan di dalam satu harddisk. Backup dilakukan per minggu dan kemudian datanya disimpan ke dalam CDROM secara otomatis. Pada suatu hari, tanpa diduga, harddisk tersebut tiba-tiba berdemonstrasi mogok kerja seperti fenomena yang belakangan ini mudah ditemui di belantara ketenagakerjaan Indonesia. Apa yang pertama-tama terbayang sebagai solusi? Beli harddisk baru. Kembalikan data hasil back-up terakhir. Dan kalau cukup berminat, harddisk lama diserahkan ke tukang servis. Cukup banyak waktu yang terbuang. Dan cukup banyak darah yang mengalir ke otak karena stress. Apabila Anda rajin melakukan back-up, hal tersebut tentunya sudah menjadi modal untuk mencegah kehilangan data. Namun, dengan investasi sekitar Rp1 juta atau kurang, dan membeli satu atau dua harddisk baru, kita dapat membuat RAID secara software. Walaupun dalam praktik ada harddisk yang harus dikorbankan dan hanya menjadi mirror bagi harddisk pertama, data yang kita miliki akan relatif lebih aman lagi karena apabila salah satu harddisk rusak, harddisk tersebut tinggal dicabut dan digantikan dengan harddisk baru. Proses mirroring kemudian dilakukan, dan kini Anda memiliki dua harddisk yang saling mirror. Sekali lagi: satu rusak, ganti, mirror, dan Anda pun tenang kembali. Mirror hanyalah salah satu dari cara kerja RAID. Masih terdapat beberapa cara lainnya. Artikel ini difokuskan pada RAID level 1 yang bekerja secara mirroring. Untuk RAID Level 1 atau RAID1 untuk lebih singkat, kita perlu menyediakan dua atau lebih harddisk yang kemudian akan saling menyamakan isinya dalam block level. Artinya, apabila Anda memiliki dua buah harddisk masing-masing berukuran 20 GB, maka kedua harddisk tersebut akan melakukan mirroring sehingga total kapasitas Anda hanyalah 20 GB. Apabila Anda menggunakan tiga harddisk, maka total kapasitas Anda tetap 20 GB. Sebuah pengorbanan memang. Satu lagi kabar buruk. Semua elemen RAID1 harus memiliki ukuran yang sama. Apabila ada ukuran yang tidak sama, maka kapasitas total adalah kapasitas yang paling kecil. Pemborosan terjadi di sana sini. Anda masih dapat mempergunakan spare disk, yang berarti penggunaan harddisk akan menjadi lebih boros lagi. Namun, keamanan data akan lebih terjaga karena proses rekonstruksi data/mirroring akan segera dilakukan apabila salah satu dari mirror mengalami kerusakan. Bagaimana dengan kecepatan penulisan pada RAID1? Kecepatannya akan sedikit di bawah kecepatan penulisan pada harddisk tunggal karena data yang ditulis harus dicopy-kan ke setiap elemen RAID. Begitupun dengan kecepatan baca. Untuk kernel 2.4, kecepatan baca/tulis telah dikembangkan sangat lanjut sehingga faktor kecepatan tidak perlu dikhawatirkan lebih lanjut. Barangkali pertanyaan yang lebih mendasar. Kenapa harus menggunakan RAID? Jawabannya bisa sangat bervariasi. Salah satunya adalah karena keamanan data lebih terjamin. Backup saja tidak cukup karena umumnya ada selisih waktu yang cukup berarti. Dan selain itu, Anda bisa mempergunakan gabungan dari beberapa harddisk yang mungkin tidak terpakai. RAID tidak selalu harus mirroring (RAID1) yang boros. Tertarik? Kalau ya, ternyata RAID cukup manja. Anda harus mempersiapkan segala sesuatu yang diperlukan. Kita akan bekerja dengan RAID1. Yang pertama-tama, siapkan satu harddisk untuk percobaan. Atau, dalam bentuk yang lebih jelek lagi, siapkan dua partisi kosong berukuran sama apabila Anda tidak memiliki harddisk ekstra. Penulis menggunakan satu harddisk pinjaman yang penulis bagi menjadi dua partisi berukuran sama besar. Harap diperhatikan bahwa seharusnya penggunaan RAID tidak dilakukan pada harddisk yang sama karena fungsinya akan menjadi tidak jelas. Performa pun akan turun dengan drastis. Kita mempergunakan harddisk yang sama hanya sebagai contoh. Dua elemen RAID1 yang dibuat harus memiliki tipe partisi Linux RAID Autodetect, yang memiliki kode fd. Yang kedua, dan yang paling merepotkan, adalah mengaktifkan dukungan RAID pada kernel. Saat ini, di kernel 2.4, penggunaan software RAID telah mengalami banyak peningkatan performa dan kemudian. Pastikan Anda memiliki dukungan RAID diaktifkan di dalam kernel Anda. Apabila belum, maka kompilasi kernel harus dilakukan. Aktifkan dukungan RAID pada bagian Multi-device support Multiple devices driver support (RAID and LVM). Saat ini, kernel mendukung mode Linier, stripping (RAID0), mirroring (RAID1), RAID4/5, Multipath. Sebaiknya, masukkan fasilitas ini sebagai fasilitas built-in. Yang terakhir, siapkan program mdadm. Beberapa saat yang lalu, penulis sibuk menggunakan kumpulan program raidtools. Akan tetapi, ternyata mdadm lebih mudah untuk digunakan. Apabila Anda menggunakan Debian, berikan perintah berikut ini untuk melakukan instalasi mdadm: apt-get install mdadm Untuk distro lain, carilah terlebih dahulu paket untuk distro Anda. Apabila tidak ditemukan, downloadlah mdadm di mdctl/. Mdadm dahulu bernama mdctl. Apabila ketiga persyaratan tersebut telah dipenuhi, maka kita siap untuk bekerja dengan RAID. Penulis menggunakan contoh yang jelek dengan penggunaan partisi-partisi dalam satu harddisk. Device /dev/hdb1 dan /dev/ hdb2 akan penulis korbankan sebagai 58 INFOLINUX JANUARI 2004

10 Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial TUTORIAL Software RAID di Linux elemen-elemen dalam RAID1. Device RAID sendiri tidak akan menggunakan lagi nama device setiap elemennya, melainkan menggunakan nama device /dev/mdx, di mana x dimulai dari 0. Dengan demikian, mulai saat ini, kita tidak lagi bicara /dev/ hdb1 ataupun /dev/hdb2. Kita akan bicara / dev/md0. Untuk menggunakan RAID, kita harus membuatnya terlebih dahulu. Berikan perintah berikut ini untuk membuat RAID1 bernama /dev/md0 yang berisikan 2 elemen, /dev/hdb1 dan /dev/hdb2: # mdadm create /dev/md0 level=1 raid-devices=2 /dev/hdb1 /dev/hdb2 Apabila harddisk Anda tiba-tiba bekerja cukup keras, maka proses konstruksi/ mirroring sedang dilakukan. Lihat prosesnya dengan membaca file /proc/mdstat. # cat /proc/mdstat Personalities : [raid1] read_ahead 1024 sectors md0 : active raid1 hdb2[1] hdb1[0] blocks [2/2] [UU] [===>...] resync = 15.6% (80384/511936) finish=5.2min speed=1356k/sec unused devices: <none> Setelah file sistem dibuat di /dev/md0, maka untuk selanjutnya, device tersebut telah siap digunakan. Anda dapat melakukan proses mount seperti halnya proses mount pada device biasa. Berikut ini adalah contoh keluaran program df -h untuk /dev/md0 yang telah di-mount ke /mnt. # df -h Filesystem Size Used Avail Use% Mounted on /dev/hda1 3.5G 3.2G 264M 93% / /dev/md0 1.2G 47M 1.2G 4% /mnt Tertarik melihat informasi seputar /dev/ md0 kita? Cobalah berikan perintah berikut ini: # mdadm query detail /dev/md0 Informasi akan ditampilkan dengan sangat mendetail. Dari informasi yang ditampilkan, telitilah memperhatikan State, Active Devices, Working Devices, dan Failed Devices. Terkadang, salah satu elemen dalam RAID Anda mungkin mengalami masalah. Lanjut untuk penggunaan RAID lebih lanjut. Terkadang kita ingin menghentikan penggunaan RAID karena sesuatu alasan. Oleh karena itu, berikanlah perintah seperti berikut ini: # mdadm stop /dev/md0 Untuk menjalankan kembali, berikanlah perintah berikut ini: # mdadm assemble /dev/md0 /dev/hdb1 /dev/hdb2 Sampai di sini, kita telah melihat penggunaan dasar dari RAID1. Dalam setiap contoh sebelumnya, kita bisa melihat bahwa semuanya bekerja dengan baik. Tidak ada error yang terjadi. Namun, terkadang di dunia nyata kita harus berurusan dengan rusaknya salah satu elemen array sehingga elemen tersebut harus dihentikan, atau RAID harus dijalankan dengan 1 elemen saja. Kita akan menyimulasikan kerusakan pada /dev/hdb2 sehingga /dev/md0 kini hanya memiliki elemen /dev/hdb1. # mdadm assemble run /dev/md0 /dev/ hdb1 mdadm: /dev/md0 has been started with 1 drive (out of 2). # cat /proc/mdstat Personalities : [raid1] read_ahead 1024 sectors md0 : active raid1 hdb1[0] blocks [2/1] [U_] unused devices: <none> Tiba-tiba, elemen kedua telah diperbaiki atau digantikan dengan yang baru. Kita bisa saja memasukkan kembali elemen tersebut ke dalam array yag sedang aktif dengan perintah berikut ini: # mdadm -a /dev/md0 /dev/hdb2 mdadm: hot added /dev/hdb2 # cat /proc/mdstat Personalities : [raid1] read_ahead 1024 sectors md0 : active raid1 hdb2[2] hdb1[0] blocks [2/1] [U_] [>...] recovery = 2.8% (14528/511936) finish=6.2min speed=1320k/sec unused devices: <none> Program mdadm juga dilengkapi dengan fasilitas untuk melakukan monitoring. Pada saat monitoring dilakukan, mdadm akan melaporkan event yang terjadi dalam periode waktu tertentu. Setiap laporan dapat dikirimkan kepada yang telah ditentukan. Mdadm adalah program yang sangat kompleks. Rujuklah kepada manualnya untuk cara penggunaan lebih lanjut. Bermacam-macam level RAID Selain level 1, kita mengenal bermacammacam level RAID. Tidak perlu harus menggunakan semuanya. Nomor level yang lebih tinggi tidak menunjukkan peningkatan kinerja atau peningkatan performa secara langsung. Pilih satu yang cocok Anda gunakan. Dalam beberapa kasus, RAID1 dan RAID5 adalah dua jenis RAID yang paling sering digunakan. Pertama-tama, kita mengenal mode linear. Pada mode ini, beberapa harddisk akan ditambahkan sehingga kapasitas membesar. Tidak ada redundansi pada mode ini megakibatkan risiko kehilangan data cukup besar. Berikutnya adalah RAID0 yang juga tidak mengenal redundansi data. Beda antara RAID0 dengan linear adalah cara penulisan pada RAID0 yang dilakukan secara paralel dengan membagi dalam stripe-stripe dan menuliskannya ke setiap elemen. RAID1 telah kita bahas. Sementara RAID4 dan RAID5, terutama RAID5, direncanakan sebagai RAID yang paling cocok digunakan. Menggunakan sistem parity yang tersebar ke setiap elemen, RAID5 lebih sering digunakan daripada RAID4 yang menyimpan parity dalam satu elemen. RAID adalah salah satu cara untuk meminimasi risiko hilangnya data. Walaupun sedikit boros, hati akan lebih tenang. Setiap ada kerusakan, proses rekonstruksi secara otomatis akan dilakukan. Sampai di sini perkenalan kita dengan RAID di Linux. Selamat mencoba! Noprianto (noprianto@infolinux.co.id) INFOLINUX JANUARI

11 TUTORIAL Belajar Cepat PostgreSQL Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial Belajar Cepat PostgreSQL Apabila Anda memerlukan sistem penyimpanan data yang luar biasa di Linux, maka gunakanlah PostgreSQL. Walaupun merupakan sistem yang kompleks, kita tetap bisa menggunakannya dengan mudah. Data adalah hal terpenting dalam komputasi. Kehilangan data adalah musibah besar. Dan cara mengelola data secara berantakan adalah pemicu kehilangan data. Apabila data Anda cukup banyak dan merupakan data rahasia, maka Anda membutuhkan sebuah database server yang layak untuk menyimpannya. Menyimpan data ke dalam sebuah file text adalah tindakan konyol yang dapat memicu berbagai risiko hilangnya data. Puluhan tahun sudah sistem database mengalami perubahan. Mungkin sudah terlalu banyak sistem database dan aplikasinya yang telah tumbuh dan kemudian berubah sesuai dengan perkembangan teknologi. Salah satu yang memegang peranan besar adalah sistem database yang dikenal dengan nama POSTGRES, yang dikembangkan di University of California at Berkeley pada tahun Waktu itu, POSTGRES mencetak perubahan besar yang segera membuat berbagai pihak tertarik. Setelah satu tahun dikembangkan, lahirlah versi demo-nya pada tahun 1987, yang segera dipertunjukkan di berbagai konferensi teknologi komputer saat itu. Dan akhirnya, pada tahun 1989, lahirlah POSTGRES versi 1. Versi 2 yang datang dengan banyak perubahan desain pun diluncurkan satu tahun kemudian. Berkembang dan berkembang terus, pada tahun 1991, lahirlah POSTGRES 3, yang waktu itu menjadi begitu populer dan segera digunakan oleh banyak aplikasi bisnis. Pada tahun 1993, database ini makin populer lagi. Basis penggunanya bertambah secara dramatis. Dan karena POSTGRES menjadi terlalu kompleks, dan jauh melebihi kebutuhan riset database, maka secara resmi proyek ini dihentikan setelah mencapai versi 4.2. Pada tahun 1994, Andrew Yu dan Jolly Chen menambahkan kemampuan SQL ke dalam POSTGRES, yang kemudian berubah menjadi proyek baru dengan nama Postgres95. Sistem database berbasiskan kode POSTGRES tersebut kemudian dilempar sebagai proyek open source, dan segera mendapatkan banyak tanggapan. Postgres95 memiliki banyak kelebihan dibandingkan dengan POSTGRES. Salah satunya adalah kecepatan dan kestabilan. Pada tahun 1996, nama Postgres95 segera menjadi nama yang kadaluarsa. Kuno. Para pembuatnya kemudian mencari nama baru dan lahirlah PostgreSQL, yang mengacu kepada originasi dari POSTGRES yang memiliki kemampuan SQL. Dan uniknya, proyek ini dirilis langsung pada versi 6.0, mengacu kepada pengembangan POSTGRES yang seharusnya. PostgreSQL adalah object-relational database management system yang datang dengan banyak fitur, di antaranya multiversion concurrency control (MVCC), mendukung hampir semua atura SQL, dan memiliki banyak dukungan bahasa pemrograman lain seperti C/C++, TCL, Java, Perl, dan Python. Dengan berbagai fitur tersebut, layaknya PostgreSQL mengklaim dirinya sebagai most advanced database system. Proyek open source yang hebat umumnya relatif susah digunakan. Begitu pun dengan PostgreSQL. Dibandingkan dengan MySQL, PostgreSQL relatif lebih susah digunakan karena kompleksitasnya yang begitu besar. Namun, bagi Anda yang lebih peduli untuk merancang database yang bagus dan hanya sekadar menggunakannya, maka PostgreSQL tetap layak digunakan dan dapat dipelajari dalam waktu yang singkat, asalkan Anda telah mengerti konsep database dan SQL secara umum. Apabila Anda menggunakan Debian (atau distro turunannya), maka berikanlah perintah berikut ini untuk menginstal postgresql: apt-get install postgresql postgresql-client postgresql-doc PostgreSQL pun akan duduk dengan tenang di dalam sistem Anda. Untuk distro lain, gunakanlah managemen paket dari distro Anda, atau carilah berbagai paket untuk postgresql server, client, dan dokumentasi. Umumnya, hampir setiap distro telah datang bersama database server ini. Anda juga dapat melakukan kompilasi sendiri dari source dengan mendownload source code-nya terlebih dahulu dari Umumnya, server dari postgresql yang bernama postmaster akan dijalankan oleh user postgres. Menjalankan sebagai user nobody atau root sangat tidak disarankan. Sebagai contoh, kita menjalankan postmaster sebagai user postgres. Gantilah user ini dengan user apapun yang digunakan oleh distro Anda sebagai user yang menjalankan server postgresql. Untuk berlatih, kita akan menggunakan program client psql terlebih dahulu, setelah itu, kita akan menggunakan phppgadmin. Psql lebih susah digunakan karena berbasis teks, sementara phppgadmin dijalankan lewat web browser. PostgreSQL dapat menggunakan identbased authentication dalam mengenali user yang akan menggunakan database server-nya. Untuk mudahnya, apabila Anda sedang login dengan user nop misalnya, maka kita juga akan membuat user di postgresql dengan nama nop. Gantilah user nop dengan user lain sesuai keinginan Anda. Sebagai catatan, user authentication pada postgresql sangatlah kompleks dan di luar cakupan artikel ini. Bacalah administrator guide yang datang bersamanya untuk otentikasi lanjutan. Untuk membuat user nop di postgresql, jadilah root, kemudian, jadilah user 60 INFOLINUX JANUARI 2004

12 Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial TUTORIAL Belajar Cepat PostgreSQL postgres. Berikut ini adalah perintahnya: $ su Password: # su postgres $ Setelah itu, gunakan program createuser untuk membuat user nop di postgresql. $ createuser nop Shall the new user be allowed to create databases? (y/n) y Shall the new user be allowed to create more new users? (y/n) n Apabila kita menjawab y pada pertanyaan pertama, maka user yang kita buat akan dapat membuat database sendiri. Kemudian, apabila kita menjawab y pada pertanyaan kedua, maka user yang dibuat akan dapat membuat user lain. Apabila program createuser berhasil, maka tulisan berikut ini akan tampil di layar: CREATE USER Login-lah kembali sebagai user nop. Kita akan membuat database baru dengan nama nop. Untuk itu, Anda bisa mempergunakan program createdb. Berikut ini adalah contohnya penggunaannya: createdb nop Apabila berhasil, maka tulisan berikut ini akan tampil di layar: CREATE DATABASE berbasis teks dengan nama psql. Apabila Anda login sistem dengan user nop, dan akan menggunakan database nop untuk bekerja, maka berikanlah perintah berikut ini untuk masuk ke server postgresql: $ psql nop Welcome to psql 7.3.3, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit nop=# Selanjutnya, Anda dapat memberikan perintah khas postgresql ataupun perintah SQL sesuai keinginan Anda. Berikut ini adalah beberapa perintah khas dan kegunaannya, yang diberikan pada program psql. Mencari bantuan \? Melihat daftar database \l contoh keluaran: List of databases Name Owner Encoding nop nop SQL_ASCII template0 postgres SQL_ASCII template1 postgres SQL_ASCII (3 rows) Melihat daftar user \du contoh keluaran: List of database users User name User ID Attributes + + nop 100 create database postgres 1 superuser, create database test 101 create database (3 rows) Melihat daftar tabel \dt Pada saat pembuatan user nop oleh user postgres, kita mengizinkan nop untuk membuat database. Oleh karena itu, user nop bisa membuat banyak database. Untuk menghapus database, program dropdb dapat digunakan. Berikut ini adalah contoh penggunaan program dropdb: dropdb nop2 IKLAN Apabila berhasil, maka tulisan berikut ini akan tampil di layar: DROP DATABASE Kita telah memiliki database dengan nama nop. Sebentar lagi, kita akan masuk ke shell postgresql sebagai user nop. Menggunakan psql PostgreSQL datang dengan satu client INFOLINUX JANUARI

13 TUTORIAL Belajar Cepat PostgreSQL Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial Contoh keluaran: List of relations Schema Name Type Owner public test table nop (1 row) Keluar dari psql \q Berikut ini kita akan membuat tabel A yang memiliki dua field, yaitu nama dan hobi, yang masing-masing bertipe varchar. CREATE TABLE A( nama varchar(50), hobi varchar(100) ); Apabila perintah tersebut berhasil, maka tulisan CREATE TABLE akan ditampilkan ke layar. Setelah itu, kita akan mengisikan dua record ke dalam tabel A tersebut. Berikut ini adalah pemberian perintah dan keluarannya: nop=# INSERT INTO A(nama, hobi) VALUES ( nop, terbang ); INSERT nop=# INSERT INTO A(nama, hobi) VALUES ( nop2, makan ); INSERT Perintah berikut ini berguna untuk menampilkan semua record di dalam tabel A: nop=# SELECT * FROM A; nama hobi + - nop terbang nop2 makan (2 rows) Menggunakan phppgadmin Apabila psql dirasa terlalu susah, kita dapat mempergunakan phppgadmin, yang jelas jauh lebih mudah untuk digunakan. Berikan perintah berikut ini untuk menginstal phppgadmin. Anda akan membutuhkan Apache dan PHP. Berikan perintah berikut ini untuk menginstall phppgadmin: apt-get install phppgadmin Jalankanlah apache Anda. Kemudian bukalah URL Program Psql, susah namun fleksibel dengan web browser Anda. Pertama-tama, lakukan otentikasi terlebih dahulu. Secara default, Anda tidak perlu memasukkan password. Setelah masuk, Anda dapat mempergunakan phpphadmin sebagai client untuk bekerja dengan server postgresql. Dengan phppgadmin, pengguna akan sangat banyak terbantu karena phppgadmin sangat menyederhanakan penggunaan postgresql. Klik sana, klik sini, isi beberapa nilai, dan Anda pun selesai. Bandingkan dengan program psql. Sebagai contoh, kita akan membuat tabel baru, masih di dalam database nop. Kliklah tanda tambah pada database nop di frame kiri. Klik sekali lagi tanda tambah pada public. Seharusnya, Anda akan menjumpai tulisan Tables di sana. Kliklah Tables tersebut, dan lihatlah pada frame kanan. Frame kanan akan mendaftar segala tabel Anda. Untuk membuat tabel baru, kliklah link create table. Anda akan diminta untuk mengisikan nama tabel dan jumlah field-nya. Setelah semua langkah selesai, maka sebuah tabel baru telah Anda miliki. Untuk menghapus tabel, kembalilah pada tampilan daftar tabel, kemudian kliklah tombol Drop untuk tabel yang bersangkutan. Phppgadmin adalah salah satu client postgresql yang cukup mudah untuk digunakan. Apabila Anda malas menginstal Apache dan PHP, maka Anda dapat mempergunakan client lain yang berbasis GUI, seperti pgaccess. Lebih mudah dengan PHPPgAdmin Dump ke file teks Apabila Anda hendak melakukan back-up, Anda tidak dapat meng-copy-kan begitu saja file-file database Anda. Sebagai gantinya, Anda dapat memasukkan semua isi database ke dalam sebuah file teks. File teks tersebut yang akan Anda bawa ke mana-mana. PostgreSQL menyediakan program pg_dump untuk memasukkan semua isi database ke file teks. Berikut ini adalah contoh penggunaannya: pg_dump nop > nop.sql Apabila Anda hanya ingin memasukkan isi tabel tertentu saja (misalnya tabel A pada database nop), maka berikanlah perintah berikut ini: pg_dump nop table=a> nop.a.sql Selanjutnya, apabila Anda ingin memasukkan semua data yang telah didump ke dalam database server, gunakan kembali program psql, dengan cara sebagai berikut: psql nop < nop.sql PostgreSQL memang lebih susah dibandingkan dengan MySQL. Akan tetapi, fitur yang datang bersamanya juga sangat banyak, dibandingkan dengan MySQL. Namun, postgresql juga tidak cocok digunakan untuk segala situasi. Tidak semua data perlu disimpan di dalam postgresql. Gunakan postgresql apabila Anda benar-benar memerlukannya. Seperti kata pepatah, gunakan alat yang sesuai untuk menyelesaikan masalah. Noprianto (noprianto@infolinux.co.id) 62 INFOLINUX JANUARI 2004

14 Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial TUTORIAL Python dan PostgreSQL Python dan PostgreSQL PostgreSQL adalah database server yang gratis, andal dan kaya fitur. Untuk aplikasi bisnis, umumnya PostgreSQL dapat diandalkan. Koneksi dari Python pun dapat dilakukan dengan mudah. Aplikasi bisnis umumnya berhubungan database. Kita dapat memilih salah satu dari sekian sistem database open source yang tersebar di belantara free software. Salah satu yang sangat populer adalah MySQL. MySQL adalah database server yang cukup mudah digunakan. Sayangnya, MySQL bukanlah sistem database yang lengkap. Apabila Anda butuh sistem yang lebih lengkap dan kaya fitur, namun tetap gratis, gunakanlah PostgreSQL. Yang satu ini memang lebih susah untuk digunakan. Instalasinya juga cukup rumit. Namun, yang jelas, PostgreSQL adalah sistem database object-relational yang luar biasa. Untuk kebutuhan bisnis serius, gunakan PostgreSQL. Tidak perlu mengeluarkan banyak uang untuk membeli sistem database saja. PostgreSQL umumnya sudah lebih dari cukup. Sama dengan pilihan sistem database, pilihan bahasa pemrograman juga cukup banyak. Silakan saja pilih mulai dari yang low level seperti C/C++ sampai yang high level seperti PHP, Perl, Java, atau Python. Semua memiliki kekurangan dan kelebihan sendiri. Kali ini, kita akan menggunakan Python. Python adalah bahasa pemrograman yang cukup lengkap dan mudah digunakan. Pemula sekalipun cenderung mudah untuk mempelajari bahasa yang satu ini. Dengan Python, kita dapat dengan mudah terhubung ke PostgreSQL. Pilihan modulnya pun cukup banyak. Salah satu yang akan kita gunakan adalah PyGreSQL atau python-pygresql. Setelah melakukan analisis kebutuhan dengan benar dan membuat desain yang benar pula, kita dapat menerapkan aplikasi bisnis kita dengan Python dan menggunakan postgresql untuk mengatur penyimpanan data. Persiapan PostgreSQL Pertama-tama, Anda dapat menggunakan paket-paket di distro Anda untuk menginstal PostgreSQL. Jarang sekali ada distro umum yang tidak menyertakan postgresql di dalamnya. Kalaupun tidak, download-lah paket untuk distro Anda yang dibuat oleh pihak ketiga. Bagi yang menggunakan Debian, berikan perintah berikut ini untuk instalasi: apt-get install postgresql postgresql-client postgresql-doc Bagi Anda yang lebih menyukai kompilasi sendiri, download-lah source code postgresql dari kemudian ekstraklah dan masuklah ke direktori hasil ekstrak tersebut. Setelah itu, lakukanlah langkahlangkah berikut ini../configure make su make install adduser postgres mkdir /usr/local/pgsql/data chown postgres /usr/local/pgsql/data su - postgres /usr/local/pgsql/bin/initdb -D /usr/local/ pgsql/data /usr/local/pgsql/bin/postmaster -D /usr/ local/pgsql/data >logfile 2>&1 & /usr/local/pgsql/bin/createdb test /usr/local/pgsql/bin/psql test Instalasi PostgreSQL lebih neko-neko dan kompleks apabila dibandingkan dengan instalasi MySQL. Salah satu hal yang sedikit berbeda dengan MySQL adalah sistem otentikasi client-nya. PostgreSQL memiliki berbagai cara dalam melakukan otentikasi. Cara yang termudah adalah membuat user di PostgreSQL yang memiliki nama sama dengan user di sistem. Jalankanlah database server (postmaster) Anda dengan user postgres. Saat ini, kita akan membuat user dengan nama test. Harap diperhatikan, untuk lebih mudahnya, Anda telah membuat dan login dengan user test di Linux Anda. Jadilah root, dan kemudian jadilah user postgres. Kita akan membuat user dengan nama test, yang dapat membuat database dan tidak bisa membuat user baru lagi. $ su Password: # su postgres $ createuser test Shall the new user be allowed to create databases? (y/n) y Shall the new user be allowed to create more new users? (y/n) n CREATE USER Apabila Anda melihat pesan CREATE USER tersebut, maka pembuatan user test telah berhasil. Untuk menghapus seorang user, gunakan program dropuser. Aktiflah kembali sebagai user test. Kita akan melanjutkan ke persiapan Python untuk melakukan koneksi ke PostgreSQL. Persiapan Python Terdapat beberapa modul untuk melakukan koneksi ke PostgreSQL dari Python. Salah satu yang populer adalah PyGreSQL atau umumnya terdapat di distro dengan nama python-pygresql. Anda bisa men-download modul tersebut di pygresql/. Bagi Anda yang menggunakan distro dengan manajemen paket RPM, dowloadlah paketnya di ftp://ftp.druid.net/pub/ distrib/pygresql.i386.rpm. Bagi Anda yang menggunakan Debian atau turunannya, berikan perintah berikut ini untuk melakukan instalasi: apt-get install python-pygresql Setelah instalasi sukses, kita akan mengujinya dengan menjalankan modul pg di interpreter Python. Harap diingat, jalankanlah Python sebagai user test. $ python2.2 Python (#1, Aug , 10:11:23) [GCC (Debian)] on linux2 INFOLINUX JANUARI

15 TUTORIAL Python dan PostgreSQL Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial Type help, copyright, credits or license for more information. >>> import pg >>> from pg import DB >>> dir(pg) [ DB, INV_READ, INV_WRITE, RESULT_DDL, RESULT_DML, RESULT_DQL, RESULT_EMPTY, SEEK_CUR, SEEK_END, SEEK_SET, builtins, doc, file, name, _quote, connect, error, get_defbase, get_defhost, get_defopt, get_defport, get_deftty, get_defuser, re, set_defbase, set_defhost, set_defopt, set_defpasswd, set_defport, set_deftty, set_defuser, string, sys, version ] >>> dir(db) [ doc, init, module, clear, delete, get, get_attnames, get_databases, get_tables, insert, pkey, query, update ] >>> Apabila Anda mendapatkan tampilan serupa, maka instalasi PyGreSQL telah berhasil. Namun, apabila tampilan yang Anda dapat adalah seperti berikut ini, maka instalasi belum berhasil atau sistem Anda belum memiliki PyGreSQL. >>> import pg Traceback (most recent call last): File <stdin>, line 1, in? ImportError: No module named pg >>> Koneksi Python dan PostgreSQL Pertama-tama, sekali lagi, aktiflah sebagai user test di sistem anda. Kita akan membuat sebuah database dengan nama test di postgresql. Berikanlah perintah createdb sebagai berikut: $ createdb test CREATE DATABASE Apabila Anda mendapati tampilan serupa, maka pembuatan database test telah berhasil. Kita akan membuat sebuah tabel dengan nama tbl_test dengan dua field: f1 dan f2, masing-masing bertipe integer. Gunakan client psql untuk masuk ke dalam database server. Berikanlah perintah berikut ini: $ psql test Psql, client untuk PostgreSQL Welcome to psql 7.3.3, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit test=> Selanjutnya, berikan perintah berikut ini untuk membuat tabel tbl_test tersebut. test=> CREATE TABLE tbl_test (f1 integer, f2 integer); CREATE TABLE test=> Apabila Anda ingin melihat daftar table, ketikkanlah perintah berikut ini: test=> \dt List of relations Schema Name Type Owner public tbl_test table test (1 row) test=> Untuk melihat deskripsi tabel test, berikanlah perintah berikut ini: test=> \d tbl_test Table public.tbl_test Column Type Modifiers f1 integer Psql2, client PostgreSQL ala Python f2 integer test=> Kini, jalanlankah interpreter Python Anda. Mulai saat ini sampai seterusnya, kita akan menggunakan modul pg untuk bekerja dengan database postgresql. Kita akan mulai dengan meng-import class DB dari modul pg. Kemudian, kita membuat instance dari pg.db dengan nama mydb, yang menunjuk ke database test. >>> from pg import DB >>> mydb = DB( test ) >>> Selanjutnya, kita akan melihat tabeltabel apa saja yang terdapat di dalam database test tersebut. Berikanlah kode berikut ini: >>> mydb.get_tables() [ tbl_test ] Untuk melihat atribut database test, tulislah kode berikut ini: >>> mydb.get_attnames( test ) oid : int Apabila Anda ingin melihat atribut tabel tbl_test, tulislah kode berikut ini: >>> mydb.get_attnames( tbl_test ) f1 : int, f2 : int, oid : int Kita akan melanjutkan ke tahap manipulasi data. Anda dapat memilih untuk menggunakan method dari mydb, ataupun 64 INFOLINUX JANUARI 2004

16 Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial TUTORIAL Python dan PostgreSQL memberikan sintaks SQL langsung. Untuk mudahnya, kita akan memberikan sintaks SQL langsung. Contoh pertama kita adalah memasukkan record baru ke dalam tbl_test: >>> mydb.query( insert into tbl_test values(1,1) ) >>> Kemudian, saatnya bagi kita untuk melihat semua record di dalam tabel tbl_test: >>> r = mydb.query( select * from tbl_test ) >>> r f1 f (1 row) >>> dir(r) [ dictresult, fieldname, fieldnum, getresult, listfields, ntuples ] >>> r.dictresult() [ f1 : 1, f2 : 1] >>> r.fieldname(1) f2 >>> r.getresult() [(1, 1)] >>> r.listfields() ( f1, f2 ) >>> r.ntuples() 1 Kita amati, r, yang merupakan nilai kembalian dari query tersebut memiliki sejumlah method. Semuanya kembali kepada Anda untuk memilih method mana yang akan digunakan. Dalam bentuk sederhana, dengan mengakses r saja, Anda sudah mendapatkan nilai kembalian query tersebut. Umumnya, programer menggunakan method dictresult() ataupun getresult(). Kita juga bisa mengunakan variabel dalam pemberian sintaks SQL seperti berikut ini: >>> for i in range(0,1000l): >>> mydb.query( insert into tbl_test values(%d,%d) %(i,i)) Untuk operasi lain seperti update dan delete, Anda bisa memberikan perintah SQL yang bersesuaian. Contoh program: psql2. Berbekal contoh-contoh di atas, kita akan belajar membuat sebuah client postgresql sederhana, yang mirip dengan tampilan psql. Psql2.py: #!/usr/bin/python2.2 import sys from pg import DB def main(db): try: mydb = DB(db) except: sys.exit( error ) while 1: buff = raw_input( [%s]> %db) if buff == : continue r = mydb.query(buff) print r if name == main : if len(sys.argv) == 2: main(sys.argv[1]) else: sys.exit( usage: %s <DBNAME> %sys.argv[0]) Pertama-tama, kita perlu memeriksa terlebih dahulu jumlah parameter yang dilewatkan ke program ini. Apabila jumlah paramaternya benar, kita akan mengirimkan parameter terakhir ke fungsi main(), yang kemudian akan membuat koneksi. Kita memberikan penanganan kesalahan di sini. Setelah koneksi terjadi, kita akan mengulang terus menerus sambil meminta input. Setiap input yang berisi akan dikirimkan sebagai query ke postgresql. Program yang satu ini jelas sangat sederhana. Penanganan kesalahannya juga masih sangat minim. Sebenarnya, kita pun dapat menambahkan beberapa perintah spesial seperti \dt untuk menampilkan daftar table, dengan memanggil method get_tables() dari mydb. Kombinasi antara PostgreSQL dan Python akan menghasilkan aplikasi bisnis yang luar biasa. Resource free software yang tersedia sebenarnya sangat banyak. Bagaimana kita menyikapinya adalah hal yang paling. Apabila kita mampu, kita bisa membuat TI di negara kita jauh lebih berkembang. Selamat berkarya! Noprianto (noprianto@infolinux.co.id) IKLAN INFOLINUX JANUARI

17 TUTORIAL Memilih Desktop dan Window Manager Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial Memilih Desktop dan Window Manager Apabila desktop yang disertakan bersama distro tidak memuaskan Anda, entah terlalu kompleks atau terlalu lambat, gantilah ke desktop atau window manager lain. Karena Anda berhak akan sistem yang terbaik. Berbeda dengan Windows, interface grafis di Linux bukanlah bagian integral dari sistem yang harus selalu tersedia. Sederhananya, interface grafis hanyalah aplikasi biasa. Bisa diinstal atau tidak, dan tidak akan mempengaruhi sistem secara keseluruhan. Bentuk desktop pun bisa diubah-ubah sesuai keinginan. Interface grafis atau GUI di Linux hadir dengan bantuan sebuah X Server. Umumnya, kita menggunakan Xfree86 sebagai X Server. Apabila Anda menginstal distro-distro populer, umumnya paket untuk X Server telah disertakan pada instalasi desktop. Apa yang bisa kita ubah sesuai keinginan pada level ini sangatlah terbatas. Apabila Anda ingin X Server yang terasa lebih ringan, barangkali pengubahan nice value pada proses sistem bisa Anda lakukan agar memberi X Server prioritas sesuai harapan Anda. Namun, perubahan yang terjadi tidak akan terlalu tampak di mata pengguna. Pengubahan lain yang bisa kita lakukan barangkali memilih modul-modul mana saja yang akan dijalankan. Tapi sekali lagi, efeknya juga tidak akan terlalu tampak di mata pengguna. Kesimpulannya, kita tidak akan banyak mengubah-ubah pengaturan di X Server. X Server sendiri hanyalah program yang melayani pengguna. X Server menyediakan infrastruktur dan fasilitas, namun tidak menyediakan kosmetik ataupun dekorasi yang indah bagi kita. Apabila Anda hanya menjalankan X Server dan kemudian sebuah emulasi terminal, maka apa yang Anda dapatkan adalah sebuah emulasi terminal yang tidak dapat digeser-geser. Emulasi terminal tersbeut juga tidak akan memiliki dekorasi window seperti title bar yang bagus. Pokoknya, tugas dari X Server adalah memungkinkan tampilan GUI untuk Anda. Kemudian, melayani input dan output di atasnya. Agar emulasi terminal tersebut memiliki title bar yang indah plus tombol-tombol di atasnya, kemudian window tersebut dapat Anda drag ke mana-mana, maka sebuah window manager mutlak diperlukan. Tugas dari window manager adalah mengatur window tersebut, mulai dari aktivasi sampai deaktivasi, kemudian pengaturan fokus dan cara penampilan, pengaturan berbagai window di layar, dekorasi window, dan lain sebagainya. Pada sistem operasi Windows, window manager yang datang bersamanya hanya satu jenis, yang dipaketkan bersama sistem operasinya. Di Linux, kita mengenal puluhan window manager, dari yang ringan sampai yang berat. Dari yang mirip dengan Windows, sampai yang mirip dengan tampilan sistem operasi tahun 50-an. Sebuah window manager tidak akan peduli bagaimana Anda melakukan drag and drop. Juga tidak akan peduli dengan sistem clipboard yang canggih. Tidak juga peduli dengan operasi copy, cut, dan paste yang fleksibel. Tidak peduli dengan pengaturan aplikasi secara umum dan lain sebagainya. Untuk suatu lingkungan kerja yang terintegrasi tersebut di atas, Anda membutuhkan Desktop environment atau desktop untuk lebih singkatnya. Sebuah desktop yang baik haruslah menyediakan lingkungan kerja yang komplit seperti pada Microsoft Windows. Desktop juga umumnya datang bersama window manager sendiri. Dan terkadang, menyediakan control center, sama seperti halnya control panel pada windows. Beberapa desktop juga menyertakan program otentikasi berbasis GUI yang lebih dikenal dengan istilah display manager. Dengan mengaktifkan display manager, Anda tidak perlu lagi menghadapi login prompt berbasis teks. Anda juga tidak perlu lagi menjalankan X Window secara manual. Tidak semua desktop ataupun window manager enak digunakan. Ada yang benarbenar mirip windows seperti KDE. Ada pula yang lebih mirip sistem operasi lain. Ada yang berat. Ada pula yang ringan. Apabila Anda menginginkan banyak fitur, indah, dan mudah digunakan, maka umumnya, konsekuensinya adalah berat dan membutuhkan banyak resource. Distrodistro populer juga umumnya datang bersama desktop dan window manager yang kaya fitur. Anda mungkin ingin mencoba-coba desktop atau window manager yang lebih ringan dan sesuai kebutuhan Anda. Kita akan membahas beberapa desktop dan window manager, mulai dari yang ringan dan miskin fitur, sampai yang berat dan kaya fitur. Anda bebas memilih yang paling cocok dengan selera. Pada akhirnya, walaupun Anda menggunakan distro yang sama dengan rekan Anda, tampilan GUI Anda mungkin jauh berbeda. Display manager Kita akan mulai dengan display manager. Beberapa desktop seperti KDE dan GNOME datang bersama display manager masingmasing. Apabila Anda ingin menggunakan KDE atau GNOME, maka tentunya Anda dapat memilih untuk tetap menggunakan KDM (display manager bawaan KDE) ataupun GDM (display manager bawaan GNOME). Permasalahannya adalah, barangkali Anda menyukai KDM, namun tidak mau menggunakan KDE. Atau Anda tidak akan menggunakan desktop yang berat, namun tetap ingin memiliki layar login berbasis GUI yang indah. 66 INFOLINUX JANUARI 2004

18 Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial TUTORIAL Memilih Desktop dan Window Manager Fluxbox-Ramping dan cantik Anda bebas memilih display manager. Anda juga tidak harus menggunakan KDM apabila akan menggunakan KDE. Atau Anda tidak harus menggunakan GDM untuk bekerja dengan GNOME. Namun, harap diingat bahwa beberapa display manager cukup kompleks dan memerlukan banyak pustaka. Kita akan membahas beberapa display manager dan tips untuk memilih display manager yang paling sesuai dengan kebutuhan Anda. Yang pertama barangkali XDM ( display manager bawaan X Server. Display manager yang satu ini relatif ringan dan tidak membutuhkan pustaka-pustaka yang berat. Kekurangannya jelas. Tampilan display manager ini jauh dari indah. Anda juga tidak bisa memilih desktop atau window manager apa yang akan dijalankan ketika Anda berhasil masuk ke sistem. Apabila Anda menginginkan keindahan, lupakan display manager yang satu ini. Dari sisi kelengkapan dan fitur, sebenarnya XDM sudah lebih dari cukup untuk penggunaan normal. Bahkan, dengan XDM pun andal digunakan dalam jaringan karena telah mendukung protokol XDMCP. Pada beberapa distro yang langsung menjalankan Linux pada modus grafikal, XDM sedikit memiliki kekurangan. Bayangkanlah kasus seperti ini: Setiap kali komputer dinyalakan, Anda akan langsung di bawa ke modus grafikal dengan hadirnya XDM. Anda pun melakukan login dan mulai bekerja. Ketika pekerjaan telah selesai dan komputer ingin dimatikan, Anda pun melakukan logout terlebih dahulu. XDM pun akan dijumpai kembali. Sayangnya, Anda tidak dapat menemukan menu untuk mematikan komputer sehingga Anda perlu login kembali sebagai root, untuk melakukan shutdown semata. Pekerjaan yang sedikit konyol. Kita akan berpindah ke GDM ( Display manager ini bawaan dari proyek GNOME. GDM yang baru memiliki tampilan yang sangat indah dan dapat dibuat lebih indah lagi dengan bantuan theme. Menawarkan tampilan standar dan tampilan grafikal. Pada tampilan standar, sebuah window akan diletakkan di tengah layar pada umumnya. Anda dapat mengisikan username dan password Anda di window tersebut. Sebuah logo dapat ditampilkan. Anda juga dapat menampilkan foto diri Anda di sini. Apabila Anda ingin memilih desktop atau window manager lain untuk dijalankan setelah berhasil login, maka GDM juga menyediakan menu untuk Anda. Latar belakang GDM juga bisa dikustomisasi sesuai keinginan. Sebuah program bernama gdmconfig siap membantu Anda untuk membuat GDM bertingkah laku sesuai keinginan Anda. Umumnya, jika Anda menggunakan GNOME, Anda akan menggunakan display manager yang satu ini. Permasalahan untuk melakukan shutdown atau restart komputer seperti pada halnya XDM pun tidak akan dijumpai di sini. Sesuai selera, Anda bahkan dapat memilih untuk menampilkan atau tidak menampilkan menu shutdown/restart di GDM. Jauh lebih fleksibel dibandingkan XDM. Selanjutnya adalah KDM ( Sejak versi-versi awalnya, KDM telah tampil sangat memukau. Datang bersama proyek KDE yang sangat mementingkan keindahan tampilan, Anda akan mendapatkan interface yang sangat indah pada display manager ini. KDM juga terintegrasi dengan KDE dan sangat mudah untuk dikustomisasi. Anda juga dapat memilih desktop atau window manager apa saja untuk dijalankan setelah login. Penampilan foto Anda juga sangat mudah untuk diatur. Apabila Anda menggunakan KDE, umumnya, KDM adalah pilihan utama untuk display manager. Beberapa waktu yang lalu, di saat GDM masih memiliki beberapa bug yang terlihat oleh pengguna, KDM telah hadir sangat memukau. Berikutnya adalah WING s display manager (WDM, wdm/). Display manager yang satu ini memiliki tampilan mirip dengan window manager window maker. Banyak pengguna setia window maker yang menggunakan display manager ini. Kalah indah dan kalah fitur dibandingkan dengan GDM atau KDM, tapi masih jauh lebih bagus dengan XDM. Paling tidak, Anda bisa memilih desktop atau window manager apa yang ingin dijalankan setelah login. Anda juga dapat menampilkan logo perusahaan Anda di sini. Tidak terlalu membutuhkan banyak pustaka. Pilihan terbaik apabila Anda menginginkan display manager yang indah dan ringan. Apalagi jika Anda tidak akan menggunakan KDE atau GNOME. Ingatlah bahwa setiap display manager membutuhkan pustaka-pustaka tertentu agar dapat berjalan. Dan setiap pustaka membutuhkan resource tersendiri. Untuk pemilihan display manager, idealnya Anda menggunakan display manager yang datang bersama desktop yang akan Anda gunakan. Jadi, apabila Anda ingin menggunakan GNOME, gunakanlah GDM. Ingin menggunakan KDE? Gunakanlah KDM. Sangat lucu dan memboroskan sumber daya sistem apabila Anda menggunakan KDM, padahal Anda ingin menggunakan GNOME. Apa yang terjadi adalah, ketika KDM dijalankan, beberapa pustaka perlu di-load terlebih dahulu. Ketika berhasil login, sistem INFOLINUX JANUARI

19 TUTORIAL Memilih Desktop dan Window Manager Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial perlu menggunakan pustaka tambahan lagi untuk bekerja dengan GNOME. Apabila Anda tidak akan menggunakan desktop berat seperti KDE atau GNOME, maka penggunaan GDM atau KDM cukup memboroskan resource. Tapi, apabila Anda membutuhkan tampilan yang indah, maka mereka adalah pilihan yang tepat. Ada pengorbanan yang harus dilakukan. Apabila Anda tidak mementingkan tampilan, XDM adalah pilihan nomor satu. Ingin kompromi? Tidak terlalu berat namun tetap kelihatan cukup indah? Gunakanlah WDM. Apabila Anda ingin mendapatkan login grafikal ini begitu komputer dinyalakan, maka aktiflah pada runlevel 5 untuk beberapa distro pada umumnya. Khusus untuk Debian, apabila Anda menginstal salah satu dari display manager yang telah dibahas, maka secara default, display manager tersebut akan dijalankan pada saat booting. Desktop environment Dengan menginstal desktop, Anda akan mendapatkan banyak fasilitas. Mulai dari urusan sepele seperti clipboard yang bagus, fasilitas drag and drop yang memuaskan, sampai control center, tempat mengatur perangkat input dan output. Umumnya, desktop juga datang bersama dengan beberapa program tambahan yang berguna untuk mempermudah pemakaian. Ada aturan yang berlaku di sini. Ingin indah? Ingin komplit? Sediakan resource yang besar. Beberapa desktop memang cukup berat. Tapi tidak semuanya. Dan Anda pun tidak harus menggunakan desktop. Apabila ingin minimalis, lupakan desktop dan gunakan saja window manager yang cukup bagus. GNOME Kita akan mulai dengan GNOME ( Saat ini, GNOME terbaru adalah GNOME 2.4, yang datang dengan segudang besar fitur. Tetap berbasiskan pustaka GTK+ ( GNOME 2.4 berusaha untuk menghadirkan desktop semudah windows, namun tetap berciri UNIX. Oleh karena itulah, desktop yang satu ini sangat disenangi oleh pengguna UNIX. Anda membutuhkan ruang kosong harddisk sebesar puluhan sampai ratusan megabyte, tergantung pada jumlah aplikasi yang ingin Anda instal. Sebaiknya Anda juga memiliki memory yang cukup besar. Jangan mengharapkan kinerja yang memuaskan dengan memory sebesar 64 MB. Sediakan 256 MB untuk kinerja yang cukup memuaskan. Memory yang semakin besar akan membuat GNOME lebih senang bekerja. Desktop yang satu ini datang pula bersama control center yang telah diperbarui. Selain itu, beberapa aplikasi seperti file manager Nautilus juga telah ditingkatkan kemampuannya. GNOME terbaru juga datang bersama dengan segala client yang Anda butuhkan. Termasuk web browser epiphany yang benar-benar hanya berfungsi sebagai web browser. Pengaturan beberapa aplikasi juga telah terintegrasi pada control center. Beberapa saat yang lalu, ketika GNOME 2.0 mendobrak dunia desktop, aplikasi yang tersedia untuk desktop ini masih cukup sedikit, sehingga secara keseluruhan kurang memuaskan. Namun, saat ini, aplikasi untuk GNOME 2.x telah cukup banyak tersedia. Kapan memilih GNOME? Jawabannya hanya satu: selera. Jangan mengharapkan GNOME lebih ringan dari KDE. Jangan mengharapkan GNOME lebih bagus dari KDE. Jangan! KDE Kita berpindah ke dunia KDE ( Desktop yang satu ini benar-benar indah luar biasa. Berbasiskan QT ( KDE menghadirkan tampilan yang sangat profesional. Sejak awal dibuat, proyek ini bertujuan untuk menghadirkan integrasi antarkomponen dan fitur yang selengkap mungkin. Pengguna Windows yang berpindah ke Linux akan mendapatkan lingkungan kerja yang mirip dengan Windows. Untuk pengaturan komponen-komponennya, KDE menghadirkan KDE Control Center yang dapat mengatur hampir segala komponen KDE Anda. Mulai dari hal-hal kosmetik seperti theme sampai pengaturan low level perangkat input output. Salah satu aplikasi yang cukup luar biasa adalah Konqueror. Aplikasi yang satu ini, selain berfungsi sebagai file manager, dapat pula berfungsi sebagai web browser. Selain itu, dengan IO Slave yang sangat beragam, Konqueror juga dapat dijadikan client untuk beberapa protokol tertentu. Konsep serupa juga kita dapatkan pada Windows Explorer bawaan Windows. Engine web browser untuk Konqueror bahkan digunakan pada Safari, web browser Apple yang baru. Apabila Anda memiliki ruang kosong puluhan sampai ratusan megabyte, serta memiliki memori sekitar 256 MB, maka desktop ini adalah pilihan yang cocok. Sama seperti GNOME, Desktop yang ini sangat haus akan sumber daya sistem. Menjalankan KDE pada sistem yang paspasan hanya akan membuat tekanan darah bertambah tinggi. Salah satu keunggulan KDE dan aplikasiaplikasinya adalah ketergantungan pustaka yang tidak terlalu rewel. Berbeda dengan satu aplikasi GNOME yang terkadang membutuhkan sampai belasan pustaka, aplikasi KDE umumnya tidak memerlukan banyak pustaka. Kapankah memilih KDE? Sama seperti GNOME, jawabannya adalah selera. KDE mungkin kaya fitur dan cukup memiliki integrasi yang tinggi di antara komponennya. Namun, bukan berarti GNOME kalah. Aplikasi-aplikasi bawaan GNOME, walau terkesan kurang terintegrasi, hadir sangat matang. Tampilan KDE juga tidak selalu lebih indah dari GNOME. Semuanya berbalik kepada selera Anda masing-masing. XFCE XFCE ( adalah sering juga disebut The Cholesterol Free Desktop Environment. Bayangkan saja, dengan fasilitas yang sangat banyak, desktop ini tetap ringan. Bahkan, XFCE 4 yang dibangun di atas pustaka GTK+ 2.x datang tak kalah menarik dengan GNOME 2.x. XFCE datang dengan banyak fitur. Walau, sayangnya, pengaturan windowwindow-nya tidak seperti KDE atau GNOME yang meletakkan daftar window di panel. XFCE lebih suka menaruh daftar window di desktop. Selebihnya, XFCE sangat enak untuk digunakan. Bahkan, XFCE juga datang dengan file manager sendiri yang jauh jauh lebih ringan dibandingkan dengan Konqueror 68 INFOLINUX JANUARI 2004

20 Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial TUTORIAL Memilih Desktop dan Window Manager Olwm, menghadirkan Open Look di sistem Anda Qvwm, sangat mirip dengan Windows 9x ataupun Nautilus. Selain itu, SMB Browser yang datang bersamanya juga sangat luar biasa. Banyak aplikasi bawaan XFCE lainnya yang sangat berguna. Tidak perlu ratusan megabyte ruang kosong harddisk disediakan demi menghadirkan XFCE di sistem Anda. Tidak perlu pula merogoh kocek lebih dalam untuk membeli RAM agar XFCE dapat berjalan mulus. Desktop yang satu ini cukup ringan untuk dijalankan dan tidak memerlukan ruang kosong yang besar. Apabila Anda ingin menghadirkan desktop yang ringan namun komplit, maka XFCE adalah jawabnya. Pada umumnya, memilih GNOME atau KDE adalah masalah selera semata. Apabila Anda ingin tampilan indah yang sangat terintegrasi, maka KDE barangkali jawabannya. Ingin tampilan yang ramah dan memiliki daya tarik tersendiri, pilihlah GNOME. Namun ingatlah, keduanya cukup berat. Mari menyelam lebih dalam lagi. Menjalankan KDE kemudian banyak menggunakan aplikasi GNOME adalah kekonyolan yang sungguh luar biasa, terutama bagi sistem yang memiliki resource pas-pasan. Begitupun juga ketika menjalankan GNOME dan banyak menggunakan aplikasi KDE. Ketika KDE dijalankan misalnya, maka pustaka QT akan aktif di memory. Sementara aplikasi GNOME membutuhkan pustaka GTK+. Hal tersebut artinya Anda akan memiliki dua pustaka besar yang aktif di memory. Seperti telah disebutkan sebelumnya, Anda tidak wajib menggunakan desktop. Penulis jarang sekali menggunakan fasilitasfasilitas desktop dan lebih menikmati betapa minimal dan serunya menggunakan window manager. Window manager Apabila Anda telah menggunakan desktop canggih seperti halnya GNOME, KDE ataupun XFCE, maka umumnya, window manager yang digunakan adalah window manager bawaan desktop tersebut. Anda tidak perlu lagi mengutak-atik window manager yang akan digunakan. Tapi bagi Anda yang memutuskan untuk tidak menggunakan desktop, maka window manager adalah wajib hukumnya. Atau Anda tidak akan memiliki border untuk setiap aplikasi. Kemudian window-window aplikasi Anda tidak dapat dipindahkan dengan gampang. Dan hal-hal lainnya yang menyeramkan. Karena banyak di antara kita yang datang dari dunia windows, maka peran taskbar atau panel sangatlah penting. GNOME, KDE dan XFCE memiliki taskbar. Namun, tidak semua window manager memiliki taskbar. Beberapa hanya berupa menu popup. Untuk memudahkan Anda memilih, kita membagi window manager dalam window manager dengan taskbar dan window manager tanpa taskbar. Window manager tanpa taskbar Sebagian besar window manager di dunia free software tidak datang bersama taskbar. Sebagian bekerja sangat bagus. Sebagian lagi sangat minimalis dan miskin fitur. Umumnya, window manager tidak membutuhkan memory yang terlalu besar. Ruang kosong harddisk pun umumnya masih dalam hitungan di bawah 10 megabyte. Pertama-tama, kita akan membahas Aewm ( ~decklin/aewm/). Window manager yang satu ini luar biasa minimal untuk dekorasi window. Untungnya, popup menu yang datang bersamanya cukup bagus. Setiap klik kanan pada desktop akan membuka satu window xterm yang baru. Selanjutnya, kita akan berpindah ke Amaterus ( amaterus/). Window manager yang satu ini benar-benar ingin tampil minimal, namun tetap menyediakan fasilitas dasar sebuah window manager. Sayangnya, Anda tidak akan mendapatkan popup menu yang cukup ramah. Popup menu yang diberikan hanyalah popup menu yang berisikan beberapa menu item untuk menjalankan xterm, TWM, dan lain sebagainya. Karena membutuhkan GTK+, maka window manager ini masih cukup besar, dari sisi ketergantungan akan pustaka lain. Berikutnya adalah giliran Amiwm (ftp:// ftp.lysator.liu.se/pub/x11/wm/amiwm/). Window manager yang satu ini akan menghadirkan Amiga di sistem Anda. Secara umum, tampilannya sangatlah bagus. Sebuah menu akan diletakkan pada bagian atas layar dan berfungsi sebagai kontrol utama. Dekorasi window-nya cukup memadai untuk digunakan. INFOLINUX JANUARI

21 TUTORIAL Memilih Desktop dan Window Manager Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial Blackbox ( blackboxwm) adalah window manager yang kecil, namun sungguh luar biasa. Sebuah popup menu akan ditampilkan untuk Anda. Dekorasi window-nya juga cukup memadai untuk digunakan. Anda tidak membutuhkan berbagai pustaka aneh untuk dapat menikmati betapa minimalnya blackbox. Walau demikian, jangan berpikir bahwa pembuatnya tidak menyukai atau tidak mengakui desktop dan window manager kelas berat karena salah satu developer-nya adalah developer di Trolltech, produsen QT. Sebagai window manager, enlightenment ( boleh dikatakn cukup berat. Tapi semua itu dibayar untuk mendapatkan tampilan yang luar biasa indah. Enlightenment adalah salah satu window manager paling indah yang pernah dibuat. Memiliki sumber daya lumayan dan ingin tampil gaya dan unik? Cobalah window manager yang satu ini. Fluxbox ( yang berbasiskan Blackbox datang dengan tampilan hampir sama seperti blackbox. Namun, fluxbox datang dengan beberapa fitur tambahan. Walau demikian, theme untuk blackbox tetap bisa Anda gunakan. Sangat minimal dan indah. Window manager yang satu ini sangat direkomendasikan untuk digunakan. Ion ( ~tuomov/ion/) adalah window manager yang sangat unik. Jangan mengharapkan menu atau taskbar yang indah. Sebagai gantinya, Anda harus menggunakan keyboard Anda untuk mengontrol window manager ini. Semua tombol dari F1 sampai F12 memiliki fungsi sendiri-sendiri. Bagi Anda yang ingin cepat dan banyak menggunakan keyboard, window manager ini sangat cocok untuk digunakan. Kita akan berpindah ke dunia oroborus ( co.uk/oroborus/). Window manager yang satu ini memiliki dekorasi window yang luar biasa indah. Selebihnya, biasa-biasa saja. Oroborus kompatibel untuk digunakan bersama desktop GNOME. Olwm ( olvwm.html) akan menghadirkan Open Look di sistem Anda. Ringan dan cukup mudah digunakan dengan sebuah popup menu yang berfungsi sebagai menu utama. Selain itu, dekorasi window-nya pun cukup indah untuk dilihat. Sangat cocok bagi Anda yang menggemari tampilan a la Open Look. Satu lagi window manager yang dikembangkan dari source code blackbox. Openbox ( datang sangat mirip dengan blackbox. Walau demikian, openbox memiliki sejumlah keunggulan dibandingkan blackbox. Di antaranya adalah antialiasing dan dukungan untuk NetWM. Windowmaker ( barangkali adalah window manager yang benar-benar luar biasa. Ringan, kaya fitur, dan sangat didukung oleh banyak pembuat software lainnya. Tampilannya yang mirip dengan NeXTSep pun disajikan dengan sangat indah. Sebuah pilihan bagi Anda yang ingin tampil keren, unik dan komplit namun tetap ringan di memory. Window manager dengan taskbar Walau bukan suatu keharusan, beberapa window manager datang bersama taskbar. Bagi yang telah terbiasa, sebuah taskbar dapat sangat membantu. Saat ini terdapat beberapa window manager yang datang lengkap dengan taskbar, akan tetapi, IceWm dan Qvwm adalah dua yang sangat pantas Anda coba. Icewm ( ~k4fr0235/icewm/) adalah window manager yang benar-benar luar biasa. Selain datang dengan dukungan taskbar yang mirip dengan taskbar Windows, window manager yang satu ini juga datang dengan berbagai fitur hebat lainnya. Salah satunya adalah penggunaan theme. Anda dapat mengistal theme-theme untuk Icewm yang tersebar di Ketika X Window malu-malu kucing Internet, dan kemudian mendapatkan wajah baru yang menarik. Icewm juga terkenal sebagai window manager yang mengambil yang terbaik-terbaik dari window manager lain. Kemampuan untuk dikustomisasi dari window manager yang satu ini juga hebat luar biasa. Hampir semua bisa Anda ubah sesuai keinginan. Apabila Anda menginginkan window manager yang ringan namun sangat kaya fitur, maka Icewm-lah pilihan nomor satu. Window manager ini bahkan jalan di Windows. Qvwm ( adalah window manager yang benar-benar ingin menghadirkan lingkungan kerja seperti pada Windows 9x. Luar biasa mirip. Bahkan mengalahkan kemampuan Fvwm95 untuk menghadirkan tampilan yang mirip dengan Windows 95. Selain itu, secara default, qvwm juga mendukung sound event sederhana, sehingga kita bisa menikmati suara pada beberapa event seperti start up dan shutdown. Taskbarnya sangat mirip dengan Windows 9x dan memiliki fasilitas Autohide. Bahkan menu start-nya juga dirancang sedemikian rupa sehingga menyamai Windows. Termasuk menu run, yang dengan cerdik didapatkan dari menjalankan xterm dengan geometri kecil. Ingin window manager yang benar-benar mirip dengan Windows 9x? Gunakan Qvwm. Anda tidak akan menyesal. Pilihlah desktop atau window manager yang benar-benar sesuai dengan selera Anda. Sebagai pengguna, Anda berhak akan sistem yang paling baik dan paling personal bagi Anda. Cobalah dan terus mencoba, sampai Anda mendapatkan yang terbaik. Noprianto (noprianto@infolinux.co.id) Beberapa saat lalu, salah satu pertanyaan yang seringkali dikemukakan ketika seseorang ingin menggunakan Linux adalah: Dapatkan saya menikmati GUI di Linux? Dan ketika jawabannya adalah tidak, maka Linux pun mungkin urung diinstal. Bagi yang ngotot, beberapa tindakan pun dilakukan. Salah satunya adalah dengan mengganti video card dengan video card yang telah didukung oleh Linux. Bukan solusi yang optimal, tapi, paling tidak, pengguna tersebut dapat menikmati GUI di Linux. Apabila ternyata video card Anda tidak dikenal oleh X Server, maka Anda selalu dapat mempergunakan driver vesa. Penggunaan vesa mungkin membuat kartu Anda tidak dapat bekerja dengan optimal. Akan tetapi, paling tidak kita bisa menikmati indahnya GUI di Linux. Satu catatan khusus bagi pengguna video card nvidia, Anda selalu dapat memperoleh driver terbaru dari situs Driver generic nv tidak akan memberikan hasil yang Anda inginkan. 70 INFOLINUX JANUARI 2004

22 Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial TUTORIAL Membuat Mailing List Server Langkah Sederhana Membuat Mailing List Server Tulisan ini merupakan kumpulan pengalaman selama beberapa hari menginstalasi dan mengoperasikan mailing list server groups.or.id oleh Onno W. Purbo. Mesin server groups.or.id merukan hasil saweran beberapa aktivis TI Indonesia, yang mengumpulkan uang rata-rata Rp ,- dan Rp ,- per orang. Koordinasi saweran dilakukan oleh Donny BU. Server Groups.or.id berlokasi di Colocation dan bandwidth sumbangan dari CBN. Memang bukan server yang besar sekali, karena dia hanyalah kelas Pentium III, dengan ukuran partisi /var sekitar 7 Gbyte saja dan RAM 256 Mbyte. Mailing list server tersebut telah dapat diakses melalui web di Mudah-mudahan dapat menampung beberapa mailing list yang besar-besar supaya mengurangi trafik internasional dari Indonesia ke yahoogroups.com yang membuang devisa kita. Persiapkan komputer Spesifikasi komputer tentunya sangat tergantung pada beban pekerjaan yang harus di-handle. Ruang harddisk untuk partisi yang terdapat directory /var harus besar, karena tempat penyimpanan arsip mailing list diletakkan pada /var. Pada kesempatan ini, kami menggunakan spesifikasi server dengan sepesifikasi sebagai berikut: Prosesor Pentium III RAM 256 Mbyte Harddisk sekitar 14 Gbyte Beberapa hal administratif lain yang perlu dilakukan jika kita menginginkan server tersebut dapat berfungsi secara baik di Internet adalah: 1. Mencari tempat meletakkan server tersebut di Internet, sebaiknya di ISP lokal di kota Anda. Atau di IIX (Indonesia Internet Exchange). Pada kesempatan ini kami meletakannya di CBN karena teman-teman di CBN bersedia menyumbangkan tempat colocation dan bandwidth Internasionalnya untuk traffic mailing list tersebut. 2. Minta alokasi IP address dari tempat colocation server. 3. Registrasikan domain ke IDNIC melalui web Mungkin yang paling mudah adalah menggunakan domain *.web.id. Instalasi sistem operasi Di bulan puasa, Bona Simandjuntak dan saya membutuhkan waktu sekitar dua (2) jam untuk menginstalasi server mailing list dari nol. Sambil nyambi memaksa Donny BU untuk belajar menginstalasi Linux. Linux merupakan pilihan terbaik untuk server mailing list. Beberapa fasilitas yang wajib diinstalasi agar mailing list server dapat beroperasi dengan baik adalah: Postfix, mail server. Mailman, mailing list server. Apache, web server, karena mailman menggunakan web untuk interaksi. Python, bahasa pemrogramman yang digunakan Mailman. Ssh, agar kita dapat login dari remote. BIND, untuk mengoperasikan Domain Name System agar dapat memperkenalkan nama domain dari server yang kita operasikan. Webmin, bagi mereka yang lebih suka mengadministrasi server dari jauh melalui web browser. Sebaiknya di instalasi juga semua fasilitas yang dibutuhkan untuk development karena kita akan banyak mengcompile software untuk meng-update berbagai fasilitas yang ada. Bagi mereka yang agak paranoid tentunya dapat menginstalasi software firewall, seperti iptables dan shorewall, maupun Intrusion Detection System (IDS), seperti snort dan prelude untuk menambah pertahanan server. Pada Mandrake 9.0 maupun 9.1, semua software yang dibutuhkan terdapat dalam bentuk RPM. Instalasi software jadi sangat mudah sekali. Kita perlu meng-upgrade Mailman yang digunakan karena Mailman RPM bawaan Mandrake 9.1 adalah versi Mailman yang terbaru saat tulisan ini dibuat adalah Sebaiknya kita tetap menginstalasi Mailman RPM bawaan Mandrake karena akan menjadi dasar untuk setup folder dan lain sebagainya bagi instalasi Mailman selanjutnya. Tes awal operasi server Selesai instalasi, server mailing list dapat langsung dites operasionalnya. Beberapa hal yang perlu di-tuning sebelum tes dilakukan adalah: Edit file /etc/postfix/main.cf dan isikan parametersebagai berikut. myhostname = nama hostname anda. inet_interfaces = all owner_request_special = no recipient_delimiter = + unknown_local_recipient_reject_code = 500 alias_maps=hash:/etc/postfix/ aliases,hash:/var/lib/mailman/data/aliases Edit file /etc/httpd/conf/httpd.conf (Mandrake 9.0) atau /etc/httpd/conf/ httpd2.conf (Mandrake 9.1), dengan menambahkan pada line paling bawah. Include conf/mailman.conf Bagi yang juga mengoperasikan DNS server untuk domain dari mailing list server tersebut, sebaiknya diedit file berikut ini. /var/named/nama-domain.hosts INFOLINUX JANUARI

23 TUTORIAL Membuat Mailing List Server Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial Isikan dengan benar informasi domain yang diregistrasikan ke IDNIC. Restart semua server yang kita tuning, melalui perintah: # service postfix restart # service httpd restart # service named restart Check routing dengan perintah ping. Browse secara lokal ke mailman/admin. Anda harusnya akan melihat tampilan interface administrator mailing list Mailman melalui web browser. Upgrade Mailman Ambil mailman versi terakhir dari atau sourceforge.net/projects/mailman/. Setelah berhasil di-download, lakukan langkah-langkah berikut: # cp mailman tgz /usr/local/src # cd /usr/local/src # tar zxvf mailman tgz # cd /usr/local/src/mailman Baca semua file README.*, terutama README.POSTFIX dan INSTALL. Anda akan memperoleh gambaran cara terbaik untuk menginstalasi mailing list server menggunakan Mailman dan Postfix. Siapkan system untuk Mailman: 1. Tambahkan user mailman dan group mailman # adduser mailman G nogroup # groupadd mailman Biasanya group mailman akan dibuat secara automatis oleh adduser mailman. Pada saat menjalankan adduser, tambahkan switch G nogroup agar user mailman dapat berinteraksi dengan baik ke postfix yang berjalan di bawah group nogroup. 2. Jika Anda sudah pernah menginstalasi Mailman dari RPM Mandrake, lakukan langkah berikut ini. # rm rf /var/lib/mailman # mkdir /var/lib/mailman # chown R mailman.mailman /var/lib/ mailman # chmod R /var/lib/mailman Catatan: perintah rm /var/lib/mailman dan mkdir /var/lib/mailman jangan dilakukan Situs groups.or.id jika Anda ingin menyelamatkan mailing list yang pernah dibuat sebelumnya. Instalasi Mailman Lakukanlangkah konfigurasi, kompilasi, dan instalasi dari source Mailman yang telah diekstrak. # cd /usr/local/src/mailman #./configure prefix=/var/lib/mailman with-mail-gid=nogroup with-cgigid=apache # make install Biasanya Anda akan dapat masalah pada saat./configure jika library Python untuk development belum diinstalasi, atau Linux tidak disiapkan untuk melakukan kompilasi software dan sebangsa itu. Kadang-kadang opsi with-mail-gid akan memberikan masalah kalau Postfix dijalankan dengan group ID lain. Yang biasanya digunakan adlah with-mail-gid= nogroup atau with-mail-gid=mailman. Cek instalasi Mailman Lakukan dua lengkah berikut ini untuk cek hasil instalasi. # cd /var/lib/mailman # bin/check_perms Biasanya akan keluar error bahwa mod harus untuk folder messages dan templates. Itu dapat diperbaiki dengan perintah berikut ini. # chmod R messages # chmod R templates Yang juga sering menimbulkan kesalahan adalah group awal mailman yang menggunakan group mail, sedang Mailman menggunakan Mailman. Agar perbaikan dapat dilakukan secara otomatis, dapat pula dilakukan melalui perintah berikut: # bin/check_perms f Setting final untuk Mailman 1. Buat mailing list Mailman untuk menerima komentar atau permohonan pembuatan mailing list. # bin/newlist mailman 2. Konfigurasi mailing list Mailman menggunakan sitelist.cfg standar. # bin/config_list i data/sitelist.cfg mailman Default konfigurasi sitelist.cfg tidak dapat menerima mail dari non-member, dan reply kepada si pengirim berita (poster), bukan ke mailing list. Hal ini dapat diubah di lain waktu melalui interface web. 3. Setup tabel cron. # cd /var/lib/mailman/cron # crontab u mailman crontab.in 72 INFOLINUX JANUARI 2004

24 Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial TUTORIAL Membuat Mailing List Server Menu Admin Mailing List 4.Jalankan Mailman qrunner daemon. # cd /var/lib/mailman # bin/mailmanctl start 5. Agar mailman berjalan setiap kali system di-boot, jalankan dua langkah berikut: # cp scripts/mailman /etc/init.d/ mailman # chkconfig add mailman Beberapa distro Linux menggunakan / etc/rc.d/init.d bukan /etc/init.d. Setelah chkconfig dilakukan, Anda dapat me-restart mailman melalui perintah berikut: # service mailman restart Beberapa kustomisasi Tidak banyak yang perlu kita kustomisasi dari Default setting Mailman. Saya biasanya hanya mengganti parameter MTA pada file /var/lib/mailman/mailman/default.py seperti berikut ini. MTA = Manual menjadi: MTA = Postfix Yang juga perlu dikustomisasi adalah password untuk administrator Mailman yang dibutuhkan saat membuat mailing list. Tugas administrator antara lain adalah membuatkan mailing list bagi orang lain yang meminta dibuatkan mailing list. Pembuatan password ini dilakukan melalui perintah berikut: # cd /var/lib/mailman # bin/mmsitepass Selesai sudah semua konfigurasi Mailman. Kita harusnya sudah dapat memberikan service mailing list bagi pengguna di Internet. Beberapa catatan untuk membuat & membuang mailing list Untuk membuat mailing list (sebagai contoh di groups.or.id), Name of list diisi nama mailing list. 3. Initial list owner address diisi list owner. 4. Auto-generate initial list password? Yes 5. List creator s (Authentication) password diisi password yang telah diset dengan perintah bin/mmsitepass. Selesai membuat mailing list dari web, ssh ke root shell untuk me-restart Postfix. # service postfix restart Maaf tak ada jalan lain yang lebih sederhana, postfix harus di-restart untuk mengaktifkan alias secara otomatis. Alternatif lain adalah memodifikasi source code. Untuk membuang atau me-remove sebuah mailing list, perintahnya adalah: # cd /var/lib/mailman # bin/rmlist a nama-mailing-list Panduan amat singkat bagi pengguna mailing list biasa Untuk menggunakan mailing list server Mailman tidak berbeda jauh dengan yahoogroups.com. Hanya saja, pembuatan mailing list harus dilakukan oleh administrator di mailman@nama-mailing-list-server. Hal ini dilakukan karena tidak ada mekanisme otentikasi bagi si pembuat mailing list. Tidak seperti yahoogroups.com, yang dapat membuat mailing list adalah mereka yang mempunyai account mail di yahoo.com. Sebagai contoh untuk membuat mailing list di groups.or.id, Anda cukup mengirimkan mail ke mailman@groups.or.id untuk meminta dibuatkan mailing list. Pada saat mailing list dibuat, Anda akan dapat konfirmasi via beserta password untuk administrator mailing list tersebut yang di-generate secara random. Seluruh daftar mailing list di groups.or.id dapat dilihat di listinfo. Pengguna biasa dapat subscribe melalui namamailinglist-subscribe@ groups.or.id atau melalui web groups.or.id/mailman/listinfo/namamailinglist. Untuk administrator mailing list yang ingin mengadministrasi mailing list, dapat melakukan melalui admin/namamailinglist. Masukkan password administrator mailing list yang diperoleh dari saat dibuatkan mailing list tersebut. Beberapa menu yang sering dilakukan oleh administrator mailing list melalui Web namamailinglist adalah: Passwords (untuk ubah password administrator). Membership Management Mass Subscription. Privacy Options Subscription Rules advertiseddiisi Yes. Di samping itu, ada beberapa parameter yang akan membantu operasional mailing list server, seperti berikut ini: General Options Owner (untuk mengubah owner). General Options Description (pemberitahuan di listinfo). General Options first_strip_reply_to yes. General Options reply_goes_to_list this list. Onno W. Purbo (onno@indo.net.id) INFOLINUX JANUARI

25 TUTORIAL Subversion, CVS Replacement Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial Subversion, CVS Replacement Subversion adalah salah satu software configuration management diciptakan sebagai repository untuk pengembangan aplikasi object oriented, harusnya menjadi CVS 2.0. Tetapi karena desain teknologi yang sangat berbeda, maka menjadi sebuah project sendiri yang disebut Subversion. Kalau kalian programer yang bekerja secara tim pasti sudah pernah pusing atau mengalami halhal yang mengesalkan saat melakukan coding, seperti data hilang, tertimpa, dan sebagainya. Nah untuk mengatasinya, biasanya dipasang seperti sistem repository yang mengatur perubahaan source code. Software sejenis ini ada banyak di antaranya Visual Sourcesafe, Starbase StarTeam, Rational ClearCase, tetapi itu semua yang komersial, yang paling populer adalah CVS karena CVS ini adalah open source. Saat ini CVS ini sudah menjadi default application di Linux, semua distro Linux mendukung CVS. Juga semua IDE populer pasti mendukung CVS contohnya Jbuilder, SunONE Netbeans, Websphere Eclipse. CVS mengolah dan menyimpan source code atau binary file, mencatat perubahaannya, dan diberi nomor perubahaan maka disebut Concurrent Versioning System padahal nama project permulaannya adalah cederqvist (CVS) nama yang aneh bukan. Dengan CVS source code harihari sebelum update terakhir dapat direstore, dibandingkan dan diketahui siapa yang membuat. CVS memungkinkan terjadinya kolaborasi pemograman antara programer. CVS memungkinkan integrasi dengan , sehingga update code dari seorang programer bisa diketahui oleh tim. CVS memungkinkan sebuah project pengembangan aplikasi menjadi sangat terstruktur. Terutama di Indonesia yang cenderung di-organize, CVS akan sangat membantu. Sayangnya, CVS ini tidak mendukung pencatatan perubahaan folder/direktory, di mana beberapa bahasa pemograman sangat terkait dengan folder/direktori, hal ini yang membuat CVS perlu diperbaiki. Sehingga untuk project yang berhubungan dengan folder seperti Java, kalau terjadi proses refactoring, dan dalam sebuah project yang mana project manager-nya gatek dan selalu berubah-ubah desain sistemnya (hal yang sering terjadi di Indonesia), programer akan kelimpungan. Nah Karl Fogel dan Jim Blandy, yang juga pendiri Cyclic Software, salah satu orang penting dalam pengembangan CVS, sudah berpikir untuk upgrade CVS ini untuk mendukung ini, pembicaraan panjang dilakukan, maklum project CVS diciptakan oleh Dick Grune tahun Desember 1996 melalui newsgroup com.sources.unix, jadi sudah hampir satu dekade, malah CVS yang sekarang ini desainya mengikuti desain Brian Berliner tahun Ada banyak hal yang membuat versi terbaru dari CVS ini tidak dipasang title CVS 2.0, tetapi Subversion, sebuah project di bawah bendera tigris.org, sebuah dotcom open source yang spesialis bergerak dibidang software engineering. Secara arsitektur CVS ini menggunakan teknologi paling baru saat ini yaitu WebDav mengikuti RFC 2518 untuk extension HTTP. Karl Fogel dan Jim Blandy tersebut dihire menjadi pegawai full time oleh Brian Behlendorf dari Collab.Net, yang pencipta Apache Web Server yang paling populer. Saya pribadi tidak tahu negosiasi apa yang membuat CVS 2.0 ini menjadi Subversion, dan tidak kompatibel, padahal kalau diupgrade kan tidak masalah. Mungkin sudah tipical open source project kalau sudah stabil, project barunya ganti nama, malah tidak kompatibel. Walaupun ada script Python di Subversion yaitu cvs2svn.py untuk melakukan konversi project CVS ke Subversion. Berkenalan lebih jauh dengan Subversion Subversion saat artikel ini dibuat, menyandang versi , dan sudah sekitar 1,5 tahun dipakai oleh tim Subversion di production, jadi mestinya lebih stabil, tetapi tim bercita-cita untuk memasukan module baru ke dalam Subversion sehingga nanti pas versi 1.0 sudah jadi replacement de facto dari CVS, yang mana tidak tahu kapan itu. Maklum dari start project ini sekitar Februari 2000 sampai sekarang baru 0.2, versi 0.5 saja belum sampai. Malah di FAQ-nya sudah dikatakan stabil ( project_faq.html), ini cuplikan pernyataan tentang stabilitas Subversion: We believe that Subversion is stable and have confidence in our code, in fact, we ve been self-hosting since September of 2001 eating our own caviar so to speak. We declared alpha because we re ready for the world to try Subversion. After 10 months of self-hosting, we haven t lost any data at all. The filesystem schema is stable now and shouldn t undergo any changes before 1.0. In the off-chance that the schema does change, we will provide a dump/ load utility to aid you in the migration. In order to make Subversion as stable as possible, we need more people to use Subversion. If you use Subversion on a day-to-day basis, you can help us find and fix any bugs that might turn up. It may sound risky at first, but odds are that if you find any bugs they will be minor inconveniences as opposed to data destroyers. Saya mungkin tidak akan membahas secara lengkap apa itu Subversion atau 74 INFOLINUX JANUARI 2004

26 Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial TUTORIAL Subversion, CVS Replacement disingkat SVN, terutama fitur command line-nya, maklum di dokumentasinya sudah lengkap semua, mungkin akan dibahas beberapa tip untuk pemakaian. Ini artinya sebuah kemajuan luar biasa secara pengembangan sistem, karena berbeda sekali dengan CVS yang menggunakan pserver protocol dan source code handling dengan RCS. WebDav ini protokol yang didukung oleh hampir semua web server baru. Masih ingat FreeDrive yang menyediakan space gratis di Internet, dan bisa jadi sebuah drive virtual. Nah WebDav bekerja seperti ini, begitu juga di IIS sudah ada WebDav. Malah kalau Anda share map network di Windows ada WebFolder, itu juga WebDav support. SVN dirancang hanya berjalan di Apache 2.0, dan mod_dav-nya harus sudah terpasang, tanpa module tersebut SVN tidak bisa bekerja. Malah SVN ini saking terintegrasinya dengan WebDav-nya Apache, SVN ini mendukung penuh semua fitur di Apache dan WebDav-nya. Malah security model Apache menggunakan htpasswd-nya Apache. Semua setting SVN bekerja seperti setting virtual directory di Apache. Malah kalau Apache-nya mendukung SSL, SVN dapat berjalan di https. Bekerja dengan Subversion Nah untuk bekerja dengan Subversion, sebenarnya tidak sulit, karena tim Subversion telah membuat rpm lengkap dengan apachenya, Anda bisa download di subversion.tigris.org untuk versi terbarunya, maklum mereka update terus setiap 1-2 bulan. Untuk instalasinya tidak sulit, jalankan saja semua rpmnya, baik itu rpm Apache , Neon, subversion rpm. Kalau pembaca tangan kotor, dapat membuatnya dari source code awal. Ingat untuk pemakai Red Hat 8.0, harus upgrade glibc-nya ke versi terbaru. Untuk ini pembaca harus meregister server-nya di RedHat.com, tetapi untuk pemakai Mandrake 9.1, sudah otomatis bisa menginstalnya. Bila menginstal Subversion client, ada beberapa file executable yang diinstal, yang terpenting adalah svn, di mana svn ini bekerja seperti halnya cvs command di CVS. Svn ini akan melakukan segala kegiatan seperti checkout, import, update, commit, dan menampilkan informasi source code. Sayangnya untuk client base-nya untuk replacement seperti JCVS, WinCVS belum stabil, di Subversion disebut RapidSVN, penulis pernah mencobanya, setiap koneksi ke server suka crash. Tetapi untuk yang TurtoiseSVN yang jalan di Windows, bekerja secara terintegrasi dengan Explorer dan sampai saat ini berjalan baik. Memulai project dengan Subversion Untuk memulai project menggunakan Subversion, misalnya project java atau C++, tim harus men-setting sebuah folder dulu di komputernya, bisa di Windows ataupun Linux, kemudian lakukan import folder tersebut berserta source code di dalamnya ke sistem Subversion. Bila hendak memasukkan folder cimande dengan semua isinya ke Subversion lakukan: $ svn import -m Comment Import cimande Adding cimande/build/build.xml... Transmitting file data... Committed revision 1. Kalau pusing, coba deh pakai TurtoiseSVN, klik kanan di folder yang akan di-import, kemudian pilih Import. Maka sebuah dialog Import akan keluar. Dalam dialog tersebut akan ada 3 isian, yaitu: URL of repository: lokasi dari repository subversion. User folder as modulename: mengubah nama folder menjadi nama module, yang mana dapat di-search dikemudian hari. Import Message: informasi tambahan untuk module. Kemudian setiap programer dapat melakukan checkout untuk meng-copy semua isi dari cimande module di Subversion ke harddisk-nya. Checkout secara otomatis akan meng-copy semua informasi dari module di Subversion server ke client yang semua dimasukkan dalam sebuah folder yang bernama.svn, yang berisikan informasi yang akan memudahkan replikasi. Informasi di folder.svn ini yang berbeda dengan CVS, di mana setiap kali kita hendak melakukan replikasi harus init dulu, di Subversion hal itu tidak perlu dilakukan. Maklum kalau kita bekerja di beberapa project yang server repitory-nya berbedabeda, wah kita harus setting berulang di CVS, tetapi di Subversion tidak perlu. Semua informasinya disimpan di.svn. Caranya checkout module cimande yang telah dibuat di atas dengan svn import adalah: $ mkdir cimande $ cd cimande $ svn co repos/testrepo/cimande A buiid/build.xml Checked out revision 2. Subversion memiliki alternatif selain http atau https dengan protokol WebDav, tetapi file system biasa tetapi harus standard web, jadi testrepos/cimande bisa diganti dengan file:/ //tmp/testrepos/cimande yang artinya berlokasi di PC letaknya di /tmp/testrepos/ cimande. Karena intergasi dengan Apache, maka setiap project di Subversion dapat diakses via browser, caranya adalah mengetik Fasilitas yang tidak terdapat bila menggunakan file system file://. Selain itu Subversion juga didukung oleh ViewCVS (viewcvs.sf.net) yang dibuat dengan svn architecture INFOLINUX JANUARI

27 TUTORIAL Subversion, CVS Replacement Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial Repo with new svn global versioning Python, yang merupakan CVSWeb replacement yang bekerja di CGI. XML di Subversion Beda CVS yang paling mendasar dengan Subversion adalah dukungan XML-nya. Semua repository Subversion diset menggunakan XML. Untuk lebih detailnya coba deh buka file enteries di repository Subversion di folder.svn, pembaca akan mendapatkan xml file yang isinya kurang lebih seperti ini: <?xml version= 1.0" encoding= utf- 8"?> <wc-entries xmlns= svn: > <entry name= svn:this_dir url= blueoxygen kind= dir revision= 0"/> <entry committed-rev= 2" name=.classpath text-time= T16:01: Z committed-date= T14:49: Z checksum= fed5de57e72e9e2b32e2e2d 26409a873" kind= file uuid= f2d39eed-db92-f949-a6eaee c46" prop-time= T16:01: Z revision= 2"/> <entry name= src kind= dir /> </wc-entries> File ini memberikan informasi bahwa folder tersebut akan berhubungan dengan server bernama localhost, dengan web folder-nya bernama testrepo, dan module bernama blueoxygen. Sedangkan untuk file yang binary seperti.jar, atau.class, atau image akan disimpan di.svn\text-base, dengan file bernama.classpath.svn-base. Isinya seperti berikut: <?xml version= 1.0" encoding= UTF- 8"?> <classpath> <classpathentry kind= var path= JRE_LIB rootpath= JRE_SRCROOT sourcepath= JRE_SRC /> <classpathentry kind= lib path= C:/ eclipse/workspace/blueoxygen/lib/ jdbc2_0-stdext.jar /> <classpathentry kind= lib path= C:/ eclipse/workspace/blueoxygen/lib/jdomb7.jar /> <classpathentry kind= lib path= C:/ eclipse/workspace/blueoxygen/lib/ jive_basic.jar /> <classpathentry kind= lib path= C:/ eclipse/workspace/blueoxygen/lib/jtaspec1_0_1.jar /> <classpathentry kind= lib path= C:/ eclipse/workspace/blueoxygen/lib/ mm.mysql bin.jar /> <classpathentry kind= lib path= C:/ eclipse/workspace/blueoxygen/lib/ xerces_1_4_1.jar /> <classpathentry kind= lib path= C:/ commons-collections-2.0-src/bin/ common_collection-0.1.1a.jar /> <classpathentry kind= src path= src/java /> <classpathentry kind= lib path= C:/ tomcat402/common/lib/servlet.jar /> <classpathentry kind= lib path= C:/ tomcat402/common/lib/velocity- 1.2.jar /> <classpathentry kind= output path= bin /> </classpath> Instalasi Subversion di Debian Ada beberapa cara untuk instal Debian, saat artikel ini dibuat Subversion sudah keluar 0.33, dengan kata lain akan masuk phase Alpha. Subversion 0.33 memerlukan Apache untuk berjalan. Untuk pemakai Debian, tinggal lakukan apt-get install. Untuk mem-fetch-nya dapat dilakukan dengan mengetik: 1. apt-get install subversion 2. apt-get install subversion-tools 3. apt-get install libapache2-svn Bila telah berhasil men-download dan menginstalnya, coba ketik svn, sebuah informasi pembuka Subversion muncul. Sayangnya, setting untuk membuat server tidak dilakukan secara otomatis. libapache2-svn akan memindahkan mod_dav_svn.so ke box Linux, untuk menginstalnya tinggal me-load mod_dav_svn.so, setelah itu lakukan setting repository yang telah dijelaskan di atas. Kegiatan apt ini akan menginstal semua komponen tambahan seperti neon, swig, dan juga apr terbaru. Hati-hati menginstal aplikasi ke Debian, sebaiknya lakukan update apt database dulu, karena penulis pernah mengalami kejadian saat menginstal Subversion, di mana di repository Debian versi 0.32, sedangkan yang di komputer penulis adalah Karena upgrade bisa terjadi bukan hanya di subversion, tetapi di neon atau apr atau apache httpd-nya. Maklum Debian ini di-update terus. Bila pembaca hendak membuat repository sendiri dapat men-download source package-nya di people.debian.org/~cjwatson/subversionwoody. Informasi lebih lanjut mengenai Subversion dapat dilihat di packages.debian.org/subversion. Subversion versi Debian ini di-update selalu oleh David Kimdon Frans Thamura 76 INFOLINUX JANUARI 2004

28 Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial TUTORIAL Quota, Membatasi Data para User Quota, Membatasi Data para User Quota bukan hal yang asing lagi bagi kita, terlebih bagi rekan-rekan yang memiliki account rame-rame di salah satu server Linux. Layanan gratis yang tersedia di Internet seperti dan web biasanya juga menerapkan quota. Sebetulnya apa itu quota? Quota adalah salah satu fitur dari sistem operasi (dalam hal ini Linux) yang membatasi berapa banyak data atau file yang diperbolehkan untuk disimpan pada direktori user tertentu. Quota bukan hanya terbatas pada besar data atau file yang disimpan, tapi juga bisa diterapkan pada hal lain, seperti besarnya bandwidth (dikenal degan bandwidthlimiter) atau lainnya. Quota juga dapat diterapkan pada nfs dan xfs. Di sini kita akan membahas quota yang membatasi besarnya data atau file pada sistem operasi Linux khususnya local filesystem. Persiapan Penerapan quota pada Linux tidak terlalu sulit dan membingungkan. Pada kebanyakan distro, kernel Linux yang disertakan telah mendukung fasilitas quota filesystem. Jadi rekan-rekan bisa langsung menggunakan fasilitas ini, tanpa harus melakukan kompilasi kernel. Tetapi bagi Anda yang ingin mengoptimasi kernelnya atau yang mengompilasi kernelnya sendiri, jangan lupa untuk mengaktifkan Quota Support pada bagian File System. Tanpa kernel yang mendukung quota, proses quota ini tidak dapat dilakukan. Di samping kernel Linux yang mendukung quota, kita juga memerlukan program tambahan. Program-program tambahan ini juga telah disertakan dalam paket-paket pada kebanyakan distro. Nama perintah program-program tersebut antara lain: /sbin/convertquota /sbin/quotacheck /sbin/quotaoff /sbin/quotaon /usr/bin/quota /usr/sbin/edquota /usr/sbin/quotastats /usr/sbin/repquota /usr/sbin/rpc.rquotad /usr/sbin/setquota /usr/sbin/warnquota Apabila program ini tidak ditemukan pada Linux Anda, Anda dapat mengambilnya di projects/linuxquota. Konfigurasi Setelah semuanya siap, baik kernel atau program penunjang, kita dapat memulai menerapkan sistem quota pada Linux. Pada sesi ini kita diharuskan login sebagai superuser atau root. 1. Memperbarui informasi Filesysem Edit file informasi filesystem /etc/fstab. Tambahkan usrquota atau grpquota pada partisi yang akan diterapkan quota, misalnya /dev/hdc9 yang di-mount sebagai /home, dengan salah satu cara berikut ini. /dev/hdc9 /home ext3 defaults,usrquota 1 2 /dev/hdc9 /home ext3 defaults,grpquota 1 2 Anda juga boleh menerapkan keduanya (usrquota dan grpquota) /dev/hdc9 /home ext3 defaults,usrquota, grpquota 1 2 Usrquota digunakan untuk setting quota tiap user, dan grpquota digunakan untuk setting quota tiap group. 2. Membuat file informasi quota Setelah kita mengedit file fstab, kita lanjutkan dengan membuat file quota.user atau quota.group pada partisi yang diberlakukan sistem quota. Caranya dengan menggunakan perintah touch: # touch /home/quota.user Kemudian diikuti dengan perintah chmod: # chmod 600 /partition/quota.user # chmod 600 /partition/quota.group 3. Memeriksa dan memperbarui informasi quota Memeriksa informasi partisi dan memperbaharui isi quota.user dengan perintah quotacheck: # quotacheck -v /dev/hdc9 quotacheck: Scanning /dev/hdc9 [/home] done quotacheck: Checked 494 directories and 2833 files 4. Mengaktifkan quota Pada saat ini quota akan aktif, tetapi quota (baca pembatasan) belum diterapkan karena kita belum memberikan informasi mendetail untuk tiap user yang ada pada Linux kita. Pengaktifan quota ditempuh dengan cara quotaon -av, sedangkan untuk mematikan quota kita gunakan quotaoff -av # quotaon -av /dev/hdc9 [/home]: user quotas turned on # quotaoff -av /dev/hdc9 [/home]: user quotas turned off 5. Pemberian quota tiap user Untuk memberikan informasi detail tiap user, kita dapat menggunakan edquota. Setelah edquota kita jalankan, maka kita akan berhadapan mode editor vi (sebuah aplikasi text editor). Untuk rekan-rekan yang sudah biasa menggunakan vi, tidak akan kesulitan menggunakan edquota ini. Sedangkan bagi yang kurang biasa menggunakan vi, mungkin akan menemui sedikit masalah. Sebelum mengedit berapa besar quota atau berapa banyak file yang yang akan kita terapkan tiap user ada baiknya INFOLINUX JANUARI

29 TUTORIAL Quota, Membatasi Data para User Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial mengetahui bentuk dan struktur file edquota, kurang lebih akan seperti berikut ini. Disk quotas for user idban (uid 500): Filesystem blocks soft hard inodes soft hard /dev/hdc Berikut ini penjelasan instilah-istilah yang berkaitan dengan quota dan edquota: Filesystem: partisi yang akan diberlakukan sistem quota yang telah memiliki ukuran blocks 9360 dan inodes blocks: jumlah total besar data pada user bersangkutan (dalam kb atau kilobyte), dengan penjelasan hard dan soft sebagai berikut. soft: besar quota yang diberikan untuk besar data (dalam kb), 0 artinya tak terbatas. Jika masa tenggang tidak diset, soft limit ini berlaku sebagai nilai maksimum. hard: batas limit (maksimum ) untuk besar data (dalam kb), 0 artinya tak terbatas. Jika masa tenggang tidak diset, hard limit tidak diberlakukan. inodes: jumlah file yang ada pada user bersangkutan, dengan penjelasan soft dan hard sebagai berikut. soft: besar quota yang diberikan untuk jumlan file, 0 artinya tak terbatas. Jika masa tenggang tidak diset, soft limit ini berlaku sebagai nilai maksimum. hard: batas limit (maksimum) untuk jumlah file, 0 artinya tak terbatas. Jika masa tenggang tidak diset, hard limit tidak diberlakukan. Kembali ke edquota, untuk melakukan pengeditan kali pertama tekanlah tombol keyboard i. Kemudian dengan bantuan panah pada keyboard, geserlah ke tempat yang akan diedit informasinya. Misalnya, kita berikan user idban dengan quota sebesar 25 MB (soft 20 MB), maka kita akan edit seperti ini: Disk quotas for user idban (uid 500): Filesystem blocks soft hard inodes soft hard /dev/hdc Setelah selesai mengedit, simpanlah dengan menekan tombol Esc diikuti :wq Sekarang user idban telah dibatasi sebesar 25 MB untuk jumlah keseluruhan data. Jika ingin membatasi jumlah maksimum file, editlah bagian soft dan hard setelah inodes. Misalnya, di samping dibatasi 25 MB, user idban dibatasi hanya diperbolehkan memiliki 100 file (soft 90 file), maka akan seperti ini: Disk quotas for user idban (uid 500): Filesystem blocks soft hard inodes soft hard /dev/hdc Mengapa soft memiliki nilai lebih kecil dari nilai hard? Soft (keduanya blocks dan inodes) diberikan nilai lebih kecil dari nilai hard bertujuan untuk memperingatkan user bersangkutan bahwa mereka hampir mencapai batas maksimum yang kita berikan. Cara ini lebih manusiawi daripada user tidak diperingatkan terlebih dahulu. Dengan catatan, ini hanya akan diimplementasikan jika Anda memberikan masa tenggang. Untuk memberikan peringatan pada user yang melebihi batas quota, aktifkan warnquota, jika perlu masukkan dalam crontab (program penjadwalan). 6. Masa tenggang Masa tenggang diberikan dengan maksud agar kita lebih manusiawi dengan user yang ada pada Linux kita, dengan menggunakan edquota -t. Pada masa tenggang ini user diberikan keluasan untuk menggunakan batasan soft selama tenggang waktu yang kita berikan. Apabila melebihi tenggang waktu yang kita berikan, opsi soft akan otomatis berubah menjadi hard. Jika Anda tidak memberikan masa tenggang pada user, yang akan berlaku adalah nilai soft. Seperti dalam contoh di atas, user idban hanya akan mendapatkan quota sebesar 20 MB. Lain halnya dengan diberikannya masa tenggang, misalnya batas waktu tenggang adalah satu hari, maka user idban mendapat soft (quota) pada 20 MB dan hard (limit) pada 25 MB. Jika user idban telah menggunakan space sebesar 20 MB, user idban diberikan tenggang satu hari untuk menghapus file yang tidak dipergunakan. Jika melebihi batas satu hari, pada user idban akan diterapkan hard (limit) sebesar 20Mb. Tip dan trik Mungkin agak bertele-tele apa yang diutarakan di atas. Berikut ini adalah beberapa tip dan trik cara pengesetan atau menyeting quota dengan cepat. 1. Mengecek besar quota user Untuk menge-check quota seluruh user, gunakan perintha repquota -a. Anda juga dapat buat shell scripts sederhana seperti di bawah ini, apabila tidak memiliki program repquota. Silakan kembangkan script ini sesuka Anda. #!/bin/sh x= cat /etc/shadow grep \$ 1 cut -d: -f1 for user in $x do quota $user done Simpan dan beri nama sesuka Anda, misalnya cekquota, kemudian chmod 700 dan letakkan di /usr/bin atau direktori lain yang masuk PATH agar bisa dijalankan dari mana saja. # chmod 700 cekquota # mv cekquota /usr/bin 2. Pemberian quota tanpa edquota Jika tidak mau menggunakan edquota, Anda dapat menggunakan setquota. Format setquota adalah sebagai berikut: setquota -u <user> <soft> <hard> <soft> <hard> -a Contoh: setquota -u idban a Silakan lihat petunjuk dan perintah lengkapnya dengan menjalankan setquota help. 3. Warnquota Gunakanlah warnquota secara periodik dengan memasukkan dalam crontab, misalnya sehari sekali. Warnquota ini berguna untuk memberi tahu user yang bersangkutan mengenai quota mereka yang sudah mendekati maksimum limit. Idban Secandri (dban@staff.sdmlinux.com) 78 INFOLINUX JANUARI 2004

30 Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial TUTORIAL Eclipse, Open Source IDE Java dari IBM Eclipse, Open Source IDE Java dari IBM Eclipse adalah sebuah project Java open source yang diprakarsai oleh IBM, di mana sebelumnya merupakan hasil kerja OTI, sebuah perusahaan yang diakusisi oleh IBM karena keahliannya membuat aplikasi yang dikenal dengan VisualAge. Eclipse dapat dikatakan adalah VisualAge versi baru. Perbedaannya VisualAge bersifat komersial, sedangkan Eclipse bersifat open source dengan lisensinya CPL (Common Public License). Selain itu, Eclipse juga memposisikan sebagai IDE multilanguage, jadi selain bahasa Java, juga mendukung bahasa C++, Cobol, Fortran. Dapat dikatakan Eclipse ini menjadi sebuah single environment untuk pengembangan aplikasi yang berjalan di banyak platform. Revolusi Integrated Development Environment IDE singkatan dari Integrated Development Environment, sebuah aplikasi yang menyediakan ruang kerja untuk seorang programmer agar dapat membuat aplikasi dengan mudah dan cepat. Teknologi IDE terus berkembang, dan saat IDE yang terpisah-pisah, berkembang menjadi Microsoft IDE yang terintegrasi, malah di.net, Visual Basic, C++, C#, ASP serta Script Debugger, malah VBA yang ada di MS Office menggunakan IDE yang sama. IDE sekarang itu mirip sebuah ruang kerja yang terintegrasi. Berbeda dengan dulu, kalau VB yah VB, Pascal yah Pascal, sekarang semua jadi satu, jadi pemakai tidak perlu pindah-pindah. Jadi jangan kaget kalau pemakai AutoCAD, Arena, Visio dapat menjalankan IDE yang sama yang dipakai Visual Studio. Apa sih hebatnya IDE? Lihat saja Microsoft Visual Interdev dengan Microsoft IDE-nya, membuat pemograman web menjadi semudah membuat aplikasi Visual Basic, dengan kemampuannya yang drag and drop, teknologi yang tidak dimiliki oleh siapapun saat itu, kemudian IntelliSense, kemampuan untuk mengeluarkan combo box terhadap method atau property dari sebuah object. Semua dimiliki oleh Microsoft IDE, sebuah fasilitas yang ditiru oleh pesaingnya. Malah pada Visual Studio.Net, programmer C++, VB dan ASP tidak perlu menjalankan 3 IDE, hanya klik File New, semua bisa dikerjakan dalam satu aplikasi. Hebat bukan. Open source IDE Dengan popularitas Linux yang terus menanjak, membuat projek open source meledak, saat artikel ini ditulis ada sekitar project open source yang terdaftar Source Forge. Nah yang ikutan Open source ternyata bukan hanya Linux dan aplikasi pendukungnya, tetapi juga IDE. Sayangnya sampai artikel ini ditulis, IDE yang popularitasnya tinggi hanya segelintir, di antaranya Netbeans, Jedit, dan yang terakhir Eclipse. Dari semua itu hanya satu yang paling menarik dan malah popularitasnya meningkat terus yaitu Eclipse, karena IDE Eclipse didesain untuk bahasa Java, tetapi dibuat dengan bahasa C, berbeda dengan Netbeans dan JEdit adalah IDE untuk Java dan dibuat menggunakan teknologi Swing dari Java. Eclipse dan Netbeans merupakan mega project bernilai jutaan dollar US, berbeda dengan Jedit yang muncul dari project kecil yang murni open source. Memang ada unsur komersial di Eclipse dan Netbeans, maklum versi komersial dari Eclipse adalah Websphere Studio, sedangkan NetBeans adalah SunOne Studio (dulu Forte). Walaupun masih jauh dibandingkan dengan Microsoft IDE, Eclipse eclipse cvs repository perspective eclipse debug mode INFOLINUX JANUARI

31 TUTORIAL Eclipse, Open Source IDE Java dari IBM Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial eclipse hibernator perspective bisa dikatakan IDE yang tercepat dan yang memakan memory terkecil dibandingkan dengan saingannya dilihat dari kemampuan dan feature-feature-nya, terutama untuk para programmer Java non-gui, Eclipse masih yang terbaik. Mengenal Eclipse Eclipse, sebuah project open source yang dipelopori IBM, di mana saat ini Oracle juga menjadi salah satu komite dari Eclipse. Siapa tahu JDeveloper 5.0 menggunakan teknologi Eclipse. Untuk informasi lebih lanjut dapat melihat di situsnya di Eclipse merupakan IDE multiplatform yang dapat berjalan di Windows, Linux, Unix. Merupakan sebuah IDE berbasis Java yang paling cepat saat ini, karena satusatunya yang mengembangkan IDE-nya tidak menggunakan teknologi Swing yang terkenal lambat, tetapi C, memang ada saingannya yaitu JEditor, tetapi secara feature, jauh sekali. Kalau dibandingkan JEditor itu seperti Karimun, dan Eclipse itu adalah Lexus-nya. Untuk memulai Eclipse, pembaca dapat men-download-nya di org, di sana ada 2 versi dari Eclipse, tetapi download saja yang JDT untuk pengembangan Java. Extract-lah file download-nya kemudian jalankan Eclipse. Eclipse akan secara otomatis akan melakukan registrasi semua parameter default-nya. Proses kali pertama memang lambat, tetapi berikutnya cepat. Nah, untuk eclipse yang default ini, hanya mendukung Java source code saja, eclipse new class tidak ada dukungan terhadap EJB, Tomcat, JBoss, Struts, ataupun XML. Jadi memang flat banget, tidak ada apa-apanya, maklum ini sebenarnya teaser IBM, untuk versi lengkapnya yah harus beli, yaitu dengan produk yang namanya Websphere Studio. Hal yang sama terdapat pada Netbeans dengan SunOne Studionya. Yah namanya juga cari duit, di Open Source-kan kan sebenarnya untuk menarik minat. Sampai artikel ini dibuat Eclipse 3.0M1, pembaca jangan kaget deh, kalau ada fiturfitur yang bagus ditemukan di Eclipse adalah masih berversi 2.1. Walaupun secara fungsional masih tetap ada. Untuk para pemakai Linux ada dua versi Eclipse, yaitu versi GTK dan Motif, penulis sarankan menggunakan yang GTK karena versi ini berpenampilan lebih enak. Ada apa saja di Eclipse default? Eclipse default, artinya versi open sourcenya memang berbeda dibandingkan dengan Websphere Studio. Sebenarnya versi open source-nya ini memiliki kemampuan yang hebat di antaranya: Debugging dengan breakpoint-nya Fasilitas ini memungkinkan kita mengetahui variable apa yang aktif di memory, terus berapa nilainya, malah kita bisa trace script secara step-by-step. Perspective Fasilitas ini memungkinkan kita melihat project yang dibuat dari berbagai sisi, seperti Java Perspective. Hebatnya semua ini dapat di-customize sesuai dengan keinginan user-nya. Hebatnya, setiap view (kotak dialog) dapat dipindah-pindahkan dan dikelompokkan. Saya pribadi sering mengganti Java Perspective dengan Resource Perspective. Resource Perspective memungkinkan kita untuk melihat method dan property dari setiap code. Malah Package Explorer-nya memungkinkan kita melihat method dan property dari setiap JAR yang di-include di project. Integrated preferences Setiap plug-ins yang dimasukkan ke dalam Eclipse, bila setting plug-ins.xml-nya benar akan muncul di preferences. Saya menyertakan screen capture dari preferences Eclipse yang tidak standar, dapat dilihat ada beberapa node yang mungkin pembaca tidak dapatkan, yaitu XML Schema, Apache Tomcat, dan SQL Builder. Project properties Project properties dimiliki hampir semua IDE, tetapi ada yang membedakan antara Eclipse dengan yang lain terutama Netbeans, kompetitornya. Kita bisa mensetting source dan compile-nya berbeda. Biasanya penulis mendapatkan pendekatan ini kalau sedang membuat Ant script. Selain itu, kalau library atau Java component tidak ditemukan maka icon dari Jar-nya menjadi kabur. Hal ini diperlukan kalau Jar yang ada tidak disimpan di satu lokasi yang bersamaan. Java Plug-ins Launcher Hebatnya dari Eclipse ini, kalau pembaca menginstal Struts Console 3.x plug-ins, maka di saat ada file struts-config.xml, Eclipse secara otomatis akan memanggil Struts console, padahal Struts console itu dibuat menggunakan Swing. Selain itu kalau diinstall plug-ins Tomcat atau JBoss, toolbar dari Eclipse dapat ditambahkan button untuk start, stop, atau restart Tomcat server. Sayangnya, sampai saat ini penulis masih kesulitan melakukan Ant integration, walaupun script build.xml yang dibuat sudah dijamin pasti 100% benar. Error yang muncul dapat dilihat di Log Console. 80 INFOLINUX JANUARI 2004

32 Ulasan CD Klinik Ulasan Linux Ready Utama Bisnis Feature Tutorial TUTORIAL Eclipse, Open Source IDE Java dari IBM Mungkin saja nanti ada pembaca yang mau berkontribusi membuat artikel mengenai cara menggunakan Ant di Eclipse. Mungkin penulis menerangkan sebagian dari kemampuan dari Eclipse, tetapi sampai artikel ini ditulis dukungan Eclipse mulai melebar bukan hanya terhadap bahasa Java saja, tetapi PHP, Cobol. Malah sampai artikel ini dibuat team IBM sedang membuat versi Cobol-nya. Akhir Kata, Eclipse ini memang sebuah maha adikarya IDE yang bagus, yang diberikan cuma-cuma, walaupun masih banyak fasilitas lainnya yang tidak disertakan oleh IBM, tetapi didapat di versi komersialnya. Terus terang saja, Eclipse ini cepat dan berjalan sangat cepat di lingkungan dengan memory 128 MB, di mana hal ini tidak dapat ditemukan di Borland JBuilder, Oracle JDeveloper, ataupun Netbeans. Sayangnya, Eclipse ini saat ini masih memposisikan dirinya sebagai text editor semata yang memiliki kemampuan debugging. Jad programmer Swing akan kerepotan kalau menggunakan Eclipse, eclipse preferences malah penulis telah mencoba untuk meng-execute sebuah AWT sederhana, dan hasilnya tidak keluar. Walaupun IBM tengah mengembangkan SWT, sehingga programer Swing tidak perlu pindah IDE. Tetap saja, untuk saat ini Eclipse masih tidak bisa mendukung, tetapi berbeda untuk programer yang membuat EJB. Eclipse akan meningkatkan produktivitas, karena lebih cepat. Apalagi kalau eclipse run debug compiler-nya menggunakan Jikes dari IBM juga. Sayangnya, sampai hari ini penulis hanya bisa menginstal Java dan Eclipse pada environment non Debian, seperti Mandrake dan Red Hat. Hal ini dikarenakan Eclipse tidak kompatibel dan sering crash bila menggunakan non-sun Java SDK seperti BlackDown Java SDK. Frans Thamura IKLAN INFOLINUX JANUARI

Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs.

Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs. Algoritma dan Struktur Data Ramos Somya, S.Kom., M.Cs. Penggunaan record dalam jumlah yang banyak alokasi memory konvensional tidak bisa diandalkan. Misal kita akan bekerja dengan file yang menyimpan sangat

Lebih terperinci

Algoritma dan Struktur Data. Ramos Somya

Algoritma dan Struktur Data. Ramos Somya Algoritma dan Struktur Data Ramos Somya Penggunaan record dalam jumlah yang banyak alokasi memory konvensional tidak bisa diandalkan. Misal kita akan bekerja dengan file yang menyimpan sangat banyak record,

Lebih terperinci

MODUL 6 SINGLE & DOUBLE LINKED LIST

MODUL 6 SINGLE & DOUBLE LINKED LIST MODUL 6 SINGLE & DOUBLE LINKED LIST 1. Tujuan Instruksional Umum a. Mahasiswa dapat melakukan perancangan aplikasi menggunakan struktur Linked List (Senarai Berkait) b. Mahasiswa mampu melakukan analisis

Lebih terperinci

Modul Praktikum Algoritma dan Struktur Data BAB 6 LINKED LIST

Modul Praktikum Algoritma dan Struktur Data BAB 6 LINKED LIST BAB 6 LINKED LIST 1. Tujuan Instruksional Umum a. Mahasiswa dapat melakukan perancangan aplikasi menggunakan struktur Linked List (Senarai Berkait) b. Mahasiswa mampu melakukan analisis pada algoritma

Lebih terperinci

Apakah Anda sering kesulitan untuk

Apakah Anda sering kesulitan untuk Seringkali bagi kebanyakan orang permasalahan matematika merupakan suatu hal yang cukup memusingkan. Bahasa C dapat mempermudah kita dalam perhitungan matematika. Apakah Anda sering kesulitan untuk menyelesaikan

Lebih terperinci

PANDUAN PENGGUNAAN. Joomla! Versi 1.5. Oleh: Anon Kuncoro Widigdo

PANDUAN PENGGUNAAN. Joomla! Versi 1.5. Oleh: Anon Kuncoro Widigdo PANDUAN PENGGUNAAN Joomla! Versi 1.5 Oleh: Anon Kuncoro Widigdo anonkuncoro@yahoo.com Kendari 2009-2010 MODUL I Pendahuluan Joomla adalah sebuah aplikasi sistim manajemen konten atau Content Management

Lebih terperinci

soal tes + ujian asil + ujian BUKU PANDUAN SISTEM MANAJEMEN KONTEN PADA PLATFORM MOODLE Buku Panduan CMS pada Platform Moodle 1

soal tes + ujian asil + ujian BUKU PANDUAN SISTEM MANAJEMEN KONTEN PADA PLATFORM MOODLE Buku Panduan CMS pada Platform Moodle 1 soal tes + ujian asil + ujian BUKU PANDUAN SISTEM MANAJEMEN KONTEN PADA PLATFORM MOODLE Buku Panduan CMS pada Platform Moodle 1 Daftar Isi Daftar Isi...2 BAB I. PENDAHULUAN...3 1.1. Sekilas Tentang Moodle...3

Lebih terperinci

MODUL 8 Mengoperasikan Perangkat Lunak Basis Data

MODUL 8 Mengoperasikan Perangkat Lunak Basis Data MODUL 8 Mengoperasikan Perangkat Lunak Basis Data A. TUJUAN Setelah mengikuti kegiatan pembelajaran ini siswa diharapkan mampu: Membuat, membuka, menyimpan, dan menutup software basis data. Menjelaskan

Lebih terperinci

E-trik Ajax. Database MySQL. Dedi Alnas

E-trik Ajax. Database MySQL. Dedi Alnas E-trik Ajax Database MySQL Dedi Alnas Pengenalan MySQL Tutorial kali ini akan membahas cara pembuatan aplikasi web yang dapat dihubungkan dengan MySQL. Pada paket instalasi Xampp terdapat MySQL dan phpmyadmin.

Lebih terperinci

BAB III ANALISA DAN PERANCANGAN

BAB III ANALISA DAN PERANCANGAN BAB III ANALISA DAN PERANCANGAN 3.1. Perancangan Router OS Debian 6.0 QUAGGA PROSES ROUTING WEB INTERFACE MANAJEMAN BANDWIDTH HTB TOOL INPUT USER Gambar 3.1 Alur Kerja Interface Router dan Server Bandwidth

Lebih terperinci

Cara Menggunakan MySQL

Cara Menggunakan MySQL Cara Menggunakan MySQL Sebelum kita melangkah ke poin inti, yaitu mengenai Database Server, ada baiknya kita mengenali struktur dan manipulasi basic pada database MySQL. Seperti bagaimana itu membuat database,

Lebih terperinci

Bab 1 Instalasi Sistem Operasi DEPDIKnux

Bab 1 Instalasi Sistem Operasi DEPDIKnux 1 Bab 1 Instalasi Sistem Operasi DEPDIKnux 1.1 Persiapan Instalasi Sistem operasi DEPDIKnux adalah sistem operasi yang dibuat dari Debian Linux serta di kustomisasi khusus untuk ICT Center yang terhubung

Lebih terperinci

PENGGUNAAN APLIKASI E-LEARNING (MOODLE)

PENGGUNAAN APLIKASI E-LEARNING (MOODLE) PENGGUNAAN APLIKASI E-LEARNING (MOODLE) Perkembangan Teknologi Informasi (TI) sudah mempengaruhi berbagai aspek kehidupan masyarakat. Pada bidang Pendidikan, dampak yang muncul ialah kegiatan belajar dan

Lebih terperinci

BAB III LANDASAN TEORI. layanan (service) tertentu dalam sebuah jaringan komputer. Server. sebagai sistem operasi jaringan (network operating system).

BAB III LANDASAN TEORI. layanan (service) tertentu dalam sebuah jaringan komputer. Server. sebagai sistem operasi jaringan (network operating system). BAB III LANDASAN TEORI 3.1 Server Server adalah sebuah sistem komputer yang menyediakan jenis layanan (service) tertentu dalam sebuah jaringan komputer. Server didukung dengan prosesor yang bersifat scalable

Lebih terperinci

Tahap Instalasi PostgreSQL di Windows

Tahap Instalasi PostgreSQL di Windows Tahap Instalasi PostgreSQL di Windows 1. Unduh file installer PostgreSQL terbaru dari alamat http://www.enterprisedb.com/productsservices-training/pgdownload#windows 2. Setelah file installer berhasil

Lebih terperinci

Bab I Pengenalan dan Instalasi

Bab I Pengenalan dan Instalasi Bab I Pengenalan dan Instalasi I.1 Maksud dan Tujuan I.1.1 Maksud Membahas tentang pengertian basis data secara umum, pemahaman umum tentang PostgreSQL, serta dasar-dasar pengoperasian database di PostgreSQL.

Lebih terperinci

DATABASE SERVER WEB SERVER SUBDOMAIN

DATABASE SERVER WEB SERVER SUBDOMAIN ADMINISTRASI SERVER DATABASE SERVER WEB SERVER SUBDOMAIN Database Server Database berfungsi sebagai media penyimpanan data-data ataupun informasi penting. Pada web server yang kompleks, biasanya diperlukan

Lebih terperinci

Eksekusi file setup.exe yang ada dalam CD atau folder instalasi oracle.

Eksekusi file setup.exe yang ada dalam CD atau folder instalasi oracle. 1 2 3 Eksekusi file setup.exe yang ada dalam CD atau folder instalasi oracle. 4 Isilah konfigurasi instalasi yang akan dibuat. Oracle Home Location : biasanya terisi otomatis dgn drive yang paling banyak

Lebih terperinci

MODUL 7. Apakah Joomla itu? A. Pra-Instalasi Joomla. Tujuan : 1. Pengenalan Joomla 2. Installasi Joomla 3. Pengenalan Section dan Categories

MODUL 7. Apakah Joomla itu? A. Pra-Instalasi Joomla. Tujuan : 1. Pengenalan Joomla 2. Installasi Joomla 3. Pengenalan Section dan Categories MODUL 7 JOOMLA Tujuan : 1. Pengenalan Joomla 2. Installasi Joomla 3. Pengenalan Section dan Categories Apakah Joomla itu? Sejauh ini joomla adalah: Joomla! is a free open source framework and content publishing

Lebih terperinci

FTP SERVER MAIL SERVER WEBMAIL

FTP SERVER MAIL SERVER WEBMAIL ADMINISTRASI SERVER FTP SERVER MAIL SERVER WEBMAIL FTP Server File Transfer Protocol (FTP) adalah protocol yang digunakan untuk transfer file atau data melalui media jaringan. FTP termasuk dalam protocol

Lebih terperinci

WEB DINAMIS 1 MANAJEMEN DATABASE MYSQL. Agustina Purwatiningsih., S.Kom

WEB DINAMIS 1 MANAJEMEN DATABASE MYSQL. Agustina Purwatiningsih., S.Kom WEB DINAMIS 1 MANAJEMEN DATABASE MYSQL Agustina Purwatiningsih., S.Kom 1 Pendahuluan Seperti yang dijelaskan pada pertemuan pertama, web dinamis merupakan web yang di desain agar konten yang terdapat dalam

Lebih terperinci

BAB IV IMPLEMENTASI DAN EVALUASI. Berikut ini adalah daftar spesifikasi perangkat lunak yang

BAB IV IMPLEMENTASI DAN EVALUASI. Berikut ini adalah daftar spesifikasi perangkat lunak yang BAB IV IMPLEMENTASI DAN EVALUASI 4.1 Implementasi 4.1.1 Kebutuhan Sumber Daya 4.1.1.1 Kebutuhan Sumber Daya Perangkat Lunak Berikut ini adalah daftar spesifikasi perangkat lunak yang direkomendasikan agar

Lebih terperinci

LAPORAN INSTALASI SISTEM OPERASI DEBIAN 6. pada VIRTUAL BOX

LAPORAN INSTALASI SISTEM OPERASI DEBIAN 6. pada VIRTUAL BOX LAPORAN INSTALASI SISTEM OPERASI DEBIAN 6 pada VIRTUAL BOX Sekolah Menengah Kejuruan Negeri 1 Cimahi Teknik Komputer dan Jaringan Jl. Mahar Martanegara No. 48 Leuwigajah Tahun Ajaran 2014/2015 Mata Pelajaran

Lebih terperinci

Modul 2. Database Menggunakan Primary Key, Unique, Auto Increment, Alter-Add dan Alter-Drop. Disusun oleh. Sri Siska Wirdaniyati JURUSAN STATISTIKA

Modul 2. Database Menggunakan Primary Key, Unique, Auto Increment, Alter-Add dan Alter-Drop. Disusun oleh. Sri Siska Wirdaniyati JURUSAN STATISTIKA Modul 2 Database Menggunakan Primary Key, Unique, Auto Increment, Alter-Add dan Alter-Drop Disusun oleh Sri Siska Wirdaniyati JURUSAN STATISTIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS

Lebih terperinci

KONFIGURASI MAIL SERVER PADA DEBIAN 5

KONFIGURASI MAIL SERVER PADA DEBIAN 5 KONFIGURASI MAIL SERVER PADA DEBIAN 5 13.1 Tujuan Instruksi Khusus Setelah menyelesaikan praktek ini mahasiswa dapat : a. Mengetahui paket Mail Server pada system operasi linux debian 5 b. Menginstal paket

Lebih terperinci

Otodidak. MySQL untuk Pemula

Otodidak. MySQL untuk Pemula Otodidak MySQL untuk Pemula Otodidak MySQL untuk Pemula Jubilee Enterprise PENERBIT PT ELEX MEDIA KOMPUTINDO Otodidak MySQL untuk Pemula Jubilee Enterprise 2017, PT Elex Media Komputindo, Jakarta Hak cipta

Lebih terperinci

TUGAS 1 WEB DINAMIS LANJUT

TUGAS 1 WEB DINAMIS LANJUT TUGAS 1 WEB DINAMIS LANJUT Disusun oleh : NIM : 12131349 NAMA : SURYADI PROGRAM STUDI : TEKNIK INFORMATIKA JENJANG : SARJANA SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER EL RAHMA YOGYAKARTA 2016

Lebih terperinci

MySQL J A M K E T I G A

MySQL J A M K E T I G A J A M K E T I G A MySQL l Apa itu MySQL? l Membuat User Baru l Membuat Database l Tipe Data MySQL l Membuat Tabel l Structured Query Language l Latihan Jam Ketiga l Soal Jam Ketiga Jam Ketiga Apa itu MySQL?

Lebih terperinci

Kami telah melakukan instalasi pada /dev/sda dan akan menambahkan /dev/sdb sebagai bagian dari RAID 1.

Kami telah melakukan instalasi pada /dev/sda dan akan menambahkan /dev/sdb sebagai bagian dari RAID 1. Setelah Proses Instalasi dilakukan dan ingin melakukan setting RAID 1, Pada saat instalasi kami memiliki dua buah hardisk masing-masing memiliki ukuran 1 TB dan dikenali sebagai /dev/sda dan /dev/sdb.

Lebih terperinci

BAB 4 IMPLEMENTASI DAN EVALUASI. dengan perangkat keras dan perangkat lunak. Berikut adalah spesifikasi

BAB 4 IMPLEMENTASI DAN EVALUASI. dengan perangkat keras dan perangkat lunak. Berikut adalah spesifikasi 105 BAB 4 IMPLEMENTASI DAN EVALUASI 4.1. Implementasi Dalam implementasi, sistem solusi yang dikembangkan dibangun dengan perangkat keras dan perangkat lunak. Berikut adalah spesifikasi minimum sistem

Lebih terperinci

BAB III PERANCANGAN SISTEM

BAB III PERANCANGAN SISTEM BAB III PERANCANGAN SISTEM Pada bab ini dibahas perancangan pembangunan web server dan komunikasi antara server dan client dengan menggunakan komunikasi lokal wi-fi sebagai media komunikasi antara server

Lebih terperinci

Algoritma dan Struktur Data

Algoritma dan Struktur Data Modul Praktikum Algoritma dan Struktur Data Double Linked List Tenia Wahyuningrum, S.Kom., MT Sisilia Thya Safitri, ST., MT ST3 Telkom Purwokerto Jl. DI Panjaitan 128 Purwokerto * Untuk kalangan sendiri

Lebih terperinci

Linked List 6.3 & 7.3 NESTED LOOP

Linked List 6.3 & 7.3 NESTED LOOP Linked List 6.3 & 7.3 NESTED LOOP 1 Linked List ( List yang di-link satu dengan lainnya ) 2 apa itu List? 3 Contoh sebuah LIST int A[5]; 0 1 2 3 4 Array satu dimensi Disebut juga : Vector Kadang-kadang

Lebih terperinci

PEDOMAN TEKNIS SISTEM PENGELOLAAN DATABASE JALAN PROPINSI DAN KABUPATEN/KOTA

PEDOMAN TEKNIS SISTEM PENGELOLAAN DATABASE JALAN PROPINSI DAN KABUPATEN/KOTA 7 LAMPIRAN PERATURAN MENTERI PEKERJAAN UMUM REPUBLIK INDONESIA NOMOR 18/PRT/M/2011 TENTANG PEDOMAN TEKNIS SISTEM PENGELOLAAN DATABASE JALAN PROVINSI DAN KABUPATEN/KOTA PEDOMAN TEKNIS SISTEM PENGELOLAAN

Lebih terperinci

//membuat sebuah tipe data baru yang terdiri dari. //field data bertipe integer //field next merupakan pointer dari list

//membuat sebuah tipe data baru yang terdiri dari. //field data bertipe integer //field next merupakan pointer dari list SENARAI BERANTAI TUNGGAL TIDAK BERPUTAR (SINGLE LINKED LIST NON CIRCULAR) DEKLARASI LINKED LIST Sebelum membuat sebuah senarai (Link List) kita harus mendeklarasikan tipe data dan pointer yang akan kita

Lebih terperinci

Instalasi Joomla 1.7

Instalasi Joomla 1.7 Instalasi Joomla 1.7 Pada bab ini akan membahas mengenai langkah-langkah instalasi Joomla 1.7 di komputer. Sebelum mempelajari fitur-fitur yang ada di Joomla 1.7 Anda perlu menginstalnya terlebih dahulu

Lebih terperinci

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV IMPLEMENTASI DAN PENGUJIAN BAB IV IMPLEMENTASI DAN PENGUJIAN 4.1. Infrastruktur Sistem Penyewaan Dan Operasional Harian Setelah melakukan analisa dan pengembangan sistem, pada tahap selanjutnya akan lakukan proses implementasi sistem.

Lebih terperinci

MODUL I PENGENALAN MYSQL

MODUL I PENGENALAN MYSQL MODUL I PENGENALAN MYSQL A. TUJUAN Mengenal DBMS MySQL dan penggunaannya untuk pengelolaan basis data. Mampu memanfaatkan command-line (client) MySQL. Memahami operasi-operasi DDL dan DML di MySQL B. PETUNJUK

Lebih terperinci

LAPORAN PRAKTIKUM IX. Oleh:

LAPORAN PRAKTIKUM IX. Oleh: LAPORAN PRAKTIKUM IX LINKED LIST Disusun untuk Memenuhi Matakuliah Praktikum Algoritma Struktur Data Dibimbing oleh Ibu Annisa Puspa Kirana, S. Kom, M. Kom Oleh: Dwitha Fajri Ramadhani 160533611410 Ika

Lebih terperinci

A. Tujuan. B. Alat dan Bahan 1. Komputer multimedia. 2. Software Sistem Operasi Linux Ubuntu.

A. Tujuan. B. Alat dan Bahan 1. Komputer multimedia. 2. Software Sistem Operasi Linux Ubuntu. A. Tujuan 1. Dengan mengikuti perkuliahan ini mahasiswa diharapkan memahami fungsi dan peranan sistem operasi pada komputer. 2. Mahasiswa diharapkan mampu melakukan Partisi dan Format harddisk pada sistem

Lebih terperinci

INSTALASI PC SERVER. SAMBA dan SWAT. Ardi Maharta / Heri Widayat /

INSTALASI PC SERVER. SAMBA dan SWAT. Ardi Maharta / Heri Widayat / INSTALASI PC SERVER SAMBA dan SWAT Ardi Maharta / 11520244013 Heri Widayat / 11520244040 13 A. Kompetensi a. Mengetahui kegunaan samba B. Sub Kompetensi a. Mengetahui cara menginstal samba b. Keunggulan

Lebih terperinci

LANDASAN TEORI. Dunia informasi di Indonesia sedang dan harus. berubah. Saat ini, dunia pemasaran tidak dapat

LANDASAN TEORI. Dunia informasi di Indonesia sedang dan harus. berubah. Saat ini, dunia pemasaran tidak dapat BAB II LANDASAN TEORI 2.1 Karakteristik Uneven Solution Dunia informasi di Indonesia sedang dan harus berubah. Saat ini, dunia pemasaran tidak dapat mengandalkan satu bahasa seperti tahun lalu. Coba lihat

Lebih terperinci

MEMBUAT LAPORAN DI JAVA DENGAN MENGGUNAKAN IREPORT

MEMBUAT LAPORAN DI JAVA DENGAN MENGGUNAKAN IREPORT MEMBUAT LAPORAN DI JAVA DENGAN MENGGUNAKAN IREPORT RENI PRIHASTUTI LABORATORIUM KOMPUTER UNIVERSITAS BUDI LUHUR FEBRUARI 2007 MEMBUAT DESAIN LAPORAN Saat ini penulis masih menggunakan ireport ver 1.2.4.

Lebih terperinci

MODUL PRAKTIKUM PEMROGRAMAN BASIS DATA

MODUL PRAKTIKUM PEMROGRAMAN BASIS DATA MODUL PRAKTIKUM PEMROGRAMAN BASIS DATA MYSQL Disusun Oleh : Adri Priadana, S.Kom Fakultas Bisnis Dan Teknologi Informasi Universitas Teknologi Yogyakarta 2014 DAFTAR ISI DAFTAR ISI... 2 BAB I MENGENAL

Lebih terperinci

Pelatihan Penggunaan Aplikasi E-Learning Moodle 1

Pelatihan Penggunaan Aplikasi E-Learning Moodle 1 I. Pendahuluan Moodle adalah sebuah nama untuk sebuah program aplikasi yang dapat merubah sebuah media pembelajaran kedalam bentuk web. Aplikasi ini memungkinkan siswa untuk masuk kedalam ruang kelas digital

Lebih terperinci

Single Linked List (1)

Single Linked List (1) Praktikum 5 Single Linked List (1) A. TUJUAN PEMBELAJARAN Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu: 1. Memahami konsep membangun single linked list 2. Memahami konsep operasi

Lebih terperinci

KURSUS ONLINE JASA WEBMASTERS

KURSUS ONLINE JASA WEBMASTERS KURSUS ONLINE JASA WEBMASTERS SQL Pengenalan Database, SQL, MySQL dan XAMPP JASA WEBMASTERS Jl. Ringin Raya No 124A Condong Catur, Sleman, Yogyakarta Database Database secara singkat dapat diartikan sebagai

Lebih terperinci

AP2B-Dini Triasanti KONSEP DASAR PYTHON

AP2B-Dini Triasanti KONSEP DASAR PYTHON KONSEP DASAR PYTHON Pada awalnya, motivasi pembuatan bahasa pemrograman ini adalah untuk bahasa skrip tingkat tinggi pada sistem operasi terdistribusi Amoeba. Bahasa pemrograman ini menjadi umum digunakan

Lebih terperinci

Pemrograman PHP & MySQL

Pemrograman PHP & MySQL Pemrograman PHP & MySQL Memadukan antara Web Server dan Database Server Pemrograman PHP & MySQL Pada awalnya PHP merupakan singkatan dari Personal Home Page tools, sebuah tool (alat bantu) untuk memonitor

Lebih terperinci

TUTORIAL CONTENT MANAGEMENT SYSTEM WEB HOSTING JOOMLA

TUTORIAL CONTENT MANAGEMENT SYSTEM WEB HOSTING JOOMLA TUTORIAL CONTENT MANAGEMENT SYSTEM WEB HOSTING JOOMLA Pada tutorial ini, akan dijabarkan langkah per langkah untuk meng-hosting web Joomla Anda dari komputer lokal ke web hosting gratis di Internet. Tutorial

Lebih terperinci

MODUL III STRUCTURED QUERY ANGUAGE (SQL)

MODUL III STRUCTURED QUERY ANGUAGE (SQL) MODUL III STRUCTURED QUERY ANGUAGE (SQL) Tujuan : 1. Memahami tentang sistem database 2. Memahami instalasi MySQL di lingkungan Windows 3. Memahami dasar-dasar MySQL. Tugas Pendahuluan 1. Apa yang anda

Lebih terperinci

Pertemuan 11 Pengenalan DBMS dan MySQL

Pertemuan 11 Pengenalan DBMS dan MySQL Pertemuan 11 Pengenalan DBMS dan MySQL Tentang Database, DBMS, dan RDBMS Tentang MySQL Instalasi MySQL di Windows Menjalankan Service MySQL Koneksi ke Server MySQL Berbagai Tools Administrasi Server MySQL

Lebih terperinci

Cara instal dan konfigurasi FTP SERVER

Cara instal dan konfigurasi FTP SERVER Cara instal dan konfigurasi FTP SERVER Cara instal dan konfigurasi FTP SERVER di Linux UBUNTU SERVER POLITEKNIK NEGERI SRIWIJAYA E-Learning POLSRI Apa Itu FTP? FTP (File Transfer Protocol) adalah mekanisme

Lebih terperinci

DATABASE SQL SERVER. Database SQL Server Halaman 1

DATABASE SQL SERVER. Database SQL Server Halaman 1 1 DATABASE SQL SERVER Objektif: Mengetahui sejarah SQL Server 7.0 Mengengetahui perbedaan SQL Server dengan Microsoft Access Mengenal program bantu yang ada di SQL Server 7.0 Mengetahui cara membuat database

Lebih terperinci

LIST. Dewi Sartika, M.Kom

LIST. Dewi Sartika, M.Kom LIST PENDAHULUAN Linked List adalah sejumlah objek yang dihubungkan (linked) satu dengan yang lainnya membentuk suatu list. Objek adalah gabungan dari beberapa data (variable) yang dijadikan satu kelompok

Lebih terperinci

TUGAS 1 APLIKASI WEB DINAMIS LANJUT MENGENAL COMPOSER DAN GITHUB DISUSUN OLEH: AHMAD DAHLAN AL-ASY ARI( )

TUGAS 1 APLIKASI WEB DINAMIS LANJUT MENGENAL COMPOSER DAN GITHUB DISUSUN OLEH: AHMAD DAHLAN AL-ASY ARI( ) TUGAS 1 APLIKASI WEB DINAMIS LANJUT MENGENAL COMPOSER DAN GITHUB DISUSUN OLEH: AHMAD DAHLAN AL-ASY ARI(12141396) SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER EL RAHMA YOGYAKARTA 2016 COMPOSER

Lebih terperinci

BAB 1 PENDAHULUAN. perubahan kultur kita sehari-hari. Dalam era yang disebut information age ini, media

BAB 1 PENDAHULUAN. perubahan kultur kita sehari-hari. Dalam era yang disebut information age ini, media BAB 1 PENDAHULUAN 1.1 Latar Belakang Perkembangan teknologi telekomunikasi dan komputer menyebabkan terjadinya perubahan kultur kita sehari-hari. Dalam era yang disebut information age ini, media elektronik

Lebih terperinci

APPLICATION LAYER. Oleh : Reza Chandra

APPLICATION LAYER. Oleh : Reza Chandra APPLICATION LAYER Oleh : Reza Chandra Sebagian besar dari kita berpengalaman menggunakan Internet melalui World Wide Web, layanan e-mail, dan file-sharing. Aplikasi ini, dan banyak lainnya, menyediakan

Lebih terperinci

Internal Server Error / Website Busy Apa Itu Internal Server Error/Website Busy?

Internal Server Error / Website Busy Apa Itu Internal Server Error/Website Busy? Internal Server Error / Website Busy Apa Itu Internal Server Error/Website Busy? Internal Server Error / Website Busy adalah pesan yang ditampilkan oleh web server karena web server tidak mampu memenuhi

Lebih terperinci

BUKU PANDUAN REFERENSI MANUAL

BUKU PANDUAN REFERENSI MANUAL BUKU PANDUAN REFERENSI MANUAL Buku FAQ Pertanyaan Yang Sering Diajukan Kantaya Kantor Maya Ver. 1.0 Teknologi Informasi dan Elektronika BPP Teknologi Gedung BPPT II Lt. 21 Jl. M.H. Thamrin no.8 Jakarta

Lebih terperinci

TEKNOLOGI INFORMASI DAN KOMUNIKASI ADMINISTRASI SERVER DEB-003 STRUKTUR MODUL ADMINISTRASI LINUX DEBIAN SQUEEZE DASAR-DASAR JARINGAN DEB.

TEKNOLOGI INFORMASI DAN KOMUNIKASI ADMINISTRASI SERVER DEB-003 STRUKTUR MODUL ADMINISTRASI LINUX DEBIAN SQUEEZE DASAR-DASAR JARINGAN DEB. STRUKTUR MODUL ADMINISTRASI LINUX IAN SQUEEZE KODE MODUL -001-002 NAMA MODUL DASAR-DASAR JARINGAN SISTEM OPERASI Rev. 1-51 URAIAN UNIT Tujuan Belajar Setelah mempelajari modul unit ini, diharapkan peserta

Lebih terperinci

Spesifikasi Tugas Besar II IF3055 Sistem Operasi

Spesifikasi Tugas Besar II IF3055 Sistem Operasi Spesifikasi Tugas Besar II IF3055 Sistem Operasi Tujuan Tujuan dari pemberian tugas ini adalah Peserta mengetahui mekanisme filesystem. Peserta mengetahui mekanisme IPC. Deskripsi Pada tugas besar kali

Lebih terperinci

1 Praktikum #1 - SQL Langkah-Langkah Kerja Solusi Masalah Penutup... 6

1 Praktikum #1 - SQL Langkah-Langkah Kerja Solusi Masalah Penutup... 6 Daftar Isi 1 Praktikum #1 - SQL 2 1.1 Langkah-Langkah Kerja..................... 2 1.2 Solusi Masalah.......................... 4 1.3 Penutup.............................. 6 2 Praktikum #2 - Pengenalan

Lebih terperinci

Aplikasi Web Dinamis Lanjut

Aplikasi Web Dinamis Lanjut Aplikasi Web Dinamis Lanjut Tugas 1 NIM : 12141378 NAMA : REZA BAYU PERMANA PROGRAM STUDI : TEKNIK INFORMATIKA SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER EL-RAHMA YOGYAKARTA 2016 1. Buatlah

Lebih terperinci

BAB III PERANCANGAN SISTEM

BAB III PERANCANGAN SISTEM BAB III PERANCANGAN SISTEM 3.1 Perencanaan Sistem Sistem ini terdiri dari komputer server (dalam hal ini Raspberry berfungsi sebagai server) yang terhubung dengan webcam di mana setiap saat komputer server

Lebih terperinci

Langkah-langkah pembuatan website dengan Instalasi secara online

Langkah-langkah pembuatan website dengan Instalasi secara online Langkah-langkah pembuatan website dengan Instalasi secara online 1. Buatlah account anda dengan klik menu Sign Up 2. Kemudian anda akan dihadapkan pada sebuah halaman form untuk diisi dengan account anda.

Lebih terperinci

MODUL 1 PRAKTIKUM ADMINISTRASI JARINGAN. Pengenalan dan Instalasi Sistem Operasi Jaringan

MODUL 1 PRAKTIKUM ADMINISTRASI JARINGAN. Pengenalan dan Instalasi Sistem Operasi Jaringan MODUL 1 PRAKTIKUM ADMINISTRASI JARINGAN Pengenalan dan Instalasi Sistem Operasi Jaringan JURUSAN TEKNIK KOMPUTER JARINGAN PERSIAPAN AKADEMI KOMUNITAS SOLOK SELATAN PDD POLITEKNIK NEGERI PADANG 2014 Pengenalan

Lebih terperinci

CMS Joomla. Materi Kuliah Rekayasa Web Universitas Budi Luhur. A. Pengenalan Joomla

CMS Joomla. Materi Kuliah Rekayasa Web Universitas Budi Luhur. A. Pengenalan Joomla CMS Joomla A. Pengenalan Joomla Joomla merupakan sebuah CMS open source yang digunakan untuk membuat website dan aplikasi online lainnya (seperti forum, toko online) secara cepat dan mudah. Dengan menggunakan

Lebih terperinci

Mengembangkan Website Berbasis Wordpress

Mengembangkan Website Berbasis Wordpress Mengembangkan Website Berbasis Wordpress Bagian 1: Pengenalan dan Instalasi Wordpress Hanif Rasyidi Pendahuluan Perkembangan teknologi saat ini membuat internet menjadi salah satu sumber utama dalam pencarian

Lebih terperinci

BAB III PERANCANGAN. Bab ini berisi perancangan sistem audio streaming dengan server shoutcast dan icecast.

BAB III PERANCANGAN. Bab ini berisi perancangan sistem audio streaming dengan server shoutcast dan icecast. BAB III PERANCANGAN Bab ini berisi perancangan sistem audio streaming dengan server shoutcast dan icecast. 3.1. Server Shoutcast Arsitektur perancangan sistem audio streaming dengan server shoutcast digambarkan

Lebih terperinci

TUTORIAL JOOMLA Untuk Pemula

TUTORIAL JOOMLA Untuk Pemula TUTORIAL JOOMLA Untuk Pemula Nur Aini Rakhmawati http://ai23.wordpress.com CopyLeft Anda boleh mempublikasikan tutorial ini seluas-luasnya. Boleh dipakai training, mengajar dll. Semoga berguna. Saran dan

Lebih terperinci

PEDOMAN TEKNIS SISTEM PENGELOLAAN DATABASE JALAN PROPINSI DAN KABUPATEN/KOTA

PEDOMAN TEKNIS SISTEM PENGELOLAAN DATABASE JALAN PROPINSI DAN KABUPATEN/KOTA Lampiran Peraturan Menteri Pekerjaan Umum Nomor : 18/PRT/M/2011 Tanggal : 7 Desember 2011 PEDOMAN TEKNIS SISTEM PENGELOLAAN DATABASE JALAN PROPINSI DAN KABUPATEN/KOTA 1 PEDOMAN TEKNIS SISTEM PENGELOLAAN

Lebih terperinci

MODUL 1 INSTALASI PAKET JAVA DAN PROGRAM SEDERHANA

MODUL 1 INSTALASI PAKET JAVA DAN PROGRAM SEDERHANA MODUL 1 INSTALASI PAKET JAVA DAN PROGRAM SEDERHANA A. Target Pembelajaran 1. Siswa mampu menginstal JDK 2. Siswa mampu menjalankan eclipse 3. Siswa mampu membuat program sederhana B. Materi 1. Pengenalan

Lebih terperinci

List Linear (Linked List) Farah Zakiyah Rahmanti 2014

List Linear (Linked List) Farah Zakiyah Rahmanti 2014 List Linear (Linked List) Farah Zakiyah Rahmanti 2014 Overview Single Linked List Double Linked List Circular List SINGLE LINKED LIST Deskripsi Single linked list atau biasa disebut dengan linked list

Lebih terperinci

RAID Redundant Array of Independent Disks

RAID Redundant Array of Independent Disks RAID Redundant Array of Independent Disks (mierebustelur.blogspot.com,gubuknursanto.wordpress.com) Apa itu RAID? RAID yang merupakan kependekan dari Redudant Array of Independent disk adalah teknik untuk

Lebih terperinci

APLIKASI WEB DINAMIS LANJUT TUGAS 1

APLIKASI WEB DINAMIS LANJUT TUGAS 1 APLIKASI WEB DINAMIS LANJUT Nama : Apriyanto Wibowo NIM : 12141362 Soal : TUGAS 1 1. Buatlah tutorial / panduan singkat penggunaan composer pada pengembangan aplikasi Didalam tutorial memuat informasi

Lebih terperinci

PHP & MYSQL. Ingat, PC anda tidak memerlukan tambahan khusus atau apapun untuk melihat hasil eksekusi kode PHP anda. Mengapa?

PHP & MYSQL. Ingat, PC anda tidak memerlukan tambahan khusus atau apapun untuk melihat hasil eksekusi kode PHP anda. Mengapa? Universitas Muhammadiyah Sukabumi Artikel PHP dan Mysql Oleh : dede sulaeman PHP & MYSQL PHP & MYSQL PHP itu apa sih? Penjelasan sederhananya adalah bahwa PHP merupakan sebuah program tambahan yang ada

Lebih terperinci

Software Database Firebird

Software Database Firebird Software Database Firebird Winda Larasati winda.larasati@raharja.info Abstrak Software database yang paling umum yaitu microsoft acces, artikel ini akan membahas software database lainnya yaitu firebird.

Lebih terperinci

ADempiere. Persiapan sebelum instalasi ADempiere, adalah sebagai berikut :

ADempiere. Persiapan sebelum instalasi ADempiere, adalah sebagai berikut : ADempiere Adempiere merupakan salah satu software Enterprise Resource Planning (ERP) yang bersifat open source dan tidak berbayar. ADempiere ERP telah sukses diimplementasikan di berbagai perusahaan di

Lebih terperinci

Instalasi XAMPP di Windows

Instalasi XAMPP di Windows I. Instalasi XAMPP di Windows Sebuah PC atau Laptop dapat kita jadikan sebagai web server. Disini akan dibahas installasi web server dengan fasilitas Apache 2, PHP 5, dan MySQL 5 dengan menggunapak paket

Lebih terperinci

ALGORITMA DAN STRUKTUR DATA

ALGORITMA DAN STRUKTUR DATA Modul ke: 03 Fitrianingsih, Fakultas FASILKOM ALGORITMA DAN STRUKTUR DATA OLEH : Skom., MMSI Program Studi Sistem Informasi Bagian Isi POINTER POINTER DAN ADDRESS POINTER DAN FUNCTION LINKED LIST ALGORITMA

Lebih terperinci

Menampilkan Data/Tabel MySQL di Ms.Access

Menampilkan Data/Tabel MySQL di Ms.Access Menampilkan Data/Tabel MySQL di Ms.Access Setiaji ajitekom@yahoo.com http://www.kodokijo.net Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas

Lebih terperinci

Operating System. File System. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan. Dosen : Caca E. Supriana, S.Si

Operating System. File System. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan. Dosen : Caca E. Supriana, S.Si Operating System File System Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan Dosen : Caca E. Supriana, S.Si caca_emile@yahoo.co.id Konsep dan Atribut File System Konsep File Atribut File Operasi

Lebih terperinci

Pemrograman Web Lanjut 2017

Pemrograman Web Lanjut 2017 Praktikum 7 Basis data (database) dapat dikatakan sebagai sekumpulan data yang disimpan, saling berhubungan, dan diorganisasi secara bersama. Perangkat lunak yang dapat digunakan untuk mengolah basis data

Lebih terperinci

PENGENDALIAN JARAK JAUH KOMPUTER MENGGUNAKAN APLIKASI MOBILE

PENGENDALIAN JARAK JAUH KOMPUTER MENGGUNAKAN APLIKASI MOBILE PENGENDALIAN JARAK JAUH KOMPUTER MENGGUNAKAN APLIKASI MOBILE Kholid Fathoni 1, Isbat Uzzin Nadhori 1,Alfian Jauhar 1 Jurusan Teknik Informatika, PENS - ITS 1 Kampus ITS Sukolilo, Surabaya 60111, Indonesia

Lebih terperinci

BAB III TINJAUAN PUSTAKA

BAB III TINJAUAN PUSTAKA BAB III TINJAUAN PUSTAKA 3.1. Internet Menurut Prakoso (2007 : 119) Internet adalah sebuah kumpulan jaringan komputer lokal yang menggunakan perangkat lunak internet dan protokol TCP/IP atau HTTP. Oleh

Lebih terperinci

Menggunakan FileZilla FTP Client. Pemerintah Daerah Kabupaten Sleman repo.slemankab.go.id

Menggunakan FileZilla FTP Client. Pemerintah Daerah Kabupaten Sleman repo.slemankab.go.id Menggunakan FileZilla FTP Client Pemerintah Daerah Kabupaten Sleman FTP client adalah perangkat yang digunakan untuk melakukan transfer file dalam lingkungan internet menggunakan standar dari FTP (File

Lebih terperinci

BAB 4 IMPLEMENTASI DAN EVALUASI. telah di identifikasi pada bab 3, saatnya untuk melakukan implementasi dan Kebutuhan Sumberdaya Aplikasi

BAB 4 IMPLEMENTASI DAN EVALUASI. telah di identifikasi pada bab 3, saatnya untuk melakukan implementasi dan Kebutuhan Sumberdaya Aplikasi 352 BAB 4 IMPLEMENTASI DAN EVALUASI 4.1 Implementasi Program Magang Setelah melakukan analisis dan perancangan solusi terhadap permasalahan yang telah di identifikasi pada bab 3, saatnya untuk melakukan

Lebih terperinci

MySQL Databases. Dasar-dasar MySQL dan Implementasi MySQL kedalam pemrograman PHP. Jakarta, 16 April 2011 Oleh: M. Awaludin, S.Kom

MySQL Databases. Dasar-dasar MySQL dan Implementasi MySQL kedalam pemrograman PHP. Jakarta, 16 April 2011 Oleh: M. Awaludin, S.Kom MySQL Databases Dasar-dasar MySQL dan Implementasi MySQL kedalam pemrograman PHP Jakarta, 16 April 2011 Oleh: M. Awaludin, S.Kom DDL (Data Definition Language) Definisi DDL Adalah merupakan sub bahasa

Lebih terperinci

BAB IV IMPLEMENTASI DAN EVALUASI. Sistem yang dibangun pengembang adalah berbasis web. Untuk dapat

BAB IV IMPLEMENTASI DAN EVALUASI. Sistem yang dibangun pengembang adalah berbasis web. Untuk dapat BAB IV IMPLEMENTASI DAN EVALUASI 4.1 Kebutuhan Implementasi Sistem yang dibangun pengembang adalah berbasis web. Untuk dapat menjalankan sistem tersebut dengan baik dibutuhkan beberapa persyaratan mengenai

Lebih terperinci

Membuat Aplikasi Tampil, Entri, Edit, Delete Mahasiswa

Membuat Aplikasi Tampil, Entri, Edit, Delete Mahasiswa Tutorial Macromedia Dreamweaver PHP MySQL Membuat Aplikasi Tampil, Entri, Edit, Delete Mahasiswa Oleh Achmad Solichin, http://achmatim.net, achmatim@gmail.com Dalam Tutorial Ini Diasumsikan Bahwa: 1. Di

Lebih terperinci

BAB III LANDASAN TEORI

BAB III LANDASAN TEORI BAB III LANDASAN TEORI 3.1. Internet Menurut Prakoso (2007), Internet adalah sebuah kumpulan jaringan komputer lokal yang menggunakan perangkat lunak internet dan protokol TCP/IP atau HTTP. Oleh karena

Lebih terperinci

TUJUAN. Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java

TUJUAN. Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java TUJUAN Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java 2 TODAY S MENU Pengenalan library JDBC Diagram pengaksesan database melalui JDBC Step-by-step

Lebih terperinci

MODUL 3 DASAR-DASAR PHP

MODUL 3 DASAR-DASAR PHP MODUL 3 DASAR-DASAR PHP Para pengguna internet dewasa ini cenderung lebih menyukai situs-situs yang mempunyai tampilan menarik dan menghibur. Yang pasti, mereka sudah bosan dengan tampilan web yang begitu-begitu

Lebih terperinci

BAB II. KAJIAN PUSTAKA

BAB II. KAJIAN PUSTAKA BAB II. KAJIAN PUSTAKA A. MYSQL MySQL merupakan sistem basis dataopen source paling populer. MySQL adalah sebuah implementasi dari sistem manajemen basis data relasional (Relational Database Management

Lebih terperinci

MODUL PRAKTIKUM BASIS DATA TEKNIK INFORMATIKA UIN SUNAN KALIJAGA YOGYAKARTA 2011 PENGENALAN DATABASE MYSQL

MODUL PRAKTIKUM BASIS DATA TEKNIK INFORMATIKA UIN SUNAN KALIJAGA YOGYAKARTA 2011 PENGENALAN DATABASE MYSQL MODUL PRAKTIKUM BASIS DATA TEKNIK INFORMATIKA 2011 PENGENALAN DATABASE MYSQL Praktikum ke-1 A. Pengenalan MySQL MySQL merupakan software yang tergolong sebagai DBMS (Database Management System) yang bersifat

Lebih terperinci

BAB 4 IMPLEMENTASI DAN EVALUASI Spesifikasi Perangkat Keras untuk Server: : Intel Core 2. 1 Ghz. : 1024 MB 133 Mhz

BAB 4 IMPLEMENTASI DAN EVALUASI Spesifikasi Perangkat Keras untuk Server: : Intel Core 2. 1 Ghz. : 1024 MB 133 Mhz BAB 4 IMPLEMENTASI DAN EVALUASI 4.1 Spesifikasi Implementasi 4.1.1 Spesifikasi Perangkat Keras untuk Server: Processor Memory Harddisk Space : Intel Core 2. 1 Ghz : 1024 MB 133 Mhz : 80 GB SCSI 4.1.2 Spesifikasi

Lebih terperinci

DOUBLY LINKED LIST PROGRAM : DOUBLY LINKED LIST (TAMBAH SIMPUL DI BELAKANG)

DOUBLY LINKED LIST PROGRAM : DOUBLY LINKED LIST (TAMBAH SIMPUL DI BELAKANG) DOUBLY LINKED LIST PROGRAM : DOUBLY LINKED LIST (TAMBAH SIMPUL DI BELAKANG) # include # include # include struct tnode { int data; struct tnode *prev, *next; ; int main()

Lebih terperinci

BAB 4 PENGUJIAN DAN HASIL SIMULASI MANAJEMEN KONFIGURASI DI BPPT. dengan perancangan itop versi dan VMware

BAB 4 PENGUJIAN DAN HASIL SIMULASI MANAJEMEN KONFIGURASI DI BPPT. dengan perancangan itop versi dan VMware 39 BAB 4 PENGUJIAN DAN HASIL SIMULASI MANAJEMEN KONFIGURASI DI BPPT 4.1. Persiapan Perancangan Sistem 4.1.1. Hardware yang dibutuhkan Laptop Yang digunakan 1 buah laptop. Simulasi percobaan Manajemen Konfigurasi

Lebih terperinci