Anda di halaman 1dari 167

PHPmerupakanbahasawajibprogrammerweb.

Menurutwikipedia,PHPdigunakanpadalebihdari
75%webserverdiseluruhdunia.DidalamTutorialBelajarPHPDasarUntukPemulainisayaakan
mencobamemberikantutoriallengkaptentangPHP.

TutorialBelajarPHPinicocokuntukpemulayanginginmenguasaiPHP,maupunyangsudahmahir
sebagaipenyegarandanbahanreferensi.UntukbelajarPHP,andadianggaptelahmengetahuisedikit
tentangHTML.KarenapadadasarnyaPHPdigunakanuntukmemanipulasiHTMLagarbisatampil
dinamis.

PengetahuantentangMySQL,CSSdanJavascriptjugaakanmembantudalammemahamiPHP,
walaupuninibukanhalyangmutlak.JikabelummenguasaiHTMLdanCSS,silahkan
mempelajarinyapadaTutorialBelajarHTML,danTutorialBelajarCSS.

PadahalamaninisayaakanmengindexseluruhartikelTutorialBelajarPHPdiduniailkom.

om
TeoriDasardanSejarahPHP:

.c
TutorialPHPDasarUntukPemula
om
TutorialPHPPart1:PengertiandanFungsiPHPdalamPemogramanWeb
TutorialPHPPart2:SejarahPHPdanPerkembanganVersiPHP
ilk

CaraMenginstalXAMPPdanMenjalankanPHP:
ia
un

TutorialPHPPart3:CaraMenginstallPHPdenganXAMPP1.8.3
TutorialPHPPart4:CaraMenjalankanWebServerApachedenganXAMPP
.d

TutorialPHPPart5:CaraMenjalankanFilePHPdenganXAMPP
w

TutorialPHPPart6:CaraKerjaWebServerMenjalankanKodePHP
w

TutorialPHPPart7:CaraMemasukkankodePHPkedalamHTML
w

TutorialPHPPart8:CaraMengubahFileKonfigurasiPHP(php.ini)

AturanPenulisanPHP:
TutorialPHPPart9:AturanDasarPenulisanKodePHP
TutorialPHPPart10:CaraPenulisanKomentardalamKodePHP
TutorialPHPPart11:PengertianVariabeldanCaraPenulisanVariabelPHP
TutorialPHPPart12:PengertianKonstantadanCaraPenulisanKonstantaPHP

TipedatadalamPHP:
TutorialPHPPart13:MengenalTipeDataIntegerdanCaraPenulisanIntegerdalamPHP
TutorialPHPPart14:MengenalTipeDataFloatdanCaraPenulisanFloatdalamPHP

1
TutorialPHPPart15:MengenalTipeDataStringdanCaraPenulisanStringdalamPHP
TutorialPHPPart16:MengenalTipeDataBooleandanCaraPenulisanBooleandalamPHP
TutorialPHPPart17:MengenalTipeDataArraydanCaraPenulisanArraydalamPHP

OperatordalamPHP:
TutorialPHPPart18:PengertianOperand,OperatordanUrutanOperatordalamPHP
TutorialPHPPart19:PengertiandanCaraPenulisanFungsivar_dump()dalamPHP
TutorialPHPPart20:PengertiandanJenisjenisOperatorAritmatikadalamPHP
TutorialPHPPart21:PengertiandanJenisjenisOperatorStringdalamPHP
TutorialPHPPart22:PengertiandanJenisjenisOperatorLogikadalamPHP
TutorialPHPPart23:PengertiandanJenisjenisOperatorPerbandingandalamPHP
TutorialPHPPart24:PengertiandanJenisjenisOperatorIncrementdanDecrementPHP

om
TutorialPHPPart25:PengertiandanJenisjenisOperatorAssignmentdalamPHP
TutorialPHPPart26:PengertiandanJenisjenisOperatorBitwisedalamPHP

.c
TutorialPHPPart27:PengertiandanJenisOperatorGabunganAssigmentPHP
om
TutorialPHPPart28:CaraMengubahTipeDataPHP(TypeJugglingdanTypeCasting)

StrukturPemogramanPHP:
ilk
ia

TutorialPHPPart29:PengertiandanCaraPenulisanStrukturLogikaIFdalamPHP
un

TutorialPHPPart30:PengertiandanCaraPenulisanStrukturLogikaELSEdalamPHP
TutorialPHPPart31:PengertiandanCaraPenulisanStrukturLogikaELSEIFdalamPHP
.d

TutorialPHPPart32:PengertiandanCaraPenulisanStrukturLogikaSwitchdalamPHP
w

TutorialPHPPart33:PengertiandanCaraPenulisanPerulanganFordalamPHP
w

TutorialPHPPart34:PengertiandanCaraPenulisanPerulanganWhiledalamPHP
w

TutorialPHPPart35:PengertiandanCaraPenulisanPerulanganDoWhiledalamPHP
TutorialPHPPart36:FungsidanCaraPenulisanPerintahBreakDalamPerulanganPHP
TutorialPHPPart37:FungsidanCaraPenulisanContinueDalamPerulanganPHP
TutorialPHPPart38:PengertiandanFungsiPerulanganForeachdalamPHP

CaraPembuatanFungsiPHP:
TutorialPHPPart39:PengertianFungsi(function)PHPdanCaraPenggunaanFungsiPHP
TutorialPHPPart40:CaraPenulisandanPembuatanFungsiPHP
TutorialPHPPart41:PengertianVariabelScope,GlobalVariabel,danStaticVariabelPHP
TutorialPHPPart42:CaraPengecekanTipeDataArgumenuntukFungsiPHP
TutorialPHPPart43:CaraPembuatanDefaultParameterpadaFungsiPHP

2
TutorialPHPPart44:PengertianVariableParameterdalamFungsiPHP

SetelahmenguasaidasardasarpemogramanPHP,andabisamelanjutkanmempelajariTutorialPHP
lanjutan,seperticaramenyimpandatadariPHPkedalamMySQL,carapemrosesanformHTML
denganPHP,ataulanjutmempelajariPemogramanObjek/ObjectOrientedProgramming(OOP)
PHP.

om
.c
om
ilk
ia
un
.d
w
w
w

3
PengertianPHP
PHPadalahbahasapemrogramanscriptserversideyangdidesainuntukpengembanganweb,tetapi
jugabisadigunakansebagaibahasapemrogramanumum(wikipedia).PHPpertamakalidi
kembangkanpadatahun1995olehRasmusLerdorf,namunsekarangdikelolaolehThePHP
Group.SitusresmiPHPberalamatdihttp://www.php.net.

PadaawalnyaPHPadalahsingkatandariPersonalHomePage,namunkarenadalam
perkembangannyaPHPtidakhanyadigunakanuntukmembuathalamanwebpribadi,PHPsaatini
merupakansingkatandariPHP:HypertextPreprocessor,sebuahkepanjanganrekursif,yakni
permainankatadimanakepanjangannyaberisijugasingkatanitusendiri.

PHPdirilisdalamlisensiPHPLicense,sedikitberbedadenganlisensiGNUGeneralPublicLicense
(GPL)yangbiasadigunakanuntukproyekOpenSource.NamunpenggunaanPHPtetaptidak
dikenakanbiaya(gratis).

om
KemudahandankepopuleranPHPsudahmenjadistandarbagiprogrammerwebdiseluruhdunia.
Menurutwikipediapadafebruari2014,sekitar82%dariwebserverdiduniamenggunakanPHP,dan

.c
menjadidasardariprogramCMS(ContentManagementSystem)populersepertiJoomla,
om
Drupal,danWordPress.
ilk

FungsiPHPDalamPemogramanWeb
ia
un

Dalammembuathalamanweb,PHPsebenarnyabukanlahbahasapemogramanyangwajib
digunakan.SebuahwebsitesederhanadapatdibuattanpamenggunakanPHPsamasekali.Andabisa
.d

membuatsebuahwebsite,murnidenganmenghubungkanbeberapahalamanHTMLsaja.
w

Namunjikaandainginmembuatwebyangdinamis,bisamenyimpandatakedalamdatabase,atau
w

inginmembuathalamanyangberubahubahsesuaiinputdariuser,makapadasaat
w

itulahPHPdibutuhkan.

Untukpembuatanweb,kodePHPbiasanyadisisipkankedalamdokumenHTML.Karenafitruinilah
PHPdisebutjugasebagaiScriptingLanguageataubahasapemogramanscript.

SebagaicontohpenggunaanPHP,misalkankitainginmembuatlistdarinomor1sampainomor10.
DenganmenggunakanHTMLmurni,kitabisamembuatnyasecaramanualsepertikodeberikutini:

1 <!DOCTYPEhtml>
2 <html>
3 <head>
4 <title>Contohlistdengan
5 HTML</title>
6 </head>
7 <body>
8 <h2>DaftarAbsensiMahasiswa</h2>
9 <ol>
10 <li>NamaMahasiswake1</li>
4
11 <li>NamaMahasiswake2</li>
12 <li>NamaMahasiswake3</li>
13 <li>NamaMahasiswake4</li>
14 <li>NamaMahasiswake5</li>
15 <li>NamaMahasiswake6</li>
16 <li>NamaMahasiswake7</li>
17 <li>NamaMahasiswake8</li>
18 <li>NamaMahasiswake9</li>
19 <li>NamaMahasiswake10</li>
20 </ol>
21 </body>
</html>

HalamanHTMLtersebutdapatdibuatdenganmudahdengancaramencopy
pastetag<li>sebanyak10kalidanmengubahsedikitangkaangkanourutdibelakangnya.Namun
jikayangkitainginkanadalahmenambahkanlisttersebutmenjadi100atau1000list,caracopy
pastetersebutmenjaditidakefektif.

NamunjikamenggunakanPHP,kitatinggalmembuatperulanganforsebanyak1000kalidengan

om
perintahyanglebihsingkatsepertiberikutini:

1 <!DOCTYPEhtml>

.c
2 <html>
3 <head>
om
4 <title>Contohlistdengan
5 PHP</title>
6 </head>
ilk

7 <body>
8 <h2>DaftarAbsensiMahasiswa</h2>
ia

9 <ol>
10 <?php
un

11 for($i=1;$i<=1000;$i++)
12 {
.d

13 echo"<li>NamaMahasiswake
14 $i</li>";
w

15 }
16 ?>
w

17 </ol
w

</body>
</html>

5
om
Denganmenggunakankodebarisyangbahkanlebihsedikit,kitadapatmembuatlisttersebutmenjadi

.c
1000kali,bahkan100.000kalidenganhanyamengubahsebuahvariabel$i.
om
PHPtidakhanyadapatmelakukanpengulangantersebut,masihbanyakhallainyangbisakita
lakukandenganPHP,sepertimenginputdatakedatabase,menghasilkangambar,menkonversi
ilk

halamantextmenjadiPDF,managementcookiedansession,danhallainnyayangakankitapelajari
ia

didalamtutorialbelajarPHPdiduniailkom.
un
.d

DalamtutorialPHPkaliini,kitatelahmempelajaripengertianPHP,danfungsiPHPdalampembuatan
w

website.PadatutorialselanjutnyakitaakanmembahastentangsejarahPHPdanperkembangan
versinya,dariawalkemunculannyapadatahun1994,hinggamenjadisalahsatubahasa
w

pemogramanpalingpopulersaatini.
w

6
PHP/FI:PersonalHomePage/FormsInterpreter
SejarahPHPbermulapadatahun1994ketikaprogrammerkelahiranDenmarkyangsekarang
berdomisilidiCanada,RasmusLerdorfmembuatsebuahscript(kodeprogram)dengan
bahasaPerluntukwebpribadinya.Scriptinisalahsatunyadigunakanuntukmenampilkanresume
pribadidanmencatatjumlahpengunjungkewebsitetersebut.

Namundenganalasanuntukmeningkatkanperforma,RasmusLerdorfkemudianmembuatulang
kodeprogramtersebutdalambahasaC.Iajugamengembangkannyalebihlanjutsehinggamemiliki
kemampuanuntukbekerjadenganformHTMLdanjugadatabase.

LerdorfmenyebutkodeprograminisebagaiPersonalHomePage/FormsInterpreteratauPHP/FI.
InilahasalmulapenamaanPHPdigunakan.PHP/FIdapatdigunakanuntukmembuataplikasiweb
dinamissederhana.

LerdorfkemudianmeriliskodetersebutkepublikdengansebutanPersonalHomePageTools

om
(PHPTools)version1.0.Perilisaninidiumumkanpada8Juni1995di
alamatcomp.infosystems.www.authoring.cgi,sebuahgroupdiskusiUsenet.

Isidaripengumumantersebut:
.c
om
1 From:rasmus@io.org(RasmusLerdorf)
2 Subject:Announce:PersonalHomePage
ilk

3 Tools(PHPTools)
4 Date:1995/06/08
ia

5 MessageID:<3r7pgp$aa1@ionews.io.org>#1/1
un

6 organization:none
7 newsgroups:
8 comp.infosystems.www.authoring.cgi
.d

9
10 AnnouncingthePersonalHomePageTools
w

11 (PHPTools)version1.0.
w

12 Thesetoolsareasetofsmalltightcgi
13 binarieswritteninC.
w

14 Theyperformanumberoffunctions
15 including:
16
17 .Loggingaccessestoyourpagesinyour
18 ownprivatelogfiles
19 .Realtimeviewingofloginformation
20 .Providinganiceinterfacetothislog
21 information
22 .Displayinglastaccessinformationright
23 onyourpages
24 .Fulldailyandtotalaccesscounters
25 .Banningaccesstousersbasedontheir
26 domain
27 .Passwordprotectingpagesbasedon
28 users'domains
29 .Trackingaccesses**basedonusers'e
30 mailaddresses**
31 .TrackingreferringURL'sHTTP_REFERER
32 support
33 .Performingserversideincludeswithout
7
34 needingserversupportforit
35 .Abilitytonotlogaccessesfromcertain
36 domains(ie.yourown)
37 .Easilycreateanddisplayforms
38 .Abilitytouseforminformationin
39 followingdocuments
40
41 Hereiswhatyoudon'tneedtousethese
42 tools:
43 .Youdonotneedrootaccessinstallin
44 your~/public_htmldir
45 .Youdonotneedserversideincludes
46 enabledinyourserver
47 .YoudonotneedaccesstoPerlorTclor
48 anyotherscriptinterpreter
49 .Youdonotneedaccesstothehttpdlog
files

Theonlyrequirementforthesetoolsto
workisthatyouhave
theabilitytoexecuteyourowncgi

om
programs.Askyoursystem
administratorifyouarenotsurewhat
thismeans.

Thetoolsalsoallowyoutoimplementa
.c
om
guestbookoranyother
formthatneedstowriteinformationand
displayittousers
ilk

laterinabout2minutes.

ia

Thetoolsareinthepublicdomain
distributedundertheGNU
un

PublicLicense.Yes,thatmeanstheyare
free!
Foracompletedemonstrationofthese
.d

tools,pointyourbrowser
w

at:http://www.io.org/~rasmus

w


RasmusLerdorf
w

rasmus@io.org

http://www.io.org/~rasmus

Alamatwebsiteyangterteradiatassudahtidakdipakailagi,namunsetidaknyadaripengumumanini
kitadapatmengetahuibahwakebutuhanprogrammersaatitusalahsatunyaadalahmencaricara
untukmembuathalamanyangdapatdiproteksidenganpassword,kemudahandalam
membuatform,dankemampuanmengaksesdatadarihalamanlain.

PengumumanitujugamencerminkanbahwaPHPpadaawalnyaadalahsebuahframeworkbahasa
Cyangmemilikibanyakfungsidalammengembangkanweb,bukansebuahbahasapemograman
utuhsepertiyangkitakenalsekarang.

PHP/FI:PersonalHomePage/FormsInterpreter2
8
Seiringdenganpengembangandanpenambahanfiturwebpadasaatitu,padaApril1996,Rasmus
LerdorfmengumumkanPHP/FIversi2.0.PHPversi2inidirancangLerdorfpadasaatmengerjakan
sebuahproyekdiUniversityofTorontoyangmembutuhkanpengolahandatadantampilanwebyang
rumit.PHP/FIversi1sebenarnyasudahmencukupi,namunperformayangdihasilkandirasakan
belumcukup,sehinggabutuhpenambahanfiturlanjutan.

BerikutadalahemaildariLerdorfyangditujukankepadagroupdiskusiUsenetpadatahun1996.

1 From:rasmus@madhaus.utcs.utoronto.ca
2 (RasmusLerdorf)
3 Subject:ANNOUNCE:PHP/FIServerside
4 HTMLEmbeddedScriptingLanguage
5 Date:1996/04/16
6 Newsgroups:
7 comp.infosystems.www.authoring.cgi
8
9 PHP/FIisaserversideHTMLembedded
10 scriptinglanguage.Ithasbuiltin
11 accessloggingandaccessrestriction

om
12 featuresandalsosupportfor
13 embeddedSQLqueriestomSQLand/or
14 Postgres95backenddatabases.

.c
15
16 Itismostlikelythefastestandsimplest
om
17 toolavailableforcreating
18 databaseenabledwebsites.
19 ItwillworkwithanyUNIXbasedweb
ilk

20 serveroneveryUNIXflavourout
21 there.Thepackageiscompletelyfreeof
ia

22 chargeforallusesincluding
23 commercial.
un

24
25 FeatureList:
.d

26 .AccessLogging
27 Logeveryhittoyourpagesineithera
w

28 dbmoranmSQLdatabase.
29 Havinghitinformationinadatabase
w

30 formatmakeslateranalysiseasier.
w

31 .AccessRestriction
32 Passwordprotectyourpages,orrestrict
33 accessbasedonthereferingURL
34 plusmanyotheroptions.
35 .mSQLSupport
36 EmbedmSQLqueriesrightinyourHTML
37 sourcefiles
38 .Postgres95Support
39 EmbedPostgres95queriesrightinyour
40 HTMLsourcefiles
41 .DBMSupport
42 DB,DBM,NDBMandGDBMareallsupported
43 .RFC1867FileUploadSupport
44 Createfileuploadforms
45 .Variables,Arrays,AssociativeArrays
46 .UserDefinedFunctionswithstatic
47 variables+recursion
48 .ConditionalsandWhileloops
49 Writingconditionaldynamicwebpages
couldnotbeeasierthanwith
9
thePHP/FIconditionalsandlooping
support
.ExtendedRegularExpressions
Powerfulstringmanipulationsupport
throughfullregexpsupport
.RawHTTPHeaderControl
LetsyousendcustomizedHTTPheadersto
thebrowserforadvanced
featuressuchascookies.
.DynamicGIFImageCreation
ThomasBoutell'sGDlibraryissupported
throughaneasytousesetof
tags.

ItcanbedownloadedfromtheFileArchive
at:<URL:http: //www.vex.net/php>


RasmusLerdorf
rasmus@vex.net

om
Didalamemailtersebut,dijelaskanjugapenambahanfiturfiturbarudidalamPHP/FIversi2.Dalam
pengumumaninijugalahpertamakalinyakatascriptinglanguage(bahasascript)digunakandalam

.c
PHP.
m
Alasanutamauntukperilisanversikeduainidikarenakantuntutanprogrammerwebyangsaatitu
o
menginginkanlebihdarisekedarkumpulanfungsifungsi,namunjugamembutuhkanfiturlogika
lk

sepertiifdanelse.
ai
ni

PHP:HypertextPreprocessor3
u
.d

EvolusiPHPberikutnyaterjadipadapertengahantahun1997,PHPversi2telahmenarikbanyak
w

perhatianprogrammer,namunbahasainimemilikimasalahdengankestabilanyangkurangbisa
w

diandalkan.HalinilebihdikarenakanLerdorfhanyabekerjasendiriuntukmengembangkanPHP.
w

PadasaatitulahZeevSuraskidanAndiGutmans,2orangprogrammerasalIsraelikutmengambil
bagiandanmembuatulangparsingengineyangmenjadidasardariPHPagarlebihstabil.

Dengandukungandaribanyakprogrammerlainnya,ProyekPHPsecaraperlahanberalihdariproyek
satuorangmenjadiproyekmassalyanglebihakrabkitakenalsebagaiopensourceproject.PHP
selanjutnyadikembangkanolehThePHPGroupyangmerupakankumpulanbanyakprogrammerdari
seluruhdunia.

PHPversi3resmidirilispadaJuni1998:

1 June6,1998ThePHPDevelopmentTeam
2 announcedthereleaseofPHP3.0,
3 thelatestreleaseoftheserverside
4 scriptingsolutionalreadyinuseon
5 over70,000WorldWideWebsites.
6
7 Thisallnewversionofthepopular
10
8 scriptinglanguageincludessupport
9 forallmajoroperatingsystems(Windows
10 95/NT,mostversionsofUnix,
11 andMacintosh)andwebservers(including
12 Apache,Netscapeservers,
13 WebSitePro,andMicrosoftInternet
14 InformationServer).
15 PHP3.0alsosupportsawiderangeof
16 databases,includingOracle,Sybase,
17 Solid,MySQ,mSQL,andPostgreSQL,aswell
18 asODBCdatasources.
19
20 Newfeaturesincludepersistentdatabase
21 connections,supportforthe
22 SNMPandIMAPprotocols,andarevampedC
23 APIforextendingthelanguage
24 withnewfeatures.
25
26 "PHPisaveryprogrammerfriendly
27 scriptinglanguagesuitablefor
28 peoplewithlittleornoprogramming

om
29 experienceaswellasthe
30 seasonedwebdeveloperwhoneedstoget
31 thingsdonequickly.The
32 bestthingaboutPHPisthatyouget
33 resultsquickly,"
.c
om
34 saidRasmusLerdorf,oneofthedevelopers
35 ofthelanguage.
36
ilk

37 "Version3providesamuchmorepowerful,
38 reliable,andefficient
ia

39 implementationofthelanguage,while
40 maintainingtheeaseofuseand
un

rapiddevelopmentthatwerethekeyto
PHP'ssuccessinthepast,"
addedAndiGutmans,oneofthe
.d

implementorsofthenewlanguagecore.
w


"AtCircleNetwehavefoundPHPtobethe
w

mostrobustplatformfor
rapidwebbasedapplicationdevelopment
w

availabletoday,"saidTroy
Cobb,ChiefTechnologyOfficeratCircle
Net,Inc."OuruseofPHP
hascutourdevelopmenttimeinhalf,and
morethandoubledourclient
satisfaction.PHPhasenabledusto
providedatabasedrivendynamic
solutionswhichperformatphenomenal
speeds."

PHP3.0isavailableforfreedownloadin
sourceformandbinariesfor
severalplatformsathttp://www.php.net/.

ThePHPDevelopmentTeamisan
internationalgroupofprogrammerswho
leadtheopendevelopmentofPHPand
relatedprojects.
Formoreinformation,thePHPDevelopment
Teamcanbecontactedat
11
core@php.net.

PerilisanPHPversi3jugaditandaidenganpenamaansingkatanPHPbaruyang
sebelumnyaPHP/FI:PersonalHomePageTools,menjadiPHP:HypertextPreprocessor.
KepanjanganPHPsebagaiPHP:HypertextPreprocessordisebutjugasebagai
kepanjanganrekursrif,sebuahistilahdalampemogramandimanasuatufungsimemanggildirinya
sendiri.Jadi,sejakPHPversi3,PHPadalahsingkatandariPHP:HypertextPreprocessor.

SetelahperilisanPHP3.0,PHPsemakinpopulerdigunakandiseluruhdunia.Dansejaksaatitu,
penggunaanPHPsebagaibahasapemogramanwebmenjadisebuahstandarbagiprogrammer.

PHP:HypertextPreprocessor4
Segerasetelahnya,ZeevSuraskidanAndiGutmansjugaberbagaiprogrammerdiseluruhdunia
mengembangkanPHPlebihjauhlagidenganmemperkenalkanbanyakfiturlanjutan,sepertilayer

om
abstraksiantaraPHPdenganwebserver,menambahkanmekanismethreadsafety,dantwostage
parsing.ParsingbaruinidikembangkanolehZeevdanAndi,dandinamakanZendengine.Akhirnya
pada22May2000diluncurkanPHP4.0

.c
om
PHPversi4jugamenyertakanfiturpemogramanobjek/ObjectOrientedProgramming,walaupun
belumsempurna.
lk
i ai
un
.d
w
w
w

PembuatPHP:(darikirikekanan)RasmusLerdorf,ZeevSuraskidanAndiGutmans

PHP:HypertextPreprocessor5
VersiPHPterakhirhinggasaatini,yaituPHP5.0diluncurkanpada13Juli2004.PHP5initelah
mendukungpenuhpemogramanobjectdanpeningkatanperformamelaluiZendengineversi2.

BeberapapenambahanfiturmeliputiPDO(PHPDataObjects)untukpengaksesandatabase,
closures,trait,dannamespaces.
12
HinggaartikelinidiupdatepadaSeptember2014,versistabilterakhirdariPHPadalahversi5.6.0.

PHP:HypertextPreprocessor6
PHPversi6jugatelahlamadikembangkan,bahkansejaktahun2005.FokuspengembanganPHP6
terutamadalammendukungUnicode,namundikarenakanbeberapaalasansepertikurangnya
programmer,danperformayangtidakmemuaskan,pengembanganPHP6dihentikandanfituryang
adadimasukkankedalamPHP5.

PHP:HypertextPreprocessor7
Padatahun2014,sebuahproyeklanjutanPHPmulaimengemuka,yakniPHP7.Kalangan
programmersedikitbingungdenganpenamaanversiPHPyangakandirilisini,apakahakan
menyebutnyasebagaiPHP6atauPHP7.WalaupunPHPversi6telahresmiditinggalkan,namun

om
banyakartikeldanbukuyangditulismengenaiPHP6.Setelahmengambilvoting,namaPHPversi7
akhirnyamenjadikeputusanfinal.

.c
PHP7berkembangdariproyekexperimenyangdinamakanPHPNG(PHPNextGeneration).
om
ProyekPHPNGinibertujuanuntukmenyusunulangkodePHPuntukmeningkatkanperforma.Pada
Juli2014,sebuahpercobaanmendapatihasilbahwaPHPNGmengalamipeningkatanperforma
ilk

hampir100%dariversiPHPsebelumnya.
ia

MasihbelumjelaskapanPHP7akandirilis,namunmelihatperkembanganyangterusdilakukan,
un

masadepanPHPakantetapmenjadisalahsatubahasapemogramanpalingpopulerdidunia.
.d

UntukmengikutiperkembanganPHP,andabisamembacanyadihalamanwebresiPHP
w

:www.php.net.
w

Sumber:
w

1. http://en.wikipedia.org/wiki/PHP
2. www.php.net
3. ProgrammingPHP,ThirdEditionOReillyMedia

13
InstalasiWebServerApache,PHP,danMySQLdengan
XAMPP
TidaksepertikodeHTMLyangdapatlangsungberjalandidalamwebbrowser,untukmenjalankan
halamanPHP,kitasetidaknyamembutuhkan3buahprogram,yakni:1.AplikasiPHPitusendiri,2.
Aplikasiwebserver,dan3.Aplikasiwebbrowser.

SelainaplikasiPHPdanWebserver,Aplikasiwebbrowsersebagianbesarsudahterinstallpada
komputeranda,sepertiInternetExplorer,GoogleChrome,danMozillaFirefox.

WebserveradalahaplikasitempatPHPberjalan.Saatiniwebserveryangseringdigunakan
adalahApacheWebServeryangbersifatOpenSource(bersifatgratis)danIIS(Internet
InformationServices)yangdikeluarkanolehMicrosoft.Karenasifatnyayanggratis,web
ServerApacheadalahwebserverfavoritparaprogrammer.

JikaandainginmenginstallAplikasiPHPdanWebserverApachesecaraterpisah,

om
aplikasiPHPdapatdiambildarisitusresmiPHP,dihttp://windows.php.net/download/(untukPHP
versiWindows),danwebServerApachedihttp://mirror.reverse.net/pub/apache/httpd/binaries/win32/.

.c
om
Akantetapi,menginstallPHPdanApachesecaraterpisahmembutuhkanwaktuyangcukuplama
danpengetahuantentangkonfigurasiApache.Belumlagijikaandamembutuhkanaplikasi
ilk

databaseMySQLyangjugaakandiinstalltersendiri.
ia

UntungnyabanyakaplikasiyangmembundelsemuaprogramyangkitaperlukandalambelajarPHP
un

danMySQL,beberapadiantaranyaadalahXAMPPdanWAMP.PadatutorialbelajarPHPdi
duniailkominikitaakanmenggunakanXAMPP.
.d
w

CaraMenginstallXAMPP1.8.3
w
w

XAMPPadalahsingkatandariaplikasidalambundelnya,yaitu:X(berarticrossplatform,maksudnya
tersediadalamberbagaisistemoperasi),ApacheHTTPServer,MySQL,PHPdanPerl.Dengan
mengisntallXAMPP,secaratidaklangsungkitatelahmenginstallkeempataplikasitersebut.

VersiterbaruXAMPPdapatdiambildihttp://www.apachefriends.org/en/xamppwindows.html.Pada
saattutorialinidiupdate(Oktober2014)XAMPPterdiridari2versi,yaituversiXAMPP
1.8.2danXAMPP1.8.3.PerbedaankeduanyaterletakpadaversiPHPyangdigunakan.XAMPP
1.8.2milikiPHPversi5.4danXAMPP1.8.3memilikiPHPversi5.5.Apabilaandatidak
mempermasalahkanversiPHPyangdigunakan,silahkanpilihXAMPP1.8.3,denganversiPHPyang
lebihbaru.

XAMPPjugamenyediakanversiportableyangbisadiinstalldiflashdisk,terdiridaribentukaplikasi
(exe),zipdan7zip.UntukXAMPPversiini,andabisamendapatkannya
dihttp://sourceforge.net/projects/xampp/files/XAMPP%20Windows/1.8.3/.

14
DalamcontohkaliinisayamenggunakanversiXAMPP1.8.3dalambentukfileexesebesar140MB.
Andajugabolehmenggunakanversiportableyangmemilikiukuranfilelebihkecil.

o m
.c
om
ilk

SetelahaplikasiinstallerXAMPPberhasildiunduh,langkahselanjutnyaadalahmenginstallXAMPP.
ia

Doubleklikfilexamppwin321.8.35VC11installer(mungkinnamafileXAMPPandaakansedikit
un

berbeda).
.d

Apabilapadakomputerandaterpasangantivirus,akanmunculjendelaperingatanuntuksementara
w

mematikanantivirus.Andabolehmengikutiinstruksiini,ataumengabaikannyadanlanjutketahap
w

selanjutnya.
w

JikaandamenggunakanWindowsVistaatau7,akanmuncultampilanperingatanuntuktidak
menginstallXAMPPpadafolderdefaultdiC:\ProgramFiles.Halinidisebabkanproteksikeamanan
dariWindowsakanmenghalangibeberapafiturdariXAMPP.Karenaitusebaiknyafolderinstalasi
XAMPPkitapindahkankeD:\XAMPP.
15
Setelah2jendelaperingatan,jendelatampilanawalinstalasiXAMPPakanmuncul,kliknextuntuk
melanjutkan.

om
.c
om
ilk
ia
un
.d
w
w
w

TampilanberikutnyaadalahSelectComponent,padalayariniandabisamemilihaplikasiapasaja
yangakandiinstall.Disarankanuntukmembiarkanpilihandefault,dalamhalinisemuaaplikasiakan
diinstall.Namunjikaandamemilikikendalaakanketerbatasanruangharddisk,andabisamemilih
aplikasipentingsepertiApache,MySQL,PHP,danphpmyadmin.Setelahitu,lanjutkandenganklik
tombolnext.

16
om
.c
om
Padatampilanberikutnya,InstallationFolderandadapatmengubahfolderinstalasi
ilk

defaultXAMPPkefolderlain,dalamcontohinisayaakanmemindahkannyakeD:\xampp.Lalu
ia

kliknextuntukmelanjutkan.
un
.d
w
w
w

17
TampilanlayarBitnamiforXAMPPadalahiklanprodukinstallerCMSdariXAMPP.Karenakita
tidakmemerlukannyasaatini.HapuscentangdaripilihanLearnmoreaboutBitNamiforXAMPP,
lalukliktombolnext.

om
.c
om
ilk
ia
un

Jikasemuanyaberjalanlancar,tampilanberikutnyaadalahReadytoInstall,kliktombolnextuntuk
memulaiprosesinstalasi.
.d
w
w
w

18
om
.c
om
ilk
ia
un
.d
w
w
w

Prosesintallasiakanberjalanbeberapasaat,hinggalayartampilanmenjadiCompletingthe
XAMPP.BiarkanceklistDoyouwanttostarttheControlPanelnow?karenakitaakan
langsungmencobaXAMPPsetelahini.

19
AkhiriprosesinstallasiXAMPPdengankliktombolFinish.

om
.c
om
SetelahXAMPPberhasildiinstal,akanmuncullayarXAMPPControlPanel.Padajendelainilah
ilk

kitaakanmenjalankanseluruhaplikasiyangadadiXAMPP,yangdiantaranyaadalahApacheWeb
ServerdanMySQL.
ia
un

UntuktestdrivedariXAMPP,langsungsajakliktombolStartpadabagianActionApache.Sesaat
kemudianModuleApacheakanberwarnahijaumenandakanaplikasiWebserverApachesudah
.d

berjalan.
w
w
w

20
om
.c
jikafirewallterpasangdalamkomputeranda,akanmunculjendelaperingatanuntuk
om
membolehkanwebserverApacheberjalanmelewatifirewall.Pastikanuntuk
melewatkanwebserverApachetersebutdenganmencentangchecklistyangtersedia,
ilk

laluklikAllowaccess.
ia
un
.d
w
w
w

Selanjutnyabukawebbrowser,misalnyaMozillaFirefox.Padakolomaddressketikkanlocalhost,
dantekanEnter.

21
om
JikaandamelihathalamanXAMPP,berartiinstalasiXAMPPtelahberhasildanWebServerApache
telahberjalan.

.c
om
ilk
ia
un
.d
w
w
w

Sampaidisini,XAMPPtelahberhasildiinstaldankitatelahsiapuntukmulaimempelajariPHP.Untuk
mendalamicarapenggunaanXAMPP,selanjutnyadalamTutorialBelajarPHP,kitaakanmempelajari
tentangCaraMenjalankanWebServerApachedenganXAMPPdarilocalhost.

22
CaraMenjalankanWebServerApacheMelaluiXAMPP
ControlPanel
UntukmenjalankanwebserverApache,pertamakalikitaharusmenjalankanaplikasiXAMPP
ControlPanel.Jikajendelatersebutbelumterbuka,andabisamenjalankannyadariSTART>All
Program>XAMPP>XAMPPControlPanel.

om
.c
om
ilk
ia
un
.d
w
w
w

PadatampilanXAMPPControlPanel,kitadapatmelihatmodulatauprogramapasajayangbisa
dijalankandariXAMPP,sepertiApacheWebServer,MySQL,ProgramFTPFilezilla,danbeberapa
aplikasilainnya.

23
om
.c
UntukmenjalankanApache,silahkankliktombolStartpadakolomActionuntuk
om
menuApache.WarnabackgrouddaritextApacheakanberalihmenjadikuningyangmenandakan
prosessedangdimulai.TunggulahbeberapasaatsampaiwarnabackgroudtextApachemenjadi
ilk

hijauyangmenandakanwebservertersebuttelahberjalandilatarbelakang.
ia
un
.d
w
w
w

Untukmenghentikanwebserver,tinggalkliktombolStopsampaiwarnahijauhilangdaritextApache.
Beberapakonfigurasidantombollainnyadapatdiabaikandulu,karenauntuksaatinikitahanyabutuh
mengetahuicaramenjalankandanmematikanwebserversaja.
24
Sekedarcatatan,didalam1PCandahanyabisamenjalankansatuwebserverpada
saatyangbersamaan.SehinggajikaandagagalmenjalankanApache,kemungkinan
adaaplikasiwebserverlainnyayangmasihberjalan(bisajadiandasudahpernah
mengistallaplikasiXAMPPsebelumnya).

PengertianAlamatLocalhost
SetelahwebserverApacheberhasildijalankan,untukmengakseswebserveriniandadapat
menggunakanwebbrowserbiasasepertiGoogleChrome,atauMozillaFirefox.

Untukmengakseswebserveryangbarusajakitajalankan,silahkanbukawebbrowserlaluketikkan
padaaddressbar:localhostdantekantombolEnter.Jikatidakadamasalah,halaman
awalXAMPPakanmuncul.

om
.c
om
ilk
ia
un
.d
w
w
w

Alamatlocalhostadalahalamatkhususyangditerjemahkanolehwebbrowseruntukmengakses
webserverpadakomputeritusendiri.Selainmenggunakanalamatlocalhost,andabisajuga
menggunakanalamatIP127.0.0.1untukmerujukkepadakomputersendiri(local).

JikainiadalahpertamakaliandamenjalankanXAMP,makapadahalamanawallocalhostXAMPP
akanmunculpilihanbahasa.KarenaXAMPPbelummenyediakanbahasaIndonesia,tidakadapilihan
lainselainenglish:)

25
SelanjutnyapadabrowserakantampilmenuhomedariXAMPP.Padamenusebelahkiriatassekilas

om
akantampilversiPHPyangdibawaolehXAMPP,dalamcontohiniversiPHPyang
digunakanadalahPHPversi5.5.6.

.c
o m
i lk
ia
un
.d
w
w
w

UntuktampilandetaildariversiPHPdanfituryangaktif,silahkanklikmenuphpinfo()padamenudi
sebelahkiri

26
om
Menuphpinfo()menyajikanbanyakinformasitentangversiPHPbesertamodulmodulnya.Jikaini

.c
adalahpertamakaliandamempelajariPHP,untuksementarasilahkanabaikansajahalamanini.
om
SampaidisinikitatelahmempelajaricaramenjalankanwebserverApachemalaluiXAMPPControl
ilk

Panel.DalamtutorialselanjutnyakitaakanmempelajaricaramenjalankanfilePHPdenganXAMPP.
ia
un
.d
w
w
w

27
MengenalFolderhtdoc
AgardapatmengakseshalamanPHPdariwebbrowser,makaandaharusmenempatkanfilePHPdi
dalamfolderkhususyangmerupakanfolderhomedariwebserver.

PadaaplikasiXAMPP,foldertersebutadalahfolderhtdocsyangberadadidalamfolderinstalasi
XAMPP.JikaandamengubahtempatinstalasiXAMPPmenjadiD:\xampp(jikamengikutitutorial
sebelumnya),makafoldertersebutseharusnyaberadadiD:\xampp\htdocs.

o m
.c
om
ilk

AndabisameletakkanfilePHPlangsungdidalamfolderini,atauagarmemudahkanpencarianfile,
buatlahsebuahfolderbarudidalamfolderhtdocsini.UntuktutorialbelajarPHPdi
ia

dalamduniailkomini,sayaakanmembuatfolderbelajar.Folderbelajarinilahyangakankita
un

jadikansebagaitempatfilePHPnantinya.
.d
w

CaraMenulisFilePHP
w
w

FilePHPpadadasarnyamerupakanfiletextbiasayangbisadibuatmenggunakanaplikasinotepad
bawaanwindows,namununtukfituryanglebih,andadapatmenggunakanaplikasieditortext
sepertiNotepad++,yangdapatdidownloaddihttp://notepadplusplus.org/download/.Cara
penginstallanaplikasiNotepad++pernahsayabahaspadaTutorialHTML:MemilihAplikasiEditor
HTML.

Sebagaitexteditoralternative,andabisamencobaSublimeText2.Aplikasieditorini
adalahfavoritbanyakprogrammerkarenafiturdantampilannya.Walaupunaplikasiini
tidakgratis(berbayar),andabisamenggunakannyaselamamungkin,karenatidakada
jangkawaktupenggunaanya.SublimeText2bisadidapatdi
alamat:http://www.sublimetext.com/.

KembalikefolderbelajaryangberadadiD:\xampp\htdocs\belajar,kitaakanmembuatsebuahfile
baru.UntukpembuatanfileiniandadapatmenggunakannotepadbawaanWindows

28
maupunNotepad++.

Sebagaiisiandarifiletersebut,silahkanketikkankodeberikut:

1 <?php
2 echo"SayasedangbelajarPHPdi
3 duniailkom.com";
4 echo"<br/>";
5 echo"HelloWorld...";
?>

Lalusavelahsebagaicoba.php.Sehinggafiletersebutakanberadapada
alamatD:\xampp\htdocs\belajar\coba.php.Sampaitahapini,sebenarnyakitatelahmembuat
sebuahfilePHPsederhana.Untukmenjalankannya,kitaharusmenggunakanwebbrowser.

CaraMenjalankanFilePHP

m
JikaWebServerApachebelumberjalan,silahkanmenjalankannyaterlebihdahulu,sepertipada
tutorialCaraMenjalankanWebServerApachedenganXAMPP.

o
.c
Selanjutnyabukabrowser,danketikkanalamatberikut:localhost/belajar/coba.phppadaaddress
om
bardantekanEnter.
ilk

Jikaandamengikutinyalangkahlangkahdiatasdenganbenar,makadidalamwebbrowserakan
tampilsepertitampilandiberikut:
a
uni
.d
w
w
w

Selamat!AndatelahberhasilmenjalankanfilePHPpertamaanda,walaupunfilePHPtersebuttidak
mengerjakanapaapaselainmenampilkanbeberapabaristext.

Sebelummengakhiritutorialini,adabeberapahalyangperludiperhatikanterkaitcaramenjalankanfile
PHP:

29
FilephpyangakandijalankanharusberadadidalamfolderD:\xampp\htdocs,baikitudidalam
foldertersebut,ataufolderfolderdibawahnya.Untukmenjalankandidalambrowser,anda
tinggalmenggantialamatD:\xampp\htdocsmenjadilocalhost.NamunJikafilephptersebut
beradadiluarfolderhtdoc,makawebservertidakbisamengaksesnya.
SetiapfilePHPharusditulismenggunakanakhiran.php(walaupunhalinibisadirubahpada
settinganmodulphp).
PenamaanfilePHP,harustanpaspasidansebaiknyamenggunakanhurufkecil.Andadapat
menggunakanunderscore(_)sebagaipenggantispasi.

Sampaidisini,kitatelahmempelajaricaramenjalankanfilePHPpadawebserverApache.Dalam
tutorialberikutnyakitaakanmempelajaritentangcarakerjawebserverdalammenjalankanPHP.

om
.c
om
ilk
ia
un
.d
w
w
w

30
PengertianBahasaPemogramanScript(Scripting
Language)PHP
PHPtermasukkedalamkelompokbahasapemogramanyangdisebutscriptinglanguage.Secara
sederhana,BahasaPemogramanScriptadalahjenisbahasapemogramanyangtidakmemerlukan
lingkungankerjakhususuntukberjalan(wikipedia),danumumnyadapatdisisipkankedalamkode
bahasapemogramanlain.

Dalamduniapemogramanweb,sebagianbesarbahasapemogramanyangdigunakanmerupakan
bahasapemogramanjenisscript.SebuahfilePHPselainberisikodePHPitusendiri,dapatjuga
berisikodeHTML,JavaScriptdanCSS,semuadalamsebuahfilePHP.

WebserverApacheakanmemililahmilahbagaimanacaramenjalankankodescripttersebut,
sehinggadibutuhkansuatucarauntukmemberitahuwebserverbahwakodeiniadalahPHP,dan
kodeituadalahHTML.

om
CaraKerjaServerdalamMenjalankanKodePHP
.c
om
PadatutorialPengertiandanFungsiPHPdalamPemogramanWeb,kitatelahmelihatapayangbisa
dilakukanPHPuntukmempermudahpenulisanHTML.Kaliinikitaakanmengulangihalyangsama
ilk

dengancontohberikutini:
ia

1 <!DOCTYPEhtml>
2 <head>
un

3 <title>BelajarPHP</title>
4 </head>
.d

5 <body>
6 <p>KalimatinidibuatmenggunakanHTML
w

7 saja</p>
8 <?php
w

9 echo"<p>Kalimatinidibuat
w

10 menggunakanPHP</p>";
11 ?>
</body>
</html>

WalaupunkodediatasterdiridariHTMLdanPHP,agarwebservermaumengeksekusikodePHP
yangterdapatdidalamnya,filetersebutharusdisavesebagaifilePHP,yaknidenganakhiran
file*.php.

Savelahkodetersebutsebagaicara_kerja.phpdalamfolderD:\xampp\htdocs\belajar.Berikutnya
bukabrowser,danketikkanalamatberikut:localhost/belajar/cara_kerja.php

Jikatidakadamasalah,akantampilhasilsebagaiberikut:

31
Selanjutnya,marikitabahascarakerjawebserverdalammenanganikodeprogramdiatas:

m
1. WebServerakanmelihatextension(jenis)fileyangdiakses.Jikafileyangdijalankan

o
.c
adalahcara_kerja.html,makawebservertidakakanmemanggilmodulPHPuntukmenjalankan
kodePHP,karenawebservermenganggapituadalahfileHTMLbiasa,danmenampilkannya
om
langsungtanpadiproses.Namunjikafiletersebutadalahcara_kerja.php,makawebserverakan
menjalankanmodulPHP,danmengeksekusikodePHPyangadadidalamfiletersebut.
ilk

2. WebServerApacheakanmemulaimemprosesfilecara_kerja.phpdimulaidaribarispaling
ia

pertamasampaibarispalingakhirsecaraberurutan.
un

3. Padabarispertama,webserverakanmendapatitagpembukaHTML,yakni<!DOCTYPE
html>dandiikutidengantagtagHTMLlainnya.Karenatidakmenemukaninstruksiuntukmasuk
.d

kemodePHP,seluruhtagHTMLinitidakmemerlukanproses,danlangsungdikirimkeweb
w

browser.
4. Begituwebservermenemukantag<?phppadabariske7,makatagtersebutmenginstruksikan
w

kepadawebserverbahwakodeselanjutnyaterdiridarikodePHP,sehinggaapapunyangditulis
w

setelahtaginiakandiprosesmengikutiaturanbahasapemogramanPHP,kitasebutsajaproses
inisebagaiPHPmode.
5. Mulaidaritag<?phpadalahPHPmode.DidalamPHPmodeinilahkitaakanmembuatkode
pemogramanPHP.Untukcontohkitadiatas,sayamembuatsebuahperintahsederhanaPHP,
yakniecho.EchoadalahperintahdidalamPHPyangdigunakanuntukmenampilkantextyang
beradadiantarakeduatandakutip()kedalambrowser.Dalamcontohdiatas,echokita
gunakanuntukmenampilkantext:<p>KalimatinidibuatmenggunakanPHP</p>kedalamweb
browser.Sehinggaandaakanmelihattexttersebuttampildiwebbrowser.
6. WebserverakanterusberadadalamPHPmodesampaimenemukantagpenutupPHP,yakni
tag?>yangmenandakanakhirdariPHP.
7. Tag?>selainmenandakanuntukkeluardarimodePHP,jugamenginstruksikankepadaweb
serverbahwatextberikutnyaakandiprosessebagaitextHTMLbiasa.

Dalamcontohdiatas,sebagianbesarkodePHPtersebutberupakodeHTML.Namunkitabisajuga

32
membuatsebuahfileyangseluruhnyamerupakanPHP.

Sebagaicontohkedua,sayaakanmemodifikasifilecara_kerja.phpsebelumnya,menjadiberikut:

1 <?php
2 echo"<!DOCTYPEhtml>";
3 echo"<head>";
4 echo"<title>BelajarPHP</title>";
5 echo"</head>";
6 echo"<body>";
7 echo"<p>Kalimatinitidaklagi
8 dibuatmenggunakanHTML</p>";
9 echo"<p>Kalimatinidibuat
10 menggunakanPHP</p>";
11 echo"</body>";
echo"</html>";
?>

o m
.c
om
a ilk
u ni
.d
w
w

JikaandamenjalankankodePHPdiatas,tampilanyangdihasilkanakanpersissamadengan
w

kodecara_kerja.phppertama.Perbedaanhanyabagaimanacarakitamemprosesdanmembagi
halamantersebut,manayangbisaditulisdengankodeHTMLbiasa,danmanayangharusditulis
menggunakanPHP.

Jadimanayanglebihbaik?ContohpertamayangmenggunakankodeHTMLdengansedikitkode
PHP,ataucontohkeduayangmenggunakankodePHPseluruhnya?

Andabebasmenggunakanapayangdirasalebihmudah,walaupunsebagianbesarprogrammerakan
menyukaigayapenulisanyangpertama,dimanakitahanyamasukkemodePHPapabiladiperlukan
saja,danbebanwebserverjugaakanberkurangkarenatidakterusmenerusmemprosesPHP.

TetapikecepataneksekusiPHPinitidakakandapatandabedakanterutamauntukfilePHP
sederhanasepertidiatas.PHPsudahdioptimasisedemikianrupaagardapatdieksekusidengan
cepatlayaknyafileHTMLbiasa.Contohnyasitusduniailkom.Situsinidibuat
menggunakanwordpressyangterdiridariribuanbariskodePHPpadasetiaphalamanyang

33
ditampilkan.

SetelahmemahamicarakerjawebserverdalammengeksekusikodePHP,dalamtutorialberikutnya
kitaakanmempelajariberbagaicarauntukmasukkemodePHPselaindengantag<?phpdantag?
>.SelanjutnyadalamTutorialBelajarPHP:CaraMemasukkankodePHPkedalamHTML.

om
.c
om
ilk
ia
un
.d
w
w
w

34
CaraMemasukkankodePHPkedalamHTML
PHPmenyediakan4carauntukmasukkedalammodePHP.

1.MetodeStandar(XMLStyle)PHP
MetodeinidisebutXMLStylekarenadidasarkanpadaaturanpenulisan(syntax)eXtensibleMarkup
Language(XML).XMLadalahbahasamarkupyangmenjadidasardarixHTML(versiHTMLyang
memilikiaturanlebihketat).MetodepenginputanPHPinilahyangpalingdisarankandanpaling
banyakdigunakan.

UntukmasukkedalammodePHP,kitamenggunakankombinasi<?phpsebagaitagpembukadan
tag?>sebagaitagpenutup.

Contohpenggunaanya:

1 <?php

om
2 echo"Hello,world";
3 ?>

2.Metodetagsingkat(SGMLStyle)PHP
.c
om
MetodeinidisebutjugadenganSGMLStyle,karenamiripdenganStandardGeneralizedMarkup
ilk

Language(SGML).SGMLadalahsebuahformatstandarbahasamarkupyangmerupakanasal
dariHTML.Disebuttagsingkat(PHPShorttag)karenataginilebihsingkatdarimetodeXML.Yakni
ia

hanyamenggunakantag<?SebagaipembukamodePHP,dantag?>sebagaitagpenutup.
un

Contohpenggunaanya:
.d

1 <?
w

2 echo"Hello,world";
w

3 ?>
w

PadaversiPHP5.5yangsayagunakan,secaradefaultPHPtidaklagimendukungmetodeSGML
Styleini.NamunkitadapatmengaktifkannyamelaluisetinganPHP(php.ini).Pembahasan
tentangphp.iniakankitabahaspadatutorialselanjutnya.

3.MetodeASP(ASPStyle)PHP
MetodeinidisebutmetodeASP,karenamiripdengancaramenginputkankodeASPke
halamanHTML.ASP(ActiveServerPages)adalahbahasapemogramanwebyangdirilis
olehMicrosoftsebagaibahasasainganPHP.

MetodeASPmenggunakantag<%sebagaitagpembuka,dantag%>sebagaitagpenutup.

Contohpenggunaanya:

1 <%
2 echo"Hello,world";
35
3 %>

Akantetapi,samasepertimetodeSGML,metodeASPinijugatidakdidukungsecaradefault.Kita
harusmengaktifkannyasecaramanualmelaluisetinganPHP(php.ini).

4.MetodeScript(ScriptStyle)PHP
MetodeterakhiryangbisadigunakanuntukmasukkemodePHPadalahMetodeScript.Disebut
metodescript,karenacarapenulisannyamiripdenganbahasascriptlainsepertiJavaScriptdan
CSS.

MetodeScriptmenggunakantag<scriptlanguage=php>sebagaitagpembuka,dan
tag</script>sebagaitagpenutup.

Contohpenggunaanya:

1 <scriptlanguage="php">
2 echo"Hello,world";

om
3 </script>

.c
MetodeScriptinididukungsecarapenuholehPHP5.5,namunpengalamansayajarangmenemui
kodeprogramPHPmenggunakantagini.
om
ilk

MetodePHPinstan
ia

Selainkeempatmetodediatas,terdapatsatulagicarauntukmasukkemodePHP.Terjemahan
un

bebasnyasayasebutsajasebagaimetodePHPinstan,karenacarainimenggabungkan
metodePHPSGMLdanperintahechodalamsatutag.
.d
w

TagpembukauntukmetodePHPinstaniniadalah<?=dantag?>sebagaitagpenutup.
w

Contohpenggunaannyaadalahsebagaiberikut:
w

1 SayaSedangBelajarPHPdi<?=
Duniailkom.com?>

Contohdiatassebenarnyasamadengan:

1 SayaSedangBelajarPHPdi<?phpecho
Duniailkom.com?>

MetodeinstaniniseringdigunakanuntukmasukkemodePHPsecaracepatdantidakmemerlukan
kodeyangpanjang.

Dalampenerapannya,modePHPinstaniniseringdigunakandalampembuatanform,karenaakan
lebihmudahjikamasukmodePHPpadasaatdibutuhkansajadaripadaseluruhformdibuat
denganPHP:

1 <inputtype="text"name="nama_user"value="
<?="$nama";?>">
36
Sebagaipenutup,berikutadalahmetode_input.phpyangberisirangkumanberbagaimetodeyang
telahkitabahaspadatutorialkaliini,namunkarenabeberapametodememerlukansettinganphp.ini,
mungkinandatidakbisamenjalankansemuametode.

1 <!DOCTYPEhtml>
2 <head>
3 <title>Belajarcaramemasukkankode
4 PHP</title>
5 </head>
6 <body>
7 <p>KalimatinidibuatmenggunakanHTML
8 saja</p>
9 <?php
10 echo"<p>Kalimatinidibuat
11 menggunakanmodePHPstyle</p>";
12 ?>
13 <?
14 echo"<p>Kalimatinidibuat
15 menggunakanmodeSMGLstyle</p>";
16 ?>

om
17 <%
18 echo"<p>Kalimatinidibuat
19 menggunakanmodeASPStyle</p>";

.c
20 %>
21 <scriptlanguage="php">
om
echo"<p>Kalimatinidibuat
menggunakanmodeScriptStyle</p>";
</script>
ilk

<?="<p>Kalimatinidibuatmenggunakan
modeInstanstyle</p>";?>
ia

</body>
</html>
un

Berikutadalahhasiltampilancontohprogramjikaandabelummerubahsettinganphp.ini:
.d
w
w
w

37
o m
.c
om
Perhatikanbahwatampilantersebuttidaksempurna,karenaPHPtidakbisamemprosesSMGL
StyledanASPStyle.
ilk

Jikaandasudahmerubahnilaiphp.iniuntukmendukungSMGLStyledanASPStyle,hasil
ia

tampilannyamenjadi:
un
.d
w
w
w

38
SebelumkitamembahaslebihjauhtentangtatacarapenulisanPHP,padatutorialselanjutnyasaya
akanmembahastentangcaramengeditfilephp.ini,dimanaphp.inimerupakanfilekonfigurasiPHP
danmasihberkaitandengantutorialkaliini,yaitukitaakanbelajarcaramengaktifkanmetodeASP
StyledanSGMLStyle.

DenganmengetahuicaramerubahsetinganPHP,akanmemudahkankitadalammemahamicara
PHPbekerja.

om
.c
om
ilk
ia
un
.d
w
w
w

39
Mencarifilephp.inidenganphpinfo()
SamasepertiMySQL,SeluruhsetinganPHPberadadalamsebuahfilekonfigurasiyang
bernamaphp.ini.Tergantungsetinganawal,filephp.inibisaberadadalamfoldersistemWindows,
ataudidalamfolderPHPitusendiri.

Untukmengetahuilokasifilephp.ini,jalankanXAMPPdanwebserverApache,laludarihalaman
awallocalhost,carimenuphpinfo()padamenusebelahkiri.

om
.c
om
ilk
ia
un

phpinfo()merupakansebuahfungsibawaanPHPyangdigunakanuntukmengetahuisettinganPHP
itusendiri.AndajugabisamenampilkanphpinfodenganmembuatsebuahfilePHP,danmenuliskan
.d

kodeberikut:
w
w

1 <?php
2 echophpinfo();
w

3 ?>

Didalamtampilanphpinfo(),akanterlihatseluruhkonfigurasiPHP.Namunandatidakbisamengubah
konfigurasitersebutpadahalamanini,tapiharusmengubahnyalangsungpadafilephp.ini.

Perhatikanhalamanpalingatasphpinfo(),andaakanmenemukannilaiLoadedConfiguration
File,inilahlokasialamatdariphp.iniyangkitacari.Dalamcontohsaya,filetersebutberada
padaD:\xampp\php\php.ini,silahkanbukaWindowsExplorerdancarifileini.

40
om
.c
om
ilk
ia
un
.d
w
w
w

MengenalFileKonfigurasiPHP:php.ini
41
Filephp.iniadalahfiletextyangdapatkitabukadenganaplikasitextbiasa,sepertiNotepadbawaan
Windows,namunjikaandatelahmenginstallaplikasiNotepad++,bukalahdenganNotepad++,karena
Notepad++memilikifitursyntaxhighlighting,yangmembedakanantarasetingandankomentar,
sehinggamemudahkanproseseditingsetinganphp.ini.

om
.c
om
ilk

Filephp.inimemilikiaturantertentu,yakniseluruhbarisyangdiawalidengantandasemicolon(titik
koma)dianggapsebagaikomentardantidakakandieksekusiolehPHP.Jikaandaperhatikan,80%
ia

isidariphp.iniadalahkomentar,sehinggakitadapatdenganmudahmengertiuntukapasetingan
un

tersebut.
.d

Sebagianbesarsetinganphp.inihanyamemerlukansatubaris,danandatinggalmemberinya
w

nilaion,offataunilaitertentu.Hampirsetiapsetinganphp.inididahuluidenganpenjelasantentang
w

maksuddantujuannya.
w

Sebagaicontoh,padatutorialCaraMemasukkankodePHPkedalamHTML,kitaperlumerubah
settinganphp.iniagarPHPdapatmendukungmetodaSMGLStyledanASPStyle.

UntukmembuatagarPHPmendukungSMGLStyle,setinganyangharusdiubah
adalahshort_open_tag.SetinganiniberfungsiuntukmembuatPHPmendukungtag<?dan?>.

Carilahkatashort_open_tagdidalamphp.ini,gunakanfasilitassearchdariNotepad++.Di
dalamphp.inimungkinterdapatlebihdari1katashort_open_tag,carilahshort_open_tag=off,Lalu
ubahnilainyamenjadiOn.

SedangkanuntuksetinganASPStyle,yangperludiubahadalahsetinganasp_tags=on.

42
om
.c
om
Setelahdiubah,savekembaliphp.ini.Agarsetinganyangbarusajakitaubahdapataktif,kitaharus
merestartWebServerApache.BukalahXAMPPControlPanel,KliktombolStoppadaAction
ilk

Apache,lalukliklagitombolStart.
ia

Untukmengujinya,buatlahsebuahfilephpbaru,kitanamakansajaopentag.php,ketiklahkode
un

berikut:
.d

1 <?
w

2 echo"IniberasaldariOpenTag";
3 ?>
w

4 <%
5 echo"IniberasaldariASPStyle";
w

6 %>

Save,lalujalankandibrowser.

43
om
Jikaandamendapatihasildibrowserterdapattanda<?dan<%,makasetingan
PHPbelummendukungSGMLdanASPStylesebagaicarakitamasukkedalammodePHP.Namun

.c
jikawebbrowsermenampilkantulisansepertitampilandiatas,berartisetinganphp.initelahberhasil
om
dirubah.

UntukmerubahsetinganPHPlainnya,langkahyangdigunakansamasepertidiatas,namununtuk
ilk

lebihaman,copylahfilephp.inidalamsetingandefaultnyakefoldercadangan,sehinggajikaanda
ia

mencobacobasetinganPHPdanmendapatiadamasalah,andatinggalmengcopyphp.iniawaltadi.
un

JikaandabarubertamakalibelajarPHP,setinganPHPinimungkinterkesanrumitdan
.d

kurangberguna,namunseiiringpenguasaanandatentangPHP,
w

pengaturanphp.inimerupakansenjatarahasiauntukmenguasaiPHP.Dalam
setinganphp.inimasihbanyakhalhallainyangbisadiubah,sepertipengaturan
w

tampilanerror,registerglobal,lokasifolderupload,danlainlain.Penjelasantentang
w

pengaturaniniakankitabahaspadatutorialtutorialPHPberikutnya.

SelanjutnyadalamTutorialBelajarPHPdiduniailkomkitaakanlangsungmasukkedalam
pemogramanPHP.KitaakanmempelajaritentangAturanDasarPenulisankodePHP.

44
1.CaseSensitivity(perbedaanhurufbesardankecil)dalam
PHP
PHPtidakmembedakanhurufbesardankecil(caseinsensitive)untukpenamaanfungsi(function),
namaclass,maupunkeywordbawaanPHPsepertiecho,while,danclass.Ketigabarisberikutakan
dianggapsamadalamPHP:

1 <?php
2 EchoHelloWorld;
3 ECHOHelloWorld;
4 EcHoHelloWorld;
5 ?>

Akantetapi,PHPmembedakanhurufbesardanhurufkecil(casesensitive)
untukpenamaanvariabel,sehingga$nama,$Namadan$NAMAakandianggapsebagai3variabel
yangberbeda.Seringkalierrorterjadidikarenakansalahmenuliskannamavariabel,yang
seharusnyamenggunakanhurufkecil,ditulisdenganhurufbesar.

m
1 <?php

o
2 $andi="Andi";

.c
3 echo$Andi; //Notice:Undefinedvariable:
4 Andi
om
?>
ilk

Untukmengatasiperbedaanini,disarankanmenggunakanhurufkeciluntukseluruhkodePHP,
termasukvariabel,fungsimaupunclass.Jikamembutuhkannamavariabelyangterdiridari2suku
ia

kata,karakterspasibisadigantikandenganunderscore(_)
un
.d

2.PenulisanBarisPerintahdalamPHP
w

Statement(barisperintah)didalamPHPadalahkumpulanperintahPHPyangmenginstruksikan
w

PHPuntukmelakukansesuatu.Barisperintahinibisaterdiridarisatubarissingkat(seperti
w

perintahechountukmenampilakantextdilayar)ataubisasesuatuyanglebihrumitdanterdiridari
beberapabaris,sepertikondisiif,ataukodeperulangan(loop).

BerikutadalahcontohbeberapabarisperintahdalamPHP:

1 <?php
2 echo"Hello,world";
3 sebuah_fungsi(21,"duniailkom");
4 $a=1;
5 $nama="duniailkom";
6 $b=$a/25.0;
7 if($y==$z){
8 echo"TampilkanTabel";
9 }
10 ?>

Terlihatdaribeberapacontohbarisperintahdiatas,PHPmenggunakantandasemicolon(titikkoma)
sebagaitandaakhirbarisperintah.
45
Kumpulanbarisperintahyangmenggunakantandakurungkurawalsepertikodisi
IFatauperulangan(loop)tidakmembutuhkantandatitikkomasetelahkurungpenutup.

1 <?php
2 if(true){
3 echo"Perintahdijalankan"; //tanda
4 titikkomaharusditulis
5 } //tidakdiperlukantandatitikkoma
setelahtandakurungkurawal
?>

3.KarakterSpasidanTabdalamPHP
Secaraumum,karakterspasidantabdiabaikandidalameksekusiprogramPHP.Andaboleh
memecahsebuahstatementmenjadibeberapabaris,ataumenyatukanbeberapastatementdalam
sebuahbarisyangpanjang.Seperticontohberikut:

om
1 <?php
2 echo"Inikalimatpertama";echo"Ini
3 kalimatkedua";$nama="duniailkom";

.c
?>
om
Barisperintahitusamaartinyadengan

1 <?php
ilk

2 echo"Inikalimatpertama";
3 echo"Inikalimatkedua";
ia

4 $nama="duniailkom";
5 ?>
un

Walaupuncontohpertamalebihmenghemattempat,namunsayalebihmenyarankancontohkedua,
.d

dimanakitamengusahakanagarsetiapstatementberadapadasatubarissaja,danmenambahkan
w

beberapaspasidiawaluntukmemudahkanmembacakodeprogram.
w

KeuntunganpenghematanbeberapabarisdanbeberapabytedarisebuahfilePHPtidakakan
w

sebandingdenganefeksakitkepalayangandadapatisewaktumencobamemahamikodeprogram
yangdibuat3bulankedepan(karenaseringmanggabungkanbeberapastatementdalamsatubaris).
Menambahkankomentarpadabagiankodeyanglebihrumitsebagaipenjelasanjugasangat
disarankan.

UntukcaramembuatkomentardidalamPHP,akankitabahaspadatutorialselanjutnya:Cara
PenulisanKomentardalamKodePHP.

46
PadatutorialBelajarPHPkaliinikitaakanmembahascarapenulisankomentardidalamkodePHP.
PHPmenyediakanbeberapacarauntukmenambahkankomentaryangmiripdengancara
memberikankomentardibahasapemogramanlainsepertiC,C++danUnixShell.

Komentardiperlukanuntukmemberikanpenjelasankepadaoranglainyangmembacakodeanda.
KomentarsepenuhnyaakandiabaikanolehPHPpadasaateksekusi.Walaupunandaberfikirbahwa
mungkinhanyaandayangakanmembacakodeprogramtersebut,namunituadalahideyangbagus.
Sayasendiriseringbingungketikamemahamibeberapabariskodeprogramsetelahbeberapabulan
tidakmelihatnya.

Komentaryangbaikadalahkomentarsingkatdantidakterlalupanjang,namunmemberikan
penjelasanuntukapakodeatauvariabeltersebutdibuat.

Selainsebagaitempatmembuatpenjelasan,sifatkomentaryangtidakakandieksekusiolehPHP,
memberikankeuntunganlaindalammembuatprogram.Sayaseringmenjadikanbeberapabariskode

om
programsebagaikomentarketikamencaritaupenyebaberrorkodeprogramyangsedangdibuat
(prosesdebugging).

.c
m
PHPmenyediakanbeberapacarauntukmembuatkomentar,dansemuanyaberasaldaribahasa
pemogramanpopulerlainsepertiC,C++,danUnixShell.
o
lk
ai

1.MetodeKomenterUnixShell
u ni

DisebutsebagaimetodekomentarUnixShell,karenacaramemberikankomentariniberasaldari
.d

sistemUnix.Metodeinimenggunakankaraktertandapagaratauhashmark(#).PHPakan
w

mengabaikanseluruhtextyangterdapatsetelahtandapagarsampaiakhirbarisatautag
penutupPHP(manayangterlebihdahuludidapati).
w
w

Karenasifatnyayanghanyamempengaruhisatubarissaja,MetodeKomenterUnixShellefektif
digunakanuntukmembuatkomentarpendek.

1 <?php
2 $nilai=$p*exp($r*$t);#menghitung
3 bungamajemuk
?>

Beberapaprogrammerjugaseringmenggunakankarakter#untukmemisahkanbagiankodePHP
denganbagianlainnya,sepertiberikut:

1 #######################
2 ##FalidasiFormRegister
3 #######################
4 ...KodeprogramPHPdisini

KetikaandamembuatkodeprogramPHPdanHTMLyangsalingberkaitan,KomenterUnixShellini
bisadigunakanseperticontohberikut:
47
1 <?php$nama="duniailkom";#Set$nama
2 menjadiduniailkom?>
3 <br><?phpecho$nama;?>
...kodeHTMLberikutnya

2.MetodeKomenterC++
MetodekomentarinimeminjamcaramembuatkomentardaribahasapemogramanC++.Hampir
samadenganmetodekomentarUnixShell,metodekomentarC++iniberlakuhanyauntuksebuah
barisatausampaitagpenutupPHP,namunkarakteryangdigunakanadalahduakaligarismiring
(twoslashes),yakni//.

KarenasifatnyayangsamasepertiUnixShell,semuacontohtanda#dapatdigantidengan//,
berikutcontohnya:

1 $nilai=$p*exp($r*$t); //menghitung
2 bungamajemuk

om
3
4 /////////////////////////////
5 //FalidasiFormRegister

.c
6 /////////////////////////////
7 ...KodeprogramPHPdisini
om
8
9 <?php$nama="duniailkom"; //Set$nama
10 menjadiduniailkom.?>
lk

<br><?phpecho$nama;?>
ai

...kodeHTMLberikutnya
ni

SayalebihmenyukaimenggunakanMetodeKomenterC++inidibandingkandengan
u

metodeUnixShell,karenatombolnyamudahdicapai.Untukmenekantanda#,anda
.d

harusmenekantombolshiftdikeyboardterlebihdahulu,namununtukmengetiktanda
w

//kitatinggalmenggunakansatutangankananuntukmencapainyadikeyboard.
w
w

3.MetodeKomentarC
JikametodekomentarUnixShelldanC++efektifuntukmembuatkomentarpendek,untukmembuat
komentaryangpanjang,PHPmeminjamnyadaribahasaC.Metodekomentarinidisebutjugatipe
komentarblokkarenasifatnyayangharusdiberikantandatutupuntukmengakhirikomentar.

Untukmemulaikomentar,kitamenuliskansebuahgarismiringdandiikutidengantandabintang(/*).
SemuatextsetelahtandatersebutakandianggapsebagaikomentarsampaiPHPmenemukantanda
tutup,yaknikarakterbintangdandiikutidengangarismiring(*/).MetodekomentarCinidapat
mencakupbeberapabaris.

BerikutadalahcontohpenggunaanMetodeKomentarC

1 <?php
2 /*Dalambagianinikitaakanmembuat
48
3 beberapavariabeldanmemberikannilai
4 awal.
5 Nilaiawalinihanyasebagaicontohsaja,
6 jadijangandianggapserius
7 */
8 $nama=Andi;
9 $a=10;
10 $situs=duniailkom;
$b=2014;
?>

MetodeKomentarCinijugabergunauntukmengomentaribeberapabarisprogramagartidak
dijalankanolehPHP,Seperticontohberikut:

1 <?php
2 $a=3;
3 /*
4 bagianinitidakakandijalankanolehPHP
5 $b=7;
6 $c=8;
7 */

m
8 ?>

o
.c
Namunandaperluberhatihatiuntuktidakmembuatblokkomentaryangsalingbertumpuk,seperti
kodeberikut:
om
1 <?php
2 $a=12;
ilk

3 /*
4 $j=10;/*Iniadalahkomentar*/
ia

5 $k=11;
un

6 Iniadalahkomentar
7 */
8 ?>
.d

Dalamcontohdiatas,PHPakangagalmenjalankankodeprogramdanmenghasilkanerrordi
w

sebabkankomentaryangsalingberhimpitan(overlapping).
w
w

DidalamtutorialbelajarPHPberikutnya,sayaakanmembahastentangintidaribahasapemograman
PHP,yaituvariabel.SelanjutnyapadaTutorialBelajarPHP:PengertianVariabeldanCaraPenulisan
VariabelPHP.

49
PengertianVariabeldalamPHP
Dalampemograman,variabeladalahsuatulokasipenyimpanan(didalammemorikomputer)yang
berisikannilaiatauinformasiyangnilainyatidakdiketahuimaupuntelahdiketahui(wikipedia).

Dalamdefenisibebasnya,variabeladalahkodeprogramyangdigunakanuntukmenampungnilai
tertentu.Nilaiyangdisimpandidalamvariabelselanjutnyadapatdipindahkankedalamdatabase,
atauditampilkankembalikepengguna.

Nilaidarivariabeldapatdiisidenganinformasiyangdiinginkandandapatdirubahnilainyapadasaat
kodeprogramsedangberjalan.Sebuahvariabelmemilikinamayangdigunakanuntukmengakses
nilaidarivariabelitu.Jikaandamemilikipengetahuandasartentangbahasapemograman,tentunya
tidakasingdenganistilahvariabel.

Samasepertivariabeldalambahasapemogramanlainnya,variabeldalamPHPdigunakanuntuk
menampungnilaiinputandariuser,ataunilaiyangkitadefinisikansendiri.NamunPHPmemiliki

om
beberapaaturantentangcarapenggunaandanpenulisanvariabel.

AturanPenulisanVariabeldalamPHP .c
o m
1.Penulisanvariabelharusdiawalidengantanda$
lk
ai

VariabeldidalamPHPharusdiawalidengandollarsignatautandadollar($).
ni

Setelahtanda$,sebuahvariabelPHPharusdiikutidengankarakterpertamaberupahuruf
u

atauunderscore(_),kemudianuntukkarakterkeduadanseterusnybisamenggunakanhuruf,angka
.d

atauunderscore(_).Denganaturantersebut,variabeldidalamPHPtidakbisadiawalidenganangka.
w
w

Minimalpanjangvariabeladalah1karaktersetelahtanda$.
w

BerikutadalahcontohpenulisanvariabelyangbenardalamPHP:

1 <?php
2 $i;
3 $nama;
4 $Umur;
5 $_lokasi_memori;
6 $ANGKA_MAKSIMUM;
7 ?>

Danberikutadalahcontohpenulisanvariabelyangsalah:

1 <?php
2 $4ever; //variabeltidakbolehdiawali
3 denganangka
4 $_salahsatu; //varibeltidakboleh
5 mengandungspasi
$nama*^; //variabeltidakboleh
mengandungkarakterkhusus:*dan^
50
?>

2.VariabeldalamPHPbersifatcasesensitif
PHPmembedakanvariabelyangditulisdenganhurufbesardankecil(bersifatcasesensitif),
sehingga$belajartidaksamadengan$Belajardan$BELAJAR,ketiganyaakandianggapsebagai
variabelyangberbeda.

Untukmenghindarikesalahanprogramyangdikarenakansalahmerujukvariabel,disarankan
menggunakanhurufkeciluntukseluruhnamavariabel.

1 <?php
2 $andi="Andi";
3 echo$Andi; //Notice:Undefined
4 variable:Andi
?>

om
Dalamcontohdiatas,PHPmengeluarkanerrorkarenatidakmenemukanvariabel$Andi.

3.CaraMemberikanNilaikepadaVariabel
.c
om
Samasepertisebagianbesarbahasapemogramanlainnya,untukmemberikannilaikepada
ilk

sebuahvariabel,PHPmenggunakantandasamadengan(=).Operatorsamadenganinidikenal
denganistilahAssignmentOperators.
ia
un

Perintahpemberiannilaikepadasebuahvariabeldisebutdenganassignment.Jikavariabeltersebut
belumpernahdigunakan,danlangsungdiberikannilaiawal,makadisebutjugadengan
.d

prosesinisialisasi.
w

Berikutcontohcaramemberikannilaiawal(inisialisasi)kepadavariabel:
w
w

1 <?php
2 $nama="andi";
3 $umur=17;
4 $pesan="SayasedangbelajarPHPdi
5 duniailkom.com";
?>

4.VariabeldalamPHPtidakmemerlukandeklarasiterlebih
dahulu
JikaandapernahmempelajaribahasapemogramandesktopsepertiPascal,C,C++,danVisual
Basic,didalambahasapemogramantersebut,sebuahvariabelharusdideklarasikanterlebihdahulu
sebelumdigunakan.

NamundidalamPHP,variabeltidakperludeklarasikanterlebihdahulu.Andabebasmembuat

51
variabelbaruditengahtengahkodeprogram,danlangsungmenggunakannyatanpadideklarasikan
terlebihdahulu.

1 <?php
2 $andi="Andi";
3 echo$andi;
4 ?>

PHPmemilikikeywordvaruntukmendefenisikanvariable,keywordinidigunakanuntuk
PHPversi4kebawah.PHPversi5tidakmembutuhkankeywordini,dan
penggunaannyaakanmenghasilkanerror,seperticontohberikutini:

1 <?php
2 //kodeprogramdibawahini
3 akanmenghasilkanerror
4 //Parseerror:syntaxerror,
5 unexpected'var'(T_VAR)
6 var$andi="Andi";
echo$andi;

m
?>

o
.c
om
5.VariabeldalamPHPtidakbertipe
ilk

Dalamkelompokbahasapemograman,PHPtermasukLooselyTypeLanguage,yaitujenisbahasa
pemogramanyangvariabelnyatidakterikatpadasebuahtipetertentu.
ia
un

HaliniberbedajikadibandingkandenganbahasapemogramandesktopsepertiPascalatauC,
dimanajikaandamembuatsebuahvariabelbertipeinteger,makavariabelituhanyabisa
.d

menampungnilaiangka,danandatidakakanbisamengisinyadenganhuruf.
w

DidalamPHP,setiapvariabelbebasdiisidengannilaiapasaja,seperticontohberikut:
w
w

1 <?php
2 $a=17; //nilaivariabelaberisi
3 angka(integer)
4 $a="aku"; //nilaivariabeladiubah
5 menjadikata(string)
$a=17.42; //nilaivariabeladiubah
menjadidesimal(float)
?>

6.VariabelSistemPHP(PredefinedVariables)
PredefinedVariablesatauterjemahanbebasnyaVariabelSistemPHP,adalahbeberapavariabel
yangtelahdidefenisikansecarasistemolehPHP,dankitasebaiknyatidakmembuatvariabeldengan
namayangsama.

BeberapacontohPredefinedVariablesdalamPHPadalah:

52
$GLOBALS,$_SERVER,$_GET,$_POST,$_FILES,$_COOKIE,$_SESSION,$_REQUEST,
$_ENV,$php_errormsg,$HTTP_RAW_POST_DATA,$http_response_header,$argc,$argv,$this.

DaftarlistPredefinedVariablestersebutsayaambildarimanual
PHPdihttp://www.php.net/reserved.variables,didalammanualtersebutjugadijelaskanbahwa
mungkinmasihterdapatbeberapavariabelsistemPHPselainlistdiatas,halinitergantungdengan
jeniswebserver,versiPHPyangdigunakan,danbeberapafaktorlainnya.Namunkebanyakan
varibelsistemPHPmenggunakantanda$_padaawalnamavariabel,namuntidakselalu.

Variabeldapatdikatakansebagaiintidarisebuahbahasapemograman.Karena
melaluivariabelinilahkitamemanipulasidatainputanagarmenjadinilaiyangdiinginkan.
Selainvariabel,PHPjugamenyediakansebuahsolusilainuntukmenampungnilaidata
dengankonstanta(constant).DalamtutorialberikutnyakitaakanmembahastentangPengertiandan
CaraPenulisanKonstantadalamPHP.

om
.c
om
ilk
ia
un
.d
w
w
w

53
PengertianKonstantaPHP
Dalambahasapemograman,Konstanta(constant)adalahsuatulokasipenyimpanan(dalam
memory)yangberisikannilaiyangsifatnyatetapdantidakbisadiubahsepanjangprogram
berjalan(wikipedia).

Berbedadenganvariabelyangisi/nilainyadapatdiubahbahkandihapusselamaprogramberjalan,
sebuahkonstantajikatelahdiberikannilai,tidakdapatdiubahlagidalamkodeprogram.Halini
seseuaidengannamanya,yaknikonstant.

AturanPenulisanKonstantaPHP
1.CaraPendefenisikanKonstantadalamPHP
JikavariabeldidalamPHPdibuatdenganmenambahkantandadollar,seperti:$nama.Untuk

om
membuatkonstantaPHPmenyediakan2cara:

.c
1. Menggunakankatakunci(keyword)const.
om
2. Menggunakanfungsidefine.

Untukmendefenisikankonstantadengankatakunciconst,caranyamiripdenganmenambahkannilai
ilk

kepadasebuahvariabel,namundidahuluikataconst.Berikutadalahcontohpenulisannya:
ia

1 <?php
2 constsitus="www.duniailkom.com";
un

3 echositus; //www.duniailkom.com
4 ?>
.d

Jikamenggunakanfungsidefine,fungsiinimembutuhkan2nilai,yakninamakonstanta,dannilainya.
w

Seperticontohberikutini:
w
w

1 <?php
2 define("situs","www.duniailkom.com");
3 echositus; //www.duniailkom.com
4 ?>

Aturanpenamaankonstantasamasepertivariabel,yakniuntukkarakterpertamahanyaboleh
menggunakanhurufdanunderscore(_),danuntukhurufkeduadanseterusnya,bolehmenggunakan
huruf,angkadanunderscore.Sehinggasebuahkonstantajugatidakbolehdiawalangkaatau
mengandungkarakterkhusussepert#,*,atau&.

Sedikitcatatantentangperbedaanpendefenisiankonstantamenggunakankata
kunciconstdanfungsidefine:

Pembuatankonstantadengankeywordconsthanyadapatdigunakanpadatoplevel
scope,yakniharusdalamlingkunganglobalPHP.Sehinggakitatidakbisa
menggunakanconstdidalamfunction,loop,ataukondisiif.
54
Apabilaandamembutuhkankonstantadidalamfungsi,makaharus
menggunakankeyworddefine.

2.KonstantaPHPbersifatCaseSensitif
Samasepertivariabel,konstantadalamPHPbersifatcasesensitif,sehinggaperbedaanhurufbesar
dankecildianggapberbeda.GAJI,GaJi,dangajimerupakan3konstantayangberbeda.

Walaupunkitabolehmenggunakanhurufkecildalampenulisankonstanta,kesepakatanprogrammer
PHPmenganjurkanmenggunakanHURUFBESARuntukpenulisankonstanta.Tujuannyaagar
lebihmudahuntukmembedakandenganvariabel(dimanavariabeldianjurkanmenggunakanhuruf
kecil).

m
3.NilaiKonstantaPHPTidakDapatDiubah

o
.c
Jikasebuahkonstantatelahdidefenisikan,kitatidakbisamerubahnilaitersebut.
om
Contoherrorkonstanta:

1 <?
ilk

2 define("GAJI",5000000);
3 echoGAJI;echo"<br/>";
ia

4 define("GAJI",50000);
un

5 ?>

Jikakodeprogramtersebutdijalankan,berikuttampilannya:
.d
w

1 5000000
2 Notice:ConstantGAJIalreadydefinedin
w

3 D:\xampp\htdocs\belajar\test.phponline4
w

4.Konstantahanyadapatberisitipedatatertentu
KonstantadalamPHPhanyadapatberisitipedatasederhana(disebutjugajenistipeskalar),
yakni:boolean,integer,floatdanstring.Haliniberbedadenganvariabel,yangdapatjugaberisitipe
dataturunansepertiarray,objekatauresources.

1 <?php
2 define("GAJI",5000000);
3 echoGAJI;echo"<br/>";
4 define("GAJI_PEGAWAI",array(
5 1000000,1500000));
?>

Hasilcontohdiatasakanmenghasilkanerrorsebagaiberikut:

1 5000000
55
2 Warning:Constantsmayonlyevaluateto
3 scalarvaluesin
D:\xampp\htdocs\belajar\test.phponline4

Didalamcontohdiatassayamencobamemberikannilaiarraysebagainilaidari
konstantaGAJI_PEGAWAI,namunPHPmengeluarkanerroryangmenjelaskan
bahwakonstantahanyadapatberisinilaidengantipeskalarsaja.Tipeskalariniadalahboolean,
integer,floatdanstring.Kitaakanmempelajaritipetipedatainidalamtutorialselanjutnya.

5.KonstantaSistemPHP(PredefinedConstant)
Samasepertivariabel,PHPjugatelahmembuatbeberapakonstantayangtelahdidefinisikandan
tidakbisadirumahnilainya.Namunkarenabanyaknyamodulyangdapatditambahkankedalam
PHP,PredefinedConstantdalamPHPakanbertambahtergantungmodulyangada.Namun
sebagaicontOh,berikutadalahPredefinedConstantdalamsistemintiPHP:

om
PHP_VERSION,PHP_MAJOR_VERSION,PHP_MINOR_VERSION,PHP_RELEASE_VERSION,
PHP_VERSION_ID,PHP_EXTRA_VERSION,PHP_ZTS,PHP_DEBUG,PHP_MAXPATHLEN,

.c
PHP_OS,PHP_SAPI,PHP_EOL,PHP_INT_MAX,PHP_INT_SIZE,DEFAULT_INCLUDE_PATH,
om
PEAR_INSTALL_DIR,PEAR_EXTENSION_DIR,PHP_EXTENSION_DIR,PHP_PREFIX,
PHP_BINDIR,PHP_BINARY,PHP_MANDIR,PHP_LIBDIR,PHP_DATADIR,__LINE__,__FILE__
ilk

,__DIR__,__FUNCTION__,__CLASS__,__TRAIT__,__METHOD__,__NAMESPACE__,
ia

DaftarlistPredefinedConstantdiatassayaambillangsungdarimanualPHP
un

dihttp://php.net/manual/en/reserved.constants.php.Kebanyakandarikonstantatersebutmenyimpan
nilaiyangdapatmembantukitadalammembuatprogramPHP,khususnyauntukdebugging,saya
.d

akanmembahasnyapadalainkesempatan.
w
w

Dalamaplikasidunianyata,penggunaankonstantatidakakanseseringpenggunaanvariabel,
w

namunjikaandamembutuhkansebuahvariabelyangtidakbisaditimpa
nilainya,konstantamerupakanpilihanyangtepat.

DalamtutorialBelajarPHPDasarselanjutnya,kitaakanmasukkedalamtipedata.Untuk
pembahasanpertama,kitaakanmembahastentangtipedataintegerdidalamPHP.

56
PengertianTipeDataPHP
Setelahsebelumnyakitamempelajaritentangpengertianvariabeldanpengertiankonstanta,dalam
beberapatutorialkedepankitaakanmempelajaritipedataPHP.

Sebuahvariabelataukonstantamerupakantempatdaridata.Didalambahasapemograman(dan
jugaPHP),datayangdiinputkedalamvariabelataukonstantaakanmemilikitipetertentu.Tipetipeini
nantinyamenentukanbagaimanacarakitamemprosesnya.Beberapatipedataterdengarfamiliar,
sepertitipedataangka,desimaldantext.Namunkitajugaakanmenemukantipedatalain
sepertibooleandanarray.

Untuktipedatapertamayangakandibahasadalahtipedataangkabulat,ataudisebutdengantipe
dataInteger.

PengertianTipeDataIntegerdalamPHP

om
Tipedataintegeradalahtipedatayangberupaangkabulatseperti:1,22,dan172.Tipe

.c
dataintegerumumdigunakanuntukdatadenganangkabulat,sepertihargabarang,jumlahstockdan
m
jumlahmahasiswa.Jikadatayangkitamilikikemungkinnanakanmengandungpecahan,makatipe
datayangdigunakanadalahfloat(akandibahasdalamtutorialberikutnya).
o
lk

Nilaiintegerdapatbernilaipositif(+)maupunnegatif().Jikatidakdiberitanda,makadiasumsikan
ai

nilaitersebutadalahpositif.
ni

BerikutcontohpenulisanbilanganintegerdalamPHP:
u
.d

1 <?php
2 $umur=21;
w

3 $harga=15000;
w

4 $rugi=500000;
5
w

6 echo$umur; //21
7 echo"<br/>";
8 echo$harga; //15000
9 echo"<br/>";
10 echo$rugi; //500000
11 ?>

Untukvariabeldenganangkainteger,kitabisamelakukanoperasimatematissepertipenambahan,
pengurangan,pembagiandanlainlain,seperticontohberikutini:

1 <?php
2 $a=14;
3 $b=16;
4 $c=$a+$b;
5 echo$c; //30
6
7 $d=$a*$b;
8 echo$d; //224
9 ?>
57
KarenaPHPtidakmemerlukanpendeklarasianvariabel,makaketikasebuahvariabel
berisiangkabulat,makasecaraotomatisvariabeltersebutdisebut
sebagaivariabelinteger.

Jangkauanangkaintegerbergantungkepadakemampuankomputasikomputer,namunbiasanya
dimulaidari2,147,483,648sampai+2,147,483,647,atau32bit.Jikaterdapatmenungkinanangka
yangdihasilkandarikodeprogramkitaberadadiluarjangkauanini,sebaiknyamenggunakantipe
datafloat.

Secarateknis,jangkauanangkaintegerinisamadenganjangkauantipedataLONGpadabahasaC.
NamundikarenakanbahasaCtidakmemberikanspesifikasikhususseberapabesar
jangkauanLONG,andamungkinmendapathasilyangberbeda.

Untukmengetahuinilaimaksimaltipedataintegerpadakomputer,PHPmenyediakan
konstantaPHP_INT_MAX.BerikutadalahhasilnilaiPHP_INT_MAXyangsayajalankan:

om
1 <?php
2 printPHP_INT_MAX; //2147483647
3 ?>

.c
om
Selaindigunakanuntukmenampungangkadenganbase10(disebutjugaangkadesimal),tipe
dataintegerdigunakanjugauntukmenampungangkabase16(hexadesimal),base8(octal),dan
ilk

base2(binary).
ia

Jikaandabarumempelajaribahasapemograman,andabolehmelewatipenjelasan
un

tentangintegerbase16(hexadesimal),base8(octal),danbase2(binary)yangakan
dijelaskandibawahini.Karenatipedatainitidakterlaluseringdigunakan,danmungkin
.d

akanmembuatbingungjikabelumpernahmempelajarinya.
w
w
w

CaraPenulisanAngkaHexadesimalDalamPHP
Angkaheksadesimal(atauhexadecimal)adalahangkakhususyangbilanganpenyusunnyaterdiri
dari16digit,yaituangka09,danhurufAF.Angkaheksadesimalinibiasanyadigunakanuntuk
pemrosesanyangberkaitandenganperhitungankomputer.

DalampemogramanwebkitaakanmenemukanangkainipadapenulisankobinasiwarnapadaCSS.
Sebagaicontoh,warnamerahditulis:ff0000,biru:0000ff,abuabu:cccccc,dankombinasiwarna
lainnyadalamCSSmenggunakanangkaheksadesimal.

Untukmembuatsebuahvariabelberisiangkaheksadesimal,kitamenulishuruf0x(angka0dan
hurufx)sebelumangkayangingindiinput.Karakter0xmenginstruksikankepadaPHPbahwa
angkasetelahnyaadalahheksadesimal.Misalkan,angkaheksadesimal54FAditulis
dengan0x54FA.

58
BerikutcontohpenulisanbilanganintegerheksadesimaldalamPHP:

1 <?php
2 $angka_desimal=31;
3 $angka_heksadesimal=0x1F; //1F
4 heksadesimal=31desimal
5
6 echo$angka_desimal; //31
7 echo"<br/>";
8 echo$angka_heksadesimal; //31
?>

Padacontohdiatas,variabel$angka_desimaldan$angka_heksadesimalsamasamaditampilkan
dengannilai31(PHPsecaratidaklangsungmengkonversinilai$angka_heksadesimalmenjadi
nilaidesimal).

CaraPenulisanAngkaOktalDalamPHP

om
Bilanganoktaladalahbilanganyangterdiridari8digit,yaitukarakter07.Bilanganoktaltidakterlalu
seringdigunakan.UntukmenuliskanbilanganoktalkedalamvariabelPHP,kitamenggunakantanda

.c
0(angkanol)diawalangka.Angkadesimal511ditulisdalambentukoktal777,sehingga
om
penulisannyadalamPHPmenjadi0777.

BerikutcontohpenulisanbilanganintegeroktaldalamPHP:
ilk

1 <?php
ia

2 $angka_desimal=511;
un

3 $angka_oktal=0777; //777oktal=511
4 desimal
5
.d

6 echo$angka_desimal; //511
7 echo"<br/>";
w

8 echo$angka_oktal; //511
w

?>
w

Jikaandaperhatikan,penulisanangkadengan0didepansebuahangkaseringkitatulis
dalamfungsimatematikaataucatatanseharihari.Namun,karenafungsinyasebagai
penandabilanganoktal,sedapatmungkinhindarikebiasaanmenambahkanangka0di
depannilaidesimaldidalamPHP.Jikayangdimaksudadalahsupayatampilanangka
menjadicantik,misalkanuntukpengurutannomor:01,02,03..dst.PHP
menyediakanfungsikhususuntukkeperluanini.

CaraPenulisanAngkaBinerDalamPHP
Bilanganbiner(ataubinary)adalahbilanganyangterdiridari2digitsaja,yaitu0dan1.Prinsip
bilanganbinerinilahyangmendasariperhitungankomputer.Bilanganbinerkadangdisebutjuga
denganbilanganlogika,yaknilogikabenar(ditandaidenganangka1),danlogikasalah(ditandai
denganangka0).
59
DidalamPHP,angkaintegerbinerditulisdenganawalan0b(angkanol,danhurufb).
Nilaidesimal222,dalamnotasibinerbinerditulis11011110,sehinggauntukmenyimpannyadalam
variabelPHPditulismenjadi0b11011110.

BerikutcontohpenulisanbilanganintegerbinerdalamPHP:

1 <?php
2 $angka_desimal=222;
3 $angka_biner=0b11011110; //11011110
4 biner=222desimal
5
6 echo$angka_desimal; //222
7 echo"<br/>";
8 echo$angka_biner; //222
?>

Tipedataintegeradalahtipedatapentingdalampemograman.Dalamtutorialkaliinikitatelah
mempelajaricarapenulisanbilanganintegerdalamPHPdenganpenulisanuntuk

om
karakterdesimal,heksadesimal,oktal,danbiner.

.c
SelaintipedataInteger,dalamPHPmasihterdapattipeangkalainnya,yaitutipedataFloating
om
PointatauFloat.DalamtutorialbelajarPHPselanjutnyakitaakanmempelajaritipedataFloatdan
CaraPenulisantipedataFloatdalamPHP.
ilk
ia
un
.d
w
w
w

60
PengertianTipeDataFloatdalamPHP
Tipedatafloat(disebutjugatipedatafloatingpoint,ataurealnumber)adalahtipedataangkayang
memilikibagiandesimaldiakhirangka,ataumemilikifloatingpoint(floatingpointadalahistilah
dalambahasainggrisuntukmenyebuttandatitikyangmenandakanbilangandesimal).Contoh
angkafloatadalahseperti:0,9atau3,14.

Tipedatafloatcocokdigunakanuntukvariabelyangakanberisiangkapecahan,sepertinilaiIPK,
hasilpembagian,atauhasilkomputasinumerikyangangkanyatidakbisaditampungoleh
datainteger.

Samasepertitipedatainteger,jangkauanangkafloatbergantungkepadakomputasiprosessoryang
digunakan,walaupunpadaumumnyaberupaangkamulaidari1.7x10^308sampai
dengan1.7^+308dengan15digitkeakuratan.Andatidakperlukhawatirdenganlimitangkafloatini,
karenaselainuntukmembuataplikasimatematistingkattinggi,kitatidakakanmenggunakanangka
floatsampai15digit.

om
DikarenakanperbedaancarapenulisanbilanganfloatdiEropadanAmerikadengan

.c
Indonesia(samadenganbahasapemogramanlainpadaumumnya),
om
didalamPHPpenulisannilaidesimalditandaidengantandatitik,bukankomaseperti
yangbiasakitagunakanseharihari.Nilai0,87harusditulismenjadi0.87.PHPakan
ilk

menampilkanpesanerrorjikasebuahnilaiditulisdenganangka0,87.
ia
un

CaraPenulisanTipeDataFloatdalamPHP
.d

PHPmendukung2carapenulisantipedatafloat,yangpertamayaitupenulisandesimalseharihari,
w

seperti0.17atau9.47danyangkeduaberupapenulisanformatscientificnotation,seperti0.314E1,
w

atau12.0E3.
w

Penggunaanscientificnotationdigunakanuntukmenyederhanakanpenulisan,0.314E1adalah
samadengan0.314*10^1atau3.14,dan12.0E3samadengan12.0*10^(3),atau0.012.

BerikutcontohpenulisanbilanganfloatdalamPHP:

1 <?php
2 $angka_float1=0.78;
3 $angka_float2=14.99;
4 $angka_scientific1=0.314E1;
5 $angka_scientific2=0.3365E3;
6
7 echo$angka_float1; //0.78
8 echo"<br/>";
9 echo$angka_float2; //14.99
10 echo"<br/>";
11 echo$angka_scientific1; //3.14
12 echo"<br/>";
13 echo$angka_scientific2; //0.0003365
61
14 ?>

Samasepertitipedatainteger,variabeldengantipedatafloatjugadapatmelakukanoperasinumerik
sepertipenambahan,pembagian,perkalian,danlainlain.Berikutadalahcontohoperasimatematis
dengantipedatafloat:

1 <?php
2 $a=10.66;
3 $b=12.4;
4 $c=$a+$b;
5 echo$c; //23.06
6
7 $d=$a/$b;
8 echo$d; //0.85967741935484
9 ?>

Penjelasanlanjutantentangoperasimatematis,akankitabahasdalamtutorialkhusus
tentangoperatormatematisdalamPHP.

om
DalamtutorialbelajarPHPini,kitatelahmempelajaritipedatafloat,ataudisebutjugatipe

.c
datafloatingpointataurealnumber.SelanjutnyakitaakanmembahastentangTipeDataStringdan
CaraPenulisanStringdalamPHP.
om
ilk
ia
un
.d
w
w
w

62
PengertianTipeDataStringdalamPHP
Tipedatastringadalahtipedatayangberisitext,kalimat,ataukumpulankarakter.Sebagaicontoh,
a,sayasedangbelajarPHPatautUT0r1alpHp?!semuanyaadalahstring.

Tipedatastringmungkinadalahtipedatayangpalingseringdigunakan,danmemilikibanyakfitur
yangdisediakanPHP.Karakteryangdidukungsaatiniadalah256karakterASCII.List
karakterASCIItersebutdapatdilihatdihttp://www.asciicode.com.

CaraPenulisanTipeDataStringdalamPHP
PHPmenyediakan4carapenulisantipedatastring,yakniSingleQuoted,Double
Quoted,Heredoc,danNowdoc.Kitaakanmempelajarinyalebihdalamdalamtutorialini.

om
1.PenulisanTipeDataStringdenganSingleQuoted

.c
Penulisantipedatastringmenggunakansinglequotedatautandapetiksatu(karakter)merupakan
om
carapenulisanstringyangpalingsederhana.Kitatinggalmembuatsebuahkataataukalimat,dan
menambahkantandapetiksatudiawaldanakhirkalimat.
ilk

Untukstringyangdidalamnyajugaterdapattandapetiksatu,kitaharusmendahuluinyadengan
ia

karakterbackslash(\)agartidakdianggapsebagaipenutupstring.Danjikadidalamstringanda
inginmenulistandabackslash,kitaharusmenulisnyadengan2kali(\\).
un

Berikutadalahcontohpenulisantipedatastringmenggunakanmetodesinglequoted:
.d
w

1 <?php
2 $string1='Iniadalahstringsederhana';
w

3
4 $string2='Iniadalahstring
w

5 yangbisamemilikibeberapa
6 baris';
7
8 $string3='Diaberkata:"I\'llbeback"';
9
10 $string4='Andatelahberhasilmenghapus
11 C:\\xampp\\htdoc';
12
13 $string5='Kalimatinitidakakanpindah
14 ke:\nbarisbaru';
15
16 $string6='Variabeljugatidakotomatis
17 ditampilkan$string1dan$string3';
18
19 echo$string1;echo"<br>";
20 echo$string2;echo"<br>";
21 echo$string3;echo"<br>";
22 echo$string4;echo"<br>";
echo$string5;echo"<br>";
echo$string6;
63
?>

Jikacontohtersebutdijalankan,berikuttampilannyadibrowser:

o m
Padacontohdiatas,sayamembuatbeberapakarakterkhususseperti,\n,danvariabelyangdimulai

.c
dengantandadollar($).Ketigakarakterkhususiniditampilkansecarakarakteraslinyakedalam
om
browser.
ilk

2.PenulisanTipeDataStringdenganDoubleQuoted
ia
un

CarakeduadalampenulisantipedatastringdalamPHPadalahdenganmenggunakanDouble
Quotedatautandapetikdua(karakter).Walaupunsepertitidakadaperbedaandengan
.d

menggunakansinglequote,hasilyangdidapatakansangatberbeda.
w
w

Dengandoublequoted,PHPakanmemproseskarakterkarakterkhususseperticarriage
return(\n),dankaraktertab(\t)danjugamemprosessetiapvariabel(yangditandaidengan
w

tanda$didepankata).

Dikarenakanmetodedoublequotedmelakukanpemrosesanterlebihdahulu,makauntuk
menampilkankarakterkhusussepertitandapetik(karakter),tandadollar(karakter$)dantanda
tandakhususlainnya,kitaharusmenggunakanbackslash(karakter\).Berikutadalahtabelkarakter
khususuntukdoublequotedstring:

CaraPenulisan
KarakterYangDitampilkan
String

\" KarakterTandapetikdua

\n KarakterNewline

64
\r KarakterCarriagereturn

\t KarakterTab

\\ KarakterBackslash

\$ KarakterDollarSign

\{ KarakterPembukaKurungKurawal

\} KarakterPenutupKurungKurawal

\[ KarakterPembukaKurungSiku

\] KarakterPenutupKurungKurawal

\0sampai\777 KarakterASCIImenggunakannilaioktal

om
\x0sampai\xFF KarakterASCIImenggunakannilai

.c
heksadesimal
om
Sebagaicontohpenggunaandoublequotedstring,sayaakanmenggunakancontohyangsama
dengansinglequotedstring,agardapatdilihatperbedaannya:
ilk

1 <?php
ia

2 $string1="Iniadalahstringsederhana";
3
un

4 $string2="Iniadalahstring
5 yangbisamemilikibeberapa
.d

6 baris";
7
w

8 $string3="Diaberkata:\"I'llbeback\"";
9
w

10 $string4="Andatelahberhasilmenghapus
w

11 C:\\xampp\\htdoc";
12
13 $string5="Kalimatiniakanakanpindahke:
14 \nbarisbaru";
15
16 $string6="Variabelakanotomatis
17 ditampilkan:$string1dan$string3";
18
19 echo$string1;echo"<br\>";
20 echo$string2;echo"<br\>";
21 echo$string3;echo"<br\>";
22 echo$string4;echo"<br\>";
echo$string5;echo"<br\>";
echo$string6;
?>

DanhasilkodePHPtersebutadalah:

65
Perhatikanperbedaannyapadahasil$string3,$string5dan$string6.

om
Pada$string3,kitaharusmemblackslashtandapetikduakarenaitumerupakankarakterkhusus
dalamdoublequotedstring.

.c
Pada$string5,tanda\nyangmerupakankarakterkhususuntukbarisbaru,tapikarenakita
om
menampilkannyadibrowser,karakterinitidakakanterlihat,tetapijikakitamenulishasilstringini
kedalamsebuahfiletext,kalimattersebutakanterdiridari2baris.
ilk
ia

Pada$string6,terlihatbahwastringdenganpetikduaakanmemproses
variabel$string1dan$string3sehinggatampilhasilnyadiwebbrowser.Fituriniakansangat
un

bermanfaatjikakitaseringmenampilkanvariabeldidalamsebuahstring.
.d
w

3.PenulisanTipeDataStringDenganHeredoc
w
w

CarapenulisantipedatastringyangketigayaitudenganfiturPHPyangdisebutheredoc.Fiturini
digunakanuntukmembuattipedatastringyangdapatberisibeberapabariskalimat.Dibandingkan
denganmenggunakansinglequotedandoublequote,pembuatanstringdenganheredoctidakterlalu
seringdigunakan.

Agarlebihjelas,berikutadalahcontohpenulisantipedatastringdenganheredoc:

1 <?php
2 $IPK=3.9;
3 $string1=<<<end
4 SayasedangbelajarPHP
5 diduniailkom.com<br/>
6 Kaliinitentangpembahasan
7 mengenai"PHP",<br/>danberharap
8 bisadapatIPK$IPK:)
9 end;
10
11 echo$string1;

66
12 ?>

om
MarikitabahastentangcarapenulisanHeredoc.

Sepertiyangterlihatdaricontohdiatas,fiturHeredocditandaidengantanda<<<untuk

.c
memulaistring,laludiikutidengankarakterpenandaakhirstring.Daricontohtersebutkataend
om
padaawalstringadalahpenandaakhirstring.Andabebasmenggantikataenddengankataatau
karakterlain,sepanjangkatatersebutbisadijamintidakakanmunculdidalamstring.
ilk

Setelahkarakterpenandastring,barispertamasetelahnyaadalahawaldaristring.Stringinidapat
ia

mencakupbeberapabaris,sampaiditemukankarakterpenandaakhisstringyangkitadefinisikandi
un

awal(yaitukataend).Setelahditemukankarakterpenandaakhirstring,makapendefenisianstring
berakhir.
.d
w

Perhatikanjugabahwadidalamkalimatdiatas,sayamenggunakankarakter\ndanvariabel$IPK.
w

SeluruhkarakterinidiprosesolehPHP,sehinggamiripdenganfiturdoublequotedstring.
w

Pentinguntukdiperhatikanbahwasetelahtandapenututupheredoc(didalamcontoh
diatasadalahkataend)dantandatitikkoma,tidakbolehadaspasiataukarakter
apapun.Jikaandamenuliskansepertiberikutini:

end;

PHPakanmengeluarkanerror:Parseerror:syntaxerror,unexpectedendoffile.

4.PenulisanTipeDataStringDenganNowdoc
CarapenulisantipedatakeempatdalamPHPyaitudenganfiturNowdoc.Fiturinihampirsama
denganHeredoc,namundenganpengecualian:karakterkhususdanvariabeltidakakandiproses
olehPHP,ataumiripdengansinglequotedstring.
67
BerikutadalahcontohpenulisantipedatastringmenggunakanmetodeNowdoc:

1 <?php
2 $IPK=3.9;
3 $string1=<<<'selesai'
4 SayasedangbelajarPHP
5 di\nduniailkom.com<br/>
6 Kaliinitentangpembahasan
7 mengenai"PHP",<br/>danberharap
8 bisadapatIPK$IPK:)
9 selesai;
10
11 echo$string1;
12 ?>

om
.c
om
ilk
ia
un

Jikadilihatsekilas,tidakadaperbedaancarapenulisanmetodenowdocdenganheredoc,namun
.d

perhatikankarakterpenandaakhirstring.Kaliinisayamenggunakankarakter
w

selesaisebagaipenandaakhirstring.Danyangmembedakannya
w

denganheredocadalah,nowdocmenambahkansinglequoteduntukkarakterpenandaakhir
w

string.Sayamenulisselesai(dengantandakutipsatu)untukmengawalistring.

Daritampilanyangdihasilkan,nowdocmemprosesstringsamadengansinglequotedstring,dimana
karakterkhususdanvariabeltidakdiprosessamasekali,sehinggadalamtampilanakhirandadapat
melihattanda\ndanvariabel$IPKditulissebagaistring.

DalamtutorialbelajarPHPkaliinikitatelahmembahas4carapenulisandanpendefenisiantipedata
string,yaitudengansinglequoted,doublequoted,heredoc,dannowdoc.Metode
penulisanstringdenganheredocdannowdocmungkintidakakanseringandajumpai.

PHPjugamenyediakanbanyakfiturdanfungsiuntukmanipulasistring,salahsatunyaadalahoperasi
yangbisadilakukandenganstring.KitaakanmembahasnyapadaPengertiandanJenisjenis
OperatorStringdalamPHP.Tetapi,jikaandainginmelanjutkantutorialtentangtipedata,selanjutnya
kitaakanmembahastipedataBooleandalamPHP.

68
w
w
w
.d
un
ia
ilk
om
.c
om

69
PengertianTipeDataBooleanPHP
TipedatabooleanadalahtipedatapalingsederhanadalamPHPdanjugadalambahasa
pemogramanlainnya.Tipedatainihanyamemiliki2nilai,yaitutrue(benar)danfalse(salah).

Tipedatabooleanbiasanyadigunakandalamoperasilogikasepertikondisiif,danperulangan
(looping).Untukpenggunaantipedatabooleanakankitapelajaripadawaktumembahastentang
strukturpemogramanPHP.

CaraPenulisanBooleandalamPHP
Penulisanbooleancukupsederhana,karenahanyamemiliki2nilai,yaknitrueataufalse.
Penulisantrueataufalseinibersifatnoncasesensitif,sehinggabisaditulis
sebagaitrue,TrueatauTRUE.

om
Berikutadalahcontohpenulisantipedataboolean:

1 <?php

.c
2 $benar=true;
om
3 $salah=false;
4
5 echo"benar=$benar,salah=$salah";
6 //hasiloutput:benar=1,salah=
ilk

7 ?>
ia

JikaandamenjalankancontohkodePHPdiatas,variabel$benarakanditampilkandenganangka1,
un

sedangkanvariabel$falseditampilkandenganstringkosong(tanpaoutput).Halinikarenajika
ditampilkanmenggunakanecho,tipedatabooleandipaksabergantidengantipedatastring.(Lebih
.d

lanjuttentangkonversiantartipedataakankitadalamTutorialPHP:CaraMengubahTipeDataPHP.
w
w

KonversiTipeDataLainMenjadiBoolean
w

KarenaPHPadalahlooselytipedlanguage,ataubahasapemogramanyangtidakbertipe,sebuah
variabeldapatdikonversimenjaditipedatalainnya.

Berikutadalahaturantipedatabooleanjikadikonversidaritipedatalainnya:

Integer0,dianggapsebagaifalse.
Float0.0,dianggapsebagaifalse.
Stringkosong()danstring0dianggapsebagaifalse.
Arraytanpaelemen,dianggapsebagaifalse.
Objekdengantanpanilaidanfungsi,dianggapsebagaifalse.
Nilainull,dianggapsebagaifalse.

70
Selain6kondisidiatas,sebuahvariabelakandikonversimenjaditrue.

Berikutadalahcontohvariabeldannilaikonversinyadalamboolean:

1 <?php
2 $x=FALSE; //false
3 $x=""; //false
4 $x=""; //true
5 $x=1; //true
6 $x=2; //true
7 $x="belajar"; //true
8 $x=3.14; //true
9 $x=array(); //false
10 $x=array(12); //true
11 $x="false"; //true
12 ?>

Perhatikanbeberapakonversidiatas,string(stringkosong)dianggapsebagaifalse,
namunstring(stringdengankarakterspasi)adalahtrue.Jugastring0dianggapfalse,namun
stringfalsedianggaptrue.

om
Kesalahandalamkodeprogramseringterjadikarenakonversidaritipedatalainmenjadiboolean,

.c
sehinggasedapatmungkinkitamembuatvariabelbooleandengannilaiyangpastidantidak
om
bargantungkepadaaturankonversibooelandariPHP.
ilk

Dalamtutorialkaliini,kitatelahmembahastentangtipedatabooleanPHPsertahasilbooleandari
ia

konversitipedatalain.Tipedatabooleaniniakanbanyakdigunakandalamoperasilogikasepertiif.
un

Dalamsesitutorialselanjutnya,kitaakanmembahasTipeDataArraydanCaraPenulisanArray
.d

dalamPHP.
w
w
w

71
PengertianTipeDataArray
Array(ataularikdalambahasaindonesia)bukanlahtipedatadasar
sepertiintegeratauboolen,Arrayadalahsebuahtipedatabentukanyangterdiridarikumpulantipe
datalainnya.Menggunakanarrayakanmemudahkandalammembuatkelompokdata,serta
menghematpenulisandanpenggunaanvariabel.

Misalkankitabutuhuntukmenyimpan10namamahasiswa,makakodePHPnyajikatanpa
menggunakanarrayadalahsebagaiberikut:

1 <?php
2 $nama1="Andri";
3 $nama2="Joko";
4 $nama3="Sukma";
5 $nama4="Rina";
6 $nama5="Sari";
7 //...dstsampai$nama10
8 ?>

om
KodePHPsepertidiatastidaksalah,tetapikurangefektifkarenakitamembuat10variabeluntuk10

.c
nama.Bagaimanajikakitabutuh100nama?makaakandibutuhkan100variabel$nama.
om
Pembuatankodeprogramdiatasakanlebihrapijikadituliskedalambentukarray,karenakitahanya
membutuhkan1buahvariabelsajauntukmenampungbanyaknilai.Berikutadalahcontoh
ilk

penggunaanarray:
ia

1 <?php
2 $nama=array(
un

3 1=>"Andri",
4 2=>"Joko",
.d

5 3=>"Sukma",
6 4=>"Rina",
w

7 5=>"Sari",)
8 //...dstsampai10
w

9 ?>
w

CaraPenulisanArraydalamPHP
PHPmendukungbeberapacarapenulisanarray,salahsatunyadenganmenggunakankonstruktor
arrayPHP(arraylanguageconstruct)sebagaiberikut:

1 $nama_variabel=array(
2 key=>value,
3 key2=>value2,
4 key3=>value3,
5 ...
6 )

Komponenarrayterdiridaripasangankunci(key)dannilai(value).Keyadalahpenunjukposisi
dimanavaluedisimpan.PerhatikanjugabahwaPHPmenggunakantandapanah(=>)untuk
memberikannilaikepadakey.
72
Dalammengaksesnilaidariarray,kitamenggunakankombinasi$nama_variabeldannilaikeynya,
denganpenulisansebagaiberikut:

$nama_variabel[key];

BerikutadalahcontohpengaksesanarraydalamPHP:

1 <?php
2 //pembuatanarray
3 $nama=array(
4 1=>"Andri",
5 2=>"Joko",
6 3=>"Sukma",
7 4=>"Rina",
8 5=>"Sari");
9
10 //caraaksesarray
11 echo$nama[1]; //Andri
12 echo"<br/>";
13 echo$nama[2]; //Joko

m
14 echo"<br/>";
15 echo$nama[3]; //Sukma

o
16 ?>

.c
Dalamcontohdiatas,sayamenggunakanangkaintegersebagaikey(1,2,3)
om
danstringsebagaivalue(Andri,Joko,Sukma,).
lk

Selainmendefenisikankeysecaralangsung,PHPjugamemperbolehkanpenulisanarraytanpakey,
ai

dankeyitusecaraotomatisakandiurutkandarinilai0,1,2,dst.
ni

Berikutadalahcontohpendefenisianarraytanpakey:
u

1 <?php
.d

2 //pembuatanarray
w

3 $nama=
4 array("Andri","Joko","Sukma","Rina","Sari");
w

5
6 //pengaksesanarray
w

7 echo$nama[1]; //Joko
8 echo"<br/>";
9 echo$nama[2]; //Sukma
10 echo"<br/>";
11 echo$nama[3]; //Rina
?>

Perhatikanbahwasekarang,indexataukeydariarraydimulaidariangka0,bukan1.
sehingga$nama[1]berisiJoko.namaAndriberadadi$nama[0].

Selainmenggunakanangka,keydalamPHPdapatberisistringatauboolean.Sedangkanuntuk
valuedapatmenyimpanberbagaitipedatasepertiinteger,float,string,boolan,bahkanarraylainnya.

Berikutcontohpenggunaanarraydengankombinasitipedata.

1 <?php
2
73
3 //pembuatanarray
4 $coba=array(
5 2=>"Andri",
6 "dua"=>"2",
7 'tiga'=>3,
8 true=>true,
9 9=>"sembilan",);
10
11 //pengaksesanarray
12 echo$coba[2]; //Andri
13 echo"<br/>";
14 echo$coba["dua"]; //2
15 echo"<br/>";
16 echo$coba['tiga']; //3
17 echo"<br/>";
18 echo$coba[true]; //1(truedikonversi
19 menjadi1)
20 echo"<br/>";
echo$coba[9]; //sembilan
?>

om
Daricontohdiatas,sayamembuatarray$cobadenganmenggunakanberbagaitipedata
untukkeydanvalue,yaitudengantipedatainteger,string,danboolean.Namunjikakeydi

.c
defenisikandengantipedatabooleansepertipadabariske6,makasecaraotomatisPHPakan
mengkonversinyamenjadi1.
om
Update
ilk
ia

UntukPHPversi5.4.xkeatas,PHPmenyediakancarasingkatdalampembuatanarray,
ataudisebutdenganshortsyntaxarray.Berikutcontohpenggunaannya:
un

1 <?php
.d

2 //pembuatanarray
3 $nama=
w

4 ["Andri","Joko","Sukma","Rina","Sari"
w

5
6 //pengaksesanarray
w

7 echo$nama[1]; //Joko
8 echo"<br/>";
9 echo$nama[2]; //Sukma
10 echo"<br/>";
11 echo$nama[3]; //Rina
?>

Perhatikanbahwakitatidakperlumembuatkeywordarray,tapilangsungmembuat
tandakurungsiku.

DalamtutorialkaliinikitatelahmembahascarapembuatanMengenalTipeDataArraydanCara
PenulisanArraydalamPHP.Arraymerupakansebuahtipedatayangsangatbergunadalam
pembuatanprogramnantinyadanPHPmenyediakanbanyakfungsiuntukmendukung
pemrosesanarray,haliniakankitabahasdalampembahasantentangarraydalamtutoriallanjutan.
74
Dalamsesitutorialselanjutnya,kitaakanmembahasoperatoroperatoryangdapatdigunakanuntuk
memproses4tipedasarPHP,danjugaarray.

om
.c
om
ilk
ia
un
.d
w
w
w

75
PengertianOperanddanOperator
Dalambahasapemograman,terdapatistilahoperanddanoperator.Operandadalahnilaiasalyang
digunakandidalamprosesoperasi,sedangkanoperatoradalahinstruksiyangdiberikanuntuk
mendapatkanhasildariprosestersebut.

Contohnya,operasi:5+2.Angka5dan2adalahoperand,sedangkantandatambah(karakter+)
adalahoperator.Beberapaoperatorbisamengubahnilaidarioperandnyasendiri,walaupun
kebanyakanhanyasebagaipenghubungantaroperand.OperatordidalamPHPbanyakmeminjam
contohkarakterdaribahasaCdanPerl.

JenisOperatorBerdasarkanJumlahOperand
Berdasarkanjumlahoperand,operatordapatdibedakanmenjadi3,
yaituOperatorUnary,BinarydanTernary.

om
Operatorunaryadalahoperatoryanghanyamemiliki1operand,contohnyakarakter(tanda

.c
minus).Tandaminusdigunakanmembuatsebuahangkamenjadinegatif,contohnya:5,atau
m
karakter+untukmenegaskannilaipositif,contohnya:+5.
o
Operatorbinaryadalahoperatoryangmemiliki2operand.Operatorjenisiniadalahyang
lk

palingbanyakdigunakan,misalkan52,atau10/3.
ai

OperatorTernaryadalahoperatoryangmemiliki3operand.DidalamPHPhanyadikenal1
ni

operatorternary,yaituoperatorkondisi(?:).Kitaakanmempelajarioperatorinidalamtutorial
selanjutnya.
u
.d
w

UrutanPrioritasOperatordalamPHP
w
w

Samasepertimembuatpersamaandalammatematika,operatordalamPHPjugamemilikiurutan
pemrosesantersendiri.Misalkanterdapatkodeprogramsebagaiberikut:

1 $hasil1=$a+$b/$c$d;
2
3 $hasil2=$aAND$b||$cAND$d;

ProgramtersebutakandieksekusiolehPHPdenganmelihaturutanprioritasnya.Urutan
prioritasinimenetapkanseberapadekatoperatordengankeduaoperandnya.Sebagaicontoh,
2+3*5hasilnyaadalah17,bukan25.Halinikarenaoperatorperkalian(*)memilikiprioritaslebih
tinggidaripadaoperatorpenambahan(+).

Namunurutanprioritasinidapatdipaksadenganmenggunakantandakurung,jikaandaingin
menjumlahkan2dan3terlebihdahulu,makaoperasisebelumnyabisaditulismenjadi(2+3)*5yang
hasilnyaadalah25.

BerikutadalahtabelurutanprioritasoperatordalamPHP.Operatorpalingataslebih
76
diprioritaskandaripadaoperatordibawahnya,danoperatoryangberadadalambarisyangsama
memilikiurutanprioritasyangsama.

om
.c
om
ilk
ia
un
.d
w
w
w

Daritabeldiatas,terdapatbeberapaoperatoryangberadadalam1baris.BagaimanaPHP
memprosesoperatoroperatoryangmemilikiurutanprioritassama?DidalamPHP,operatortersebut
akandiprosesberdasarkankolomarahproses.

Kolomarahproses(ataudalammanualPHPdisebutdenganAssociativity)digunakanuntukmelihat
bagaimanaarahprosesoperatordijalankan.

Misalkanoperatorkurang(),didalamtabeldapatdilihatbahwaoperatorkurang()memilikiarah
proseskiri,sehinggaoperasi531olehPHPdiprosesdarikirikekanan.531diproses
menjadi(53)1,danhasilnyaadalah1.

Namundidalamtabel,operator=memilikiarahproseskanan,sehingga$a=$b=$c,akan
diprosesdarikananterlebihdahulu,menjadi$a=($b=$c).

Jikaarahprosestersebutnonarah,berartioperatoritutidakbisadigunakansecaraberdampingan.
77
Misalkan4<6>2,tidakdapatdiproses olehPHP,namun1<=1==1bisadiproseskarena
operator==memilikiurutanprioritaslebihrendahdaripada<=.

Selainuntukmemaksakanurutanprioritas,penggunaantandakurungjugaakanmemudahkan
pembacaanprogram,bahkanketikatidakdiperlukan.Misalkan$aAND$bOR$c,akanlebihmudah
dimengertiketikaditulismenjadi($aAND$b)OR$c,walaupunsebenarnyaoperatorANDmemiliki
urutanprioritaslebihtinggidaripadaOR.

DidalamtutorialPHPselanjutnya,kitaakanmembahasoperatoroperatordidalamtabeldiatassecara
satupersatubesertacontohpenggunaannya.

om
.c
om
ilk
ia
un
.d
w
w
w

78
PengertianFungsivar_dump()
KarenasifatvariabeldalamPHPyangtidakbertipe(LooselyTypedLanguage),dalampembuatan
programPHPsebuahtipevariabeldapatberubahmenjaditipelainnya.Perubahaninibergantung
operatoryangdigunakan.Sepertiyangkitalihatpadasaatpembahasantentangtipedataboolean,
tipedatastringaku,dapatmenjaditipedatabooleanTRUE.

Perhatikancontohkodeberikut:

1 <?php
2 $a=5;$b=8;$c=4.5;
3
4 $hasil1=$a+$b;
5 $hasil2=$a+$c;
6 $hasil3=$a.$b;
7
8 echo"\$hasil1:$hasil1<br/>"; //13
9 echo"\$hasil2:$hasil2<br/>"; //9.5

om
10 echo"\$hasil3:$hasil3<br/>"; //"58"
11 ?>

.c
Daricontohkodediatas,variabel$adan$bbertipeinteger,danvariabel$cbertipefloat.Namun
variabel$hasil1,$hasil2dan$hasil3akanbertipeinteger,float,danstringsecaraberurutan.
om
SalahsatuaturandidalamPHP,jikaoperatorpenyambunganstring(karaktertitik)digunakanuntuk
ilk

tipedatainteger,secaraotomatisPHPakanmengkonversinyamenjadistring,sehingga:
ia

5(integer)+8(integer)=13(integer)
5(integer).8(integer)=58(string)
un

ProseskonversiinidilakukansecaraotomatisolehPHP,sehinggakitamemerlukansebuahfungsi
.d

untukmenyetahuisecaralebihdetailtipedatadannilaisebuahvariabel.UntukkeperluaninilahPHP
w

menyediakanfungsivar_dump().
w
w

CaraPenulisanFungsivar_dump()
Untukmemastikantipedatadarisebuahvariabel,PHPmenyediakanfungsiyangsangatberguna,
terutamauntukprosespengujiandanpencariankesalahan(debugging),yaknifungsivar_dump.

Fungsivar_dumpmembutuhkaninputanvariabelyangakandiperiksa.Berikutcontohpenggunaan
fungsivar_dump:

1 <?php
2 $a=5;$b=8;$c=4.5;
3
4 $hasil1=$a+$b;
5 $hasil2=$a+$c;
6 $hasil3=$a.$b;
7
8 echo"\$hasil1:";var_dump($hasil1);
9 //int(13)
79
10 echo"<br\>"; //
11 echo"\$hasil2:";var_dump($hasil2);
12 //float(9.5)
13 echo"<br\>";
echo"\$hasil3:";var_dump($hasil3);
//string(2)"58"
?>

DaritampilanhasilkodePHPtersebut,fungsivar_dump()selainmenampilkanhasilvariabel,juga
memperlihatkanjenistipedarivariabeltersebut.Fituriniakansangatbergunadalamproses
pembuatankodeprogramPHPyanglebihrumituntukmenghindarikesalahan.

Perhatikanpulahasildarivar_dump($hasil3),hasilfungsivar_dumpadalahstring(2)58.Angka2
disinimenjelaskanpanjangdarivariabelstringtersebut.

Didalampembahasantentangoperator,sayaakanseringmenggunakanfungsivar_dumpini
nantinya.UntukmemulaipembahasantentangoperatordalamPHP,sayaakanmemulai

om
denganjenisjenisoperatoraritmatikadalamPHP.

.c
om
ilk
ia
un
.d
w
w
w

80
PengertianOperatorAritmatikadalamPHP
OperatorAritmatikaadalahoperatormatematisyangterdiridarioperatorpenambahan,
pengurangan,perkalian,pembagian,modulus,plus,danminus.

JenisOperatorAritmatikadalamPHP
DidalamPHPterdapat7jenisoperatoraritmatika,berikutketujuhoperatortersebut:

om
.c
om
ilk
ia
un

KebanyakanoperatoraritmatikadalamPHPbertipebinaryyaknimembutuhkan2operand,kecuali
.d

operatorminus()danplus(+)yangmerupakanoperatortipeunary(hanyamembutuhkan1
w

operand).
w
w

Darike7operatoraritmatikadalamPHPtersebut,operatormodulus($a%$b)mungkinterdengar
baru.Operatorinimenghasilkansisahasilbagidarihasilpembagian.Misalkan10%3,hasilnya
adalah1.Biasanyaoperatormodulusinidigunakanbersamasamadenganoperatorpembagian(/).

CaraPenggunaanOperatorAritmatikadidalamPHP
PenggunakanoperatoraritmatikadidalamPHPrelatifmudah,karenakitatelahterbiasadengan
operatorini.

Berikutadalahcontohkodeprogram,carapenggunaanoperatoraritmatikadalamPHP:

1 <?php
2 $hasil1=3;
3 $hasil2=3+5;
4 $hasil3=84.5;
5 $hasil4=2*5;
81
6 $hasil5=3+8/53;
7 $hasil6=10%4;
8
9 echo"\$hasil1:";var_dump($hasil1); //
10 $hasil1:int(3)
11 echo"<br\>";
12 echo"\$hasil2:";var_dump($hasil2); //
13 $hasil2:int(8)
14 echo"<br\>";
15 echo"\$hasil3:";var_dump($hasil3); //
16 $hasil3:float(3.5)
17 echo"<br\>";
18 echo"\$hasil4:";var_dump($hasil4); //
19 $hasil4:int(10)
20 echo"<br\>";
echo"\$hasil5:";var_dump($hasil5); //
$hasil5:float(1.6)
echo"<br\>";
echo"\$hasil6:";var_dump($hasil6); //
$hasil6:int(2)
?>

om
Padakodeprogramdiatas,sayamenggunakanfungsivar_dump()untukmenampilkanhasil
perhitungan,sehinggakitabisamelihattipedatadarimasingmasingvariabel.

.c
om
Darihasilvar_dump(),terlihatbahwavariabel$hasil3dan$hasil5bertipefloat.Halinidikarenakan
perhitunganaritmatikapadabariske4danke6menghasilkanangkadesimal,sehinggasecara
ilk

otomatisvariabeltersebuttidakdapatditampungsebagaiinteger,melainkanharusfloat.
ia

Namunjikahasiloperasimatematistersebutmenghasilkanbilanganbulat,PHPakanmenyimpannya
un

sebagaitipedataint(integer),sepertivariabel$hasil1,$hasil2,$hasil4dan$hasil6.

Padaperhitunganbariske6yaitupersamaan$hasil5=3+8/53,hasilnyaadalah1.6.Halinikarena
.d

operatorpembagianmemilikiprioritaslebihtinggidaripadaoperatortambahdankurang.
w

Operasi3+8/53dikerjakanolehPHPsebagai(3+(8/5))3.Namununtukhalini,disarankan
w

menggunakantandakurungsecaratertulisagarmemudahkandalammembacaalurprogram,dari
w

padabergantungkepadaaturanprioritasoperatorPHP.

Namunjikatidakditegaskandenganmenggunakantandakurung,urutanprioritasoperator
matematisdalamPHPmengikutiaturantabelyangkitabahaspadatutorialPengertianOperand,
OperatordanUrutanOperatordalamPHP

ItulahoperatoroperatordasararitmatikadalamPHP.Untukkeperluanyanglebihspesifikseperti
pemangkatan,logaritma,exponensialdansinus,PHPmenyediakanfungsimatematika
(MathematicalFunctions)yangakankitabahaspadatutorialPHPlanjutan.

82
PengertiandanJenisOperatorStringdalamPHP
DalamPHP,hanyaterdapat1jenisoperatorString,yaknioperasipenyambungan(concatenation)
string.Operatorinimenggunakankaraktertitik(.).

Operatorpenyambunganstringinimembutuhkan2inputanyangbertipedatastring.Hasildari
operatoriniadalahsebuahstringyangterdiridarisambungankeduastringtersebut.

CaraPenggunaanOperatorStringdidalamPHP
BerikutadalahcontohkodeprogramcarapenggunaanoperatorstringdalamPHP:

1 <?php
2 $a="Hello";
3 $hasil=$a."World!";
4 echo$hasil; //HelloWorld!

om
5 echo"<br/>";
6
7 $a="belajar";

.c
8 $b="PHP";
9 $c="diDuniailkom.com";
10 $hasil="Sayasedang".$a.$b.$c;
m
11 echo$hasil; //SayasedangbelajarPHP
o
12 diDuniailkom.com
lk

?>
ai

Padakodeprogramdiatas,sayamenyambungbeberapastringsederhanamenggunakanoperator
ni

concatenation(tanda.).
u
.d

CaraAlternatif:Penyambungstringdengankurung
w

kurawal{}
w
w

DidalamPHP,tandakurungkurawal(karakter{dan})untukvariabelbisaberfungsi
sebagaipenyambungstring.Contohkodeprogramdiatasdapatjugaditulismenjadi:

1 <?php
2 $a="Hello";
3 $hasil="{$a}World!";
4 echo$hasil; //HelloWorld!
5 echo"<br/>";
6
7 $a="belajar";
8 $b="PHP";
9 $c="diDuniailkom.com";
10 $hasil="Sayasedang{$a}{$b}{$c}";
11 echo$hasil; //SayasedangbelajarPHP
12 diDuniailkom.com
?>

Contohdiatasmemanfaatkansifatpendefenisianstringmenggunakantandakutipdua(double

83
quote).SepertiyangtelahkitabahaspadatutorialMengenalTipeDataStringdanCaraPenulisan
StringdalamPHP,jikapendefenisianstringmenggunakandoublequote(karakter),makasetiap
variabelakandiprosesolehPHP.

Namunkitatidakbisamenulis:

$hasil="Sayasedang$a$b$c"; //akan
menghasilkanerror

KarenayangakandiprosesPHPadalah1variabelsaja,yakni$a$b$c.sehinggakitaperlu
menambahkantandakurungkurawal(karakter{dan})untukmemisahkanketigastringmenjadi{$a}
{$b}{$c}.

BeberapasitusreferensiPHP,menyebutkanbahwacarainilebihcepatuntukmenyambungstring
daripadamenggunakanoperatortitik(.),Namunandatidakakanmelihatperbedaanyauntukkode
programsederhana.

om
Dalamtutorialinikitatelahmembahastentangoperatorpenyambungan

.c
(concatenation)stringdalamPHP.NamunPHPjugamenyediakanbanyakfungsi
pemrosesanstringuntukkeperluanlebihlanjut,sepertimemecahstringmenjadiarray,memotong
om
string,dll.Kitaakanmembahasfungsistringinipadalainkesempatan.
ilk
ia
un
.d
w
w
w

84
PengertianOperatorLogikadalamPHP
OperatorLogikaadalahoperatoryangdigunakanuntukmembandingkan2kondisilogika,yaitu
logikabenar(TRUE)danlogikasalah(FALSE).OperatorlogikaseringdigunakanuntukkodisiIF,
atauuntukkeluardariprosesperulangan(looping).

Jenisoperanddalamoperatorlogikainiadalahvariabeldengantipeboolean.Namun
jikaoperandbukanboolean,akandikonversimenjadibooleanolehPHP(aturankonversiinitelah
kitabahaspadatutorialtentangtipedatabooleanPHP).

JenisjenisOperatorLogikadalamPHP
JenisjenisoperatorlogikadalamPHPdapatdilihatdaritabelberikut:

om
.c
om
ilk
ia
un
.d
w

PerbedaandarioperatorANDdengan&&,danORdengan||terkaitdengancarapenulisandan
w

aturankekuatanoperator.Operator&&dan||memilikikekuatanlebihtinggidari
w

padaANDdanOR,sehinggabarisperintah:$aAND$b||$c,akandieksekusiolehPHPmenjadi$a
AND($b||$c).

Daritabeldiatas,sayahanyamemberikanhasiluntukkondisiTRUE,makaselainkondisitersebut,
hasilnyaadalahFALSE.

CaraPenggunaanOperatorLogikadidalamPHP
Berikutadalahcontohkodeprogram,carapenggunaanoperatorlogikadalamPHP:

1 <?php
2 $hasil1=trueandfalse;
3 echo'$hasil1=';
4 echovar_dump($hasil1)."<br/>"; //
5 $hasil1=bool(true)
6
85
7 $hasil2=(trueandfalse);
8 echo'$hasil2=';
9 echovar_dump($hasil2)."<br/>"; //
10 $hasil2=bool(false)
11
12 $hasil3=(truexorfalse);
13 echo'$hasil3=';
14 echovar_dump($hasil3)."<br/>"; //
15 $hasil3=bool(true)
16
17 $hasil4=(falseortrue&&false);
18 echo'$hasil4=';
19 echovar_dump($hasil4)."<br/>"; //
20 $hasil4=bool(false)
21
22 $a=true;
23 $b=false;
$hasil5=($aand$b||$aorb);
echo'$hasil5=';
echovar_dump($hasil5); //$hasil5=
bool(true)

om
?>

Sayaakanmembahaskodeprogramdiatas:

.c
Padabaris2,operasilogikayangdijalankanadalah$hasil1=trueandfalse,yang
om
harusnya$hasil1akanbernilaifalse(berdasarkanprinsipoperatorand:jikasalahsatusajaadayang
false,makahasilnyaadalahfalse)
ilk

Namunsepertiyangterlihatdalamtampilansaatprogramdijalankan,variabel$hasil1bernilaitrue!.
ia

Apayangsebenarnyaterjadi?Halinikembalikepadaprinsipurutanprioritasoperator.
un

Jikaandaperhatikantabelurutanoperatorpadatutorial..operatorassigment(pendefenisianvariabel)
.d

yaitumenggunakantandasamadengan(=)memilikipriotitaslebihtinggidaripadaoperator
w

logikaand.Sehinggayangsebenarnyadiprosesadalah($hasil1=true)andfalse,
w

sehingga$hasil1akanbernilaitrue.
w

Kesalahanpemogramansepertiiniakansulitdideteksi,sehinggaandadisarankanmenggunakan
tandakurunguntukmenegaskanurutanprogram.

Padabariske6,untukvariabel$hasil2sayamengulangioperasiyangsamadenganbaris2,namun
kaliinidenganmenggunakantandakurunguntukmemberitahukankepadaPHPbahwaoperasi
logikalahyangharusdijalankanpertamakali,barusetelahituprosesassigmentyangkaliiniberjalan
sebagaimanaharusnya(trueandfalsemenghasilkanfalse).Danvariabel$hasil2bernilaifalse.

Padabariske10,variabel$hasil3bernilaitrue,karenaoperatorxorakanmenghasilkantrueapabila
salahsatuoperandbernilaitrue.

Untukbariske14,$hasil4=(falseortrue&&false),urutanprosesoperasidimulaiterlebihdahulu
padaoperator&&karenamemilikiurutanprioritaslebihtinggidaripadaoperatoror,sehinggayag
diprosesolehPHPadalah(falseor(true&&false)),danmenghasilkannilaifalse.

86
Padacontohterakhirbariske20,operator||akandiprosesterlebihdahulu,sehinggapersamaanya
menjadi$hasil5=($aand($b||$a)orb).

Dalammembuatoperasilogikaini,sedapatmungkinuntukmengujinyaterlebihdahulu,karena
kesalahanprogrampadalogikaakansulitterdeteksi.

PengertianPrinsipShortCircuitdalamoperasiLogika
PHP
PHPmenjalankanoperasilogikadenganprinsipshortcircuit,yaitujikadenganmemeriksasatu
perintahsajasudahdidapatihasillogikanya,makaperintahlaintidakakandijalankan.Contohnya:

$hasil=$aAND$bAND$cAND$d;

Jikapadasaatprogramdijalankan$asudahbernilaiFALSE,makavariabel$b,$cdan$dtidakakan

om
diperiksalagi,karenaapapunnilaivariabeltersebut,hasilnyaakantetapFALSE.

Haliniakanbergunauntukkasuskasustertentu,seperticontohberikut:

1 <?php
.c
om
2 $result=fopen($filename)orexit();
3 ?>
ilk

Fungsiexit()dalamkodePHPtersebut(yangakanmembuatprogramPHPberhentidiproses)tidak
ia

akandijalankanselamafopen($filename)bernilaitrue.Fungsishortcircuitiniseringdigunakan
dalamcontohcontohaplikasiPHP.
un
.d

DalamtutorialinikitatelahmempelajarioperatorlogikadalamPHP,untukselanjutnyakitaakan
w

membahasoperatorperbandingan.
w
w

87
PengertianOperatorPerbandingandalamPHP
Sesuaidengannamanya,operatorperbandinganmembandingkannilaidari2operand.Hasilnya
selalusalahsatudariTRUEatauFALSE.HasilperbandinganakanbernilaiTRUEjikakondisi
perbandingantersebutbenar,atauFALSEjikakondisinyasalah.

Operanduntukoperatorperbandinganinibisaberupatipedataangka(integerataufloat),maupun
bertipestring.Operatorperbandinganakanmemeriksanilaidan(untukbeberapaoperator)jugatipe
datadarioperand.

JenisjenisOperatorPerbandingandalamPHP
JenisjenisdarioperatorperbandingandalamPHPdapatdilihatdaritabeldibawahini:

om
.c
om
ilk
ia
un
.d
w

Dikarenakanoperasiperbandingandapatmemilikioperanberupaangkadanstring,PHPmemiliki
aturansebagaiberikut:
w
w

88
Daritabeldiatasdapatdilihatbahwaselainmembandingkanangkadenganangka,PHPjuga
membolehkanperbandinganangkadenganstring,array,bahkanobjek.Namundalamprakteknya
kitaakanseringmembandingkanangka.

CaraPenggunaanOperatorPerbandingandidalam
PHP
BerikutadalahbeberapacontohpenggunaanoperatorperbandingandalamPHP:

1 <?php
2 echo"1.12<14=";var_dump(12<14); //
3 bool(true)
4 echo"<br/>";
5
6 echo"2.14<14=";var_dump(14<14); //
7 bool(false)
8 echo"<br/>";

om
9
10 echo"3.14<=14=";var_dump(14<=14);
11 //bool(true)

.c
12 echo"<br/>";
13
om
14 echo"4.10<>'10'=";
15 var_dump(10<>'10'); //bool(false)
16 echo"<br/>";
ilk

17
18 echo"5.10=='10'=";
ia

19 var_dump(10=='10'); //bool(true)
20 echo"<br/>";
un

21
22 echo"6.10==='10'=";
.d

23 var_dump(10==='10'); //bool(false)
24 echo"<br/>";
w

25
w

echo"7.'150'=='1.5e2'=";
var_dump('150'=='1.5e2'); //bool(true)
w

echo"<br/>";

echo"8.'duniailkom'==0=";
var_dump('duniailkom'==0); //bool(true)
echo"<br/>";
?>

89
om
DalamcontohkodePHPdiatas,sayamenggunakanfungsivar_dump()untukmelihathasildari
perbandingan.Contoh1sampai3merupakanoperasiperbandinganaritmatikabiasa.

.c
Padacontohke4,10<>10=FALSE,karenaPHPmenganggapkeduaoperandadalahsama,
om
sehinggajikadiberikanoperatortidaksamadengan(<>),makahasilnyaFALSE.Perhatikanbahwa
tipedatakeduaangkaberbeda,sayamenambahkantandapetikuntukmembuahstring10,namun
ilk

PHPmengkonversinyamenjadiinteger10ketikamembandingkan(sesuaiaturantabeldiatas).
ia

Padacontohke5,10==10=TRUE,karenaalasanyangsamadenganpenjelasancontohke4.
un

String10dikonversiterlebihdahulumenjadiangka,laludibandingkan,sehinggahasilnya
menjadiTRUE.
.d

Untukcontohke6,10===10=FALSE,karenaoperator===selainmembandingkannilai,juga
w

membandingkantipedatadariopearand,sehinggastring10dianggaptidaksama
w

denganinteger10.Haliniberbedadengancontohke5.
w

Untukcontohke7,150==1.5e2=TRUE,karenaseluruhstringyangberupaangkadikonversi
menjadiangkaterlebihdahulu,dan1.5e2adalahpenulisanscientificdari1,5x10^2,yanghasilnya
adalah150.Namunsamaseperticontohke6,jikakitamenggantioperator==dengan===,maka
hasilnyaakanFALSE.

Padacontohterakhir,no8.Sayamembandingkanstringdenganangka,sehinggastring
duniailkomdikonversimenjadiintegerbernilai0,danbarudisamakandenganoperankedua,yakni
angka0.Karena0==0,makahasilnya=TRUE.

OperatorperbandinganiniseringdigunakanuntukkondisiIF,misalkanjika$nama_useradadi
dalamdatabase,makajalankankodeprogram.Lebihlanjuttentangpenggunaanoperator
perbandingan,akankitabahaspadatutoriallanjutan.

90
PengertianOperatorIncrementdanDecrementPHP
OperatorIncrementdanDecrementadalahpenyebutanuntukoperasisepert$a++,dan$a.Jika
andatelahmempelajaribahasapemogramanlain,operasiincrementdandecrementinisering
digunakandalamperulangan(looping).

Incrementdigunakanuntukmenambahvariabelsebanyak1angka,
sedangkandecrementdigunakanuntukmengurangivariabelsebanyak1angka.Penulisannya
menggunakantandatambah2kaliuntukincrement,dantandatambah2kaliuntukdecrement.
Penempatantandatambahataukuranginibolehdiwal,ataudiakhirvariabel,namunkeduanya
memilikiperbedaan,sehinggaterdapat4jenisincrementdandecrementdalamPHP.

JenisOperatorIncrementdanDecrementdalamPHP
Berikutadalahtabel4jenisoperatorincrementdandecrementdalamPHP:

om
.c
om
ilk
ia
un

Daritabeldiatasterlihatbahwaterdapat2jenisincrement,yaituPreincrement,danPost
Increment,dan2jenisdecrement,yaituPredecrementdanPostdecrement.Perbedaan
.d

keduanyaterletakpadaposisimanatandatambahataukurangdiletakkan.
w
w

CaraPenggunaanOperatorIncrementdanDecrement
w

Untukmemahamicarapenggunaanoperatorincrementdandecrement,berikutcontohkode
programPHP:

1 <?php
2 echo"<h3>Postincrement</h3>";
3 $a=5;
4 echo"\$a=$a<br/>";
5 echo"\$aakanbernilai5:".$a++."
6 (\$a++)<br/>";
7 echo"\$aakanbernilai6:".$a."<br
8 />";
9
10 echo"<h3>Preincrement</h3>";
11 $a=5;
12 echo"\$a=$a<br/>";
13 echo"\$aakanbernilai6:".++$a."(
14 \$a)<br/>";
15 echo"\$aakanbernilai6:".$a."<br
91
16 />";
17
18 echo"<h3>Postdecrement</h3>";
19 $a=5;
20 echo"\$a=$a<br/>";
21 echo"\$aakanbernilai5:".$a."
22 (\$a)<br/>";
23 echo"\$aakanbernilai4:".$a."<br
24 />";
25
echo"<h3>Predecrement</h3>";
$a=5;
echo"\$a=$a<br/>";
echo"\$aakanbernilai4:".$a."(
\$a)<br/>";
echo"\$aakanbernilai4:".$a."<br
/>";
?>

Contohkodeprogramdiatasterlihatagakrumit,namunsebagianbesarhanyalahpengaturanformat
agarhasilnyatampilrapisepertiberikutini:

om
.c
om
ilk
ia
un
.d
w
w
w

92
TerlihatbahwaPostincrement($a++),akanmemberikanhasilnyadulu,barumenambahkannilai
variabel$asebanyak1angka,namundenganPreincrement,$aakanditambahkan1angka,baru
nilainyaditampilkan.BegitujugahalnyadenganoperasiPostdecrementdanPredecrement.

DalamtutorialPHPkaliinikitatelahmembahastentangoperatorIncrementdanDecrementdalam
PHPdanperbedaanPostIncrementdanPreIncrement.Memahamiperbedaaniniakan
memudahkankitadalammenulisdanmenghindaripenulisankodeprogramyangtidakdiinginkan.

om
.c
om
ilk
ia
un
.d
w
w
w

93
PengertianOperatorAssignmentdalamPHP
Operatorassignmentadalahoperatoruntukmenambahkan,ataumemasukkansebuahnilai
kedalamvariabel.PHPmemiliki3jenisoperatorassigment,dankitatelahmenggunakan2
diantaranya,yaitutanda=untukmengdefenisikanvariabel,dantanda=>untukmengisinilai
dariarray.

JenisjenisOperatorAssigmentdalamPHP
PHPmengenal3jenisoperatorassigment,yaituAssigmentdenganNilai(Assignmentby
Value),AssigmentArray,danAssigmentdenganReferensi(AssignmentbyReference).

PengertianOperatorAssigmentdenganNilai(Assignmentby
Value)

om
AssigmentdenganNilaiataudalamistilahpemogramandikenaldenganAssignmentbyValue,
adalahprosespemberiannilaikedalamsebuahvariabeldenganmengcopynilaiatauvaluedari
variabellain.
.c
om
PHPmenggunakantandasamadengan(=)untukAssignmentbyValue.Secaratidaksadar,kita
ilk

telahbanyakmenggunakanoperatorinidalamberbagaicontohpadatutorialsebelumnya.Padasaat
menggunakanoperator=,PHPmengcopynilai(atauvalue),darisisikananoperatorkesisikiri.
ia
un

OperatorAssignmentbyValue(danjugaoperatorassigmentlainnya)memilikiarahproses
kanan(dapatdilihatdalamtabelurutanprosespadaTutorialPHP:PengertianOperand,Operatordan
.d

UrutanOperatordalamPHP)sehinggaprosespemberiannilaikepadasebuahvariabeldimulai
w

darikanan,seperticontohberikut:
w

1 <?php
w

2 $a=20;
3 $b=15;
4 $c=5;
5
6 echo"\$a=$a,\$b=$b,\$c=$c";
7 echo"<br/>";
8 //hasilproses:$a=20,$b=15,$c=5
9
10 $a=$b=$c+5;
11 echo"\$a=$a,\$b=$b,\$c=$c";
12 //hasilproses:$a=10,$b=10,$c=5
13 ?>

PadacontohkodePHPdiatas,sayamendefenisikan3variabel:$a,$b,dan$cdengan
operatorassigmentbyvalue.Perhatikanpadabaristerakhir,dimanasayamenuliskankode$a=$b
=$c+5,yangurutanpemrosesannyadimulaidarikanankekiri,sehinggayangdiprosesolehPHP
menjadi:$a=($b=($c+5)).

94
PengertianOperatorAssigmentArray
OperatorAssigmentarrayadalahoperatorassigmentuntukmenginputnilaikedalamarray.Operator
inimenggunakantandapanah(=>).Kitatelahmembahascarapembuatan,danpenggunaanoperator
inipadatutorialMengenalTipeDataArraydanCaraPenulisanArraydalamPHP.

PengertianAssigmentdenganReferensi(Assignmentby
Reference)
Assigmentdenganreferensiataudalamistilahprogrammingnya:AssignmentbyReference,
adalahoperatorassigmentkhususyangdigunakanuntukmencopynilaireferensidari
sebuahvariabel.

Pengalamansaya,assigmentdenganreferensiiniakanjarangdigunakan,tetapitetap
pentinguntukdiketahuibahwaPHPmenyediakanfiturini.

om
PerhatikancontohkodePHPberikutini:

.c
1 <?php
om
2 $a=20;
3 $b=$a;
4
5 echo"\$a=$a,\$b=$b";
ilk

6 echo"<br/>";
7 //hasilproses:$a=20,$b=20
ia

8
un

9 $a=$a+5;
10 echo"\$a=$a,\$b=$b";
11 echo"<br/>";
.d

12 //hasilproses:$a=25,$b=20
13
w

14 $b=$b+10;
w

15 echo"\$a=$a,\$b=$b";
16 //hasilproses:$a=25,$b=30
w

17 ?>

Dalamkodeprogramdiatas,sayamembuat2buahvariabel,yaitu$adan$b.Variabel$asayainput
dengannilai20,sedangkanvariabel$bmencopynilaidarivariabel$a.Selanjutnyasayatampilkan
keduavariabeltersebutmenggunakanperintahecho.

Padabariske9sayamenambahkannilaivariabel$adengan5,lalumenampilkanhasilkeduavariabel
tersebut.Selanjutnyapadabariske14sayamenambahkan$bdengan10,lalumenampilkanhasilnya

Katakuncidisiniadalah,variabel$bhanyamencopynilaiyangadapadavariabel$a,sehinggakedua
variabelmemikinilaisendirisendiridanterpisah,sepertiyangterlihatdarihasilecho.

Bagaimanajikayangsayainginkanadalah:karenavariabel$a=$b,makaketikasayamerubahnilai
salahsatuvariabel,nilaipadavariabelyanglainjugaikutberubah.Fiturinilahyangbisadidapatkan
denganAssignmentbyReference.

95
AssignmentbyReferencedalamPHPmenggunakanoperator=&.

PerhatikancontohkodePHPberikutyangsamapersisdengancontohsebelumnya,namunsaya
menggantibaris$b=$a,menjadi$b=&$a:

1 <?php
2 $a=20;
3 $b=&$a;
4
5 echo"\$a=$a,\$b=$b";
6 echo"<br/>";
7 //hasilproses:$a=20,$b=20
8
9 $a=$a+5;
10 echo"\$a=$a,\$b=$b";
11 echo"<br/>";
12 //hasilproses:$a=25,$b=25
13
14 $b=$b+10;
15 echo"\$a=$a,\$b=$b";

om
16 //hasilproses:$a=35,$b=35
17 ?>

.c
Sepertiyangdapatdilihat,bahwasekarangkeduavariabel($adan$b),seolaholahsalingterikat,
sehinggaketikasebuahvariabeldiubahnilainya,variabelyanglainjugaikutberubah.
om
ilk

PerbedaanAssigmentByValue,denganAssigmentBy
ia

Reference
un

Agarlebihjelas,berikutadalahPerbedaanProsesAssigmentByValue,denganAssigmentBy
.d

Reference
w

Didalambahasapemograman(danjugaPHP),sebuahnilaidarivariabeldisimpanpadasebuah
w

alamattertentudimemorykomputer.Alamatmemoryinilahyangdimaksuddenganreferensi.
w

Misalkanvariabel$amemilikinilai20,danberadapadalokasimemory1013,ketikasayamembuat
kodeprogram$b=$a,makanilai(atauvalue)darivariabel$adicopykedalamvariabel$byang
mungkinsajaakanberadapadalokasimemory1014.Sehinggasaatiniada2buahlokasimemori
untukmenampungnilaidarimasingmasingvariabel,$apadalokasi1013dengannilai20,
dan$bpadalokasi1014dengannilai20(dicopydarinilai$a).

Ketikasayamenambahkanvariabel$adenganoperasi$a=$a+5,nilaipadalokasi
memory1013akanmenjadi25,namunkarenamemilikilokasimemoryyangberbeda,nilaipada
variabel$bakantetap20.InilahprosesyangterjadiketikamenggunakanAssigmentByValue.

BagaimanadenganAssigmentByReference?

Ketikavariabel$adengannilai20beradadilokasimemory1013,dansayamenjalankan
perintah$b=&$a,makayangterjadiadalah,alamatlokasimemory(referensi)untuk

96
variabel$bdicopydarinilaivariabel$a,sehinggakeduavariabelmemiliki1alamatmemoryyang
sama,yaitu1013.

Karenaalamatuntukvariabel$adan$bsama,makaketikasalahsatuvariabelmengubahnilaidi
alamat1013,makanilaitersebutakanberubah.Ketikasayamenambahkannilai
variabel$adenganoperasi$a=$a+5,nilaipadalokasimemory1013akanmenjadi25.Danketika
sayatampilkannilaidarivariabel$b,makaPHPakanmencarinilaidilokasimemori1013,dan
menampilkanhasilnya,yakni25.Keduavariabel$adan$bterikatdengan1lokasimemoryyang
sama.

Dalamtutorialinikitatelahmempelajaritentangpengertiandanjenisoperatorassigment,serta
perbedaanantaraassigmentbyvaluedenganassigmentbyreferences.Konsepinibersifat
universaluntukberbagaibahasapemograman(tidakhanyaPHP).

om
.c
om
ilk
ia
un
.d
w
w
w

97
PengertianOperatorBitwisedalamPHP
Operatorbitwise(BitwiseOperators)adalahoperatorkhususyangdisediakanPHPuntukmenanganiproses
logikauntukbilanganbiner.Bilanganbinerataubinaryadalahjenisbilanganyanghanyaterdiridari2jenis
angka,yakni0dan1.Jikaoperandyangdigunakanuntukoperatorinibukanbilanganbiner,maka
akandikonversisecaraotomatisolehPHPmenjadibilanganbiner.

Dalampenerapannya,operatorbitwisetidakterlaluseringdigunakan,kecualiandamembuahprogramyang
langsungberkaitandenganpemrosesanbilanganbiner.

Dalamtutorialinisayaberasumsiandatelahmengetahuicarapenulisan,danperhitunganbilangan
biner,jikabelumsilahkanmempelajarinyaterlebihdahulu.

JenisJenisOperatorBitwisePHP
PHPmendukung6jenisoperatorbitwise.Daftarlengkapnyadapatdilihatpadatabeldibawahini:

om
.c
om
ilk
ia
un
.d
w

CaraPenggunaanOperatorBitwisedalamPHP
w

Seluruhoperatorbitwisetersebutdiprosesdalambentukbiner.Berikutcontohcarapenggunaan
w

operatorbitwisedalamPHP:

1 <?php
2
3 $a=0b10110101;
4 $b=0b01101100;
5 echo"\$a=10110101=$a";echo"<br/>";
6 echo"\$b=01101100=$b";echo"<br/>";
7 echo"<br/>";
8
9 echo"==HasilBitwise==";echo"<br/>";
10
11 $hasil=$a&$b;
12 echo"1.\$a&\$b=$hasil";echo"<br
13 />";
14
15 $hasil=$a|$b;
16 echo"2.\$a|\$b=$hasil";echo"<br
17 />";
18
19 $hasil=$a^$b;
20 echo"3.\$a^\$b=$hasil";echo"<br

98
21 />";
22
23 echo"4.~\$a=".~$a;echo"<br/>";
24
25 $hasil=$a>>1;
26 echo"5.\$a>>1=$hasil";echo"<br
27 />";

$hasil=$b<<2;
echo"6.\$b<<2=$hasil";echo"<br
/>";
?>

om
.c
om
ilk
ia
un

DalamcontohkodePHPdiatas,sayamendefenisikan2variabelyakni$adan$b,danmemberikannilaiawal
.d

berupaangkabinerkedalamkeduavariabeltersebut(carapenulisanangkabinertelahkitabahaspada
w

tutorialTutorialPHP:MengenalTipeDataIntegerdanCaraPenulisanIntegerdalamPHP)
w

Variabel$aberisiangkabiner:10110101,yangnilaidesimalnyaadalah181,danvariabel$bberisiangka
w

biner:01101100,yangnilaidesimalnyaadalah108.

Padacontoh1,sayamelakukanoperasi&terhadapkeduavariabel.Operasibitwiseandiniakan
memprosesbitperbitdarikeduavariabel,jikakeduabitsamasama1,makahasilnyajuga1,selainkondisi
tersebut,nilaiakhirnyaadalah0.Berikutperhitunganbitwiseand:

$a=10110101
$b=01101100

$a&$b=00100100=36(desimal)

Dandarihasilecho,terlihatbahwahasilnyaadalah36(dalambentukdesimal).

Contohkedua,untukoperasiIatauor,akanbernilai0jikakeduabitvariabelbernilai0,selebihnyanilaibithasil
akandisetmenjadi1.Berikutperhitunganbitwiseor:

$a=10110101
$b=01101100

$a|$b=11111101=253(desimal)
99
Contohketiga,menggunakanoperasi^atauxor,danbithasilakanbernilai1jikasalahsatudarikeduavariabel
bernilai1,namuntidakkeduanya.Berikutperhitunganbitwisexor:

$a=10110101
$b=01101100

$a^$b=11011001=217(desimal)

Contohkeempat,menggunakanoperasi~ataunot,yangakanmembalikkannilaibitsebuahvariabeldari0menjadi
1,dan1menjadinol.Namunperhitunganbitnotinisedikitmembingungkan,karenajikakitahanyamembalikkan
seluruhbitnyasaja,hasilnyatidaksesuaidenganapayangdihitungolehPHP,seperticontohperhitunganberikut:

$a=10110101

~$a=01001010=74(desimal)==>salah???

Darihasilmenjalankanprogram,dapatdilihatbahwa~$a=182,darimanakahangkaini?Haliniterkaitdengancara
PHPmenyimpanangkabinerdengan32bit.PHPmenyimpanbitdalamperhitunganmatematiskomputeryangdi
sebutdenganTwoscomplementPenjelasantentanginidapatandabacalebihlanjut
padahttp://en.wikipedia.org/wiki/Two%27s_complementdanhttp://stackoverflow.com/questions/18754198/confusing

m
phpbitwisenotbehavior

o
Namuncaraperhitungansingkatnyaadalahsebagaiberikut:

$a=00000000000000000000000010110101(32bit)
.c
om

~$a=11111111111111111111111110110101(32bit
negative)
Flip&1=000000000000000000000000101101011
lk

~$a=182(desimal)==>benar
ai

KarenaPHPmemprosesmenggunakan32bit,makakitaharusmengikutkanseluruhbit0yangberadadidepan
ni

angkabinerdengantotal32digit,lalumenegatifkannya.Jikaangkapalingkiriterdapatangka1,makainiadalah
u

instruksikepadaPHPbahwahasilnyaakannegatif,danhasilnegatifdiflip(dinegatifkankembali),laludikurang1,
.d

sehinggamenjadi182dalamdesimal.
w

Contohke5,adalahoperatorShiftrightdimanaPHPakanmenggeservariabel$akekanansebanyak1tempat.
w

Berikutprosesyangterjadi:
w

$a=10110101=181
$a>>1=1011010=90(desimal)

Operatorshiftrightmenggesernilaibinervariabel$akearahkanan,dandigitpalingkananakandihapus.
Operatorshiftrightiniakanmenghasilkannilaiasal/2.Dalamcontoh,hasilnyaadalah180/2=90(dibulatkan).
Setiappenggeseran1tempatkekananakanmembagi2nilaiasal.

Contohke6adalahoperatorShiftLeft,dimanaPHPmenggesernilaivariabel$bsebanyak2digitkekiri.Berikut
prosesyangterjadi:

$b=01101100=108
$b<<2=0110110000=432(desimal)

Ketikahasilpergeserankekanan,digitpalingkiriakandiisidengannilai0.Setiappenggeseran1tempatkekiri
akanmengkali2nilaiasal.

DalamtutorialkaliinikitatelahmempelajarioperatorbitwisedalamPHP.Andatidakakanseringmenggunakan
operatorini.PHPmenyediakanoperatorbitwiseuntukkeperluankhusus.
100
w
w
w
.d
un
ia
ilk
om
.c
om

101
PengertianOperatorGabungan(CombinedOperators)
Operatorgabunganassigmentadalahcarapenulisansingkatoperatordenganmenggunaan
sebuahoperatrorassigmentsecarabersamaandenganoperatorlainnya.DalamPHP,operator
gabunganiniadalahantaraoperatorassigmentdenganoperatorlainseperti
operatoraritmatika,string,bitwise,dll.

Untukmemahamioperatorgabunganassigmentini,perhatikancontohberikut:

1 <?php
2 $a=10;
3 $a=$a+5;
4 $a=$a10;
5 echo"\$a=$a";
6 echo"<br/>";
7
8 //samahasilnyadengankodeberikut:
9

om
10 $b=10;
11 $b+=5; //samadengan$b=$b+5;
12 $b=10; //samadengan$b=$b10;
13 echo"\$b=$b";
14 ?>
.c
om
Padabariske..sayamenggunakanoperatorgabunganuntukmempersingkatpenulisan$b=$b+
5menjadi$b+=5
ilk
ia

JenisjenisOperatorGabungan(CombinedOperators)
un
.d

Operatorgabunganassigmentbisadigunakanhampiruntukseluruhoperatorlainnya,berikuttabel
jenisoperatorgabunganassigmentdalamPHP:
w
w
w

102
Operatorgabunganiniakanmenghematpenulisankodeprogram,namunjikaandanyaman
menggunakankodeyangsedikitpanjangjugatidakmasalah.

DalamtutorialbelajarPHPselanjutnya,kitaakanmembahastentangperubahantipedatadalam
PHP,ataudikenaldenganistilahTypeJugglingdanTypeCastingdalamPHP.

om
.c
om
ilk
ia
un
.d
w
w
w

103
PengertianTypeJugglingdalamPHP
PHPmerupakanbahasapemogramanyangtidakterlaluketatdalamaturantipedata(dimanasebuah
variabeldapatdiisidenganberbagaitipedata).Halinimemberikankemudahanpenulisan,namunjuga
mendatangkanpermasalahantersendiri.TerkadangPHPmengubahtipedatasuatuvariabelmenjadi
tipedatalainnyasecaratidaklangsungtanpakitainstruksikan.

JikaandatelahmengikutitutorialPHPdiduniailkomtentangpembahasantipedatadanoperator,
makabeberapakalikitatelahmembuatkodeprogramyangmemaksasuatutipedataberfungsi
sebagaitipedatalainnya.

Perhatikankodeprogramphpberikut:

1 <?php
2 $a=12;
3 $b="9kucing";
4 echo$a+$b; //21

om
5 ?>

Dalamkodediatas,sayamendefenisikanvariabel$asebagaiinteger(angka)dan

.c
variabel$bsebagaistring.Operasipenambahanseharusnyamembutuhkan2inputanberupaangka,
m
namunsepertiyangterlihatketikaprogramdijalankan,PHPdengansenanghatiakanmenjalankan
o
perintahtersebuttanpamengeluarkanerror.12+9kucingakanmenghasilkannilai21.
lk

Prosesperubahantipedatainidikenaldenganistilahtypejuggling.TypeJugglingdalamPHP
ai

adalahsebuahprosesuntukmenentukanjenistipedatayangcocokdenganoperasisaatitu,dan
ni

PHPakanmenkonversinyasecaralangsung.
u
.d

PHPakanmencobamenebakdanmengubahtipedataagardisesuaikandenganperuntukannya.
Misalkanoperatoraritmatikaseharusnyamembutuhkan2buahinputan(atauoperand)yangbertipe
w

angka(baikberupaintegermaupunfloat).Namunapabilasalahsatuataukeduaoperanditubukan
w

bertipeangka,makaPHPakanmengkonversinyamenjadiangka.
w

Seperticontohprogramdiatas,string9kucingakandikonversimenjadiangka.Danmenghasilkan
angka24(aturanpengkonversianiniakankitabahassesaatlagi).

Sebagaicontohlainnya,perhatikankodePHPberikutini:

1 <?php
2 $a=12;
3 $b="9kucing";
4 echo$aAND$b;
5 ?>

Nilaidarivariabel$adan$bmasihsamadengancontohsayayangpertama,namunkaliinisaya
membuatoperatorlogikaANDsebagaioperasiyangakandiproses.Danjikaandamenjalankan
programdiatas,dibrowserakantampilangka1.Darimanakahangka1iniberasal?

OperatorANDmembutuhkan2inputanbertipeboolean,yakninilaiTRUEatauFALSE.Namun
104
karenasayamenggunakantipeinteger12dantypestring9kucing,makakeduaoperandiniakan
dikonversimenjadiTRUE.KarenaTRUEANDTRUEadalahTRUE,makahasil$aAND$bpada
contohprogramdiatasadalahTRUE.

NamunprosestypejugglingPHPbelumselesai,karenaperintahechomembutuhkaninputan
berupastring,bukannilaibooleanTRUE.DanPHPakanmengkonversi
booleanTRUEmenjadistring1.

PemahamantentangtypejugglingdalamPHPiniakanmembantukitauntukmenghindarierrorkode
programkarenaperubahantipedatayangtidakterdeteksi.

PengertianTypeCastingdalamPHP
JikatypejugglingmerupakanprosesotomatisolehPHP,makaTypeCastingadalahproses
perubahantypedatasecaramanualdenganmenggunaaninstruksididalamkodeprogram.

om
Untukmerubahsebuahtypedata,kitamenggunakanperintahcastingdengancaramembuatnama
tipedatatujuandidalamtandakurungsebelumvariabelyangakandiubah.

.c
om
Perhatikancontohkodeprogramberikut:

1 <?php
ilk

2 $a=12;
3 $b="9kucing";
ia

4 echo$b; //9kucing
5 echo"<br/>";
un

6 echo(integer)$b; //9
7 echo"<br/>";
.d

8 echo(boolean)$b; //1
9 ?>
w

Padabariske9,sayamembuatecho(integer)$b,perintahiniadalahmencastingtipedatayang
w

adadidalamvariabel$b(apapuntipedatanya)menjadiinteger.Danpadabariske9.sayameng
w

castingtipedata$bmenjadiboolean.

JenisjenisperintahcastingyangadadalamPHPadalahsebagaiberikut:

(int),(integer)mengubahtipedatamenjadiinteger
(bool),(boolean)mengubahtipedatamenjadiboolean
(float),(double),(real)mengubahtipedatamenjadifloat
(string)mengubahtipedatamenjadistring
(array)mengubahtipedatamenjadiarray
(object)mengubahtipedatamenjadiobject
(unset)mengubahtipedatamenjadiNULL(PHP5)

105
AturankonversidatadalamPHP
PerubahansebuahtipedatamenjaditipedatalainnyadalamPHPmemilikiaturantersendiri.Berikut
adalahaturankonversitipedatadalamPHP

KonversimenjadiInteger
Jikatipedataasaladalahfloat,makaperubahanmenjadiintegerakanmembuangtanda
desimaldarifloat.Contohnya,3.94akanmenjadiinteger3.
Jikatipedataasaladalahboolean,makanilaiTRUEakanmenjadi1,danFALSEmanjadi0.
Jikatipedataasaladalahstring,makastringakandipotongpadaangkaterakhiryang
ditemukan,mulaidariawalstring.Namunjikadiawalstringtidakterdapatangka,makastring
akandikonversimenjadi0.Contohnya,9Kucingakanmenjadiinteger9,999kucingakan
menjadiinteger999.kucing99akanmenjadi0,14,5kaligajiakanmenjadiinteger14(karena
desimalakandibuangdaristring)

om
Jikatipedataasaladalaharraykosong(tanpadata)makajikadikonversimenjadiintegerakan
menghasilkan0,namunarraydenganisidataminimal1,akandikonversimenjadi1.

Konversimenjadifloat
.c
om
Secaragarisbesar,konversimenjadifloathampirsamadengankonversimenjadiinteger,
ilk

denganperbedaanjikatipeasaladalahstring,makaangkadesimalakandiperhitungkan,
ia

misalnya14,5kaligajiakandikonversimenjadifloat14,5
un

Konversimenjadiboolean
.d

Jikatipedataasaladalahinteger,makaangka0akandikonversimenjadiFALSE,selainitu,
w

akandikonversimenjadiTRUE.Contohnya0>FALSE,1>TRUE,1>TRUE.
w

Jikatipedataasaladalahfloat,makaangka0.0akandikonversimenjadiFALSE,selainitu,
w

akandikonversimenjadiTRUE.Contohnya0.0>FALSE,1,9>TRUE,1,6>TRUE.
Jikatipedataasaladalahstring,makastring(tanpakarakter)akandikonversimenjadi
FALSE,string0(stringdengankarakternol)akandikonversimenjadiFALSE,selainituakan
dikonversimenjadiTRUE.Contohnya:>FALSE,>TRUE(karakterspasi),0>FALSE.
Jikatipedataasaladalaharray,makaarraykosong(tanpadata)akandianggapFALSE,selain
ituarrayakandikonversimenjadiTRUE.

Sebagaipenutup,berikutadalahcontohcontohkonversitipedatadidalamPHP:

1 <!DOCTYPEhtml>
2 <html>
3 <head>
4 <title>BelajarCaraKonversiTipeData
5 PHP</title>
6 </head>
106
7 <body>
8 <?php
9
10 //KonversimenjadiInteger
11 var_dump((int)3.45); //3
12 echo"<br/>";
13 var_dump((int)"3.45"); //3(string
14 3.45)
15 echo"<br/>";
16 var_dump((int)"9Naga"); //9
17 echo"<br/>";
18 var_dump((int)"NagaBonar"); //0
19 echo"<br/>";
20 var_dump((int)"WiroSableng212"); //0
21 echo"<br/>";
22 var_dump((int)FALSE); //0
23 echo"<br/>";
24 var_dump((int)"1FALSE"); //1
25 echo"<br/>";
26 var_dump((int)array()); //0
27 echo"<br/>";

om
28 var_dump((int)array("data")); //1
29 echo"<br/>";
30
31 //KonversimenjadiFloat
32 var_dump((float)3); //3
.c
om
33 echo"<br/>";
34 var_dump((float)"3.45"); //3.45
35 echo"<br/>";
ilk

36 var_dump((float)"9Naga"); //9
37 echo"<br/>";
ia

38 var_dump((float)"NagaBonar"); //0
39 echo"<br/>";
un

40 var_dump((float)"WiroSableng212");
41 //0
42 echo"<br/>";
.d

43 var_dump((float)FALSE); //0
w

44 echo"<br/>";
45 var_dump((float)"1FALSE"); //1
w

46 echo"<br/>";
47 var_dump((float)array()); //0
w

48 echo"<br/>";
49 var_dump((float)array("data")); //1
50 echo"<br/>";
51
52 //KonversimenjadiBoolean
53 var_dump((bool)3); //TRUE
54 echo"<br/>";
55 var_dump((bool)0); //FALSE
56 echo"<br/>";
57 var_dump((bool)1); //TRUE
58 echo"<br/>";
59 var_dump((bool)""); //FALSE
60 echo"<br/>";
61 var_dump((bool)""); //TRUE
62 echo"<br/>";
63 var_dump((bool)"0"); //FALSE
64 echo"<br/>";
65 var_dump((bool)"FALSE"); //TRUE(!)
66 karenastring
67 echo"<br/>";
107
68 var_dump((bool)array()); //FALSE
69 echo"<br/>";
70 var_dump((bool)array("data")); //TRUE
echo"<br/>";
?>
</body>
</html>

Dalamprogramdiatas,sayamembuatbeberapacontohkonversididalamPHP.

AturantentangkonversitipedatadalamPHPini(TypeJugglingdanTypeCasting)menutuptutorial
PHPsesioperator.Untukselanjutnya,kitaakanmempelajaritentangalurlogikaprogramdalamPHP,
ataudikenaldenganStrukturkontroldalamPHP.

om
.c
om
ilk
ia
un
.d
w
w
w

108
PengertianStrukturIFdalamPHP
PengertianStrukturIFdalambahasapemogramanadalahsebuahstrukturlogikauntukmembuat
percabanganalurprogram.Secarasederhananya,denganmenggunakanstrukturIFkitadapat
mengaturapakahsebuahperintahakandijalankanatautidaktergantungkepadakondisinya.

Sebagaicontohkitainginmembuatprogramsederhana,jikanamauseradalahAndi,maka
tampilkankataSelamatDatang,Andi.BerikutadalahpenulisannyadidalamPHP:

1 <?php
2 $nama="Andi";
3
4 if($nama=="Andi")
5 echo"SelamatdatangAndi,di
6 duniailkom...";
?>

Jikaandajalankankodeprogramdiatas,makadiwebbrowserakantampilSelamatdatangAndi,di

m
duniailkom...,namunapabilaandamenggantikodeprogramdiatasmenjadi:

o
1 <?php

.c
2 $nama="Joni";
om
3
4 if($nama=="Andi")
5 echo"SelamatdatangAndi,di
6 duniailkom...";
ilk

?>
ia

Makatidakakanadatampilanapaapadidalamwebbrowser.
un

StrukturlogikaIFsetidaknyamembutuhkan2inputan,yaituekspresilogika(expression)dimana
.d

berisikondisiyangharusdipenuhi,danperintahyangakandijalankan(statement)jikakondisi
w

logikatersebutterpenuhi.
w

BerikutadalahstrukturdasarpenulisanalurlogikaIFdalamPHP:
w

if(expression)
statement

Expressiondalamhaliniadalahkondisiyangharusdipenuhiagarstatementdapatdijalankan.Hasil
dariexpressionharustipeboolean.SelamahasilexpressionbernilaiTRUE,makastatementakan
dijalankan,namunjikanilainyaFALSE,makastatementtidakakandijalankan.

Dalampembuatanprogram,biasanyadigunakanoperasiperbandingansebagaiexpression.Pada
contohkitapertama,expressionkitaadalah$nama==Andi,yangbermaksudbahwajikaisi
variabel$namasamadenganAndimakajalankanperintahecho.

NamunexpressionIFinitidakharusberupaoperasiperbandingan,namunbisaberupavariabel,yang
selamahasilnyaadalahTRUE,makastatementakandijalankan.Perhatikancontohberikutini:

1 <?php
2 if(TRUE)
109
3 echo"SelamatdatangAndi,di
4 duniailkom...";
?>

Jikaandamenjalankanprogramtersebut,kalimatSelamatdatangAndi,diduniailkomakanselalu
tampildiwebbrowser,karenakondisiIFakanselaluterpenuhi.

Hasilexpressionharusbertipeboolean,namundenganprinsipPHPyang
menggunakantypejuggling(dimanasebuahtipedataakandikonversitergantung
situasinya),makaexpressiondalampercabanganIFinibisamenggunakantipedata
selainboolean.Jadiandabisamenulissepertiberikut:

1 <?php
2 if(9)
3 echo"SelamatdatangAndi,di
4 duniailkom...";
?>

m
Perintahechoakandijalankan,karenainteger9,akandikonversimenjadiTRUE.Lebih

o
lanjuttentangkonversitipedatainitelahkitabahaspadaTutorialBelajarPHP:Cara

.c
MengubahTipeDataPHP(TypeJugglingdanTypeCasting)
om
ilk

AturanPenulisanStrukturIFdalamPHP
ia
un

Penulisansederhanadaristrukturifadalahsebagaiberikut:

1 <?php
.d

2 if(expression)
w

3 statement;
4 ?>
w
w

Expressionditulisdidalamtandakurung,dantidakdiikutidengantitikkoma().

Apabilastatementyangingindijalankanterdiridari2barisataulebih,kitaharusmemberikantanda
kurungkurawaluntukmenandaistatementyangberhubungandengankondisiIF.Berikutcontoh
strukturnya:

1 <?php
2 if(expression)
3 {
4 statement1;
5 statement1;
6 }
7 ?>

Tandakurungkurawalmenandakanblokperintahyangdijalankanjikaexpressionbernilaitrue.

KitajugabisamembuatbeberapalogikaIFsekaligusuntukberbagaisituasi:

110
1 <?php
2 if(expression1)
3 {
4 statement1;
5 statement2;
6 }
7 if(expression2)
8 {
9 statement3;
10 statement4;
11 }
12 ?>

Untukkasusyanglebihspesifik,kitabisamembuatstrukturIFdidalamIF,ataudikenal
dengannestedIF,seperticontohberikut:

1 if(expression)
2 {
3 statement1;
4 if(expression)
5 {

m
6 statement1;
7 }

o
8 }

.c
9 ?>
om
SeberapabanyakkondisiIFdidalamIF(nested)tidakdibatasidalamPHP,namunperludiperhatikan
penggunaantandakurungkurawalsebagaipenandabagiandariIF.Jikaandamembuatstruktur
ilk

IFyangkompleks,tandakurungkurawaliniakanmembuatbingungjikatidakdikeloladenganbenar.
ia

Kesalahanpenutupankurungkurawalakanmembuatprogramtidakberjalansesuaidengan
un

keinginan.
.d

AlternatifPenulisanStrukturLogikaIF
w
w

SelainmenggunakantandakurungkurawalsebagaitandaawaldanakhirIF,PHPmenyediakancara
w

penulisanlainuntukmenandaiakhirperintahIF,yaitudiawalidengantandatitikdua(:)dengandiakhiri
denganendif.

BerikutadalahformatdasarpenulisanIF:

1 <?php
2 if(expression):
3 statement1;
4 statement1;
5 endif
6 ?>

Perbedaanmendasartentangcarapenulisaniniadaditandatitikdua(:)setelahpenulisan
expression,dankatakunciendifdiakhirstatement.

AndabebasmenggunakanformatpenulisanlogikaIFyangdisediakan.Beberapaprogrammer
menggunakanalternatifpenulisanIFdenganendifini,karenadianggaplebihrapi.

111
StrukturlogikaIFinijugamemilikipercabangankeduaseandainyakondisiexpressiontidakterpenuhi.
DalamtutorialselanjutnyakitaakanmempelajaristrukturlogikaELSE.

om
.c
om
ilk
ia
un
.d
w
w
w

112
PengertianStrukturELSEdalamPHP
JikaStrukturIFdigunakanuntukpercabanganalurprogramdengan1pilihansaja,makadengan
strukturELSEkitadapatmembuatpercabangankedua,yaknipercabanganketikakondisiIFtidak
terpenuhi,atauexpressiIFmenghasilkannilaiFALSE.

BerikutadalahcontohpenggunaanlogikaELSEdalamPHP:

1 <?php
2 $nama="Andi";
3
4 if($nama=="Andi")
5 echo"SelamatDatangAndi...";
6 else
7 echo"SelamatDatangdiduniailkom";
8 ?>

Contohkodeprogramdiatas,hampirsamadengancontohkitapadatutorialtentangIFsebelumnya.

om
NamunkaliinisayamenambahkanpercabanganELSE.Jikaandamenjalankankodeprogram
diatas,makadidalamwebbrowserakantampilSelamatDatangAndi,karenakondisiIF

.c
terpenuhi.PerintahELSEhanyaakandijalankanjikakondisi$namabukanberisiANDI.
om
JikasayamengubahkodePHPdiatasmenjadi

1 <?php
ilk

2 $nama="Budi";
3
ia

4 if($nama=="Andi")
5 echo"SelamatDatangAndi...";
un

6 else
7 echo"SelamatDatangdiduniailkom";
.d

8 ?>
w

MakasekarangdiwebbrowserakantampilSelamatDatangdiduniailkom.Haliniterjadikarena
w

kondisiif($nama==Andi)tidakterpenuhidanmenghasilkanFALSE,sehinggaperintahdibagian
w

ELSElahyangakandiekseskusi.

AturanPenulisanStrukturIFELSEdalamPHP
PenulisansederhanadaristrukturIFELSEadalahsebagaiberikut:

1 <?php
2 if(expression)
3 statement1;
4 else
5 statement2;
6 ?>

Statement1akandijalankanhanyajikaexpressionbernilaiTRUE(kondisiexpressionterpenuhi).
Namunapabilakondisiexpressiontidakterpenuhi(bernilaiFALSE),makastatement2lahyangakan
dijalankan.

113
JikastrukturlogikaIFELSEterdiridaribeberapabaris,makakitaharusmenambahkanpenanda
kurungkurawaluntukmenandaiawaldanakhirstatement.Penandainidibutuhkanuntukmembatasi
blokperintahmanayangakandijalankanketikaexpressionTRUE,danblokperintahmanayang
akandijalankanjikaexpressionFALSE.

BerikutadalahpenulisandasarstrukturIFELSEdenganpembatasanblokperintah:

1 <?php
2 if(expression)
3 {
4 statement1;
5 statement1;
6 }
7 else
8 {
9 statement2;
10 statement1;
11 }
12 ?>

m
Penandaanstatementiniakanmenghasilkanerrorketikakitasalahataulupamenempatkan

o
tandakurungkurawal.PerhatikancontohkodePHPberikutini:

1 <?php
.c
om
2 $nama="Budi";
3
4 if($nama=="Andi")
ilk

5 echo"SelamatDatangAndi...";
6 echo"AndaMemiliki3pesandi
ia

7 inbox...";
un

8 else
9 echo"Maaf,andatidakmemilikihak
akses";
.d

?>
w

KodePHPdiatasakanmenghasilkanerror,karenaPHPmendeteksiadalebihdarisatubarissetelah
w

strukturIF.Kodetersebutakanberjalansepertiyangdiinginkanjikadirubahmenjadi:
w

1 <?php
2 $nama="Budi";
3
4 if($nama=="Andi")
5 {
6 echo"SelamatDatangAndi...";
7 echo"AndaMemiliki3pesandi
8 inbox...";
9 }
10 else
11 {
12 echo"Maaf,andatidakmemilikihak
13 akses";
}
?>

Padabaristerakhir,sayajugamenambahkantandakurungkurawalsebagaipenandaawaldanakhir
dariELSE,walaupuntandakurungtersebutsebenranyatidakdiperlukan(karenahanyabersisisatu

114
baris).Namunhaliniakanmemudahkankitaseandainyainginmenambahkanperintahtambahan
padabagianELSE.

CaraPenulisanAlternatifStrukturELSE
SamasepertialternatifpenulisanIFpadatutorialsebelumnya,selainmenggunakantandakurung
kurawalpenandaawaldanakhirblokIF,PHPjugamenyediakancarapenulisanlainuntukblok
perintahELSE,yaitudiawalidengantandatitikdua(:)dandiakhiridenganendif.

BerikutadalahformatdasarpenulisanIF:

1 <?php
2 if(expression):
3 statement1;
4 statement2;
5 else:
6 statement3;

om
7 endif
8 ?>

.c
Perbedaanmendasartentangcarapenulisaniniadadisetelahpenulisanexpressiondimana
om
dibutuhkantandatitikdua(:),dandiakhirstatementdengankatakunciendif.

AndabebasmenggunakanformatpenulisanlogikaIFyangdisediakan.Beberapaprogrammer
ilk

memilihalternatifpenulisanIFdenganendifkarenadianggaplebihrapi.
ia
un

Dalamtutorialstrukturalurprogramberikutnya,kitaakanmembahasstrukturlanjutandariIF,
.d

yaknicarapenulisandanpenggunaanstrukturELSEIF.
w
w
w

115
PengertianStrukturELSEIFdalamPHP
StukturELSEIFmerupakanpercabanganlogikalanjutandariIF.DenganELSEIFkitabisa
membuatkodeprogramyangakanmenyeleksiberbagaikemungkinanyangbisaterjadi.Berikut
adalahcontohpenggunaanELSEIFdalamPHP:

1 <?php
2 $a=15;
3 $b=8;
4
5 if($a>$b)
6 {
7 echo"alebihbesardaripadab";
8 }
9 elseif($a==$b)
10 {
11 echo"asamabesardenganb";
12 }
13 else

om
14 {
15 echo"alebihkecildaripadab";
16 }

.c
17 ?> m
Dalamkodeprogramdiatas,sayamembuatprogramsederhanauntukmembandingkan2angka.IF
o
pertamaakanmelakukanpengecekanapakah$a>$b,jikahasilnyaadalahFALSE,makamasukke
lk

IFkedua(ditulisdenganelseif)apakah$a==$b,danjikahasilnyaadalahFALSE,makadapat
ai

dipastikan$a<$b.
ni

JikaandabertanyaapaperbedaanIFdenganELSEIF,makajawabanyaterletakdiefisiensi
u

pemrosesan.ContohdiatasbisajugakitabuattanpamenggunakanELSEIFsepertiberikutini:
.d

1 <?php
w

2 $a=15;
w

3 $b=8;
4
w

5 if($a>$b)
6 {
7 echo"alebihbesardaripadab";
8 }
9 if($a==$b)
10 {
11 echo"asamabesardenganb";
12 }
13 else
14 {
15 echo"alebihkecildaripadab";
16 }
17 ?>

Perhatikankodeprogrampadabariske9,sayamenggantiELSEIFmenjadiIF.

Perbedaannyaadalah,untukcontohkodePHPkitatanpaIFini,seluruhkondisiakandijalankan,
walaupunsebenarnyatidakperlu.Jika$a=15dan$b=8,makakondisiIFpertamaakanterpenuhi($a

116
>$b),dankitainginprogramPHPkeluardariIF.NamunkarenaperintahselanjutnyaadalahIF,maka
PHPakantetapmemeriksaapakah($a==$b).

LainhalnyajikakitamenggunakanperintahELSEIF,makaketikasebuahkondisitelahdipenuhi,PHP
tidakperlumelakukanpengecekanterhadapkondisiIFlainnya.

AturanPenulisanStrukturELSEIFdalamPHP
DalamPHP,kitabisamenuliskanstrukturELSEIFdenganelseif,atauelseif(dipisahkandengan
spasi).Keduabentukinidianggapsama.

FormatdasarpenulisanELSEIFadalahsebagaiberikut:

1 <?php
2 if(expression)
3 {
4 statement1;

om
5 }
6 elseif
7 {

.c
8 statement2;
om
9 }
10 else
11 {
ilk

12 statement3;
13 }
14 ?>
ia
un

SeberapabanyakstrukturELSEIFdidalamkodeprogramtidakdibatasi,namunjikaandaadadalam
situasiyangmembutuhkanpercabanganELSEIFyanglebihdari5,mungkinandabisamemecah
.d

nyamenjadibagianbagiankecilagarmemudahkanalurlogikaprogram.
w
w

CaraPenulisanAlternatifStrukturELSEIF
w

SelainmenggunakantandakurungkurawalsebagaitandaawaldanakhirELSEIF,PHP
menyediakancarapenulisanalternatif.Berikutformatdasarpenulisannya:

1 <?php
2 if(expression):
3 statement1;
4 statement2;
5 elseif(expression):
6 statement3;
7 else
8 statement4;
9 endif
10 ?>

Namununtukcarapenulisanini,kitatidakbisamemisahkanpenulisanELSEIFmenjadielseif,
tetapiharusditulismenyatumenjadielseif.

117
1 <?php
2 $a=15;
3 $b=8;
4
5 if($a>$b):
6 echo"alebihbesardaripadab";
7 elseif($a==$b): //akanmenghasilkan
8 error
9 echo"asamabesardenganb";
10 else:
11 echo"alebihkecildaripadab";
12 endif;
?>

Kodeprogramdiatasbaruberhasildieksekusijikadiubahmenjadi:

1 <?php
2 $a=15;
3 $b=8;
4
5 if($a>$b):

om
6 echo"alebihbesardaripadab";
7 elseif($a==$b):
8 echo"asamabesardenganb";

.c
9 else:
10 echo"alebihkecildaripadab";
om
11 endif;
12 ?>
ilk

StrukurIFELSEIFinimerupakansalahsatustrukturterpentingdalampemograman,denganstruktur
IFkitabisamembuatalurpercabanganprogramtergantungdengansituasiyangdihadapi.
ia
un

SelainstrukturIF,PHPmeyediakanstrukturpercabanganlainnya,yakniswitch.Pembahasan
.d

tentangstrukturswitchakankitabahasdalamtutorialPHPselanjutnya.
w
w
w

118
PengertianStrukturlogikaSwitch
Strukturlogikaswitchadalahsebuahstukturpercabanganyangakanmemeriksasuatuvariabel,
lalumenjalankanperintahperintahyangsesuaidengankondisiyangmungkinterjadiuntukvariabel
tersebut.StrukturswitchinimiripdenganstrukturIFyangditulisberulang.

Katakankitainginmembuatsebuahprogramyangakanmenampilkankatadariangka05,sehingga
terdapat6kemungkinanyangterjadi.JikamenggunakanstrukturIF,makakitaakanmembutuhkan6
perulangansebagaiberikut:

1 <?php
2 $a=3;
3 if($a=="0"){
4 echo"AngkaNol";
5 }
6 elseif($a=="1"){
7 echo"AngkaSatu";
8 }

om
9 elseif($a=="2"){
10 echo"AngkaDua";
11 }

.c
12 elseif($a=="3"){
13 echo"AngkaTiga";
m
14 }
15 elseif($a=="4"){
o
16 echo"AngkaEmpat";
lk

17 }
ai

18 elseif($a=="5"){
19 echo"AngkaLima";
ni

20 }
21 else
u

22 echo"Angkadiluarjangkauan";
.d

23 ?>
w

Tidakadayangsalahdarikodeprogramtersebut,namunjikakitamenggunakanswitch,kode
w

tersebutdapatditulismenjadi:
w

1 <?php
2 $a=3;
3 switch($a)
4 {
5 case0:
6 echo"AngkaNol";
7 break;
8 case1:
9 echo"AngkaSatu";
10 break;
11 case2:
12 echo"AngkaDua";
13 break;
14 case3:
15 echo"AngkaTiga";
16 break;
17 case4:
18 echo"AngkaEmpat";
19 break;

119
20 case5:
21 echo"AngkaLima";
22 break;
23 default:
24 echo"Angkadiluarjangkauan";
25 break;
26 }
27 ?>

Keduakodeprogramakanmenghasilkanoutputyangsama,namununtukkondisilogikayangdiuji
merupakankondisisederhana,penulisandenganswitchlebihdisarankandibandingkanIF.

AturanPenulisanStrukturSwitchdalamPHP
Sepertiyangterlihatdalamcontohsebelumnya,strukturswitchterdiridaribeberapabagian,berikut
formatdasarpenulisanswitchdalamPHP:

1 switch($var)

m
2 {
3 casevalue1:

o
4 statement1;

.c
5 break;
6 casevalue2:
om
7 statement2;
8 break;
9 }
ilk

Setelahkatakunciswitch,kitaharusmencantumkanvariabelyangakandiperiksanilainyadidalam
ia

tandakurung,lalumemulaiblockswitchdengankurungkurawal.
un

Tiapkondisiyangmungkinterjadidicantumkansetelahkatakuncicase,laludiikutidengannilaiyang
.d

akandibandingkandengannilaivariabelswitch.Jikakondisisesuai,makabaris
w

programstatementakandijalankan.Katakuncibreakdigunakanuntukkeluardariswitch,sehingga
w

PHPtidakperlumemeriksacaseberikutnya.
w

Alurprogramuntukswitchakandieksekusidaribarispertamasampaiterakhir.Kata
kuncibreakmemegangperananpentinguntukmenghentikanswitch.

PerhatikancontohkodePHPberikut:

1 <?php
2 $a=1;
3 switch($a)
4 {
5 case0:
6 echo"AngkaNol";
7 case1:
8 echo"AngkaSatu";
9 case2:
10 echo"AngkaDua";
11 case3:
12 echo"AngkaTiga";
13 }

120
14 ?>

Programdiatasakanmemeriksanilaidari$a,danmemberikanoutputtergantungkepada
nilai$atersebut.Jikasekilasdilihat,makakeluaranprogramadalah:AngkaSatusesuaidengan
nilaivariabel$a.Akantetapi,jikaandamenjalankanprogramdiatas,PHPakanmemberikanoutput
berupa:

AngkaSatuAngkaDuaAngkaTiga

Apayangterjadi?HaliniterkaitdenganbagaimanaPHPmenjalankanprosesswitch.

Ketikaprogramdijalankan,PHPpertamakaliakanmemeriksacase0,yaituapakah$asama
dengan0,jikatidak,PHPakanlanjutkecase1,danmemeriksaapakah$asamadengan1.Jikaiya,
makaPHPakanmenjalankanechoAngkaSatu,besertaseluruhperintahprogrampadacase
casedibawahnya.Halinimungkinterkesananeh,namunadakalanyaprosessepertiinilahyang
dibutuhkan.

om
Namun,untukkasusdiatas,kitainginmengistruksikankepadaPHPbahwasetelahcaseditemukan,
makaswitchharusberhenti.

.c
Untukinstruksiini,kitaharusmenggunakankatakuncibreak.InstruksibreakmemberitahuPHP
om
untuksegerakeluardariswitch,dantidakmenjalankancaselainnya.
ilk

Berikutadalahkodeprogramswitchkitasetelahditambahnyakeywordbreak:
ia

1 <?php
2 $a=1;
un

3 switch($a)
4 {
5 case0:
.d

6 echo"AngkaNol";
w

7 break;
8 case1:
w

9 echo"AngkaSatu";
10 break;
w

11 case2:
12 echo"AngkaDua";
13 break;
14 case3:
15 echo"AngkaTiga";
16 break;
17 }
18 ?>

Selainkatakuncibreak,PHPmenyediakankatakuncidefaultuntukalurswitch.Katakunciini
berfungsisepertiELSEdidalamstrukturIF,yaknikondisidimanaseluruhcaseuntukswitchtidakada
yangcocok.Katakuncidefaultinidiletakkandiakhirdariswitch.

Untukcontohkitadiatas,sayaakanmenambahkanbagiandefaultsebagaiperintahyangakan
dijalankanjikanilaidarivariabel$aduluardariangka05.BerikutkodePHPnya:

1 <?php
2 $a=9;
121
3 switch($a)
4 {
5 case0:
6 echo"AngkaNol";
7 break;
8 case1:
9 echo"AngkaSatu";
10 break;
11 case2:
12 echo"AngkaDua";
13 break;
14 case3:
15 echo"AngkaTiga";
16 break;
17 default:
18 echo"Angkadiluarjangkauan";
19 break;
20 }
21 ?>

PHPmembolehkankitamenjalankansatustatementsajauntukcaseyangberlainan,seperticontoh

m
kodePHPberikutini:

o
1 <?php

.c
2 $a=3;
3 switch($a)
om
4 {
5 case0:
6 case1:
ilk

7 case2:
8 case3:
ia

9 echo"Angkaberadadidalamrange0
un

10 3";
11 break;
12 case4:
.d

13 case5:
14 case6:
w

15 case7:
w

16 echo"Angkaberadadidalamrange4
17 7";
w

18 break;
19 default:
20 echo"Angkadiluarjangkauan";
21 break;
}
?>

Didalamkodediatas,sayamenyatukanbeberapacasekedalam1statement.

Penulisancaseuntukstrukturswitchmenyesuaikandenganjenistipedatayangakandiuji.Sampai
denganbagianini,sayahanyamenggunakancontohcaseuntukvariabeldengantipeangka,namun
jikaandamenggunakanswitchuntuktipedatastring,makakitaharusmenggunakantandakutip
untukcase.

BerikutcontohkodeswitchPHPuntuktipedatastring:

1 <?php
2 $a=dua;
122
3 switch($a)
4 {
5 case"nol":
6 echo"Angka0";
7 break;
8 case"satu":
9 echo"Angka1";
10 break;
11 case"dua":
12 echo"Angka2";
13 break;
14 case"tiga":
15 echo"Angka3";
16 break;
17 default:
18 echo"Angkadiluarjangkauan";
19 break;
20 }
21 ?>

om
PerbedaanAntarastrukturIFdenganSwitch

.c
Walaupunmemilikitujuanyanghampirsama,namunstrukturIFdanswitchmemilikiperbedaanyang
mendasar.
om
Didalamstrukturswitch,kondisilogikahanyaakandiperiksasatukalisaja,yaitupadaawal
ilk

perintahswitch,danhasilnyadibandingkandengansetiapcase.Akantetapididalam
ia

strukturif,setiapkondisiakanselaludiperiksa.Sehinggajikaandamemilikistrukturpercabangan
yangbanyak,strukturswitchakanlebihcepatdieksekusi.
un

Namundisisilain,switchmemilikiketerbatasandalamjenisoperasiperbandinganyangdapat
.d

dilakukan.Operasiperbandingandidalamswitchterbatasuntukhalhalsederhanaseperti
w

memeriksanilaidarisebuahvariabel.
w

Strukturswitchtidakbisadigunakanuntukpercabanganprogramdenganoperasiyanglebihrumit
w

sepertimembandingkan2variabel.Kitatidakbisamenggunakanswitchuntukmembuatkode
programmenentukannilaiterbesarseperticontohpadatuturialIFsebelumini.

Untukkebanyakankasus,kitaakanseringmenggunakanIFdibandingkanswitch.

123
PengertianStrukturPerulanganFordalamPHP
Strukturperulangan(ataudalambahasainggrisdisebutdenganloop)adalahinstruksiprogram
yangbertujuanuntukmengulangbeberapabarisperintah.Dalammerancangperulangankode
program,kitasetidaknyaharusmengetahui3komponen,yaitukondisiawaldariperulangan,perintah
programyangakandiulang,sertakondisiakhirdimanaperulanganakanberhenti.

Didalambahasapemograman,terdapatbeberapajenisinstruksiperulangan,salah
satunya:strukturperulanganFOR.

Sebagaicontohsederhanauntukperulanganfor,sayaakanmembuatprogramPHPuntuk
menampilkan10bariskalimatSayasedangbelajarPHP.Berikutadalahkodeprogramyang
digunakan:

1 <?php
2 for($i=1;$i<=10;$i++)
3 {

om
4 echo"SayasedangbelajarPHP";
5 echo"<br/>";
6 }

.c
7 ?>
om
ilk
ia
un
.d
w
w
w

Jikaandamenjalankanperintahtersebut,makadiwebbrowserakantampilsebanyak10kalimat.
Kemampuanbahasapemogramanuntukmelakukanperulanganinisangatpraktisjikayangkita
inginkanadalahmengulangbeberapaperintahyangsamasebanyakbeberapakali.

124
CaraPenulisanStrukturPerulanganFordalamPHP
Sepertiyangtelahsayasinggungsebelumnya,untukkondisiperulanganfor,kitasetidaknya
membutuhkan3kondisi,yaitudikondisiawalperulangan,kondisipadasaatperulangan,dan
kondisiyangharusdipenuhiagarperulanganberhenti.

PenulisandasarformatperulanganforPHPadalahsebagaiberikut:

for(start;condition;increment)
{
statement;
}

Startadalahkondisipadasaatawalperulangan.Biasanyakondisiawalinidigunakanuntuk
membuatdanmemberikannilaikepadavariabelcounteryangdigunakanuntukmengontrol
perulangan.Misalkan,kitaakanmembuatvariabelcounter$i,makauntukkondisistartini,kita
jugaharusmemberikannilaiawaluntukvariabel$i,misalnyadengan1,maka$i=1.

om
Conditionadalahkondisiyangharusdipenuhiagarperulangandijalankan.Selamakondisiini
terpenuhi,makaPHPakanterusmelakukanperulangan.Biasanyavariabelcounterdigunakan

.c
untukmengaturakhirperulangan.Misalkankitainginmenghentikanperulanganjika
variabel$itelahmencapainilai20,makapadabagianconditioninikitamembuat
m
perintah$i<=20,yangberartiselamanilai$ikurangatausamadengan20,teruslakukan
o
perulangan.
lk

Incrementadalahbagianyangdigunakanuntukmemprosesvariabelcounteragarbisa
ai

