June 10, 2016 | Author: Reza Mappangara | Category: N/A
Download Panduan Pendayagunaan Open Source Software- Bahasa Pemrograman Open Source.pdf...
Kementerian Negara Riset dan Teknologi Republik Indonesia
Panduan Pendayagunaan Open Source Software
Bahasa Pemrograman Open Source (Open Source Programming Language)
Jakarta, 2007
Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source
Hak Cipta © 2007 Kementerian Negara Riset dan Teknologi dan Yayasan Penggerak Linux Indonesia
Distribusi : Kementerian Negara Riset dan Teknologi Republik Indonesia Deputi Bidang Pendayagunaan dan Pemasyarakatan Iptek Asisten Deputi Pengembangan dan Pemanfaatan Teknologi Informasi Gedung II BPP Teknologi Lantai 6 Jl. MH. Thamrin No.8 – Jakarta 10340 Telepon : (021) 316 9181 / 316 9166 Faksimili : (021) 310 1952 Web : www.ristek.go.id
Yayasan Penggerak Linux Indonesia (YPLI) Jln. Mampang Prapatan X No. 4 Jakarta Selatan 12790 Indonesia Telp. 021 93740960, Fax. 021 7874225, Email:
[email protected] Pengurus YPLI: Rusmanto Maryanto (Ketua); Resza Ciptadi (Sekretaris); Effendy Kho (Bendahara); Penyusun: Firdaus Tjahyadi; Henry Saptono; Irfan Gustiarahman; Mgs. Hendri Thoyyib; Prihantoosa; Resza Ciptadi; Rusmanto Maryanto; Sirojul Munir; Yan Farmawan
ISBN 978-979-630-040-2
Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source i
SAMBUTAN MENEGRISTEK Pembangunan teknologi informasi merupakan sumber terbentuknya iklim yang menjadi landasan bagi tumbuhnya kreativitas sumberdaya manusia yang dapat menjadi sumberdaya pertumbuhan dan daya saing ekonomi. Dengan menyadari akan hal tersebut, peran teknologi informasi sangatlah penting dalam kehidupan masyarakat, sehingga mendorong peningkatan kemandirian, daya saing, kreativitas serta inovasi bangsa yang merupakan kunci utama keberhasilan pembangunan bangsa. Melalui semangat untuk membangkitkan inovasi ini, “Program Indonesia, Go Open Source (IGOS)” dideklarasikan. Tumbuhnya kesadaran untuk meraih kemandirian dalam pemanfaatan teknologi informasi dan komunikasi (information and communication technology-ICT), ditopang dengan tersedianya berbagai pilihan terhadap perangkat lunak (software) yang dapat digunakan oleh masyarakat. Pilihan untuk mengembangkan dan memanfaatkan open source software (OSS) merupakan pilihan yang rasional, baik dari segi legalitas, ekonomi, maupun tingkat keamanannya (security). Untuk kepentingan pendayagunaan open source serta memudahkan pengenalan perangkat lunak berbasis Open Source kepada masyarakat, Kementerian Negara Riset dan Teknologi menginisiasi penyusunan Panduan Pendayagunaan Open Source Software yang bekerjasama dengan komunitas Iptek, Yayasan Penggerak Linux Indonesia (YPLI). Dalam konteks ini, saya menyambut gembira penyusunan Panduan Pendayagunaan Open Source Software yang tentunya diharapkan dapat lebih memudahkan masyarakat dalam mengenal perangkat lunak berbasis open source. Dokumen tersebut terdiri atas delapan dokumen yaitu Perangkat Lunak Bebas dan Open Source, Petunjuk Instalasi IGOS Nusantara, Konfigurasi Server Linux, Aplikasi untuk Server, RDBMS (Relational Database Management System): MySQL, Bahasa Pemrograman Open Source, Aplikasi Perkantoran OpenOffice.org, dan CMS, CRM, dan ERP. Akhir kata, semoga kedelapan Dokumen ini dapat bermanfaat bagi peningkatan kemampuan masyarakat dalam penguasaan teknologi piranti lunak bebas dan open source. Dengan semangat “Kreativitas Tanpa Batas” dan maju bersama Indonesia, Go Open Source! Kita besarkan produk aplikasi perangkat lunak Indonesia. Jakarta, Juli 2007 Menteri Negara Riset dan Teknologi
Kusmayanto Kadiman
Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source ii
PENGANTAR Dokumen ini disusun sebagai salah satu bahan acuan untuk pelatihan tentang perangkat lunak bebas dan open source dengan semangat IGOS (Indonesia, Go Open Source!) yang dimotori oleh Kementerian Negara Riset dan Teknologi Republik Indonesia. Dokumen ini merupakan bagian dari delapan dokumen IGOS Training Tool Kit yang disusun oleh Yayasan Penggerak Linux Indonesia dan diterbitkan oleh Kementerian Negara Riset dan Teknologi Republik Indonesia. Kedelapan dokumen itu adalah Perangkat Lunak Bebas dan Open Source, Petunjuk Instalasi IGOS Nusantara, Konfigurasi Server Linux, Aplikasi untuk Server, RDBMS (Relational Database Management System): MySQL, Bahasa Pemrograman Open Source, Aplikasi Perkantoran OpenOffice.org, dan CMS, CRM, dan ERP. Sebagian bahan penyusunan dokumen ini diambil dari Open Source Training Tool Kit yang diterbitkan oleh Open Source Resource Center (OSRC) - Pakistan Software Export Board (PSEB). Lisensi dokumen ini OPL (Open Publication License) versi 1.0 atau yang lebih baru dan dapat diakses di http://opencontent.org/openpub/.
Jakarta, Juli 2007
Rusmanto Maryanto Ketua Yayasan Penggerak Linux Indonesia
iii Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source
DAFTAR ISI SAMBUTAN MENEGRISTEK.................................................................................................ii PENGANTAR............................................................................................................................iii DAFTAR ISI..............................................................................................................................iv I.Mengenal PERL........................................................................................................................1 1.Tentang PERL......................................................................................................................1 2.Menjalankan Program PERL..............................................................................................1 2.1.Eksekusi dari file.........................................................................................................1 2.2.Eksekusi dari command line........................................................................................2 3.Dasar-dasar PERL...............................................................................................................2 3.1.Program PERL.............................................................................................................2 3.1.1.Statemen................................................................................................................2 3.1.2.Komentar..............................................................................................................2 3.2.Variabel dan Tipe data.................................................................................................3 3.2.1.Skalar....................................................................................................................3 3.2.1.1.String petik tunggal (single quote) dan petik ganda (double quote).............3 3.2.2.Array....................................................................................................................4 3.2.3.Hash.....................................................................................................................5 3.3.Operator.......................................................................................................................6 3.4.Fungsi..........................................................................................................................7 3.5.Konstruksi Kondisional...............................................................................................8 3.5.1.if............................................................................................................................8 3.5.2.unless....................................................................................................................9 3.6.Konstruksi Loop..........................................................................................................9 3.6.1.for.........................................................................................................................9 3.6.2.foreach..................................................................................................................9 3.6.3.while...................................................................................................................10 3.7.Input dan Output ke file.............................................................................................10 3.7.1.Membaca dari file teks........................................................................................10 3.7.2.Menulis ke file teks............................................................................................10 3.8.Subrutin......................................................................................................................11 4.Penutup..............................................................................................................................12 II.Mengenal PHP.......................................................................................................................13 1.Menginstal PHP.................................................................................................................13 1.1.Instalasi Apache..........................................................................................................13 1.2.Instalasi module PHP dan PHP CLI:.........................................................................13 2.Menjalankan Program PHP...............................................................................................14 2.1.Aplikasi Konsol..........................................................................................................14 Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source iv
2.2.Aplikasi web..............................................................................................................14 3.Bahasa PHP.......................................................................................................................14 3.1.Program PHP..............................................................................................................15 3.2.Komentar....................................................................................................................15 3.3.Tipe Data....................................................................................................................16 3.3.1.Tipe Primitif.......................................................................................................16 3.3.1.1.Boolean........................................................................................................16 3.3.1.2.Integer.........................................................................................................16 3.3.1.3.float.............................................................................................................16 3.3.1.4.string...........................................................................................................16 3.3.1.4.1.Petik ganda...........................................................................................17 3.3.1.4.2.Petik Tunggal.......................................................................................17 3.3.1.4.3.Heredoc...............................................................................................17 3.3.2.Tipe Gabungan (compound)...............................................................................17 3.3.2.1.Array...........................................................................................................17 3.3.2.2.Objek..........................................................................................................18 3.3.3.Tipe Khusus........................................................................................................18 3.3.3.1.Resource......................................................................................................18 3.3.3.2.NULL ........................................................................................................18 3.3.4.Konversi ke boolean ..........................................................................................18 3.4.Variabel......................................................................................................................19 3.4.1.Assignment.........................................................................................................19 3.5.Ekspresi dan Operator...............................................................................................20 3.5.1.Operator aritmetika............................................................................................20 3.5.2.Operator incrementing/decrementing................................................................21 3.5.3.Operator assignment..........................................................................................21 3.5.4.Operator Perbandingan.......................................................................................21 3.5.4.1.Ternary........................................................................................................21 3.5.4.2.Equal...........................................................................................................22 3.5.4.3.Identical......................................................................................................22 3.5.4.4.Not Equal....................................................................................................22 3.5.4.5.Not Identical...............................................................................................23 3.5.5.Operator Logika.................................................................................................23 3.5.5.1.Logical AND..............................................................................................23 3.5.5.2.Logical OR.................................................................................................24 3.5.5.3.Logical XOR..............................................................................................24 3.5.5.4.Logical NOT..............................................................................................24 3.5.5.5.Logical AND (&&)....................................................................................24 3.5.5.6.Logical OR (||)............................................................................................24 3.5.6.Operator bit.......................................................................................................25 3.5.6.1.Bitwise AND..............................................................................................25 3.5.6.2.Bitwise OR.................................................................................................25 v Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source
3.5.6.3.Bitwise XOR..............................................................................................25 3.5.7.Operator String...................................................................................................26 3.6.Kendali Alur Program................................................................................................26 3.6.1.Conditional.........................................................................................................26 3.6.2.switch ................................................................................................................27 3.6.3.Struktur loop......................................................................................................27 3.6.3.1.while...........................................................................................................28 3.6.3.2.do while......................................................................................................29 3.6.3.3.break ..........................................................................................................30 3.6.3.4.continue......................................................................................................30 3.6.3.5.foreach........................................................................................................31 3.6.3.6.return..........................................................................................................32 3.6.3.7.Exception....................................................................................................32 3.7.Fungsi.........................................................................................................................33 3.7.1.Mendefinisikan Fungsi ......................................................................................33 3.7.2.Nilai Default untuk parameter............................................................................34 3.7.3.Pemanggilan Fungsi...........................................................................................34 3.8.Class...........................................................................................................................35 3.9.Reusabilitas................................................................................................................36 3.9.1.include................................................................................................................36 3.9.2.require................................................................................................................36 3.9.3.include_once......................................................................................................36 3.9.4.require_once.......................................................................................................37 3.10.Menggunakan Fungsi dan Class dan file lain..........................................................37 4.Aplikasi Web.....................................................................................................................37 4.1.Method GET dan POST.............................................................................................38 4.2.Menangani request.....................................................................................................38 4.2.1.Request GET.......................................................................................................38 4.2.2.Request POST....................................................................................................38 4.3.Penjelasan Program...................................................................................................39 4.3.1.File head.php......................................................................................................39 4.3.2.File ordersvc.php................................................................................................39 4.3.3.File menu.php....................................................................................................40 4.3.4.File pesan.php.....................................................................................................41 5.Penutup..............................................................................................................................42 III.Mengenal Python.................................................................................................................45 1.Apa itu Python...................................................................................................................45 2.Menjalankan Interpreter Python........................................................................................45 3.Program Python.................................................................................................................46 4.Statemen............................................................................................................................46 5.Komentar...........................................................................................................................46 6.Objek dan variabel............................................................................................................46 Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source vi
7.Tipe data, literal dan operasi..............................................................................................47 7.1.Bilangan......................................................................................................................47 7.2.String dan Unicode String..........................................................................................48 7.3.Boolean......................................................................................................................49 7.4.Tipe data container.....................................................................................................49 7.4.1.List......................................................................................................................49 7.4.2.Tuples.................................................................................................................49 7.4.3.Sets.....................................................................................................................50 7.4.4.Dictionary...........................................................................................................50 8.Ekspresi dan operasi..........................................................................................................50 8.1.Ekspresi Atom............................................................................................................50 8.1.1.Identifier.............................................................................................................50 8.1.2.Literal..................................................................................................................51 8.1.3.Enclosure............................................................................................................51 8.1.3.1.Bentukan dalam Kurung (Parenthesized forms)..........................................51 8.1.3.2.List display..................................................................................................51 8.1.3.3.Generator expressions.................................................................................51 8.1.3.4.Dictionary display.......................................................................................52 8.1.3.5.Konversi String...........................................................................................52 8.2.Ekspresi Primer (Primaries) .....................................................................................52 8.2.1.Referensi Atribut (Attribute Reference).............................................................52 8.2.2.Subskrip.............................................................................................................52 8.2.3.Irisan (Slicing)...................................................................................................53 8.2.4.Pemanggilan callable (calls) .............................................................................54 8.3.Operasi Pangkat.........................................................................................................54 8.4.Operasi aritmetika unary...........................................................................................54 8.5.Operasi aritmetika biner............................................................................................54 8.5.1.Perkalian.............................................................................................................54 8.5.2.Pembagian..........................................................................................................55 8.5.3.Modulus (%)......................................................................................................55 8.5.4.Penjumlahan.......................................................................................................55 8.5.5.Pengurangan.......................................................................................................55 8.6.Operasi Pergeseran (shifting)....................................................................................55 8.7.Operasi Bit Biner (binary bitwise).............................................................................56 8.8.Operasi Perbandingan (comparison).........................................................................56 8.9.Operasi Boolean.........................................................................................................57 8.10.Lambda.....................................................................................................................57 8.11.Ekspresi Lists...........................................................................................................58 9.Fungsi................................................................................................................................58 10.Statemen Kendali Alur....................................................................................................59 10.1.Statemen if................................................................................................................59 10.2.while.........................................................................................................................60 vii Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source
10.3.for.............................................................................................................................61 10.4.pass...........................................................................................................................61 10.5.exceptions.................................................................................................................62 11.Modules............................................................................................................................62 11.1.Mendefinisikan Module............................................................................................63 11.2.Menggunakan Module.............................................................................................63 11.3.Module search path..................................................................................................63 12.Class................................................................................................................................64 13.Penutup............................................................................................................................65 IV.Mengenal Ruby.....................................................................................................................67 1.Apakah Ruby.....................................................................................................................67 2.Mendapatkan dan Mengintal Ruby....................................................................................67 3.Menjalankan Ruby.............................................................................................................67 3.1.Menggunakan file skrip.............................................................................................67 3.2.Menggunakan command line.....................................................................................68 3.3.Secara Interaktif.........................................................................................................68 4.Struktur Program Ruby.....................................................................................................68 4.1.File program atau skrip..............................................................................................68 4.2.Statement...................................................................................................................69 4.3.Komentar...................................................................................................................69 4.4.Class...........................................................................................................................69 4.5.Module.......................................................................................................................70 5.Tipe Data Dasar, Literal dan Variabel...............................................................................70 5.1.Numerik.....................................................................................................................70 5.2.String..........................................................................................................................71 5.3.nil...............................................................................................................................72 6.Variabel..............................................................................................................................72 7.Variabel adalah Reference.................................................................................................72 8.Scope variabel dan penamaannya......................................................................................73 8.1.Variabel global...........................................................................................................73 8.2.Variabel lokal.............................................................................................................73 8.3.Variabel instance........................................................................................................73 8.4.Variabel class.............................................................................................................74 8.5.Array dan Hash..........................................................................................................74 9.Ekspresi dan Struktur kendali............................................................................................75 9.1.Ekspresi melibatkan string dan numerik...................................................................75 9.2.Eksekusi Conditional.................................................................................................76 9.2.1.If ... then ... end...................................................................................................76 9.2.2.Conditional Ternary...........................................................................................76 9.3.Loop...........................................................................................................................77 10.Method.............................................................................................................................77 10.1.Blok dan Iterator.......................................................................................................78 Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source viii
11.Class.................................................................................................................................80 11.1.Mendefinisikan Class................................................................................................81 11.1.1.Bagian-bagian class...........................................................................................81 11.1.1.1.Constructor.................................................................................................81 11.1.1.2.Method Instance.........................................................................................81 11.1.1.3.Method Class.............................................................................................82 11.1.1.4.Variabel Instance.......................................................................................82 11.1.1.5.Variabel class.............................................................................................82 11.1.2.Inheritance (class turunan)................................................................................82 12.Modules...........................................................................................................................83 12.1.Mendefinisikan Module...........................................................................................83 12.2.Menggunakan module..............................................................................................84 12.2.1.Menggunakan path...........................................................................................84 12.2.2.Menggunakan variabel khusus $:.....................................................................84 12.2.3.Menggunakan ruby option -I ...........................................................................85 12.2.4.Menggunakan variabel environment RUBYLIB..............................................85 12.3.Mixin........................................................................................................................85 13.Penutup............................................................................................................................87 V.Mengenal GCC (GNU Compiler Collection)........................................................................89 1.Apakah GCC itu?...............................................................................................................89 2.Meng-compile satu file source ke file executable.............................................................89 3.Meng-compile ke file object..............................................................................................90 4.Menggunakan file header..................................................................................................90 5.Linking dari object file menjadi executable......................................................................92 6.Menggunakan library........................................................................................................93 6.1.Membuat static library...............................................................................................93 6.2.Linking ke static library.............................................................................................94 6.3.Membuat dynamic library.........................................................................................94 6.4.Menggunakan dynamic library..................................................................................94 6.5.Menjalankan program yang menggunakan dynamic library.....................................95 7.Penutup..............................................................................................................................95 VI.Pengenalan Aplikasi Eclipse................................................................................................97 1 . Instalasi...........................................................................................................................97 2 . Menjalankan Eclipse .....................................................................................................97 3 . Memilih Workspace.......................................................................................................98 4 . Mematikan aplikasi eclipse............................................................................................98 5 . Project Pertama..............................................................................................................99 6 . Memberi nama project..................................................................................................100 7 . Seting Project................................................................................................................101 8 . Membuat Aplikasi Java Sederhana...............................................................................101 9 . Edit dan Compile Kode Program..................................................................................102 10 . Menjalankan aplikasi..................................................................................................103 ix Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source
11 .Referensi .....................................................................................................................103 VII.Pengenalan Aplikasi Netbeans..........................................................................................105 1 .Instalasi..........................................................................................................................105 1.1 Instalasi Java............................................................................................................105 1.2 Instalasi Netbeans...................................................................................................105 2 .Un-Instal NetBeans .......................................................................................................107 3 .Memulai Netbeans.........................................................................................................108 3.1 Memulai Projek.......................................................................................................109 3.2 Membuat Projek......................................................................................................110 3.3 Window Kerja NetBeans.........................................................................................111 3.4 Membuat Class........................................................................................................112 3.5 Compile dan Running Program ..............................................................................113 4 .Aplikasi Dekstop............................................................................................................113 5 .Aplikasi Web..................................................................................................................114 5.6 Referensi......................................................................................................................115
Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source x
I. Mengenal PERL 1.Tentang PERL PERL adalah bahasa pemrograman yang menggunakan tipe data dinamis, program PERL dapat langsung dieksekusi tanpa harus melalui proses kompilasi tersendiri ke format binary yang dapat dieksekusi. PERL banyak digunakan pada aplikasi manajemen sistem dan jaringan, pemrograman web, manipulasi teks, akses ke database. Berikut ini beberapa aplikasi yang menggunakan PERL yang cukup dikenal: mrtg, SQL Ledger (aplikasi akunting), Webmin (aplikasi admin), spam assasin (anti spam).
2.Menjalankan Program PERL 2.1.Eksekusi dari file Berikut ini sebuah program PERL salam.pl, yang mencetak salam universal di konsol, jika ada argumen pada command line maka ditampilkan setelah salam. #!/usr/local/bin/perl if ($#ARGV > -1) { print "assalamu'alaikum $ARGV[0]\n"; } else { print "assalamu'alaikum\n"; }
Eksekusi di shell menggunakan PERL interpreter, sbb: bash% perl salam.pl Hafizh assalamu'alaikum Hafizh
Agar dapat dieksekusi tanpa mengetikkan interpreter perl di command line, file salam.pl perlu diset permissionnya. Misalkan dengan perintah : bash% chmod 755 salam.pl bash% ./salam.pl Hafizh assalamu'alaikum Hafizh
Pastikan program PERL diawali dengan path lengkap ke interpreter perl yang terinstal di sistem operasi anda, untuk sistem berbasis Linux dan Unix, path tersebut harus diawali dengan karakter '#!' , seperti contoh: #!/usr/local/bin/perl
Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source 1
2.2.Eksekusi dari command line PERL dapat mengeksekusi perintah secara langsung dari command line, tanpa perlu membuat file program, menggunakan options -e di interpreter perl, contoh: bash% perl -e 'print ”Assalamu''alaikum\n”'
Perhatikan dua kutip tunggal di tengah kata, karena kutip tunggal digunakan untuk membatasi perintah. Jika menggunakan kutip ganda untuk membatasi perintah : bash% perl -e “print \”Assalamu'alaikum\n\””
3.Dasar-dasar PERL 3.1.Program PERL Program PERL atau skrip PERL, biasa disimpan dalam file teks berakhiran .pl. Walaupun demikian perl interpreter tetap akan mengeksekusi program PERL yang tidak menggunakan ekstensi .pl. Sebuah program PERL yang executable dapat menggunakan hanya statement, tanpa perlu mendefinisikan fungsi khusus seperti main() dalam program bahasa C. Program PERL dapat terdiri atas statemen, deklarasi subroutine, konstruksi kondisional, konstruksi loop, konstruksi block.
3.1.1.Statemen Statemen diakhiri dengan tanda titik coma. Statemen dapat berbentuk deklarasi variabel, assignment variabel dan pemanggilan fungsi. White space (spasi, baris baru) diabaikan. print "open source software ?!", " it's a miracle",
", do you believe miracle?\n";
3.1.2.Komentar Sebagaimana bahasa pemrograman lainnya, programmer PERL dapat menuliskan komentar dalam kode program, dengan menempatkan karakter '#' sebelum baris komentar, contoh: # menghitung hitung luas $area = $pi * $radius * $radius;
Atau dapat juga setelah bagian kode: $area = $pi * $radius * $radius; # menghitung hitung luas
2 Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source
Komentar diperlakukan sebagaimana white space.
3.2.Variabel dan Tipe data Variabel digunakan untuk menyimpan data. PERL memiliki 3 tipe variabel utama: skalar, array dan hash. Nama-nama variabel, dan identifier lainnya dalam PERL adalah casesensitive.
3.2.1.Skalar Variabel skalar menyimpan data bernilai tunggal, tipe data dapat berupa string atau bilangan. Tipe data secara otomatis ditentukan pada saat assignment variabel. tidak perlu mendeklarasikan tipe data sebelum assignment. Nama variabel skalar dimulai dengan karakter '$'. Contoh: # string $file = '/etc/profile'; $kota = “depok”; # integer $_num = $byte_ =
255; 0x00ff;
# float $konstanta_pi = 22/7;
3.2.1.1.String petik tunggal (single quote) dan petik ganda (double quote) String dapat dinyatakan dalam petik tunggal (') dan petik ganda (“). String dengan petik tunggal menyatakan data adalah seperti yang tertulis, tidak ada interpretasi terhadap karakter-karakter pada string. String dengan petik ganda menyatakan bahwa interpreter PERL harus melakukan interpretasi terhadap karakter-karakter pada string tersebut. Contoh: # dicetak dalam satu baris, karakter \n tidak diinter pretasikan $str1
=
'\niman \nilmu \namal \n';
print $str1;
# dicetak dalam 3 baris diikuti baris baru $str2
=
“\niman \nilmu\namal \n”;
Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source 3
print $str2;
# mencetak 'honour the adzan' diikuti baris baru $str3 = 'honour'; $str4 = “$str3 the adzan\n”;
Variabel Khusus PERL juga mengenal beberapa variabel skalar khusus, seperti $ARG, $_, $!, $1, $2, $3, dan sebagainya yang dijelaskan di man perlvar
3.2.2.Array Array menyimpan sekumpulan nilai secara berurutan (sekuensial), yang biasa disebut list, nilai-nilai yang disimpan dapat berbeda-beda tipe datanya. Untuk membaca nilai anggota array digunakan nomor indeks integer dimulai dari nol. Variabel array dideklarasikan menggunakan karakter @ di depan nama variabel, data anggota array ditempatkan dalam kurung (), nilai-nilai anggota dipisahkan oleh koma. Nilai anggota array dibaca menggunakan operator [] dan nomor indeks. Contoh: @prima1 = (2,3,5,7 , 11, 13, 1 7); # mencetak '5' print $prima1[2];
Untuk mendapatkan jumlah anggota array digunakan variabel $# diikuti nama variabel, tapi nilainya adalah jumlah anggota array dikurangi satu. Nilai ini juga dapat digunakan untuk membaca elemen terakhir. Contoh : @hari2 = (1, "senin",2,"selasa", 3,"rabu",4,”kamis”, 5, ”jumat”); # mencetak 'jumlah anggota : 9' print “jumlah anggota : $#hari2 \n”; # mencetak 'elemen terakhir : jumat' print “elemen terakhir : $hari2[$#hari2] \n”;
Jika sebuah program mencoba menulis anggota array pada posisi indeks yang lebih besar dari ukuran array, maka PERL secara otomatis menambah ukuran array sampai posisi baru tersebut. Contoh: @bil3 = (10, 20, 30, 40); # mencetak 'ukuran array : 3'
4 Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source
print “ukuran array : $#bil3 \n”;
$bil3[110] = 1234; # mencetak 'ukuran array : 110' print “ukuran array : $#bil3 \n”;
Membaca dari array dengan indeks yang lebih besar tidak akan menyebabkan error dan tidak akan menambah ukuran array. Contoh: @bil4 = (10,20,30,40); $t1 = $bil4[89]; # mencetak 'ukuran array : 3' print "ukuran array : $#bil4 \n";
Jika variabel array dievaluasi dalam konteks nilai skalar (scalar context) maka variabel tersebut dievaluasi sebagai jumlah anggota array, contoh: # dievaluasi dalam scalar context @arr = (10,20,6, 19, 11,22); if(@arr == 6) { print "jumlah anggota array ada 6\n"; }
Array dapat disalin sebagian anggotanya ke array lain dengan mudah (array slice), menggunakan operator [], Contoh: @arr1 = ('semar', 'srikandi'); @arr2 = @arr1[2,4] @arr3 = @arr1[1..3]
'gareng',
'petruk',
'bagong', 'arjuna',
# 'petruk' dan 'arjuna' # 'gareng', 'petruk', 'bagong'
@arr4 = @arr1[1..$#arr1] # semua kecuali 'semar'
3.2.3.Hash Hash menyimpan sekumpulan nilai yang menggunakan pasangan nama kunci dan nilai. Nama kunci dalam sebuah variabel hash haruslah unik, tidak boleh ada 2 pasangan yang menggunakan nama kunci yang sama. Variabel hash didefinisikan menggunakan karakter % diikuti nama variabel. Nilai-nilai anggota hash terdiri atas pasangan nama kunci dan nilai yang dipisahkan oleh koma. Nama kunci dan pasangan dituliskan berurutan, dapat dipisahkan tanda koma atau dapat juga dipisahkan oleh karakter '=>'. Untuk membaca nilai anggota hash digunakan operator kurawal {} dan nama kunci. Contoh:
Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source 5
%rasa_buah1 = ('asam', 'asem djawa', 'manis', 'manggis', 'pahit' 'pare');
,
# mencetak 'yang pahit = pare' print “yang pahit = $rasa_buah1{'pahit'} \n”;
# dapat juga ditulis seperti ini %rasa_buah2 = ( 'asam'
=> 'asem djawa',
'manis' =>' manggis', 'pahit'
=>
'pare');
$rasa = 'manis'; # mencetak 'yang manis = manggis' print “yang $rasa = $rasa_buah2{$rasa} \n”;
3.3.Operator PERL memiliki banyak operator dan fungsi yang built-in, berikut ini beberapa operator yang umum digunakan, selengkapnya dapat dilihat dengan man perlop. Manipulasi String .
Concat (penggabungan) Aritmetika
+
Penjumlahan
-
Pengurangan
*
Perkalian
/
Pembagian Perbandingan Bilangan
'==
kesamaan
'!=
Ketidaksamaan
<
Kurang dari
>
Lebih dari
=
Lebih dari atau sama dengan Perbandingan String
eq
kesamaan
6 Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source
ne
Ketidak samaan
lt
Kurang dari
gt
Lebih dari
le
Kurang dari atau sama dengan
ge
Lebih dari atau sama dengan
Perhatikan bahwa PERL menyediakan operasi pembanding string dan pembanding bilangan. String dibandingkan secara alpabetis. Secara alpabetis, string '100' lebih kecil dari '8'. Contoh: $a = 100; $b = 8 if ( $a > $b ) { print “Bilangan $a lebih besar dari $b\n”; } else { print “Bilangan $a tidak lebih besar dari $b\n”; } if ( $a gt $b ) { print “String $a secara alpabetis lebih besar dari $b”; } else { print “String $a secara alpabetis tidak lebih besar dari $b”; }
Operasi perbandingan menghasilkan nilai benar (true) atau salah (false). TRUE dan FALSE dalam PERL PERL tidak mengenal tipe data khusus untuk mewakili TRUE dan FALSE. Dalam PERL nilai berikut ini adalah FALSE: bilangan 0, string '0', list kosong (), dan undef , selain nilai-nilai tersebut adalah TRUE.
3.4.Fungsi PERL memiliki fungsi built-in yang kaya, salah satu yang sudah diperkenalkan adalah print. Fungsi dapat menerima nol atau lebih argumen. Argumen sebuah fungsi dapat berupa skalar, list, atau keduanya. Pemanggilan fungsi dapat menggunakan tanda kurung () diantara argumen, dapat juga tidak. Fungsi printadalah fungsi yang menerima argumen list. Contoh: print “saya”, “belajar”, “PERL”; # sama dengan
Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source 7
print (“saya”, “belajar”, “PERL”);
Fungsi print juga dapat menerima argumen skalar berupa filehandle dan list. Tentang filehandle akan dijelaskan dibagian File Input dan Output. Fungsi dapat mengembalikan nilai skalar atau list. Berikut ini fungsi localtime, yang mengembalikan list berisi data waktu, dipanggil tanpa argumen: @bulan = ('jan', 'peb', 'mar', 'apr', 'mei', 'jun', 'jul', 'ags', 'sep', 'okt', 'nop', 'des'); @hari = ('minggu', 'senin', 'selasa', 'rabu', 'kamis', 'jumat', 'sabtu'); ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime; print "Bulan $bulan[$mon] hari $hari[$wday] tgl $mday tahun ", 1900+$year,"\n";
Perlu diingat bahwa PERL pertamakali dikembangkan di lingkungan Unix, jadi akan banyak ditemukan fungsi-fungsi yang familiar dengan sistem operasi ini, misalnya yang berhubungan dengan file system, socket, network, interprocess communication, dan process control. Daftar fungsi built-in secara lengkap dapat dibaca dengan man perlfunc. Penjelasan untuk fungsi tertentu dapat dicari dengan perldoc -f . Contoh: bash% perldoc -f localtime
3.5.Konstruksi Kondisional Berikut ini konstruksi kondisional yang disediakan PERL
3.5.1.if Mengeksekusi statemen jika kondisi bernilai benar. Untuk percabangan menggunakan elsif dan else. Bentuknya : if ( kondisi1) { # statemen-statemen } elsif (kondisi2) { # statemen-statemen } elsif (kondisi3) { # statemen-statemen } else {
8 Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source
# statemen-statemen }
3.5.2.unless Adalah kebalikan dari if.
3.6.Konstruksi Loop PERL mengenal beberapa jenis loop:
3.6.1.for Digunakan untuk melakukan pengulangan berdasarkan 3 ekspresi yang masing-masing untuk : memulai loop, menentukan apakah melanjutkan eksekusi loop, dieksekusi pada akhir loop supaya kondisi untuk mengakhiri loop dapat dicapai. Bentuknya: for ( ; ; ) { # statemen-statemen }
Ekspresi yang umum digunakan adalah sebagai berikut: for ( $i = 0; $i < $jumlah_pengulangan; $i++ ) { # statemen }
3.6.2.foreach Digunakan untuk melakukan iterasi berdasarkan anggota sebuah array atau list. Bentuknya: foreach () { }
Contoh: # iterasi atas array @hari = ('senin','selasa','rabu','kamis','jumat','sabtu','minggu'); foreach $h (@hari) { print "hari $h\n"; } # terhadap list $p = 1; foreach $q (2..6) { $p *= $q;
Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source 9
} print "faktorial 6 = $p\n"; # atau terhadap array slice foreach $q (@hari[2..5]) { print "$q\n"; }
3.6.3.while Loop dieksekusi selama kondisi adalah TRUE. Untuk keluar dari loop harus dengan mengubah kondisi menjadi false atau menggunakan statement last; Bentuknya : while(kondisi) { # statemen }
3.7.Input dan Output ke file 3.7.1.Membaca dari file teks Sebelum file dapat dibaca maka harus file dibuka dengan fungsi open, dengan mode “baca”, contoh: open($fh, '/etc/passwd');
Variable $fh adalah filehandle yang diperlukan untuk membaca dan menutup file. Selanjutnya setiap baris dibaca dengan operator . sebagai berikut: while($line = ) { # memproses $line }
Setelah selesai file ditutup dengan fungsi close, contoh: close($fh)
3.7.2.Menulis ke file teks Perintah yang sama dengan program di atas dapat digunakan untuk menulis ke file. Pertama, file dibuka dengan mode 'tulis': open($fh, “> /path/ke/file”);
selanjutnya dapat ditulis dengan perintah print, menggunakan file handle, sbb: 10 Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source
print $fh “baris teks yang ditulis ...\n”;
Seperti halnya dalam hal membaca, maka filehandle harus ditutup dengan close. Berikut ini contoh membaca dari file dan menulis ke file baru, atau mengcopy file: # mengcopy /etc/profile $fnam = '/etc/profile'; $fbaru = '/home/didi/copyprofile'; open($fh1, $fnam) or die “gagal baca $fnam, $!”; open($fh2, “>$fbaru”) or die “gagal menulis $fbaru, $!”; while($line = ) { print $fh2 $line; } close($fh1); close($fh2);
Ekspresi “or die ... “ digunakan sebagai error handler jika file tidak dapat dibuka. Variabel khusus $! digunakan untuk menampilkan pesan error dari sistem.
3.8.Subrutin Pada program aplikasi umumnya, kumpulan statemen yang mengimplementasikan sebuah operasi tertentu didefinisikan dalam sebuah subrutin. Beberapa subrutin biasanya didefinisikan dalam sebuah file tersendiri, sehingga dapat digunakan oleh berbagai program pemanggil. Berikut ini bentuk pendefinisian subrutin : sub { }
Subrutin dapat menerima parameter, tapi PERL tidak mengenal named formal parameter, parameter yang dikirimkan ke subrutin dapat diakses dalam subrutin melalui array khusus @_ , berikut ini contoh subrutin sederhana yang menghitung nilai faktorial : sub faktorial { my ($num) = @_; my $res = 1; foreach my $a (1..$num) { $res *= $a;
# atau $res = $res * a
} return $res;
Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source 11
} # return TRUE value 1;
Perhatikan bahwa jika subrutin didefinisikan di file tersendiri, maka file tersebut harus mengembalikan nilai TRUE, dalam program diatas digunakan bilangan 1. Jika subrutin tersebut disimpan di file /home/didi/mylib/math.pl, maka dapat dipanggil dari program lainnya sebagai berikut: req uire “/home/didi/mylib/math.pl” print "Faktorial 6 = ", faktorial(6),"\n";
Penjelasan lebih lengkap tentang subrutin dapat dibaca dari man perlsub
4.Penutup PERL adalah bahasa pemrograman yang berdaya guna tinggi, yang terus digunakan dan dikembangkan oleh komunitas open source. Seperti halnya bahasa open source lain, PERL memiliki sistem dokumentasi yang sangat lengkap, pembaca sangat dianjurkan menelaah manual PERL yang terdistribusi bersama source code PERL.
12 Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source
II. Mengenal PHP PHP adalah bahasa pemrograman script yang dinamis. Program PHP dapat dijalankan sebagai aplikasi web yang memerlukan web server dan dapat juga dijalankan menggunakan interpreter PHP, sebagai aplikasi konsol atau desktop-based. PHP adalah bahasa pemrograman yang kaya dengan library untuk pengembangan aplikasi mulai dari dukungan ke berbagai database management system, dukungan library Graphical User Interface, sampai library untuk sistem administrasi.
1.Menginstal PHP PHP diinstal sebagai module apache dan sekaligus menginstal PHP CLI (command line interpreter), nama-nama direktori (misal: /dir/instalasi/xxx/anda) dapat anda ubah sesuai dengan keinginan anda. Karenanya harus menginstal apache terlebih dahulu jika apache belum terinstal. Berikut ini cara instalasi PHP 5 dari source code.
1.1.Instalasi Apache 1. Instal Apache, pertama download dari httpd.apache.org, dalam hal ini kami menggunakan apache 1.3.37 2. Uncompress disembarang direktori bash% tar zxvf apache_1.3.3. 7tar.gz
3. Konfigurasi dan kompilasi bash%
cd
apache_1.3.37
bash% ./configure –prefix=/di r/ in stal as i/ ap ach e/ and a -enable-shared=max bash%
make
4. Instal bash%
make install
5. Instalasi apache selesai
1.2.Instalasi module PHP dan PHP CLI: 1. Download dari situs www.php.net 2. Uncompress di sembarang direktori bash% tar zxvf php-5.2.0.tar.gz
3. Konfigurasi dan kompilasi Panduan Pendayagunaan Open Source Software: Bahasa Pemrograman Open Source 13
bash%
cd
php-5.2.0
bash% ./configure –prefix=/d ir /i ns tala si /p hp/ an da –withapxs=/di r/ in stal as i/ ap ach e/ and a/ bin /a pxs –with-configfile-path=/etc bash%
make
4. Instal bash%
make install
5. Instalasi module php dan php-cli selesai
2.Menjalankan Program PHP Program PHP dapat dijalankan dengan 2 modus:
2.1.Aplikasi Konsol Buat program salam.php berikut ini disebarang direktori: