68

Click here to load reader

mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

  • Upload
    lykhue

  • View
    290

  • Download
    28

Embed Size (px)

Citation preview

Page 1: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

INSIDE DVD

Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser

Google Earth 5.2 Melihat permukaan seluruh dunia secara melalui satelit

Hardware Monitor 1.4.3 Memonitor kondisi hardware secara mudah dengan tampilan menarik

HomeBank 4.3 Atur keuangan pribadi dan lihat laporan bulanan keuangan Anda

EDISI 08/2010 | HARGA Rp45.000 [Luar Sumatra-Jawa-Bali: Rp47.000]

N E T W O R K I N G , S Y S T E M A D M I N I S T R A T I O N , A N D M O R E

WWW.INFOLINUX.WEB.ID

Langkah Konkret Membuat GameBerbasis game engine open source [�46]

DENGAN DVD 8 GB

CREATE YOUR OWN WIKI!

File Server dengan Distro Enterprise [�32]

Buat dokumentasi berbasis wiki yang bersifat dinamis dan interaktif dengan menggunakan MediaWiki [�24]

Gunakan Qimo untuk memberi pelatihan komputer ke anak-anak sejak dini [�62]

WEB WWEB WIKI ONLINEIKI ONLINE

FEDORA 13+EXTRAS

ON THE DVD

Konversi Spreadsheet

Cara ekstrak data spreadsheet dan dump ke MySQL [�52]

Distro untuk Anak-anak

Cover LINUX_08.indd 2Cover LINUX_08.indd 2 6/30/2010 7:08:22 PM6/30/2010 7:08:22 PM

Page 2: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

indoglobal (IL0050202).indd 1indoglobal (IL0050202).indd 1 6/30/2010 1:11:48 PM6/30/2010 1:11:48 PM

Page 3: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

KONTAK

INFOLINUX � 08/2010 3www.infolinux.web.id

EDITORIAL

REDAKSIONAL E-mail: [email protected], Telepon: (021) 315-3731 ext. 127-131CD BERMASALAH E-mail: [email protected], Telepon: (021) 315-3731 ext. 127BERKONTRIBUSI NASKAH [email protected] atau [email protected] ADVERTISING E-mail: [email protected], Telepon: (021) 315-3731 ext. 105-107MAILING-LIST PEMBACA [email protected], Pendaftaran: [email protected] ATAU PEMESANAN EDISI-EDISI SEBELUMNYAE-mail: [email protected], Telepon: (021) 4682-6816, 7079-6499, Faksimili: (021) 4682-8919

PEMIMP IN UMUMMario Alisjahbana

PEMIMP IN REDAKS IRusmanto Maryanto

REDAK TUR SENIORAnton R. Pardede, Effendy Kho

S IDANG REDAKS ISupriyanto (Koord.), Aditya Wardhana, Alexander P.H. Jularso, Denie Kristiadi,

Fajar Anggiawan, Rully Novrianto, Sylvia Agustina Inamora, Suherman,

Tri Waluyo, Wawa Sundawa, Zaky Abdurrachman

KONTR IBUTORBudi Rahardjo, I Made Wiryana, Michael S. Sunggiardi

Noprianto, Ria Canseria

PR A PRODUKS IArie Ishami

TATA L E TAK & DESA IN GR AF ISDhany Sudharmanto, Lely Yulaena, Mardiana

SEKRE TAR I AT REDAKS IEvawani U. Putri

IK L ANImam Ariyanto,

Indran B. Sapto, Febriyanti

S IRKUL AS I & D IS TR IBUS IPurwaluyo (Manajer)

KEUANGANDeetje Monoarfa (Manajer), Albert Sulistyo,

Ngafi v, Tety Winarni, Untung

PERSONAL I A & UMUMEkawati (Koord.), Suhaedin, Supandi

PENERBI TPT InfoLINUX Media Utama

AL AMATGedung Warta Lt. 4

Jl. Kramat IV No. 11, Jakarta Pusat-10430Telp: (021) 315-3731, Fax: (021) 315-3732

PENCE TAKPT Dian Rakyat, Jakarta

Semua tip yang ada di dalam majalah ini gunakan atas risiko Anda sendiri. Kami tidak bertanggung jawab atas segala kehilangan data atau kerusakan pada komputer,

alat-alat, atau software yang Anda miliki ketika menggunakan tip atau saran tersebut.

Linux merupakan trademark terdaftar dari Linus Torvalds.Linux di sini adalah pemendekan dari GNU/Linux.

Semua trademark lainnya merupakan hak masing-masing pemiliknya.

InfoLINUX diterbitkan bulanan oleh Pinpoint Publications. Pinpoint Publications juga ikut menerbitkan majalah komputer bulanan PC Media, tabloid

dwi-mingguan PC Mild, Buku Mini PC Media, dan Buku Mini InfoLINUX. Dilarang mereproduksi seluruh atau sebagian materi di media ini dalam bentuk dan dengan tujuan apapun. Pinpoint Publications tidak terafi liasi dengan perusahaan atau produk yang diuji coba di InfoLINUX. Seluruh staf InfoLINUX tidak memiliki investasi pada perusahaan atau produk yang diuji coba. Hasil uji coba produk yang dimuat di InfoLINUX tidak terkait dengan iklan atau hubungan bisnis perusahaan/produk tersebut dengan InfoLINUX. Kecuali disebutkan, uji coba dilakukan InfoLINUX pada produk dan layanan yang tersedia pada saat ini. Kami, di Pinpoint Publications, menjunjung tinggi nilai integritas. Untuk itu, dalam menjalankan tugasnya seluruh staf kami tidak dibenarkan menerima atau meminta imbalan dalam bentuk apapun dari relasi/narasumber.

Hari kemerdekaan sebuah negara selalu diper-ingati tiap tahun, termasuk di Indonesia pada 17 Agustus 2010 ini. Di era teknologi informasi, muncul pertanyaan: pentingkah kemerdekaan di bidang software atau program komputer? Sudahkah kita merasa merdeka ketika meng-gunakan komputer dan gadget lainnya?

Dalam istilah FOSS (Free/Open Source Software), merdeka adalah kebebasan meng-gunakan program yang telah kita dapatkan secara berbayar maupun gratis. Pengguna juga memperoleh kebebasan untuk mempelajari cara kerjanya, lalu memodifi kasinya, dan menyerbarluaskannya. Linux merupakan contoh produk berbasis FOSS yang dapat digunakan secara merdeka.

Kebalikan dari merdeka adalah terikat. Terikat tidak berarti harus membayar lisensi yang mahal. Terikat dapat berarti menggu-nakan program secara tidak legal, sehingga dapat dihukum di dunia maupun di akhirat. Terikat juga dapat berbentuk ketergantungan kepada pembuatnya atau vendor tertentu saja sehingga jika ada masalah di kemudian hari, tidak ada pilihan lain kecuali meminta bantuan kepada vendor. Itu pun kalau vendornya masih ada.

Kemerdekaan tidak selalu diartikan gratis atau tanpa biaya, kecuali tanpa biaya lisensi, karena biaya dapat muncul dari proses mendapatkan, menggunakan, mempelajari, mengembangkan atau memodifi kasi, dan menyebarluaskan program. Dalam keadaan ter-tentu, pilihan untuk merdeka dapat memakan biaya lebih besar dibandingkan pilihan untuk terikat. Misalnya, Anda menge luarkan biaya pelatihan menggunakan Linux yang nilainya bisa lebih besar dibandingkan menggunakan program terikat.

Kemerdekaan bukan berarti bebas tanpa batas, sehingga melanggar kemerdekaan orang lain. Memilih Linux, apapun nama distronya, tetap memiliki keterbatasan, misalnya keharusan mengi-kuti ketentuan lisensinya. Salah satu contohnya, Fedora 13 meru-pakan produk yang sepenuhnya FOSS sehingga belum mendukung MP3. Sebagai solusinya, Anda dapat menambahkan program dari kumpulan paket Extras atau repository untuk mengatasi problem multimedia itu. Merdeka biasanya membutuhkan pengorbanan.�

KEMERDEKAAN DENGAN LINUX

Rusmanto Maryanto [[email protected]]

3_Editorial_08_EDITARIE.indd 33_Editorial_08_EDITARIE.indd 3 6/30/2010 3:25:31 PM6/30/2010 3:25:31 PM

Page 4: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

INDEKS

4 08/2010 INFOLINUX www.infolinux.web.id

[3] Editorial

[4] Indeks

Aktual[5] Dua Kunci Sukses Grameen Bank[5] Google Android 2.2[5] Membase 1.6.0 Beta 1[6] 91 Persen SuperComputer

Top-500 Gunakan Linux[6] Distro Hemat Energi[6] Zend Cluster Manager

Opini[8] I Made Wiryana: Kunci Mengunci

Ekosistem[10] Budi Rahardjo: (Bertambahnya)

Sampah Digital[12] Michael S. Sunggiardi: Demam

Android

5 30 33

37 49 62

Edisi 08/2010

24

[14] Surat Anda

Distro[17] Fedora 13[17] Qimo 4 Kids 2.0

Game[18] Lugaru HD 0.0.0.0 Rev269[18] Widelands 1.15-1

Buku[19] Blender Studio Projects: Digital

Movie-Making [19] Official Ubuntu Server Book, The

(2nd Edition)[19] The Definitive Guide to Samba 4

(v. 4) [Paperback]

Software Pilihan[20] Google Earth 5.2

[21] Home Bank 4.3[21] FretsOnFireX 3.121[21] Folderview Screenlet[21] VLC 1.1.0[22] Perroquet 1.1.0[22] Mission X 1.0[22] GIMP 2.6.9 [22] Virtual MIDI Piano Keyboard

0.3.2

Utama[24] Dokumentasi Online Berbasis Web

Wiki

Komunitas[30] UMet Adakan Kopi Darat[30] IGOS Center Depok Adakan

Seminar

Praktik Instan[32] File Server Berbasis NexentaStor

Net Admin[36] Implementasi Otentikasi Squid

pada Mode Transparent Proxy (Bagian 2)

[38] Daftar Warnet Berbasis Linux di Indonesia

Tutorial[40] Akses Database MySQL lewat

HTTP[46] Pembuatan Game dengan Game

Engine Open Source[52] Ekstrak Data Spreadsheet dan

Simpan ke Database MySQL

Workshop[58] Tampilkan Fortune di

OpenOffice.org Writer[60] Serialisasi/Deserialisasi Objek

dengan Pickle[60] Memory File dengan Modul

StringIO[61] Parsing URL dengan Modul

urlparse[61] Teknik Membaca Output stdin[62] Qimo, Distro Linux untuk Anak-

anak

[64] Kuis InfoLINUX

[66] Edisi Mendatang

Page 5: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

5www.infolinux.web.id

AKTUAL

INFOLINUX � 08/2010

Tim pengembang Google Android telah meng-umumkan keterse-

diaan rilis dari source code Google Android 2.2 yang memiliki kode nama “Froyo”. Froyo merupa-kan rilis ketu-juh dari ri-lis Google Android 1.0, dan meru-pakan versi update terkini untuk sistem operasi Google mobile. Dibandingkan dengan Google Android 2.1, rilis terbaru ini telah menyertakan sejumlah pe-rubahan, peningkatan, dan penyertaan fi tur terbaru.

Pada Google Android 2.2 telah disertakan se-jumlah API dan layanan terbaru, seperti fungsi API baru untuk melaku-

kan proses back up dan restore data, dan sebuah compiler JIT Dalvik baru yang dapat meningkatkan kinerja kode CPU secara keseluruhan hingga men-capai dua hingga lima kali

diban dingkan dengan An-droid 2.1.

A n d r o i d 2.2 ini juga menyertakan dukungan un-tuk kalangan enterprise, se-

perti sinkronisasi kalendar dan pencarian otomatis account Exchange, serta fi tur penghapusan daftar alamat yang dapat dilaku-kan secara remote. Infor-masi lebih lanjut seputar Android 2.2 dapat ditemu-kan pada url http://devel-oper.android.com/sdk/an-droid-2.2.html.�

NorthScale, perusahaan web infrastruktur yang belum lama beropera-

si, bersama dengan Zynga, perusahaan game sosial, dan NHN, perusahaan pembuat game dan search engine dari Korea Selatan, telah merilis Membase, da-tabase open source baru untuk NoSQL. Membase dirancang untuk aplikasi-aplikasi web dan dibuat berdasarkan memcache, yakni sistem cache yang tersimpan dalam memory.

Membase menambah-kan kemampuan berbasis disk-memcached, bersama dengan manajemen penyim-panan hierarki, replikasi data, dan dukungan pe-nyimpanan yang aman. NorthScale, yang didiri-kan oleh para pengembang proyek memcached, telah mengumumkan kalau versi

beta dari versi enterprise komersial dari versi Mem-base Server juga telah tersedia, yang tergabung dengan layanan komersial server Memcached yang telah ada.

NorthScale menjelaskan kalau mereka ingin men-ciptakan solusi manajemen data elastis dengan latency rendah, cepat dan seder-hana, mudah dikelola, memiliki throughput, dan rekonfi gurasi cluster yang dinamis. Proyek ini juga bersifat open source, dan berlokasi di situs mem-base.org. Pada situs ini, pengembang dapat mene-mukan informasi dimana memperoleh versi source dan binari untuk kode Membase 1.6.0 Beta 1.�

Membase 1.6.0 Beta1Google Android 2.2

Kisah sukses penggunaan aplikasi open source di dunia bisnis terus berlanjut. Lanjutan kisah suk-

ses kali ini datang dari salah satu lembaga keuangan mikro yang ter-dapat di Bangladesh, yakni Grameen Bank. Selidik punya selidik, ternyata kesuk sesan tersebut mampu diraih lembaga keuangan ini lantaran dua faktor utama, yakni wanita dan open source.

Seperti dikutip oleh detikINET usai workshop “Microfi nance Busi-ness & Information Technology” yang digelar Sharing Vision di Royal Plaza, Singapura, Muhammad Shah-

jahan, General Manager dan Chief Financial Offi cer Grameen Bank, me-nuturkan kalau hampir 97% dari na-sabah Grameen Bank yang totalnya

berjumlah 25 juta nasabah adalah kaum hawa. Menurut Shahjahan, kaum wanita itu berorientasi pada keluarga dan nilai-nilai kebaikan. Kaum wanita biasanya lebih mem-pertimbangkan keluarga dan anak-anaknya sebelum bertindak.

Shahjahan juga menambahkan kalau wanita bertindak lebih ber-tanggung jawab dan lebih jujur karena sifatnya yang sangat mem-perhatikan keluarga. Berdasarkan pengalaman Grameen Bank, nasabah wanita mere ka juga sangat taat me-matuhi cicilan kredit. Oleh kare-nanya, dari total pinjaman tingkat pengembaliannya mencapai 97,11%. Rasio kredit macet kurang dari 3%.

Lebih lanjut, Shahjahan me-nambahkan kalau rahasia kesuk-

sesan Grameen Bank adalah pene-rapan teknologi informasi berbasis open source. Bangladesh bukan ne-gara kaya. Setengah penduduknya adalah rakyat miskin. Karenanya untuk infrastruktur TI, Grameen Bank menggunakan infrastruktur semurah-murahnya. Penggunaan ap-likasi open source merupakan pilihan terbaik untuk Grameen Bank. Salah satu aplikasi berbasis open source yang menjadi andalan Grameen Bank adalah MIFOS (Microfi nance Opensource).�

Dua Kunci Sukses Grameen Bank

5_Aktual_08_EDITARIE.indd 55_Aktual_08_EDITARIE.indd 5 6/30/2010 9:24:02 AM6/30/2010 9:24:02 AM

Page 6: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX6

AKTUAL

Pengembang wattOS telah mengumumkan rilis terbaru distro mere-

ka, yakni wattOS R2. Dari penjelasan yang terdapat pada situsnya, wattOS berfokus pada penggunaan daya listrik yang rendah, dan dapat dioperasikan pada spesifi kasi hardware yang rendah. Un-tuk memenuhi persyaratan ini, wattOS meng-gunakan desktop yang berbasiskan pada Openbox dan LXDE.

Rilis terbaru dari wattOS R2 berbasis-kan pada Ubuntu 10.04 LTS “Lucid Lynx” dan telah menyertakan fi tur manajemen daya listrik, yang bertujuan untuk membantu para pengguna untuk dapat lebih meng-

hemat penggunaan daya listrik dalam kegiatan berkomputerisasi sehari-hari. Menurut penjelasan yang diberikan, update terbaru dari wattOS juga memiliki waktu boot dan proses instalasi yang lebih cepat, kecepatan aplikasi secara keseluruhan juga

lebih mening kat. Sejumlah pe-

rubahan lain yang terdapat pada wattOS R2, di antaranya penggantian ap-likasi pemutar musik dari Exaile

menjadi Rhythmbox, dan penambahan aplikasi F-Spot. Jika ingin menik-mati desktop wattOS R2, Anda dapat menemukan fi le iso distro wattOS R2 pada ekstra DVD InfoLI-NUX edisi ini.�

Zend Technologies, kon-tributor utama untuk pengembangan PHP,

telah mengumumkan keter-sediaan rilis Zend Server Cluster Manager. Paket aplikasi ini dapat mem-perluas fungsi Zend Server dalam pengembangan ber-basis bahasa PHP yang memiliki skala besar.

Menurut keterangan dari pihak Zend, Zend Server Cluster Manager mem-permudah para penguna dalam kemudah-an melakukan monitoring dan memanajemen bebera-pa aplikasi Zend Server, untuk memastikan keter-sediaan yang tinggi dari aplikasi, dan meningkat-kan skalabilitas aplikasi.

Zend Server Cluster Manager juga dileng-

kapi dengan fi tur untuk sesi cluster, monitor dan manajemen konfi gurasi yang terpusat, dan ad-ministrasi konsol berbasis konfi gurasi web.

Eldad Maniv, Zend VP of Product and Market-ing, menjelaskan kalau Zend Server Cluster Mana-ger merespons kebutuhan yang dibutuhkan oleh

banyak penggu-na, yang ingin m e n j a l a n k a n pengembangan aplikasi PHP

skala besar untuk peng-guna rumahan atau proyek berbasis PHP lainnya, seperti Drupal, Magento, Joomla!, dan SugarCRM. Zend Server Cluster Mana-ger, sudah dapat di-down-load dari url: http://www.zend.com/en/products/server-cluster-manager/.�

Zend Cluster Manager

Keandalan Linux sudah teruji di berbagai macam jenis hardware. Khusus untuk SuperComputer,

pada awal Juni 2010, Top500 kemba-li memperbarui daftar rangking dari 500 SuperComputer tercepat dunia. Dari daftar Top500 SuperComputer, tercatat sebanyak 455 atau 91 persen SuperComputer yang beroperasi menggunakan sistem operasi meng-gunakan kernel Linux.

Jauh di belakang Linux, sebagai nomor dua terhitung sistem operasi UNIX dari semua jenis yang mengan-tongi porsi 4.4 persen, sisanya adalah gabungan dari aneka sistem operasi lainnya yang digunakan oleh 3.4 persen SuperComputer terdaftar di Top500. Sistem operasi besutan Mic-

rosoft (Windows) masih sempat di-gandrungi 5 SuperComputer dengan kuota 1 persen dan mampu bercokol di posisi nomor 4.

Seperti ajang Formula 1, para in-sinyur ahli komputer saling berkom-petisi dalam menciptakan komputer tercepat dunia. Jawara komputer tercepat dunia kali ini masih tetap disandang oleh SuperComputer ber-basis Linux: Cray Jaguar, yang ter-pasang di Oak Ridge National Labo-ratory dengan kinerja maksimal sebesar 1759 TFlops. Posisi nomor dua adalah pendatang baru Cina dengan sistem Nebulae kinerja Com-puting Power sebesar 1271 TFlops.

Andaikan yang diukur adalah Peak Power maka posisi menjadi

91 Persen SuperComputer Top-500 Gunakan Linux

terbalik, dimana Nebulae dari Cina dengan 2984,3 TFlops memecahkan rekor dunia sebagai nomor satu, se-dangkan Jaguar dengan 2331 TFlops tergeser ke posisi nomor dua. Po-sisi ketiga diduduki oleh Roadrun-ner dari DOE/NNSA/LANL di Los Alamos, yang sebelumnya terdaftar sebagai nomor dua dengan kinerja maksimal sebesar 1042 TFlops dan peak sebesar 1375 TFlops.�

Distro Hemat Energi

5_Aktual_08_EDITARIE.indd 65_Aktual_08_EDITARIE.indd 6 6/30/2010 9:24:15 AM6/30/2010 9:24:15 AM

Page 7: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

IKLANPASS FM

(materi FILM)

DTP (IL0110211).indd 1DTP (IL0110211).indd 1 5/5/2010 11:33:56 AM5/5/2010 11:33:56 AM

Page 8: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

OPINI

8 08/2010 INFOLINUX www.infolinux.web.id

Saat ini, dalam bisnis perangkat lunak, seringkali alasan menggunakan perangkat lunak tertentu, bukan saja fitur, harga,

atau dukungan/jaminan vendor dari perangkat lunak tersebut, tetapi lebih karena kondisi ekosistem dari sistem perangkat lunak/keras tersebut dari perangkat pengembang perangkat lunak, vendor penyedia layanan, tetapi juga komunitas yang

melingkupi atau mengikat ekosistem tersebut.

para developer untuk bergabung ke dalam ekosistem yang dibuatnya. Akan tetapi, seringkali juga ke-diktatoran vendor dalam menentukan siapa yang boleh bergabung dalam ekosistem dan menentukan arah ekosistem tersebut menjadi faktor pendorong, yang menyebabkan banyak developer hengkang dari ekosistem tersebut dan pindah ke ekosistem lain.

Hal ini terjadi pada beberapa developer yang sudah meninggalkan platform iPhone karena merasa terkekang, lalu berpindah ke platform open source. Open source menjadikan para developer memiliki posisi yang setara dengan para vendor.

Perubahan pola market perangkat lunak ini mengindikasikan open source memiliki nilai lebih di dalam pembentukan ekosistem. Sebagai contoh Android yang relatif bebas, memiliki ekosistem yang tumbuh pesat. Siapa saja bisa mengembangkan dan bergabung, tanpa legitimasi yang formal. Ekosistem yang dibentuk oleh open source memiliki survivability yang lebih tinggi, karena tidak bergantung kepada apapun.

Kondisi perubahan posisi developer dalam ekosistem saat ini menguntungkan negara seperti Indo- nesia, karena memiliki bargaining

position lebih tinggi di mata vendor dikarenakan jumlah pengguna yang besar di Indonesia. Sayangnya, kondisi ini jarang dimanfaatkan oleh developer mau- pun lembaga pendidikan di Indonesia untuk tawar-menawar dengan vendor agar diberi akses pada pengetahuan untuk mengembangkan perangkat lunak.

Kunci Mengunci Ekosistem

I Made Wiryana

melihat tren penambahannya yang lambat sekali atau bahkan cenderung seperti menghilang.

Penambahan ekosistem ini sen

diri, bukan saja bergantung pada fitur yang ada pada sistem tersebut, tetapi juga sangat ditentukan pada mudah/tidaknya seo- rang developer memulai pengembangan. Sulit atau tidaknya ini ditentukan oleh kondisi lisensi, dan juga ketersediaan dokumentasi. Tentu saja berbagai vendor berusaha mencoba menarik hati

Semakin besar ekosistem maka para vendor atau pengguna akan semakin tertarik untuk bergabung. Tetapi ukuran ekosistem pada saat itu saja tidaklah cukup. Yang perlu diperhatikan adalah "tren" dari penambahan ekosistem. Sebab biasanya para developer tentu lebih tertarik melihat kepada masa depan, bukan kondisi saat ini. Suatu ekosistem yang baik memiliki tren penambahan ekosistem yang besar.

Hal itulah yang menyebabkan kini banyak developer beralih ke Android karena melihat penambahan ekosistemnya yang melaju sangat kencang. Walau mungkin jumlah ekosistemnya belum menyamai yang lain. Itu jugalah yang membuat developer tidak tertarik lagi dengan Windows Mobile untuk perangkat smartphone karena

“Open source menjadikan para developer memiliki posisi yang setara

dengan para vendor.„

Page 9: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

indolinux (IL0040320).indd 1indolinux (IL0040320).indd 1 5/7/2009 3:18:21 PM5/7/2009 3:18:21 PM

Page 10: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

OPINI

10 08/2010 INFOLINUX www.infolinux.web.id

Berkas-berkas yang dihasilkan ini, musik dan foto, tidak semuanya sering digunakan. Berapa banyak sih lagu yang bisa kita dengarkan dalam sehari? Sementara itu, berapa banyak lagu mp3 yang kita koleksi? Demikian pula seberapa sering kita melihat atau menggunakan foto yang kita simpan? Rasanya tidak banyak.

Untuk kasus foto, situasinya lebih parah lagi. Kita mengambil foto beberapa kali untuk satu kejadian. Mungkin hanya satu foto yang kita gunakan atau kita sukai, selebihnya tidak kita gunakan, tetapi tetap kita simpan. Kalau dulu, kita lebih berhati-hati dalam memotret karena ada biaya untuk mencetak foto dan juga kita harus menyediakan tempat (album) untuk menyimpan foto-foto tersebut. Kita lebih selektif dalam memotret. Sekarang, tidak lagi.

Berkas-berkas yang jarang kita gunakan ini sebetulnya merupakan sampah. Sampah digital. Saat ini, mungkin Anda belum melihatnya sebagai masalah, tetapi yang namanya sampah semestinya merupakan masalah, ya? Mungkin karena jumlah data yang Anda miliki relatif “masih sedikit” dan masih dapat ditampung dalam disk yang dimiliki, Anda tidak merasakan ini menjadi masalah. Anak muda saat ini masih tenang-tenang saja. Tunggu saja nanti.

Bagi yang datanya sudah terlalu banyak, seperti saya, hal ini

sudah merupakan masalah besar. Hanya saja, saya masih menutup mata dan lari dari kenyataan. Saya masih tetap membuat sampah digital. Tolooonnnggg...!

(Bertambahnya) Sampah Digital

Budi Rahardjo

Baru saja saya membeli hard disk eksternal sebesar satu Tera Byte atau 1.000 GB. Luar biasa. Beberapa tahun yang

lalu tidak terbayang kalau saya akan memiliki harddisk sebesar itu. Artinya, data yang saya miliki sudah sebanyak itu. Lebih hebat lagi, anak saya juga minta dibelikan harddisk yang sama. Berapa banyak data yang dia hasilkan, kalau nanti

sudah seumuran dengan saya?

Saya coba cermati, apa yang ada di dalam harddisk saya. Ternyata dokumen yang berbentuk tulisan atau spreadsheet tidak berjumlah banyak. Yang banyak adalah berkas musik, foto, video, dan backup program. Untuk anak saya ada tambahan lagi, yaitu berkas program permainan atau games. Artinya, data yang saya hasilkan sebagian besar bukan untuk pekerjaan, tetapi untuk entertainment. Hadoh!

Saya perkirakan sebagian besar kawan-kawan saya juga mengalami hal yang sama, yakni kehabisan ruang harddisk. Pola penggunaannya saya duga hampir sama juga.

Dugaan saya, laju penambahan data digital ini akan tetap atau malah bertambah. Hal ini disebabkan oleh adanya kebiasaan baru orang Indonesia yang didukung oleh ketersediaan teknologi. Mendengarkan

lagu digital sudah bukan hal yang asing lagi bagi sebagian besar kita, apalagi bagi remaja. Hampir semua remaja yang saya tahu mendengarkan lagu dengan format mp3.

Demikian pula kamera digital sudah murah harganya sehingga orang tidak berpikir panjang untuk mengambil foto. Kalau kita

perhatikan, sebagian besar handphone pun sudah memiliki kamera. Artinya, semakin mudah orang memotret dan menyimpannya dalam berkas digital.

“Artinya data yang saya hasilkan sebagian besar bukan untuk pekerjaan

tetapi untuk entertainment.„

Page 11: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

IKLANPASS FM

(materi FILM)

masterweb (IL0420213).indd 1masterweb (IL0420213).indd 1 6/30/2010 1:54:56 PM6/30/2010 1:54:56 PM

Page 12: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

OPINI

12 08/2010 INFOLINUX www.infolinux.web.id

Google membuat kejutan dengan memperkenalkan Android untuk ponsel, menyaingi iPhone dan Windows Mobile yang

sudah berjaya sejak awal tahun 2000-an. Dalam perjalanannya, banyak perusahaan produsen komputer dan gadget menyepakati penggunaan Android di berbagai peranti. Bahkan ada usaha untuk menjalankannya di netbook, sehingga harga

netbook menjadi murah.

Michael S. Sunggiardi

Demam Android

Android yang dikembangkan oleh Android Inc. dan kemudian dibeli oleh Google ini menggabungkan Linux kernel yang sudah dimodifikasi dengan middleware dan aplikasi langsung untuk ponsel melalui bahasa pemrograman Java.

Pada 5 November 2007, Android berhasil masuk ke Open Handset Alliance yang terdiri atas 71 perusahaan TIK dan membuat standar terbuka untuk ponsel. Beberapa jenis handset Android dijual dengan harga lumayan mahal.

Maret 2009, beberapa perusahaan besar di Jepang mendirikan Open Embedded Software Foundation untuk menggunakan Android sebagai bagian dari embed- ded system dan menentukan standar umum, pengembangan bersama, dan mempromosikan sistem operasi Android. Saat ini, anggota OESF sekitar 84 perusahaan yang terdiri dari negara Jepang, Cina, Taiwan, Korea, India, Amerika, Kanada dan Vietnam.

Di Jepang, sebetulnya sudah ada satu standar untuk industri TIK, yaitu TRON yang dibuat oleh Professor Ken Sakamura dari University of Tokyo pada 1985, dalam bentuk peranti pen penggerak kursor yang dapat langsung

terlihat di layar, yang saat ini digunakan oleh peranti komputer, terutama notebook sebagai alat penunjuk berbentuk track ball atau digitizing pen.

Peran TRON dalam mengubah industri elektronik dan TIK di Jepang sangat besar. Ada lebih dari 280 anggota yang masuk ke dalamnya, yang sebagian merupakan perusahaan raksasa

elektronik dan komputer Jepang, seperti Fujitsu, NTT, NEC, Hitachi, dan Omron. Beberapa perusahaan di luar Jepang juga mengikuti standar TRON.

TRON seolah-olah sudah menjadi standar embedded peranti elektronik dan TIK dunia, dan dapat kita rasakan manfaatnya dalam berbagai bentuk, seperti remote control televisi dan AC, peranti elektronik pengendali mesin minuman, dan peranti kecil atau gadget lain yang banyak dipakai. Mulai 2010 ini, sepertinya peran TRON segera akan digantikan oleh Android yang dalam berbagai hal mempunyai keunggulan, termasuk mendukung gerakan open source yang sudah banyak dikenal.

Jepang yang merupakan negara industri kelas dunia memang sangat membutuhkan pengembangan sistem operasi embedded seperti ini, karena semua mesin dikembangkan dengan teknologi tinggi, tetapi harus dengan biaya yang relatif murah. Cina dan Taiwan merupakan pesaing ketat industri elektronik dan TIK Jepang, yang sudah memulai industrinya dari tahun tujuh puluhan, mengalahkan Amerika dan Eropa yang tidak bisa efisien dalam proses.

Sebetulnya, kita dapat ikut berperan serta dalam kancah TIK dunia melalui Android. Terutama dengan mengembangkan peranti-peranti keras yang dibuat di Taiwan atau Cina dan mengembangkan peranti lunak aplikasinya di Indonesia, sehingga dapat menjadi produk unggulan dan di masa depan dapat memulai produksi peranti keras dengan lebih baik.

“... Android yang dalam berbagai hal punya keunggulan, termasuk mendukung

gerakan open source...„

Page 13: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

asia raya (IL0520109).indd 1asia raya (IL0520109).indd 1 6/30/2010 1:49:49 PM6/30/2010 1:49:49 PM

Page 14: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

SURAT ANDA

14 08/2010 INFOLINUX www.infolinux.web.id

Punya opini, pendapat, kritik, atau saran yang terpendam untuk InfoLINUX?

Sampaikan melalui surat ke Redaksi InfoLINUX, Jl. Kramat IV No. 11, Jakarta, 10430

atau e-mail di [email protected].

Distro Asli Indonesia1. Untuk InfoLINUX edisi men

datang, mohon disertakan file iso distro asli buatan Indonesia dalam ekstra DVD InfoLINUX.

2. Mohon disertakan penjelasan dari masing-masing distro yang disertakan dalam ekstra DVD InfoLINUX. Sebagai pembaca baru InfoLINUX dan karena status saya masih pelajar SMP, terkadang saya masih merasa kesulitan dengan distro-distro tersebut. Karena terkadang, dalam majalah tidak disertakan penjelasan mengenai distro bersangkutan sehingga saya agak kesulitan memahaminya.

Sendy Brammadi - via e-mail

1. Ok. Akan kami pertimbangkan dahulu, apabila hal ini memang menarik untuk kami penuhi.

2. Terima kasih atas masukannya. Mulai edisi ini, InfoLINUX sudah menyertakan file README-FIRST.txt pada setiap direktori DISTRO yang disertakan dalam ekstra DVD InfoLINUX, file tersebut berisikan alamat website distro bersangkutan dan sejumlah link yang dapat membantu Anda dalam memperoleh informasi lebih lanjut mengenai distro bersangkutan.

Artikel Mengenai VLANPada edisi mendatang, tolong disertakan artikel tentang konfigurasi VLAN di Linux. Kalau bisa mulai dari dasar-dasarnya, hingga proses konfigurasi tingkat lanjut. Menurut saya, artikel tersebut dapat membantu kami para newbie dalam menghemat biaya pembelian hardware seperti switch manage.

Noname - via e-mail

Terima kasih atas usulannya yang menarik. Jika memang memungkinkan, InfoLINUX akan coba memuat artikel mengenai VLAN pada salah satu artikel InfoLINUX edisi mendatang.

Tutorial Distro Debian1. Apakah apt-get dapat digunakan

untuk menginstalasi program dari paket source code (tar.bz/tar.gz)? Kalau bisa, bagaimana cara melakukan hal tersebut?

2. Apakah ada aplikasi yang dapat digunakan untuk mengubah paket tarball menjadi paket binari, atau dari paket binari menjadi paket binari lainnya?

3. Di mana saya dapat memperdalam ilmu tentang distro Debian di Internet, tapi menggunakan bahasa Indonesia? Karena kebanyakan tutorial Debian yang saya temukan di Internet masih berbahasa Inggris.

Akuy - via e-mail

1. Apt-get tidak dapat digunakan untuk menginstalasikan paket yang masih berformat tarball/source code. Namun, tool ini dapat digunakan untuk membantu dalam membuat suatu paket tarball/source code menjadi paket binary. Untuk mengetahui lebih lanjut mengenai hal ini, dapat dilihat pada url http://www.debian.org/doc/manuals/apt-howto/ch-sourcehandling.en.html.

2. Untuk mempermudah proses pengubahan suatu paket tarball menjadi paket binari, Anda dapat menggunakan aplikasi checkinstall (http://www.asic-linux.com.mx/~izto/checkinstall/). Tool ini dapat mengubah paket tarball menjadi paket binari dalam format

deb, rpm, atau tgz. Sedangkan untuk mengubah suatu format paket binari menjadi format paket binari lainnya, Anda dapat menggunakan tool Alien (http://linux.die.net/man/1/alien).

3. Meski ada, namun saat ini masih jarang dokumentasi Debian dalam bahasa Indonesia. Jika membutuhkan dokumentasi distro Debian yang lengkap, Anda dapat membuka halaman dokumentasi Debian di url http://www.debian.org/doc/. Alternatif lainnya, Anda dapat membaca buku mini InfoLINUX yang berjudul Panduan Praktis Debian GNU/Linux 3.1 terbitan PT. Dian Rakyat, yang dapat dipesan melalui Prima DR, via e-mail: [email protected], atau phone: (021) 3190-4075.

Request Ubuntu UESudah 4 tahun saya langganan InfoLINUX, tapi kenapa InfoLINUX belum pernah memberikan distro Ubuntu Ultimate Edition? Untuk men-download sendiri juga tidak memungkinkan bagi saya, karena ukuran file iso Ubuntu UE cukup besar. Untuk itu, saya berharap InfoLINUX dapat memberikan bonus Ubuntu Ultimate Edition versi terbaru pada salah satu ekstra DVD InfoLINUX edisi mendatang.

Rajib Suraja - via e-mail

Terima kasih atas usulannya. Terkait banyaknya distro besar lain yang dirilis dalam waktu dekat, maka kami tetap harus selektif dalam menentukan isi ekstra DVD InfoLINUX. Meski demikian, usulan Anda tetap akan kami pertimbangkan.

Page 15: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

BlankOn_07.indd 1BlankOn_07.indd 1 6/4/2010 5:32:10 PM6/4/2010 5:32:10 PM

Page 16: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX16

TES&REVIEW

Pernah membuka situs Wikipedia? Jika pernah, Anda pasti akan mera-sa kagum akan kelengkapan infor-masi yang terdapat dalam situs ini.

Semua informasi yang terdapat dalam situs Wikipedia tersedia secara free, dan siapa saja dapat turut berkontribusi. Hebatnya lagi, aplikasi yang digunakan oleh Wikipedia adalah MediaWiki, yang juga bersifat free dan open source.

MediaWiki adalah aplikasi wiki ber-basis web bersifat free yang dibuat oleh Wikimedia Foundation. MediaWiki ditulis menggunakan script PHP dan menggunakan sebuah database untuk penyimpanan datanya. Pada tahun 2009, tercatat lebih dari 2.000 situs wiki yang menggunakan MediaWiki. Untuk me-nambah fungsionalitas MediaWiki, pada situsnya juga sudah tersedia lebih dari 1.500 extensions yang dapat digunakan.

Bagi pembaca yang ingin menggu-nakan MediaWiki, rubrik Utama kali ini membahas cara membuat web wiki menggunakan MediaWiki. Beragam hal yang berkenaan dengan MediWiki dijelaskan dalam artikel ini, mulai dari petunjuk instalasi, pengaturan admin, pembuatan user, pengeditan halaman main page, menambahkan skin/themes, hingga cara menambahkan ekstensi.

Selain rubrik Utama, ekstra DVD InfoLINUX kali ini menyertakan bonus Fedora 13 plus sejumlah paket ekstras. Dengan ini, Anda dapat menikmati fi le multimedia di desktop Fedora 13. Distro lain yang disertakan adalah Qimo 4 Kids 2.0 dan NexentaStor Community 3.0.3. Pembahasan kedua distro ini juga dapat Anda temukan dalam rubrik Workshop Distro dan Praktik Instan edisi ini.�

Supriyanto [[email protected]]

Kolaborasi via Wiki DistroFedora 13 17Qimo 4 Kids 2.0 17

GameLugaru HD 0.0.0.0 Rev269 18Widelands 1.15-1 18

HardwareBlender Studio Projects: 19Digital Movie-Making Offi cial Ubuntu Server Book, 19The (2nd Edition) The Defi nitive Guide to 19Samba 4 (v. 4)[Paperback]

INDEX

Defi nisi Label “On the Disc”Sebuah software yang memperoleh label “On the Disc”, berarti Anda dapat menemukan paket software ter sebut dalam bonus Disc InfoLINUX edisi kali ini.

Prosedur “Linux Ready”Sebuah PC atau notebook yang men dapatkan predikat “Linux Ready”, berarti semua perip heral standar se perti adapter jaringan LAN maupun WLAN dapat berfungsi sebagaimana mestinya, mulai dari proses instalasi sebuah distro Linux dilakukan hingga instalasi driver hardware terse-but. Distro Linux yang digunakan dalam pe ngujian “Linux Ready” adalah, Ubuntu 10.04 LTS, Fedora 13, dan openSUSE 11.2.

1918

17

16_Pengantar tes&review_08_EDITARIE.indd 1616_Pengantar tes&review_08_EDITARIE.indd 16 6/30/2010 3:26:56 PM6/30/2010 3:26:56 PM

Page 17: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

DISTRO

17INFOLINUX 08/2010www.infolinux.web.id

0 2 4 6 8 10RATING

7,5

0 2 4 6 8 10RATING

9,5

Fungsionalitas (20%) 9,0

Fitur (40%) 9,5

Kemudahan (30%) 9,0

Dokumentasi (10%) 9,0

Office.org 3.2.0. Tak ketinggalan juga GIMP 2.6.8 dan Shotwell 0.5.2 untuk aplikasi grafis.

Pada halaman partisi di instalasi Fedora 13, terdapat penambahan opsi, yakni Shrink Current System. Dengan ini, pengguna dapat mengubah ukuran partisi yang telah ada untuk membuat kapasitas harddisk kosong yang baru. Selain itu, tidak ada perubahan terlalu berarti, antara Fedora 13 dibanding versi sebelumnya. Sup

Pengenalan ilmu komputer dapat dimulai sejak dini. Untuk

melakukan hal ini, diperlukan suatu aplikasi yang dapat menjadikan si kecil menjadi lebih kreatif. Salah satu distro yang dapat digunakan untuk hal ini adalah Qimo 4 Kids.

Dalam distro ini, sudah berisi banyak aplikasi edukasi untuk anak-anak. Qimo 4 Kids dibuat berbasiskan Xubuntu 10.04 dan menggunakan desktop XFCE 4.6.1. Untuk mempermudah si kecil menjalankan aplikasi dalam distro ini, pada bagian bawah bar distro Qimo 4 Kids, sudah diletakkan sejumlah icon aplikasi edukasi.

Karena ditujukan untuk anak-anak di bawah 12 tahun, tampilan desktop ini dibuat agar terlihat seceria mungkin. Pada

wallpaper yang digunakan, distro ini menggunakan wallpaper dengan latar belakang anak Eskimo, bersama seekor beruang kutub yang menggunakan pita berwarna merah, agar dapat menarik perhatian anak-anak.

Secara default, distro ini cukup menyenang kan anak-anak. Hanya saja sejumlah paket aplikasi, seperti multimedia dan perkantoran, belum disertakan secara default dalam distro. Sup

Fedora 13DESKTOP/SERVER

Qimo 4 Kids 2.0DESKTOP

PEMBUAT Qimo 4 Kids SITUS www.qimo4kids.comKERNEL 2.6.32 OFFICE Orage 4.6.1 EDITOR Mousepad 0.2.16DESKTOP XFCE 4.6.1 GRAPHICS ristretto 0.0.22, Simple Scan 1.0.2MULTIMEDIA Exaile 0.3.1, Totem 2.30.0 INTERNET Firefox 3.6.3EDUKASI GCompris 9.0, Childsplay 1.3, glChess 2.30.0, laby 0.5.5

PEMBUAT Fedora Project SITUS http://fedoraproject.orgKERNEL 2.6.33 OFFICE OpenOffice.org 3.2.0, Planner 0.14.4DESKTOP GNOME 2.30.0 GRAPHICS GIMP 2.6.8, Shotwell 0.5.2MULTIMEDIA Totem 2.30.0, Rhythmbox 0.12.8, Sound Juicer 2.28.2INTERNET Firefox 3.6.3, Evolution 2.30.1, Empathy 2.30.1

Kebutuhan Hardware

Processor : Kelas Pentium IVHarddisk : 20 GBMemory : 512 MB

Kebutuhan Hardware

Processor : Kelas Pentium IVHarddisk : 10 GBMemory : 512 MB

Hasil Pengujian

Fedora, distro turunan RHEL yang pada saat tulisan ini dibuat bera-

da pada peringkat kedua pada daftar situs DistroWatch.com, pada 25 Mei 2010 lalu telah merilis versi terbaru dari distro mereka, yakni Fedora 13.

Versi terbaru dari Fedora 13 telah membawa sejumlah fitur terbaru, yang di antaranya, instalasi driver printer secara otomatis, perbaikan dan peningkatan aplikasi desktop, dukungan 3D untuk video card ATi (R600 dan R700) via driver Radeon, dan penyertaan groupware Zarafa versi open source.

Fedora 13 menyertakan GNOME 2.30.0 sebagai default desktop. Sejumlah aplikasi yang disertakan juga me- rupakan versi terkini. Untuk aplikasi perkantoran, distro ini sudah menyertakan Open

Fungsionalitas (20%) 6,0

Fitur (40%) 8,0

Kemudahan (30%) 8,0

Dokumentasi (10%) 7,0

Hasil Pengujian

Page 18: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

GAME

18 08/2010 INFOLINUX www.infolinux.web.id

RATING

8,0

0 2 4 6 8 10 0 2 4 6 8 10RATING

8,5

Grafik(30%) 9,0

Fitur (40%) 7,5

Kompatibiltas (20%) 7,5

Dokumentasi (10%) 9,0

Hasil Pengujian

Lugaru HD 0.0.0.0 Rev269THIRD-PERSON ACTION

Widelands 1.15-1REAL-TIME STRATEGY

PEMBUAT Wolfire GamesSITUS http://www.wolfire.com/lugaruLISENSI GPL HARGA Free (Demo)/Komersial US$19.95TINGKAT KESULITAN Medium MULTIPLAYER GAME NoDEPEDENSI libpng12-0 >= 1.2.13, libopenal1, libsdl >= 1.2.10

PEMBUAT Widelands DeveloperSITUS http://wl.widelands.orgLISENSI GPL HARGA GratisTINGKAT KESULITAN Medium MULTIPLAYER GAME YesDEPEDENSI libsdl-gfx >= 1.2, libsdl-mixer >= 1.2, libsdl-ttf >= 2.0

Republik kelinci sedang mengalami kekisruhan. Terjadi perbuda

kan dan pembantaian rakyat Republik Kelinci yang dilakukan oleh para pemimpin koruptor. Turner, sang kelinci pemberontak berusaha meme- rangi keadaan ini.

Plot cerita di atas terdapat pada game Lugaru. Lugaru adalah third-person action game yang dibuat sebagai penerus dari game Overgrowth. Dalam game ini, Anda berperan sebagai Turner, kelinci dari kaum pemberontak yang berjuang membebaskan kaumnya dari penindasan.

Pada halaman permainan, Anda akan disuguhi dengan tiga menu utama, yakni Enter, Option, dan Quit. Masuk ke menu Enter, Anda akan dihadapi pada pilihan Tutorial, Challenge, dan Change

User. Masuklah ke menu Tutorial untuk mempelajari game ini. Setelah dirasa cukup, Anda dapat menuju ke menu Challenge untuk memulai permainan.

Untuk keyboard shortcut, gunakan button W-S-A-D untuk arah, Shift untuk merunduk, Space untuk melompat, dan klik mouse untuk menyerang. Selanjutnya, Anda dapat bertempur untuk menghabisi para koruptor! Sup

Beragam pilihan game strategi sudah tersedia di Linux. Sebut saja 0

A.D., Warzone 2100, Globulation 2, hingga FreeCol. Jika pilihan game strategi ini masih kurang, Widelands dapat menjadi game alternatif pilihan.

Widelands adalah game strategi di Linux, dengan jalan cerita yang mirip dengan game Settlers II buatan BlueByte. Pada game ini, Anda akan memulai permainan dengan sebidang tanah yang menjadi lahan dan mem- bangun pasukan. Untuk mewujudkan hal ini, Anda harus membangun infrastruktur, mengelola lahan, dan melawan musuh.

Seperti game strategi yang lain, Widelands dapat dimainkan secara single player ataupun multi-player. Pilihan peta permainan yang

tersedia juga cukup beragam. Jika ingin mempelajari dahulu, Anda dapat memilih mode Campaign dan mengikuti tutorial yang diberikan.

Dalam menu View Readme, sudah tersedia informasi mengenai keyboard shortcut permainan. Apabila peta yang tersedia dirasa masih kurang, game ini juga menyediakan menu Editor yang dapat digunakan untuk membuat peta permainan sendiri. Sup

Kebutuhan Hardware

Processor : Kelas Pentium IVHarddisk : 50 MBMemory : 512 GB

Kebutuhan Hardware

Processor : Kelas Pentium IVHarddisk : 250 MBMemory : 512 MB

Grafik(30%) 9,0

Fitur (40%) 8,0

Kompatibiltas (20%) 7,5

Dokumentasi (10%) 9,0

Hasil Pengujian

Page 19: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

BUKU

19INFOLINUX 08/2010www.infolinux.web.id

Jika di Microsoft Windows ada ActiveDirectory, maka di Linux ada yang namanya Samba.

Keduanya mempunyai fungsi dan kegunaan yang sama, yang membedakannya hanya lisensi, serta harga tentunya. Punya keinginan untuk beralih menggunakan Samba yang sudah teruji kemampuannya sebagai pengatur file sharing, cobalah baca buku ini.

Berisi panduan langkah-langkah, bagaimana membuat file sharing yang baik, mulai dari konfigurasi seperti sharing file, print sharing, namun tidak melupakan bagaimana cara instalasinya di dalam sistem Anda. Selain itu, Anda juga akan mendapatkan materi tutorial menggunakan Javascript yang akan digunakan sebagai antarmuka grafis Samba.

Dari segi keamanan, Anda juga akan mendapatkan panduan dasar untuk membangun keamanan file adalah manajemen pengguna, otomatisasi administrasi, hingga bagian yang paling detail dari Samba. Zak

The Definitive Guide to Samba 4 (v. 4) [Paperback]

SYSTEM ADMINISTRATION

PENGARANG Roderick SmithPENGARANG ApressTERBIT Desember 2010HARGA $46.99 (650 halaman)ISBN 978-1590597835BONUS -

Pada dunia multimedia, Linux tidaklah lagi dianggap sebagai anak bawang. Kenapa? Karena

banyak film animasi yang sudah dibuat oleh aplikasi dari dunia Linux. Salah satu contoh film yang dibuat adalah Avatar yang menjadi box office di Hollywood. Blender adalah aplikasi yang dimaksud. Pada buku kali ini, Anda akan diajarkan untuk menjadi profesional di dalam menggunakan Blender. Membantu sebagai panduan belajar membuat animasi 3D, seperti memperdalam atribut dan tool yang digunakan didalam Blender, membuat konsep dan menuliskan cerita, dan sekaligus membuat sketsanya.

Selain itu, terdapat juga panduan untuk membuat pustaka 2D dan 3D secara lengkap, membentuk sebuah tekstur, modelling, dan gerakan animasi. Po- koknya, semuanya menarik untuk dipelajari. Bonusnya, Anda akan mendapatkan sebuah DVD yang berisi file-file panduan, mulai dari level pemula hingga level mahir. Zak

Blender Studio Projects: Digital Movie-Making

ANIMATION PROJECT

PENGARANG SybexPENGARANG Tony Mullen, Claudio AndaurTERBIT Mei 2010HARGA $49.99 (272 halaman)ISBN 978-0470543132BONUS DVD

Satu lagi buku tentang distribusi Linux terpopuler di dunia saat ini, Ubuntu. Namun, kali ini

yang dibahas adalah versi servernya. Buku ini dibuat untuk Anda yang benar-benar baru dalam menggunakan Ubuntu server. Banyak hal yang dibahas dalam buku ini, mulai dari instalasi, penggunaan administrasi dan monitoring dasar, pengaturan keamanan, dan cara mengatasi masalah sistem, menyelamatkan server yang rusak parah, dan masih banyak lagi.

Buku ini sangat baik sebagai tambahan. Anda akan diajari cara mudah menggunakan Ubuntu server, membantu Anda untuk membuat pilihan alat keamanan yang cocok untuk sistem Anda, membangun server yang murah untuk web server dan e-mail, meminimalisasi kesalahan Anda pada server, atau membuat komputer cluster Anda sendiri dengan cara yang mudah. Jadikan buku ini sebagai referen-si Anda. Zak

Official Ubuntu Server Book, The (2nd Edition)

DISTRO

PENGARANG Kyle Rankin, Benjamin Mako HillPENGARANG Prentice HallTERBIT Agustus 2010HARGA $39.99 (592 halaman)ISBN 978-0137081332BONUS -

Page 20: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX20

SOFTWARE PILIHAN

Mendengar namanya saja, pasti Anda sudah mengerti apa fungsi dari aplikasi ini. Google Earth

adalah aplikasi yang digunakan un-tuk meneliti tempat di seluruh dunia dalam bentuk 3D. Sebuah aplikasi yang mendunia dan memiliki fi tur yang sangat luar biasa. Anda dapat melihat bentuk daerah, mencari sekolah, dan masih banyak lagi. Ke-tik nama daerah pada kolom search dan Anda akan langsung menuju tempat tersebut. Lakukan zoom un-tuk melihat lebih dekat bentuk dae-rah tersebut. Anda bahkan dapat mencari rumah teman Anda dengan aplikasi ini. Tapi, jangan senang dulu. Tidak semua daerah bisa lihat dan jarak pandangan pun dibatasi. Jadi, Anda hanya dapat melihat su-

sunan rumah ataupun tanah lapang. Lebih baik daripada Anda melihat peta dan tersesat karenanya. Jika memiliki account Google, Anda bisa memetakan tempat tinggal Anda pada Google Maps. Cari nama dae-rah rumah atau kantor Anda, ke-mudian berikan pin pada tempat tersebut. Berikan juga nama rumah Anda sesuka hati. Jadi, kalau ada te-man yang sedang menjelajah daerah rumah Anda, bisa mengetahui bah-wa rumah Anda di daerah tersebut. Masih banyak hal yang dapat Anda eksplorasi.�Za

Google Earth 5.2[INTERNET]

DVD/CD sertaan terdiri dari berbagai macam aplikasi

gratis, shareware, maupun demo. Susunan kategori se-

lalu berubah, tergantung pada tren aplikasi yang tengah

berlaku. Beberapa kategori selalu ada di tiap edisi.

DISC RUSAK?Apabila disc yang diterima tidak terbaca atau ru-sak dan ingin mengganti nya, kirimkan disc yang rusak tersebut kepada kami, Tim Disc InfoLINUX, Jl. Kramat IV No. 11, Jakarta 10430. Agar dapat kami kirimkan disc penggantinya.

INDEX ON THE DISC

PEMBUAT: Google, Inc.SITUS: code.google.comLISENSI: FreewareDEPENDENSI: -REQUIREMENT: -

� : On The DVD Regular

� : Disc Boot

DVDDISC BOOT �� Fedora 13

/Backup� Lucky Backup

0.4.1

/Browser� Firefox 3.6.6� Opera 10.11

/Codecs� Audio� Video

/Desktop� Folderview

/Development� JDK 6u20� JRE 6u20

/DISTRO� NexentaStor

Community 3.0.3� Qimo 4 Kids 2.0� wattOS R2

/Download� Vuze 4.4

/Email� Thunderbird 3.1� Zdesktop 1.04

/EXTRAS� Fedora 13

/Grafis� GIMP 2.6.9

/Internet� Google Chrome

6.0.437.1 Alpha� Google Earth 5.2� Google Picasa 3.0

Beta

/Keamanan� Universal

Password Manager 1.6

/Komunikasi� Skype 2.1 Beta2

/Monitoring� Hardware Monitor

1.4.3

/Multimedia� VLC 1.1.0� VMPK 0.3.2

/Office� Adobe Reader 9.3� OpenOffice.org

3.2.1

/Pendidikan� Perroquet 1.1.0

/Perkantoran� Home Bank 4.3

/Permainan� Ditchers 1.1.1� FretsOnFireX

3.121� Mission X 1.0

/Plugins� Flash Player

10.1.53.64

/RUBRIK� Game� Tutorial� Utama� Workshop

/Virtualisasi� VirtualBox 3.2.4

20_Software Pilihan_EDITSUPRI.indd 2020_Software Pilihan_EDITSUPRI.indd 20 6/30/2010 2:06:44 PM6/30/2010 2:06:44 PM

Page 21: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

SOFTWARE PILIHAN

www.infolinux.web.id INFOLINUX � 08/2010 21

Sekarang, zamannya Anda meng-a tur keuangan dengan mudah di dalam komputer. Gunakan Home Bank untuk mengatur keluar ma-suk ke uangan Anda, secara pribadi maupun untuk usaha Anda. Kon-sep dari aplikasi ini adalah ringan, sederhana, dan mudah digunakan. Jadi, walaupun Anda baru saja menggunakan aplikasi ini selama 5 menit, akan cepat mengerti seper-ti Anda sudah menggunakan ap-likasi ini sejak lama. Fitur yang dapat Anda miliki, antara lain

meng analisis keuangan Anda se-cara detail dengan cara yang cepat dan dina mis, juga disertai dengan laporan yang berdasarkan fi lter. Se-lain itu, Anda juga dapat membuat grafi k ke uangan dengan aplikasi ini. Jika menginginkan keuangan Anda lebih teratur, cobalah gunakan Home Bank.�Za

Home Bank 4.3 [PERKANTORAN]

FretsOnFireX 3.121 [PERMAINAN]

Ini dia permainan yang banyak di-gemari oleh pengguna game yang menyukai permainan gitar virtual, seperti Guitar Hero dan Rock Band. Mengikuti tangga-tangga nada yang akan dimunculkan dalam bentuk simbol pada tiap line senar gitar dan Anda diwajibkan menekan tombol permainan mengikuti simbol itu. Demikian juga dengan aplikasi ini, yang sebenarnya permainan gi-tar virtual yang sama dengan per-mainan yang disebutkan di atas. Di-tulis dengan bahasa pemrograman

Python, Anda dapat memainkan gitar, bass, atau drum mengikuti lagu kesukaan Anda. Navigasi per-mainan ini bisa menggunakan key-board, mouse atau instrumen kon-trol tambahan yang digunakan pada permainan Guitar Hero dan Rock Band. Ingin menjadi gitaris andal? Mainkan FretsOnFireX.�Za

PEMBUAT: Chris PainaoSITUS: code.google.com/p/fofix/LISENSI: GPL / FreeDEPENDENSI: Python, pygame, NumPyREQUIREMENT: -

PEMBUAT: Maxime DoyenSITUS: homebank.free.frLISENSI: GPL / FreeDEPENDENSI: gtk+REQUIREMENT: -

Folderview Screenlet [DESKTOP]

VLC 1.1.0[MULTIMEDIA]

Sebenarnya, aplikasi ini adalah se-buah widget dari screenlet untuk memperindah desktop Anda. Wid-get ini akan memudahkan Anda untuk meletakkan folder atau direktori penting Anda di desk-top dengan tampilan yang indah. Instal aplikasi ini dan rasakan bedanya.�Za

Aplikasi alternatif bagi Anda yang ingin menyaksikan ataupun men-dengar fi le multimedia dengan banyak format. Di versi terbaru ini, Anda dapat menyetel video HD dan juga kemampuan stream-ing yang baik. Kecepatan melaku-kan decoding juga menjadi lebih baik. Coba gunakan VLC.�Za

PEMBUAT: Helder FragaSITUS: gnome-look.orgLISENSI: GPL / FreeDEPENDENSI: ScreenletsREQUIREMENT: -

PEMBUAT: The VideoLAN TeamSITUS: videolan.orgLISENSI: GPL / FreeDEPENDENSI: -REQUIREMENT: -

20_Software Pilihan_EDITSUPRI.indd 2120_Software Pilihan_EDITSUPRI.indd 21 6/30/2010 2:07:16 PM6/30/2010 2:07:16 PM

Page 22: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX22

SOFTWARE PILIHAN

Sebuah aplikasi yang berfungsi untuk mengolah data image atau gambar. Sebuah aplikasi alternatif image editing yang memiliki ke-mampuan yang sama dengan pe-saingnya Photoshop. Walaupun per-tama menggunakannya Anda masih merasa bingung, tapi lambat laun pasti Anda bisa menguasai GIMP. Hal yang baru dari versi terbarunya ini adalah beberapa perbaikan bugs yang ada pada versi sebelumnya, 2.6.8, dan juga beberapa tambah-an penerjemah bahasa. Dukungan

yang lainnya seperti plugin, script, sikat, dan masih banyak lainnya, dapat Anda download dari situs resminya gimp.org. Bagi Anda yang gemar memanipulasi gambar wajib menggunakan aplikasi ini, selain mudah, tampilan UI yang menarik, serta lisensinya yang bersifat open source.�Za

GIMP 2.6.9 [GRAFIS]

Virtual MIDI Piano Keyboard 0.3.2 [MULTIMEDIA]

Anda ingin belajar bermain key-board dalam hal ini alat musik, namun belum mampu untuk mem-beli piano keyboard asli? Jangan mengurung kan niat untuk melan-jutkan hobi Anda tersebut. Guna-kan aplikasi virtual ini, Anda akan dapat bermain piano keyboard seper ti aslinya. Walaupun hanya menghasilkan suara dalam bentuk MIDI, namun aplikasi ini menggu-nakan tampilan yang mirip sekali dengan aslinya. Virtual MIDI ini sangat mudah digunakan, walaupun

Anda seorang newbie sekalipun. Anda dapat menggunakan keyboad dan mouse komputer untuk meng-operasikannya. Semakin sering Anda berlatih, semakin mahir pula Anda bermain piano keyboard. Dengan adanya aplikasi ini, belajar piano keyboard tidak harus mahal, bukan? �Za

PEMBUAT: Pedro Lopez-CabanillasSITUS: kmetronome.sourceforge.netLISENSI: GPL v3 / FreeDEPENDENSI: QtREQUIREMENT: -

Perroquet 1.1.0[PENDIDIKAN]

Bagi Anda yang merasa kesulitan dalam melatih pendengaran dalam bahasa asing, aplikasi ini cocok untuk Anda. Prinsip dari aplikasi ini menggunakan audio dan video, dan akan diasosiasikan dengan subtitle yang berisi perkataan yang dihasilkan dari audio yang dikeluarkan.�Za

Mission X 1.0[PERMAINAN]

Mission X adalah permainan com-bat pesawat yang bertujuan untuk menghabisi musuh yang meng-hadang. Permainan ini memiliki tampilan 2D yang sangat menarik. Anda akan mengendalikan kapal perang Kapten Mark, dengan misi mempertahankan Bumi dari invasi bangsa Macronian.�Za

PEMBUAT: Frédéric BertolusSITUS: perroquet.b219.orgLISENSI: GPL v3 / FreeDEPENDENSI: -REQUIREMENT: -

PEMBUAT: FroggySoftSITUS: sourceforge.net/projects/missionxLISENSI: GPL v3 / FreeDEPENDENSI: -REQUIREMENT: -

PEMBUAT: The Gimp TeamSITUS: gimp.orgLISENSI: GPL / FreeDEPENDENSI: -REQUIREMENT: -

20_Software Pilihan_EDITSUPRI.indd 2220_Software Pilihan_EDITSUPRI.indd 22 6/30/2010 2:07:18 PM6/30/2010 2:07:18 PM

Page 23: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

4 Mbpsper month

1,750,000rp

8 Mbpsper month

3,000,000rp

20 Mbpsper month

7,500,000rp

2 Mbpsper month

1,000,000rp

3Nintendo Wii

1iMac 20”

10Biznet Prepaid

Voucher 1,000,000iPod Touch

10

Grand Prizes

3Nintendo DS

Monthly Prizes

5Digital

Photo Frame

10Biznet Prepaid

Voucher 500,000

1LCD TV 32"

terms and conditions applyvalid from 1 Jan - 31 Dec 2010

Raffle in Jun & Dec 2010

Kawasaki Ninja 250 R

Raffle in Dec 2010.Special Prize

call biznet500988(021)57998888

PT. Supra Primatama NusantaraMidPlaza 2, Lantai 8. Jl. Jend. Sudirman 10-11. Jakarta 10220 - Indonesia. P +62-21-57998888 F +62-21-5700580Bali + 62-361-8781688 | Bandung +62-22-4267088 | Surabaya + 62-31-5349388 | www.biznetnetworks.com

STILL LOOKING FOR SPEED?Double the speed with the same low price!

biznet (IL0510504).indd 1biznet (IL0510504).indd 1 6/30/2010 2:51:58 PM6/30/2010 2:51:58 PM

Page 24: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX24

UTAMA

Informasi merupakan hal yang sangat penting di zaman teknologi saat ini. Semua hal bisa didokumentasikan, dari hal yang sifatnya pribadi mau-pun hal yang menyangkut pekerjaan. Banyak media yang dapat digunakan untuk membuat dokumentasi terse-but, mulai dari buku hingga ke media Internet.

Apabila Anda masih menuliskan dokumentasi ke dalam buku, bisa saja buku tersebut rusak atau lupa meletak-kannya, dan akhirnya hilang! Cobalah berpikir lebih maju dengan meng-gunakan media Internet, salah satu-nya adalah menggunakan mediawiki. Sebuah aplikasi yang diguna kan un-

tuk dokumentasi online berbasis web sama halnya dengan yang digunakan wikipedia. Anda dapat melihat semua dokumentasi kapanpun dan di mana-pun ketika Anda terhubung dengan Internet dan dapat berbagi dokumen-tasi dengan teman dan orang lain yang melihat dokumentasi Anda.

Selain itu, teman ataupun orang lain dapat menambahkan hal-hal yang kurang pada dokumentasi dan dapat memberikan masukan dalam dokumentasi tersebut. Jadi, dalam hal ini Anda tidak sendirian dalam mengerjakan dokumentasi dan saling melengkapi antara Anda, teman, dan pengguna Internet lainnya.

Mudah digunakan dan juga di-dukung dengan tampilan yang menawan, menjadikan mediawiki layak untuk Anda coba.

SKENARIOPada artikel kali ini, penulis menggu-nakan distribusi Linux Ubuntu Server 10.04, sebuah komputer dengan spe-sifi kasi AMD Athlon, RAM dengan besar 256 MB, dan kapasitas hard-disk 10 GB. Alasan digunakannya Ubuntu Server,agar instalasi lebih cepat dan tidak memakan sumber daya harddisk. Hal ini membuktikan bahwa sebuah server tidaklah harus memakai hardware yang mahal.

Dokumentasi Online Berbasis Web WikiMasih menggunakan buku sebagai media dokumentasi atau ingin berbagi informasi

dengan teman Anda melalui Internet? Dokumentasikan dengan mediawiki.

Zaky Abdurrachman

24-28_Utama_08_EDITARIE.indd 2424-28_Utama_08_EDITARIE.indd 24 6/30/2010 10:03:01 AM6/30/2010 10:03:01 AM

Page 25: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

UTAMA

www.infolinux.web.id INFOLINUX � 08/2010 25

INSTALASI PAKET PENDUKUNGSebelum Anda melakukan insta-lasi mediawiki, paket pendukung atau yang lebih dikenal dengan de-pendensi harus diinstalasi terlebih dahulu. Berikut adalah langkah-langkahnya:� Pertama, instalasi Linux, Apache,

MySQL, dan Php yang disingkat lamp, dengan perintah:$ sudo tasksel install lamp-

server

Pada pertengahan proses, Anda akan diminta untuk memasukkan password yang akan digunakan oleh root MySQL atau admin MySQL Anda.

� Instalasi juga paket php5, yang belum termasuk pada instalasi sebelumnya:$ sudo apt-get install php5 php5-

gd imagemagick

� Apabila semua proses instalasi berjalan lancar, cobalah untuk melakukan restart untuk Apache2 dengan perintah:$ sudo /etc/init.d/apache2

restart

� Restart juga service untuk MySQL server dengan perintah:$ sudo /etc/init.d/mysql restart

MEMBUAT DATABASEBuat database sebagai penyimpan data dokumentasi Anda, buka termi-nal Anda, dan ikutilah langkah pem-buatan database di bawah ini:� Masuk ke dalam database dengan

user root:$ mysql -u root -p

� Masukkan password root mysql yang sudah ditentukan pada tahap instalasi paket pendukung. Setelah masuk, ketik:>create database wikidb;

Perintah di atas akan membuat database dengan nama wikidb. Tekan ENTER, dan kemudian ketik lagi baris di bawah ini:>grant index, create, select,

insert, update, delete, alter,

lock tables on wikidb.* to

‘root’@’localhost’ identifi ed by

‘123456’;

Perintah di atas akan memberikan izin akses kepada user root dengan password 123456, untuk mengelola database wikidb. Setelah selesai, keluarlah dari MySQL dengan perintah quit:>quit;

INSTALASI MEDIAWIKISemua dependensi sudah terinstal dengan baik, sekarang waktunya instalasi mediawiki. Berikut adalah langkah-langkahnya:� Masuk ke dalam direktori /var/

www/: $ cd /var/www

� Download mediawiki dengan menggunakan wget:$ sudo wget -c http://download.

wikimedia.org/mediawiki/1.15/

mediawiki-1.15.4.tar.gz

� Lakukan ekstrak pada fi le media-wiki-1.15.4.tar.gz, dengan perin-

tah di bawah ini:$ sudo tar -xvf mediawiki-

1.15.4.tar.gz

� Ubah nama folder hasil ekstrak, supaya lebih mudah diingat men-jadi mediawiki:$ sudo mv mediawiki-1.15.4

mediawiki

� Masuk kedalam direktori media wiki dan ubahlah izin akses folder confi g:$ cd mediawiki

$ sudo chmod a+w confi g

� Akses http://ip_webserver/medi-awiki, klik “set up the wiki” un-tuk mulai konfi gurasi instalasi mediawiki. Kemudian, Anda akan melihat kolom-kolom yang harus Anda isikan sesuai dengan kon-fi gurasi yang diinginkan. Hal yang harus diisi, antara lain:� Wiki name: nama yang diguna-

kan sebagai judul wiki Anda.� Contact e-mail: alamat e-mail

admin wiki Anda.� Admin username: username

yang akan digunakan sebagai username admin wiki.

� Password: letaknya di bawah admin username, password log-in admin.

� Password confi rm: konfi rmasi password yang telah Anda ma-sukkan di kolom admin pass-word.

� Database name: nama database wiki yang sudah dibuat pada langkah buat database, dalam hal ini wikidb.

Halaman create account mediawiki. Halaman instalasi mediawiki.

24-28_Utama_08_EDITARIE.indd 2524-28_Utama_08_EDITARIE.indd 25 6/30/2010 10:03:12 AM6/30/2010 10:03:12 AM

Page 26: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX26

UTAMA� DB username: nama user yang

berhak mengelola database wiki (lihat proses pembuatan database di bagian grant), dalam hal ini root.

� DB password: password user yang mengelola database wikidb, dalam hal ini 123456.

� DB password confi rm: konfi rmasi password database sebelum nya di atas.

� Superuser account: klik kotak checklist untuk membuat super-user account.

� Superuser name: username superuser MySQL yang digunakan, dalam hal ini root.

� Superuser password: password superuser MySQL.

Selain kolom-kolom di atas, Anda dapat membiarkannya dalam posisi default. Setelah selesai dengan mengi si kolom tersebut, klik Install

Media Wiki!

� Selanjutnya, pindahkan fi le Lo-calSettings.php ke direktori /var/www/mediawiki/:$ mv /var/www/mediawiki/confi g/

LocalSettings.php /var/www/

mediawiki/

� Berikan izin akses terhadap fi le LocalSettings.php:$ sudo chmod 755 LocalSettings.

php

� Akses alamat http://ip_webserver/mediawiki/ dan Anda akan me-lihat halaman utama mediawiki yang baru saja diinstal.

MEMBUAT ACCOUNT USERTeman Anda ingin berpartisipasi dalam dokumentasi? Buatlah account baru dengan cara berikut ini.� Klik link Log in/create account

pada pojok kanan atas halaman utama mediawiki.

� Anda akan diarahkan ke hala-man login, klik link Create an account.

� Masukan username account baru, kemudian password, retype pass-word, e-mail, dan terakhir real name. Klik Create account.

� Jika berhasil, maka Anda akan

disambut dengan halaman wel-come.

PENGATURAN ADMINPengaturan admin dan user sebenar-nya sama saja, yang membedakan adalah group antara admin dan user biasa.� Login dengan username admin

pada halaman utama mediawiki.� Klik menu link my prefer-

ences pada bagian atas kanan mediawiki.

� Di situ akan tersedia banyak menu pengaturan. Menu User profi le Anda dapat memasukkan nama asli Anda, e-mail, signature seba gai identitas, jender atau jenis kelamin, bahasa yang digunakan, penggantian password, dan juga notifi kasi e-mail.

� Pada menu tab Skin, Anda dapat mengubah tampilan themes dari mediawiki.

� Menu tab Files berisi pengaturan ukuran batasan resolusi dan ukuran gambar atau thumbnails yang digunakan.

� Date and time berfungsi untuk melakukan pengaturan waktu, mulai dari format dan timezone yang digunakan di daerah Anda.

� Editing adalah pengaturan kolom editing yang Anda gunakan untuk mengisi dokumentasi, ada pengaturan ukuran kolom, dan pilihan fungsionalitas lainnya.

� Recent changes, menampilkan catatan log perubahan yang Anda

atau orang lain lakukan pada dokumentasi.

� Watchlist berfungsi untuk menampilkan informasi tentang dokumentasi yang sedang Anda pantau, dengan menggunakan fi tur watchlist.

� Search merupakan pengaturan pada menu searching dokumen-tasi yang akan dicari pada bagian mana saja, apakah hanya bagian main, di bagian kategori, atau yang lainnya.

� Misc adalah pengaturan peleng-kap, seperti pengaturan justify pada paragraf, autonumber, dan masih banyak lagi.

Jangan lupa, ketika Anda selesai melakukan konfi gurasi untuk ma sing- masing tab, klik tombol Save agar tersimpan. Untuk mengemba-likannya ke pengaturan default, klik Restore all default settings.

MENGEDIT HALAMAN MAIN PAGEHalaman main page adalah halaman muka mediawiki Anda yang akan berisi link-link menuju artikel atau discussion Anda.� Login sebagai admin dari halaman

utama.� Klik menu edit pada tab media-

wiki dan Anda akan melihat hal-aman editing main page untuk mengedit isi dari main page.

� Hapus semua isi default dari hala-man editing main page dan isikan

Halaman login user dan admin.

24-28_Utama_08_EDITARIE.indd 2624-28_Utama_08_EDITARIE.indd 26 6/30/2010 10:03:14 AM6/30/2010 10:03:14 AM

Page 27: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

UTAMA

www.infolinux.web.id INFOLINUX � 08/2010 27

konten yang hendak Anda masuk-kan pada main page, misalnya Selamat datang. Jika sudah, klik Save page.

� Anda dapat menampilkan link halaman page lainnya pada bagian main page. Caranya dengan me-masukkan link halaman page ke dalam isi konten main page. Beri-kut adalah contoh formatnya:[[Judul Page]]

Dengan membuat link ini, Anda dapat langsung mengakses page lainnya dari link tersebut.

� Selain page, kategori juga dapat ditampilkan pada halaman muka main page. Isikan baris berikut pada isi konten main page:[[Category:Nama Kategori]]

Sama halnya dengan judul page, Anda dapat melihat dokumentasi dari link kategori ini.

MEMBUAT PAGE BARUSelain main page, Anda dapat mem-buat halaman baru, misalnya Jadwal Acara. Ikuti cara di bawah ini untuk membuatnya:� Login sebagi admin dari halaman

utama.� Supaya mudah, buatlah link page

baru Anda, misalnya Jadwal Acara pada halaman main page. Klik tab edit pada main page.

� Pada editing main page, ketik baris berikut ini:[[jadwal acara]]

� Selanjutnya, klik tombol Save Page. Anda akan melihat link jadwal acara pada halaman main page.

� Klik link jadwal acara. Jika ingin langsung di isi, ketik isi pada kolom editing jadwal acara, kemudian klik Save Page.

� Untuk melihat semua page, klik menu Special Page pada kolom sebelah kiri mediawiki, di bagian toolbox.

� Pada bagian List of pages, klik All pages. Anda akan melihat page jadwal acara yang baru saja Anda buat.

� Cara lain mengakses page baru

Anda, dengan melakukan klik pada link page baru di halaman main page yang sudah Anda buat sebelumnya, dalam hal ini jadwal acara.

MEMBUAT HALAMAN DISKUSIAnda dapat membuat halaman diskusi untuk meletakkan artikel dokumentasi Anda. Halaman diskusi ini dapat Anda tampilkan pada hala-man page berupa link:� Login sebagai admin atau user

dari halaman utama.� Pilihlah judul page yang akan

diisikan dokumentasi, misalnya main page.

� Klik tab Discussion, Anda akan diarahkan ke halaman Editing Talk:Main Page.

� Isikan dokumentasi Anda pada kolom textarea yang sudah di-sediakan.

� Setelah selesai klik Save page, dan halaman diskusi Anda sudah ter-buat.

MEMBUAT KATEGORI Semua dokumentasi yang telah Anda buat dapat dikategorikan secara lebih khusus lagi. Dengan kategori, maka pencarian dokumentasi jadi lebih mudah.

Halaman preferences mediawiki.

Halaman utama mediawiki.

24-28_Utama_08_EDITARIE.indd 2724-28_Utama_08_EDITARIE.indd 27 6/30/2010 10:03:15 AM6/30/2010 10:03:15 AM

Page 28: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX28

UTAMA

� Pertama-tama, Anda ikuti cara pembuatan halaman diskusi pada langkah membuat halaman diskusi sebelumnya, sampai lang-kah keempat.

� Sebelum dilakukan penyimpanan, tambahkan kategori yang akan dimasukkan pada bagian paling bawah isi dokumentasi. Tambah-kan baris:[[Category:Perintah Dasar]]

Perintah Dasar adalah nama yang akan digunakan sebagai kategori dokumentasi Anda.

� Setelah menambahkan baris di atas, segera simpan dokumentasi Anda. Klik Save page.

� Kategori yang sudah terbuat dapat dilihat, klik menu Special pages dari bagian toolbox.

� Pada bagian List of pages, klik Categories. Anda akan melihat semua kategori yang ada, telah disesuaikan dengan abjad.

� Klik nama kategori untuk melihat dokumentasi yang ada di dalam kategori tersebut.

MENGGANTI SKIN/THEMESBosan dengan skin default, Anda dapat mengubahnya dari skin yang sudah disertakan.� Login sebagai admin dari halaman

utama mediawiki.

� Klik menu My preferences, kemu-dian pilih tab Skin.

� Pilih skin yang Anda inginkan, dengan mengeklik radio button skin. Klik Save.

� Pada dasarnya, yang berubah hanya skin user saja. Untuk mengu-bah skin sebagai halaman default, edit fi le LocalSettings.php pada folder /var/www/mediawiki:$ sudo vim /var/www/mediawiki/

LocalSettings.php

� Edit nilai dari bagian $wgDe-

faultSkin, sesuai dengan nama skin yang Anda gunakan. Misal-nya nama skin Anda gumaxdd, edit $wgDefaultSkin = ‘mono-book’; menjadi $wgDefaultSkin = ‘gumaxdd’;

� Jika sudah selesai, simpan fi le LocalSettings.php, dan refresh browser Anda.

MENAMBAHKAN SKIN/THEMESThemes yang digunakan tidak ter-gantung dari skin yang sudah diser-takan saja, Anda dapat menambah-kannya.� Langkah awal, coba download

themes baru Anda di alamat http://mediawiki2u.com/.

� Setelah di-download, letakkan fi le skin ke dalam direktori skins di /

var/www/mediawiki/:$ sudo cp nama_skin.tar.gz /var/

www/mediawiki/skins/

� Masuk ke dalam folder /var/www/mediawiki/skins/ dan esktrak fi le nama_skin.tar.gz:$ cd /var/www/mediawiki/skins/

$ sudo tar-xvf nama_skin.tar.gz

� Biasanya, akan terbentuk folder dengan nama nama_skin. Masuk ke folder tersebut dan keluarkan isinya, yang biasanya terdiri dari satu folder dan satu fi le php:$ cd nama_skin

$ mv * /var/www/mediawiki/skins/

� Setelah isi dari folder nama_skin dipindahkan maka Anda dapat melakukan pengaturan skin, se-per ti pada bagian Mengganti skin/themes.

IZIN AKSES PAGE DAN DISKUSIPada mediawiki, page dan diskusi Anda dapat diedit oleh orang lain. Dalam hal ini, user yang sudah terdaftar ataupun yang belum ter-daftar.� Login sebagai admin atau user,

kemudian pilihlah diskusi atau page yang ingin Anda berikan izin akses.

� Klik link [edit] pada bagian kanan judul diskusi atau page.

� Klik tab Protect untuk menentu-kan proteksi yang digunakan.

� Pada bagian Edit, jika Anda ingin memberikan izin akses edit semua untuk semua orang, baik yang terdaftar atau tidak, pilih Allow

all users. Jika ingin memblok izin akses edit untuk user baru dan tidak terdaftar, pilih Block

new and unregitered user, atau administrator only untuk tidak mengizinkan siapapun mengedit page, kecuali admin.

� Jika ingin menentukan masa ber-laku waktu, pilih pada menu drop-down Expires, dimana izin akses akan kembali normal (Allow all users) ketika waktu yang ditentu-kan habis.

� Klik Save Page, jika sudah selesai memberikan izin akses.

Menampilkan gambar di main page.

24-28_Utama_08_EDITARIE.indd 2824-28_Utama_08_EDITARIE.indd 28 6/30/2010 10:03:17 AM6/30/2010 10:03:17 AM

Page 29: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

UTAMA

www.infolinux.web.id INFOLINUX � 08/2010 29

UPLOAD GAMBARPada mediawiki, Anda juga dapat melakukan upload gambar. Berikut adalah langkah-langkahnya:� Anda harus membuat direktori

images pada folder mediawiki dapat di-writeable:$ sudo chmod 777 /var/www/

mediawiki/images

� Edit beberapa string pada fi le LocalSettings.php:$ sudo vim /var/www/mediawiki/

LocalSettings.php

Cari bagian string $wgEnableU-

ploads dan ubah nilainya dari false menjadi true, dan simpan fi le tersebut:$wgEnableUploads = true;

� Tentukan format yang diizinkan pada fi le DefaultSettings.php:$ sudo vim /var/www/mediawiki/

includes/DefaultSettings.php

Tambahkan format gambar pada bagian $wgFileExtensions, men-jadi di bawah ini:$wgFileExtensions = array( ‘png’,

‘gif’, ‘jpg’, ‘jpeg’, ‘doc’,

‘xls’, ‘pdf’ );

� Ubah juga bagian $wgAllow-

CopyUploads menjadi true:$wgAllowCopyUploads = true;

Setelah selesai, simpan fi le De-faultSettings.php

� Kembali ke halaman main page, klik edit untuk mengisi link up-load gambar.

� Tulis baris berikut untuk meng-upload gambar pada bagian edit-ing main page:[[image:wajah.jpg]]

� Klik Save Page untuk menyimpan editing.

� Pada halaman muka main page, klik link File:wajah.jpg.

� Di halaman upload fi le, klik Choose File dan browse gambar yang Anda akan upload.

� Isi Destination fi lename sebagai nama gambar nantinya, misalnya wajah.jpg.

� Summary adalah keterangan gam-bar. Isi jika Anda ingin memberi-kan keterangan gambar.

� Klik Upload fi le, jika Anda sudah yakin dengan gambar yang akan

di-upload. Tunggu hingga proses selesai.

� Apabila gambar yang Anda sudah nampak pada halaman selanjut-nya, berarti Anda sudah berhasil melakukan upload.

� Untuk menentukan posisi gambar, Anda dapat mengedit kembali ba-gian image dengan baris berikut:[[image:wajah.jpg|center|thumb|c

aption]]

Baris di atas menjelaskan bahwa gambar wajah.jpg akan berada di po-sisi tengah halaman main page, ber-bentuk thumbnail, dan juga ada infor-masi caption dari gambar tersebut.

MENGUBAH LOGOBerbeda dengan versi sebelumnya, mengganti gambar logo pada versi terbaru sangatlah mudah. � Persiapkan gambar logo, ukuran

yang sesuai adalah sekitar 135 x 135 pixel. Letakkan gambar logo tersebut pada folder /var/www/mediawiki/skins/common/images.

� Edit fi le Setup.php yang ada di dalam folder /var/www/mediawi-ki/includes:$ sudo vim /var/www/mediawiki/

includes/Setup.php.

Ubah bagian berikut:$wgLogo = “$wgStylePath/common/

images/wiki.png”;

menjadi:$wgLogo = “$wgStylePath/common/

images/logo_Anda.png”;

� Simpan fi le Setup.php, refresh halaman mediawiki Anda, dan logo sudah terganti. Jika belum, coba perhatikan lokasi gambar dan nama gambar harus sesuai.

MENAMBAHKAN EKSTENSIEkstensi merupakan sebuah script pelengkap pada mediawiki. Dengan ekstensi, Anda bisa mendapatkan sebuah fungsi yang tidak dapat dilakukan mediawiki.� Download ekstensi yang Anda

inginkan, kemudian letakkan fi le hasil download tersebut ke dalam folder /var/www/mediawiki/ex-tensions.

� Jika fi le ekstensi dalam bentuk terkompresi, ekstrak fi le tersebut di dalam folder extension. Dalam hal ini, ekstensi yang digunakan adalah inputbox:$ unzip inputbox.zip

� Tambahkan baris berikut kedalam fi le LocalSettings.php pada bagian terbawah:require_once($IP.’/extensions/

inputbox/InputBox.php’);

Simpan fi le LocalSettings.php, jika sudah selesai.

� Berikan izin akses pada semua fi le yang ada di dalam folder input-box:$ sudo chmod –R o+x /var/www/

mediawiki/extensions/inputbox

� Inputbox adalah ekstensi yang digunakan untuk membuat form HTML. Untuk mencobanya, den-gan memasukkan tag HTML pada main page.

� Klik edit pada halaman main page, tunggu hingga halaman editing main page muncul.

� Misalnya di sini, Anda ingin mem-buat form pencarian atau search, masukkan baris berikut pada kolom editing main page:<inputbox>

type=search

width=42

buttonlabel=Go

searchbuttonlabel=Search

break=no

</inputbox>

� Jika sudah selesai, simpanlah dengan mengklik tombol Save page.

� Anda akan melihat sebuah form search pada halaman main page. Informasi penggunaan inputbox dapat Anda lihat di alamat http://www.mediawiki.org/wiki/Exten-sion:Inputbox.

Semua ekstensi akan diletak-kan di dalam folder extensions dan Anda juga harus memasukkan baris require_once atau include pada fi le LocalSettings.php, semua tergan-tung dari masing-masing instalasi ekstensi.�

Zaky Abdurrachman [[email protected]]

24-28_Utama_08_EDITARIE.indd 2924-28_Utama_08_EDITARIE.indd 29 6/30/2010 10:03:19 AM6/30/2010 10:03:19 AM

Page 30: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX30

KOMUNITASBali BALINUX Situs: http://bali.linux.or.id

Bandung KLUB Situs: http://bandung.linux.or.id

BatamBLUG Situs: http://batam.linux.or.id

Bogor GRUB Situs: http://bogor.linux.or.id

Gorontalo GoLA Situs: http://gorontalo.linux.or.id

Jakarta KPLI Jakarta Situs: http://jakarta.linux.or.id

Madiun KPLI Madiun Situs: http://madiun.linux.or.id

Makassar LUGU Situs: http://makassar.linux.or.id

MalangMaling (MAlang LINux user Group)Situs: http://malang.linux.or.id

Manado LUG Manado Situs: http://manado.linux.or.id

Medan KPLI Medan Situs: http://medanlinux.com

Padang KPLI PadangSitus: http://padang.linux.or.id

PalembangMINUXSitus: http://palembang.linux.or.id

Pekanbaru KPLI PekanbaruSitus: http://pekanbaru.linux.or.id

SemarangATLASSitus: http://jateng.linux.or.id

SerangKPLI SerangSitus: http://serang.linux.or.id

SidoarjoKPLI SidoarjoSitus: http://sidoarjo.linux.or.id

SoloKPLI SoloSitus: http://solo.linux.or.id

Surabaya KLAS Situs: http://surabaya.linux.or.id

Surabaya KPLITS Situs: http://its-sby.linux.or.id

TangerangKPLI TangerangSitus: http://tangerang.linux.or.id

Yogyakarta KPLI Yogyakarta Situs: http://jogja.linux.or.id

Daftar KPLI yang Diketahui Saat Ini

Komunitas Ubuntu Jakarta dan sekitarnya alias UMet (Ubuntuers Metro) mengada-kan pertemuan atau “kopi darat” kedua

di Vila Dago Pamulang H22/2 Tangerang Selatan, Minggu 27 Juni 2010. Kopdar pertama diadakan di Depok, 16 Mei 2010. Peserta kopdar kedua ini berasal dari Tanah Abang, Citeureup, Bogor, dan lokasi lain di seputar Jabodetabek. Bahkan ada Ubuntuer dari Medan yang sedang berada di Jakarta, turut hadir dalam kopdar kedua.

Menurut Ketua UMet, Satriyana, kopdar dimulai dengan laporan evaluasi kegiatan selama sebulan terakhir, dan dilanjutkan sesi berbagi ilmu dan pengalaman. UMet telah menjalin kerja sama dengan berbagai pihak, tidak hanya yang bergerak di bidang komputer, tapi juga pengusaha fi lter air dan digital printing.

Pada kopdar kedua, pemateri asal Bo-gor, Egi Adhitia, menyajikan beragam ap-likasi sains dan pendidikan, seperti Marble dan Stellarium. Pemateri asal Citeureup,

Ade Mohammad, menyajikan tip-tip mem-percantik desktop Ubuntu dengan Compiz, Conky, Screenlets, Cairo-Dock, dan gNome-shell. Pemateri asal Pamulang yang sekali-gus tuan rumah, Satriyana, mendemokan penggunaan Virtualbox untuk remastering Sabily Manarat Beta dengan remastersys.

UMet yang diketuai Satriyana, dengan penasihat, Suparno Midi, sekretaris, Aryan-

dhi, bendahara, Aldebaran Chandra, bidang oprekan, Egi Adhitia, dan humas, Muhidin

Saimin dan Rangga Febrian ini memiliki si-tus http://ubuntumetro.okesiip.com.�RUS

IGOS Center Depok mengadakan dua semi-nar tentang Linux dan Free/Open Source Software selama Mei-Juni 2010 yang lalu,

yakni “Gala Ngoprek Komunitas IT Open Source” di Depok, Minggu, 23 Mei 2010, dan “Free/Open Source Software untuk Pendi-dikan” di kampus UBL (Universitas Budi Luhur) Jakarta, Kamis 17 Juni 2010.

Acara “Gala Ngoprek” yang baru per-tama diselenggarakan di sebuah mall di De-pok itu, berlangsung sejak pukul 9.30 hingga 18.00 WIB. Panitia penyelenggara “Gala Ngoprek” merupakan gabungan dari be-berapa lembaga pendidikan di Depok, seper-ti LP3T-NF, BSI, dan Poltek Tugu, dengan koordinator IGOS Center Depok.

Hadir sebagai narasumber “Gala Ngop-rek”, antara lain Rusmanto dari InfoLINUX, Alex Budiyanto dari Sun/Oracle Indonesia, Nasirudin dari Eazy Smart Solusindo, Gita

Surya Wijaya dari Terra mewakili Axioo dan Rainer, Agus Setiawan dari komunitas Open Solaris, Bonnie Kurniawan dari ko-

munitas Zimbra, Miftahudin dari komunitas Blender, dan Egi Aditya serta Dedy Efendi

dari komunitas Linux.Sedangkan panitia seminar Free/Open

Source Software di kampus UBL hanya menghadirkan pembicara tunggal, Rusmanto dari InfoLINUX, untuk mengenalkan konsep pengembangan Linux dan FOSS lainnya ke-pada para mahasiswa jurusan TI di kampus tersebut. Seminar ini diselingi dengan demo berbagai program di Linux dan pemutaran salah satu fi lm “Open Source”.�RUS

IGOS Center Depok Adakan Seminar

UMet Adakan Kopi Darat

Suasana seminar di Universitas Budi Luhur Jakarta.

Sebagian penggiat UMet foto bersama saat kopdar.

42_Komunitas_08_EDITARIE_ok.indd 3042_Komunitas_08_EDITARIE_ok.indd 30 6/30/2010 2:05:17 PM6/30/2010 2:05:17 PM

Page 31: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

gsd (IL0030205)+nf 1 (IL0060336).indd 1gsd (IL0030205)+nf 1 (IL0060336).indd 1 6/30/2010 3:03:09 PM6/30/2010 3:03:09 PM

Page 32: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX32

PRAKTIK INSTAN

Panduan Gambar

File Server Berbasis NexentaStor

Proses Instalasi NexentaStor Berikut tahapan instalasi distro NexentaStor: 1. Pada halaman awal, pilih menu Install NexentaStor

Community Edition untuk memulai proses instalasi. Tunggu beberapa saat hingga installer NexentaStor Community mendeteksi keseluruhan perangkat keras.

3. Tahap awal dari installer NexentaStor Community adalah halaman Software License. Klik I Agree.

4. Berikutnya adalah halaman Selamat Datang. Klik OK untuk melanjutkan ke tahap selanjutnya (Gambar 1).

5. Pada halaman Fresh Installation, pilih harddisk yang akan dijadikan sebagai tempat instalasi NexentaStor. Jika berniat melakukan proses mirroring, Anda dapat memilih dua atau lebih harddisk yang memiliki ukur-

an yang sama. Setelah itu, klik Select (Gambar 2).6. Setelah memilih harddisk yang akan dijadikan tempat

instalasi, berikutnya akan tampil halaman konfi rmasi yang menyatakan apakah Anda benar-benar ingin melakukan proses partisi kembali, pada harddisk yang telah dipilih. Jika sudah yakin dan ingin berlanjut ke tahap selanjutnya, klik Yes.

7. Proses instalasi akan segera berlangsung (Gambar 3). Tunggu beberapa saat hingga proses instalasi selesai.

Proses Registrasi Kali pertama setelah proses instalasi selesai, Anda perlu melakukan proses registrasi terlebih dahulu. Berikut se-jumlah tahapannya:

Halaman selamat datang NexentaStor.

1

Pemilihan harddisk yang akan digunakan sebagai tempat instalasi.

2

Proses instalasi NexentaStor sedang berlangsung.

3

NexentaStor adalah distro enterprise yang ditujukan untuk solusi penyimpanan. Distro ini dibuat berbasiskan Nexenta Core dan berbasis filesystem ZFS. Berikut tahap penggunaan NexentaStor.

Catat Machine Signature untuk memperoleh Registration Key.

4

Masukkan Registration Key yang sudah diperoleh dari hasil registrasi.

5

Memilih IP statik/dinamik untuk perangkat jaringan.

6

32-35_Praktik Instan_08_EDITARIE.indd 3232-35_Praktik Instan_08_EDITARIE.indd 32 6/30/2010 5:31:33 PM6/30/2010 5:31:33 PM

Page 33: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

PRAKTIK INSTAN

www.infolinux.web.id INFOLINUX � 08/2010 33

1. Pada menu Grub, pilih opsi NexentaStor Appliance [Auto-detect 32-bit/64-bit]. Tekan Enter.

2. Berikutnya akan tampil halaman Software License. Pilih I Agree, untuk berlanjut ke tahap selanjutnya.

3. Selanjutnya adalah halaman untuk memasukkan Regis tration Key. Untuk mendapatkan registration key, Anda dapat mengunjungi url http://www.nex-enta.com/register-eval, dan masukan Machine Signa-ture yang dapat dilihat pada bagian Product registra-tion (Gambar 4). Setelah mendapatkan registration key yang dikirimkan pada e-mail Anda, masukan key tersebut pada opsi Registration Key yang terdapat di bagian Product registration (Gambar 5).

4. Tahap selanjutnya adalah konfi gurasi jaringan. Pada tahap ini, Anda dapat memasukan alamat IP, Sub-net Mask, Default Gateway, dan DNS. Anda juga dapat memilih untuk melakukan konfi gurasi jaringan dengan menggunakan IP static atau DHCP. Pilih kon-disi yang Anda inginkan (Gambar 6).

5. Pada pemilihan protocol Web GUI, Anda dapat me-milih apakah ingin menggunakan protocol HTTP atau HTTPS (Gambar 7). Selanjutnya, tentukan juga port yang ingin digunakan (Gambar 8).

Konfigurasi Awal Setelah tahapan instalasi selesai, berikutnya terdapat dua tahapan konfi gurasi NexentaStor yang akan kita lakukan via web browser.

Tahap #1: Konfigurasi Dasar 1. Pada web browser, masukkan alamat berikut pada

kotak url: http://<Alamat-IP-NexentaStor>:<port-yang-digunakan>. Pada contoh ini, penulis memasuk-kan alamat http://192.168.1.12:2000.

2. Tahap #1 adalah konfi gurasi dasar. Di sini, Anda dapat memilih/mengisikan Host Name, Domain Name, Time Zone, NTP Server, Keyboard Layout, dan Lan-guage, sesuai dengan kebutuhan Anda (Gambar 9).

3. Tahap #2 adalah menentukan password admin. Di sini Anda dapat menentukan password root dan password admin yang ingin digunakan. Nantinya, user root di-gunakan untuk administrasi sistem, dan user admin lebih banyak digunakan untuk manajemen Nexenta-Stor dari halaman Web/CLI. (Gambar 10).

4. Tahap #3 adalah informasi notifi kasi. Masukkan in-formasi server SMTP yang Anda miliki, untuk kebu-tuhan pengiriman e-mail kebutuhan notifi kasi sistem (Gambar 11).

5. Tahap #4 adalah penyimpanan konfi gurasi. Pada hala-man ini, Anda dapat melihat rangkuman dari proses konfi gurasi yang telah dilakukan.

Tahap #2: Konfigurasi Jaringan dan Media Penyimpanan 1. Tahap #1 adalah konfi gurasi kartu jaringan. Pada

halaman ini, Anda dapat menambahkan kartu jari-ngan, melakukan konfi gurasi IP, menentukan default gateway, dan menentukan DNS server yang akan di-

Pilihan Web GUI protocol yang ingin digunakan.

7

Tentukan default port Web GUI protocol.

8

Konfigurasi dasar NexentaStor.

9

Isikan password untuk user root dan admin.

10

Definisikasi SMTP server untuk kebutuhan sistem notifikasi.

11

Konfigurasi perangkat jaringan.

12

32-35_Praktik Instan_08_EDITARIE.indd 3332-35_Praktik Instan_08_EDITARIE.indd 33 6/30/2010 5:31:39 PM6/30/2010 5:31:39 PM

Page 34: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX34

PRAKTIK INSTAN

Panduan Gambar

Daftar user yang telah dibuat dari NMV.

14

Klik Create untuk membuat volume yang baru.

15

Proses pembuatan data volume yang baru.

16

Data volume yang telah berhasil dibuat.

17

Hasil perubahan data volume setelah ditambahkan harddisk.

18

Halaman NMV login.

13

gunakan. Setelah selesai melakukan konfi gurasi, klik Next Step >> (Gambar 12).

2. Tahap #2 hingga Tahap #5, biarkan saja pada pilihan default. Nantinya, proses konfi gurasi ini akan kita lakukan secara manual. Terakhir, Anda dapat masuk ke halaman login Nexenta Management View (NMV) untuk memulai proses konfi gurasi (Gambar 13).

Nexenta Management View (NMV) Nexenta Management View (NMV) merupakan halaman manajemen berbasis web untuk mempermudah konfi gu-rasi NexentaStor. Berikut sejumlah tip penggunaannya.

Pembuatan Account � Dari menu NMV, klik menu Settings | User. � Pada menu Users, klik New User. � Pada halaman Create New Appliance User, isikan opsi

user name, password, nama group, dan informasi user yang ingin dibuat. Setelah selesai, klik Create New.

� Pembuatan user berhasil dilakukan. Lakukan hal se-rupa untuk membuat user yang lain. (Gambar 14).

Pembuatan Data Volume � Klik menu Data Management, lalu klik Data Sets.

Pada halaman Volumes, jika Anda belum pernah membuat data volume, maka akan terdapat informasi bahwa belum tersedia volume sama sekali. Klik link

create untuk membuat sebuah data volume yang baru. (Gambar 15).

� Pada halaman pembuatan data volume, Anda dapat membuat volume dari harddisk yang tersedia pada sistem Anda. Beragam opsi yang berkaitan dengan pembuatan data volume tersedia di sini. Mulai dari opsi mirroring, RAID-Z1 (single parity), RAID-Z2 (double parity), dan RAID-Z3 (triple parity). Dalam contoh ini, penulis memilih satu dari dua harddisk yang tersedia, lalu mengklik button Add to pool >>. Pada halaman Volume Properties, penulis mengisikan mypool pada opsi Volume Properties, dan memilih On pada opsi Deduplication. Setelah konfi gurasi dirasa cukup, klik Create Volume (Gambar 16).

� Kini pada halaman Volume, sudah tersedia sebuah data volume yang telah Anda buat. (Gambar 17).

� Jika suatu saat data volume yang ada dirasa sudah ti-dak mencukupi untuk penyimpanan data, Anda dapat menambah kapasitas data volume yang ada dengan mengklik button + yang terdapat pada opsi Grow.

� Pada halaman Grow Volume, pilih harddisk yang ingin Anda tambahkan ke dalam data volume yang telah tersedia, lalu klik Grow Volume.

� Saat kembali ke halaman utama Volumes, Anda dapat melihat kalau kapasitas volume yang baru ditambah, kini kapasitasnya bertambah sesuai ukuran harddisk yang ditambah (Gambar 18).

32-35_Praktik Instan_08_EDITARIE.indd 3432-35_Praktik Instan_08_EDITARIE.indd 34 6/30/2010 5:31:44 PM6/30/2010 5:31:44 PM

Page 35: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

PRAKTIK INSTAN

www.infolinux.web.id INFOLINUX � 08/2010 35

Halaman konfirmasi sebelum dapat mengakses share folder.

23

Share folder berhasil diakses.

24

Isikan nama group yang diizinkan untuk mengakses share folder.

22

Enable share folder dengan protocol CIFS.

20

Memberi kebijakan kepada group/user untuk mengakses share folder.

21

Proses pembuatan folder baru.

19

Pembuatan Folder � Masih dari menu Data Management | Data Sets, ber-

alih ke menu Folder, lalu klik Show. Jika ini adalah kali pertama Anda masuk ke menu ini, maka kemung-kinan besar tidak ada folder yang pernah dibuat. Untuk membuat folder baru, klik tombol here untuk membuat folder yang baru.

� Pada halaman Create New Folder, isikan nama folder yang diinginkan pada isian Folder Name (jangan menggunakan spasi), deskripsinya, dan sejumlah opsi lainnya. Dalam contoh ini, opsi Deduplication diak-tifkan menjadi On (Gambar 19).

� Saat kembali ke menu Folder, kini sudah terdapat nama Folder yang telah Anda buat.

Share Folder via Samba � Pada halaman utama folder, pilih folder yang ingin

Anda share. Setelah itu, beri tanda centang pada opsi CIFS yang terdapat pada folder tersebut. Saat tampil kotak konfi rmasi apakah Anda ingin meng-en-able CIFS share untuk folder bersangkutan? Klik OK (Gambar 20).

� Agar user dapat menulis folder tersebut, kita akan mengubah permission folder share tersebut. Klik pada link nama folder share bersangkutan. Tak berapa lama akan tampil halaman EDIT FOLDER: nama_folder_share. Dalam contoh ini, untuk mempermudah penulis memberi permission kepada seluruh user yang

terdapat pada satu group, penulis mengklik Add Per-missons for Group (Gambar 21).

� Pada halaman CREATE NEW ACL ENTITY: nama_folder_share, isikan nama group pada opsi UNIX/LDAP Group. Dalam contoh ini karena group yang ingin diberikan permission adalah group staff, maka penulis isikan staff. Beri juga tanda centang pada opsi Permission to delete a fi le within a directory dan Per-mission to delete the fi le. Setelah itu, klik Add New Group (Gambar 22).

� Proses pembuatan share folder selesai dilakukan.

Uji Akses Share Folder� Buka aplikasi Nautillus File Manager. Dari halaman

Nautillus, ketikan smb://<alamat-ip-server>/. Seba-gai contoh di sini: smb://192.168.1.12. Saat tampil folder yang telah di-share, double klik folder terse-but, maka akan tampil kotak konfi rmasi. Masukkan dengan username, domains, dan password bersangkut-an, setelah itu klik Connect. (Gambar 23).

� Kini, Anda dapat saling berbagi fi le/folder pada share folder yang telah dibuat. (Gambar 24).

Demikian penjelasan singkat mengenai NexentarStor. Informasi lebih lengkap mengenai penggunaan distro ini, dapat ditemukan dalam fi le NexentaStor-UserGuide.pdf dan NexentaStor-QuickStart.pdf.�

Supriyanto [[email protected]]

32-35_Praktik Instan_08_EDITARIE.indd 3532-35_Praktik Instan_08_EDITARIE.indd 35 6/30/2010 5:32:02 PM6/30/2010 5:32:02 PM

Page 36: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX36

NETADMIN

Implementasi Otentikasi Squid pada Mode Transparent Proxy

Membuat script-script phpLangkah selanjutnya adalah membuat beberapa script php yang diantaranya adalah rewrite.php, index.php, login.php dan logout.php. Isi dari fi le script php tersebut sebagai berikut:� File rewrite.php adalah fi le utama

yang akan memproses url request yang diterima dari squid melalui standard input. Url request yang diterima oleh rewrite.php berupa string single line yang memiliki format terdiri dari:� Request-URI� Client IP address and fully

qualifi ed domain name� User’s name, via either RFC

1413 ident or proxy authentica-tion

� HTTP request method

Contoh url request:http://www.contoh.com/index.html 192.168.1.3/user.host.name henry GET

Script rewrite.php harus meng-hasilkan outout berupa string single line yang menu njukkan sebuah Re-quest-URI dan diikuti sebuah baris baru seperti berikut ini:http://www.contoh.com/index.html

Untuk itu buatlah script rewrite.php dengan isi fi le sebagai berikut:#!/usr/bin/php

<?php

$con=mysql_connect(“localhost”,”root

”,”kunci”);

$db=mysql_selectdb(“capo”);

$temp = array();

while ( $input = fgets(STDIN) ) {

$temp = split(‘ ‘, $input);

$ips = split(‘/’,$temp[1]);

$ip = $ips[0];

$uri=$temp[0];

$sql=”SELECT count(*) FROM logon

WHERE ip=’$ip’”;

$q=mysql_query($sql);

$data= mysql_fetch_row($q);

if ($data[0][0] >= 1)

{

$output =

$temp[0].”\n”;

}

else {

$output = “302:

http://192.168.1.1/capo/index.

php?uri=$uri\n”;

}

echo $output;

}

� File index.php, adalah script login form, dengan isi fi le sebagai beri-kut:<html>

<head>

<title> Login form </title>

</head>

<body>

<table bgcolor=’#ffffff’

border=’0’ cellspacing=’0’

cellpadding=’0’

width=’100%’><tr><td align=’cent

er’><center><img src=’logo.png’

width=’340’ height=’111’ /><br/>

<br>

<table width=45%><tr><td

bgcolor=’#dcdcdc’

align=’center’><font size=4

face=arial color=blue><b>Research

And Development Division<br></

td></tr><tr></tr><tr> <td

align=’center’>

<div style=’border:1px dashed

red;margin-top:1em;background:

lightyellow’>

<font color=blue><b>Captive

Portal - Login<b></b>

</td>

<table width= align=’center’

cellpadding=3 cellspacing=3

border=0>

<form action=login.php

method=POST>

<input type=”hidden”

name=”uri” value=”<?php echo

$_GET[‘uri’];?>”>

<center>

<tr>

<td width=30% >Username</

td>

<td width=3>:</td>

<td><input type=text

name=username maxlength=100

size=10></td>

</tr>

<tr>

<td width=30% >Password</

Pada artikel bagian pertama, sudah dibahas tahap konfigurasi gateway,

konfigurasi squid transparent proxy, dan pengaturan database. Pada bagian

kedua ini, akan dilanjutkan dengan pembuatan skrip php untuk implementasi

otentikasi squid pada mode transparent proxy.

Bagian 2 dari 2 Tulisan

36_NetAdmin_08_Bagian2_EDIT-SUPRI.indd 3636_NetAdmin_08_Bagian2_EDIT-SUPRI.indd 36 6/30/2010 10:53:06 AM6/30/2010 10:53:06 AM

Page 37: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

NETADMIN

www.infolinux.web.id INFOLINUX � 08/2010 37

seperti berikut ini:url_rewrite_program /usr/lib/squid/

rewrite.php

url_rewrite_children 10

Setelah itu Anda dapat mengak-tifkan squid seperti berikut ini:# service squid start

atau:# /etc/init.d/squid start

dan untuk memungkinkan user login terlebih dahulu melalui hala-man login yang telah dibuat maka service http harus diaktifkan juga, lakukan perintah berikut:# service httpd start

atau# /etc/init.d/httpd start

Membuat jadwal tugas menghapus entri tabel logonAgar pada hari berikutnya klien harus login lagi untuk dapat mengakses web maka buatlah jadwal tugas yang akan selalu menghapus seluruh entri pada tabel logon setiap hari pada jam 01:05, untuk itu gunakan perintah ‘crontab -e’ kemudian buat jadwal tugas seperti berikut ini:5 1 * * * mysql -u root -pkunci

capo -e “delete from logon”

Sekian pembahasan mengenai otentikasi squid pada mode trans-parent proxy. Selamat mencoba!�

Henry Saptono [[email protected]]

td>

<td width=3

align=center>:</td>

<td><input type=password

name=password maxlength=100

size=10></td>

</tr>

<tr>

<td width=100%

align=center colspan=3><input

type=submit class=button

value=Login></td>

</tr>

</form>

</table>

</body>

</html>

� File login.php, fi le ini akan mem-verifi kasi user dan password yang disuplai pada form login. Isi fi le login.php seperti berikut ini:<?

$con=mysql_connect(“localhost”,”r

oot”,”kunci”);

$db=mysql_selectdb(“capo”);

$username = trim($_

POST[username]);

$password = trim($_

POST[password]);

$uri = trim($_POST[uri]);

session_start();

if ($_POST[username] && $_

POST[password])

{

$sql=”select 1 from user

where username=’$username’ and

password=md5(‘$password’)”;

$q=mysql_query($sql);

$data=mysql_fetch_

row($q);

if ($data[0][0]==1)

{

# ...

# ...

# Isi fi le skrip login.php

# selangkapnya, dapat ditemukan

# dalam ekstra DVD InfoLINUX

# edisi ini, dalam folder

# “DVD_DL-IL07/2010/RUBRIK/

# netadmin”

# ...

# ...

� File logout.php, isi dari fi le logout.php adalah seperti berikut ini:<?php

$con=mysql_connect(“localhost”,”r

oot”,”kunci”);

$db=mysql_selectdb(“capo”);

session_start();

$ip=$_SERVER[“REMOTE_ADDR”];

$sql=”DELETE FROM logon WHERE

ip=’$ip’”;

mysql_query($sql);

session_destroy();

echo “Anda telah berhasil

logout maka akses internet

berakhir, <br> jika Anda ingin

mengakses internet silahkan login

dahulu, klik di <a href=’index.

html’>sini</a>”;

?>

File rewrite.php selanjutnya disa-lin kedalam direktori /usr/lib/squid, sedangkan fi le fi le index.php, login.php dan logout.php disalin kedalam direktori penyimpanan dokumen web (DocumentRoot).

Mendefinsikan url_rewrite_programLangkah terakhir adalah mendefi nsikan url rewerite program pada squid dimana nama program rewirte nya adalah rewrite.php. Untuk itu Anda harus mengedit fi le /etc/squid/squid.conf dan aturlah parameter url_rewrite_program

Gambar 1. Halaman login otentikasi squid.

36_NetAdmin_08_Bagian2_EDIT-SUPRI.indd 3736_NetAdmin_08_Bagian2_EDIT-SUPRI.indd 37 6/30/2010 10:53:14 AM6/30/2010 10:53:14 AM

Page 38: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX38

WARNUX

DKI – Jakarta � Alcatraz, Kelapa Dua, Kebon Jeruk, Jakarta Barat� Dexternet, Jl. Meruya Utara No. 33, Jakarta Barat� Home.Net, Meruya, Jakarta Barat� Awaludin II, TanahAbang, Jakarta Pusat� Garasi.Net, Jl. Taruna Raya No. 31, Jakarta Pusat� Muara Info, Jl. Kramat Jaya Baru Blok G.V No. 476

Johar Baru, Jakarta Pusat� ComNet, Petukangan, Jakarta Selatan� Flash.Net, Warung Buncit, Jakarta Selatan� Kazenet, Lebak Bulus, Jakarta Selatan� M-Net Open Source Internet, Jl. M. Kavling No.3 RT

11/13, Kebon Baru, Jakarta Selatan� NixNuxNet, Jl. Nangka No. 6 RT 2/5, Tanjung Barat,

Jakarta Selatan� Q-Net, Jl. Raya Lenteng Agung, Gardu (Seberang UP),

Jakarta Selatan � Simpul, Mampang, Jakarta Selatan� Tido’s.Net, Kebagusan, Jakarta Selatan � Warnet USS, Jl. Raya Pasar Minggu No.42 Durentiga,

Jakarta Selatan� AANet, Condet, Jakarta Timur� Prima.Net, Kel. Makassar, Jakarta Timur � WarnetKoe, Pondok Kopi, Jakarta Timur � Fabian.Net, Latumeten II, Jakarta Utara� AANet, Plumpang, Tanjung Priok, Jakarta Utara� Kawan Setia, Jl. Ganggeng Raya No.2a (depan Polsek)

Tanjung Priok, Jakarta Utara

Jawa Barat dan Banten� Warnet Nidar, JL. Tentara Pelajar No. 19A, Banjar� GBM Net, Jl. Babakan Loa No. 57 Cimahi, Depan

Politeknik Gizi Bandung� HeroesNet, Jl. Borobudur Ruko 3C, Cibaduyut, Bandung� Amsterdam Internet Cafe, Jl. Raya Kodau (samping

Alfamaret), Jatirahayu, Pondok Melati, Bekasi� Deja Vu Internet Cafe, Jl. Raya Hankam No. 92-94

Pondok Gede, Bekasi� Mynett, Jl. Nangka Raya No. 3D Perumnas I Kranji,

Bekasi� Taz@net, Pondok Surya Mandala Blok P No. 7 Bekasi

Selatan, Bekasi� Data Prima Comp, Cileungsi, Bekasi� Globalnet, Jl. Jababeka Raya Blok B No. 23 Belakang

Ruko BCA, Cikarang, Bekasi� Azoebs Linux Corners, Jl. Babakan Tengah No. 23

Dramaga, Bogor� Dev-Net, Jl. Raya Kranggan No. 1 Citeureup Cibinong,

Bogor� Game House, Jl. Songgi Raya No. 5, Bogor� JogloNet, Jl. Siliwangi No. 41 (SMKN 1 / ICT Center),

Cianjur� F&D INTERNET, Jl. Salak II Pondok Cina (belakang

BSI Margonda), Depok� Majao Computer, Pondok Petir, Sawangan, Depok� [email protected], Jl. Mahakam Raya No. 39 Depok Timur,

Depok� Waskita.Net, Jl. Sawo No. 24A Pondok Cina (belakang

Stasiun UI), Depok� Warnet Ngenet, Jl. G. Sahari VIII / 11A Gg. Senggol,

FKM UI, Depok� Warnet Orbital, Jl. Ir. H Juanda No. 53 Karawang

Barat, Karawang� Revonet, JL. K.H. Abdul Halim (Depan GGM/UNMA),

Majalengka� FriendsNet, Jl. Raya OTTISTA No. 20, Depan Rumah

Sakit PTP VIII, Subang� Warnet Naila, Jl. R.A. Kosasih Gg. Ampera 29, Ciaul,

Sukabumi � Biru.net, Jl. Angkrek No.74, seberang Gapura ke

Kampus UNSAP, Sumedang� O’net Cafe, Jl. Surya Darma 34 Sewan, Tangerang� Quantum.net, Jl. Sunan Gunung Jati No 50, Ciledug,

Tangerang � Q.net, Jl. Dr. Cipto Mangunkusumo No. 42, Ciledug,

Tangerang� Starnet, Cimone, Tangerang� KZ Internet Cafe, Jl. Pesanggerahan No. 49 Rt.3/3,

Cempaka Putih, Ciputat Timur, Tangerang� Artanita , Jl. Cieunteung No 112 A [Sebelah SMK

Artanita] Tasikmalaya� Citra [Koperasi Pegawai Telkom], Jl. Otista No. 06,

sebelah Kantor Pos, Tasikmalaya� Kharisma, Jl. Ampera No. 142, Depan SD Gunung

Lipung, Tasikmalaya� Warnet Salsabila I, Jl. Rajawali 105, Kp. Siluman,

Cibeureum. TasikmalayaWarnet Salsabila II, Jl. Kol. Abd. Saleh Cicurug Ojo – Cikalang,Tawang, Tasikmalaya

Jawa Tengah dan Yogyakarta � Adzkanet, Jl. Raya Pucang-bawang KM 4, Banjarnegara� My-Net, Jl. Menteri Supeno 3C (Gedung Perbain lt.1)

Sokaraja, Banyumas� SPECTRUMNET, Jl. Kulon 598 Sudagaran Kecamatan

Banyumas� TopNET, Jl. Raya Jatilawang No. 16 Jatilawang,

Banyumas� Warnet 88, Jl. Jend. Gatot Subroto 155 Kecamatan

Banyumas� Warnet BC, Kompleks Terminal Karesidenan Banyumas� Warnet Pigeon, Ruko KUD No. 04, Jl. Wates KM 10

Sedayu, Bantul

� ICT Net, Jl. A. Yani No. 68 Kauman, Batang� MegaNet, Jl. Merbabu 17 Boyolali (samping Rutan),

Boyolali� Cafe Net, Jl. Setiabudi No. 17, Brebes� Fuji Warnet, Jl. Raya Timur Jatibarang Kidul, Brebes� FOSS net, Kantor Puskud Kab. Brebes� Lestari Net, Jl. Hj. Siti Aminah No. 23 Dukuhturi

Bumiayu, Brebes� AJ-Net, Jl. Urip Sumoharjo 9b Limbangan, Cilacap� Hastama-Net, Jl. Gerilya 88a Sampang, Cilacap� PojokNET Internet Cafe, Jl. Tugu Barat No. 1

Sampang, Cilacap� Metrijaya Net Cafe, Jl. A. Yani No. 12 (Depan

POLSEK) Adipala, Cilacap � Tracert Cyber Station, Jl. Raya Jepara Kudus,

Pecangan Kulon RT 03/02, Jepara� Java Net, Jl. Duwet No. 4, Karangasem, Kartasura� Gifa Net, Jl. Raya No. 148 Cepiring, Kendal� [email protected], Jl. Kh. Noor Hadi No. 34 B (Samping

Asrama Akper Muhammadiyah), Kudus� Tit@ Net, Jl. Juwana-Pati KM. 1 No. 2 (Hotel Graha

Dewata Juwana), Pati� WWCE, Jl. Untung Suropati 33 Tayu, Pati� AnantaNet, Jl. Diponegoro, masuk gang Utara Pasar

Induk Kajen, Pekalongan � KiosNet LiPI Linux, Jl. Bugenvil Rt.06/07 Purwoharjo

Comal, Pemalang� Aidea.net, Jl. S. Parman No. 4, Purbalingga� AlfaNET, Jl. Ahmad Yani No. 1b Lt. 2 Alfamart Depan

Terminal, Purbalingga� GaneshaNET, Jl. Piere Tendean No. 81 Selatan Alun-

alun, Purbalingga� JULIOS, Jl. Pujowiyoto 5 b, Purbalingga� Banyu-Net, Jl. dr Soerparno No.18, Purwokerto� Warnet 88, Jl. Jend. Sudirman Timur 172 Berkoh,

Purwokerto� Dago7 Net, Jl. Dr. Soeparno No. 12, Purwokerto� Naurah.Net, Jl. Kutoarjo - Ketawang Km. 6,

Dukuhdungus, Grabag, Purworejo� Alfa.Net, Parang Barong Square 14 Kav 04, Semarang� Andromeda.Net, Jl. Tanjungsari No. 4, Semarang� CafeNet69, Jl. Tlogosari Raya 1/69, Semarang� Exsanet, Jl. Jati Raya Blok Ck3 Ruko Banyumanik,

Semarang� GankbuntU WarungInternet, Jl. Purwoyoso Ic No.30,

Semarang� GrandNet - 1, Jl. Sirojudin No. 5 Tembalang, Semarang� GrandNet - 2, Jl. Thamrin No. 12 Sebelah Pertamina,

Semarang� HitNet (GrandNet - 3), Wonodri Baru No. 31 Belakang

RS Roemani, Semarang� Homenet, Jl. Majapahit 281A, Semarang� IdolaNet, Jl. Indraprasta, dekat SPBU, Semarang� Infoesia.Net, Jl. Gusti Putri II/No. 40, Semarang� Magesen Internet Cafe, Jalan Patriot I H-77, Semarang� Mataram, Jl. MT Haryono 294-296, Semarang� Starcomp, Jl. Karanglo Pedurungan, Semarang� Star@net, Jl. Karanglo I No. 64, Semarang� TrendNet, Jl Tirto Agung No. 13 Banyumanik, Semarang� WSI Net, Jl. Prof. Sudharto, Tembalang (samping Cafe

Tugu), Semarang� Zulinet, Jl. Plamongan Sari Raya 3A, Semarang� Warnet Amanah, Jl. Raya Sukowati 640, Sragen� A Ha 7 Comp, Jl. Raya Balamoa – Banjaran 20

Pangkah, Tegal� BIXnet, Jl. Pancakarya No. 19 Kajen Talang, Tegal� BONeX, Jl. H. Samanhudi No. 33 Trayeman Slawi, Tegal� Brug Abang 99 Warnet, Brug Abang Kajen Talang, Tegal� BSC Net, Jl. Raya Karanganyar, Tegal� Era Net, Jl. Moh. Yamin Slawi, Tegal� Fudu Net, Jl. Pala Raya No. 45 Mejasem, Tegal� Grafi cia Warnet, Jl. Srigunting No. 41, Tegal� KSnetcafe, Jl. Abimanyu Kedungsukun, Tegal� La Tanza Net, Jl. Samadikun Debong, Tegal� Melati Net, Debong, Tegal� Nasa Net, Jl. Nakula, Tegal� Oase Net, Jl. Werkudoro, Tegal� Queen Warnet, Jl. Werkudoro, Tegal� RedMouse Internet Cafe, Jl. Sumbodro No. 34, Tegal� Soto 99 Warnet, Jl. Raya Talang, Tegal� Super Net, Jl. Raya Singkil No. 22 Adiwerna, Tegal� Tecra Net, Jl. Setia Budi No. 35, Tegal� Wings Net, Tembok Luwung, Adiwerna, Tegal� Happy Net, Jl. Gatot Subroto No. 15, Ungaran� PoiNTER Multimedia, JL. Gatot Subroto 151, Ungaran� Upnet, Jl. Maospati Raya No. 39, Pondok Babadan

Baru, Selamarta, Babadan, Ungaran Timur� NugrahaNet, Selomerto No. 150, Wonosobo� i-KG.Net, Jl. Ngeksigondo No. 62 Kotagede, Yogyakarta� Jo.Net, Jl. Bantul KM 8,5, Yogyakarta

Jawa Timur dan Bali� Bee Cyber Warnet & Hotspot, Perum Telang Indah

Persada, Jl. Telang Indah Barat I No. 29 Telang, Kamal, Bangkalan

� Warnet Galaxy, Jl. A. Yani 03 (depan SMA 1), Blitar� Warnet Mitra, Jl. Lawu No. 71, Blitar� Setya Jaya Net, Jl. Panglima Sudirman No. 13,

Bojonegoro� SAGA-NET, Jl. dr. Wahidin SH No. 620, Gresik� XNET, Ruko Pesona Jawa B-3, Hi-Tech Square, Jember� Zencafe i-Net, Jl. Kartini 1A, Banyu Biru, Jombang� Arnet, Jl. Welirang, Kediri

� At Taqwa, Madrasah Aliyah Negeri 3, Kediri� Orange Net, Ruko Stadion Brawijaya A3, Kediri� Titanium.Net, Jl. KH. Wakhid Hasyim, Kediri� Warnet Bima, Kediri� Warnet Bina, Kediri� Warnet ERA, Jl. Raya Kolak 21, utara MTs, depan

ALKABA Swalayan, Kolak, Ngadiluwih, Kediri� Warnet Evo, Kediri� Warnet FastNet, Kediri� Warnet Plus, Jl. Ahmad Yani, Ruko Stadion Brawijaya

C-5, Kediri� Warnet PoS Kediri, Jl. Mayjen Sungkono 32, Kediri� Warnet Putra Surya Computer, Kediri� Warnet AWF, Jl. Raya Sugio-Kedungpring, Sugio,

Lamongan� Warnet Maju Jaya, RT 03 RW 02, Siman, Sekaran,

Lamongan� Warnet SMK Wachid Hasjim, Parengan, Maduran,

Lamongan� TuxEdoe, Jl. Panglima Sudirman, Purwosari,

Wonoasri, Caruban, Madiun� Warnet Ubuntu, Jl. Raya Genengan No. 256 Rt/Rw

03/09, Binangun, Pakisaji, Malang� Warnet Mandiri, Jl. R. Wijaya 5 (Depan Stadion Gajah

Mada) Mojosari, Mojokerto� Warnet Paradise, Jl. Raya Kemantren, Kec. Gedeg,

Mojokerto� Best.Net, Jl. Musing 633 Kauman, Bangil, Pasuruan� F@S Warnet, Jl. Durian No. 281, Bangil, Pasuruan� Bluesky.net, Krajan 05/01, Desa Banjarsawah,

Tegalsiwalan, Probolinggo� ARFnet, Jl. Dharmawangsa No. 56B, Surabaya� Ciber Net, Jl. Simo Kwagean No. 72, Surabaya� Deepo.Net, Jl. Danakarya No.77 Surabaya� KampoengCyber, Rungkut Asri Utara No. 9, Surabaya� RC Net, Jl. Siwalankerto I/66, Surabaya� Shinobi.Net, Jl. Mulyorejo 174, Surabaya� Warnet Smart Offi ce, Karang Menjangan 72, Surabaya � Warnet Pacarkembang, Gang 3 No. 36, Surabaya� Prompt.Net, Sidokare Asri Ai/9, Sidoarjo� Core.Net, JL. Basuki Rahmat 37, Situbondo� AE Net, Desa Mandirejo, Kec. Merakuran, Tuban � Bina Tuban, Jl. Basuki Rahmat 73, Tuban� Hasil Flash Net, Jl. Basuki Rahmat No. 235, Tuban � Planet Com, Jl. Basuki Rahmat No. 320, Tuban� Sudra Net, Jl. Basuki Rahmat No. 57, Tuban � Tamim Net, Jl. Diponegoro No. 45, Tuban � Toki Net, Jl. KH. Musta’in No. 50, Tuban � Liberty Cyber, Jl. Gn. Rinjani IXC No. 8, Denpasar, Bali� YOGA INTERNET 1, Jl. Patimura No 4, Tabanan, Bali� YOGA INTERNET 2, Jl. Gajah Mada 128, Tabanan, Bali� YOGA INTERNET 3, Jl. Raya Mengwitani, Badung, Bali

Kalimantan� Flink Internet Cafe, Jl. Adhyaksa Komplek Ruko Kayu

Tangi Permai No R11, Banjarmasin, Kalsel� Ciwank.net, Jl. Pramuka No. 15, RT/RW 29/10, Kel.

Gunung Kelua, Samarinda, Kaltim

Sulawesi� MECS, Jl.Mesjid Raya No.17 Sungguminasa, Gowa� @mAy-Net, Jl. Abd. Silondae No. 127 C (samping

BCA), Kendari� Aromanet, Jl. D.I. Panjaitan No. 88 Lepo-lepo

(samping Trakindo), Kendari� Jelajah Net, House of Linux. Jl. Perintis Kemerdekaan

VIII no. 2B, Makassar� K-Sepuluh Net, OpenSourceNet Cafe, Jl. Perintis

Kemerdekaan Km.10 No.36, Makassar� LouphNet, Jl. Aroepala, Hertasning Baru B2 No.26

(Samping Kampus STIKES Mega Rezky), Makassar� Toraja.Net, Ruko O3, Jl. Perintis Kemerdekaan KM 12,

Makassar� Zenith Internet Cafe, Jl. Kumala No. 43 A, Makassar� Kirei Net, Jl. Sam Ratulangi 159 (depan BCA), Manado� Warnet Sintek (Sinjai Teknologi), Jl. Baso Kalaka No.

10 Sinjai, Sulawesi Selatan

Sumatera� Jack.Net, Jl. Medan-Banda Aceh, Matangglumpang

Dua, Bireuen, Aceh� Tarisa, Ruko Simpang Kantor Pos Keutapang, Aceh

Besar� Opotumon, Jl. Tgk. Chik Dipineung Raya No. 69,

Kampung Pineung, Banda Aceh� Mianova.Net, Jl. Hayatimahim No. 2 RT 20 RW 08

Tanjungpandan Belitung, Bangka Belitung� Homy.net, Citra Batam C.233 Batam Centre, Batam,

Kepulauan Riau� Kaliber Net, Jl. Pemuda No. 22e Tanjungpinang,

Kepulauan Riau� Ulisa.Net, Jl. Cempedak No. 84 Dumai, Riau Daratan � Kagaya.Net, Jl. Abdul Muis No. 9A, Jati, Padang, Sumbar� AndiNet, Jl. Palembang Batas Kota, samping RM

Lesehan Lumayan II, Muara Enim, Sumsel� Delta.net, Jl. Mayor Ruslan III, Pasar Lama, Lahat,

Sumsel� IndahNyo.net, Jl. Pelda Saibi No. 1/40 Nasional,

Prabumulih, Sumsel� Kambangiwak.net, Jl. Palembang-Prabumulih KM 32

depan Bank Sumsel, Inderalaya, Sumsel� Nikita.net, Jl. Jend. Sudirman, Simpang Muara Dua,

Samping Atlas, Prabumulih, Sumsel

36_NetAdmin_08_Bagian2_EDIT-SUPRI.indd 3836_NetAdmin_08_Bagian2_EDIT-SUPRI.indd 38 6/30/2010 10:53:14 AM6/30/2010 10:53:14 AM

Page 39: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

indigo fellow_08.indd 1indigo fellow_08.indd 1 6/30/2010 1:26:51 PM6/30/2010 1:26:51 PM

Page 40: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX40

Akses Database MySQL lewat HTTP

Pada InfoLINUX Juli 2010, kita memba has tentang python-UNO, di-mana dengan menggunakan python kita bi sa mengakses fungsionalitas Open Offi ce.org dari luar. Pada edisi ini, kita akan membahas contoh lebih lanjut, dimana data dari spreadsheet akan diambil dan disimpan ke data-base server MySQL.

Sayangnya, ada satu masalah: py-thon versi 2.3.4 yang datang bersama OpenOffi ce.org 2.3 yang penulis guna-kan, tidak disertai dengan modul untuk bekerja dengan MySQL. Se-mentara, kompilasi/instalasi seper-tinya cu kup merepotkan.

Beberapa saat lalu, penulis masih memiliki harapan: mencari modul py-thon untuk bekerja dengan MySQL, ta pi yang dibangun sepenuhnya de-ngan python (pure python). Tanpa me libatkan link ke pustaka client MySQL. Beberapa sempat penulis te mukan (sekilas), namun sayangnya tidak dapat digunakan karena mem-butuhkan python dengan versi yang lebih tinggi dari 2.3, atau mo dul ber-ada dalam status belum layak pakai.

Karena ada kebutuhan lain yang mirip-mirip, penulis memutuskan untuk membangun dboverhttp. Se-suai namanya, fungsi program ini ada lah melewatkan query yang kita berikan (lewat HTTP) ke database

server, dan mengembalikan hasil query. Dengan demikian, kita hanya per lu berbicara dengan HTTP Server dan tidak langsung dengan database server itu sendiri. Lebih lambat pasti-nya. Tapi, bagi yang hanya memiliki akses lewat HTTP atau modul untuk bekerja dengan database tidak terse-dia, ini merupakan salah satu solusi.

Berikut adalah beberapa fi tur prog ram:� Bekerja dengan protokol HTTP.

Dengan demikian, dapat digu-nakan hampir dari mana saja. Di python, kita bisa menggunakan modul urllib.

� Menggunakan YAML (yaml.org) sebagai format serialisasi out-put. Penulis telah beberapa lama menggunakan YAML dan sejauh ini sangat puas. Plus, tersedia modul yang dibangun dengan py-thon murni dan dapat berjalan pada python 2.3. Pustaka untuk bekerja dengan YAML juga terse-dia untuk sangat banyak bahasa pemrograman.

� Dapat bekerja dengan berbagai tipe database server. Sebagai contoh: MySQL, PostgreSQL dan SQLite. Dalam versi awal ini, se-mentara kita fokuskan ke MySQL terlebih dahulu.

� Mendukung caching (nantinya).

Program dboverhttp akan diba-ngun sepenuhnya dengan python, berbasis web, dan menggunakan pustaka web.py (webpy.org). Apabila diperlukan, bacalah pembahasan tentang web.py pada InfoLINUX 05/2009. Web.py, termasuk cara melakukan query ke database, tidak akan dibahas lagi dalam tulisan ini. Kita juga tidak akan membahas de-tail format YAML (informasi seleng-kapnya: yaml.org).

Pembahasan akan dibagi dalam beberapa topik berikut:� Koneksi, query, dan keamanan.� Format output dan hasil query.� URL dan form.� Contoh database.� Source code dboverhttp dan pen-

jelasan.� Contoh client: python.

Semua contoh program dibangun di atas Singkong Linux 1.0 (nopri-anto.com), namun harusnya dapat diterapkan pada sistem lainnya.

Program dboverhttp merupakan program free/open source dan dili-sensikan GPL.

Koneksi, Query, dan KeamananUntuk versi awal ini, berikut bebe-rapa pertimbangan tentang ko nek si, query, dan keamanan secara umum.

Apakah Anda ingin mengakses database server, tapi tidak bisa melakukan

koneksi secara langsung? Atau modul untuk bekerja dengan database tidak/

belum tersedia? Anda bisa gunakan dboverhttp, proyek yang akan kita

bangun bersama dalam tulisan ini.

TUTORIAL MYSQL VIA HTTP

48_Tutorial_08-nop_EDITARIE.indd 4048_Tutorial_08-nop_EDITARIE.indd 40 6/30/2010 2:15:32 PM6/30/2010 2:15:32 PM

Page 41: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id INFOLINUX � 08/2010 41

� Setiap pengguna harus memberi-kan informasi koneksi database, seperti hostname, port, tipe da-tabase, username, password, dan nama database lewat dboverhttp. Demikian juga dengan query string database. Informasi-infor-masi ini tidak akan pernah disim-pan.

� Request method yang diperguna-kan adalah selalu POST. Kecuali, nantinya ada konten informatif non-database yang akan dikem-balikan.

� Saat ini, query akan diberikan apa adanya dan akan langsung dile-watkan ke database server tanpa modifi kasi atau pemeriksaan apa pun. Pemeriksaan keamanan se perti pencegahan akan SQL In-jection harus dilakukan dari sisi client.

� Apabila diperlukan, kita bisa menggunakan HTTPS. Ini berada di luar cakupan tulisan.

Format Output dan Hasil QueryUntuk versi awal ini, berikut adalah beberapa pertimbangan tentang for-mat output/response dan hasil query. � Seperti disebutkan sebelumnya,

format output/HTTP response adalah YAML. Versi YAML yang digunakan adalah 1.1.

� Output yang merupakan YAML,

setelah di-load, akan selalu meru-pakan sequence dengan dua ang-gota:(status, query_result)

� status merupakan bilangan bu-lat, dimana 0 atau lebih besar menandakan operasi sukses dan bilangan negatif menan-dakan operasi gagal. Bilangan lebih besar dari 0 merupakan affected rows (apabila ada).

� query_result merupakan hasil query itu sendiri (dalam ben-tuk sequence) atau sequence kosong, apabila tidak terdapat hasil query/hasil query tidak diperlukan.

� Di masa depan, apabila diperlu-kan, output dapat dikompres.

URL dan FormUntuk versi awal ini, berikut adalah beberapa pertimbangan tentang URL dan form HTML. � Secara default, request method

adalah POST.� Saat ini, URL yang digunakan

hanyalah /query. Setiap kali query diberikan, koneksi database akan dibuat. Dengan demikian, ber-sama query string, kita juga harus memberikan informasi koneksi. Tidak ada session yang di-main-tain.

� Informasi koneksi dan query yang

kita butuhkan adalah:� dbn: tipe database (untuk

MySQL, kita berikan: mysql).� host.� port.� user.� pw.� db: nama database.� query: query yang siap di-

jalankan.

Di masa depan, kita mungkin akan me-maintain session, sehingga koneksi hanya perlu dilakukan sekali saja. Setiap kali query, yang kita bu-tuhkan hanyalah informasi berupa query string.

Contoh DatabaseSebagai contoh database, kita akan mempergunakan MySQL. Nama da-tabase adalah: dboverhttp_test.� Sebagai root MySQL, buatlah da-

tabase tersebut:mysql> create database

dboverhttp_test;

Query OK, 1 row affected (0.04

sec)

� Berikan hak kepada user dboverhttp@localhost, dengan password adalah: password:mysql> grant all privileges

on dboverhttp_test.* to

dboverhttp@localhost identifi ed by

‘password’;

Query OK, 0 rows affected (0.00

sec)

mysql> fl ush privileges;

Query OK, 0 rows affected (0.00

sec)

� Sebagai dboverhttp@localhost, buatlah tabel berikut:mysql> use dboverhttp_test;

Database changed

mysql> create table test(a

integer, b varchar(16));

Query OK, 0 rows affected (0.01

sec)

mysql> desc test;

+-------+-------------+------+---

--+---------+-------+

| Field | Type | Null |

TUTORIAL MYSQL VIA HTTP

Situs web webpy.org.

48_Tutorial_08-nop_EDITARIE.indd 4148_Tutorial_08-nop_EDITARIE.indd 41 6/30/2010 2:16:00 PM6/30/2010 2:16:00 PM

Page 42: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX42

Key | Default | Extra |

+-------+-------------+------+---

| a | int(11) | YES |

| NULL | |

| b | varchar(16) | YES |

| NULL | |

+-------+-------------+------+---

2 rows in set (0.00 sec)

Source Code dboverhttp dan PenjelasanSebelum membahas tentang source code dboverhttp, kita akan siapkan semua pustaka yang diperlukan ter-lebih dahulu. Selain pustaka yang bisa diinstal secara lokal (dibangun dengan python murni), agar web.py dapat bekerja dengan MySQL, pasti-kan modul MySQLdb (http://source-forge.net/projects/mysql-python/) telah terinstal. Instalasi MySQLdb tidak dibahas di dalam tulisan ini.

Direktori dan Pustaka Lokal� Buatlah sebuah direktori de ngan

nama dboverhttp. Anda bisa tempatkan di manapun direktori tersebut:$ mkdir -v dboverhttp

mkdir: created directory

`dboverhttp’

� Masuklah ke dalam direktori tersebut:cd dboverhttp/

� Kita akan membutuhkan web.py. Download-lah terlebih dahulu:$ wget http://webpy.org/static/

web.py-0.34.tar.gz

� Kemudian, installah web.py:$ tar zxf web.py-0.34.tar.gz

$ mv web.py-0.34/web .

$ rm -rf web.py-0.34.tar.gz web.

py-0.34

� Kita juga membutuhkan PyYAML (untuk bekerja dengan YAML). Download-lah dengan perintah be-rikut:$ wget http://pyyaml.org/

download/pyyaml/PyYAML-3.09.tar.

gz

� Dan, installah PyYAML:$ tar zxf PyYAML-3.09.tar.gz

$ mv PyYAML-3.09/lib/yaml .

$ rm -rf PyYAML-3.09.tar.gz

PyYAML-3.09

� Semua pustaka yang dibutuhkan telah kita miliki:$ ls -l

total 8

drwxr-xr-x 4 nop users 4096 2010-

03-21 00:43 web/

drwxr-xr-x 2 nop users 4096 2009-

08-31 16:16 yaml/

� Persiapan selesai

Source CodeMasih di dalam direktori dboverhttp sebelumnya, buatlah fi le dboverhttp.py, dengan isi sebagai berikut. #!/usr/bin/env python

#

# dboverhttp

# version : alpha 1

# license : GPL

# started by : Noprianto <noprianto.

com>

# credits :

# - put your name here <email>

<credit>

#

import web

import yaml

web.confi g.debug = False

default_error = [-1, []]

default_ok = [0, []]

urls = (

‘/query’, ‘query’,

)

app = web.application(urls,

globals())

def dump(o, safe=True, default_fl ow_

style=False):

dumper = yaml.safe_dump

if not safe:

dumper = yaml.dump

try:

ret = dumper(o, default_fl ow_

style=default_fl ow_style)

except:

ret = ‘’

#

return ret

class query:

def POST(self):

i = web.input(

dbn=’’,

host=’’,

port=’’,

TUTORIAL MYSQL VIA HTTP

Situs web yaml.org. Situs web pyyaml.org.

48_Tutorial_08-nop_EDITARIE.indd 4248_Tutorial_08-nop_EDITARIE.indd 42 6/30/2010 2:16:01 PM6/30/2010 2:16:01 PM

Page 43: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id INFOLINUX � 08/2010 43

user=’’,

pw=’’,

db=’’,

query=’’,

)

#

try:

iport = int(i.port)

except ValueError:

iport = 0

#

try:

conn = web.database(

dbn = i.dbn,

host = i.host,

port = iport,

user = i.user,

pw = i.pw,

db = i.db,

)

r = conn.query(i.query)

except:

return dump(default_

error)

#

ret = default_error

res = []

if type(r) == type(1L) or

type(r) == type(1):

ret = [r, res]

else:

for a in r:

temp = {}

for b in a.keys():

temp[b] = a[b]

res.append(temp)

ret = [0, res]

#

return dump(ret)

if __name__ == “__main__”:

app.run()

Dari halaman terminal, jalankan-lah server dengan perintah berikut:$ python dboverhttp.py

http://0.0.0.0:8080/

Secara default, server akan di-jalankan pada port 8080. Untuk menjalankan pada port lain, tambah-kan port sebagai argumen program. Contoh:$ python dboverhttp.py 9000

http://0.0.0.0:9000/

Atau, sertakan IP apabila perlu:

$ python dboverhttp.py

127.0.0.1:9000

http://127.0.0.1:9000/

Penjelasan:� Kita siapkan sebuah fungsi bantu

untuk dump ke YAML. Secara default, kita gunakan safe_dump sehingga hanya menghasilkan tag YAML standar. Serialisasi dilakukan dalam block style (de-fault_fl ow_style=False). Di masa depan, apabila diperlukan, ini bisa diberikan sebagai opsi dalam query: def dump(o, safe=True, default_

fl ow_style=False):

...

...

� Kita dapatkan input dari client dengan nilai default:class query:

def POST(self):

i = web.input(

dbn=’’,

host=’’,

port=’’,

user=’’,

pw=’’,

db=’’,

query=’’,

)

� Lakukan konversi port ke integer: try:

iport = int(i.port)

except ValueError:

iport = 0

#

� Kemudian, coba melakukan ko-neksi dan mengirimkan query. Apabila gagal, kembalikan dump dari default_error ([-1, []]): try:

conn = web.database(

dbn = i.dbn,

host = i.host,

port = iport,

user = i.user,

pw = i.pw,

db = i.db,

)

r = conn.query(i.query)

except:

return dump(default_error)

#

� Apabila hasil query merupakan bilangan, maka kita kembalikan sebagai dump dari [<hasil>, []]. Selain itu, kita susun hasil yang didapatkan sebagai sequence dari dictionary, dan kembalikan seba-gai hasil dump dari [0, <hasil_su-sun>]: res = []

if type(r) == type(1L) or

type(r) == type(1):

ret = [r, res]

else:

for a in r:

temp = {}

for b in a.keys():

temp[b] = a[b]

res.append(temp)

ret = [0, res]

#

return dump(ret)

Contoh Client: pythonUntuk menguji dboverhttp, kita akan bangun satu program client dengan python. Program client akan meneri-ma sejumlah argumen, yang kemu-dian digabungkan dan dikirim seba-gai query string. Parameter koneksi sementara ini di-hard-code dalam source code.

Di dalam direktori dboverhttp, kita akan membuat sample-client-dboverhttp.py dengan isi berikut:#!/usr/bin/env python

import sys

import urllib

import yaml

param = {

‘dbn’ : ‘mysql’,

‘host’ : ‘localhost’,

‘port’ : 0,

‘user’ : ‘dboverhttp’,

‘pw’ : ‘password’,

‘db’ : ‘dboverhttp_test’,

‘query’ : ‘’,

}

if __name__ == ‘__main__’:

q = ‘ ‘.join(sys.argv[1:])

param[‘query’] = q

#

eparam = urllib.urlencode(param)

TUTORIAL MYSQL VIA HTTP

48_Tutorial_08-nop_EDITARIE.indd 4348_Tutorial_08-nop_EDITARIE.indd 43 6/30/2010 2:16:01 PM6/30/2010 2:16:01 PM

Page 44: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX44

fres = urllib.urlopen(‘http://

localhost:9000/query’, eparam)

sres = fres.read()

try:

res = yaml.load(sres)

except:

res = None

#

print ‘Query : %s’ %(q)

print ‘YAML : \n%s’ %(sres)

print ‘Result: %s’ %(res[0])

print ‘Data : %s’

%(str(res[1]))

Pastikanlah dboverhttp telah ber-jalan pada port 9000. Atau, sesuai-kanlah sample-client-dboverhttp.py. Berikut adalah beberapa contoh query. Apabila diperlukan (misal: merupakan karakter spesial shell), bagian query/query akan diberikan dalam kutip.

Versi Database$ python sample-client-dboverhttp.py

‘select version() as v’

Query : select version() as v

YAML :

- 0

- - v: 5.0.37

Result: 0

Data : [{‘v’: ‘5.0.37’}]

Insert Data$ python sample-client-dboverhttp.py

insert into test values “(1, ‘a’)”

Query : insert into test values (1,

‘a’)

YAML :

- 1

- []

Result: 1

Data : []

Perhatikanlah bahwa result adalah 1, yang menandai affected rows.

Insert Beberapa Data Sekaligus$ python sample-client-dboverhttp.py

insert into test values “(2, ‘b’),

(3, ‘c’), (4, ‘d’)”

Query : insert into test values (2,

‘b’), (3, ‘c’), (4, ‘d’)

YAML :

- 3

- []

Result: 3

Data : []

Update Data$ python sample-client-dboverhttp.py

update test set ‘a=a*2’ where ‘a<2’

Query : update test set a=a*2 where

a<2

YAML :

- 1

- []

Result: 1

Data : []

Hapus Data$ python sample-client-dboverhttp.py

delete from test where ‘a<3’

Query : delete from test where a<3

YAML :

- 2

- []

Result: 2

Data : []

Select Data$ python sample-client-dboverhttp.py

select a as aaa, b as bbb from test

Query : select a as aaa, b as bbb

from test

YAML :

- 0

- - aaa: 3

bbb: c

- aaa: 4

bbb: d

Result: 0

Data : [{‘aaa’: 3, ‘bbb’: ‘c’},

{‘aaa’: 4, ‘bbb’: ‘d’}]

Penjelasan� Siapkan parameter koneksi:param = {

‘dbn’ : ‘mysql’,

‘host’ : ‘localhost’,

‘port’ : 0,

‘user’ : ‘dboverhttp’,

‘pw’ : ‘password’,

‘db’ : ‘dboverhttp_test’,

‘query’ : ‘’,

}

� Dapatkan query: q = ‘ ‘.join(sys.argv[1:])

param[‘query’] = q

Encode:

eparam = urllib.urlencode(param)

� Kirimkan dengan Request method POST:

fres = urllib.urlopen(‘http://

localhost:9000/query’, eparam)

� Dapatkan Respons: sres = fres.read()

� Coba Load YAML: try:

res = yaml.load(sres)

except:

res = None

#

� Tampilkan Query, Respons, Hasil Indeks 0, Hasil Indeks 1:

print ‘Query : %s’ %(q)

print ‘YAML : \n%s’ %(sres)

print ‘Result: %s’ %(res[0])

print ‘Data : %s’

%(str(res[1]))

Sampai di sini pembahasan kita. Apabila diperlukan, modifi kasilah se-suai kebutuhan. Selamat mencoba!�

Noprianto [[email protected]]

TUTORIAL MYSQL VIA HTTP

Log server.

48_Tutorial_08-nop_EDITARIE.indd 4448_Tutorial_08-nop_EDITARIE.indd 44 6/30/2010 2:16:02 PM6/30/2010 2:16:02 PM

Page 45: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

Ozone (IL0290411).indd 1Ozone (IL0290411).indd 1 6/30/2010 1:19:54 PM6/30/2010 1:19:54 PM

Page 46: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX46

TUTORIAL GAME ENGINE

Pembuatan Game dengan Game Engine Open Source

Membuat game bukanlah peker-jaan yang sederhana. Di luar alur perma in- an itu sendiri, kita harus memikirkan berbagai komponen pen-ting berikut. Pertama, barangkali adalah urusan display. Apalagi ka-lau game yang dibangun melibatkan gra fi k 3D. Berbagai game juga akan lebih menarik kalau dijalankan se-cara full screen. Ini ber arti, kita ju ga perlu menyediakannya.

Berikutnya adalah suara. Permain-an tanpa suara dan efek suara tentu kurang menarik. Urusan suara juga bukan hanya sekedar memainkan fi le MP3 atau OGG. Tergantung game yang Anda bangun. Barangkali Anda juga perlu memikirkan untuk memain kan beberapa fi le suara seka-ligus, atau membuat suara lebih nya-ta ketika suatu objek mendekat.

Setelah itu, input. Sebuah game tentunya melibatkan interaksi de-ngan pemain. Baik melalui keyboard, mouse ataupun perangkat input lain-nya. Semuanya harus ditangani de-ngan baik. Apabila Anda memba ngun game pertarungan, dimana jurus dikeluarkan berdasarkan rangkaian input keyboard dengan perhitungan waktu, maka urusan input menjadi lebih penting lagi.

Berikutnya, jangan lupakan juga soal networking. Game yang Anda

bangun mungkin mendukung mul-tiplayer lewat Internet. Ini berarti, masalah koneksi, protokol dan opti-masi harus dipikirkan dengan sung-guh-sungguh. Terutama ketika para pemain berada di dalam jaringan yang tidak selalu stabil.

Dalam suatu permainan, umum-nya kita perlu memberikan opsi kepada user, sebagai contoh untuk meng atur volume suara, full screen/windowed atau opsi lainnya, di te-ngah-tengah permainan. Ini tidak bisa selalu diberikan sebagai argu-men ketika menjalankan program. Program harus mendukung graphical user interface yang umum dan mudah digunakan oleh user. Dan sebaiknya, jangan sampai GUI dibangun dengan menggambar dan memroses input se-cara manual.

Jangan lupa juga bahwa teknik pemrograman seperti multi-thread-ing sangatlah penting untuk diterap-kan dalam pengembangan game. Ketika Anda sibuk merespons input dari pemain, di saat bersamaan Anda harus mengirim data lewat jaringan. Di saat bersamaan juga, Anda harus menangani objek lain di dalam game. Jangan lupa, suara juga harus di-mainkan.

Agar lebih realistis dan nyaman dimainkan, libatkan juga berbagai

algoritma khusus game. Sebagai con toh, tubrukan antarobjek. Pada permainan yang melibatkan banyak objek yang saling berinteraksi, kita perlu memikirkan agar objek satu dan lainnya, ketika bertubrukan dapat melakukan tindakan tertentu. Sebagai contoh, ketika sebuah objek berhadapan dengan dinding, maka tidak bisa dilewati.

Contoh penerapan ilmu fi sika. Suatu objek yang jatuh dari atas, semakin ke bawah, harus semakin cepat. Ketika tubrukan terjadi pada saat jatuh, maka efek yang terjadi harusnya tidak sama dengan tubruk-an pelan antardua objek. Hitung-hi-tungan seperti ini sangatlah penting.

Berikutnya, walaupun tampak se-der hana, kita perlu juga memikirkan fungsi-fungsi pelengkap pada game. Seperti bekerja dengan fi lesystem, menyimpan ke database, dan lain se-bagainya. Jangan sampai pesan kesa-lahan muncul atau game menjadi crash, hanya karena mencoba menu-lis ke fi le dimana kita tidak memiliki hak.

Urusan kecerdasan buatan juga sangat penting. Sebagai contoh, pada game pertarungan antara pemain la-wan CPU, maka lawan harus cukup tang guh dalam bertarung. Ketika level semakin tinggi, maka lawan

Beragam pilihan game engine yang bersifat open source sudah tersedia di

platform Linux. Sebut saja SDL, Cube, Blender 3D, Panda 3D, TuxCap, dan

sebagainya. Pada artikel kali ini, kita akan membahas game engine Panda 3D

dan TuxCap, beserta satu contoh pembuatan game sederhana.

48_Tutorial_08-nop_EDITARIE.indd 4648_Tutorial_08-nop_EDITARIE.indd 46 6/30/2010 2:16:02 PM6/30/2010 2:16:02 PM

Page 47: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id INFOLINUX � 08/2010 47

TUTORIAL GAME ENGINEjuga mungkin harus lebih pintar lagi.

Apabila Anda ingin agar pemain bisa melakukan kustomisasi/prog-ramming sederhana pada game, maka mungkin Anda ingin menyediakan fasilitas scripting yang semudah mungkin. Anda dapat menggunakan python atau lua, misalnya.

Anda bisa bayangkan, kalau ber-bagai aspek tersebut harus kita usaha-kan sendiri. Jangan lupa juga kalau game yang kita bangun ada baiknya untuk dapat berjalan pada beberapa sistem operasi. Ini menjadikan pena-nganan low level seperti display dan suara lebih susah.

Memang, Anda bisa menggunakan SDL untuk tampilan, suara, jaringan, dan lainnya. Anda bisa mengombi-nasikan dengan pustaka untuk pene-rapan ilmu fi sika. Anda bisa meng-gunakan pustaka GUI khusus game. Dan pustaka-pustaka lepas lainnya. Tapi, mengombinasikan satu per sa tu proyek yang dikembangkan de ngan irama yang berbeda, dengan tujuan spesifi k yang mungkin berbeda pula, bukanlah pekerjaan yang nyaman.

Di sinilah game engine hadir. Satu pustaka lengkap dan terinte-grasi yang siap mendukung Anda untuk membangun game. Urusan multi-platform, jangan dipikir lagi. Komponen-komponen penting se per-ti dibahas sebelumnya juga sudah siap. Bahkan, kadang disertai de-ngan contoh game siap main, dimana Anda bisa menga gumi betapa de ngan source code yang relatif pendek, menghasilkan game yang begitu luar biasa.

Game engine super canggih biasa-nya dapat ditemukan di dunia pro-prietary. Ini sangat lumrah karena game engine dapat dilisensikan ke perusahaan pengembang game lain-nya, dimana produk akhirnya dapat di jual cukup mahal secara massal. Melisensikan game engine umumnya memberikan pemasukan yang sa ngat menggiurkan. Apalagi, jika suatu game engine telah terbukti dapat di-gunakan untuk membuat game yang populer.

Untungnya, para developer free/open source software juga tidak ting-gal diam. Sebagai hasilnya, terdapat puluhan game engine yang bisa kita gunakan. Beberapa sangat bagus, lengkap dan stabil. Hebatnya lagi, cu kup banyak game engine yang dili sensikan dengan sangat bebas: BSD, MIT atau paling tidak, LGPL. Dengan demikian, dapat pula diguna-kan untuk membangun game proprie-tary.

Salah satu game engine yang akan kita bahas di dalam tulisan ini adalah Panda3D. Tidak tanggung-tanggung, game engine ini dikembangkan awal-nya oleh Disney, untuk kepentingan pembuatan game komersial. Game engine ini dapat digunakan untuk membangun game 3D.

Contoh lain yang juga cukup me-narik adalah TuxCap. Engine ini merupakan port dari framework game PopCap yang cukup terkenal di dunia Windows.

Kedua engine tersebut menguna-kan lisensi BSD yang sangat bebas.

Untuk daftar game engine free/open source lainnya, Anda mungkin ingin membaca di situs http://gpwi-ki.org/index.php/Game_Engines dan http://en.wikipedia.org/wiki/List_of_game_engines. Sangat banyak ter-sedia, walau dengan kematangan/fi -tur yang juga sangat beragam.

Untuk kedua game engine yang dibahas, kita akan mulai dari kom-pilasi. Kita tidak melakukan insta-lasi system wide, agar sistem tidak men jadi kotor selama kita menguji. Setelah itu, kita akan memastikan bahwa game engine telah terinstal dengan baik. Caranya, dengan men-jalankan contoh game yang diser-takan. Pada akhir tulisan, barulah kita membahas satu contoh sangat sederhana penggunaan game engine Panda3D.

Semua contoh dibangun di atas Singkong Linux 1.0 (noprianto.com), namun dapat diterapkan pada sistem lainnya.

Tulisan ini lebih dimaksudkan sebagai pengenalan. Untuk contoh game yang dibangun dengan pustaka

free/open source juga (pygame), bisa dibaca pada InfoLINUX 08/2006.

Panda3DDibangun oleh Disney untuk kepen-tingan pembuatan game komersial, sampai saat ini pengguna utama game engine ini tetaplah developer game komersial. Jadi, Anda bisa ba-yangkan kualitas yang harus dimiliki oleh Panda3D.

Ada empat area dimana menjadi perhatian: power, speed, complete-ness dan error tolerance. Sebagai hasilnya, Panda3D datang dengan fi tur yang lengkap, stabil, dan power-ful.

Saat ini, Panda3D dikembang-kan oleh Disney dan Entertainment Technology Center Carnegie Mellon University.

Dari sisi dukungan bahasa pem-rograman, Panda3D sangat mena-rik (setidaknya bagi penulis). En-gine yang membutuhkan performa tinggi, dikembangkan dengan C++. Namun, untuk pengembangan game dapat menggunakan python atau C++. Salah satu tujuan utama engine adalah mendukung python. Jadi, mengikuti fi losofi : Python where we can, C++ where we must :).

Dokumentasi yang tersedia juga sangat lengkap, nyaman dibaca, dan dilengkapi contoh (untuk python dan C++).

Pada saat tulisan ini dibuat, versi terbaru Panda3D adalah 1.7.0 (un-stable, experimental). Kita akan meng gunakan versi ini. Untuk in-formasi selengkapnya, kunjungilah: http://www.panda3d.org.

Instalasi1. Download-lah source code SDK

versi 1.7.0 dengan perintah beri-kut. File yang akan kita download berukuran 34 MB: wget http://www.panda3d.org/

download/panda3d-1.7.0/panda3d-

1.7.0.tar.gz

2. Ekstrak dan masuk ke direktori hasil ekstrak: $ tar zxvf panda3d-1.7.0.tar.gz

$ cd panda3d-1.7.0

48_Tutorial_08-nop_EDITARIE.indd 4748_Tutorial_08-nop_EDITARIE.indd 47 6/30/2010 2:16:03 PM6/30/2010 2:16:03 PM

Page 48: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX48

Kita akan sebut direktori aktif se-bagai <root_source_panda>.

3. Lakukan kompilasi dengan perin-tah berikut. Pastikan python telah terinstal. Berikan opsi --help un-tuk opsi selengkapnya. Kita harus cukup bersabar. Di sistem penulis, proses ini memakan waktu satu jam lebih sedikit: $ python makepanda/makepanda.py

--no-ffmpeg

Generating library cache...

WARNING: Could not locate

thirdparty package artoolkit,

excluding from build

WARNING: Could not locate

thirdparty package fcollada,

excluding from build

WARNING: Could not locate

thirdparty package fftw,

excluding from build

WARNING: Could not locate

thirdparty package fmodex,

excluding from build

WARNING: Could not locate

thirdparty package nvidiacg,

excluding from build

WARNING: Could not locate

thirdparty package ode, excluding

from build

WARNING: Could not locate

thirdparty package opencv,

excluding from build

WARNING: Could not locate

thirdparty package squish,

excluding from build

WARNING: Could not locate

thirdparty package vrpn,

excluding from build

WARNING: Could not locate

thirdparty package tinyxml,

excluding from build

Generating dependencies...

[ 0%] Building C++ object built/

tmp/dtoolbase_composite1.o

[ 0%] Building C++ object built/

tmp/dtoolbase_composite2.o

[ 0%] Building C object built/

tmp/dtoolbase_lookup3.o

[ 0%] Building C++ object built/

tmp/dtoolbase_indent.o

...

...

4. Pada akhir kompilasi yang sukses, Anda akan mendapatkan pesan

seperti berikut:[ 98%] Compressing built/models/

shuttle_controls.egg.pz

built/models/shuttle_controls.

egg.pz

[ 99%] Compressing built/models/

smiley.egg.pz

built/models/smiley.egg.pz

[ 99%] Compressing built/models/

teapot.egg.pz

built/models/teapot.egg.pz

[ 99%] Compressing built/models/

yup-axis.egg.pz

built/models/yup-axis.egg.pz

[ 99%] Compressing built/models/

zup-axis.egg.pz

built/models/zup-axis.egg.pz

Storing dependency cache.

Build successfully fi nished,

elapsed time: 1 hours 3 min

5. Selesai kompilasi dilakukan, akan terbentuk direktori built:$ ls -1 built/

LICENSE

ReleaseNotes

bin/

direct/

etc/

include/

lib/

models/

pandac/

plugins/

tmp/

Menjalankan SampleKarena tidak melakukan instalasi system wide, maka kita perlu meng-atur LD_LIBRARY_PATH dan PY-THONPATH:$ export LD_LIBRARY_PATH=<root_

source_panda>/built/lib

$ export PYTHONPATH=<root_source_

panda>/built:<root_source_panda>/

built/lib/

Contoh apabila root source code panda3d adalah: /tmp/A/panda3d-1.7.0:$ export LD_LIBRARY_PATH=/tmp/A/

panda3d-1.7.0/built/lib/

$ export PYTHONPATH=/tmp/A/panda3d-

1.7.0/built:/tmp/A/panda3d-1.7.0/

built/lib/

Masuklah ke dalam direktori sam-ples:

$ cd samples/

Pilihlah satu contoh untuk di-jalankan (misal: Boxing-Robots):$ cd Boxing-Robots/

$ python Tut-Boxing-Robots.py

Catatan:

� apabila Anda menjumpai pesan-pesan kesalahan berikut, maka pastikan PYTHONPATH telah diset dengan benar:$ python Tut-Boxing-Robots.py

Traceback (most recent call

last):

File “Tut-Boxing-Robots.py”,

line 7, in <module>

import direct.directbase.

DirectStart

ImportError: No module named

direct.directbase.DirectStart

$ python Tut-Boxing-Robots.py

DirectStart: Starting the game.

Traceback (most recent call

last):

File “Tut-Boxing-Robots.py”,

line 7, in <module>

import direct.directbase.

DirectStart

File “/tmp/A/panda3d-1.7.0/

built/direct/directbase/

DirectStart.py”, line 3, in

<module>

from direct.showbase import

ShowBase

File “/tmp/A/panda3d-1.7.0/

built/direct/showbase/ShowBase.

py”, line 14, in <module>

__builtin__.confi g =

getConfi gShowbase()

NameError: name

‘getConfi gShowbase’ is not defi ned

� Atau apabila pesan yang dijumpai adalah sebagai berikut, maka pas-tikan LD_LIBRARY_PATH telah diset dengan benar:$ python Tut-Boxing-Robots.py

DirectStart: Starting the game.

Traceback (most recent call

last):

File “Tut-Boxing-Robots.py”,

line 7, in <module>

import direct.directbase.

DirectStart

File “/tmp/A/panda3d-1.7.0/

TUTORIAL GAME ENGINE

48_Tutorial_08-nop_EDITARIE.indd 4848_Tutorial_08-nop_EDITARIE.indd 48 6/30/2010 2:16:03 PM6/30/2010 2:16:03 PM

Page 49: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id INFOLINUX � 08/2010 49

built/direct/directbase/

DirectStart.py”, line 3, in

<module>

from direct.showbase import

ShowBase

File “/tmp/A/panda3d-1.7.0/

built/direct/showbase/ShowBase.

py”, line 10, in <module>

from pandac.PandaModules

import *

File “/tmp/A/panda3d-1.7.0/

built/pandac/PandaModules.py”,

line 2, in <module>

from libpandaexpressModules

import *

File “/tmp/A/panda3d-

1.7.0/built/pandac/

libpandaexpressModules.py”, line

1, in <module>

from extension_native_helpers

import *

File “/tmp/A/panda3d-1.7.0/

built/pandac/extension_native_

helpers.py”, line 81, in <module>

Dtool_PreloadDLL(“libpandaex

press”)

File “/tmp/A/panda3d-1.7.0/

built/pandac/extension_native_

helpers.py”, line 79, in Dtool_

PreloadDLL

imp.load_dynamic(module,

pathname)

ImportError: libp3dtool.so:

cannot open shared object fi le: No

such fi le or directory

TuxCapAnda ingin membangun game 2D yang menarik seperti game PopCap di Windows. Anda ingin membangun dengan bahasa python. Anda ingin dukungan penerapan ilmu fi sika. Anda dapat menggunakan TuxCap (http://sourceforge.net/projects/tux-cap).

Pada saat tulisan ini dibuat, versi terbaru adalah 1.4.0. Sayangnya, percobaan kompilasi yang penulis lakukan selalu gagal. Penulis kemu-dian berhasil dengan versi dari CVS.

Untuk men-download versi 1.4.0, Anda dapat mengunjungi: http://sourceforge.net/projects/tuxcap/files/tuxcap/libtuxcap-1.4.0/lib-tuxcap-1.4.0.tar.gz/download. Un-

tuk men- donwload tarball dari CVS, kunjungi lah: http://tuxcap.cvs.sourceforge.net/viewvc/tuxcap/?view=tar.

Instalasi1. Ekstraklah arsip dan masuklah ke

direktori hasil ekstrak: $ tar zxvf tuxcap.tar.gz

$ cd tuxcap/TuxCap/

2. Lakukanlah konfi gurasi dengan perintah berikut. Anda membu-tuhkan cmake terinstal di sistem. Di Singkong Linux, cmake telah terinstal secara default: $ cd tuxcap-build/

$ cmake ..

-- Check for working C compiler:

/usr/bin/gcc

-- Check for working C compiler:

/usr/bin/gcc -- works

-- Check size of void*

-- Check size of void* - done

-- Check for working CXX

compiler: /usr/bin/c++

-- Check for working CXX

compiler: /usr/bin/c++ -- works

...

...

...

-- Confi guring done

-- Generating done

-- Build fi les have been written

to: /tmp/A/tuxcap/TuxCap/tuxcap-

build

3. Lakukanlah kompilasi dengan perintah berikut:$ make

Scanning dependencies of target

tuxcap

[ 1%] Building CXX object

tuxcap/lib/CMakeFiles/tuxcap.

dir/Ratio.o

[ 1%] Building CXX object

tuxcap/lib/CMakeFiles/tuxcap.

dir/Buffer.o

[ 2%] Building CXX object

tuxcap/lib/CMakeFiles/tuxcap.

dir/SexyAppBase.o

...

...

4. Apabila kompilasi sukses, Anda akan menjumpai pesan berikut:[ 99%] Building CXX object

tuxcap/hungarr/CMakeFiles/../../

Hungarr.dir/GameApp.o

[100%] Building CXX object

tuxcap/hungarr/CMakeFiles/../../

Hungarr.dir/Res.o

Linking CXX executable ../../

Hungarr

[100%] Built target ../../Hungarr

Menjalankan SampleMasih di dalam direktori aktif, Anda bisa menjalankan: � demo_*.� Physicsdemo*.� Hungarr -> menarik.� pythondemo1 dan pythondemo2.

Masuklah terlebih dahulu ke dalam direktori pythondemo1 atau pythondemo2 untuk men-jalankan contoh: $ cd pythondemo1

$ ./Pythondemo1

Contoh SederhanaDalam dokumentasi Panda 3D, ter-dapat tutorial langkah demi lang-kah yang cukup jelas untuk memu-lai pemrograman game. Hasil dari tutorial tersebut adalah panda yang berjalan maju mundur, di tengah background tertentu, dengan kamera memutari. Selengkapnya, Anda bisa membaca di http://www.panda3d.org/wiki/index.php/A_Panda3D_Hello_World_Tutorial.

Penulis kemudian mengikuti tu-torial tersebut, namun tidak sampai panda berjalan maju mundur. Hanya sampai panda berjalan di tempat saja :) Kemudian, penulis membaca source code Boxing Robots dan do-kumentasi, dan mencoba menam-bahkan penekanan tombol keyboard. Sebagai hasilnya, penekanan a dan s

TUTORIAL GAME ENGINE

Contoh tampilan game yang kita kembangkan.

48_Tutorial_08-nop_EDITARIE.indd 4948_Tutorial_08-nop_EDITARIE.indd 49 6/30/2010 2:16:03 PM6/30/2010 2:16:03 PM

Page 50: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX50

akan menyebabkan panda berpindah posisi secara tiba-tiba, penekanan d akan membuat panda membesar, penekanan f akan membuat ukuran panda normal kembali dan escape akan mengakhiri program.

Contoh yang dibahas di dalam tulisan ini masih sangat sederhana. Penulis masih berusaha mempelajari Panda 3D. Sungguh menarik mem-buat game dengan Panda 3D.

Kita akan menggunakan fi le-fi le yang datang bersama distribusi Pan-da 3D, yaitu:� <root_source_panda>/models/en-

vironment.egg.� <root_source_panda>/models/

panda-model.egg.� <root_source_panda>/models/

panda-walk4.egg.

File-fi le tersebut dibuat dengan 3D modelling program, seperti Maya, Max atau Blender, dan kemudian diekspor ke egg. Sebuah fi le egg bisa mengandung:� Model (statik). � Aktor (dinamik).� Animasi (diaplikasikan ke aktor).� Aktor dan animasi.

Kita akan siapkan sebuah direk-tori, dimana ketiga fi le egg tersebut kita kopikan ke dalamnya. Di dalam direktori tersebut, kita buat test.py dengan isi sebagai berikut:#!/usr/bin/env python

#versi lebih sederhana dari tutorial

Panda3D

#http://www.panda3d.org/wiki/index.

php/A_Panda3D_Hello_World_Tutorial

#

#yang dilengkapi penekanan tombol

#

import sys

from math import pi, sin, cos

from direct.showbase.ShowBase import

ShowBase

from direct.task import Task

from direct.actor.Actor import Actor

class MyApp(ShowBase):

def __init__(self):

ShowBase.__init__(self)

self.environ = self.loader.

loadModel(‘./environment’)

self.environ.reparentTo(self.

render)

self.environ.setScale(0.25,

0.25, 0.25)

self.environ.setPos(-8, 42, 0)

self.taskMgr.add(self.

spinCameraTask, “SpinCameraTask”)

self.actor = Actor(‘panda-

model’,

{

‘walk’: ‘panda-walk4’,

}

)

self.actor.setScale(0.005,

0.005, 0.005)

self.actor.setPos(0, 0, 0)

self.actor.reparentTo(self.

render)

self.actor.loop(‘walk’)

self.accept(‘escape’, sys.exit)

self.accept(‘a’, self.move_1)

self.accept(‘s’, self.move_2)

self.accept(‘d’, self.scale_1)

self.accept(‘f’, self.scale_2)

def spinCameraTask(self, task):

angle_deg = task.time * 6.0

angle_rad = angle_deg * (pi /

180.0)

self.camera.setPos(20 *

sin(angle_rad), -20.0 * cos(angle_

rad), 3)

self.camera.setHpr(angle_deg,

0, 0)

return Task.cont

def move_1(self):

self.actor.setPos(-1, 0, 0)

def move_2(self):

self.actor.setPos(1, 0, 0)

def scale_1(self):

self.actor.setScale(0.010,

0.010, 0.010)

def scale_2(self):

self.actor.setScale(0.005,

0.005, 0.005)

if __name__ == ‘__main__’:

app = MyApp()

app.run()

Setelah itu, jalankanlah dengan perintah berikut (aturlah LD_LIB-RARY_PATH dan PYTHONPATH seperlunya):$ python test.py

Penjelasan, penulis kutip dari tutorial Panda 3D, sebisa mungkin penu lis pahami:� Kita buat sebuah class, turunkan

dari ShowBase. Berbagai modul Panda 3D akan di-load, dan me-nyebabkan window 3D tampil. Method run() akan menjalankan main loop.

� Dengan loader.loadModel(), kita load sebuah model (environment.egg). Kita render dengan melaku-kan reparent ke objek render: self.environ = self.loader.

loadModel(‘./environment’)

self.environ.reparentTo(self.

render)

� Kemudian, kita atur skala dan po-sisi: self.environ.setScale(0.25,

0.25, 0.25)

self.environ.setPos(-8, 42, 0)

� Kita kemudian membuat kamera berputar dengan membuat sebuah task. Task adalah fungsi yang akan dijalankan setiap frame oleh task manager. Dalam fungsi tersebut, kita kembalikan Task.cont agar tetap dipanggil. Di dalam fungsi spinCameraTask(): � Kamera berputar 6 derajat se-

tiap detik. � method setPos() digunakan un-

tuk mengatur posisi kamera.� method setHpr() digunakan un-

tuk mengatur orientasi:...

...

from math import pi, sin, cos

from direct.task import Task

...

...

self.taskMgr.add(self.

TUTORIAL GAME ENGINE

48_Tutorial_08-nop_EDITARIE.indd 5048_Tutorial_08-nop_EDITARIE.indd 50 6/30/2010 2:16:04 PM6/30/2010 2:16:04 PM

Page 51: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id INFOLINUX � 08/2010 51

spinCameraTask, “SpinCameraTask”)

def spinCameraTask(self, task):

angle_deg = task.time * 6.0

angle_rad = angle_deg * (pi /

180.0)

self.camera.setPos(20

* sin(angle_rad), -20.0 *

cos(angle_rad), 3)

self.camera.setHpr(angle_deg,

0, 0)

return Task.cont

� Setelah itu, kita load aktor panda-model, dengan defi nisi key walk mengacu kepada animasi panda-walk4:...

...

from direct.actor.Actor import

Actor

...

...

self.actor = Actor(‘panda-

model’,

{

‘walk’: ‘panda-walk4’,

}

)

� Kemudian, kita atur skala dan po-sisi aktor:self.actor.setScale(0.005, 0.005,

0.005)

self.actor.setPos(0, 0, 0)

� Lakukan render aktor dengan re-parent ke objek render: self.actor.reparentTo(self.

render)

� Lakukan looping animasi key walk, yang didefi nisikan sebelumnya: self.actor.loop(‘walk’)

� Kita tambahkan penekanan tom-bol:...

...

import sys

...

...

self.accept(‘escape’, sys.

exit)

self.accept(‘a’, self.move_1)

self.accept(‘s’, self.move_2)

self.accept(‘d’, self.scale_1)

self.accept(‘f’, self.scale_2)

� Untuk mengatur posisi, kita guna kan setPos() seperti contoh sebe lumnya. Demikian juga peng-aturan skala dengan setScale(): def move_1(self):

self.actor.setPos(-1, 0, 0)

def move_2(self):

self.actor.setPos(1, 0, 0)

def scale_1(self):

self.actor.setScale(0.010,

0.010, 0.010)

def scale_2(self):

self.actor.setScale(0.005,

0.005, 0.005)

Sampai di sini pembahasan kita. Untuk mempelajari lebih lanjut be-ragam fi tur yang terdapat di Panda 3D, Anda dapat mengakses ke url http://www.panda3d.org/documen-tation.php.

Semoga Anda dapat menjadi pem-buat game yang terkenal!�

Noprianto [[email protected]]

TUTORIAL GAME ENGINE

48_Tutorial_08-nop_EDITARIE.indd 5148_Tutorial_08-nop_EDITARIE.indd 51 6/30/2010 2:13:02 PM6/30/2010 2:13:02 PM

Page 52: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX52

TUTORIAL EKSTRAK DATA SPREADSHEET

Ekstrak Data Spreadsheet dan Simpan ke Database MySQL

Ada sebuah cerita. Sepuluh tahun yang lalu, sebuah perusahaan memu-tuskan untuk mulai lebih serius meng gunakan teknologi informasi. Komputer mulai diadakan di setiap kantor cabang yang tersebar di Indo-nesia. Peraturan baru pun mengikuti: setiap data penjualan mulai saat itu harus dilaporkan ke pusat setiap minggunya. Secara berkala, setiap minggu data di-entri ke spreadsheet, kemudian di e-mail ke pusat. Di pu-sat, tim TI akan mengopikan data yang didapat, kemudian dengan be-berapa program yang telah dibangun, akan membuat laporan dan analisis sederhana.

Tidak terasa, proses ini berlang-sung terus menerus dan menjadi kebiasaan. Di tengah perjalanan, se-benarnya ada keinginan untuk mem-bangun aplikasi terintegrasi, dimana setiap cabang dapat login dan meng-isikan data secara langsung. Tapi, apa boleh buat. Perusahaan saat itu harus lebih fokus ke urusan lain yang lebih penting. Urusan data, selama bisa sampai, sementara tidak di-ubah dulu. Selain itu, pengembangan sistem juga pasti membutuhkan bia-ya dan perhatian yang tidak sedikit. Apalagi, di kantor cabang semua su-dah sangat terbiasa. Migrasi sedikit banyak akan mengganggu. Manaje-

men memutuskan: jalan terus dengan apa yang ada.

Perusahaan semakin membesar dan cara manual sudah tidak dapat lagi diandalkan. Manajemen ingin laporan yang lebih cepat setiap saat. Harus ada yang diubah, tapi tidak bisa semua sekaligus. Akhirnya, diputuskan untuk memperkuat da-tabase terlebih dahulu. Database system yang dipilih adalah MySQL. Semua data dalam spreadsheet yang diterima, secara otomatis harus di-masukkan ke MySQL server. Setelah urusan yang satu ini lancar, migrasi dan pengembangan lebih lanjut bisa dilakukan. Sampai di sini, cerita se-lesai.

Pada InfoLINUX 07/2010, telah membahas dasar-dasar otomatisa-si OpenOffi ce.org dengan python de ngan beberapa contoh, termasuk membuat spreadsheet dan mengon-versi dokumen ke PDF atau format-format lainnya (bacalah apabila di-perlukan). Yang kita butuhkan saat ini hanyalah mendapatkan data dari spreadsheet, melakukan koneksi ke database, dan mengirimkan query untuk menambahkan data.

OpenOffi ce.org yang diguna-kan dalam tulisan ini adalah versi 2.3.0, yang disertakan dalam Sing-kong Linux Extra (noprianto.com).

Sayangnya, python 2.3.4 yang datang bersama OpenOffi ce.org tersebut ti-dak disertai dengan modul untuk bekerja dengan MySQL (MySQLdb). Sementara, kompilasi/instalasi se-per tinya cukup merepotkan. Modul yang dibangun dengan python mur-ni, kalaupun ada/layak pakai, juga tidak bisa digunakan karena mem-butuhkan python dengan versi lebih tinggi.

Oleh karena itu, untuk bekerja dengan database, kita akan menggu-nakan dboverhttp (bacalah tulisan: Mengakses database MySQL lewat HTTP di edisi ini). Dengan menggu-nakan proyek ini, kita dapat bekerja dengan MySQL lewat HTTP saja. Ti-dak perlu modul MySQLdb. Cukup urllib saja.

Semua program dibangun dengan python dan dilisensikan GPL.

Aturan SpreadsheetDalam tulisan ini, kita akan meng-gunakan spreadsheet dengan aturan berikut:� Tanpa pemformatan dan tanpa

judul.� Laporan dimulai dari A1, hanya

pada sheet1.� Laporan selalu terdiri dari dua

kolom: A dan B.� Kolom A merupakan ID produk.

Anda menerima laporan dalam format spreadsheet. Sementara, semua data

harus disimpan dalam MySQL server. Dengan menggunakan OpenOffice.org

dan python, kita akan ekstrak data dari spreadsheet dan menyimpannya ke

MySQL. Apabila diperlukan, kita juga bisa melakukan sebaliknya.

48_Tutorial_08-nop_EDITARIE.indd 5248_Tutorial_08-nop_EDITARIE.indd 52 6/30/2010 2:14:17 PM6/30/2010 2:14:17 PM

Page 53: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id INFOLINUX � 08/2010 53

TUTORIAL EKSTRAK DATA SPREADSHEET� Kolom B merupakan jumlah ter-

jual.

Contoh: A B 1 A01 10

2 A02 20

3 A03 40

4 A04 70

Sebagai contoh, data akan disim-pan sebagai a.ods.

Struktur DatabaseKita akan siapkan sebuah data-base untuk menampung data dari spreadsheet. Sebagai root MySQL, buatlah database spreadsheet dan berikanlah hak penuh kepada spreadsheet@localhost, dengan pass-word: password: mysql> create database spreadsheet;

Query OK, 1 row affected (0.01 sec)

mysql> grant all privileges

on spreadsheet.* to

spreadsheet@localhost identifi ed by

‘password’;

Query OK, 0 rows affected (0.00 sec)

mysql> fl ush privileges;

Query OK, 0 rows affected (0.00 sec)

Kemudian, sebagai user spreadsheet@localhost, buatlah tabel berikut:mysql> use spreadsheet;

Database changed

mysql> create table test(id

varchar(8), qty integer);

Query OK, 0 rows affected (0.01 sec)

mysql> desc test;

+-------+------------+------+-----+-

--------+-------+

| Field | Type | Null | Key |

Default | Extra |

+-------+------------+------+-----+-

--------+-------+

| id | varchar(8) | YES | |

NULL | |

| qty | int(11) | YES | |

NULL | |

+-------+------------+------+-----+-

--------+-------+

2 rows in set (0.01 sec)

Menjalankan OpenOffice.org sebagai ServerUntuk semua contoh yang dibahas di dalam tulisan ini, OpenOffi ce.org ha rus dijalankan terlebih dahulu se-bagai server. Agar dapat diterapkan pada lingkungan server tanpa GUI, maka OpenOffi ce.org dijalankan de-ngan opsi -headless.

Jalankanlah OpenOffi ce.org de-ngan cara berikut:<PREFIX_OOO>/program/soffi ce -

headless -accept=”socket,host=localh

ost,port=<PORT>;urp”

Contoh:/opt/openoffi ce.org2.3/program/soffi ce

-headless -accept=”socket,host=local

host,port=8000;urp”

Ketika perintah tersebut dijalan-kan, tidak ada GUI yang dijalankan. Program akan berjalan di foreground. Port yang dipergunakan adalah 8000. Untuk melakukan terminasi, tekan-lah Ctrl-C.

Gunakan Python dari OpenOffice.orgKita akan menggunakan python yang datang bersama OpenOffi ce.org.

Tersedia script untuk mempermu-dah kita dalam menjalankan python, yaitu: <PREFIX_OOO>/program/py-thon:$ /opt/openoffi ce.org2.3/program/

python

Python 2.3.4 (#1, Aug 8 2007,

18:47:03)

[GCC 3.4.1] on linux2

Type “help”, “copyright”, “credits”

or “license” for more information.

>>>

Dengan demikian, ketika men-jalankan program yang dibuat, kita perlu memberikan perintah:<PREFIX_OOO>/program/python

<program.py>

Contoh:/opt/openoffi ce.org2.3/program/python

program1.py

Mendapatkan Data SpreadsheetDalam contoh create-ods.py di edisi 07/2010, kita menambahkan data di sel dengan setString(). Kali ini, kita melakukan sebaliknya, de ngan get-String(). Tinggal melakukan perulang-an: selama data masih ditemukan, kita proses.

Berikut adalah source code read_spreadsheet.py:#(c) Noprianto, GPL

import sys

import os

#

try:

import uno

except ImportError, e:

print e

sys.exit(2)

#

def main(infi le):

# Situs web OpenOffice.org.

48_Tutorial_08-nop_EDITARIE.indd 5348_Tutorial_08-nop_EDITARIE.indd 53 6/30/2010 2:14:17 PM6/30/2010 2:14:17 PM

Page 54: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX54

uctx = uno.getComponentContext()

resolv = uctx.ServiceManager.

createInstanceWithContext(‘com.sun.

star.bridge.UnoUrlResolver’, uctx)

ctx = resolv.resolve(‘uno:

socket,host=localhost,port=8000;urp;

StarOffi ce.ComponentContext’)

#

smgr = ctx.ServiceManager

desktop = smgr.createInstance

WithContext(‘com.sun.star.frame.

Desktop’, ctx)

#

inurl = uno.

systemPathToFileUrl(os.path.

abspath(infi le))

doc = desktop.loadComponentFromU

RL(inurl, ‘_blank’, 0, ())

#

sheet = doc.getSheets().

getByIndex(0)

i = 0

while True:

a = sheet.

getCellByPosition(0, i).getString()

b = sheet.

getCellByPosition(1, i).getString()

if not a: break

print a, b

i+= 1

#

doc.close(True)

return True

if __name__ == ‘__main__’:

ret = 1

try:

i = sys.argv[1]

except IndexError:

print ‘usage: %s <input> ‘

%(sys.argv[0])

else:

if main(i):

ret = 0

#

sys.exit(ret)

Pastikanlah server OpenOffi ce.org telah dijalankan. Berikanlah perin-tah berikut untuk mendapatkan data dari spreadsheet. <PREFIX_OOO>/program/python read_

spreadsheet.py <input>

$ /opt/openoffi ce.org2.3/program/

python read_spreadsheet.py a.ods

A01 10

A02 20

A03 40

A04 70

Penjelasan:� Apabila diperlukan, bacalah tu-

lisan otomatisasi OpenOffi ce.org di edisi 07/2010.

� Yang penting dalam contoh ini adalah:� Dapatkan sheet pertama

(sheet1): sheet = doc.getSheets().

getByIndex(0)

� Ulang selama baris di kolom A masih terdapat data:

i = 0

while True:

a = sheet.

getCellByPosition(0,

i).getString()

b = sheet.

getCellByPosition(1,

i).getString()

if not a: break

� Data tersebut kemudian kita tampilkan:

print a, b

i+= 1

Memasukkan Data yang Didapat ke MySQLData spreadsheet sudah kita dapat-kan. Berikutnya, kita akan menyim-pannya ke MySQL. Contoh beri-kut, spreadsheet_db.py merupakan kombinasi dari contoh sebelumnya (read_spreadsheet.py) dan sample-client-dboverhttp.py (contoh client dboverhttp). Pastikan modul PyY-AML telah terinstal.

Berikut adalah source code spreadsheet_db.py:#(c) Noprianto, GPL

import sys

import os

import urllib

import yaml

#

try:

import uno

except ImportError, e:

print e

sys.exit(2)

#

param = {

‘dbn’ : ‘mysql’,

‘host’ : ‘localhost’,

‘port’ : 0,

‘user’ : ‘spreadsheet’,

‘pw’ : ‘password’,

‘db’ : ‘spreadsheet’,

‘query’ : ‘’,

}

def main(infi le):

#

uctx = uno.getComponentContext()

resolv = uctx.ServiceManager.

createInstanceWithContext(‘com.sun.

star.bridge.UnoUrlResolver’, uctx)

ctx = resolv.resolve(‘uno:

socket,host=localhost,port=8000;urp;

StarOffi ce.ComponentContext’)

#

smgr = ctx.ServiceManager

desktop = smgr.createInstance

WithContext(‘com.sun.star.frame.

Desktop’, ctx)

#

inurl = uno.

systemPathToFileUrl(os.path.

abspath(infi le))

doc = desktop.loadComponentFromU

RL(inurl, ‘_blank’, 0, ())

#

sheet = doc.getSheets().

getByIndex(0)

i = 0

while True:

a = sheet.

getCellByPosition(0, i).getString().

strip()

b = sheet.

getCellByPosition(1, i).getString().

strip()

if not a:

break

#

i+= 1

TUTORIAL EKSTRAK DATA SPREADSHEET

48_Tutorial_08-nop_EDITARIE.indd 5448_Tutorial_08-nop_EDITARIE.indd 54 6/30/2010 2:14:18 PM6/30/2010 2:14:18 PM

Page 55: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id INFOLINUX � 08/2010 55

$ /opt/openoffi ce.org2.3/program/

python spreadsheet_db.py a.ods

A01 10 ok

A02 20 ok

A03 40 ok

A04 70 ok

Ekspor Data dari MySQL ke SpreadsheetData dari spreadsheet telah tersim-pan di MySQL. Berikutnya, kita akan mengekspor dan menyimpannya ke spreadsheet.

Program berikut, db_spreadsheet.py, merupakan kombinasi dari con-toh tulisan otomatisasi OpenOffi ce.org di edisi 07/2010 (create-ods.py) dan sample-client-dboverhttp.py (con toh client dboverhttp). Pastikan modul PyYAML telah terinstal.

Berikut adalah source code db_spreadsheet.py:#(c) Noprianto, GPL

import sys

import os

import urllib

import yaml

#

print a, b,

#

q = “insert into test(id,

qty) values(‘%s’, %s)” %(a, b)

param[‘query’] = q

eparam = urllib.

urlencode(param)

fres = urllib.

urlopen(‘http://localhost:9000/

query’, eparam)

sres = fres.read()

try:

res = yaml.load(sres)

except:

res = None

#

if res and res[0] >= 0:

print ‘ok’

else:

print ‘failed’

#

doc.close(True)

return True

if __name__ == ‘__main__’:

ret = 1

try:

i = sys.argv[1]

except IndexError:

print ‘usage: %s <input> ‘

%(sys.argv[0])

else:

if main(i):

ret = 0

#

sys.exit(ret)

Untuk mencoba:� Pastikanlah server OpenOffi ce.org

telah dijalankan.� Pastikanlah dboverhttp telah di-

jalankan pada localhost port 9000, atau sesuaikanlah parameter ko-neksi.

Berikanlah perintah berikut untuk mendapatkan data dari spreadsheet dan menyimpannya ke database:<PREFIX_OOO>/program/python

spreadsheet_db.py <input>

#

try:

import uno

except ImportError, e:

print e

sys.exit(2)

#

param = {

‘dbn’ : ‘mysql’,

‘host’ : ‘localhost’,

‘port’ : 0,

‘user’ : ‘spreadsheet’,

‘pw’ : ‘password’,

‘db’ : ‘spreadsheet’,

‘query’ : ‘’,

}

def main(outfi le):

#

q = ‘select * from test’

param[‘query’] = q

eparam = urllib.urlencode(param)

fres = urllib.urlopen(‘http://

localhost:9000/query’, eparam)

sres = fres.read()

try:

res = yaml.load(sres)

except:

TUTORIAL EKSTRAK DATA SPREADSHEET

48_Tutorial_08-nop_EDITARIE.indd 5548_Tutorial_08-nop_EDITARIE.indd 55 6/30/2010 2:14:18 PM6/30/2010 2:14:18 PM

Page 56: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX56

res = None

if not res[0] >= 0:

return False

#

print res

#

uctx = uno.getComponentContext()

resolv = uctx.ServiceManager.

createInstanceWithContext(‘com.sun.

star.bridge.UnoUrlResolver’, uctx)

ctx = resolv.resolve(‘uno:

socket,host=localhost,port=8000;urp;

StarOffi ce.ComponentContext’)

#

smgr = ctx.ServiceManager

desktop = smgr.createInstance

WithContext(‘com.sun.star.frame.

Desktop’, ctx)

#

outurl = uno.

systemPathToFileUrl(os.path.

abspath(outfi le))

doc = desktop.loadComponent

FromURL(‘private:factory/scalc’,

‘_blank’, 0, ())

#

sheet = doc.getSheets().

getByIndex(0)

i = 0

for r in res[1]:

a = r[‘id’]

b = r[‘qty’]

#

sheet.getCellByPosition(0,

i).setString(r[‘id’])

sheet.getCellByPosition(1,

i).setString(r[‘qty’])

#

i+= 1

#

print a, b

#

ctx.ServiceManager

#

doc.storeAsURL(outurl, ())

#

doc.close(True)

return True

if __name__ == ‘__main__’:

ret = 1

try:

o = sys.argv[1]

except IndexError:

print ‘usage: %s <output> ‘

%(sys.argv[0])

else:

if main(o):

ret = 0

#

sys.exit(ret)

Untuk mencoba:� Pastikanlah server OpenOffi ce.org

telah dijalankan.

� Pastikanlah dboverhttp telah dija-lankan pada localhost port 9000, atau sesuaikanlah parameter ko-neksi.

Berikanlah perintah berikut untuk mengekspor data MySQL ke spread-sheet:<PREFIX_OOO>/program/python db_

spreadsheet.py <output>

$ /opt/openoffi ce.org2.3/program/

python db_spreadsheet.py /tmp/b.ods

[0, [{‘id’: ‘A01’, ‘qty’: 10},

{‘id’: ‘A02’, ‘qty’: 20}, {‘id’:

‘A03’, ‘qty’: 40}, {‘id’: ‘A04’,

‘qty’: 70}, {‘id’: ‘A01’, ‘qty’:

10}, {‘id’: ‘A02’, ‘qty’: 20},

{‘id’: ‘A03’, ‘qty’: 40}, {‘id’:

‘A04’, ‘qty’: 70}, {‘id’: ‘A01’,

‘qty’: 10}, {‘id’: ‘A02’, ‘qty’:

20}, {‘id’: ‘A03’, ‘qty’: 40},

{‘id’: ‘A04’, ‘qty’: 70}, {‘id’:

‘A01’, ‘qty’: 10}, {‘id’: ‘A02’,

‘qty’: 20}, {‘id’: ‘A03’, ‘qty’:

40}, {‘id’: ‘A04’, ‘qty’: 70}]]

A01 10

A02 20

A03 40

A04 70

A01 10

A02 20

A03 40

A04 70

A01 10

A02 20

A03 40

A04 70

A01 10

A02 20

A03 40

A04 70

Penjelasan:� Data tampak banyak karena se-

belumnya telah dimasukkan ber-ulang-ulang.

� Apabila diperlukan, bacalah tu-lisan: Mengakses database MySQL lewat HTTP (di edisi ini), terutama pada contoh client.

� Apabila diperlukan, bacalah tu-lisan otomatisasi OpenOffi ce.org di edisi 07/2010.�

Noprianto [[email protected]]

TUTORIAL EKSTRAK DATA SPREADSHEET

UNO Project.

48_Tutorial_08-nop_EDITARIE.indd 5648_Tutorial_08-nop_EDITARIE.indd 56 6/30/2010 2:14:20 PM6/30/2010 2:14:20 PM

Page 57: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

linuxindo (IL0090309)+nf 2 (IL0060336).indd 1linuxindo (IL0090309)+nf 2 (IL0060336).indd 1 6/30/2010 1:08:37 PM6/30/2010 1:08:37 PM

Page 58: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX58

WORKSHOP OFFICE

Kita dapat menambahkan fungsionalitas OpenOffice. org dengan Macro, yang dapat dibuat dengan berbagai bahasa pemrograman. Pada Workshop kali ini, kita akan memban-gun macro python yang akan mendapatkan output dari program fortune dan memasukkannya ke dokumen Writer aktif.

Apabila diperlukan, bacalah terlebih dahulu Workshop Menambahkan macro python pada My Macros (edisi 08/2009). Macro yang kita buat, pymacro-fortune.py akan disimpan pada My Macros.

1 Masuklah pada direktori ~/.openoffi ce.org2/user/Scripts/python dengan perintah berikut ini:

$ cd ~/.openoffi ce.org2/user/Scripts/python/

2 Pertama-tama, buatlah script pymacro-fortune.py dengan isi sebagai berikut:

#(c) Noprianto, 2010

#GPL

import os

def show_fortune():

doc = XSCRIPTCONTEXT.getDocument()

text = doc.Text

cursor = text.createTextCursor()

#

fortune = os.popen2(‘fortune’)[1].read()

#

text.insertString(cursor, fortune , 0)

g_exportedScripts = (show_fortune,)

3Pastikan fortune terinstal di sistem. Apabila tidak dite-mukan, tidak ada pesan kesalahan yang ditampilkan.

Di sistem penulis:

$ type fortune

fortune is /usr/games/fortune

4Jalankan OpenOffi ce.org Writer dan macro kini bisa diakses dari menu dialog Tools | Macros | Organize

Macros | Python... Pada dialog yang tampil, pilihlah My Macros | pymacro-fortune | show_fortune. Untuk men-jalankan, kliklah tombol Run.

Fortune akan ditambahkan pada awal dokumen.

5Penjelasan dari script pymacro-fortune.py adalah se-bagai berikut:

� Kita akan meng-export satu fungsi, yaitu show_for-tune: g_exportedScripts = (show_fortune,)

� Ambil teks dokumen aktif: doc = XSCRIPTCONTEXT.getDocument()

text = doc.Text

� Buat kursor: cursor = text.createTextCursor()

� Jalankan fortune dengan os.popen2(): fortune = os.popen2(‘fortune’)[1].read()

Fungsi ini akan mengembalikan fi le object (child_stdin, child_stdout). Kita akan membaca child_stdout.

� Tambahkan teks: text.insertString(cursor, fortune , 0)

Noprianto [[email protected]]

Tampilkan Fortune di OpenOffice.org Writer

58_Workshop_08_EDITARIE.indd 5858_Workshop_08_EDITARIE.indd 58 6/30/2010 3:21:40 PM6/30/2010 3:21:40 PM

Page 59: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

GROUP PENERBITAN MEDIA TERKEMUKAmengundang Anda yang suka tantangan untuk bergabung secara full time di Jakarta sebagai:

✔ Memiliki notebook pribadi

✔ Berpengalaman di bidang yang relevan

✔ Mampu bekerja sistem deadline.

SYARAT MUTLAKUNTUK SEMUA POSISI:

1. Ads Sales/Account Executive (AE)➥ Memiliki prinsip penjualan➥ Memahami market teknologi & media

2. Marketing Executive (ME)➥ Memiliki prinsip pemasaran➥ Memahami market media cetak

3. Creative Designer (CD)➥ Min. S1 Desain Komunikasi Visual➥ Memiliki cita rasa yang tinggi

4. Layouter (LY)➥ Memahami prinsip tata letak media cetak➥ Cekatan

5. Copy Editor (CE)➥ Min. S1 Bahasa➥ Teliti➥ Paham istwilah teknologi komputer

6. Hardware Reviewer & Tester (HR)➥ Computer freak➥ Sistematis➥ Mengikuti perkembangan hardware

Tulis lamaran Anda secara meyakinkan

dan singkat, mengenai (a) apa yang Anda

ketahui tentang kami, (b) mengapa kami

perlu memilih Anda dan (c) apa yang Anda

harapkan dari kami jika terpilih, dalam sebuah

e-mail dan kirim ke:

[email protected]

Khusus CD & LY lampiri e-mail tersebut dengan

contoh hasil karya. Kode lamaran yang Anda

minati wajib dicantumkan di SUBJECT e-mail.

E-mail yang tidak memenuhi syarat tidak akan

diproses.

7. Technologies Writer (TW)➥ Hobi menulis➥ Segudang ide➥ Mengikuti perkembangan komputer

8. Computer Virus Analyst (VA) ➥ Menyenangi penelitian di bidang keamanan

data dan virus komputer

9. Software Engineer (SE) ➥ Menguasai pemrograman➥ Akrab dengan internal system Windows

10. Web System & Database Developer (WD)➥ Menguasai LAMP & Ajax➥ Hobi mengoprek kode

lowongan kompas Regular.indd 1lowongan kompas Regular.indd 1 6/30/2010 7:49:48 PM6/30/2010 7:49:48 PM

Page 60: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX60

WORKSHOP PROGRAMMING

Menggunakan modul pickle, serialisasi ataupun deseriali-sasi objek dapat dilakukan dengan mudah.

Serialisasi/Deserialisasi Objek dengan Pickle

1Tahap pertama yang perlu dilakukan adalah proses import modul pickle:

>>> import pickle

2Selanjutnya, kita akan bekerja dengan objek sebagai berikut:

>>> a = {

... ‘name’ : ‘python’,

... ‘version’: ‘2.x’,

... }

>>> a

{‘version’: ‘2.x’, ‘name’: ‘python’}

3Pada tahap selanjutnya, kita dapat melakukan seriali-sasi untuk variabel a:

>>> ser = pickle.dumps(a)

>>> ser

“(dp0\nS’version’\np1\nS’2.x’\np2\nsS’name’\np3\

nS’python’\np4\ns.”

Apabila apabila ingin langsung disimpan ke fi le, kita bisa gunakan fungsi dump():

>>> pickle.dump(a, open(‘/tmp/ser’, ‘w’) )

>>> open(‘/tmp/ser’).read()

“(dp0\nS’version’\np1\nS’2.x’\np2\nsS’name’\np3\

nS’python’\np4\ns.”

4Setelah mengetahui contoh serialisasi, berikut contoh dari deserialisasi:

>>> b = pickle.loads(ser)

>>> b

{‘version’: ‘2.x’, ‘name’: ‘python’}

>>> b == a

True

Atau, apabila hasil serialisasi sebelumnya disimpan di fi le:>>> c = pickle.load(open(‘/tmp/ser’))

>>> c

{‘version’: ‘2.x’, ‘name’: ‘python’}

5Kita bisa juga menguraikan dengan bantuan modul pickletools:

>>> import pickletools

>>> pickletools.dis(ser)

...

highest protocol among opcodes = 0

Noprianto [[email protected]]

Menggunakan class StringIO milik modul StringIO, kita bisa bekerja dengan string layaknya sebuah file.

Memory File dengan Modul StringIO

1Tahap pertama yang perlu Anda lakukan adalah melakukan proses import modul StringIO:

>>> import StringIO

2Selanjutnya, kita akan membuat sebuah fi le memory yang kosong:

>>> f = StringIO.StringIO()

>>> f

<StringIO.StringIO instance at 0xb7bddfcc>

>>> dir(f)

3Lanjutkan dengan menambahkan string ‘halo apa kabar’ ke dalamnya:

>>> f.write(‘halo apa kabar’)

4Kemudian, kita baca isi fi le tersebut, dengan method getvalue():

>>> f.getvalue()

‘halo apa kabar’

5Kita bisa juga mendapatkan isi fi le dengan method read(). Hanya, pastikan posisi fi le tidak EOF:

� Posisi (dalam contoh ini, ada di akhir karena sama dengan panjang fi le):>>> f.pos

14

� Kita pindahkan ke awal fi le:>>> f.seek(0)

>>> f.pos

0

� Barulah kita gunakan method read():>>> f.read()

‘halo apa kabar’

� Posisi fi le kembali ke EOF:>>> f.pos

14

>>> f.read()

‘’

Noprianto [[email protected]]

58_Workshop_08_EDITARIE.indd 6058_Workshop_08_EDITARIE.indd 60 6/30/2010 3:22:13 PM6/30/2010 3:22:13 PM

Page 61: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id INFOLINUX � 08/2010 61

WORKSHOP PROGRAMMING

Menggunakan modul urlparse, kita dengan mudah dapat memecah (dan menggabungkan kembali) suatu URL.

Parsing URL dengan Modul urlparse

1Sebelum dapat melakukan parsing url, lakukan proses import modul urlparse:

>>> import urlparse

2Kita akan gunakan contoh URL berikut: http://domain.tld:12345/~user/test/download?id=1234&mode=1#a1:

>>> url = ‘http://domain.tld:12345/~user/test/download?i

d=1234&mode=1#a1’

>>> p = urlparse.urlparse(url)

>>> p

(‘http’, ‘domain.tld:12345’, ‘/~user/test/download’, ‘’,

‘id=1234&mode=1’, ‘a1’)

Bagi pengguna python 2.5 atau yang lebih baru, selain indeks integer, kita bisa gunakan atribut-atribut berikut:>>> p[0], p.scheme

(‘http’, ‘http’)

>>> p[1], p.netloc

(‘domain.tld:12345’, ‘domain.tld:12345’)

>>> p[2], p.path

(‘/~user/test/download’, ‘/~user/test/download’)

>>> p[3], p.params

(‘’, ‘’)

>>> p[4], p.query

(‘id=1234&mode=1’, ‘id=1234&mode=1’)

>>> p[5], p.fragment

(‘a1’, ‘a1’)

Untuk mendapatkan host dan port:>>> p.hostname

‘domain.tld’

>>> p.port

12345

3Hasil parsing bisa digabungkan kembali dengan urlun-parse():

>>> url2 = urlparse.urlunparse(p)

>>> url2

‘http://domain.tld:12345/~user/test/download?id=1234&mo

de=1#a1’

Noprianto [[email protected]]

Pada artikel kali ini, kita akan membahas contoh-contoh membaca dari stdin.

Teknik Membaca Output stdin

1Contoh di dalam tulisan ini dapat dijalankan dengan dua pola:Menggunakan pipe, dimana output dari program lain

akan menjadi input untuk kita. Contoh:ls | <program>

Tanpa menggunakan pipe. Untuk input, akan kita ketikkan sendiri, dan diakhiri dengan Ctrl-d. Contoh:<program>

baris 1

baris 2

<Ctrl-d untuk mengakhiri>

2Dalam contoh pertama, 1.py, apa yang kita lakukan adalah membaca dari stdin dan mencetak ke stdout.

import sys

if __name__ == ‘__main__’:

sys.stdout.write(sys.stdin.read())

Contoh:$ echo halo apa kabar | python 1.py

halo apa kabar

$ python 1.py

halo

apa

kabar

<Tekan Ctrl-d>

3Dalam contoh kedua, 2.py, program akan menjumlah-kan bilangan-bilangan yang dilewatkan ke stdin.

import sys

# ...

# Source code 2.py selengkapnya dapat ditemukan

# dalam ekstra DVD InfoLINUX edisi ini.

# ...

print total

Contoh:$ python 2.py

..

<Tekan Ctrl-d>

6

Noprianto [[email protected]]

58_Workshop_08_EDITARIE.indd 6158_Workshop_08_EDITARIE.indd 61 6/30/2010 3:22:14 PM6/30/2010 3:22:14 PM

Page 62: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX62

WORKSHOP DISTROWORKSHOP DISTRO

Qimo adalah distro Linux turunan Ubuntu/Xubuntu dengan desktop XFCE, yang ditujukan untuk pendidikan dan permainan anak-anak. Qimo juga dapat dikonfigurasi untuk perkantoran dan multimedia.

Sebelum menggunakan Qimo 2.0 secara live dari CD/DVD/fl ash disk atau menginstalnya ke harddisk, Anda harus membakar fi le qimo-2.0-desktop.iso ke CD/DVD. Jika tidak memiliki drive CD/DVD, Anda dapat memindah kan fi le iso Qimo itu ke fl ash disk dengan ban-tuan program Unetbootin di Linux/Windows atau Disk Imager di Windows (win32diskimager) atau yang sejenis.

Secara default (bawaan) Qimo 2.0 telah dilengkapi beberapa program untuk pendidikan dan permainan yang sangat cocok untuk anak usia pendidikan TK hingga SD. Namun, Qimo belum dilengkapi OpenOffi ce yang dibutuhkan untuk pendidikan sesuai kurikulum nasional mata pelajaran TIK (Teknologi Informasi dan Komunika-si). Qimo juga belum mendukung fi le multimedia popu ler yang tidak open source, seperti mp3, mp4, quicktime, VCD/DVD, dan fl ash (fl v). Workshop ini ditulis untuk mengatasi kekurangan itu.

Boot dan Instal QimoSaat CD atau fl ash disk yang telah berisi Qimo digunakan untuk booting komputer, halaman pertama akan mena-nyakan kepada Anda untuk memilih bahasa. Tekan Enter atau pilih bahasa bawaan, yaitu English. Anda juga dapat memilih bahasa Indonesia. Tunggu beberapa saat, sehingga muncul desktop Qimo seperti di Gambar 1.

Untuk menginstal Qimo ke harddisk, klik Menu | Set-tings | Install RELEASE. Langkah selanjutnya seper ti dis-tro Ubuntu 10.04 yang pernah dibahas pada edisi 06/2010. Salah satu langkah yang penting dan perlu berhati-hati adalah saat akan membuat atau mengedit partisi. Secara

default, Qimo akan menghapus semua partisi (Erase and user en-tire disk). Jika tidak ingin m e n g h a p u s seluruh data di harddisk, Anda harus ubah dengan memilih cara manual (Spe-cify partitions m a n u a l l y ) , seper ti Gambar 2.

Modifikasi DesktopDesktop XFCE bawaan Qimo memiliki kelebihan dari sisi kesederhanaan dan kecepatan. Untuk mengakses pro-gram-program pendidikan dan permainan anak-anak, di bagian bawah desktop Qimo ditambahkan beberapa icon pada suatu panel yang disebut Launcher. Jika layar moni-tor komputer Anda kecil, misalnya untuk resolusi layar 1024 x 768, maka panel di bawah itu terlalu besar sehing-ga mengganggu karena mengurangi layar untuk bekerja. � Cara mengecilkan panel, klik kanan salah satu icon,

lalu pilih Customize Panel. � Pada jendela

Panel seperti Gambar 3, ge-ser pengubah ukuran atau Size (Pixels) ke kiri, sehingga mencapai ang-ka di bawah 30 atau sesuai selera Anda.

� Anda juga dapat membuat hilang dan muncul secara otomatis dengan memilih Autohide.

Program untuk Anak-anakBerikut ini penjelasan tujuh program di panel bawah, yang dibuat khusus untuk pendidikan anak-anak. � Icon paling kiri untuk menjalankan editor teks seder-

hana Mousepad, yang mirip Notepad di Windows. � Icon kedua dari kiri untuk menjalankan gCompris,

program pendidikan dan permainan (Edutainment) dari tingkat TK hingga kelas 6 SD atau yang setara, mulai dari mengenal huruf atau membaca, berhitung atau matematika, ilmu alam, hingga merangkai listrik, dan lain-lain.

Qimo, Distro Linux untuk Anak-anak

58_Workshop_08_EDITARIE.indd 6258_Workshop_08_EDITARIE.indd 62 6/30/2010 3:22:15 PM6/30/2010 3:22:15 PM

Page 63: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id INFOLINUX � 08/2010 63

WORKSHOP DISTROWORKSHOP DISTRO� Icon ketiga dari kiri untuk menjalankan Child’s Play,

program pendidikan dan permainan untuk anak-anak, mirip tapi lebih sederhana dari gCompris.

� Icon keempat dari kiri untuk menjalankan Tux Paint, program untuk menggambar bebas seperti MS Paint.

� Icon kelima dari kiri untuk menjalankan Tux Math, program untuk bermain sambil belajar matematika mulai dari dasar seperti penjumlahan, hingga tingkat atas seperti pecahan dan fraksi.

� Icon keenam dari kiri untuk menjalankan Tux Type, program untuk belajar mengetik dengan sepuluh jari.

� Icon ketujuh dari kiri untuk menjalankan Laby, rogram untuk belajar bahasa pemrograman dengan gambar semut dan sarang laba-laba.

Mengakses Media Penyimpanan Perbedaan desktop XFCE Qimo ini dibandingkan desk-top GNOME dan KDE adalah dalam pengaksesan atau mount/umount partisi harddisk, fl ash disk, folder jaringan, dan tempat penyimpanan data lainnya. File manager yang dimiliki Qimo tidak langsung dapat me-nyambungkan (mount) media-media penyimpanan itu. Sebagai gantinya, tersedia program bernama Gigolo seb-agai penyambung media penyimpanan, dan Thunar seba-gai fi le manager.� Untuk mengakses fl ash disk yang baru Anda colokkan,

lebih dulu jalankan pengaksesnya melalui Menu | Sys-tem | Gigolo. Lalu jalankan pembuka isinya melalui Menu | File Manager.

� Pilih partisi atau nama media penyimpanan yang akan dibuka, misalnya dalam contoh ini ada partisi hard-disk yang diberi nama “data”. Klik icon data, lalu klik kanan dan pilih Connect. Setelah berhasil disambung-kan, icon data akan muncul di jendela fi le manager Thunar, sehingga Anda bisa mengakses baca atau tulis sesuai izin akses yang tersedia.

� Sebelum Anda mencabut fl ash disk atau media penyim-panan lainnya, kembali klik kanan icon-nya di jendela Gigolo, lalu pilih Disconnect. Perintah Connect dan Disconnect juga dapat dijalankan melalui menu Actions | Connect/Disconnect, atau klik icon yang tersedia.

Menginstal OpenOfficeJika Anda memiliki akses ke Internet yang baik (cepat dan murah), Anda dapat menginstal tambahan program, misalnya OpenOffi ce, melalui Synaptic Package Mana-ger. Qimo 2.0 menggunakan server repository di Internet, sama dengan yang digunakan Ubuntu 10.04.

Jika akses Internet Anda lambat atau tarifnya mahal, gunakan OpenOffi ce yang tersedia di DVD InfoLINUX. Contoh ini untuk menginstal OpenOffi ce versi 3.2 yang berbentuk tarball (OOo_3.2.0_LinuxIntel_install_wJRE_en-US_deb.tar.gz). � Ekstrak fi le tarball OpenOffi ce ke suatu direktori. � Dari terminal (Menu | Terminal), berubah jadi root

dengan perintah “sudo su”. � Lalu, pindah ke direktori hasil ekstrak dengan perin-

tah “cd OOO320_m12_native_packed-1_en-US.9483/ DEBS”.

� Jalankan perintah “sudo dpkg -i *.deb” untuk mengins-tal semua paket OpenOffi ce.

� Pindah ke direktori desktop-integration, lalu jalankan kembali perintah “sudo dpkg -i *.deb” untuk mengins-tal program yang mengatur menu OpenOffi ce di desk-top Qimo.

Menginstal Paket untuk MultimediaJika tidak tahu paket apa yang harus diinstal lebih dahulu, Anda dapat menggunakan program pemutar multimedia dari Menu | Multimedia | Movie Player untuk membuka fi le-fi le multimedia, seperti mp3, mp4, dan fl v, lalu ikuti langkah selanjutnya. Syaratnya, Anda punya koneksi Internet yang baik.

Jika tidak punya koneksi Internet yang baik, Anda dapat menggunakan kumpulan paket extras untuk Qimo atau repository Ubuntu 10.04, yang juga disertakan dalam DVD edisi 08/2010 ini. Tambahkan repository itu melalui menu Synaptic Package Manager, klik Settings | Repositories | Other Softwares, lalu tambahkan alamat folder yang berisi repository, misalnya “deb fi le:/data/ex-tras qimo/”. Setelah disimpan, klik Reload untuk meng-aktifkannya.

Cara lain lagi adalah menginstal semua paket yang ada di DVD dalam direktori extras khusus untuk Qimo, dengan perintah “dpkg -i *.deb” di terminal.

Rusmanto [[email protected]]

58_Workshop_08_EDITARIE.indd 6358_Workshop_08_EDITARIE.indd 63 6/30/2010 3:22:17 PM6/30/2010 3:22:17 PM

Page 64: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX64

KUIS INFOLINUX

08/2

010

Caranya:Di antara susunan huruf dalam kotak di atas, tersembunyi beberapa nama distro Linux. Arah tulisan bisa berupa horisontal, vertikal, maupun

diagonal, dengan arah membaca bisa dari kiri ke kanan, kanan ke kiri, atas ke bawah, atau bawah ke atas.

Termasuk dalam kategori apakah beragam paket aplikasi yang tersembunyi pada gambar di atas?

A. Wiki B. Groupware C. CCTV System

Kirimkan jawaban Anda melalui SMS (Short Message Service) dengan format: LINUX<spasi>08<spasi>[Jawaban A/B/C]<spasi>Nama

Contohnya: LINUX 08 A Budi Santosa

Kirim jawaban tersebut melalui SMS ke 7669 (tarif Rp2000++/SMS berlaku untuk semua operator).

Atau melalui kartu pos, yang dilengkapi kupon kuis yang terdapat di halaman ini, ke Kuis InfoLINUX, Jl. Kramat IV No. 11, Jakarta, 10430.

SMS atau Kartu Pos diterima paling lambat 20 Agustus 2010. Daftar pemenang akan kami umumkan pada InfoLINUX No. 10/2010.

Para pemenang harap menghubungi Sekretariat Redaksi InfoLINUX melalui telepon (021) 315-3731 ext. 127 atau e-mail ke evawani.putri@infolinux.

co.id untuk verifi kasi (tanpa verifi kasi dan pengambilan hadiah hingga dua bulan semenjak pengumuman ini, hadiah dinyatakan hangus). Setelah

verifi kasi berhasil, pemenang yang berdomisili di Jabodetabek bisa mengambil hadiah di kantor Redaksi InfoLINUX setiap hari/jam kerja, Senin-

Jumat, 9.30-16.30 WIB, dengan menyerahkan identitas diri yang masih berlaku. Hadiah bagi pemenang di luar Jabodetabek akan dikirim via pos

(ongkos ditanggung pemenang). InfoLINUX tidak bertanggung jawab atas kerusakan atau kehilangan hadiah yang terjadi selama pengiriman.

Pemenang Kuis InfoLINUX Edisi 06/2010Jawaban Edisi 06/2010: C. Ubuntu2 Pemenang STE MP5 dari ASIARAYA COMPUTRONICS1. Dedy Suhariyanto 081553417xxx2. Iwan Setyawan 085225015xxx

Ingin mendapatkan hadiah STE MP5 dari ASIARAYA COMPUTRONICS?

ASIARAYA COMPUTRONICSmenyediakan 2 buah STE MP5 untuk 2 orang pemenang. Baca keterangannya di bawah ini.

64_Kuis_08_EDITARIE.indd 6464_Kuis_08_EDITARIE.indd 64 6/30/2010 3:08:53 PM6/30/2010 3:08:53 PM

Page 65: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

Berlangganan Hemat MAKIN DEKATDENGAN ANDA

LUAR JAWA Medan: Pustaka Obor 061-4145622 • Pekanbaru: Jack 0761-27706 • Padang: Taman Bacaan 0751-35150 • Palembang: TB Sriwijaya 0711-320679 • Jambi: Gloria 0741-23360, Elieson 0741-24424 • Bengkulu: TB Zaldy 0736-24291 • Pangkal Pinang: Supermini 0717-423973, Idris Hadi 0717-424547 • Tanjungkarang: Tohoma 0721-261839, Intisari 0721-64026 • Pontianak: Angkasajaya 0561-734689, Ridho 0561-775843 • Balikpapan: TBTerang 0542-421301, Antra 0542-396003 • Samarinda: Aziz 0541-260235, A.Terang 0541-741768 • Banjarmasin: Naprin Budhi 0511-65475 • Palangakaraya: Fathir 0536-28317 • Makasar: Telly 0411-321795, IndahJaya 0411-330707 • Kendari: TB Ade 0401-21613 • Palu: Ramedia 0451-421218, Masrun 0451-423805 • Manado: Lok Book Store 0431-852734 • Denpasar: Corsica 0361-226358, TB Anna 0361-427594, Gunung Agung dan Gramedia • Mataram: Titian 0370-622188 • Kupang: Rapi 0380-832033

PULAU JAWA Cilegon: Torpedo Agc 0254-391460 • Serang: Estica Agc 0254-202292 • Bandung: Alphabet Agc 022-6006000, Gunaraya 022-4232513, Wahyudin Agc 022-6011414 • Garut: Monita Agc 0262-23479 • Tasikmalaya: Nasuha 0265-334064 • Indra mayu: Kompas Agc 0234-484032 • Cirebon: Cirebon Agc 0231-203376 • Tegal: Tegal News Agc 0283-356138 • Pekalongan: TB Raja murah 285- 424463, Fajar Agc 0285-431466 • Semarang: Erlangga Agc 024 -8313405, Hartono Agc 024-3545301, Adila Agc 024-3560615, Hariani Agc 024-3541832, TB Prasojo 024-569561 • Solo: TB ABC 0271-644345, Sendang Mulia Agc 0271-633751 • Yogya karta: Hidup Agc 0274-587921-Lamhaba 0274-541808, Togamas, dan Gramedia • Magelang: TB Larista 0293-368060 • Purwo kerto: TB ABC 0281-638344, SHS Agc 0281-622485 • Surabaya: Kantor Perwakilan 031-8291511, Gunung Agung dan Gramedia • Malang: Yahya Oentoeng 0341-3410105 • Kediri: TB Alief 0354-684211 • Jember: TB Amanah, Gunung Agung

TOKO BUKU JABOTABEK Maruzen: Blok M 7268334, Sultan Agung 8307641 • Kharisma: Cijantung 87793375, Cinere 7534125, Cilandak 78840163, Taman Anggrek 5639343, Puri 5822629, Pamulang 7445019 Kalimalang 8601887, Klender 86605956 • Gramedia: Matraman 8581763, Pondok Indah 7506997, Pintu Air 3843800, Melawai 7203445, Gajahmada 2601234, Citraland 5606363, Pluit 6683620, Cinere 7540663, Bekasi 8840401, Bogor 0251-356341 • Gunung Agung: Pondok Indah 7506901, Taman Anggrek 5639045, Citraland 5681512, Kwitang 3102004, Blok M 7209344, Arion 7413078, Atrium 3867831, Lokasari 6254730, Bogor 0251-326876 • News Stand Niaga Tower 2505250 • Time PI 330434 • Newstand WTC Sudirman 5211216, Mandarin 5678888 • Trio 7982331 • JBC Kalibata 7970350 • CabangTB Utama

Nama Lengkap:Alamat: Kode Pos:Telepon: Fax:Mobile/E-mail:Mulai berlangganan Edisi:

Saya ingin berlangganan majalah InfoLINUX:

-----------------------------------------------

----------------------------------------------------------------------

FORMULIR BERLANGGANANDATA PRIBADI(Pilih dengan tanda �dan isi dengan huruf kapital)

Cara Pembayaran:

Tanggal :

Tanda Tangan :

�NO. WILAYAH PAKET HARGA LANGGANAN LANGGANAN

1. Jabodetabek � 6 Bulan (6 Edisi) Rp229.500

� 1 Tahun (12 Edisi) Rp432.000

2. Pulau Jawa � 6 Bulan (6 Edisi) Rp240.000

(Jateng, Jabar, Jatim) � 1 Tahun (12 Edisi) Rp450.000

3. Bali/Sumbar � 1 Tahun (12 Edisi) Rp540.000

4. Sumut/Kalimantan/Sulawesi � 1 Tahun (12 Edisi) Rp558.000

5. Indonesia Timur � 1 Tahun (12 Edisi) Rp558.000

Hubungi:Sirkulasi Pinpoint Publications (DPKU)Telp: (021) 4682-6816, 7079-6499Fax: (021) 4682-8919e-mail: [email protected]

Transfer ke BCA Cabang Raden Saleha/n PT DIAN PASIFIK KOMUNIKASI UTAMANo. Rekening 634 018 0079

Bukti transfer & formulir iniharap di-fax ke (021) 4682-8919Up. Bagian Langganan

langganan linux_08.indd 1langganan linux_08.indd 1 6/30/2010 3:45:30 PM6/30/2010 3:45:30 PM

Page 66: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

www.infolinux.web.id08/2010 � INFOLINUX66

Beragam Format Serialisasi DataBeragam format serialisasi data populer, termasuk JSON, YAML, dan yang lain, sudah tersedia di Linux. Selain itu, edisi depan juga membahas dukungan format serialisa si data untuk beragam bahasa pemrograman.

Topik-topik pada edisi mendatang masih mungkin berubah.

Ekspor Data MySQL ke PDFMemiliki tabel dalam database MySQL dan ingin mengekspor ke PDF? Mudah saja, jika sudah menge-tahui tekniknya. Ingin mengetahui tekniknya? Tunggu penjelasannya di InfoLINUX edisi mendatang.

NANTIKAN SABILY 10.04

Aplikasi Pendidikan OnlineDalam kegiatan proses belajar-mengajar secara online, dibutuhkan tools e-learning yang baik. Pada edisi depan, akan dijelaskan penggunaan BigBlueButton yang dapat mempermudah kegiatan belajar-mengajar secara online.

Audit Akses File di SambaSuatu saat, fi le penting yang terdapat di server Samba terhapus, namun Anda sulit mengetahui siapa user yang menghapusnya. Untuk menghindari hal ini, gunakan fi tur audit akses fi le/direktori pada server Samba.

Makin Asyik Ber-Twitter Ria

EDISI MENDATANGTerbit23 Agustus 2010

InfoLINUX 09/2010

66_Next Issue_08_EDITARIE.indd 6666_Next Issue_08_EDITARIE.indd 66 6/30/2010 4:31:41 PM6/30/2010 4:31:41 PM

Page 67: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

Untuk pemesanan langsung hubungi:Sirkulasi Pinpoint Publications (DPKU) Telp: (021) 4682-6816, 7079-6499. Fax: (021) 4682-8919 [email protected]

PCMEDIA EXTRA 02Mengupas sistem operasi Windows 7 secara detail.

PC MILD EXTRA 03Meningkatkan performa dan kinerja komputer.

INFO LINUX EXTRA 03Memanipulasi foto dan gambar dengan GIMP.

LENGKAPI

KOLEKSI

ANDA!MAJALAH EXTRASPECIAL PCMEDIA GROUP untuk para pengguna PC dengan beragam tema dan tutorial konkret plus CD/DVD.

PCMEDIA SPECIAL 02Offi ce 2010 Beta plus trik dan tutorial komplet.

PCMEDIA EXTRA 01Cara memroteksi komputer Windows XP.

INFO LINUX EXTRA 02Memahami distro Linux Ubuntu dengan mudah.

PCMEDIA SPECIAL 03Panduan, tes, dan tip&trik ponsel BlackBerry.

PC MILD EXTRA 02Meningkatkan performa dan kinerja komputer.

IKlan Bareng EKSTRA_AL complete REG.indd 1IKlan Bareng EKSTRA_AL complete REG.indd 1 6/30/2010 1:16:21 PM6/30/2010 1:16:21 PM

Page 68: mirror.smkn1pml.sch.idmirror.smkn1pml.sch.id/Majalah/INFO LINUK/2010/Binder-PDF...INSIDE DVD Frets On Fire X 3.121 Bermain gitar layaknya seorang raja gitar yang sedang konser Google

terra (IL0540102).indd 1terra (IL0540102).indd 1 6/4/2010 8:24:54 PM6/4/2010 8:24:54 PM