memenuhikondisiakhirperulangan.Biasanya,padabagianinilahkitaakanmembuatkondisi
ni

darivariabelcounter.
u

Statementadalahbagiankodeprogramyangakandiprosessecaraterusmenerusselama
.d

prosesperulanganberlangsung.Untukstatementini,kitamembuatblokprogramdi
w

antaratandakurungkurawal({dan})sebagaipenandabahwabagiandidalamkurung
w

kurawalinilahyangakandikenaiprosesperulangan.
w

Sebagaicontoh,kitaakanmembuatperulanganuntukmenampilkanangka115kedalamweb
browser,berikutkodePHPyangdigunakan:

1 <?php
2 for($i=1;$i<=15;$i++)
3 {
4 echo$i;
5 echo"<br/>";
6 }
7 ?>

125
om
.c
om
Jikaandamenjalankankodetersebut,makadidalamwebbrowserakantampilurutanangkadari1
ilk

sampaidengan15.
ia

Sebagaikondisiawaldariperulangantersebutadalah$i=1,dimanasayamemberikannilai1kepada
un

variabel$i.Variabel$iinilahyangakanmenjadicounterataupenghitungdariperulanganfor.
.d

Untukkondisiakhir,sayamembuat$i<=15,jadiselamavariabel$ibernilaikurangatausama
w

dengan15,makaperulanganakanterusdijalankan.
w

Sebagaiincrement,sayamembuat$i++,dimanainstruksiinisamadengan$i=$i+1.instruksiini
w

akandijalankanpadasetiapperulangan,sehinggadengankatalain,setiapproses
perulangan,$iakanbertambah1angka.

Selainberfungsisebagaicounter,variabel$ijugadapatdigunakandalamprosesperulangan,
sehinggadenganmembuatperintahecho$i,makadalamsetiapperulangan,kitabisamenampilkan
nilai$ipadasaatitu.

Sebagaicontohlain,sayainginmembuatperulanganuntukmenampilkanangka0100,namununtuk
kelipatan5,seperti:0.5.10..dst,sampaidengan100.

BerikutadalahcontohkodePHPnya:

1 <?php
2 for($i=0;$i<=100;$i=$i+5)
3 {
4 echo$i;

126
5 echo"<br/>";
6 }

om
.c
om
ilk
ia
un
.d
w

Perbedaanpenulisanstrukturfordiatasdibandingkancontohsebelumnyaadalahpada
w

bagianincrement,dimanasayamembuatkondisiincrementyangmenaiksebanyak5angkasetiap
w

perulangannya($i=$i+5).Sehinggavariabelcounter,$iakanbertambahsebanyak5padasetiap
perulangan.

Kitajugabisamembuatperluangandengankondisimundur,seperticontohkodePHPberikutini:

1 <?php
2 for($i=20;$i>=1;$i)
3 {
4 echo$i;
5 echo"<br/>";
6 }

Didalamkodetersebut,sayamemulainilaiawaldariangka$i=20,membuatperulanganselama$i>=
1,danpadasetiapperulangan,nilai$iakandikurangi1angka($i).Dengankondisitersebut,maka
variabelcounter$iakandikurangi1padasetiapperulangan.

127
PengertianInfinityLoop
Ketikamembuatkondisiakhirdariperluanganfor,kitaharusmemperhatikankapankondisiakhir
tersebutdipenuhi.Jikakondisiakhirtidakpernahterpenuhi,makaperulanganakanberjalan
selamanya.Halinidikenaldenganinfinityloop.

Sepertiyangterjadiuntukkodesepertiberikutini:

1 <?php
2 for($i=20;$i>=1;$i++)
3 {
4 echo$i;
5 echo"<br/>";
6 }

Jikaandamenjalankankodetersebut,prosesperulanganakanberjalanterusmenerus,sehingga
untukmenghentikannyakitaharusmenutuppaksawebbrowser.

om
Kesalahandaristrukturfortersebutadalahpadakondisiakhirdariperulangan,dimanasaya
membuat$i>=1,sehinggaketikanilaiawalvariabelcounter$1adalah20,dandalamtiap
perulangan$iditambah1,makanilai$iakanselalulebihbesardari1,sehinggakondisiakhirtidak
akanpernahterpenuhi,dan$i>=1akanselalubenar.
.c
om
Infinityloopinikadangdiperlukanuntukkasuskasustertentu.Namunkebanyakankitaakan
ilk

menghindariperulanganjenisini.
ia
un

PengertianNestedLoop(PerulanganBersarang)
.d

Selaininfinityloop,terdapatistilahlainnyayangseringdigunakandalamprosesperulangan,
w

yakninestedloop,atauterjemahanbebasnya:perulanganbersarang.
w

Nestedloopadalahistilahpemogramanyangberartimembuatperulangandidalamperulangan.
w

Perhatikancontohprogramberikut:

1 <?php
2 for($i=0;$i<10;$i++)
3 {
4 for($j=0;$j<10;$j++)
5 {
6 echo$i;
7 }
8 echo"<br/>";
9 }

128
om
Dalamcontohprogramdiatas,sayamembuatperulangandidalamperulangan.Counter$jdigunakan
untukperulangandalam(innerloop),dancounter$idigunakandidalamperulanganluar(outer

.c
loop).
om
Nestedloopinibiasanyadigunakandalamprogramyangmembutuhkanpengaksesankompleks,
sepertiarray2atau3dimensi.
ilk
ia

CaraAlternatifPenulisanPerulanganFordalamPHP
un

Samasepertistrukturif,PHPjugamemilikialternatifperulangantanpamenggunakan
.d

tandakurungkurawalsebagaipenandablokprogram,danmenggantinyadenganendfor.
w

Berikutadalahcontohperulanganfordenganendfor:
w
w

1 <?php
2 for($i=1;$i<=15;$i++):
3 echo$i;
4 echo"<br/>";
5 endfor;
6 ?>

Perbedaandenganpenulisanfordengankurungkurawaladalahpenandaawalblokyang
menggunakantandatitikdua(:)danpadaakhirblokdenganperintahendfor.

InstruksiforyangtelahkitapelajaridalamtutorialPHPinimembutuhkansyaratyaitukitatelah
mengetahuiberapakaliperulanganakandilakukanpadasaatpenulisanprogram.Untukkondisi
dimanakitatidakbisamenentukanberapabanyakprosesperulanganyangterjadi,makaPHP
menyediakanstrukturperulanganwhile.

UntuklebihlanjutakankitabahaspadatutorialbelajarPHPberikutnya:PengertiandanCara
129
PenulisanPerulanganWhiledalamPHP.

om
.c
om
ilk
ia
un
.d
w
w
w

130
PengertianStrukturPerulanganWhilePHP
Untuksituasidimanakitamembutuhkankondisiperulanganyangtidakdapatdipastikanberapakali
perulanganakandilakukan,makakitatidakbisamenggunakanperulanganfor.

PHP(danjugabahasapemogramanlain)menyediakanstukturperulanganwhileuntukkondisi
perulangandimanabanyaknyaperulangantidakdapatdipastikanpadasaatpenulisanprogram.

Misalkankitainginmembuatprogramtebakangka,dimanauserakanmenebak1angkadari1
sampai10.Untukkondisiini,kitatidakdapatmengetahuiberapakaliuserakanmencobauntuk
menebakangkatersebut.Bisasajausermencobasebanyak1,5,atau10kalisebelumangka
tersebutberhasilditerka.

Ataumisalkankitainginmembuatprogrammenemukankatatertentudidalamsebuahkalimatyang
dimasukkanolehuser.Banyakkatadalamkalimattidakbisakitatentukanpadasaatpembuatan
program(karenaakandiinputolehuserpadasaatprogramberjalan),makakitatidakbisa

om
menentukanseberapabanyakperulanganyangharusdilakukanuntukmencarikatatersebut.

.c
Sampaidengantutorialini,kitabelumbisamembuatkeduaprogramdiataskarenamembutuhkan
beberapafungsiPHPyangbelumkitapelajari,namunsebagaicontohcarapenggunaanstruktur
om
whilesederhana,berikutadalahkodePHPuntukperulanganwhile:
ilk

1 <?php
2 $i=1;
ia

3 while($i<=10)
4 {
un

5 echo"$i";
6 echo"<br/>";
.d

7 $i=$i+1;
8 }
w

9 ?>
w
w

131
Jikaandamenjalankankodeprogramtersebut,makadiwebbrowserakantampilperulanganangka
1sampaidengan10.Dalamtutorialini,kitaakanmembahascarapenulisanstrukturwhileinisecara
lebihdalam.

CaraPenulisanStrukturPerulanganWhilePHP
Sepertiterlihatpadacontohprogramsebelumnya,strukturwhiledalamPHPterdiridari2bagian,
yaitukondisiyangharusdipenuhiuntukprosesperulangan,danbarisperintahyangakandiproses
secaraberulang.

Strukturdasarperulanganwhileadalahsebagaiberikut:

1 while(condition)
2 {
3 statement;
4 statement;
5 }

om
Conditionadalahkondisiyangharusdipenuhiagarperulanganberlangsung.Kondisiinimirip

.c
sepertidalamperulanganfor.SelamaconditionbernilaiTRUE,makaperulanganakanterus
om
dilakukan.Conditioniniakandiperiksapadatiapperulangan,danhanyajikahasilnyaFALSE,
makaprosesperulanganberhenti.
ilk

Statementadalahkodeprogramyangakandiulang.Kitabisamembuatbeberapakode
programuntukmenampilkanperintahsepertiecho,atauperintahyanglebihkompleks.Namun
ia

didalambagianiniharusadabarisprogramyangdigunakansebagaipenghentiperulangan.
un

Misalkanpadabagianconditionkitamenggunakanvariabelcounter$i,makadibagian
statementharusadabarisprogramyangmembuatconditionbernilaiFALSE,ataukalautidak
.d

prosesperulangantidakakanpernahberhenti(infinityloop).
w

Tandakurungkurawaldiperlukanuntukmembatasiblokprogramyangakandiulang.Jika
w

statementhanyaterdiridari1baris,makatandakurungkurawaltidakdiperlukan.
w

Sebagaipembahasan,sayaakanmenampilkanulangcontohkodeprogramsebelumnya,yakni:

1 <?php
2 $i=1;
3 while($i<=10)
4 {
5 echo"$i";
6 echo"<br/>";
7 $i=$i+1;
8 }
9 ?>

Padabariske2sayamembuatsebuahvariabel$i,danmemberikannilai1.Variabel$iinilahyang
akandigunakansebagaicounteruntukkondisiwhile.

Setelahpenulisanwhile,selanjutnyadidalamtandakurungadalahconditionyangharusdipenuhi
agarperulanganberjalan.Sayamembuatkondisi($i<=10)sebagaipenandaakhirwhile,yang
132
berartiselamavariabel$ibernilaikurangdari10,makalakukanperulangan.

Pentinguntukdiperhatikanadalahlogikapemogramanuntukcondition.While($i<=10)jugaberarti
bahwajikanilaivariabel$i=11,makaperulanganakanberhenti.Didalamkodeprogram,kitaharus
membuatsebuahbarisstatementyangdigunakanuntukterusmenambahkannilai$isupayanilai$i
bisamencapaiangkalebihdari10untukmenghentikanperulangan.

Setelahmembuatbeberapabariskodeechountukmenampilkanangkakewebbrowserpadabaris
ke5dan6,sayamenambahkankode$i=$i+1padabariske7Barisinilahyangakanmenambahkan
nilaivariabelcounter$isebanyak1angkapadatiapperulangan,sehinggapadaperulanganke10,
nilai$iakanmenjadi11.DankondisiwhileakanmenghasilkanFALSE,sehinggaprosesperulangan
berhenti.

Kesalahandalammemahamilogikawhileseringmenghasilkanperulanganyangakanmemproses
secaraterusmenerus(infinityloop).

om
Andajugabebasmenentukanawaldarivariabelcounter$i,misalnyauntukmulaidariangka100dan
mundurkebelakangseperticontohberikut:

.c
1 <?php
2 $i=100;
om
3 while($i>=0)
4 {
5 echo"$i";
ilk

6 echo"<br/>";
7 $i=8;
ia

8 }
un

9 ?>
.d
w
w
w

Perulanganwhiletersebutakanmenghasilkanangkamenurundari100sampaidengan0,dimana

133
padasetiapperulangannilai100akandikurangidengan8.

PenulisanNestedLoopuntukWhile
Walaupunstrukturwhileagakjarangdigunakanuntuknestedloop,andabisamembuatperulangan
bersarangdenganstrukturwhile,seperticontohberikutini:

1 <?php
2 $i=0;
3 while($i<10)
4 {
5 $j=0;
6 while($j<10)
7 {
8 echo$i;
9 $j++;
10 }
11 echo"<br/>";

om
12 $i++;
13 }

.c
om
ilk
ia
un
.d
w
w
w

Dalamkodediatas,sayamembuatperulanganyangsamaseperticontohnestedlooppada
tutorialperulanganfor,dimanakodediatasakanmenampilkanangka09sebanyak9angka.

Jikaandamembandingkandenganstrukturforuntukhasilyangsama,perulanganfor
akanlebihmudahdipahamidibandingkanperulanganwhilediatas.

CaraPenulisanAlternatifStrukturPerulanganWhile
Sebagaicarapenulisanalternatif,PHPmenyediakanpenulisanblokwhileyangbiasanya
menggunakantandakurungkurawaldenganendwhile.

134
BerikutadalahcontohpenulisanalternatifstrukturwhiledalamPHP:

1 <?php
2 $i=1;
3 while($i<=10):
4 echo"$i";
5 echo"<br/>";
6 $i=$i+1;
7 endwhile;
8 ?>

Untukpenulisanalternatifini,sayamenggantitandakurungkurawaluntukmenandai
blokwhiledengantandatitikdua(:)padaawalperulangan,danperintahendwhilediakhirblok.

Setelahmempelajaristrukturperulanganfordanwhile,PHPmasihmenyediakan1buahstruktur
perulangandasarlainnya,yakniperulangandowhile.Dalamtuturialselanjutnyakitaakan
mempelajaripenhertiandancarapenulisanstrukturperulangandowhiledalamPHP.

om
.c
om
ilk
ia
un
.d
w
w
w

135
PengertianPerulanganDoWhiledalamPHP
Perulanganwhiledandowhilepadadasarnyahampirsama.Perbedaanterletak
padalokasipengecekankondisiperulangan.

Dalamstrukturwhile,pengecekanuntukkondisiperulangandilakukandiawal,sehinggajikakondisi
tidakterpenuhi,makaperulangantidakakanpernahdijalankan.

Namunpadaperulangandowhile,pengecekankondisiakandilakukandiakhirperulangan,sehingga
walaupunkondisiadalahFALSE,perulanganakantetapberjalanminimal1kali.

Sebagaiperbandingan,perhatikancontohstrukturwhileberikutini:

1 <?php
2 $i=1000;
3 while($i<=10)
4 {
5 echo"$i";

m
6 echo"Tidakakantampildibrowser";
7 $i=$i+1;

o
8 }

.c
9 ?>
om
Kodeprogramdiatastidakakanmenampilkanapaapa,karenakondisiwhile($i<=10)sudah
menghasilkannilaiFALSEpadaawalprogram(karenasayasudahmendefenisikannilai$i=1000,
ilk

padabarispertama)
ia

Namunjikakodediataskitaubahmenjadidowhile,makaberikuthasilnya:
un

1 <?php
.d

2 $i=1000;
3 do
w

4 {
5 echo"$i";
w

6 echo"Akantampildibrowser";
w

7 $i=$i+1;
8 }while($i<=10);
9 ?>

Programdiatasakanmenampilkan1000Akantampildibrowser.Haliniterjadikarenapada
strukturdowhile,perulanganprogramakantampilsetidaknya1kaliwalaupun
kondisiwhilemenghasilkanFALSE.

CaraPenulisanStrukturPerulanganDoWhilePHP
Penulisanstrukturdowhilemiripdenganstrukturwhile,namunkitamenambahkanperintahdodi
awalstruktur.BerikutadalahformatdasarpenulisanstrukturdowhiledalamPHP:

do{
statement;
statement;
136
}while(condition);

Setelahperintahdo,didalamblokkurungkurawaladalahstatement.Statementadalahkode
programyangakandiulang.Kitabisamembuatbeberapakodeprogramuntukmenampilkanperintah
sepertiecho,atauperintahyanglebihkompleks.Namundidalambagianiniharusadabarisprogram
yangdigunakansebagaipenghentiperulangan.

Conditionadalahkondisiyangharusdipenuhiagarperulanganberlangsung.
SelamaconditionbernilaiTRUE,makaperulanganakanterusdilakukan.Conditioniniakan
diperiksapadatiapperulangan,danhanyajikahasilnyaFALSE,makaprosesperulanganberhenti.

Sebagaicontohsederhanaperulangandowhile,berikutadalahkodeperulanganuntukmenampilkan
angka1sampaidengan10padawebbrowser:

1 <?php
2 $i=1;
3 do
4 {

om
5 echo"$i";
6 echo"<br/>";
7 $i=$i+1;

.c
8 }while($i<=10);
9 ?>
om
ilk
ia
un
.d
w
w
w

Andajugabisamenggunakanstrukturdowhileuntukperulanganbersarang(nestedloop)seperti
padatutorialperulanganfordanwhile.

Samasepertiperulanganwhile,dalamperancanganperulangandowhileinikitaharusmemahami
alurlogikaprogramyangdibuat.Karenatidaksepertiperulanganfordimanajumlahperulangantelah
ditentukandiawal,untukstrukturdowhilebanyakperulanganditentukanpadasaatprogram
mencapaikondisiFALSE.KesalahandalamalurlogikaakanmembuatPHPtidakpernahberhenti
memprosesperulangan.

137
FungsiPerintahBreakDalamPerulanganPHP
Ketikaprosesperulanganberjalan,adakalanyakitainginsegerakeluardariperulanganjikasebuah
kondisitertentutelahterpenuhi,sehinggasisaprosesperulangantidakperludijalankan.

Misalkankitamemilikinamanamamahasiswayangtersimpandidalamsebuaharrayataudidalam
database.Prosespencariansederhanadapatdirancangdenganmelakukanpencocokansecara
berulangdimulaidarinamapertama,kedua,danseterusnya.Perulanganiniakandilakukansebanyak
daftarmahasiswayangada.

Akantetapi,jikanamayangdicaritelahditemukan,prosesperulanganseharusnyadapatdihentikan
saatitujuga,karenatujuanpencariannamatelahselesai.

UntukkeperluaninilahPHPmenyediakaninstruksibreak.Breakberfungsisebagaiperintah
kepadawebserveruntukmenghentikanperulangansecaraprematur,yaitumenghentikanperulangan
diluardariyangdirencanakan.

om
.c
CaraPenulisanPerintahBreak
om
Perintahbreakdapatdiletakkandiposisimanapundidalamperulangan,namunbiasanyakitaakan
membuatlogikaIFuntukmenentukankapanperintahbreakakandijalankan.
ilk

ContohPenggunaanBreakdalamPerulanganFor
ia
un

Berikutadalahcontohprogramperulanganfordenganmenggunakanperintahbreak:
.d

1 <?php
2 for($i=0;$i<100;$i++)
w

3 {
4 if($i==13)
w

5 {
w

6 break;
7 }
8 echo$i;
9 echo"<br/>";
10 }

138
om
.c
Dalamprogramdiatas,sayamembuatperulanganfordari0sampai100,dandalamkeadaannormal,
om
perintahfor($i=0$i<100$i++)akanmemprosesperulangansebanyak100kali.

Namunpadabariske4sayamenambahkansebuahstrukturIFyangmenyatakanbahwajikanilai
ilk

variabelcounter$isamadengan13,makabreak.Perintahbreakakanmembuat
ia

perulanganforlangsungdihentikan,dankitahanyamenghasilkanperulangansampaiangka13.
un

ContohPenggunaanBreakdalamPerulanganWhile
.d

Samasepertiperulanganfor,perintahbreakdigunakanuntukmenghentikanperulanganwhile
w

secaraprematur,atausebelumkondisipadabagianconditionterpenuhi.
w

Menggunakancontohyangsamadenganstrukturperulanganfor,berikutadalahcontoh
w

penggunaanbreakuntukperulanganwhile:

1 <?php
2 $i=0;
3 while($i<100)
4 {
5 $i++;
6 if($i==13)
7 {
8 break;
9 }
10 echo$i;
11 echo"<br/>";
12 }

Dalamcontohkodeprogramdiatas,perulanganakanberhentipadaiterasike13.Dimanasaya
membuatsebuahkondisiketikavariabelcounterbernilai13,makabreak.Perintahbreakakan
menghentikanperulangansecarapaksa.
139
CaraPenggunaanInstruksiBreakpadaPerulangan
Bersarang(NestedLoop)
Untukperulanganbersarang(nestedloop),instruksibreakbisabermaknaganda,yaituapakankita
inginmenghentikanperulanganluar,atauperulangandalam.

Agarlebihmudahdipahami,berikutadalahcontohnestedloopyangpernahkitabahaspadatutorial
perulanganfor:

1 <?php
2 for($i=0;$i<10;$i++)
3 {
4 for($j=0;$j<10;$j++)
5 {
6 echo$i;
7 }
8 echo"<br/>";

om
9 }

.c
om
ilk
ia
un
.d
w
w
w

Dalamperulangantersebut,variabelcounter$idigunakanuntukperulanganluar(outerloop),dan
variabelcounter$jdigunakanuntukperulangandalam(innerloop).

Jikakitamembuatperintahbreakpadaperulangan$j(innerloop),makayangakandihentikanhanya
perulangan$jsaja,sepertipadacontohprogramberikutini:

1 <?php
2 for($i=0;$i<10;$i++)
3 {
4 for($j=0;$j<10;$j++)
5 {
6 if($i==4)
7 {
8 break;
9 }

140
10 echo$i;
11 }
12 echo"<br/>";
13 }

om
.c
Denganmemberikanperintahbreakpadaperulangan$j,makaperulangan$jakanberhentipada
om
angka4,namunperulangan$iakanterusberjalan.
ilk

Bagaimanajikakitajugainginmenghentikanperulangan$i?
ia

Caranyaadalahdenganmengubahperintahbreakdiatasmenjadibreak2.Angka2bertujuanuntuk
un

memberitahuPHPbahwaperintahbreakditujukanuntuk2levelperulangandiatasnya.
.d

Berikutadalahcontohprogramsebelumnya,denganditambahkanbreak2:
w

1 <?php
2 for($i=0;$i<10;$i++)
w

3 {
w

4 for($j=0;$j<10;$j++)
5 {
6 if($i==4)
7 {
8 break2;
9 }
10 echo$i;
11 }
12 echo"<br/>";
13 }

141
Jikaandamembuatnestedloopdengan3tingkatan,atau3level,makakitabisamenggunakan

om
perintahbreak3untukkeluardariperulanganterdalam.

.c
Perintahatauinstruksibreakbergunauntukmenghentikanperulangansecaralangsung,namunjika
om
yangkitainginkanadalahmelompatisatukaliprosesperulangantanpamenghentikanseluruh
proses,PHPmenyediakanperintahcontinue.
ilk

PerintahcontinueiniakankitabahassecaramendalamditutorialbelajarPHPselanjutnya:Fungsi
ia

danCaraPenulisanPerintahContinueDalamPerulanganPHP.
un
.d
w
w
w

142
FungsiPerintahContinuedalamPHP
PerintahcontinuejugadigunakanuntukmeninterupsiperulangandalamPHP,namunjika
perintahbreakdigunakanuntukmenghentikanperulangan,makaperintahcontinuehanyaakan
menghentikanperulanganuntuk1iterasisaja,laluprosesperulanganakandilanjutkan.

BerikutcontohkodePHPpenggunaanperintahcontinue:

1 <?php
2 for($i=0;$i<10;$i++)
3 {
4 if($i==7)
5 {
6 continue;
7 }
8 echo$i;
9 echo"<br/>";
10 }

om
.c
om
ilk
ia
un
.d
w
w
w

Contohperulangandiatasmiripdengancontohpadaperulanganbreak.Setelahperintahfor,saya
membuatsebuahkondisiIFyangjikavariabelcounter$ibernilai7,makajalankancontinue.

ArtidaricontinueiniadalahsebuahinstruksikepadaPHPuntukmelewatisisaperintahdalam
perulangan,danlangsunglompatkenilaicounterberikutnya,yakni8.Darihasilprogram,andatidak
akanmelihatangka7ditampilkan.

CaraPenggunaanContinuepadaNestedLoop
Samasepertiperintahbreak,perintahcontinuejugabisadigunakanuntuknestedloop,dankita
menggunakanangkasetelahperintahcontinueuntukmenginstruksikanlevelkedalamanloop.

Berikutadalahcontohpenggunaanperintahcontinuedalamnestedloop

1 <?php
143
2 for($i=0;$i<10;$i++)
3 {
4 for($j=0;$j<10;$j++)
5 {
6 if($i==4)
7 {
8 continue2;
9 }
10 echo$i;
11 }
12 echo"<br/>";
13 }

om
.c
om
ilk
ia

Dalamcontohdiatas,perintahcontinue2akanmenginstruksikankepadaPHPuntuktidak
un

mengeksekusiperulanganforpadaperulanganterluar,yaknijika$isamadengan4,danmelanjutkan
kedalamiterasiselanjutnya,yakni$i=5.
.d
w
w

InstruksibreakdancontinueinimelengkapitutorialtentangperulangandalamPHP.Selanjutnya,saya
w

akanmembahastentangperulangankhususuntukarray,yaituperulanganforeach.

144
PengertianPerulanganForeachdalamPHP
ArraymerupakantipedatayangseringdigunakandalammembuatprogrammenggunakanPHP.
Kemampuanarraydalammenyimpanbanyakdatadalamsatuvariabelakansangatbergunauntuk
menyederhanakandanmenghematpenggunaanvariabel.

Untukmenampilkandanmemprosesdatadariarray,kitabisamemanfaatkanperulanganfor,seperti
contohberikutini:

1 <?php
2 $nama=
3 array("Andri","Joko","Sukma","Rina","Sari");
4
5 for($i=0;$i<5;$i++)
6 {
7 echo"$nama[$i]";
8 echo"<br/>";
9 }

m
?>

o
.c
om
ilk
ia
un
.d
w
w
w

Contohdiatasmembuatperulanganforsebanyak5kali,denganvariabelcounter$idimulaidari
angka0(karenaindexarraydimulaidariangka0).

Namunsebagaicaraalternatifuntukmenampilkanarray,sayaakanmengubahkodediatasdengan
menggunakanperulanganforeach:

1 <?php
2 $nama=
3 array("Andri","Joko","Sukma","Rina","Sari");
4
5 foreach($namaas$val)
6 {
7 echo"$val";
8 echo"<br/>";
9 }
?>

145
Perulanganforeachdiatasakanmenampilkansemuaisiarraydenganperintahyanglebihsingkat
daripadamenggunakanperulanganfor.

CaraPenulisanPerulanganForeachdalamPHP
Perulanganforeachmerupakanperulangankhususuntukpembacaannilaiarray.Sepertiyangtelah
kitabahaspadatutorialtentangtipedataarray:MengenalTipeDataArraydanCaraPenulisanArray
dalamPHP,setiaparraymemilikipasangankeydanvalue.Keyadalahposisidariarray,
danvalueadalahisidariarray.

Formatdasarperulanganforeachadalah:

foreach($nama_arrayas$value)
{
statement(...$value...)
}

om
$nama_arrayadalahnamadariarrayyangtelahdidefenisikansebelumnya.
$valueadalahnamavariabelperantarayangberisidataarraypadaperulangantersebut.Anda

.c
bebasmemberikannamauntukvariabelperantaraini,walaupunpadaumumnyabanyak
om
programmermenggunakan$value,atau$valsaja.
ilk

Berikutadalahcontohperulanganforeachsebelumnya:
ia

1 <?php
2 $nama=
un

3 array("Andri","Joko","Sukma","Rina","Sari");
4
.d

5 foreach($namaas$val)
6 {
w

7 echo"$value";
8 echo"<br/>";
w

9 }
w

?>

Padacontohdiatas,sayamendefenisikanvariabelarray$namadenganformatsingkat,dantanpa
mendefenisikankeysecaratertulis.Variabel$valmerupakanvariabelperantaradalamcontohdiatas.
Perulangantersebutakandiulangsebanyakdatayangterdapatdidalamarray,sehinggakitatidak
perluharusmenghitungseberapabanyakperulanganyangharusdilakukan.

Jikaandamembutuhkannilaikeydariarrayuntukdapatdiproses,makaPHPmenyediakanbentuk
keduadariperulanganforeach,denganformatdasarpenulisansebagaiberikut:

foreach($nama_arrayas$key=>$value)
{
statement($key...$value...)
}

Perbedaandenganformatsebelumnya,disiniPHPmenyediakanvariabelperantarakedua,yaitu

146
variabel$key.Variabel$keyinimenampungnilaikeydariarray.

Berikutadalahcontohpenggunaannya:

1 <?php
2 $nama=array(
3 1=>"Andri",
4 6=>"Joko",
5 12=>"Sukma",
6 45=>"Rina",
7 55=>"Sari");
8
9 foreach($namaas$kunci=>$isi)
10 {
11 echo"Urutanke$kunciadalah$isi";
12 echo"<br/>";
13 }
14 ?>

o m
.c
om
ilk
ia
un
.d

Variabelarray$namasayadefenisikanmenggunakankeyyangberbedabeda.Pada
w

perulanganforeach,sayamembuatvariabelperantara$kunci=>$isi,sehinggadidalamperulangan,
w

variabel$kunciakanberisikeydariarray,danvariabel$isiakanberisinilaidariarray.
w

Prosesmenampilkandanmemprosesarrayakanlebihmudahdenganmenggunakanperulangan
foreachdibandingkanperulangandasarsepertifor.Terlebihlagikitatidakperlumencaritauseberapa
banyakperulanganharusdilakukan,karenaperulanganforeachakanotomatisberhentipadadata
terakhirdariarray.

147
PengertianFungsi(Function)dalamPHP
Dalammerancangkodeprogram,kadangkitaseringmembuatkodeyangmelakukantugasyang
samasecaraberulangulang,sepertimembacatabeldaridatabase,menampilkanpenjumlahan,dan
lainlain.Tugasyangsamainiakanlebihefektifjikadipisahkandariprogramutama,dandirancang
menjadisebuahfungsi.

Fungsi(atauFunction)dalambahasapemogramanadalahkodeprogramyangdirancanguntuk
menyelesaikansebuahtugastertentu,danmerupakanbagiandariprogramutama.Kitadapat
membuatfungsisendiri,ataumenggunakanfungsiyangdibuatolehprogrammerlain.

Dalamduniapemogramanterdapatistilahlazyprogammingyangartinyabukanlahprogrammer
yangmalas.Tetapi,daripadamembuatkodeprogramumumdaridasar,kitabisa
menggunakanfungsiyangtelahdibuatolehprogrammerlain.PHPbahkanmenyediakanribuan
fungsibawaanyangtersediauntukmembantukitadalammerancangprogram.

om
Mengetahuicarapenggunaanfungsiiniakanmenghematwaktupembuatanprogramdanmembuat
kodeprogrammenjadilebihefisien.Lazyprogrammingissmartprogramming.

.c
om
CaraMenggunakanFungsiPHP
ilk

Menggunakanfungsidalamteoripemogramanseringjugadisebutdenganistilahmemanggil
ia

fungsi(callingafunction).Fungsidipanggildenganmenulisnamadarifungsitersebut,dandiikuti
un

denganargumen(jikaada).Argumenditulisdidalamtandakurung,danjikajumlahargumenlebih
darisatu,makadiantaranyadipisahkanolehkarakterkoma.
.d

Setelahmemprosesnilaiinputan,hampirsemuafungsiakanmemberikannilaihasilpemrosesan
w

tersebut(walaupunadafungsiyangtidakmemberikannilai).Carafungsimemberikannilainyaini
w

seringdisebutdenganmengembalikannilai(returnavalue).Nilaiyangdikembalikanolehsebuah
w

fungsidapatditampungkedalamvariabel,ataulangsungditampilkankewebbrowser.

PengertianArgumendanParameterdalamFungsiPHP
Sebuahfungsidalammemprosesdata,kadangmemerlukanbeberapainputanataunilaimasukan.
Inputaninilahyangdimaksuddenganargumen.Sebuahfungsibisamembutuhkan1,2,atau
5argumen,namunbisajugatidakmemerlukanargumensamasekali.

Parameteradalahsebutanlainuntukargumen.Perbedaannya,parametermerujukkepadainputan
fungsipadasaatpendefenisianfungsitersebut,danagrumenadalahsebutanuntukinputanfungsi
padasaatpemanggilanfungsi.KitaakanmembahasperbedaanArgumendanParametersecara
lebihdalampadatutorialselanjutnya,namunpadadasarnyaargumendanparametermerujuk
kepadahalyangsama,yaituinputankepadafungsidankeduaistilahiniseringdipertukarkan.

148
ContohPemanggilanFungsiPHP
Sebagailatihandanprakterdalammenggunakanfungsi,Berikutadalahformatdasarpemanggilan,
danpengembaliannilaifungsi:

1 $varibel_hasil_fungsi=
nama_fungsi(argumen1,argumen2,argumen3)

$varibel_hasil_fungsiadalahvariabelyangakanmenampunghasilpemrosesanfungsi.
Tergantungfungsinya,hasildarisebuahfungsibisaberupaangka,string,array,bahkanobjek.
nama_fungsiadalahnamadarifungsiyangakandipanggil
argumen1,argumen2adalahnilaiinputanfungsi.Banyaknyaargumenyangdibutuhkan,
tergantungkepadafungsitersebut.Jikasebuahfungsimembutuhkanargumen2buahangka,
makakitaharusmenginputnyasesuaidenganaturantersebut,ataujikatidak,PHPakan
mengeluarkanerror.

m
Sebagaicontoh,PHPmenyediakanfungsiakarkuadrat,yaknisqrt(),berikutadalahcara
penggunaannya:

o
.c
1 <?php
2 $akar_kuadrat=sqrt(49);
om
3 echo"Akarkuadratdari49adalah
4 $akar_kuadrat";
5 //Akarkuadratdari49adalah7
ilk

?>
ia

Dalamcontohdiatas,fungsisqrt()akanmenghitungakarkuadratdarinilaiargumenyangdiinput.
un

Sayamenambahkanargumen49sebagaiinputan.
.d

Nilaihasildarifungsisqrt(49),selanjutnyaditampungdalamvariabel$akan_kuadrat,yang
w

kemudianditampilkankedalamwebbrowser.
w

Selainditampungdidalamvariabel,kitabisamenampilkanhasilfungsilangsungkewebbrowser,
w

seperticontohberikut:

1 <?php
2 echo"12pangkat2adalah:".pow(12,2);
3 //12pangkat2adalah:144
4 ?>

Fungsipow()adalahfungsipemangkatanmatematikabawaanPHP.Fungsiinimembutuhkan2
argumen,argumenpertamaadalahnilaiawalyangingindihitung,danargumenkeduaadalahnilai
pangkat.Pow(12,2)samadengan12kuadrat.

Perlujugadiperhatikanadalahtipeparameteryangdibutuhkanolehsebuahfungsi.Seperti2contoh
kitadiatas,fungsisqrt()danpow()adalahfungsimatematika.Keduafungsiinihanyabisa
memprosesparameterdengantipeangka(intergerdanfloat).Jikaandamemasukkanparameter
jenisstring,makaPHPakanmengeluarkanerror.

149
Jumlahdanurutanargumenjugaharussesuaidenganyangdibutuhkanolehfungsi.Jikasebuah
fungsihanyamembutuhkan1argumen,makakitatidakbisamenambahkanargumenkedua,kecuali
adaargumenyangbersifatopsional(dapatdiabaikan).

Dalamtutorialselanjutnya,kitaakanmempelajaricaramembuatfungsididalamPHP.

om
.c
om
ilk
ia
un
.d
w
w
w

150
CaraPenulisanFungsidalamPHP
Sebuahfungsimerupakankodeprogramyangdirancanguntukmenyelesaikansebuahtugas
tertentu.Tujuanmemisahkansebuahkodemenjadifungsiadalahuntukkepraktisandankemudahan
dalammembuatprogramutama.Karenajikadijadikanfungsi,makauntukmenjalankantugasyang
sama,kitatinggalmemanggilfungsitersebut,tanpaperlumembuatkembalikodeprogramnya.

UntukmembuatfungsididalamPHP,berikutadalahformatdasarpembuatanfungsi:

functionnama_fungsi($parameter1,$parameter2)
{
//kodeprogramfungsi
return$nilai_akhir
}

KatafunctionadalahinstruksikepadaPHPbahwakitaakanmembuatfungsi
nama_fungsiadalahnamadarifungsiyangakanditulis

om
$parameter1,$parameter2adalahvariabelperantarayangakanmenyimpaninputanyang
diperlukandalampemrosesanfungsi(argumen).Tergantungkebutuhan,andabebas

.c
merancangseberapabanyakparameteryangdibutuhkan.
om
returnadalahperintahkhususuntukfungsi,dimanakatareturnmenginstruksikankepada
PHPbahwapemrosesanfungsitelahselesai.return$nilai_akhirberartibahwafungsiakan
ilk

mengembalikan$nilai_akhirsebagaihasildarifungsi.
ia

Perhatikanjugabahwafungsiiniberadadidalamblokprogramyangditandaidengankurungkurawal
un

padabarispertamadanterakhirfungsi.
.d

Agarlebihmudahdipahami,kitaakanmencobamembuatbeberapafungsiPHPsederhana.
w
w

ContohPembuatanFungsiPHP
w

SebagaicontohpertamafungsiPHP,sayaakanmembuatfungsisederhanauntukperkalian2
angka.Namafungsiiniadalahperkalian,danmembutuhkan2argumendengantipedataangka
(integerataufloat),berikutadalahcarapembuatandanpenggunaanfungsiperkalian:

1 <?php
2 //pembuatanfungsi
3 functionperkalian($angka1,$angka2)
4 {
5 $a=$angka1;
6 $b=$angka2;
7 $hasil=$a*$b;
8 return$hasil;
9 }
10
11 //pemanggilanfungsi
12 $hasil=perkalian(4,5);
13 echo"Perkalian4x5adalah$hasil";
14 echo"<br/>";
151
15 echo"Perkalian7x2adalah
16 ".perkalian(7,2);
?>

Padabariske3,sayamendefenisikanfungsiperkalian()yangmemerlukan
2parameter.SParameterditulissebagaivariabel,danandabebasmenentukannamavariabelini,
dalamcontohdiatas,parameteruntukfungsiperkalian()adalah$angka1dan$angka2.

Didalamfungsiperkalian(),sayamembuatvariabel$adan$byangdigunakanuntukmenampung
nilai$angka1dan$angka2,pemindahanvariabelinisebenarnyatidakdiperlukan,namunandaakan
seringmenemukanhalinididalamberbagaifungsi.Biasanyapemindahaninidilakukanagarlebih
mudahdansingkatdalammenggunakanvariabelpadapemrosesanfungsi.

Variabel$hasildigunakanuntukmenampungnilaiakhirdariperkalian$a*$b,danhasilnyadi
kembalikandenganperintahreturn$hasil.Returnsecaraotomatismenutupfungsi,danjikaanda
masihmemilikikodeprogramsetelahperintahreturn,perintahtersebuttidakakandiproses,oleh
karenaituperintahreturnharusdiletakkandiakhirpenulisanfungsi.

om
Selanjutnyapadabariske12,sayamemanggilfungsiperkalian()denganmenyimpannilai

.c
kembaliannyakedalamvariabel$hasil,ataubisadipanggilsecaralangsungdalamsatubarisperintah
echo,sepertipadabariske15.
om
Sebagaicontohfungsikedua,sayaakanmembuatfungsiuntukmenentukanluaslingkaran.Seperti
ilk

yangkitaketahui,luaslingkarandidapatdenganrumus:pi*jarijari*jarijari.Berikutadalahprogram
untukmenghitungluaslingkaran:
ia
un

1 <?php
2 //pemanggilanfungsi
3 echo"LuasLingkarandenganjarijari7cm
.d

4 =".luas_lingkaran(7)."cm";
w

5
6 //pembuatanfungsi
w

7 functionluas_lingkaran($jari2)
8 {
w

9 returnM_PI*$jari2*$jari2;
10 }
?>

Sayamemulaiprogramdenganlangsungmemanggilfungsiluas_lingkaran(7),padahalfungsi
tersebutbelumdidefenisikan.HalinidimungkinkankarenapadasaatkodePHPdijalankan,web
serverakanmencompilefungsifungsiyangadaterlebihdahulu.Sehinggakitabisamemanggil
fungsiyangdidefenisikansetelahdipanggil.

Padafungsiluas_lingkaran(),satusatunyaargumenyangdiperlukanadalahpanjangjarijari
lingkaran.M_PIadalahkonstantamatematisyangdisediakanPHP,yangnilainyasamadengan
konstantapi,yaitu3,14.Namunandajugabisamengubahnyamenjadi3.14*$jari2*$jari2.

PerbedaanantaraArgumendanParamater
152
Padapenjelasantentangfungsiperkalian()danluas_lingkaran(),sayamenggunakan2istilahuntuk
nilaiinputanfungsi,yakniargumendanparameter.Tetapiapaperbedaankeduanya?

Argumenmerujukkepadainputanfungsipadasaatfungsidipanggil,contohnyapadasaatsaya
memanggilfungsiperkalian(4,5),angka4dan5disebutargumen.

SedangkanParametermerujukkepadainputanfungsipadasaatpendefenisian.Sayamembuat
fungsiperkaliandenganperintah:functionperkalian($angka1,$angka2),
variabel$angka1dan$angka2adalahparameter.

Namunpadapenggunaanseharihari,istilahparameterdanargumenseringdipertukarkan.
TermasukdalammanualresmiPHP,dimanaistilahargumenlahyangseringdigunakan.Dalam
tutorialdiduniailkom,sayaakanmenggunakanistilahparameterdanargumensecarabergantian.

Dalamtutorialselanjutnya,kitaakanmembahastentangvariabelscope,yaitubatasanruanglingkup

om
darisebuahvariabel.SelanjutnyadalamTutorialBelajarPHP:PengertianVariabelScope,Global
Variabel,danStaticVariabeldalamPHP.

.c
om
ilk
ia
un
.d
w
w
w

153
PengertianVariabelScope
VariabelScope(atauruanglingkupvariabel)adalahjangkauankodeprogramdimanaperintah
programmasihbisamengaksessebuahvariabel.

JikakitamendefenisikansebuahvariabelpadasatufilePHP,makavariabeltersebutdapatdiakses
olehseluruhkodeprogrampadahalamanyangsama.Namunjikavariabeltersebutdidefenisikandi
dalamsebuahfungsi,variabelitubelumtentubisadiaksesdariluarfungsitersebut.Halinilahyang
dimaksuddenganVariabelScope.

Variabelyangdidefenisikandidalamsebuahfungsi,secaradefaulttidakdapatdiaksesolehkode
programdiluarfungsitersebut.Danbegitujugasebaliknya,variabelyangdidefenisikandiluar
fungsi,tidakbisadiakses daridalamfungsi.

ContohVariabelScopedalamFungsiPHP

om
Untukmemahamikonsepvariabelscope,berikutadalahcontohkodeprogramdalamPHP:

1 <?php
.c
om
2 $a=5;
3
4 functioncoba()
ilk

5 {
6 $a=10;
ia

7 $b=7;
8 }
un

9
10 //pemanggilanfungsicoba()
.d

11 coba();
12 echo$a; //5
w

13 echo$b; //error:notice
14 ?>
w
w

Padabariske2,sayamendefenisikanvariabel$a,danmemberikannilaiawal=5.Padabariske4
sayamembuatfungsicoba()danmendefenisikankembalivariabel$ayangkaliininilainyaadalah10,
danjugamembuatsebuahvariabelbaru,yakni$b.

Setelahmemanggilfungsicoba()padabariske11,sayakemudianmemeriksanilai$adengan
perintahecho.Danternyatanilai$aadalah5,bukan10.Danketikasayainginmengaksesvariabel
$b,PHPakanmengeluarkanperingatanbahwavariabel$bbelumdidefenisikan,denganpesan
error:Notice:Undefinedvariable:binD:\xampp\htdocs\belajar\test.phponline13.

Haliniterjadikarenavariabel$adan$bberadadidalamfungsicoba()yangmerupakanvariabel
yangberbedadenganvariabel$ayangberadadiluarfungsi.Jangkauanvariabel$adan$bhanya
beradadidalamfungsi.

Contohlainnya,perhatikankodeprogramberikutini:

1 <?php
154
2 $b=7;
3
4 functioncoba()
5 {
6 $a=10;
7 echo$a;
8 echo$b;
9 }
10
11 coba();
12 ?>

Padaprogramkaliini,sayamencobamengaksesvariabel$bdaridalamfungsicoba(),namunPHP
akanmengeluarkanpesanperingatanpadabariske8:Notice:Undefinedvariable:bin
D:\xampp\htdocs\belajar\test.phponline8yangberartibahwaPHPtidakmenemukanadanya
variabel$b.Variabel$bhanyadapatdiaksesdalamruanglingkupdiluarfungsicoba().

Konseppembatasanvariabelscopeiniterkesanmerepotkan,namunsebenarnyasangatberguna
untukmenisolasipenggunaanvariabelagartidaksalingmenimpa.Fungsifungsibawaandidalam

om
PHPdibuatolehberbagaiprogrammerdariseluruhdunia,danmungkinsajakitasecaratidaksengaja
menggunakannamavariabelyangsamadengannamavariabelyangadadalamsalahsatufungsi

.c
tersebut.Denganmenerapkanvariabelscope,PHPdapatterhindardaripermasalahantersebut.
om
PengertianGlobalVariabel
ilk
ia

Jikakitatetapinginmenggunakanvariabelyangdidefenisikandiluarfungsidansebaliknya,PHP
memperbolehkanhaltersebutdenganmenambahkansebuahkatakunciglobalsebelum
un

pendefenisiannamavariabel.
.d

Berikutcontohpenggunaankeywordglobal:
w

1 <?php
w

2 $a=7;
w

3
4 functioncoba()
5 {
6 global$a;
7 global$b;
8 $b=15;
9 echo$a; //7
10 echo$b; //15
11 }
12
13 coba();
14 echo$a; //7
15 echo$b; //15
16 ?>

Programdiatastidakakanmenghasilkanerrorsepertisebelumnya,dankitabisamengaksesnilai
variabel$adaridalamfungsicoba(),dannilaivariabel$bdiluarfungsi.

Katakunciglobalmembuatfungsidapatmengaksesvariabelyangdidefenisikandiluarfungsi.
155
PengertianStaticVariabel
StaticVariabel,atauvariabelstatisadalahjenisvariabelyangmempertahankannilainyapadasetiap
pemanggilanfungsi.Untukvariabelnormal,nilaidarivariabeltersebutakansecaraotomatisdihapus
padasaatfungsiselesaidijalankan,danakandibuatulangpadasaatfungsidipanggil.

Namunjikasebuahvariabeldinyatakansebagaistaticvariabel,makanilaivariabeltersebutakan
tetapdipertahankanwalaupunfungsitelahselesaidijalankan.Biasanyafungsiinidimanfaatkanjika
kitainginmenghitungberapakalisebuahfungsidipanggil.

BerikutadalahcontohprogrampenggunaanvariabelstatisdalamPHP:

1 <?php
2 functioncoba()
3 {
4 static$a=0;
5 $a=$a+1;

om
6 return"Iniadalahpemanggilanke$a
7 fungsicoba()<br/>";
8 }
9
.c
om
10 echocoba();
11 echocoba();
12 echocoba();
ilk

13 echocoba();
?>
ia

Jikaandamenghapuskeywordstaticpadabariske4,makavariabel$aakanselalubernilai0,
un

karenanilainyaakandihapuspadasetiapkalipemanggilanfungsicoba().Namundengan
membuat$asebagaistaticvariable,makanilaidari$aakanterusdipertahankansepanjang
.d

pemrosesanhalamanolehPHP.
w
w

Konseptentangvariabelscope,globalvariabeldanstaticvariabeliniakanmembantukitadalam
w

memahamicarakerjafungsidalamPHP.

Selanjutnyamasihtutorialtentangfungsi,kitaakanmembahasCaraPengecekanTipeDataArgumen
untukFungsiPHP.

156
PentingnyaPengecekanTipeDataArgumen
DalampembuatanfungsiPHP,selainmerancangcarakerjafungsi,kitajugaharusmemperkirakan
berapabanyakparameteryangdibutuhkanuntukfungsitersebut.Sebuahfungsibisamemiliki1,2
atau5parameter,namunbisajugatanpaparametersamasekali.

Tergantungtujuannya,sebuahfungsiumumnyahanyamemperbolehkantipedatatertentu
sebagaiargumen.Misalnya,untukfungsiyangberhubungandenganmatematika,biasanyahanya
membutuhkanargumendengantipedataangka(integerataufloat),danfungsipenghitungkata,
hanyamembutuhkantipedatastringsebagaiargumen.

Jikaandaadalahsatusatunyapenggunafungsiyangandarancangsendiri,makadapatdipastikan
bahwatidakakanadainputanargumenyangsalahtipedata.Namunjikaterdapatkemungkinan
fungsiyangdirancangakandigunakanolehpihaklain,pengecekantipedataargumenperlu
dirancangagarfungsiberjalansebagaimanamestinya.

om
Jikatipedataparametertidaksesuai,makafungsitidakakanberjalansebagaimanamestinya,dan
biasanyaPHPakanmengeluarkanpesanerror.Caraeleganuntukmengatasipermasalahanini

.c
adalahmembuatkodeprogramuntukmemeriksatipedataparameterinisebelummasukkepada
om
pemrosesandidalamfungsi.

Pengecekantipedatadilakukanpadaawalpemrosesanfungsi,danjikatipedatatidaksesuai,kita
ilk

bisamembuatpesanbahwafungsitidakdapatdiproses.Pengecekanapakah
ia

suatuargumenmerupakanbagiandaritipedatatertentu,dilakukandenganfungsikhususyangtelah
un

disediakanPHP.
.d

BerikutadalahlistfungsipengecekantipedatadalamPHP:
w

is_array($var):fungsipengecekanapakahtipedataadalaharray
w

is_bool($var):fungsipengecekanapakahtipedataadalahboolean
w

is_double($var):fungsipengecekanapakahtipedataadalahfloat
is_float($var):fungsipengecekanapakahtipedataadalahfloat
is_int($var):fungsipengecekanapakahtipedataadalahinteger
is_integer($var):fungsipengecekanapakahtipedataadalahinteger
is_long($var):fungsipengecekanapakahtipedataadalahinteger
is_null($var):fungsipengecekanapakahtipedataadalahnull
is_numeric($var):fungsipengecekanapakahtipedataadalahangka(integerdanfloat)
is_object($var):fungsipengecekanapakahtipedataadalahobjek
is_real($var):fungsipengecekanapakahtipedataadalahfloat
is_resource($var):fungsipengecekanapakahtipedataadalahresource(sepertivariabelyang
menampungkoneksikedatabase)

157
is_scalar($var):fungsipengecekanapakahtipedataadalahscalar(scalaradalahpenyebutan
untuktipedatadasar,sepertiinteger,float,stringatauboolean.Array,objectdanresource
bukanscalar)
is_string($var):fungsipengecekanapakahtipedataadalahstring

CaraPengecekanTipeDataArgumenFungsi
Fungsifungsidiatasdapatdimanfaatkanuntukpengecekantipedatasuatuvariabel,dantentusaja
jugaargumenfungsi.Agarlebihmudahdipahami,sayatelahmerancangfungsipangkat()yang
berfungsiuntukmelakukanpemangkatanbilangan.

Fungsipangkat()sayarancangdengan2buahinputanatauparameter.Parameterpertamaadalah
angkayangakandihitung,danparameterkeduaadalahnilaipangkatnya.pangkat(2,3)berarti2
pangkat3.pangkat(2,8)berarti2pangkat8.Keduaparameteriniharusberupaangka,dankhusus
untuknilaipangkat,harusberupaangkabulat(integer).

om
Berikutadalahkodeprogramfungsipangkat():

1 <?php
.c
om
2 functionpangkat($nilai,$pangkat)
3 {
4 if(is_numeric($nilai)AND
ilk

5 is_int($pangkat)) //pengecekantipedata
6 argumen
ia

7 {
8 //Jikaargumensesuai,maka
un

9 jalankanprosesfungsi
10 $hasil=1;
.d

11 for($i=1;$i<=$pangkat;$i++)
12 {
w

13 $hasil=$hasil*$nilai;
14 }
w

15 return$hasil;
w

16 }
17 else
18 {
19 //Bagianiniakandijalankanjika
20 tipedataargumenbukanangka
21 return"Tipedataargumenharus
22 berupaangka";
23 }
24 }
25
26 //Testbeberapakasusinputanuntuk
27 fungsipangkat()
28 echopangkat(5,2);
29 echo"<br/>";
30 echopangkat(5.6,2);
31 echo"<br/>";
32 echopangkat(2,8);
echo"<br/>";
echopangkat(5,2.9);
echo"<br/>";

158
echopangkat("lima",2);
echo"<br/>";
?>

om
Fungsipangkat()diatasterasasedikitpanjang,namunjikaandatelahmengikutiseluruhtutorialPHP
diduniailkom,makafungsitersebuttidakakanterlalusulituntukdipahami.

.c
Fungsipangkat()sayarancanguntukmenghitungpangkatdarisebuahangka.
om
Variabel$nilaidan$pangkatadalahparameteryangakanmenjadivariabelperantara.
ilk

Padabariske4sayamembuatpengecekanmasingmasingparameterdidalamlogikaIF.
Fungsiis_numeric()danis_int()akanmenghasilkannilaiTRUEjikakeduanyabenar,sehinggasaya
ia

menggabungkankeduanyakedalamlogikaAND.SeandainyalogikaANDinisalah,makakondisiIF
un

akanbernilaiFALSE,danbagianELSEakandijalankan(bariske13),dimanasayamembuatkalimat
Tipedataargumenharusberupaangkauntukmemberitahupenggunafungsibahwatipe
.d

argumennyaharusberupaangka.
w
w

Jikakeduakondisiis_numeric()danis_int()benar,makasayamembuatprosesperulangan
foruntukmencarihasilpemangkatan.Setelahhasilnyaditemukan,perintahreturnakan
w

mengembalikannilaitersebut(bariske11).

Darihasilpemanggilanfungsi,kitadapatmelihatbahwalogikaalurprogramsudahberjalanbenar,
danjikasayamemberikannilaiargumenyangsalah,hasilyangditampilkanbukankodeerrorPHP,
melainkanpesankesalahanyanglebihinformatif.

Denganmenggunakanfungsisepertiis_numeric()danis_int()kitadapatmelakukanpengecekan
tipedataterlebihdahulusebelummelakukanprosesfungsi.Haliniakanmenghindarierrorprogram
PHP,danmemberikanfleksibilitasuntukmelakukantindakanpencegahanjikatipedatayangdiinput
bukanyangseharusnya.

159
PengertianDefaultParameterdalamPHP
DefaultParameteradalahistilahuntukparameteryangmemilikinilaiawal,ataunilaidefault.

Sebagaicontoh,misalkankitamembuatfungsisederhana:tambah().Fungsiinimembutuhkan2buah
parameter,yakninilaiyanginginditambahkan.Berikutadalahcontohprogramnya:

1 <?php
2 functiontambah($a,$b)
3 {
4 return$a+$b;
5 }
6
7 echotambah(2,3); //hasil:5
8 echotambah(3,4); //hasil:7
9 ?>

Denganmenambahkandefaultparameter,kitabisamemanggilfungsitambah()hanyadengan1
inputanangka,ataubahkantidakperlusamasekali.Berikutadalahperubahannya:

om
1 <?php
2 functiontambah($a,$b=2)
3 {
.c
4 return$a+$b;
m
5 }
o
6
lk

7 echotambah(2); //hasil:4
8 echotambah(10); //hasil:12
ai

9 echotambah(4,4); //hasil:8
10 ?>
u ni

Perhatikandidalampembuatanfungsi,sayamenulisparameterkeduamenjadi$b=2.Inilahyang
.d

dimaksuddengandefaultparameter.Jikaparameter$btidakditulispadasaatpemanggilanfungsi,
w

nilai2akandijadikannilaiawal.
w

Dengannilaidefaultini,kitabisamerancangfungsidenganparameteryangbersifatopsional.
w

Parametertersebutbisadiisipadasaatpemanggilanfungsi,namunbolehjugadiabaikan.Sehingga
jikafungsidipanggiltanpaparameter,nilaiiniakanmenjadinilaiawaluntukfungsitersebut.

Fiturdefaultparameterbisadimanfaatkanuntukmembuatfungsiyangfleksibel,karenapadasaat
pemanggilanfungsikitatidakharusmenginputkanseluruhparameter,tetapiapayangdianggapperlu
saja.

CaraPenulisanDefaultParameterdalamPHP
Untukmembuatdefaultparameter,kitahanyabutuhmemberikannilaiawalpadasaatpendefenisian
parameter.BerikutadalahformatdasarpenulisandefaultparameterdalamPHP:

functionnama_fungsi
($parameter1=nilai_default1,$parameter2=nilai_default2)
{
160
//prosesfungsi
returnnilai_akhir;
}

nama_fungsiadalahnamadarifungsiyangakandibuat
$parameter1,$parameter2adalahvariabelyangakanmenampunginputanatauargumenpada
saatpemanggilanfungsi.
nilai_default1,nilai_default2adalahnilaidefaultuntukparameter.Nilaiiniakandigunakanjika
padasaatpemanggilanfungsinilaiparametertidakdiisi.
returnnilai_akhiradalahinstruksiuntukmengembalianhasilpemrosesanfungsi.

Agarlebihmudahmemahamikonsepdefaultparameter,sayaakanmengubah
fungsipangkat()yangtelahkitarancangpadatutorialCaraPengecekanTipeDataArgumenuntuk
FungsiPHP,berikutadalahcontohkodeprogramnya:

1 <?php

om
2 functionpangkat($nilai,$pangkat=2)
3 {
4 $hasil=1;
5 for($i=1;$i<=$pangkat;$i++)
.c
6 {
m
7 $hasil=$hasil*$nilai;
o
8 }
lk

9 return$hasil;
10 }
ai

11
12 //Testbeberapakasusinputanuntuk
ni

13 fungsipangkat()
u

14 echo"pangkat(5)=".pangkat(5);
15 echo"<br/>";
.d

16 echo"pangkat(3)=".pangkat(3);
17 echo"<br/>";
w

18 echo"pangkat(2,8)=".pangkat(2,8);
w

19 echo"<br/>";
20 echo"pangkat(3.5,3)=".pangkat(3.5,3);
w

21 echo"<br/>";
?>

161
om
Padacontohfungsipangkat()kaliinisayatidakmenggunakanfiturpengecekantipedataagar
contohprogramlebihsederhana.

.c
Padasaatmendefenisikanfungsipangkat(),sayamenambahkannilai2sebagaidefaultparameter
om
untukparameter$pangkat.Sehinggajikafungsipangkat()dipanggiltanpaparameterke2,
berarti$pangkatakandiisinilai2.
lk

Saatpemanggilanfungsipangkat(5),makakitahanyamenggunakan1buahargumen.Untuk
ai

argumenke2,akandiisinilaidefault,yakni2.Sehinggafungsiyangakandijalankansebenarnya
ni

adalahpangkat(5,2).
u
.d

Namunsaatpemanggilanfungsipangkat(2,8),makanilaiparameter$pangkatakanmenggunakan8,
bukanangka2,karenapadapemanggilankaliini,sayamembuat2buahargumen.
w
w
w

PenempatanDefaultParameter
Sebuahfungsitidakdibatasiberapabanyakdefaultparameteryangbolehdigunakan,namunjika
andainginmembuatdefaultparameter,danpadafungsiyangsamajugamenggunakanparameter
biasa,makadefaultparameterharusdiletakkandiakhirpendefenisianparameter.

Dengankatalain,setelahpendefinisianparameterdengannilaidefault,tidakbolehadaparameter
regulersesudahnya.ContohpendefenisianfungsiberikutiniakanmenyebabkanerrordalamPHP:

functiontambah($nilai1,$nilai2=3,$nilai3)

Haliniterjadikarenadefaultparameterdiletakkansebelumparameterbiasa.Contohdiatas
seharusnyaditulissebagai:

functiontambah($nilai1,$nilai2,$nilai3=3)

//atau
162

functiontambah($nilai1,$nilai2=3,$nilai3=3)

Dalamkeduacontohtersebut,dafaultparameterdiletakkansetelahpendefenisianparameterbiasa.

Defaultparametermerupakanfituryangbisadimanfaatkanuntukmembuatfungsikitalebihfleksibel,
karenacarapemanggilanfungsidapatdirancangdenganlebihsederhana.

om
.c
om
ilk
ia
un
.d
w
w
w

163
PengertianVariableParameter
VariableParameteradalahsebuahfiturdalamPHPdimanakitabisamembuatfungsidengan
jumlahparameteryangbisaberubahubah(variable).Umumnyasebuahfungsi
membutuhkanparameteryangtelahditentukansebelumnya,namundenganbeberapafungsi
khusus,PHPmembolehkankitauntukmembuatfungsidenganjumlahparametertidakdibatasi,bisa
0,2,5,bahkan100parameterdengan1namafungsi.

CaraPembuatanFungsidenganVariableParameter
Sebuahfungsidenganjumlahparameteryangtidakdiketahuitampaknyaagakaneh,namun
fleksibilitasinidapatdigunakanuntukkasuskasuspemogramankhusus.

Sebagaicontoh,sayaakanmembuatfungsipenambahan(),dimanafungsiiniakanmenambahkan
seluruhangkayangterdapatdidalamargumennya.Misalkanpenambahan(2,6,8)akan

om
menghasilkan16,danpenambahan(1,2,3,4,5,6)akanmenghasilkannilai21.Sayamenginginkan
fungsiinimendukungberapapunjumlahargumen.FungsiakanmengunakanfiturVariable
Parameter.
.c
om
Untukmembuatsebuahfungsidenganjumlahparameteryangtidakdiketahui,PHPmenyediakan3
ilk

fungsitambahanuntukmengaksesargumenyangdiinputpadasaatfungsidipanggil.Ketigafungsi
tersebutadalah:
ia
un

func_get_args():fungsiiniakanmengembalikanseluruhnilaiargumendalamsebuahfungsi.
Hasilnyadalambentukarray.
.d

func_num_args():fungsiiniakanmengembalikanbanyaknyajumlahargumendalam
w

pemanggilanfungsi,apakah1argumen,3argumen,atau10argumen.
w

func_get_arg(no_urut_argumen):fungsiiniakanmengembalikannilaidariargumenpada
w

nomorurutyangdiberikankepadanya.

Agarmudahmemahamifungsiketiganya,langsungsajakitamasukkedalamkodeprogram:

1 <?php
2 functionpenambahan()
3 {
4 //ambilvariableparameter
5 $array_argumen=func_get_args();
6 $jumlah_argumen=func_num_args();
7 $nilai_argumen_ke_2=func_get_arg(1);
8 //indexdimulaidari0
9
10 //tampilkanhasilvariableparameter
11 echo"Jumlahargumen:$jumlah_argumen";
12 echo"<br/>";
13
14 echo"Nilaiargumenke2:
15 $nilai_argumen_ke_2";
16 echo"<br/>";
164
17
18 echo"ArrayArgumen:";
19 var_dump($array_argumen);
20
21 echo"<br/>";
22 echo"<br/>";
23 return;
24 }
25
26 echo"Rinciandarifungsipenambahan(1,2)
27 :";
28 echo"<br/>";
29 penambahan(1,2);
30
31 echo"Rinciandarifungsi
32 penambahan(5,4,3,2,1):";
33 echo"<br/>";
34 penambahan(5,4,3,2,1);
35
echo"Rinciandarifungsi
penambahan(0,6,8,19):";

m
echo"<br/>";
echopenambahan(0,6,8,19);

o
?>

.c
om
ilk
ia
un
.d
w
w
w

MarikitamembahaskodePHPdiatas:

Padabariske2,sayamendefenisikanfungsipenambahan()tanpamenggunakanparameter.Untuk
membuatfungsivariableparameter(dimanajumlahparameternyayangtidakditentukan)dalam
pendefenisianfungsi,dibuattanpaparametersamasekali.

Padbaris57,sayamenjalankanke3fungsikhususyangtelahdijelaskansebelumnya.Fungsi
165
fungsiiniakanmengambilnilainilaidariargumenyangdiinputkanpadasaatpemanggilanfungsi.Lalu
nilaiinisayasimpankedalam3variabel,yakni$array_argumen,$jumlah_argumen,
dan$nilai_argumen_ke_2

Sebagaicatatan,untukmengambilnilaiargumenke2,sayadapatkannilainyadari
fungsifunc_get_arg(1).Karenaargumendihitungdariangka0,sehinggaargumenkeduaberadadi
indexke1.

Selanjutnyadaribaris1120sayamenampilkanhasilmasingmasingvariabel.Penulisanecho
<br/>digunakansematamataagartampilandibrowserlebihrapidanmudahdilihat.

Padasaatpemanggilanfungsipenambahan()padabariske26,30dan34,sayamemanggilnya
denganjumlahargumenyangberbedabeda,danandadapatmelihathasildarike3fungsikhusus
variabelparameter.

Denganke3fungsikhusustelahsuksesdijalankan,untukmembuatfungsipenambahan()yang

om
sebenarnya,sayatinggalmembuatperulangan(looping)untukmenambahkanseluruhargumen
argumenyangada.Berikutadalahkodeprogramfungsipenambahanversifinal:

.c
1 <?php
2 functionpenambahan()
om
3 {
4 //ambilvariableparameter
5 $array_argumen=func_get_args();
ilk

6 $jumlah_argumen=func_num_args();
7
ia

8 //prosespenambahan
un

9 $nilai=0;
10 for($i=0;$i<$jumlah_argumen;
11 $i++)
.d

12 {
13 $nilai+=func_get_arg($i);
w

14 }
w

15 return$nilai;
16 }
w

17
18 echo"penambahan(1,2)=".penambahan(1,2);
19 echo"<br/>";
20
21 echo"penambahan(5,4,3,2,1)=
22 ".penambahan(5,4,3,2,1);
23 echo"<br/>";
24
echo"penambahan(0,6,8,19,20,44,21)=
".penambahan(0,6,8,19,20,44,21);
?>

166
Fungsipenambahan()diatasakanmemprosestiaptiapargumenyangdiberikankepadafungsi
tersebut.Perulanganforakanmemprosesperulangansebanyakargumenyangdimiliki.

om
.c
om
ilk
ia
un
.d
w
w
w

167