bahasa pemrograman open source (uli)
TRANSCRIPT
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: