StarOffice Calc Fungsi Lookup di...

28
www.infolinux.web.id 50 InfoLINUX 09/2004 TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial Spreadsheet memiliki berbagai fungsi yang dibutuhkan dalam membantu mengelola bisnis. Salah satu fungsi yang sangat berguna adalah fungsi lookup. Fungsi Lookup di Calc S preadsheet diciptakan karena tool tersebut bisa membantu seseorang mengelola bisnis. Tentu saja bukan bisnis skala enterprise, tapi banyak bagian bisnis yang bisa diselesaikan dengan ban- tuan spreadsheet. Spreadsheet dirancang untuk menjadi one stop solution untuk berbagai tugas pengelolaan bisnis sederhana. Tentu saja, segala kemampuan spread- sheet tersebut sangat ditunjang oleh adanya berbagai fungsi. Mulai dari fungsi mate- matika, statistika, keuangan, tanggal waktu, pemformatan, dan lain sebagainya. Kali ini, kita akan melihat salah satu fungsi spread- sheet yang sangat berguna, yaitu fungsi lookup. Data yang baik adalah data yang di- simpan secara terstruktur dan memiliki integritas tinggi. Dengan demikian, diharap- kan tidak ada data yang terduplikasi, tidak konsisten ataupun susah untuk dicari. Ketika merancang suatu data, umumnya, kita merancang data master. Data master haruslah tunggal dan memiliki integrasi tinggi. Data tersebut mungkin akan di- butuhkan oleh banyak entitas lain. Setelah merancang data master, umum- nya kita akan merancang data transaksi. Contoh data transaksi yang umum adalah penjualan harian. Dalam laporan penjualan harian, umumnya yang disajikan hanyalah kode barangnya. Untuk melihat detail nama barang dan informasi lain, kita akan melihat (lookup) ke data master. Spreadsheet Calc menyediakan segala fungsi lookup yang diperlukan. Fungsi yang dimiliki, yakni hlookup atau vlookup kompatibel dengan Microsoft Excel. Dengan demikian, pengetahuan fungsi lookup di Excel bisa dimanfaatkan di sini. Vertikal atau horizontal Terdapat dua fungsi lookup yang populer: vlookup dan hlookup. Keduanya memiliki fungsi yang sama, dan tidak ada satu yang lebih baik dari yang lain. Kapankah kita akan menggunakan vlookup dan kapankah kita akan menggunakan hlookup? Jawabannya adalah perhatikan jenis tabel master Anda. Apabila tabel master Anda tersusun seperti tabel 1, maka fungsi lookup yang digunakan adalah fungsi vlookup. Sebaliknya, apabila tabel Anda tersusun seperti pada tabel 2, maka fungsi lookup yangdigunakan adalah fungsi hlookup. Sebaiknya, dalam melakukan pendataan yang baik, jangan biasakan untuk men- campuradukkan berbagai jenis visualisasi tabel. Pilih satu dan konsistenlah. Walau tidak ada yang salah dengan hal ini, paling tidak akan terlihat lebih indah dan pengguna hanya perlu tahu satu jenis fungsi. Mempersiapkan data master Sebagai contoh, kita akan mempergunakan data master vertikal sebelumnya. Kita perlu memberikan nama kepada tabel master tersebut agar dikenali oleh StarOffice. Lakukan langkah berikut ini untuk mem- berikan nama pada tabel: 1. Blok keseluruhan isi tabel. 2. Akses menu Insert|Names|Define. 3. Sebuah dialog akan ditampilkan. Berikan nama yang bersesuaian, misalnya msBarangv. Tabel 2. Kode KNS-10100 KNS-10210 KNS-30300 KNE-40000 KNE-50000 Harga 2000000 2500000 3250000 10000000 15000000 Tabel 1. Kode Harga KNS-10100 2000000 KNS-10210 2500000 KNS-30300 3250000 KNE-40000 10000000 KNE-50000 15000000 Berikut ini adalah prototipe fungsi vlookup: =VLOOKUP(Search criterion;array;index; sort order) Parameter Deskripsi Search criterion Nilai yang ingin dicari. Array Tabel di mana data akan dicari. Index Nomor kolom di dalam array yang mengandung nilai yang akan dikembalikan. Sort order Parameter yang diberikan untuk menandakan apakah kolom pertama dalam array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak terurut, dan TRUE apabila terurut. Berikut ini adalah prototipe fungsi hlookup: =HLOOKUP(Search criterion;array;index; sort order) Parameter Deskripsi Search criterion Nilai yang ingin dicari. Array Tabel dimana data akan dicari. Index Nomor baris di dalam array yang mengandung nilai yang akan dikembalikan. Sort order Parameter yang diberikan untuk menandakan apakah baris pertama dalam array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak terurut, dan TRUE apabila terurut. Prototipe fungsi StarOffice Calc

Transcript of StarOffice Calc Fungsi Lookup di...

Page 1: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

www.infolinux.web.id50 InfoLINUX 09/2004

TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

Spreadsheet memiliki berbagai fungsi yang dibutuhkan dalam membantu mengelolabisnis. Salah satu fungsi yang sangat berguna adalah fungsi lookup.

Fungsi Lookup di Calc

Spreadsheet diciptakan karena tool

tersebut bisa membantu seseorang

mengelola bisnis. Tentu saja bukan

bisnis skala enterprise, tapi banyak bagian

bisnis yang bisa diselesaikan dengan ban-

tuan spreadsheet. Spreadsheet dirancang

untuk menjadi one stop solution untuk

berbagai tugas pengelolaan bisnis sederhana.

Tentu saja, segala kemampuan spread-

sheet tersebut sangat ditunjang oleh adanya

berbagai fungsi. Mulai dari fungsi mate-

matika, statistika, keuangan, tanggal waktu,

pemformatan, dan lain sebagainya. Kali ini,

kita akan melihat salah satu fungsi spread-

sheet yang sangat berguna, yaitu fungsi

lookup.

Data yang baik adalah data yang di-

simpan secara terstruktur dan memiliki

integritas tinggi. Dengan demikian, diharap-

kan tidak ada data yang terduplikasi, tidak

konsisten ataupun susah untuk dicari.

Ketika merancang suatu data, umumnya,

kita merancang data master. Data master

haruslah tunggal dan memiliki integrasi

tinggi. Data tersebut mungkin akan di-

butuhkan oleh banyak entitas lain.

Setelah merancang data master, umum-

nya kita akan merancang data transaksi.

Contoh data transaksi yang umum adalah

penjualan harian. Dalam laporan penjualan

harian, umumnya yang disajikan hanyalah

kode barangnya. Untuk melihat detail nama

barang dan informasi lain, kita akan melihat

(lookup) ke data master.

Spreadsheet Calc menyediakan segala

fungsi lookup yang diperlukan. Fungsi yang

dimiliki, yakni hlookup atau vlookup

kompatibel dengan Microsoft Excel. Dengan

demikian, pengetahuan fungsi lookup di

Excel bisa dimanfaatkan di sini.

Vertikal atau horizontalTerdapat dua fungsi lookup yang populer:

vlookup dan hlookup. Keduanya memiliki

fungsi yang sama, dan tidak ada satu yang

lebih baik dari yang lain. Kapankah kita akan

menggunakan vlookup dan kapankah kita

akan menggunakan hlookup?

Jawabannya adalah perhatikan jenis tabel

master Anda. Apabila tabel master Anda

tersusun seperti tabel 1, maka fungsi lookup

yang digunakan adalah fungsi vlookup.

Sebaliknya, apabila tabel Anda tersusun

seperti pada tabel 2, maka fungsi lookup

yangdigunakan adalah fungsi hlookup.

Sebaiknya, dalam melakukan pendataan

yang baik, jangan biasakan untuk men-

campuradukkan berbagai jenis visualisasi

tabel. Pilih satu dan konsistenlah. Walau

tidak ada yang salah dengan hal ini, paling

tidak akan terlihat lebih indah dan pengguna

hanya perlu tahu satu jenis fungsi.

Mempersiapkan data masterSebagai contoh, kita akan mempergunakan

data master vertikal sebelumnya. Kita perlu

memberikan nama kepada tabel master

tersebut agar dikenali oleh StarOffice.

Lakukan langkah berikut ini untuk mem-

berikan nama pada tabel:

1. Blok keseluruhan isi tabel.

2. Akses menu Insert|Names|Define.

3. Sebuah dialog akan ditampilkan. Berikan

nama yang bersesuaian, misalnya

msBarangv.

Tabel 2.

Kode KNS-10100 KNS-10210 KNS-30300 KNE-40000 KNE-50000Harga 2000000 2500000 3250000 10000000 15000000

Tabel 1.

Kode HargaKNS-10100 2000000KNS-10210 2500000KNS-30300 3250000KNE-40000 10000000KNE-50000 15000000

Berikut ini adalah prototipe fungsi vlookup:=VLOOKUP(Search criterion;array;index; sort order)Parameter DeskripsiSearch criterion Nilai yang ingin dicari.Array Tabel di mana data akan dicari.Index Nomor kolom di dalam array yang mengandung nilai yang akan dikembalikan.Sort order Parameter yang diberikan untuk menandakan apakah kolom pertama dalam

array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidakterurut, dan TRUE apabila terurut.

Berikut ini adalah prototipe fungsi hlookup:=HLOOKUP(Search criterion;array;index; sort order)Parameter DeskripsiSearch criterion Nilai yang ingin dicari.Array Tabel dimana data akan dicari.Index Nomor baris di dalam array yang mengandung nilai yang akan dikembalikan.Sort order Parameter yang diberikan untuk menandakan apakah baris pertama dalam

array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidakterurut, dan TRUE apabila terurut.

Prototipe fungsi

StarOffice Calc

Page 2: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

51InfoLINUX 09/2004www.infolinux.web.id

TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

4. Tutup dialog tersebut dan pastikan nama

tabel Anda tercantum pada Sheet Area di

bawah nama font di toolbar.

Contoh penggunaan VlookupContoh lookup sederhana. Kita isikan sel E1

dengan KNS-10100 dan kita berharap sel F1

akan berisikan harga dari KNS-10100.

Ketikkan KNS-10100 di E1 dan ketikkan for-

mula dan function berikut di F1:

=VLOOKUP(E1;msBarangv;2;0)

Contoh berikutnya. Kita memiliki tabel

transaksi dengan tiga kolom: Kode, Qty dan

Pendapatan. Yang terisi hanyalah Kode dan

Qty. Untuk mengetahui Pendapatan perkode

barang, tentulah kita harus mengetahui

harga satuannya terlebih dahulu. Setelah itu,

barulah kita kalikan dengan Qty dan di-

simpan sebagai pendapatan.

Tabel master vertikal. Tabel master horizontal.

Berikut ini adalah visualisasi tabel kita:

A B C1 Kode Qty Pendapatan2 KNS-10100 2003 KNS-10210 4004 KNS-30300 305 KNE-40000 106 KNE-50000 10

Tujulah C2 dan ketikkanlah formula dan

fungsi berikut ini:

=VLOOKUP(A2;msBarangv;2;0)*B2

Setelah itu, tariklah isi sel tersebut ke

bawah sampai ujung tabel. Dengan demi-

kian, persoalan kita pun selesai.

Berikut ini adalah penjelasannya. Per-

tama-tama, kita perlu memahami bahwa

kita perlu mendapatkan harga barang dari

StarOffice Calc

Pemberian nama tabel master. Hasil lookup.

kodenya. Kita akan melihat ke tabel data

master kita dengan fungsi vlookup. Setelah

mendapatkan harga, kita perlu mengalikan

dengan kolom B untuk mendapatkan hasil

di kolom C.

Pada saat melakukan vlookup, kita akan

mengambil kriteria dari kolom A, melihat

tabel msBarangv di kolom ke-2 dengan

asumsi kolom pertama pada msBarangv

tidak terurut. Harap diperhatikan bahwa

kita tidak mengambil dari kolom pertama

di msBarangv. Apa yang kita butuhkan ada

di kolom ke-2. Sementara kolom pertama

adalah kolom untuk mencocokkan. Oleh

karena itu, parameter ketiga dari vlookup

kita berisikan nilai 2. Untuk fungsi hlookup,

gantikan saja kolom dengan baris dan

sebaliknya, dan Anda akan mendapatkan

fungsi yang serupa!�Noprianto ([email protected])

Page 3: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

www.infolinux.web.id52 InfoLINUX 09/2004

TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

Akhir–akhir ini, popularitas bahasa scripting semakin menanjak. Bahasa scripting punsemakin mendapat di hati para programer. Salah satunya adalah Ruby. Simak ulasannyaberikut.

Pemrograman Ruby

Salah satu alasan bahasa scripting

semakin populer adalah karena

kesederhanaannya, powerful, dan sa-

ngat mudah digunakan serta dikembangkan.

Bahasa scripting semakin diakui keberadaan-

nya, salah satu buktinya adalah Google dan

Nokia yang menggunakan bahasa scripting

Python dalam produk mereka. Mungkin

Anda selama ini sudah cukup puas dengan

bahasa pemrograman yang ada seperti Java,

C, C++, VB, dan sebagainya.

Mengapa kita memerlukan bahasa script-

ing? Bahasa scripting dirancang untuk tipe

aplikasi yang berbeda dengan bahasa pem-

rograman sistem seperti C dan C++. Bahasa

scripting sangat cocok digunakan sebagai

glue language(bahasa perekat) misalnya

untuk membuat interface antarkomponen-

komponen. Walaupun bahasa scripting

bersifat interpreter dan lebih lambat di-

bandingkan dengan bahasa compiler seperti

C dan C++, hal tersebut jarang diungkit

sebab bagian penting dari suatu program

misalnya yang berhubungan dengan sistem

tetap akan dibuat dengan bahasa pem-

rograman sistem seperti C dan C++, sedang-

kan bahasa scripting berfungsi sebagai glue

language untuk menghubungkan antar

komponen–komponen sistem tersebut

misalnya untuk GUI interface.

Pada umumnya, bahasa scripting memi-

liki string processing yang sangat akurat

misalnya regular expression sehingga sangat

cocok untuk administrator sistem untuk

membuat shell script yang powerful. Di pihak

lain, bahasa scripting menawarkan pengem-

bangan aplikasi yang cepat misalnya pem-

buatan aplikasi GUI, web scripts, system

utilities, dan aplikasi yang membutuhkan

pemrosesan string ataupun perhitungan

yang akurat.

Dalam perhitungan, bahasa scripting

tidak kalah jika dibandingkan dengan

bahasa compiler seperti C dan C++.

Sejarah singkat RubyBahasa Ruby lahir pada tanggal 23 Februari

1993 dan masuk ke Amrik pada tahun 2000.

Pada awalnya, pembuat bahasa ini Yukihiro“Matz” Matsumoto semasa kuliahnya

sangat menyenangi pemrograman berorien-

tasi objek dan bahasa scripting, kemudian

dia melakukan riset terhadap bahasa script-

ing Perl dan Python. Akan tetapi dia tidak

menemukan yang diinginkannya.

Menurutnya bahasa Perl kurang power-

ful dan bahasa Python kurang object-ori-

ented, sehingga ia memutuskan untuk

membuat suatu bahasa yang lebih powerful

daripada Perl dan lebih object-oriented dari

Python. Lahirlah bahasa baru yang dinama-

kan Ruby yang berarti sejenis batu permata.

Dewasa ini, Ruby sudah mulai diterima oleh

para programmer dunia. Konon, Ruby lebih

populer daripada Python di Jepang.

Fitur–fitur Ruby� Ruby merupakan bahasa interpreter.

� Ruby memiliki sintaks yang sederhana,

mudah dipelajari dan dipahami.

� Ruby mendukung exception handling

seperti halnya Java dan Python.

� Ruby kaya akan pustaka–pustaka siap

pakai yang powerful.

� Ruby murni merupakan bahasa ber-

orientasi objek di mana semua datanya

adalah objek, begitu pula dengan angka

8 yang merupakan instansi dari kelas

FixNum.

� Ruby mendukung single-inheritance dan

modul mix-in yang serupa dengan inter-

face di Java.(Multiple-inheritance dapat

digantikan dengan menggunakan fitur

mix-in ini).

� Ruby memiliki portabilitas yang tinggi

antar-platform sehingga dapat berjalan di

berbagai OS seperti UNIX, Linux, DOS,

Windows 95/98/Me/NT/2000/XP,

MacOS, BeOS, OS/2, dan sebagainya.

� Ruby mendukung dynamic-typing, se-

perti halnya Python di mana kita tidak

perlu mendeklarasikan tipe untuk suatu

variabel.

� Ruby mendukung garbage collection

seperti halnya Java dan Python di mana

Anda tidak perlu membebaskan memory

yang dialokasi( mis. free() di C) . Variabel

yang tidak lagi digunakan akan segera

dibebaskan oleh garbage collector. De-

ngan demikian, Anda tidak perlu berhu-

bungan dengan manajemen memory

yang merumitkan.

� Ruby mudah dikembangkan dengan

bahasa C seperti halnya Python misalnya

dengan menggunakan interface SWIG.

� Ruby lahir dari komunitas, sehingga Ruby

memiliki dukungan komunitas yang siap

membantu Anda jika menemui kesulitan.

� Dan yang terakhir, tentunya Ruby gratis

bahkan untuk aplikasi komersial.

Instalasi RubyPada artikel ini, penulis menggunakan Ruby

ver 1.8.0 dari distro Mandrake 9.2 . Untuk

mendapatkan versi terbaru, Anda dapat

mengunjungi situs resmi www.ruby-lang.org.

Ruby biasanya disertakan dalam distro Linux

umumnya seperti Mandrake dan SUSE.

Untuk mempermudah instalasi tanpa

command-line, Anda dapat menggunakan

Control Center pada Mandrake ataupun Yast

pada SuSe.

$ rpm -ivh ruby-1.8.0-4mdk

$ irb

irb(main):001:0>

Dasar pemrograman RubySebagai bahasa scripting yang berbasis inter-

preter, Ruby menawarkan modus interaktif,

yakni Interactive Ruby yang disingkat dengan

irb. Untuk masuk ke modus interaktif Ruby,

Anda cukup mengetikkan irb pada command

prompt shell Anda, untuk keluar Anda cukup

Ruby

Page 4: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

53InfoLINUX 09/2004www.infolinux.web.id

TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

menekan tombol Ctrl-D atau ketikkan exit.

Anda dapat menambahkan opsi—simple-

prompt pada irb agar bentuk prompt-nya

berubah menjadi >>.

Di samping itu, tentunya program Ruby

juga dapat disimpan dalam file berextension

‘.rb’. Sama halnya seperti Python, modus

interaktif Ruby juga dapat digunakan sebagai

kalkulator untuk perhitungan sederhana.

Kemampuan menghitung Ruby tidak kalah

jika dibandingkan dengan Python. Konon,

Ruby memiliki kecepatan eksekusi program

yang lebih cepat dibandingkan dengan Python.

$ irb —simple-prompt

>> 2 + 3 - 1

=> 4

>> 3 * 2 / 2

=> 3

>> 4 % 3 ** 2

=> 4

>> 5.0/2.0

=> 2.5

Untuk tipe data angka yang dapat di-

tangani oleh Ruby, akan dibahas lebih de-

tail pada bagian bawah. Sekarang kita akan

mengenal lebih jauh tentang Ruby, terutama

sintaks–sintaks dasarnya.

1. Aturan penamaan variabelKarena Ruby bersifat dynamic-typing, Anda

tidak perlu mendeklarasikan tipe dan variabel

yang ingin Anda gunakan seperti pada bahasa

C. Anda cukup memasukkan nilai ke variabel

yang ingin Anda pakai. Aturan penamaan

variabel sama dengan aturan penamaan

variabel pada umumnya, yakni tidak boleh

dimulai dengan angka dan tidak memakai

keyword penting dari bahasa tersebut.

Berikut contoh deklarasi variabel:

Contoh valid:

x = 888

ini_variabel_string = “halo”

Contoh tidak valid:

8x = 888

while = “halo” # while adalah

reserved keyword

2. KonstantaKonstanta tidak lain adalah sebuah variabel

yang isinya tetap (tidak berubah). Konstanta

di Ruby dideklarasikan dengan huruf kapital

pada huruf pertama. Suatu konstanta tetap

dapat diubah nilainya. Pemberian status

konstanta pada suatu variabel hanya akan

memberikan suatu peringatan apabila kita

mengubah isi konstanta tersebut.

>> Pi = 3.14

=> 3.14

>> Pi = 3.1428

(irb):2: warning: already

initialized constant Pi

=> 3.1428

>> Pi

=> 3.1428

3. Input OutputUntuk meminta input-an dari user, kita

menggunakan perintah gets. Sedangkan

untuk output ke layar monitor, kita dapat

menggunakan puts, print maupun printf.

>> puts “Halo, pa kabar ?”

Halo, pa kabar?

=> nil

>> print “Halo, pa kabar ?”

Halo, pa kabar ?=> nil

>> nama = gets

Eric

=> “Eric\n”

>> printf “Nama saya %s”, nama

printf “Nama saya %s”, nama

Nama saya Eric

=> nil

Adapun perbedaan antara puts , print

dan printf yakni di mana puts akan menam-

bahkan karakter newline(‘\n’) pada akhir

string dan parameternya harus string,

sedangkan print hanya mencetak string

tanpa menambahkan karakter newline,

printf sama dengan print; bedanya printf

mengenal formatting seperti %s untuk

string,%f untuk float, %d untuk integer, dan

seterusnya. Perintah printf ini sama dengan

perintah printf di bahasa C.

4. Struktur programProgram Ruby umumnya juga memakai in-

dentasi seperti bahasa Python. Akan tetapi

indentasi tidak mutlak harus dilakukan,

karena Ruby menggunakan keyword end

untuk menandakan akhir dari suatu bagian

program.

5. Lain-lainMungkin pada beberapa contoh di atas,

Anda sering melihat tulisan nil. Nil berarti

suatu objek di Ruby sama dengan NULL di

bahasa C. Nil berarti hasil eksekusi perintah

tersebut tidak mengembalikan objek apapun

alias nil (tidak memiliki return value).

Misalkan perintah puts hanya mencetak

string ke layar dan tidak mengembalikan

objek apapun untuk disimpan alias nil. Akan

tetapi lainnya halnya dengan a = “halo” akan

mengembalikan objek String “halo” yang

akan disimpan dalam variabel a.

Untuk komentar pada program Ruby,

Anda dapat menggunakan tanda # . Untuk

lebih dari satu statement pada satu baris ,

Anda dapat menggunakan pemisah ‘;’. Sedang-

kan untuk statement yang lebih dari satu baris,

Anda dapat menggunakan tanda ‘\’.

>> a = 1#Variabel a berisi 1

=> 1

>> print “Halo “; puts “ apa

kabar ?”

Halo apa kabar ?

=> nil

>> b = 1 + 3 + 5 \

?> + 7 + 9

=> 25

Seperti umumnya untuk contoh pertama

program, kita akan membuat program

“Hello World !”. Berikut contohnya:

#hello.rb

#!/usr/bin/env ruby

puts “Hello World !”

Program di atas akan mencetak tulisan

“Hello World !” pada console Anda. Untuk

menjalankan hello.rb, Anda cukup me-

ngetikkan ruby hello.rb ataupun dapat

mengubah file permission menjadi execut-

able dengan perintah chmod +x hello.rb dan

menjalankannya.

$ cat > hello.rb

$ ruby hello.rb

Hello World !

$ chmod +x hello.rb

$ ./hello.rb

Hello World !

Sebelum melangkah lebih lanjut, kita

perlu mengetahui perbedaan objek dengan

kelas. Objek adalah suatu unit data. Sedang-

kan kelas adalah jenis dari objek tersebut.

Misalnya ada dua angka 5 dan 8 keduanya

adalah objek yang berbeda, akan tetapi

Ruby

Page 5: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

www.infolinux.web.id54 InfoLINUX 09/2004

TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

mereka tergolong kelas yang sama Integer,

tepatnya kelas FixNum.

Objek Kelas Metode“Halo” String reverse, strip, ...1 .. 9 Range min, max, ...5 FixNum +, - ,* , /, %, ...83.5 Float +, - ,* ,/, %, ...[1, 2, “a”] Array push, pop, ...{“r” => “Ruby”} Hash delete,fetch, ...

Di samping itu, Anda juga perlu mengerti

tentang metode suatu kelas. Metode adalah

suatu hal yang dapat dilakukan pada suatu

objek. Untuk mengetahui tipe/kelas dari

suatu objek, kita dapat menggunakan metode

class ; sedangkan apabila kita ingin menge-

tahui metode-metode apa saja yang berlaku

umum untuk objek tersebut, Anda dapat

metode methods.

>> a = 1

=> 1

>> a.class

=> Fixnum

>> a.methods

=> [“to_a”, “%”,

“instance_eval”, “<<“,

“prec_i”, “coerce”, “&”,

“type”, “>>”, “ceil”,

“protected_methods”, “div”,

“extend”, ...]

Setelah berkenalan dengan dasar-dasar in-

terpreter Ruby, kini saatnya untuk membahas

beberapa tipe data dasar yang disediakan Ruby

yang tentunya merupakan instansi dari kelas–

kelas mengingat Ruby adalah bahasa ber-

orientasi objek yang murni. Di samping itu,

kita juga akan membahas beberapa metode

yang umum dari kelas– kelas tersebut.

1. AngkaRuby dapat menangani angka baik yang

bertipe integer maupun float. Untuk tipe data

Integer di Ruby, kelas Integer dibagi dalam

dua kelas yakni FixNum dan BigNum. Angka

dengan batas -230 sampai 230–1 tergolong

dalam kelas FixNum; apabila suatu angka

telah melampaui batas tersebut, maka akan

digolongkan dalam kelas BigNum. Karena

Ruby bersifat dynamic–typing, Anda tidak

perlu melakukan konversi dari FixNum ke

BigNum karena konversi akan dilakukan

secara otomatis. Sedangkan untuk angka

yang bertipe float, Ruby akan menganggap

objek angka tersebut merupakan instansi dari

kelas Float. Seperti bahasa pemrograman

umumnya, pada Ruby Anda dapat meng-

gunakan prefiks (awalan) untuk menandakan

arti angka tersebut, misalya untuk menyata-

kan bilangan negatif, 0 untuk bilangan oktal

, 0b untuk bilangan biner dan 0x untuk

bilangan heksadesimal serta e untuk bilangan

eksponensial.

Untuk mempermudah penulisan suatu

angka dengan nilai yang sangat besar, Anda

dapat membubuhkan karakter _ pada

penulisan angka (karakter _ tidak akan

disimpan, hanya untuk membantu saja).

>> a = 2

=> 2

>> a.class

=> FixNum

>> a = a ** 31

=> 2147483648

>> a.class

=> BigNum

>> 188_888_000_000

=> 188888000000

>> 0x6AF

=> 1711

>> 1.89e+18

=> 1.89e+18

>> b = 1.4

=> 1.4

>> b.class

=> Float

2. StringTipe data String di Ruby sama dengan tipe

data String pada bahasa pemrograman lain

umumnya. Untuk membuat tipe data String,

anda dapat menggunakan kutip satu ‘

ataupun kutip dua “ . Adapun perbedaan di

antara keduanya, yakni di mana objek String

yang dibuat dengan kutip dua “ akan

mengerti karakter khusus seperti ‘\n’,’\r’,’\b’

,dsb. ; sedangkan karakter dengan objek

String yang dibuat dengan kutip satu ‘ tidak

bisa menerjemahkan karakter khusus di atas.

Perhatikanlah contoh berikut:

>> a = “Hello\n”

=> “Hello\n”

>> print a

Hello

=> nil

>> b = ‘Hello\n’

=> “Hello\\n”

>> print b

Hello\n=> nil

Kelas String kaya akan metode-metode

yang powerful. Anda dapat mencoba bebe-

rapa di antaranya seperti berikut ini.

� length—untuk mengetahui panjang

suatu string.

� capitalize—untuk mengubah huruf

pertama pada awal kalimat menjadi

huruf kapital.

� downcase—mengubah string menjadi

huruf kecil.

� upcase—mengubah string menjadi hu-

ruf besar.

� swapcase—mengubah objek string de-

ngan huruf kecil diubah menjadi huruf

kapital dan sebaliknya.

� strip—membuang karakter whitespace

di awal dan akhir string.

� reverse—membalikkan string.

� include ? str—mengembalikan true jika

substring str terdapat dalam string dan

false jika tidak ada.

� chop—membuang karakter terakhir dari

string.

Salah satu hal yang unik dari Ruby adalah

Anda dapat menambahkan tanda ‘!’ di akhir

metode untuk menandakan metodenya

bersifat destruktif di mana hasil metode

tersebut berdampak langsung pada objeknya.

>> “Hello”.length

=> 5

>> “hello”.capitalize

=> “Hello”

>> “HELlo”.downcase

=> “hello”

>> “HeLLo”.upcase

=> “HELLO”

>> “hElLo”.swapcase

=> “HeLlO”

>> “hello”.reverse

=> “olleh”

>> “ hello “.strip

=> “hello”

>> “helloo”.chop

=> “hello”

>> “hello”.include? “h”

=> true

>> a = “ Hello “

=> “ Hello “

>> a.strip

=> “Hello”

Ruby

Page 6: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

55InfoLINUX 09/2004www.infolinux.web.id

TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

>> a

=> “ Hello “

>> a.strip!

=> “Hello”

>> a

=> “Hello”

3. ArrayTipe data Array di Ruby hampir sama

dengan tipe data array pada bahasa pem-

rograman lain umumnya. Tipe data Array di

Ruby sama dengan tipe data list di Python.

Untuk membuat suatu objek Array baru,

Anda dapat menggunakan literal Array []

ataupun konstruktor Array.new. Isi array

dapat berupa objek apapun baik angka, string,

maupun objek lain termasuk objek array itu

sendiri. Untuk mengakses elemen objek Ar-

ray ini, kita menggunakan indeks di mana

indeks awal dimulai dari 0 sampai panjang

array – 1. Anda juga dapat menggunakan

indeks negatif di mana indeks -1 berarti

elemen terakhir , -2 berarti elemen kedua

terakhir, dan seterusnya.

Apabila kita mencoba mengakses elemen

Array pada indeks yang di luar jangkauan,

pernyataan tersebut tidak akan menyebabkan

error seperti IndexError : list index out of range

di Python, Ruby akan mengembalikan objek

nil. Untuk mengubah isi array ataupun me-

nambahkan data pada objek Array dengan

indeks tertentu, kita bisa menggunakan state-

ment biasa seperti array[indeks] = nilai baru

. Apabila kita ingin membuat objek Array

yang berisi string, akan repot sekali untuk

menambahkan tanda kutip pada setiap

elemen Array. Hal tersebut dapat diatasi

dengan menggunakan prefiks %w. Untuk

jelasnya, simak contoh berikut:

>> a = []

=> []

>> a = [1,2,”m”,[3,4,5]]

=> [1, 2, “m”, [3, 4, 5]]

>> a[0]

=> 1

>> a[3]

=> [3, 4, 5]

>> a[3][1]

=> 4

>> a[-1]

=> [3, 4, 5]

>> a[6]

=> nil

>> a[1] = 88

=> 88

>> a

=> [1, 88, “m”, [3, 4, 5]]

>> c = %w(Anto, Eric, Isabel)

=> [“Anto,”, “Eric,”, “Isabel”]

Metode-metode pada kelas Array :

� length—untuk mengetahui ukuran array.

� push(nilai_baru)—untuk menambah

data pada array. Data terbaru akan

ditempatkan paling akhir.

� pop—mengembalikan data pada indeks

terakhir array dan menghapus data pada

indeks terakhir.

� reverse—membalik isi data array.

� sort—mengurut isi array secara ascending.

>> a = [“a”,”b”,”c”]

=> [“a”, “b”, “c”]

>> a.length

=> 3

>> a.push(“d”)

=> [“a”, “b”, “c”, “d”]

>> a.pop

=> “d”

>> a

=> [“a”, “b”, “c”]

>> a.reverse

=> [“c”, “b”, “a”]

>> a.sort

=> [“a”, “b”, “c”]

4. HashTipe data hash di Ruby sama dengan tipe data

dictionary di Python. Untuk membuat objek

hash yang baru, Anda dapat menggunakan

literal hash {} ataupun konstruktor Hash.new.

Lain halnya dengan array, untuk mengakses

elemen objek Hash kita tidak menggunakan

indeks seperti array. Kita dapat mendefinisi-

kan kunci(key) yang unik untuk setiap

elemen. Sama halnya seperti array, apabila

kita mengakses elemen dengan key yang tidak

tercantum di hash, maka akan mengem-

balikan nilai nil.

>> alamat = {

?> “Amat” => “Kemanggisan Raya

50”,

?> “Budi” => “Sudirman 80”,

?> “Eric” => “Sandang 9A”,

?> “Melissa” => “Pandu 77”

?> }

=> {“Eric”=>”Sandang 9A”,

“Budi”=>”Sudirman 80",

“Amat”=>”Kemanggisan Raya 50",

“Melissa”=>”Pandu 77"}

>> alamat[“Eric”]

=> “Sandang 9A”

Interactive Ruby, mirip dengan Python. Membangun aplikasi GUI dengan Ruby.

Ruby

Page 7: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

www.infolinux.web.id56 InfoLINUX 09/2004

TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

>> alamat[“Dani”]

=> nil

5. RangeObjek range di Ruby merupakan suatu

barisan di mana terdapat nilai awal dan nilai

akhir dari barisan tersebut. Objek Range ini

sama dengan perintah range() di Python.

Untuk membuat suatu objek Range, kita

dapat menggunakan operator range ‘..’ dan ‘...’

. Format ‘..’ akan menciptakan objek Range

yang ikut menyertakan elemen terakhirnya,

sedangkan format ‘...’ akan menghilangkan

elemen terakhirnya. Range di Ruby tidak

dianggap sebagai objek Array melainkan

dianggap sebagai suatu objek Range sendiri.

Untuk menjadikannya objek Array, Anda

dapat menggunakan metode to_a . Untuk

lebih jelasnya, perhatikanlah contoh berikut.

>> a = (1..5)

=> 1..5

>> a.class

=> Range

>> (1..5).to_a

=> [1, 2, 3, 4, 5]

>> (1...5).to_a

=> [1, 2, 3, 4]

Konversi tipe dataWalaupun Ruby bersifat dynamic-typing,

konversi tipe data ada kalanya perlu dilaku-

kan untuk keperluan tertentu, misalnya kita

hendak mengkonversi inputan user menjadi

angka untuk dihitung ataupun meng-

konversi angka menjadi string untuk di-

cetak. Untuk mempermudah pembacaan ,

kita akan memakai notasi Kelas#metode

mengingat metode bisa sama namun efek-

nya berbeda untuk tiap kelas. Misalnya

metode + apabila diaplikasikan pada angka

dan string hasilnya pasti akan berbeda.

Metode Dari KeString#to_i String IntegerString#to_f String FloatFloat#to_s Float StringFloat#to_i Float IntegerInteger#to_s Integer StringInteger#to_f Integer FloatRange#to_a Range Array

Seleksi dan perulanganDalam pemrograman, kita tentunya me-

ngenal istilah seleksi dan perulangan. Untuk

seleksi kita akan menggunakan if, sedangkan

untuk perulangan kita akan menggunakan

for dan while. Penulis tidak akan lagi men-

jelaskan detail sintaks if, for, while karena

sintaksnya hampir sama seperti umumnya.

Seleksi if

#if.rb

#!/usr/bin/env ruby

print “Masukkan nilai Anda : “

nilai = gets

nilai.chop!

if nilai.to_i >= 85

puts “Anda mendapat grade A”

elsif nilai.to_i >= 75

puts “Anda mendapat grade B”

elsif nilai.to_i >= 65

puts “Anda mendapat grade C”

else

puts “Anda mendapat grade D”

end #end untuk if

$ ruby if.rb

Masukkan nilai Anda : 80

Anda mendapat grade B

Untuk perulangan, kita dapat memakai

metode times dari suatu angka.

>> 3.times { print “Hi “ }

Hi Hi Hi=> 3

>> 3.times do

?> print “Hi “

?> end

Hi Hi Hi=> 3

Perulangan while#while.rb

#!/usr/bin/env ruby

i = 1

while i<= 5

printf “%d “, i

i = i + 1

end # end untuk while

$ ruby while.rb

1 2 3 4 5

Perulangan for#for.rb

#!/usr/bin/env ruby

for i in 1..5

if i%2 == 1

puts i.to_s + “ ganjil”

else

puts i.to_s + “ genap”

end #end untuk if

end #end untuk for

$ ruby for.rb

1 ganjil

2 genap

3 ganjil

4 genap

5 ganjil

Deklarasi fungsiUntuk mendefinisikan suatu fungsi, kita

menggunakan kata kunci def diakhiri dengan

end. Kita akan membuat fungsi faktorial.

#faktorial.rb

#!/usr/bin/env ruby

def faktorial(n)

hasil = 1

ctr = 0

n.times do

ctr += 1

hasil *= ctr

end #end untuk do

return hasil

end #end untuk def

puts “Faktorial 5 = “ +

faktorial(5).to_s

puts “Faktorial 10 = “ +

faktorial(10).to_s

$ ruby faktorial.rb

Faktorial 5 = 120

Faktorial 10 = 3628800

Demikianlah perkenalan singkat kita

dengan Ruby, untuk kesempatan ini penulis

tidak akan membahas kelas dan iterator serta

fitur-fitur Ruby seperti mix-in. Yang dibahas

kali ini hanya mencakup dasar-dasar pem-

rograman Ruby. Bagi Anda yang telah

mengenal Perl dan Python, mempelajari

Ruby tidak akan menjadi kendala, begitu

pula dengan Anda yang pemula. Ruby

menawarkan sintaks program yang seder-

hana namun akurat dan menyenangkan,

kini yang tinggal hanya masalah selera. Akhir

kata dari penulis, selamat mencoba!�Eric ([email protected])

Ruby

Page 8: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

57InfoLINUX 09/2004www.infolinux.web.id

TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

Pengguna notebook yang sering berpindah lokasi kerja dan harus terhubung ke jaringanakan memiliki masalah besar dalam konfigurasi yang berubah-ubah. Dengan SCPM diSUSE, semua masalah tersebut akan terselesaikan.

System ConfigurationManagement Profile di SUSE

Notebook memiliki satu kelebihan

yang tidak dimiliki oleh desktop:

portabilitas. Pengguna notebook

dapat memindahkan komputernya ke

manapun yang diinginkan tanpa usaha

yang besar. Dengan demikian, seseorang

dapat bekerja dimanapun beliau berada. Di

kantor, di tempat client atau ketika pulang

ke rumah.

Ketika digunakan secara standalone,

tidak banyak masalah yang terjadi. Namun,

ketika notebook tersebut harus terhubung

ke jaringan, maka masalah mulai muncul.

Masalah yang utama adalah konfigurasi

jaringan. Ketika di kantor, konfigurasi yang

digunakan adalah DHCP. Di tempat client,

katakanlah yang digunakan adalah IP statis.

Dan ketika kembali ke rumah, yang di-

gunakan adalah IP statis.

Dalam satu hari, pengguna tersebut

bekerja di kantor, kemudian berkunjung ke

client. Maka, dari pengaturan DHCP sebe-

lumnya, pengguna tersebut harus mengatur

IP secara statis. Kembali ke kantor, maka

kembali harus mengatur agar mengaktifkan

client DHCP. Ketika kembali ke rumah,

maka kembali ke IP statis, yang berarti

adalah pengaturan lagi.

Memang, ada kalanya seseorang dapat

membiarkan saja komputernya untuk

mencari DHCP server, namun hal tersebut

akan memakan waktu. Dan, yang jelas,

berpindah-pindah konfigurasi jaringan

sangat merepotkan. Pengguna akan mem-

buka YaST dan membuka modul jaringan,

kemudian mengatur konfigurasi yang

diinginkan. Merepotkan. Cara dengan

membuat shell script juga bukan cara yang

bijak karena tidak dapat diterapkan pada

setiap orang.

SUSE dan distro turunannya seperti JDS

memiliki satu fasilitas yang sangat baik

untuk menyelesaikan problem tersebut:

SCPM. SCPM adalah singkatan dari System

Configuration Profile Management. Di

tulisan kali ini, kita akan membahas pe-

ngertian SCPM dan bagaimana SCPM

dapat membantu pengguna notebook

dalam bekerja sehari-hari.

Apakah SCPM itu?Untuk mengakses konfigurasi SCPM,

bukalah YaST dan aktiflah di bagian Sys-

tem. Kemudian, bukalah modul Profile

Manager. Secara default , SCPM tidak

diaktifkan.

SCPM adalah singkatan dari System

Configuration Profile Management, salah

satu fasilitas yang memungkinkan kita

untuk menyimpan snapshot dari konfi-

gurasi kita pada suatu waktu sebagai suatu

profile. Dengan demikian, kita dapat meng-

aktifkannya kembali pada waktu lain. Tentu

saja, dengan SCPM, kita bisa menyimpan

banyak profile yang kapan saja bisa di-

aktifkan.

Layar utama SCPM. Options SCPM.

Distro SUSE

Page 9: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

www.infolinux.web.id58 InfoLINUX 09/2004

TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

Konfigurasi pada suatu waktu dapat

sangat beragam. Pada pendahuluan artikel

ini, kita menggunakan contoh konfigurasi

jaringan. Hal lain yang dapat mengambil

keuntungan dari SCPM adalah ketika kita

ingin melakukan pengujian tertentu pada

sistem. Ketika menulis beberapa hal yang

membutuhkan pengujian, penulis me-

ngurangi beberapa servis, mengubah

beberapa parameter sistem dan meng-

ubahnya kembali ke profile lain ketika

pengujian selesai dilakukan. Apa yang

perlu penulis lakukan adalah membuat

profile untuk pengujian dan profile untuk

digunakan secara default. Apabila ingin

menguji, penulis tinggal mengubah ke

profile testing dan setelah itu, tinggal

mengembalikan ke profile default.

Dari namanya, SCPM berfungsi untuk

mengatur konfigurasi sistem. Sistem dalam

pengertian pengaturan umum seperti

konfigurasi jaringan, pengaturan e-mail,

time zone, dan lain sebagainya. SCPM dapat

melakukan profiling pada berbagai konfi-

gurasi sistem, namun tidak dapat me-

lakukan profiling pada preferensi per user.

Dengan kata lain, pengaturan wallpaper

setiap user misalnya, tidak dapat disimpan

sebagai profile.

Untuk menggunakan SCPM, pertama-

tama fasilitas ini perlu diaktifkan terlebih

dahulu. Sistem kemudian akan membuat

database dan profil default. Pada saat

berada pada profil default, kita boleh

mengatur apa saja yang diinginkan. Setelah

itu, kita dapat membuat profil baru ber-

dasarkan profil default, kemudian ber-

pindah ke profil baru tersebut. Ketika

berada pada profil baru tersebut, kita bisa

mengatur konfigurasi yang diinginkan.

Segala konfigurasi otomatis akan tersimpan

pada profil yang sedang digunakan. Setelah

itu, kita bisa kembali ke profil default.

Untuk mendapatkan konfigurasi pada

profil baru sebelumnya, kita hanya perlu

berpindah ke profil tersebut.

Jadi, untuk mengatur konfigurasi pada

suatu profil, kita aktif dulu pada profil

tersebut dan melakukan pengaturan. Kita

tidak mengatur profil yang tidak aktif.

Menggunakan SCPMBukalah YaST|System|Profile Manager.

Untuk kali pertama penggunaan, sebuah

pesan akan ditampilkan. Tutuplah pesan

tersebut dan pada bagian Generap Setup,

kliklah tombol Options. Kita akan meng-

aktifkan SCPM.

Sebuah layar baru akan ditampilkan.

Pada bagian Enable SCPM, aktifkan pilihan

Enabled. Kliklah tombol OK. Sebuah pesan

yang menunjukkan progress akan ditam-

pilkan. Ada baiknya apabila Anda meng-

aktifkan pilihan Close Progress Pop-ups Au-

tomatically (reenable it in SCPM Options).

Klik tombol Close.

Kini, Anda akan memiliki satu profil

baru dengan nama default. Pada kolom ac-

tive, sebuah tanda panah harusnya me-

nunjuk pada profil default ini. Anda telah

aktif pada profil ini. Tutuplah dialog SCPM

ini. Kemudian, lakukanlah konfigurasi pada

sistem Anda seperti biasa. Katakanlah, pada

profil default ini, Anda melakukan kon-

figurasi untuk sistem di kantor.

Selesai mengatur, Anda mungkin ingin

mengatur konfigurasi untuk di rumah.

Maka, bukalah kembali Profile Manager.

Kita akan menambahkan profil baru.

Kliklah tombol Add. Sebuah dialog akan di-

tampilkan. Pada dialog ini, kita bisa

memilih untuk membua profil baru ber-

dasarkan konfigurasi sistem aktif atau

berdasarkan salah satu profil yang ada.

Pilihlah pilihan kedua, on existing profile

dan pilihlah default. Klik tombol OK.

Layar baru akan ditampilkan. Isikan

nama profil dan deskripsinya. Sebagai

contoh, isikan home untuk Profile Name

dan Home sweet home untuk Description.

Aktifkan pilihan Set file permissions of all

scripts secure (0700) dan kliklah tombol

OK.

Sebuah window progress akan ditampil-

kan. Setelah selesai, Anda akan kembali ke

laar depan di mana Anda bisa melihat dua

profil sistem. Kini, Anda telah memiliki

dua profil. Profil aktif masihlah profil de-

fault.

Untuk mengatur konfigurasi sistem

pada profil home, pilihlah profil home dan

kliklah tombol Switch to.... Sebuah win-

dow progress akan ditampilkan. Setelah

selesai, Anda akan menjumpai layar

konfirmasi. Layar konfigurasi ini akan

menampilkan apa saja yang dimodifikasi.

Klik tombol OK. Sebuah window progress

akan ditampilkan. Setelah selesai, Anda

Mengedit profil. Berpindah ke profil lain.

Distro SUSE

Page 10: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

59InfoLINUX 09/2004www.infolinux.web.id

TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

akan kembali ke layar utama, di mana akan

terlihat profil aktif adalah profil home.

Anda telah berada pada profil home.

Lakukanlah konfigurasi seperti biasa untuk

profil home ini. Apabila ingin kembali ke

profil default, buka kembali Profil Manager,

pilih profil default, dan klik tombol Switch

to.... Begitu mudah dan sederhana!

Lebih lanjut dengan SCPMAda beberapa hal lanjutan yang perlu

diperhatikan ketika bekerja dengan SCPM.

Berikut ini adalah beberapa contohnya:

� Anda bisa memberikan nama apa saja

untuk suatu profil. Apabila namanya

tidak cocok, Anda bisa mengubah nama-

nya tanpa perlu menghapus profil yang

bersangkutan. Klik tombol Edit untuk

mengubah namanya. Sebagai contoh,

penulis akan mengubah nama default

menjadi kantor.

� Untuk menghapus profil, Anda dapat

klik pada tombol Delete. Harap diper-

hatikan bahwa Anda tidak dapat meng-

hapus profil yang sedang aktif.

� Anda memiliki kesempatan untuk men-

jalankan script dalam beberapa event

berikut: sebelum mengaktifkan profil,

setelah mengaktifkan profil, sebelum

menonaktifkan profil dan setelah me-

nonaktifkan profil. Umumnya, hal ini

tidak diperlukan. Namun, dalam ber-

bagai konfigurasi besar seperti pada

testing, berbagai hal umumnya di-

perlukan. Penulis memiliki beberapa

pengaturan seperti penambahan swap,

penambahan nilai shmm ax ketika

melakukan testing. Oleh karena itu,

penulis menambahkan script pada

sebelum mengaktifkan profil dan me-

ngembalikannya pada kondisi normal

setelah menonaktifkan profil.

� Bagi Anda yang lebih menyukai pesan-

pesan singkat, Anda dapat menonaktif-

kan pilihan Verbose Messages pada

bagian Options.

� Ketika Anda mendisable fasilitas SCPM

ini, konfigurasi Anda akan tetap di-

simpan. Tidak ada konfigurasi yang

akan dihapus. Sistem akan mengingat

konfigurasi aktif dan Anda tidak akan

dapat berpindah-pindah profile sampai

Anda mengaktifkan kembali SCPM.

� Seperti yang kita ketahui, bahwa SCPM

akan mengatur segala sesuatu yang

berhubungan dengan konfigurasim

sistem. SCPM akan mengatur file dan

servis yang berubah pada saat berpindah

ke profil lain. Dalam istilah SCPM, Anda

mungkin akan menjumpai istilah Re-

source. Resource secara sederhana

adalah file dan servis yang dibicarakan

sebelumnya. Berbagai resource kemu-

dian dikelompokkan dalam unit logikal,

yang selanjutnya disebut sebagai re-

source group. Anda tidak perlu me-

ngatur resource group ini secara default.

Sistem telah datang dengan resource

group yang siap digunakan. Apabila

Anda merasa perlu untuk mengatur re-

source group, kliklah tombol Options.

Pada layar options tersebut, kliklah

tombol Configure Resources. Seperti

biasa, Anda bisa menambahkan, me-

ngedit atau menghapus resource.

� Pada bagian Options, Anda akan men-

jumpai pilihan untuk Switch Mode.

Switch mendefinisikan sifat SCPM

ketika berpindah profil. Apabila Normal

atau Save changes dipilih, maka re-

source-resource yang dimodifikasi pada

dialog switch akan disimpan. Apabila

Drop changes dipilih, maka berbagai

perubahan akan diabaikan.

� Di sebelah Switch Mode, Anda akan

menjumpai Boot Mode. Boot Mode

mendefinisikan sifat SCPM ketika

sistem di boot. Pilihan Save Changes

akan mengaplikasikan semua peruba-

han pada profil sebelumnya.

Tidak hanya pengguna notebook yang

dapat memanfaatkan SCPM ini. Ketika

Anda melakukan perubahan pada sistem

secara berkala, Anda mungkin membutuh-

kan SCPM.

SCPM adalah fasilitas yang sangat ber-

guna. Cara-cara lama seperti menggunakan

shell script tentunya tidak akan mampu

menjangkau sampai berbagai resource yang

ditawarkan oleh SCPM. Kalaupun mampu,

rasanya akan sangat mubazir karena sebuah

tool pintar telah disediakan untuk kita.

Dengan Linux, mari kita bekerja lebih

pintar!�Noprianto ([email protected])

Distro SUSE

Page 11: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

www.infolinux.web.id60 InfoLINUX 09/2004

TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

Mandrake telah mengeluarkan distro Linux yang dapat dijalankan langsung dari CD atauLiveCD, yaitu MandrakeMove. Namun, CD itu terlalu berat dan kompleks. Onno W. Purbotelah berhasil membuat sendiri LiveCD yang ringan sebagai router, berbasisMandrakelinux 10.0.

MembuatCD Linux Router Sendiri

Saya memiliki router Linux di harddisk

komputer, untuk menghubungkan

jaringan LAN di rumah dengan Inter-

net. Mengapa saya membutuhkan router

Linux di CD-ROM? Jawabannya sebetulnya

sederhana saja, karena listrik di rumah saya

tidak stabil dan sering mati mendadak.

Akibat seringnya listrik mati, harddisk akan

crash atau rusak dengan mudah.

Salah satu solusi yang paling sederhana

untuk mengatasi harddisk crash tersebut

adalah menggantikan harddisk di router

rumah saya ke Internet dengan meng-

gunakan CD-ROM, dan di operasikan

tanpa harddisk sama sekali.

Istilah keren dari CD-ROM yang di-

siapkan untuk operasikan di PC tanpa

menggunakan harddisk adalah “LiveCD”.

Ada baiknya anda search di Internet

(seperti http://www.google.com) mengguna-

kan keyword “LiveCD”. Knoppix adalah

salah satu jenis LiveCD yang cukup beken

di dunia open source. Mandrake juga

menyediakan LiveCD MandrakeMove, tapi

terlalu berat, karena ditujukan untuk desk-

top, bukan router.

Pada kesempatan ini, saya akan men-

ceritakan sedikit tentang cara membuat

LiveCD router, bukan untuk desktop, tapi

untuk keperluan gateway Internet 24 jam

di rumah. Tentu saja, teknik ini sebetulnya

dapat digunakan di kantor, di sekolah, dan

di mana saja.

Peralatan router yang digunakanDalam eksperimen ini saya menggunakan

PC Pentium III 933 MHz memory 128

Mbyte dengan card Wireless LAN PCI dari

Planet yang tersambung ke ISP VisionNet

(http://www.vision.net.id) yang berjarak

sekitar 500 meter dari rumah saya. Sam-

bungan Internet berjalan 24 jam meng-

gunakan frekuensi 2,4 GHz (untuk tidak

di-sweeping aparat). Untuk menyam-

bungkan semua komputer yang berada di

LAN rumah, saya menggunakan Ethernet

card D-Link 10/100 Mbps.

Sistem operasi Linux yang digunakan

adalah Mandrakelinux 10.0 yang diperoleh

dari buku mini InfoLINUX (http://

www.infolinux.web.id). Penggunaan

Mandrakelinux 10.0 agak membuat “susah

hidup” karena memory 64 Mbyte tidak

cukup untuk Mandrakelinux 10.0. Jika Anda

ingin GUI yang beroperasi dengan baik,

sebaiknya tambah memori menjadi minimal

128 Mbyte untuk Mandrakelinux 10.0.

Sebetulnya PC Pentium III 933 MHz

memory 128 Mbyte terlalu besar untuk

router. Pengalaman saya dapat meng-

gunakan PC Pentium 75 MHz memory 64

Mbyte untuk router tersebut. Hanya proses

pembuatan LiveCD menjadi lelet sekali.

Kebutuhan dan persiapan sistemoperasiHardware yang dibutuhkan untuk membuat

LiveCD router yang mendukung wireless

LAN 2,4 GHz adalah:

� PC Pentium, saya menggunakan Pentium

III 933 MHz Memory 128 Mbyte.

� Harddisk 5-6 Gbyte.

� Card Wireless LAN PCI Planet 11-22

Mbps.

� Card Ethernet D-Link 10/100 Mbps.

Lakukan partsisi harddisk sebagai

berikut:

swap 256Mbyte

/LiveCD 2 Gbyte

/ 3-4 Gbyte

Anda harus membuat partisi sendiri

yang terpisah untuk nantinya membuat

file iso dari LiveCD. Di sini saya meng-

gunakan partisi yang saya namakan /

LiveCD.

Instalasi Mandrakelinux 9.2 atau

Mandrakelinux 10.0 di PC tersebut seperti

biasa, lalu konfigurasikan agar semua card

terdeteksi dan beroperasi dengan baik.

Yang agak sulit adalah mengonfigurasi

card Wireless LAN PCI Planet yang ber-

basis chipset Texas Instrument ACX100.

Sebaiknya anda membaca-baca http://

www. houseofcraig.net/acx100_howto.php.

Pada prinsip-nya untuk Mandrakelinux

10.0 relat if sederhana, karena driver

acx100_pci.o sudah tersedia, tapi Anda

harus mengonfigurasi file ini:

/etc/modules.conf

Edit file tersebut dengan menambahkan

dua baris berikut:

alias wlan0 acx100_pci

options acx100_pci

firmware_dir=/usr/share/

acx100_pci

Dan isi direktori ini:

/usr/share/acx100_pci

dengan file:

RADIO0d.BIN

RADIO11.BIN

RADIO15.BIN

WLANGEN.BIN

Distro Live CD

Page 12: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

61InfoLINUX 09/2004www.infolinux.web.id

TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

Keempat (4) file BIN tersebut dapat Anda

ambil dari CD driver yang di distribusikan

bersama card Wireless LAN PCI Planet.

Jangan lupa untuk mengonfigurasi isi

dua file ini:

/etc/sysconfig/network-

scripts/ifcfg-wlan0

/etc/sysconfig/network-

scripts/ifcfg-eth0

Sesuaikan isinya dengan kondisi jaringan

yang Anda gunakan.

Kesulitan dan kelemahan LiveCDBeberapa kesulitan dan kelemahan peng-

gunaan LiveCD yang saya alami adalah:

� Tidak ada swap. Saya belum tahu cara

membuat swap di LiveCD, akibatnya

cukup fatal. Berbagai aplikasi server

yang saya butuhkan seperti dhcp, squid,

dan lain-lain tidak bisa diaktifkan.

� Akan sulit untuk membuat LiveCD jika

kernel Thomas Blacklund (kernel-tmb)

tidak mensupport driver yang dibutuh-

kan, kecuali jika Anda dapat meng-com-

pile kernel dan memasukan cloop.o ke

dalamnya.

Solusi router yang saya gunakan saat ini

hanya mengoperasikan NAT pada iptables

saja. Mungkin di lain waktu jika saya

berhasil mengaktifkan swap secara oto-

matis di LiveCD maka berbagai servis dapat

saya jalankan langsung dari LiveCD.

Persiapan software LiveCDBagi pengguna Mandrakelinux, kunci

utamanya adalah menggunakan kernel

buatan Thomas Blacklund atau dikenal

sebagai kernel-tmb. Mengapa? Karena ker-

nel-tmb-2.4.22.21 mengandung module

cloop.o yang digunakan untuk meng-

kompress file system agar file menjadi kecil

dan sangat berguna untuk digunakan di CD-

ROM.

Sebetulnya kernel Thomas Backlund

yang terbaru baik dari versi 2.4 maupun 2.6

tersedia di http://www.netikka.net/tmb/

Cooker/, akan tetapi saya biasanya me-

ngambil RPM versi 2.4.22.21 yang me-

ngandung modul cloop.o dari http://

fr2.rpmfind.net/.

Bagi Anda yang cukup punya nyali

untuk menginstal cloop.o sendiri di ker-

nel Linux, dapat mengambilnya dari http:/

/www.knopper.net/download/knoppix/

cloop_0.68-2.tar.gz. Terus terang saya gagal

menginstalasi cloop.o di kernel 2.6.3 dari

Mandrakelinux 10.0, karena tampaknya

cloop.o disiapkan untuk kernel 2.4. Saya

belum sempat mencoba untuk meng-

instalnya di kernel 2.4.

Secara praktis, paket software yang

dibutuhkan adalah:

� kernel-tmb

� busybox

� cloop-utils

� mklivecd

� mkisofs

Bagi pembaca yang seperti saya, malas

untuk mengompilasi kernel, akan mem-

peroleh banyak kemudahan dengan me-

ngambil RPM yang dibutuhkan dari http://

fr2.rpmfind.net/.

� Gunakan keyword “kernel-tmb”, atau

ambil dari ftp://fr2.rpmfind.net/linux/

Mandrake/9.2/contrib/i586/kernel-tmb-

2.4.22.21.tmb.1mdk-1-1mdk.i586.rpm.

� Gunakan keyword “busybox”, atau

ambil dari ftp://fr2.rpmfind.net/linux/

MandrakeCooker/cooker/contrib/i586/

busybox-1.00-0.pre5.1mdk.i586.rpm.

� Gunakan keyword “cloop-utils”, atau

ambil dari ftp://fr2.rpmfind.net/linux/

MandrakeCooker/cooker/contrib/i586/

cloop-utils-1.02-5mdk.i586.rpm.

� Gunakan keyword keyword “mklivecd”,

atau ambil dari ftp://fr2.rpmfind.net/

linux/MandrakeCooker/cooker/contrib/

alpha/mklivecd-0.5.6-4mdk.noarch.rpm.

� Sedang mkisofs ada di CD distribusi

Mandrakelinux 10.0, dan dapat lang-

sung Anda pilih pada saat instalasi

Mandrakelinux 10.0.

Setelah semua RPM yang dibutuhkan

diambil, untuk menginstalasi RPM secara

manual sebetulnya tidak sukar, dapat

dilakukan melalui perintah:

# rpm –ivh nama-file-rpm.rpm

Lakukanlah instalasi untuk semua paket

RPM yang anda ambil di atas.

Mengonfigurasi Router untukPembuatan CDKonfigurasi router yang saya gunakan

relatif sederhana. Sebetulnya hanya meng-

gunakan sebuah script yang saya ambil dari

posting rekan [email protected] di

mailing list [email protected] bebe-

rapa tahun yang lalu. Cukup lumayan lah

untuk mengaktifkan NAT di router yang

saya gunakan.

Adapun file script tersebut diaktifkan

Distro Live CD

LiveCD MandrakeMove dan Knoppix.

Page 13: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

www.infolinux.web.id62 InfoLINUX 09/2004

TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

atau dijalankan melalui /etc/rc.d/rc.local

yang berisi kira-kira sebagai berikut:

#!/bin/bash

# From: AHK <[email protected]>

# To: [email protected]

# Save this file and activate

through # file_name start

# and de-activate through #

file_name stop

# This firewall-script can be

used for workstation, laptop,

router

# or server that are not run-

ning network service (such as

web server, ftp

# server etc)

# change the parameter UPLINK

with Interface device to the

Internet.

# In our case WLAN router with

NIC wlan0 connected to the

Internet

# and LAN connection with eth0.

# if you use dial-up modem, you

might use ppp0 as your UPLINK

UPLINK=”wlan0"

# if you run the gateway as

router and forward IP packet

between eth devices

# please fill .yes., if not,

please fill .no.

ROUTER=”yes”

# Please change 10.10.10.224 to

your static IP address of

UPLINK device.

# For those who use dial-up or

dynamic IP, please enter .dy

namic.

NAT=”10.10.10.224"

# NAT=”dynamic”

# please list all network

interfaces including eth

devices

# as well as dial-up interface

such as ppp0

INTERFACES=”lo eth0 wlan0"

if [ “$1” = “start” ]

then

echo “Activate Firewall ...

.. “

/sbin/iptables -P INPUT DROP

/sbin/iptables -A INPUT -i !

${UPLINK} -j ACCEPT

/sbin/iptables -A INPUT -i

${UPLINK} -p tcp -s 0/0 —dport

25 -j ACCEPT

/sbin/iptables -A INPUT -m

state —state ESTABLISHED,

RELATED -j ACCEPT

/sbin/iptables -A INPUT -p

tcp -i ${UPLINK} -j REJECT —

reject-with tcp-reset

/sbin/iptables -A INPUT -p

udp -i ${UPLINK} -j REJECT —

reject-with icmp-port-unreach

able

# turn off packet spoofing in

all interfaces

for x in ${INTERFACES}

do

echo 1 > /proc/sys/net/

ipv4/conf/${x}/rp_filter

done

if [ “$ROUTER” = “yes” ]

then

# Activate IP forwarding at

router

echo 1 > /proc/sys/net/

ipv4/ip_forward

if [ “$NAT” = “dynamic” ]

then

# Dynamic IP address,

activate Masquerading

echo “Activate Masquerading

(Dynamic IP) ....”

/sbin/iptables -t nat -A

POSTROUTING -o ${UPLINK} -j

MASQUERADE

elif [ “$NAT” != “” ]

then

# Static IP address use

source NAT

echo “Activate SNAT (static

IP) ....”

/sbin/iptables -t nat -A

POSTROUTING -o ${UPLINK} -j

SNAT —to ${NAT}

fi

fi

elif [ “$1” = “stop” ]

then

echo “Deactivate Firewall

...”

/sbin/iptables -F INPUT

/sbin/iptables -P INPUT

ACCEPT

Uninstall program di Mandrakelinux 10.

Distro Live CD

Page 14: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

63InfoLINUX 09/2004www.infolinux.web.id

TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

/sbin/iptables -F FORWARD

/sbin/iptables -P FORWARD

ACCEPT

# Turn off NAT or MAS

QUERADING

/sbin/iptables -t nat -F

POSTROUTING

fi

Pembuatan Live CDSecara umum langkah pembuatan LiveCD

menggunakan Linux Mandrake 9.2 (bukan

Mandrakelinux 10.0) dapat diperoleh di fo-

rum diskusi http://www.mandrakeusers.org.

Langkah-langkah yang dilakukan adalah

sebagai berikut:

Step 1Instalasi ‘basic’ Mandrakelinux 10.0 (atau

Mandrake 9.2). Minimal harus ada account

root dan satu buah user. Buat partisi khusus,

misalnya dimount sebagai direktori /LiveCD

sebesar 1.5-2 Gbyte untuk membuat

LiveCD. Saya pernah mencoba menggu-

nakan 700 Mbyte ternyata gagal membuat

LiveCD. Jadi sebaiknya menggunakan partisi

/LiveCD yang besar.

Step 2Instalasi RPM paket-paket berikut:

kernel-tmb-2.4.22.21

busybox

cloop-utils

mklivecd

mkisofs

Ubah /etc/lilo.conf supaya booting

dengan menggunakan kernel-tmb-

2.4.22.21 sebagai default. Jangan lupa

menjalankan lilo sesudah mengubah isi /

etc/lilo.conf:

# lilo

Step 3Buang paket-paket software yang tidak

digunakan, Anda dapat menggunakan

Mandrake Control Center untuk uninstall

RPM. Atau secara manual men-delete folder

yang tidak digunakan. Beberapa paket yang

tidak banyak digunakan, antara lain python

dan gimp.

Cek berapa space yang Anda gunakan

menggunakan perintah df:

# df

Anda harus mengatur agar file iso yang

dihasilkan jangan melebihi 700 Mbyte, agar

dapat diburn ke CD-ROM. Jika kompresi

rata-rata sekitar 40-50% maka isi folder

root (/) harus maximum sekitar 1.4-1.7

Gbyte.

Jika masih merasa kekurangan space,

Anda dapat mendelete folder usr/share/

doc, /usr/share/man dan /usr/share/wall-

papers untuk memperoleh tambahan

~200 MB.

Step 4Konfigurasikan supaya nantinya LiveCD

dapat berfungsi seperti yang Anda ingin-

kan. Jangan lupa membuang semua isi /

home/user/tmp, coockies, cache browser,

dan lain-lain.

Lagi-lagi jangan lupa check space yang

Anda gunakan, melalui perintah:

# df

Step 5Masuk ke shell dan jalankan su untuk men-

jadi root, lalu jalankan perintah berikut:

# cd /LiveCD

# mklivecd —help

Anda akan melihat semua option untuk

menjalankan script mklivecd. Salah satu

option atau cara yang paling sederhana

untuk membuat LiveCD adalah langsung

menyebut nama file iso:

# mklivecd namaisolivecd.iso

Saya sendiri dalam membuat LiveCD

menggunakan beberapa option sebagai

berikut:

# mklivecd —verbose —lowmem —

splash=no –resolution=800x600

router.iso

Kira-kira membutuhkan waktu 10-15

menit untuk membuat file iso untuk CD-

ROM yang Anda inginkan di Pentium III

933 MHz.

Step 6Burn iso ke CD-RW (atau CD-R) dengan

program yang biasa Anda gunakan, misal-

nya Nero (MS Windows) atau K3B (Linux

dengan desktop KDE), atau dengan perintah

di konsol Linux berikut ini:

# cdrecord -scanbus (Catat kode

device CD writer, misal 0,1,0)

# cdrecord -v dev=0,1,0

speed=16 router.iso

Step 7Berdoalah dan boot LiveCD router Linux

Anda.�Onno W. Purbo ([email protected])

Mem-burn CD dengan K3b.

Distro Live CD

Page 15: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak
Page 16: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

65InfoLINUX 09/2004www.infolinux.web.id

TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

Berkolaborasi lewat jaringan dengan sesama teman kerja tidak harus menggunakanaplikasi yang mahal seperti MS Exchange atau Lotus Domino. Anda bisa memilihsalah satu paket groupware yang free di Linux. eGroupWare yang berbasis web inilayak Anda coba.

Kolaborasi BersamaMenggunakan eGroupWare

Selama ini, kita hanya mengenal istilah

software dan hardware saja untuk

istilah-istilah umum pada dunia kom-

puter, padahal ada beberapa istilah *-ware

yang lain, seperti brainware, middleware, dan

juga groupware. Brainware mengacu ke

seseorang yang menjalankan sebuah kom-

puter atau yang sering disebut dengan

operator, namun istilah brainware bisa

sangatlah luas, karena pengguna komputer

sangatlah bervariasi. Istilah middleware

sendiri berarti sebuah aplikasi yang menjem-

batani antara dua aplikasi lain, yang seringkali

kita temui pada beberapa aplikasi web service.

Nah, istilah yang ketiga inilah yang baru-baru

ini mulai muncul ke permukaan, yaitu

groupware. Apa itu groupware?

Pada dasarnya, sebuah groupware adalah

sebuah aplikasi yang mampu menyatukan

beberapa fasilitas ataupun kemampuan dari

beberapa aplikasi independen dan me-

nampilkannya dalam sebuah aplikasi yang

lebih besar dan terintegrasi. Dengan adanya

aplikasi groupware, maka tidak diperlukan

banyak software yang diinstalasi, yang pada

akhirnya juga bisa menghemat biaya lisensi

(jika menggunakan aplikasi komersial) dan

juga menghemat waktu, karena instalasi satu

aplikasi sudah setara dengan menginstalasi

beberapa aplikasi.

Beberapa contoh aplikasi groupware yang

dapat kita jumpai di pasaran, yaitu Microsoft

Exchange, Lotus Domino, dan juga eBdesk.

Khusus untuk aplikasi yang terakhir, meru-

pakan aplikasi buatan perusahaan lokal,

namun keandalannya tidak perlu diragukan

lagi, karena banyak perusahaan asing pun

sudah menggunakannya. Anda bisa men-

dapatkan informasi yang lebih baik melalui

situs resminya, http://www.ebdesk.com.

Salah satu masalah yang dihadapi ketika

menggunakan aplikasi di atas adalah lisensi,

karena kesemuanya merupakan aplikasi

komersial (proprietary) yang mewajibkan kita

untuk membayar lisensi jika kita hendak

menggunakannya untuk jangka panjang.

Selain itu, tingkat interoperabilitasnya juga

sangatlah kurang, karena kita tahu bahwa

produk Exchange dan Lotus hanya bisa

dijalankan pada platform Windows dan Lotus

sendiri. Ini berarti kita juga harus membayar

lisensi tambahan untuk sistem operasi yang

kita gunakan, atau bahkan tidak mungkin

dijalankan ketika kita melakukan migrasi ke

platform GNU/Linux. Khusus untuk eBdesk,

sudah terdapat aplikasi yang berjalan di

GNU/Linux, sehingga memungkinkan men-

jalankannya di platform Linux.

Masalah lain yang harus dihadapi adalah

kebutuhan perangkat keras. Untuk meng-

optimalkan penggunaan Microsoft Exchange,

maka Microsoft merekomendasikan peng-

gunaan Microsoft Windows 2003 Server yang

notabene membutuhkan kebutuhan hard-

ware yang cukup besar, seperti jumlah RAM

(256 MB ke atas) dan harddisk (minimal 1,5–

eGroupWare

Gambar 1. Tampilan situs eGroupWare. Gambar 2. Halaman tes instalasi eGroupWare.

Page 17: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

www.infolinux.web.id66 InfoLINUX 09/2004

TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

eGroupWare

2 GB untuk setup sistem). Bisa jadi perusa-

haan belum sempat menerapkan aplikasi

groupware, karena biaya sudah habis untuk

membeli infrastrukturnya saja. Selain itu,

ketika kita menggunakan produk Microsoft,

salah satu masalah yang sering menjadi

pertimbangan kita adalah masalah keaman-

an. Di zaman yang penuh dengan ancaman

yang bervariasi seperti sekarang ini, siapa

yang tidak peduli akan masalah keamanan?

Di platform GNU/Linux pun sudah

dikembangkan beberapa aplikasi groupware,

seperti salah satunya yaitu Kolab Group-

ware, yang dikembangkan oleh proyek KDE.

Namun, bagi yang tidak suka menggunakan

aplikasi-aplikasi buatan KDE, dan ingin

menggunakan aplikasi Kolab Groupware,

hal ini bisa menjadi sebuah dilema yang

cukup panjang.

Alternatif lain yang dikembangkan oleh

para pengembang open source adalah dengan

mengalihkan aplikasi groupware tersebut ke

dalam bentuk halaman web (web-based

application) yang dapat dinikmati oleh semua

orang, asalkan mempunyai browser. Sampai

saat ini, banyak sekali aplikasi groupware

yang sudah menggunakan interface web,

seperti phpgroupware, opengroupware, dan

yang terakhir eGroupWare. Kita akan men-

coba aplikasi yang terakhir. Anda bisa men-

dapatkan aplikasi ini melalui alamat situs

http://www.egroupware.org (Gambar 1).

eGroupware menyediakan berbagai macam

layanan, seperti layaknya aplikasi groupware

yang ditawarkan oleh aplikasi komersial,

dengan tampilan yang sederhana namun

menarik untuk diakses karena berbasis web

dan mudah dimodifikasi.

Saat ini, versi terbaru dari eGroupWare

adalah 1.0RC7, tetapi penamaan pada file

sudah menggunakan versi 1.0. Anda bisa

memilih untuk men-download versi tarball,

bzip2, maupun RPM. Untuk kemudahan,

kita akan menggunakan versi RPM, yang

akan sangat membantu kita, terutama yang

masih awam dengan instalasi gaya GNU/

Linux. Silakan download paket bernama

e G r o u p Wa r e - a l l - a p p s - 1 . 0 . 0 0 . 0 0 1 -

1.noarch.rpm dengan berukuran sekitar

13MB.

Paket ini akan berisi semua aplikasi yang

ditawarkan oleh eGroupware. Jika hanya

ingin menginstal sebagian paket, Anda bisa

menggunakan paket terpisah ataupun tetap

menggunakan paket ini, namun pada

langkah selanjutnya, Anda bisa memilih

aplikasi yang hendak diinstal. Untuk

memudahkan konfigurasi, akan lebih baik

jika kita memilih paket ini, sebab kita tidak

perlu repot-repot lagi untuk men-download

setiap aplikasi yang ada. Semuanya sudah

tercakup pada satu paket saja.

Komputer yang digunakan pada per-

cobaan ini menggunakan sistem operasi

GNU/Linux Mandrakelinux 10.0 Official,

dengan spesifikasi Apache 2.0.48, PHP 4.3.4,

dan MySQL 4.0.18 standar bawaan

Mandrakelinux 10.0.

Setelah Anda selesai men-download

paket eGroupware dari http://www.

sourceforge. net, letakkan file tersebut pada

direktori tertentu (misalnya /usr/local/src)

dengan perintah ini:

$ mv eGroupWare-all-apps-

1.0.00.001-1.noarch.rpm /usr/

local/src

Lalu pindahlah ke direktori yang Anda

tentukan tersebut dan login (berubah)

sebagai root.

$cd /usr/local/src

$su -

password : password root

Setelah itu, lakukan instalasi eGroupware

dengan perintah ini:

#rpm -ivh eGroupWare-all-apps-

1.0.00.001-1.noarch.rpm

Tunggu proses instalasi hingga muncul

prompt untuk user root kembali dan juga

tampilan petunjuk. Perhatikan petunjuk

yang muncul, karena sangat penting demi

keberhasilan implementasi sistem

eGroupWare Anda.

*******************************

* Attention: You must create

the folder FILES *

* manually outside the root

from your *

* webserver root. *

* The folder must include theGambar 3. Pesan kesalahan batas memory.

Gambar 4. Halaman setup dasar. Gambar 5. Halaman setup untuk admin.

Page 18: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

67InfoLINUX 09/2004www.infolinux.web.id

TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

folders users and *

* files like: /var/www/ *

* egwfiles/ *

* users *

* groups *

* Give the webserver the rights

to read and write *

* and no anonymous access to

this folders *

* *****************************

* Please secure you apache and

add *

* the follow lines to you

httpd.conf *

* *

* <Directory /var/www/html/

egroupware> *

* <Files ~ .(inc.php|tpl)> *

* Order allow,deny *

* Deny from all *

* </Files> *

* </Directory> *

eGroupWare akan diinstalasi pada direk-

tori default web server, yang pada komputer

penulis berada pada /var/www/html. Jika

Anda menggunakan distro lain, disarankan

untuk menggunakan paket src.rpm, yang

merupakan paket source rpm.

Dengan menggunakan paket ini, Anda

bisa melakukan proses rebuilding terhadap

paket rpm tersebut sehingga bisa sesuai

dengan kebutuhan distro Anda. Misalnya

untuk distro SUSE, direktori web server

defaultnya berada di /srv/www/htdocs. Untuk

melakukan rebuilding, berikan perintah:

# rpm —rebuild eGroupWare-all-

apps-1.0.00.001-1.src.rpm

Hasilnya akan diletakkan pada direktori

/usr/src/RPM/RPMS/<arsitektur>/. Maksud

<arsitektur> di sini bisa berupa i386

ataupun i586, sesuai dengan arsitektur

komputer Anda.

Setelah proses instalasi selesai, berikan

permission dan juga user serta group yang

tepat untuk direktori Anda. Penulis meng-

gunakan user dan group apache untuk

direktori egroupware. Berikan dengan

perintah

# chown -R apache:apache /var/

www/html/egroupware

# chmod -R 755 /var/www/html/

egroupware

Berikutnya, Anda harus memastikan

bahwa direktori phpgwapi/images/ dan

fudforum haruslah dapat ditulis oleh user

dan group apache (biasanya cukup dengan

perintah di atas). Setelah itu, buka browser

Anda (penulis menggunakan Mozilla Firefox

0.9.1) dan bukalah alamat URL http://

<nama_komputer>/egroupware atau http://

localhost/egroupware. Hasilnya akan tampak

seperti Gambar 2. Langkah berikutnya

adalah dengan memilih link Run Installation

Tests yang akan menguji konfigurasi pada

komputer Anda. Pastikan bahwa tidak ada

pesan kesalahan sama sekali (beberapa pesan

warning bisa diabaikan, namun sebisa

mungkin jumlahnya diminimalkan). Pada

Gambar 3, terdapat pesan kesalahan yang

sebaiknya diperbaiki, yaitu jumlah batasan

memory yang digunakan untuk aplikasi

eGroupWare. Bukalah file /etc/php.ini dan

eGroupWare

Page 19: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

www.infolinux.web.id68 InfoLINUX 09/2004

TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

ubahlah pada bagian ini:

memory_limit = 16M ; Maximum

amount of memory a script may

consume (8MB)

Setelah selesai mengedit file php.ini,

jangan lupa untuk me-restart server Apache

Anda dengan perintah:

# /etc/init.d/httpd restart

Setelah semua persyaratan dipenuhi,

silakan melanjutkan proses instalasi dengan

memilih Continue to the Header Admin. Pada

halaman selanjutnya, Anda akan menemu-

kan halaman setup dasar untuk aplikasi

eGroupWare Anda (Gambar 4). Silakan

masukkan data yang sesuai untuk aplikasi

dan kebutuhan Anda. Untuk bagian database,

akan lebih baik jika Anda sudah menyiapkan

sebuah user baru yang digunakan khusus

untuk aplikasi eGroupWare dan bukan user

yang Anda gunakan sehari-hari. Hal ini hanya

untuk alasan keamanan. Di sini, penulis

menggunakan user egroupware dengan

password egroupware yang telah diciptakan

menggunakan PHPMyAdmin. Jangan lupa

untuk membuat sebuah user baru yang

mempunyai kewenangan untuk meng-

konfigurasi aplikasi eGroupWare Anda.

Setelah selesai mengisi semua field yang

dibutuhkan, tekan tombol Write, maka file

konfigurasi baru Anda akan dibuat dengan

nama header.inc.php. Setelah selesai, klik

pilihan continue. Anda akan masuk pada

halaman setup untuk admin (Gambar 5).

Login-lah dengan user yang telah Anda buat

pada halaman sebelumnya dan Anda akan

menjumpai halaman setup yang lebih detail.

Pada halaman ini, Anda akan membuat

database, mengonfigurasi, membuat account,

mengelola bahasa yang digunakan untuk

aplikasi, dan melakukan konfigurasi lanjut

(advanced management) yang ditunjukkan

dengan langkah-langkah. Ikuti langkah demi

langkah yang sudah disiapkan, dimulai

dengan membuat database.

Untuk mempermudah pembuatan data-

base, biarkan program setup eGroupWare

yang membuatkan database beserta tabel-

tabelnya untuk Anda. Anda cukup mem-

berikan user dan password root atau user

pada database server Anda yang mempunyai

hak untuk membuat sebuah database baru.

Jika Anda tidak menerima pesan kesa-

lahan apapun, lanjutkan dengan memilih

Re-Check My Installation. Akan muncul

menu pilihan baru, yaitu untuk meng-

instalasi semua tabel yang berhubungan

dengan installasi eGroupWare. Klik pada

menu tersebut dan tabel-tabel akan di-

bentuk secara otomatis.

Setelah pembuatan database selesai,

halaman setup akan tampak seperti pada

Gambar 8. Halaman login user. Gambar 9. Halaman setelah login.

Gambar 6. Hasil setup database. Gambar 7. Setup pengelolaan aplikasi.

eGroupWare

Page 20: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

69InfoLINUX 09/2004www.infolinux.web.id

TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

Gambar 6. Lanjutkan instalasi dengan

membuat sebuah direktori baru di luar

direktori web server Anda, sesuai dengan

petunjuk yang tertera pada saat instalasi

selesai. misalnya /var/www/files. Di dalam

direktori ini terdapat dua direktori baru,

yaitu user dan group. Jangan lupa untuk

memberikan hak baca dan tulis untuk

direktori ini kepada user dan group Apache.

# mkdir /var/www/files

# mkdir /var/www/files/user

# mkdir /var/www/files/group

# chown -R apache:apache /var/

www/files

# chmod -R 755 /var/www/files

Lakukan konfigurasi pada langkah 2

(Edit Current Configuration), terutama pada

field pertama, kedua, dan ketiga, yaitu

alamat path dari direktori temporary, alamat

path dari direktori yang baru saja Anda buat,

dan juga alamat path absolut atau URL dari

installasi eGroupWare. Untuk bagian LDAP,

Authentikasi, setting mcrypt tidak akan

dibahas, karena membutuhkan pengetahuan

yang lebih untuk itu. Silakan membaca

halaman manual yang sudah disediakan.

Langkah berikutnya (langkah 3) adalah

membuat sebuah account admin untuk

aplikasi eGroupWare. Perhatikan bahwa

account ini berbeda dengan account yang

kita buat pada awal instalasi. Jika Anda

hendak menggunakan bahasa lain selain

bahasa Inggris, maka lakukan juga setup

pada langkah 4, yaitu pengelolaan bahasa.

Sayangnya, bahasa Indonesia belum diikut-

sertakan pada aplikasi ini.

Untuk mengelola aplikasi yang tersedia,

lakukan setup pada langkah 5, yaitu penge-

lolaan aplikasi (Gambar 7). Setelah semua-

nya selesai, lakukan logout, dan pilihlah link

Back to user login. Anda akan menjumpai

halaman login untuk setiap user (Gambar 8).

Karena belum ada user baru yang kita buat,

maka silakan login dengan user admin yang

telah kita buat. Anda akan mendapatkan

tampilan seperti Gambar 9.

Jika jeli, maka Anda bisa melihat satu

perubahan yang sudah penulis lakukan, yaitu

mengganti logo eGroupware dengan logo

yang kita tentukan. Hal ini memang telah

disediakan oleh eGroupware. Anda bisa

meletakkan file logo pada direktori

phpgwapi/templates/default/images/ dan

melakukan setting pada bagian

Configuration|Site Configuration.

Pada bagian atas, terdapat sejumlah icon

yang melambangkan setiap aplikasi yang

ada, yaitu:

� Admin (khusus untuk user admin,

berguna untuk melakukan konfigurasi

aplikasi).

� Email (untuk mengonfigurasi POP3/

IMAP mail server).

� Felamimail (untuk membaca e-mail yang

telah di-download dengan menggunakan

setting POP3/IMAP).

� Calendar (untuk menampilkan kalender

dan juga kegiatan pada tanggal tertentu).

� AddressBook (untuk mencatat daftar

kontak teman-teman).

� Info Log (untuk mencatat kemajuan

sebuah proyek).

� File Manager (untuk pengelolaan situs

web).

� Forum (untuk tempat berdiskusi).

� Fud Forum (hampir sama dengan forum,

tetapi tampilannya menyerupai PHPBB).

� Project (untuk pengelolaan proyek).

� Wiki (versi eGroupware untuk aplikasi

� Bookmarks (untuk pengelolaan book-

mark).

� Headline (untuk mengambil RSS dari si-

tus-situs berita).

� News (untuk melihat berita yang di-

kirimkan oleh admin).

� Poll (untuk jajak pendapat atau polling).

� Messenger (fasilitas messenger untuk

user lokal).

� Comic (untuk men-download komik-

komik online).

� Dan lain sebagainya.

Dengan menginstalasi satu aplikasi saja,

yaitu eGroupWare, Anda bisa mendapatkan

banyak sekali manfaat dan juga fungsiona-

litas dari beberapa aplikasi yang sebelumnya

harus diinstal satu per satu. Kemudahan

manajemen dan kustomisasi juga meru-

pakan keunggulan dari aplikasi ini. Bagi

Anda yang mengalami kesulitan dalam

melakukan instalasi, terdapat HOWTO

untuk instalasi yang sudah penulis ter-

jemahkan ke dalam bahasa Indonesia dan

bisa di-download pada halaman yang sama

ketika Anda men-download paket eGroup-

Ware. Selamat menikmati eGroupWare!�Willy Sudiarto Raharjo ([email protected])

eGroupWare

Page 21: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

www.infolinux.web.id70 InfoLINUX 09/2004

TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

Kali pertama mencoba dotProject langsung terasa sekali kelengkapan dari aplikasi ini.Tanggapan-tanggapan positif dan pujian dari para pengguna sebelumnya ternyatamemang terbukti dengan cukup meyakinkan. Anda harus coba!

Pemakaian dotProject

Pada tulisan sebelumnya sudah dibahas

tentang bagaimana proses instalasi

dotProject. Selanjutnya pembahasan

beranjak pada bagaimana cara mengguna-

kan software ini di keseharian.

Login awalMisalkan peletakan dotProject yang dipilih

adalah pada IP local 192.168.1.181 atau

localhost (127.0.0.1). Halaman depan

dotProject akan tampil di browser seperti

Gambar 1, dengan memasukkan URL:

http://localhost/dotproject atau http://

192.168.1.181/dotproject.

Secara default, dotProject sudah menye-

diakan satu user, yaitu admin:

username : admin

password : password

Apabila proses login berhasil, maka akan

tampil halaman pertama.

Perhatikan pada baris paling atas. Di

sana terlihat menu: Companies, Projects,

Tasks, Calendar, Files, Contacts, Forums,

Tickets, User Admin, dan System Admin.

Pemunculan menu tersebut nantinya akan

tergantung pada user dan permission

yang diberikan pada user yang login. Bisa

jadi nanti ada seorang user yang tidak

dapat masuk ke dalam modul Forum, dan

seterusnya.

Company managementdotProject mensyaratkan minimal perlu

didefinisikan satu buah perusahaan (com-

pany). Hal ini sebaiknya dilakukan sebelum

mendefinisikan user-user yang akan terlibat

di dalam dotProject. Untuk sementara, owner

default dari perusahaan yang baru dibuat ini

adalah admin person. Hal ini nantinya dapat

diubah setelah ada user lain yang dimasukkan

melalui bagian user management.

Klik mouse (kiri) pada tulisan “New

Company” yang terletak pada pojok kanan

atas, maka akan menampilkan halaman

formulir pendaftaran perusahaan baru (new

company). Formulir ini minimal mem-

butuhkan masukan berupa nama perusa-

haan, lalu secara default Company Owner

akan di set ke user admin person. Terakhir

ditutup dengan melakukan klik pada tombol

bertuliskan “Submit” di pojok kanan bawah.

Misalnya, masukkan data berikut ini:

Company Name: CV Ide Satu

Kosong

User managementUser management di dotProject bisa dikata-

kan cukup baik. Modul ini menyediakan

proses penambahan user, editing, hingga set-

ting user permission dengan sangat mudah.

Menambah userPilih menu User Admin (catatan : saat ini user

yang sedang aktif adalah Admin) lalu klik

pada add user maka akan muncul formulir

penambahan data user. Formulir ini minimal

harus diisi dengan Login Name, Password,

First Name, Last Name, dan alamat email.

Sebagai latihan, silakan memasukkan

data berikut:

Login Name : loona

User Type : Director

Password : *******

Password2 : *******

First Name : Loona Sulanta

Company : CV Ide Satu Kosong

Email : loona@idesatukosong.

co.id

Harap berhati-hati dalam memberikan

password, karena pengubahan terhadap

password selalu meminta password yang

sedang aktif. Jika password yang sedang aktif

terlupa, maka pengubahan password harus

dilakukan secara langsung pada server da-

tabase. Misalkan password dari user noova

Gambar 1. Halaman login dotProject. Gambar 2. Halaman muka dotProject.

dotProject

Page 22: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

71InfoLINUX 09/2004www.infolinux.web.id

TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

lupa, maka dapat dicoba perintah langsung

ke database dengan menggunakan console/

terminal sebagai berikut:

$ mysql -u root -p [enter]

Enter password: *****

mysql> use dotproject;

mysql> UPDATE users SET

user_password=MD5(‘PasswordBaru’)

where user_username=’noova’;

Perlu dicermati bahwa setiap kali sebuah

user account selesai dibuat, user tersebut

tidak dapat langsung digunakan sebelum

diberikan permission tertentu. Daftar user

account yang baru saja di-entry ini diletak-

kan pada tab/kelompok Inactive Users.

Selanjutnya silakan masukkan beberapa user

account yang lain jika diperlukan.

Setting permissionSetting permission adalah bagian yang penting

di dalam managemen user dotProject, ter-

utama jika ingin membuat suatu pengorga-

nisasian tim proyek yang lebih terstruktur

dengan pengaturan wewenang yang lebih baik.

Permission ini akan menyangkut hak

baca/tulis, hanya baca, dan tidak boleh dibaca/

ditulis, (read/write, read only, deny) yang akan

dikaitkan dengan menu-menu di atas.

Sebagai contoh, jika seorang user yang diberi

akses hanya untuk perusahaan “A”, maka dia

tidak akan bisa melihat data proyek perusa-

haan lainnya kecuali proyek yang khusus di-

definisikan untuknya. Perlu dicatat bahwa

pemberian permission Project All akan

berakibat, user tersebut minimal dapat

melihat daftar proyek dari perusahaan

lainnya, walaupun tidak mendapat permission

Company. User type sebagai CEO, Director,

Branch Manager, Manager, Supervisor

ataupun Employee tidak menentukan model

permission-nya. Tip dan trik dalam pem-

berian permission ini cukup banyak variasi-

nya, silakan dicoba.

Pada saat sebuah user account dipilih, di

bagian bawah terdapat dua buah menu

tabulasi, yaitu Owned Projects & Permissions.

Owned project akan menampilkan daftar

Gambar 3. Menambah user. Gambar 4. Seting permission.

Gambar 5. Proyek baru. Gambar 6. Daftar proyek baru.

dotProject

Page 23: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

www.infolinux.web.id72 InfoLINUX 09/2004

TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

proyek-proyek yang dimiliki oleh user ac-

count tersebut.

Sekarang pilihlah tab Permissions. Bagian

paling kiri akan berisi daftar permissions

yang diberikan, dan bagian kanan terdiri

dari Add or Edit Permissions dan Copy Per-

missions from Template.

Menu Add or Edit Permissions berfungsi

sebagai tempat memilih modul-modul serta

detail modul (item)-nya kalau ada, yang

akan dipilih dan diatur model permissions-

nya. Sedangkan menu Copy Permissions

from Template dapat digunakan untuk

“mencontek” setting permissions yang

sudah ada pada user account tertentu kepada

user account yang kita inginkan.

Menjalankan projects (Proyek-proyek)Membuat proyek baruUser yang berhak untuk membuat proyek

baru, minimal harus memiliki permission

company yang read-only. Klik-lah pada New

Project yang letaknya di bagian kanan atas.

Pendefinisian sebuah proyek baru mem-

butuhkan data minimal berupa: Project

Name, Project Owner, Company, Short Name,

Status dan Color Identifier. Secara default Sta-

tus akan berisi Not Defined, sedangkan Sta-

tus lainnya yang dapat dipilih antara lain Pro-

posed, In Planning, In Progress, On Hold, dan

Complete. Sebenarnya pilihan status ini dapat

diubah-ubah (ke bahasa Indonesia misalnya)

dengan mengubah langsung ke database pada

tabel sysvals. Proyek yang dibuat akan

terdistribusi sesuai dengan statusnya.

Manajemen pekerjaan/tasksSetelah proyek didefinisikan dengan leng-

kap, langkah selanjutnya adalah men-

daftarkan pekerjaan-pekerjaan apa saja

(Tasks) yang akan dilakukan di dalam proyek

tersebut. Setiap Task dapat dispesifikasikan

berupa Milestone, Independent Task, Parent

Task, dan Child Task. Keempat spesifikasi

Tasks tersebut dapat kita tentukan di awal

pendefinisian, maupun ditentukan kemu-

dian dengan melakukan proses edit.

Setiap Task harus memiliki seorang task cre-

ator yang dipilih dari salah satu user. Task cre-

ator ini dapat menerima pesan berupa e-mail

dari para kontributor yang terlibat di Tasks

tersebut pada saat mengisi log task. Log Task

adalah suatu catatan perkembangan dalam

format teks yang dapat dimasukkan oleh siapa

saja yang terlibat pada proyek tersebut.

Setiap Task dapat ditentukan modelnya,

yaitu Public, Protected, Partisipant, dan Pri-

vate. Model Partisipant misalnya, Task

dengan pilihan ini hanya dapat diakses oleh

orang-orang yang memang dilibatkan dalam

pekerjaan tersebut, yaitu creator dan assigned

staff (orang yang ditunjuk sebagai pelak-

sana). Administrator dotProject sekalipun

tidak bisa melihat detail Task dengan option

Partisipant ini.

Bila ada pekerjaan yang merupakan de-

tail atau sub dari pekerjaan yang lain, maka

pada spesifikasi data pekerjaan tersebut

harus menyertakan Task Parent-nya. Biasa-

nya suatu pekerjaan yang berposisi sebagai

task parent, maka pendefinisian pekerjaan

tersebut menyertakan pilihan Dynamic Task.

Pemilihan ini akan menjadikan waktu awal

dan akhir penyelesaian pekerjaan tersebut

menyesuaikan dengan subpekerjaan yang

pertama dan yang terakhir didefinisikan.

Jadi input-an Start Date maupun Finish Date

menjadi tidak perlu. Sayangnya pada versi

1.0.2 ini, field Target Budget tidak secara

otomatis ter-update.

Apabila suatu pekerjaan bergantung

kepada jadwal mulainya setelah penyelesaian

jadwal yang lainnya, maka hal tersebut

diatur pada bagian Task Dependencies. Kita

tinggal memilih satu atau lebih pekerjaan

yang menjadi prasyarat dilaksanakannya

pekerjaan yang sedang didefinisikan ini.

Pekerjaan-pekerjaan tersebut dapat pula

ditampilkan dalam format Gantt Chart.

Ada titik lemah pada penggunaan Gantt

Chart ini, yaitu pada saat daftar pekerjaan

mencapai jumlah yang sangat banyak. Secara

visual di layar monitor, memang semua

pekerjaan akan ditampilkan secara lengkap,

tetapi membutuhkan waktu cukup lama,

karena server harus meng-generate gambar

terlebih dahulu baru kemudian dikirim ke

client. Di samping itu, apabila Gantt Chart

menjadi sangat besar lalu akan dicetak ke

printer, gambar yang tercetak menjadi kacau

karena tidak dilakukan pagging terhadap

Gantt Chart yang besar tersebut.

Task LogsTask Logs adalah bagian yang sangat penting

dalam proses pengawasan kemajuan suatu

pekerjaan. Menu ini ditampilkan jika suatu

pekerjaan dipilih dengan cara melakukan

Klik pada saat View Project.

Pengisian Logs ini dapat dilakukan oleh

siapa saja yang dapat mengakses Task terkait,

terutama pada user yang ditunjuk sebagai

pelaksana pekerjaan tersebut. User yang

bertugas mengisi Logs tersebut dapat

Gambar 8. Daftar task.Gambar 7. Task baru.

dotProject

Page 24: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

73InfoLINUX 09/2004www.infolinux.web.id

TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

memilih pilihan (check box) Notify Creator

agar dotProject mengirimkan email kepada

pembuat project tentang pengisian Logs ini.

Karena sifat dari fungsi adalah sebagai Logs,

maka tidak ada pilihan untuk mengedit dari

apa yang sudah dimasukkan, hanya bisa

dilakukan penghapusan saja.

CalendarModul Calendar pada dotProject adalah

gabungan antara sistem event management

dan task management. Pilihan tampilan yang

disediakan adalah per bulan, per minggu dan

per hari dengan default tampilan per bulan.

Tampilan per minggu dapat ditampilkan

dengan cara mengklik icon yang ada di

kolom paling kiri/awal minggu dari tam-

pilan perbulan.

Tampilan per hari dapat dimunculkan

dengan cara mengklik pada tanggal tertentu.

Pengaturan Calendar ini secara umum, ada

di file config.php yang ada di direktori in-

cludes. Baris yang mengatur Calendar ini

adalah:

// Calendar settings.

// Day view start end and

increment

$dPconfig[‘cal_day_start’]

= 8; // Start hour, in 24

hour format

$dPconfig[‘cal_day_end’]

= 17; // End hour in 24 hour

format

$dPconfig[‘cal_day_increment’]

= 15; // Increment, in minutes

$dPconfig[“cal_working_days”]

= “1,2,3,4,5”; // days of week

that the company works 0=Sunday

Pengaturan di atas menunjukkan bahwa

calendar perhari akan menampilkan events

mulai dari jam 8 pagi hingga jam 17. Walau-

pun demikian, pendefinisian jadwal lebih awal

dari jam 8 tetap bisa dilakukan, akan tetapi

ditampilkan tetap pada posisi jam 8. Sayang-

nya tampilan events ini masih ada bugs se-

hingga tampilannya masih ada yang tidak pas.

Di bagian tampilan harian ini pula dapat

dilihat apakah sebuah pekerjaan/project

masih dalam jadwal (on schedule) atau sudah

melewati jadwal yang ditentukan dengan

pembedaan berdasarkan perbedaan warna

latar belakang tulisannya.

Manajemen fileTerkadang dalam pengerjaan proyek, di-

butuhkan file-file digital yang bisa diakses

oleh orang lain dalam proyek tersebut, maka

fitur Manajemen File ini menjadi alat yang

sangat bermanfaat ketika diperlukan pen-

distribusian file-file tertentu yang berguna

bagi proyek.

Untuk bisa memanfaatkan fitur ini,

direktori ~public_html/dotproject/files harus

diatur menjadi mode 777.

$ cd ~/public_html/dotproject/

$ cd chmod 777 files

Manajemen Trouble TicketDotProject menyediakan management trouble

ticket sederhana tapi cukup berguna. Setiap

ticket yang diajukan akan dapat diposisikan

pada status Open, Processing, Closed, dan De-

leted. Masing-masing status dapat berpindah-

pindah dengan cara memberikan Post Follow-

up sekaligus perubahan statusnya. Khususnya

untuk Ticket yang sudah deleted, dapat secara

permanen dihilangkan dengan mengklik Ex-

punge Deleted.

Sayangnya hingga versi terakhir ini,

setiap ticket yang didefinisikan masih dapat

dilihat oleh siapapun walaupun dari com-

pany yang berbeda.

Manajemen forumdotProject memiliki modul forum yang

cukup baik dan lengkap. Salah satu kekuatan

forum di dotProject ini adalah keterkaitan

forum-forum yang ada dengan project-

project yang terdaftar.

Aktivitas pada modul forum ini antara

lain, penciptaan Forum baru, pembuatan

topic yang terkait dengan forum tersebut,

lalu interaksi para user terhadap topik-topik

dengan memasukkan catatan dan tang-

gapan. Setiap forum dimiliki oleh user

tertentu, yang akan memiliki wewenang

penuh terhadap pengaturan Forum milik-

nya itu, hingga dapat melakukan peng-

hapusan terhadap tanggapan, topik, bahkan

forum itu sendiri.

Manajemen contactTidak ada yang istimewa dari modul mana-

jemen contact yang dimiliki oleh dotProject

ini.

Bagian modul System Administrator

sengaja belum dibahas, karena bagian ini

masih dalam tahap pengembangan yang

masih cukup jauh dari sempurna. Secara

umum, dotProject cukup lengkap untuk

digunakan di keseharian, baik itu untuk

manajemen proyek pribadi maupun mana-

jemen proyek setingkat perusahaan.�Prihantoosa ([email protected])

Gambar 9. Gantt Chart. Gambar 10. Kalender bulanan.

dotProject

Page 25: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

www.infolinux.web.id74 InfoLINUX 09/2004

TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

Kylix merupakan Rapid Application Development tool di Linux yang luar biasa. Pengem-bangan aplikasi berbasis GUI dapat dilakukan dengan mudah menggunakan Kylix.

Mengenal Kylix danSeluk Beluk Instalasinya

Dunia Linux adalah surga bagi

pengembang program. Beragam

bahasa pemrograman tersedia.

Mulai dari yang konvensional sampai yang

penuh kontroversial. Berbagai pustaka, untuk

melakukan apa saja juga tersedia gratis. Mulai

dari kebutuhan pemrosesan teks sampai

dukungan Internet. Sementara, editor juga

banyak bukan kepalang. Saat ini terdapat

lebih dari 400 editor dan jumlahnya cen-

derung akan terus bertambah. Beberapa edi-

tor menawarkan fungsionalitas Integrated

Development Environment yang sangat

membantu dalam pengembangan aplikasi

skala menengah sampai besar.

Framework untuk pengembangan aplikasi

pun tersedia, dan hampir semuanya boleh

dikatakan gratis. Contoh yang terbaik

barangkali Mono, yang versi 1.0nya baru saja

diluncurkan.

Namun, dunia free software sepertinya

lupa pada satu kebutuhan pengembangan

aplikasi yang banyak terdapat di dunia Win-

dows: Rapid Application Development. Suatu

lingkungan pengembangan aplikasi yang

terintegrasi, segalanya telah tersedia, mulai

dari debugger sampai drag and drop GUI

builder. Di Windows, kita mengenal dengan

baik Visual Basic dan Delphi.

Benar bahwa kita mengenal Gambas dan

Boa-Constructor. Gambas adalah imple-

mentasi versi free software untuk Visual Ba-

sic. Namun, sampai saat ini, Gambas, se-

jujurnya, belum bisa digunakan dalam

lingkungan kerja produktif. Sementara, Boa-

Constrcutor, GUI builder untuk bahasa Py-

thon yang dikembangkan dengan pustaka

Wx, juga belum bisa digunakan untuk

lingkungan yang produktif. Fiturnya banyak,

termasuk integrasi Zope, namun banyak hal

harus diperbaiki agar layak digunakan sehari-

hari.

Yang paling sempurna barangkali Qt De-

signer, karya besar Trolltech. Sayangnya, us-

ability-nya belum sebagus Visual Basic

ataupun Delphi. Lagipula, untuk pengem-

bangan aplikasi non-free software, harganya

terlalu mahal untuk versi enterprise-nya.

Serba-serbi KylixBorland, sebagai software development com-

pany sangat terkenal, kemudian melakukan

porting Delphi 5 pada awalnya menggunakan

bantuan WineLib dan menghasilkan produk

dengan nama Kylix. Kylix sendiri hadir

dengan dua IDE untuk dua bahasa yang

berbeda: Delphi dan C++. Berbeda jauh

dengan kondisi di dunia windows dimana

kedua fungsionalitas tersebut dipaketkan

dalam dua produk berbeda: Delphi dan C++

Builder. Bahwa Kylix mendukung C++ tentu

bisa dipahami karena popularitas C++ yang

begitu tinggi di Linux.

Bagaimana tingkat usability-nya? Me-

nurut penulis, usability-nya sangat tinggi.

Penulis cukup lama menggunakan Delphi

ketika melakukan pemrograman di Windows

dan mendapatkan penggunaan Kylix sangat-

lah mudah dan menyenangkan.

Saat ini (atau sejak 2002), Kylix telah

mencapai versi 3. Kylix 3 dipaketkan dalam

tiga jenis: Open, Professional, dan Enterprise.

Versi open-nya bisa di-download bebas,

namun Anda hanya bisa membangun apli-

kasi GPL dengan versi open tersebut. Dan,

beberapa dukungan seperti XML dan data-

base canggih tidak akan didapatkan dari versi

open ini. Versi Enterprise adalah versi yang

paling lengkap dan menawarkan fungsi yang

luar bisa untuk sebuah produk dengan harga

US$1500.

Ada tiga permasalahan yang cukup meng-

ganjal. Yang pertama dan mungkin utama

adalah ketika Borland telah TIDAK menge-

luarkan update Kylix selama kurang lebih dua

tahun. Hal ini cukup menyita perhatian

karena pada saat Kylix 3 dirilis, teknologi

Linux belum secanggih saat ini. Kernel yang

digunakan masihlah 2.4, dan versi distro yang

didukung bahkan sangat kuno, seperti SUSE

7.3 misalnya. Saat ini, SUSE saja telah

mencapai versi 9.1 dengan kernel 2.6.

Masalah ini jelas berbahaya. Coba saja in-

stall Kylix 3 di SUSE 9.1, dan Anda akan

mendapatkan produk yang berhasil diinstal,

namun gagal dijalankan. Tidak hanya SUSE

9.1, Anda juga akan mendapatkan hal serupa

di distro berbasis kernel 2.6.

Masalah ini bisa diselesaikan, namun

solusinya sangat menyedihkan. Dan ketika

masalah ini selesai dan Anda ingin meng-

gunakan IDE C++, Anda bahkan tidak dapat

melakukan kompilasi apapun karena terjadi

inkompatibilitas dengan beberapa header

versi terbaru.

Permasalahan kedua adalah bahwa Kylix

hanya dapat digunakan untuk membuat

aplikasi untuk arsitektur IA32, artinya, untuk

arsitektur Intel 32 bit. Borland tidak mem-

berikan tanda untuk Kylix pada sistem 64-

bit, atau untuk arsitektur lain.

Permasalahan ketiga adalah tanda-tanda

akan mulai matangnya BuilderX. Yang satu

ini adalah unifikasi C++ dan semua tool

andalan Borland untuk pengembangan

aplikasi multi platform dengan C++. Ini

menjadi masalah karena ketika digabungkan

dengan masalah pertama dan kedua, sebuah

pertanyaan apakah Kylix akan dihentikan

menjadi pertanyaan yang sangat penting!

Penulis mengikuti beberapa milis Kylix

dan membaca beberapa interview dengan

pengembang utama Delphi pada beberapa

konferensi yang diadakan Microsoft, dan

mendapatkan beberapa sinyal bahwa Borland

sedang melakukan sesuatu dengan Kylix, atau

Kylix

Page 26: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

75InfoLINUX 09/2004www.infolinux.web.id

TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

pesimisnya, Borland masih memperhatikan

Kylix.

Beberapa pengembang melakukan pem-

bicaraan dengan Miguel Icaza, pengembang

utama Mono, dan mendapatkan sinyal bahwa

Borland juga memperhatikan Mono dan

Kylix, dan dihubungkan dengan perkiraan

bahwa Borland masih memperhatikan Kylix,

kita boleh sedikit lebih tenang.

Kylix, menurut perkiraan penulis, masih

sangat-sangat layak mendapatkan perhatian

dan layak pula dicoba apabila Anda mem-

butuhkan RAD. Pengalaman Borland dalam

mengembangkan tool bahasa pemrograman

sudah tidak diragukan lagi. Bicara matang,

Kylix adalah produk yang sangat matang.

Harap diperhatikan bahwa Kylix adalah

Delphi, yang telah diluncurkan tujuh atau

delapan seri di Windows.

Berbagai masalah Kylix akan kita bahas

dalam artikel ini. Beberapa contoh akan

dibahas pula.

Instalasi KylixInstalasi akan dilakukan pada distro SUSE

9.1, namun dapat diterapkan pada distro lain

dengan mudah. Pembahasan ini akan men-

cakup distro dengan kernel 2.6.x.

Apabila Anda memiliki CD-ROM Kylix,

masukkan segera, dan SUSE secara default

akan melakukan autorun dengan meminta

Anda untuk memasukkan password root. Hal

ini disebabkan karena secara default, instalasi

akan dilakukan secara system wide.

Ya. Kylix menawarkan dua tipe instalasi,

system wide dan lokal per user. Secara default,

apabila privilege root memungkinkan, maka

instalasi system wide akan dilakukan. Namun,

Anda selalu bisa memilih untuk melakukan

instalasi lokal.

Instalasi system wide memiliki banyak

manfaat, yang salah satunya adalah dapat

diakses oleh beberapa user tanpa meminta

setiap user untuk melakukan instalasi

masing-masing. Hal ini cukup menguntung-

kan dari sisi penggunaan ruang kosong

harddisk. Sekali melakukan instalasi, 400 MB

bisa terpakai untuk Kylix Enterprise.

Namun, sebelum Anda melanjutkan, se-

baiknya JANGAN melakukan instalasi secara

system wide. Batalkan apabila password root

diminta. Kenapa sebaiknya jangan system

wide? Pertama, system wide akan mengguna-

kan RPM, yang notabene segala dependency

dan aturannya cukup kuno. Salah satu paket

bahkan memiliki dependency pada suatu

pustaka yang saat ini telah cukup kuno dan

versi tersebut sudah tidak digunakan lagi.

Lakukan instalasi lokal per user, yang

dapat dijalankan sebagai user biasa dengan

memanggil file setup.sh di CD-ROM Kylix.

Instalasi ini tidak akan mengotori sistem

karena file-file akan di-copy-kan begitu saja

ke direktori yang Anda tentukan. Sistem akan

tetap bersih, walau, Anda harus berkorban

400 MB untuk setiap user.

Ketika setup.sh dijalankan, Anda akan

menjumpai layar persetujuan lisensi, kemu-

dian diikuti oleh pemilihan paket dan setelah

melewati proses instalasi, Anda pun selesai.

Instalasinya akan meng-copy-kan semua

file yang dibutuhkan ke ~/kylix3 secara de-

fault akan akan melakukan symlink berbagai

script ke home directory (link path). Untuk

SUSE, penulis lebih suka untuk melakukan

symlink berbagai script ke direktori bin relatif

terhadap home directory.

Apabila Anda ingin mendapatkan fungsi-

onalitas Delphi, maka jalankanlah file

startdelphi. Untuk fungsionalitas C++,

jalankanlah startbcb.

Pada SUSE 9.1, kernel 2.6.4 dan glibc 2.3.3,

berikut ini adalah apa yang akan muncul ketika

Anda menjalankan startdelphi misalnya:

nop@linux:~/bin> ./startdelphi

/home/nop/kylix3/bin/delphi:

relocation error: /home/nop/

kylix3/bin/libwine.borland.so:

symbol errno, version GLIBC_2.0

not defined in file libc.so.6

with link time reference

Sekilas, terlihat seperti kita tidak meng-

gunakan GLIBC 2.0, padahal versi yang

digunakan adalah 2.3.3. Kesalahan tersebut

bukanlah karena tidak adanya GLIBC 2.0,

namun karena cara pemrograman yang tidak

kompatibel dengan teknologi baru yang

digunakan Linux saat ini.

Untuk itu, paksa agar menggunakan libc

alternatif dengan mengeset variabel sistem

LD_ASSUME_KERNEL berikut ini:

LD_ASSUME_KERNEL=2.4.21 ./

startdelphi

atau, bukalah file startdelphi, dan tambahkan

baris berikut ini di awal script:

export LD_ASSUME_KERNEL=2.4.21

dan tambahkan baris berikut di akhir script:

unset LD_ASSUME_KERNEL

Pertama-tama, font matrix akan dibuat

setelah itu, Anda akan menjumpai layar

registrasi. Siapkan serial number dan akti-

vasinya, kemudian masukkanlah apabila

diminta. Untuk registrasi lebih lanjut, apabila

Anda tidak terhubung ke internet, pilihlah

untuk menggunakan email. Setelah semua-

nya beres, maka Kylix pun dapat dijalankan

dengan mulus.

Kita akan melaju ke permasalahan beri-

kutnya :)

Menggunakan KylixAnda telah selesai melakukan instalasi dan

registrasi. Kita akan melanjutkan dengan

menjalankan Kylix/Delphi sekali lagi, dan

kemudian berhadapan dengan RAD Delphi

yang populer tersebut.

Lakukanlah hal sederhana, tarik beberapa

button ke dalam form, kemudian simpan

semua project Anda beserta unitnya dengan

nama file default, dan build-lah project

Anda. Anda tidak perlu menulis satu baris

kode pun untuk menghasilkan sebuah win-

dow dengan segala tombol close, minimize,

dan maximize yang bekerja. Anda juga dapat

mencoba menjalankan project Anda dengan

menekan tombol F9. Project akan dijalankan

dengan sukses. Beres, Project1 telah Anda

buat dengan sangat mudah. Keluarlah dari

Kylix.

Sekarang, kita masuk ke permasalahan-

nya. Anda telah melihat bahwa aplikasi Anda

dapat dijalankan dengan sukses ketika Anda

menekan tombol F9. Sekarang, bukalah

xterm, dan masuklah ke direktori project

Anda. Dan jalankanlah Project1 Anda:

nop@linux:~/Project/Project1>

./Project1

./Project1: error while loading

shared libraries: ./Project1:

Kylix

http://www.distrolinux.net

Sedia CD Distro Linux & BSD

Murah, Bergaransi (10Rb/CD)

Email : [email protected]

HP/SMS : 0812 1876 981

Page 27: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

www.infolinux.web.id76 InfoLINUX 09/2004

TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

undefined symbol:

initPAnsiStrings

Terlihat bahwa Project1 seolah gagal

menemukan pustaka yang dibutuhkan.

Mencoba memperbaiki masalah, kita akan

coba melihat pustaka apa saja yang sebenar-

nya dibutuhkan oleh Project1 dan apakah

telah tersedia di sistem:

nop@linux:~/Project/Project1>

ldd Project1

/lib/libNoVersion.so.1

=> /lib/libNoVersion.so.1

(0x40018000)

linux-gate.so.1 =>

(0xffffe000)

libX11.so.6 => /usr/

X11R6/lib/libX11.so.6

(0x4002a000)

libpthread.so.0 => /

lib/tls/libpthread.so.0

(0x40127000)

libdl.so.2 => /lib/

libdl.so.2 (0x40137000)

libc.so.6 => /lib/tls/

libc.so.6 (0x4013a000)

/lib/ld-linux.so.2 => /

lib/ld-linux.so.2 (0x40000000)

Sekali lagi, keajaiban terjadi. Semua

pustaka yang dibutuhkan telah ditemukan,

namun Project1 masih beranggapan bahwa

ada pustaka yang kurang. Padahal, ketika di

dalam IDE Delphi, Project1 dapat dijalankan

dengan mulus.

Permasalahan tersebut disebabkan ada

beberapa pustaka runtime yang masih

dibutuhkan oleh Project1 dan lokasinya tidak

didaftarkan. Bahwa ketika berada di dalam

IDE dapat dijalankan dengan mulus karena

lokasi tersebut terdaftar di konfigurasi IDE.

Lokasi ajaib tersebut adalah direktori

kylix3/bin.

Ada beberapa cara untuk mendaftarkan

lokasi tersebut:

1. Masukkan entri path lengkap kylix3/bin

Anda, misal /home/nop/kylix3 ke /etc/

ld.so.conf. Anda akan membutuhkan

privilege root. Setelah itu, jalankan

ldconfig sebagai root. Cara ini akan

mempengaruhi sistem.

2. Gunakan variabel sistem dan tambahkan

path lengkap ke kylix3/bin. Kita akan

menggunakan cara kedua ini.

Untuk cara kedua, berikan perintah

berikut ini di xterm:

export LD_LIBRARY_PATH=/home/

nop/kylix3/bin:$LD_LIBRARY_PATH

Anda juga bisa memasukkan perintah ini

di ~/.profile ataupun di ~/.bash_profile.

Kini, aplikasi Anda dapat dijalankan

dengan mulus. Namun, harap perhatikan

bahwa deployment aplikasi adalah isu yang

berbeda dan tidak sesederhana masalah de-

pendency library. Kita akan membahas de-

ployment aplikasi Kylix di edisi-edisi

berikutnya.

Kita akan melanjutkan berbagai masalah

lain berikutnya :)

Masalah header C++Apabila Anda menggunakan fungsionalitas

C++, Anda akan menjumpai bahwa kom-

pilasi tidak akan berhasil karena beberapa

header tidak kompatibel. Untuk urusan yang

satu ini, download-lah patch (unofficial!) di

alamat berikut ini:

<ALAMAT>

Setelah itu, ikuti langkah instalasinya

untuk memperbarui header. Setelah itu,

diharapkan Anda akan dapat melakukan

kompilasi dengan mulus.

Masalah pustaka lainnyaKylix rupanya menganut aliran bersusah-susah

dahulu, bersenang-senang kemudian. Setelah

melakukan instalasi, banyak hal yang harus

diatur ulang agar kita bisa menikmati kylix.

Anda akan merasa lebih terkejut lagi

manakala mencoba melakukan koneksi da-

tabase. Sebagai contoh, koneksi ke database

PostgreSQL. Koneksi ini membutuhkan dua

pustaka besar, dan hanya satu yang diserta-

kan. Pustaka konektivitas ke PostgreSQL/Cli-

ent PostgreSQL harus Anda usahakan sendiri.

Apabila memiliki PostgreSQL, maka Anda

sangat beruntung. Apabila tidak, Anda perlu

mencari ke teman-teman Anda atau ke

Internet benda ajaib dengan nama libpq.so.

Ajaibnya lagi, umumnya Anda akan

mendapatkan libpq.so.3. Dan yang dibutuh-

kan adalah libpq.so.2! Maka, lakukan symlink

dan masalah dependency pun selesai untuk

kasus tersebut.

Di masa depan, apabila Borland belum

memperbaiki Kylix dalam waktu 6 bulan atau

1 tahun, maka dirasa masalah ini akan

bertambah.

Kylix

Persetujuan lisensi pada saat instalasi. Memilih paket yang akan diinstal.

Page 28: StarOffice Calc Fungsi Lookup di Calcopensource.telkomspeedy.com/infodokumen/abba/v21/InfoLinux2004/PDF... · array telah diurutkan secara ascending. Berikan nilai FALSE apabila tidak

77InfoLINUX 09/2004www.infolinux.web.id

TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

Yang penting, kita perlu mengetahui betul

cara memperbaiki masalah ketergantungan

ini. Memang sedikit repot, namun rasanya

tidak masalah dan tidak sebanding dengan

fasilitas yang diberikan oleh Kylix untuk

pengembangan aplikasi.

IDE akan memberikan pesan-pesan yang

sedikit aneh untuk masalah pustaka. Umum-

nya, apabila Anda menjumpai masalah Un-

able to Load libxxx, maka Anda harus

menelusuri berbagai ketergantungan, mulai

dari pustaka itu sampai pustaka lain yang

dibutuhkan.

Beberapa mitos yang perludiperhatikanSebagai suatu produk besar yang telah dua

tahun tidak diurus, Kylix mirip-mirip dengan

rumah besar yang kosong yang telah di-

tinggalkan selama dua tahun. Banyak mitos!

Bahkan, lahirnya Kylix saja sudah menim-

bulkan mitos. Kita akan membahas beberapa

mitos yang sebenarnya kurang tepat atau

sudah kurang tepat untuk saat ini.

1. Kylix dibangun dengan memanfaatkan

Qt, maka saya harus membayar Kylix dan

Qt! Sebenarnya tidak. Sekali Anda mem-

beli Kylix, maka hanya sekali itulah Anda

membayar untuk dapat menggunakan

Kylix.

2. Kylix dibangun dengan bantuan Winelib,

maka aplikasi yang dibangun dengan kylix

juga bukan aplikasi Linux natif! Tidak.

Mitos ini salah sama sekali. Urusan

winelib hanya selesai ketika Borland

membangun Kylix. Aplikasi yang di-

bangun dengan Kylix adalah aplikasi natif

Kylix

Proses instalasi. Instalasi selesai.

Linux dan tidak memerlukan emulator

atau layar kompatibilitas apa pun juga

untuk dapat berjalan di Linux.

3. Aplikasi yang dibangun dengan Kylix

hanya berjalan di Linux! Ini salah besar.

Memang tidak ada Kylix for Windows

(kalau ada, akan terdengar lucu sekali,

karena justru kylix ada karena Delphi),

namun Anda dapat mengunakan Delphi

6/7 untuk melakukan kompilasi ulang di

Windows.

4. File hasil kompilasi sangat besar. Ini benar

dan ini adalah ciri khas Borland. Penulis

ingat ketika pertama kali menggunakan

Delphi 2 dan 3. Perbedaan binary hasil

kompilasi, walaupun cukup mengagetkan,

masih bisa diterima karena peningkatan

berbagai fitur. Tapi, ketika dari 3 ke 4 atau

5, ukurannya bertambah besar padahal

seolah-olah tidak banyak penambahan

pada bagian komponen GUI. Tapi itulah

produk Borland. Untungnya, aplikasi

Anda dapat dijalankan dengan cukup

cepat walaupun berukuran cukup besar.

Anda akan lebih terkaget-kaget lagi ketika

membangun aplikasi database dengan

grid. Ukuran akan menembus di atas 1

MB! Menggunakan objcopy untuk men-

strip semua informasi juga tidak akan

membantu.

5. Aplikasi yang dibangun dengan Kylix akan

membutuhkan pustaka Qt! Salah. Ini di

Kylix 2. Aplikasi standar di Kylix 2 akan

membutuhkan sekitar 14 pustaka, ter-

masuk interface Qt. Saat ini, sudah tidak

perlu lagi.

6. Kylix adalah aplikasi yang tidak matang,

kata berbagai forum di Internet. Ini juga

belum tentu. Orang boleh saja bicara,

karena itu adalah hal masing-masing,

secara bertanggung jawab. Namun, rasa-

rasanya permasalahan utama adalah up-

date. Kylix justru matang setelah Borland

berhasil merilis 7 Delphi dan sibuk sekali

dengan Delphi.NET ataupun BuilderX.

Pengalaman Borland telah dibuktikan

lebih dari 20 tahun dalam membangun

tool pemrograman.

7. Kylix Enterprise tidak dapat digunakan

untuk membangun aplikasi GPL! Ini

salah besar. Yang ada adalah, Kylix Open

Edition tidak dapat digunakan untuk

membangun aplikasi proprietary. Sekali

Anda telah membeli Kylix Enterprise,

Anda berhak melakukan apa saja untuk

produk yang dihasilkan dari kylix ter-

sebut, selama masuk akal. GPL adalah

sesuatu yang masuk akal, jadi boleh-

boleh saja.

Hal terakhir, cobalah easter egg (telur

paskah) Kylix dengan membuka IDE Delphi

| Help | About dan mengetikkan DEVELOP-

ERS sambil menekan tombol ALT. Bisa juga

dengan mengetikkan TEAMS sambil me-

nekan tombol ALT.

Demikianlah beberapa serba-serbi dan isu

tentang Kylix. Masih banyak isu lagi se-

hubungan dengan penggunaan Kylix. Di

beberapa edisi ke depan, kita akan membahas

beberapa hal seputar penggunaan Kylix dan

deployment aplikasi. Selamat mencoba, dan

sukses!�Noprianto ([email protected])