Bahasa Pemrograman Open Source (Uli)

download Bahasa Pemrograman Open Source (Uli)

of 119

Transcript of Bahasa Pemrograman Open Source (Uli)

I.MengenalPERL1.TentangPERLPERLadalahbahasapemrogramanyangmenggunakantipedatadinamis,programPERL dapatlangsungdieksekusitanpaharusmelaluiproseskompilasitersendirikeformatbinary yangdapatdieksekusi. PERLbanyakdigunakanpadaaplikasimanajemensistemdanjaringan,pemrogramanweb, manipulasiteks,akseskedatabase. BerikutinibeberapaaplikasiyangmenggunakanPERLyangcukupdikenal:mrtg,SQL Ledger(aplikasiakunting),Webmin(aplikasiadmin),spamassasin(antispam).

2.MenjalankanProgramPERL2.1.EksekusidarifileBerikutinisebuahprogramPERLsalam.pl,yangmencetaksalamuniversaldikonsol,jika adaargumenpadacommandlinemakaditampilkansetelahsalam.#!/usr/local/bin/perl if($#ARGV>1){ print"assalamu'alaikum$ARGV[0]\n"; }else{ print"assalamu'alaikum\n"; }

EksekusidishellmenggunakanPERLinterpreter,sbb:bash%perlsalam.plHafizh assalamu'alaikumHafizh

Agardapatdieksekusitanpamengetikkaninterpreterperldicommandline,filesalam.pl perludisetpermissionnya.Misalkandenganperintah:bash%chmod7 55salam.pl bash%./salam.plHafizh assalamu'alaikumHafizh

PastikanprogramPERLdiawalidenganpathlengkapkeinterpreterperlyangterinstaldi sistemoperasianda,untuksistemberbasisLinuxdanUnix,pathtersebutharusdiawali dengankarakter'#!',seperticontoh:#!/usr/local/bin/perl

PanduanPendayagunaanOpenSourceSoftware:BahasaPemrogramanOpenSource1

2.2.EksekusidaricommandlinePERLdapatmengeksekusiperintahsecaralangsungdaricommandline,tanpaperlumembuat fileprogram,menggunakanoptionsediinterpreterperl,contoh:bash%perle'print Assalamu''alaikum\n'

Perhatikanduakutiptunggalditengahkata,karenakutiptunggaldigunakanuntukmembatasi perintah. Jikamenggunakankutipgandauntukmembatasiperintah:bash%perleprint\ Assalamu'alaikum\n\

3.DasardasarPERL3.1.ProgramPERLProgramPERLatauskripPERL,biasadisimpandalamfileteksberakhiran.pl.Walaupun demikianperlinterpretertetapakanmengeksekusiprogramPERLyangtidakmenggunakan ekstensi.pl. SebuahprogramPERLyangexecutabledapatmenggunakanhanyastatement,tanpaperlu mendefinisikanfungsikhusussepertimain()dalamprogrambahasaC. ProgramPERLdapatterdiriatasstatemen,deklarasisubroutine,konstruksikondisional, konstruksiloop,konstruksiblock.

3.1.1.StatemenStatemendiakhiridengantandatitikcoma.Statemendapatberbentukdeklarasivariabel, assignmentvariabeldanpemanggilanfungsi.Whitespace(spasi,barisbaru)diabaikan.print"opensourcesoftware?!", "it'samiracle", ",doyoubelievemiracle?\n";

3.1.2.KomentarSebagaimanabahasapemrogramanlainnya,programmerPERLdapatmenuliskankomentar dalamkodeprogram,denganmenempatkankarakter'#'sebelumbariskomentar,contoh:#menghitunghitungluas $area=$pi*$radius*$radius;

Ataudapatjugasetelahbagiankode:$area=$pi*$radius*$radius;#menghitunghitungluas

2PanduanPendayagunaanOpenSourceSoftware:BahasaPemrogramanOpenSource

Komentardiperlakukansebagaimanawhitespace.

3.2.VariabeldanTipedataVariabeldigunakanuntukmenyimpandata.PERLmemiliki3tipevariabelutama:skalar, arraydanhash.Namanamavariabel,danidentifierlainnyadalamPERLadalahcase sensitive.

3.2.1.SkalarVariabelskalarmenyimpandatabernilaitunggal,tipedatadapatberupastringataubilangan. Tipedatasecaraotomatisditentukanpadasaatassignmentvariabel.tidakperlu mendeklarasikantipedatasebelumassignment. Namavariabelskalardimulaidengankarakter'$'.Contoh:#string $file='/etc/profile'; $kota=depok; #integer $_num=255; $byte_=0x00ff; #float $konstanta_pi=22/7;

3.2.1.1.Stringpetiktunggal(singlequote)danpetikganda(doublequote)Stringdapatdinyatakandalampetiktunggal(')danpetikganda(). Stringdenganpetiktunggalmenyatakandataadalahsepertiyangtertulis,tidakada interpretasiterhadapkarakterkarakterpadastring. StringdenganpetikgandamenyatakanbahwainterpreterPERLharusmelakukaninterpretasi terhadapkarakterkarakterpadastringtersebut. Contoh:#dicetakdalamsatubaris,karakter\ntidakdiinter pretasikan $str1='\niman\nilmu\namal\n'; print$str1; #dicetakdalam3barisdiikutibarisbaru $str2=\niman\nilmu\namal\n;

PanduanPendayagunaanOpenSourceSoftware:BahasaPemrogramanOpenSource3

print$str2; #mencetak'honourtheadzan'diikutibarisbaru $str3='honour'; $str4=$str3theadzan\n;

VariabelKhusus PERLjugamengenalbeberapavariabelskalarkhusus,seperti$ARG,$_,$!,$1,$2,$3,dan sebagainyayangdijelaskandimanperlvar

3.2.2.ArrayArraymenyimpansekumpulannilaisecaraberurutan(sekuensial),yangbiasadisebutlist, nilainilaiyangdisimpandapatberbedabedatipedatanya.Untukmembacanilaianggota arraydigunakannomorindeksintegerdimulaidarinol. Variabelarraydideklarasikanmenggunakankarakter@didepannamavariabel,dataanggota arrayditempatkandalamkurung(),nilainilaianggotadipisahkanolehkoma. Nilaianggotaarraydibacamenggunakanoperator[]dannomorindeks.Contoh:@prima1=(2,3,5,713, ); ,, 1 11 7 #mencetak'5' print$prima1[2];

Untukmendapatkanjumlahanggotaarraydigunakanvariabel$#diikutinamavariabel,tapi nilainyaadalahjumlahanggotaarraydikurangisatu.Nilaiinijugadapatdigunakanuntuk membacaelementerakhir.Contoh:@hari2=(1 ,"senin",2,"selasa",3,"rabu",4, kamis,5,jumat); #mencetak'jumlahanggota:9' printjumlahanggota:$#hari2\n; #mencetak'elementerakhir:jumat' printelementerakhir:$hari2[$#hari2]\n;

Jikasebuahprogrammencobamenulisanggotaarraypadaposisiindeksyanglebihbesardari ukuranarray,makaPERLsecaraotomatismenambahukuranarraysampaiposisibaru tersebut.Contoh:@bil3=(1 0,20,30,40); #mencetak'ukuranarray:3'

4PanduanPendayagunaanOpenSourceSoftware:BahasaPemrogramanOpenSource

printukuranarray:$#bil3\n; $bil3[10]=1234; 1 #mencetak'ukuranarray:10' 1 printukuranarray:$#bil3\n;

Membacadariarraydenganindeksyanglebihbesartidakakanmenyebabkanerrordantidak akanmenambahukuranarray.Contoh:@bil4=(1 0,20,30,40); $t1=$bil4[89]; #mencetak'ukuranarray:3' print"ukuranarray:$#bil4\n";

Jikavariabelarraydievaluasidalamkonteksnilaiskalar(scalarcontext)makavariabel tersebutdievaluasisebagaijumlahanggotaarray,contoh:#dievaluasidalamscalarcontext @arr=(1 0,20,6, 1,22); 1 1 9, if(@arr==6){ print"jumlahanggotaarrayada6\n"; }

Arraydapatdisalinsebagiananggotanyakearraylaindenganmudah(arrayslice), menggunakanoperator[],Contoh:@arr1=('semar','gareng','petruk','bagong','arjuna', 'srikandi'); @arr2=@arr1[2,4]#'petruk'dan'arjuna' @arr3=@arr1[1 ..3]#'gareng','petruk','bagong' @arr4=@arr1[1 ..$#arr1]#semuakecuali'semar'

3.2.3.HashHashmenyimpansekumpulannilaiyangmenggunakanpasangannamakuncidannilai. Namakuncidalamsebuahvariabelhashharuslahunik,tidakbolehada2pasanganyang menggunakannamakunciyangsama. Variabelhashdidefinisikanmenggunakankarakter%diikutinamavariabel. Nilainilaianggotahashterdiriataspasangannamakuncidannilaiyangdipisahkanoleh koma.Namakuncidanpasangandituliskanberurutan,dapatdipisahkantandakomaatau dapatjugadipisahkanolehkarakter'=>'. Untukmembacanilaianggotahashdigunakanoperatorkurawal{}dannamakunci.Contoh: PanduanPendayagunaanOpenSourceSoftware:BahasaPemrogramanOpenSource5

%rasa_buah1=('asam','asemdjawa','manis','manggis','pahit', 'pare'); #mencetak'yangpahit=pare' printyangpahit=$rasa_buah1{'pahit'}\n; #dapatjugaditulissepertiini %rasa_buah2=('asam'=>'asemdjawa', 'manis'=>'manggis', 'pahit'=>'pare'); $rasa='manis'; #mencetak'yangmanis=manggis' printyang$rasa=$rasa_buah2{$rasa}\n;

3.3.OperatorPERLmemilikibanyakoperatordanfungsiyangbuiltin,berikutinibeberapaoperatoryang umumdigunakan,selengkapnyadapatdilihatdenganmanperlop. ManipulasiString . + * / '== '!= < > = eq Concat(penggabungan) Aritmetika Penjumlahan Pengurangan Perkalian Pembagian PerbandinganBilangan kesamaan Ketidaksamaan Kurangdari Lebihdari Kurangdariatausamadengan Lebihdariatausamadengan PerbandinganString kesamaan

6PanduanPendayagunaanOpenSourceSoftware:BahasaPemrogramanOpenSource

ne lt gt le ge

Ketidaksamaan Kurangdari Lebihdari Kurangdariatausamadengan Lebihdariatausamadengan

PerhatikanbahwaPERLmenyediakanoperasipembandingstringdanpembandingbilangan. Stringdibandingkansecaraalpabetis.Secaraalpabetis,string'100'lebihkecildari'8'.Contoh:$a=1 00;$b=8 if($a>$b){ printBilangan$alebihbesardari$b\n; }else{ printBilangan$atidaklebihbesardari$b\n; } if($agt$b){ printString$asecaraalpabetislebihbesardari$b; }else{ printString$asecaraalpabetistidaklebihbesardari$b; }

Operasiperbandinganmenghasilkannilaibenar(true)atausalah(false). TRUEdanFALSEdalamPERL PERLtidakmengenaltipedatakhususuntukmewakiliTRUEdanFALSE. DalamPERLnilaiberikutiniadalahFALSE: bilangan0,string'0',listkosong(),danundef, selainnilainilaitersebutadalahTRUE.

3.4.FungsiPERLmemilikifungsibuiltinyangkaya,salahsatuyangsudahdiperkenalkanadalah print. Fungsidapatmenerimanolataulebihargumen.Argumensebuahfungsidapatberupaskalar, list,ataukeduanya. Pemanggilanfungsidapatmenggunakantandakurung()diantaraargumen,dapatjugatidak. Fungsiprintadalahfungsiyangmenerimaargumenlist.Contoh:printsaya,bela jar,PERL ; #samadengan

PanduanPendayagunaanOpenSourceSoftware:BahasaPemrogramanOpenSource7

print(saya,bela jar,PERL );

Fungsiprintjugadapatmenerimaargumenskalarberupafilehandledanlist.Tentang filehandleakandijelaskandibagianFileInputdanOutput. Fungsidapatmengembalikannilaiskalarataulist. Berikutinifungsilocaltime,yangmengembalikanlistberisidatawaktu,dipanggiltanpa 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$mdaytahun ", 1 900+$year ,"\n";

PerludiingatbahwaPERLpertamakalidikembangkandilingkunganUnix,jadiakanbanyak ditemukanfungsifungsiyangfamiliardengansistemoperasiini,misalnyayangberhubungan denganfilesystem,socket,network,interprocesscommunication,danprocesscontrol. Daftarfungsibuiltinsecaralengkapdapatdibacadenganman perlfunc. Penjelasanuntukfungsitertentudapatdicaridenganperldoc -f . Contoh:bash% perldoc -f localtime

3.5.KonstruksiKondisionalBerikutinikonstruksikondisionalyangdisediakanPERL

3.5.1.ifMengeksekusistatemenjikakondisibernilaibenar.Untukpercabanganmenggunakanelsif danelse.Bentuknya:if(kondisi1){ #statemenstatemen } elsif(kondisi2){ #statemenstatemen }elsif(kondisi3){ #statemenstatemen }else{

8PanduanPendayagunaanOpenSourceSoftware:BahasaPemrogramanOpenSource

#statemenstatemen }

3.5.2.unlessAdalahkebalikandariif.

3.6.KonstruksiLoopPERLmengenalbeberapajenisloop:

3.6.1.forDigunakanuntukmelakukanpengulanganberdasarkan3ekspresiyangmasingmasinguntuk :memulailoop,menentukanapakahmelanjutkaneksekusiloop,dieksekusipadaakhirloop supayakondisiuntukmengakhiriloopdapatdicapai.Bentuknya:f or(;;){ #statemenstatemen }

Ekspresiyangumumdigunakanadalahsebagaiberikut:f or($i=0;$i/path/ke/file);

selanjutnyadapatditulisdenganperintahprint,menggunakanfilehandle,sbb: 10PanduanPendayagunaanOpenSourceSoftware:BahasaPemrogramanOpenSource

print$fhbaristeksyangditulis...\n;

Sepertihalnyadalamhalmembaca,makafilehandleharusditutupdenganclose. Berikutinicontohmembacadarifiledanmenuliskefilebaru,ataumengcopyfile:#mengcopy/etc/profile $fnam='/etc/profile'; $fbaru='/home/didi/copyprofile'; open($fh1 ,$fnam)ordiegagalbaca$fnam,$!; open($fh2,>$fbaru)ordiegagalmenulis$fbaru,$!; while($line=){ print$fh2$line; } close($fh1); close($fh2);

Ekspresior die ... digunakansebagaierrorhandlerjikafiletidakdapatdibuka. Variabelkhusus$!digunakanuntukmenampilkanpesanerrordarisistem.

3.8.SubrutinPadaprogramaplikasiumumnya,kumpulanstatemenyangmengimplementasikansebuah operasitertentudidefinisikandalamsebuahsubrutin. Beberapasubrutinbiasanyadidefinisikandalamsebuahfiletersendiri,sehinggadapat digunakanolehberbagaiprogrampemanggil. Berikutinibentukpendefinisiansubrutin:sub{ }

Subrutindapatmenerimaparameter,tapiPERLtidakmengenalnamedformalparameter, parameteryangdikirimkankesubrutindapatdiaksesdalamsubrutinmelaluiarraykhusus@_ ,berikutinicontohsubrutinsederhanayangmenghitungnilaifaktorial:subfaktorial{ my($num)=@_; my$res=1; f oreachmy$a(1 ..$num){ $res*=$a;#atau$res=$res*a } return$res;

PanduanPendayagunaanOpenSourceSoftware:BahasaPemrogramanOpenSource11

} #returnTRUEvalue 1;

Perhatikanbahwajikasubrutindidefinisikandifiletersendiri,makafiletersebutharus mengembalikannilaiTRUE,dalamprogramdiatasdigunakanbilangan1. Jikasubrutintersebutdisimpandifile/home/didi/mylib/math.pl,makadapat dipanggildariprogramlainnyasebagaiberikut:req uire/home/didi/my lib/math.pl print"Faktorial6=",faktorial(6),"\n";

Penjelasanlebihlengkaptentangsubrutindapatdibacadarimanperlsub

4.PenutupPERLadalahbahasapemrogramanyangberdayagunatinggi,yangterusdigunakandan dikembangkanolehkomunitasopensource. Sepertihalnyabahasaopensourcelain,PERLmemilikisistemdokumentasiyangsangat lengkap,pembacasangatdianjurkanmenelaahmanualPERLyangterdistribusibersama sourcecodePERL.

12PanduanPendayagunaanOpenSourceSoftware:BahasaPemrogramanOpenSource

II.MengenalPHPPHPadalahbahasapemrogramanscriptyangdinamis.ProgramPHPdapatdijalankansebagai aplikasiwebyangmemerlukanwebserverdandapatjugadijalankanmenggunakaninterpreter PHP,sebagaiaplikasikonsolataudesktopbased. PHPadalahbahasapemrogramanyangkayadenganlibraryuntukpengembanganaplikasi mulaidaridukungankeberbagaidatabasemanagementsystem,dukunganlibraryGraphical UserInterface,sampailibraryuntuksistemadministrasi.

1.MenginstalPHPPHPdiinstalsebagaimoduleapachedansekaligusmenginstalPHPCLI(commandline interpreter),namanamadirektori(misal:/dir/instalasi/xxx/anda)dapatandaubah sesuaidengankeinginananda. Karenanyaharusmenginstalapacheterlebihdahulujikaapachebelumterinstal. BerikutinicarainstalasiPHP5darisourcecode.

1.1.InstalasiApache1. InstalApache,pertamadownloaddarihttpd.apache.org,dalamhalinikami menggunakanapache1.3.37 2. Uncompressdisembarangdirektoribash%tarzxvfapache_1 .3.3 tar gz . . 7

3. Konfigurasidankompilasibash%cdapache_1 .3.3 7 bash%./configureprefix=/di r/ in stal as i/ ap ach e/ and a enableshared=max bash%make

4. Instalbash%makeinstall

5. Instalasiapacheselesai

1.2.InstalasimodulePHPdanPHPCLI:1. Downloaddarisituswww.php.net 2. Uncompressdisembarangdirektoribash%tarzxvfphp5.2.0.tar gz .

3. Konfigurasidankompilasi PanduanPendayagunaanOpenSourceSoftware:BahasaPemrogramanOpenSource13

bash%cdphp5.2.0 bash%./configureprefix=/d ir /i ns tala si /p hp/ an dawith apxs=/di r/ in stal as i/ ap ach e/ and a/ bin /a pxs withconfig filepath=/etc bash%make

4. Instalbash%makeinstall

5. Instalasimodulephpdanphpcliselesai

2.MenjalankanProgramPHPProgramPHPdapatdijalankandengan2modus:

2.1.AplikasiKonsolBuatprogramsalam.phpberikutinidisebarangdirektori: