I. Mengenal PERL - gapra.files. · PDF fileI. Mengenal PERL 1.Tentang PERL PERL adalah bahasa...

Click here to load reader

  • date post

    05-Feb-2018
  • Category

    Documents

  • view

    225
  • download

    6

Embed Size (px)

Transcript of I. Mengenal PERL - gapra.files. · PDF fileI. Mengenal PERL 1.Tentang PERL PERL adalah bahasa...

  • I.MengenalPERL1.TentangPERLPERLadalahbahasapemrogramanyangmenggunakantipedatadinamis,programPERLdapatlangsungdieksekusitanpaharusmelaluiproseskompilasitersendirikeformatbinaryyangdapatdieksekusi.

    PERLbanyakdigunakanpadaaplikasimanajemensistemdanjaringan,pemrogramanweb,manipulasiteks,akseskedatabase.

    BerikutinibeberapaaplikasiyangmenggunakanPERLyangcukupdikenal:mrtg,SQLLedger(aplikasiakunting),Webmin(aplikasiadmin),spamassasin(antispam).

    2.MenjalankanProgramPERL

    2.1.EksekusidarifileBerikutinisebuahprogramPERLsalam.pl,yangmencetaksalamuniversaldikonsol,jikaadaargumenpadacommandlinemakaditampilkansetelahsalam.

    #!/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.plperludisetpermissionnya.Misalkandenganperintah:

    bash%chmod755salam.pl

    bash%./salam.plHafizh

    assalamu'alaikumHafizh

    PastikanprogramPERLdiawalidenganpathlengkapkeinterpreterperlyangterinstaldisistemoperasianda,untuksistemberbasisLinuxdanUnix,pathtersebutharusdiawalidengankarakter'#!',seperticontoh:

    #!/usr/local/bin/perl

    PanduanPendayagunaanOpenSourceSoftware:BahasaPemrogramanOpenSource1

  • 2.2.EksekusidaricommandlinePERLdapatmengeksekusiperintahsecaralangsungdaricommandline,tanpaperlumembuatfileprogram,menggunakanoptionsediinterpreterperl,contoh:

    bash%perle'printAssalamu''alaikum\n'

    Perhatikanduakutiptunggalditengahkata,karenakutiptunggaldigunakanuntukmembatasiperintah.

    Jikamenggunakankutipgandauntukmembatasiperintah:

    bash%perleprint\Assalamu'alaikum\n\

    3.DasardasarPERL

    3.1.ProgramPERLProgramPERLatauskripPERL,biasadisimpandalamfileteksberakhiran.pl.WalaupundemikianperlinterpretertetapakanmengeksekusiprogramPERLyangtidakmenggunakanekstensi.pl.

    SebuahprogramPERLyangexecutabledapatmenggunakanhanyastatement,tanpaperlumendefinisikanfungsikhusussepertimain()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,programmerPERLdapatmenuliskankomentardalamkodeprogram,denganmenempatkankarakter'#'sebelumbariskomentar,contoh:

    #menghitunghitungluas

    $area=$pi*$radius*$radius;

    Ataudapatjugasetelahbagiankode:

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

    2PanduanPendayagunaanOpenSourceSoftware:BahasaPemrogramanOpenSource

  • Komentardiperlakukansebagaimanawhitespace.

    3.2.VariabeldanTipedataVariabeldigunakanuntukmenyimpandata.PERLmemiliki3tipevariabelutama:skalar,arraydanhash.Namanamavariabel,danidentifierlainnyadalamPERLadalahcasesensitive.

    3.2.1.SkalarVariabelskalarmenyimpandatabernilaitunggal,tipedatadapatberupastringataubilangan.Tipedatasecaraotomatisditentukanpadasaatassignmentvariabel.tidakperlumendeklarasikantipedatasebelumassignment.

    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,tidakadainterpretasiterhadapkarakterkarakterpadastring.

    StringdenganpetikgandamenyatakanbahwainterpreterPERLharusmelakukaninterpretasiterhadapkarakterkarakterpadastringtersebut.

    Contoh:

    #dicetakdalamsatubaris,karakter\ntidakdiinterpretasikan

    $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,dansebagainyayangdijelaskandimanperlvar

    3.2.2.ArrayArraymenyimpansekumpulannilaisecaraberurutan(sekuensial),yangbiasadisebutlist,nilainilaiyangdisimpandapatberbedabedatipedatanya.Untukmembacanilaianggotaarraydigunakannomorindeksintegerdimulaidarinol.

    Variabelarraydideklarasikanmenggunakankarakter@didepannamavariabel,dataanggotaarrayditempatkandalamkurung(),nilainilaianggotadipisahkanolehkoma.

    Nilaianggotaarraydibacamenggunakanoperator[]dannomorindeks.Contoh:

    @prima1=(2,3,5,7,11,13,17);

    #mencetak'5'

    print$prima1[2];

    Untukmendapatkanjumlahanggotaarraydigunakanvariabel$#diikutinamavariabel,tapinilainyaadalahjumlahanggotaarraydikurangisatu.Nilaiinijugadapatdigunakanuntukmembacaelementerakhir.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;

    Jikasebuahprogrammencobamenulisanggotaarraypadaposisiindeksyanglebihbesardariukuranarray,makaPERLsecaraotomatismenambahukuranarraysampaiposisibarutersebut.Contoh:

    @bil3=(10,20,30,40);

    #mencetak'ukuranarray:3'

    4PanduanPendayagunaanOpenSourceSoftware:BahasaPemrogramanOpenSource

  • printukuranarray:$#bil3\n;

    $bil3[110]=1234;

    #mencetak'ukuranarray:110'

    printukuranarray:$#bil3\n;

    Membacadariarraydenganindeksyanglebihbesartidakakanmenyebabkanerrordantidakakanmenambahukuranarray.Contoh:

    @bil4=(10,20,30,40);

    $t1=$bil4[89];

    #mencetak'ukuranarray:3'

    print"ukuranarray:$#bil4\n";

    Jikavariabelarraydievaluasidalamkonteksnilaiskalar(scalarcontext)makavariabeltersebutdievaluasisebagaijumlahanggotaarray,contoh:

    #dievaluasidalamscalarcontext

    @arr=(10,20,6,19,11,22);

    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,tidakbolehada2pasanganyangmenggunakannamakunciyangsama.

    Variabelhashdidefinisikanmenggunakankarakter%diikutinamavariabel.

    Nilainilaianggotahashterdiriataspasangannamakuncidannilaiyangdipisahkanolehkoma.Namakuncidanpasangandituliskanberurutan,dapatdipisahkantandakomaataudapatjugadipisahkanolehkarakter'=>'.

    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,berikutinibeberapaoperatoryangumumdigunakan,selengkapnyadapatdilihatdenganmanperlop.

    ManipulasiString

    . Concat(penggabungan)

    Aritmetika

    + Penjumlahan

    Pengurangan

    * Perkalian

    / Pembagian

    PerbandinganBilangan

    '== kesamaan

    '!= Ketidaksamaan

    < Kurangdari

    > Lebihdari

    = Lebihdariatausamadengan

    PerbandinganString

    eq kesamaan

    6PanduanPendayagunaanOpenSourceSoftware:BahasaPemrogramanOpenSource

  • ne Ketidaksamaan

    lt Kurangdari

    gt Lebihdari

    le Kurangdariatausamadengan

    ge LebihdariatausamadenganPerhatikanbahwaPERLmenyediakanoperasipembandingstringdanpembandingbilangan.Stringdibandingkansecaraalpabetis.Secaraalpabetis,string'100'lebihkecildari'8'.Contoh:

    $a=100;$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,salahsatuyangsudahdiperkenalkanadalahprint.

    Fungsidapatmenerimanolataulebihargumen.Argumensebuahfungsidapatberupaskalar,list,ataukeduanya.

    Pemanggilanfungsidapatmenggunakantandakurung()diantaraargumen,dapatjugatidak.Fungsiprintadalahfungsiyangmenerimaargumenlist.Contoh:

    printsaya,belajar,PERL;

    #samadengan

    PanduanPendayagunaanOpenSourceSoftware:BahasaPemrogramanOpenSource7

  • print(saya,belajar,PERL);

    Fungsiprintjugadapatmenerimaargumenskalarberupafilehandledanlist.TentangfilehandleakandijelaskandibagianFileInputdanOutput.

    Fungsidapatmengembalikannilaiskalarataulist.

    Berikutinifungsilocaltime,yangmengembalikanlistberisidatawaktu,dipanggiltanpaargumen:

    @bulan=('jan','peb','mar','apr','mei','jun','jul','ags','sep','okt','nop','des');

    @ha