Professional Documents
Culture Documents
http://creativecommons.org
Copyright 2008-2009
http://creativecommons.org
LinuxUserGroup STIKOMPSurabaya
Pendahuluan
UNDERCONSTRUCTION....
LUGSTIKOMSurabaya
BabIHTMLdanWorldWideWeb
HTMLdanWorldWideWeb
1.1CaraKerjaWWW Ketikakitamengunjungisebuahsituskatakanlah,google.com,adasebuahprosesdibaliklayar yangtidakandaketahui.Prosestersebutcukupkompleksnamun,jikadigambarkandalamsebuah diagramsederhanakuranglebihakansepertiberikut: REQUEST Browser User INTERNET RESPONSE Server
BABI
1.2HTML HTML/XHTMLmerupakanformattampilanyangdigunakanuntukmenampilkanhalamanwebsite. HTMLterdiridarisimbolsimboltertentuyangseringdisebutdengantag.Sebuahhalamanwebsite yangvalidselaludiapittag<html></html>.FileHTMLumumnyamemilikiakhiran*.htmatau *.html. TagtagpadaHTMLselaludiawalidengan<x>...</x>,dimanaxtagHTMLseperti<strong>,<p>, <div>,danlainlain.DibawahiniadalahtabelbeberapatagHTMLyangseringdigunakan. TagHTML <html></html> <head></head> <title></title> <body></body> <style></style> <strong></strong> <div></div> <a></a> Keterangan TaguntukmengapithalamanHTML Tagyangberisiinformasiumumdarihalaman JudulHalaman* Akanditampilkandibrowser UntukCSS* Untukmenebalkanteks Untukmembuatlayer Untukmembuathyperlink
20082009RioAstamalHal.1
LUGSTIKOMSurabaya
BabIHTMLdanWorldWideWeb
LUGSTIKOMSurabaya
BabIHTMLdanWorldWideWeb
20082009RioAstamalHal.3
LUGSTIKOMSurabaya
BabIHTMLdanWorldWideWeb
Gambar1.2 1.4Hyperlink Andatentuseringmelngklikgambaratautulisanyangmengarahkehalamanlainatauwebsite lainnya.Yangandaklikituadalahhyperlinkataulebihdikenaldenganistilahlinksaja.Untuk membuatlinkkitadapatmenggunakantag<a></a>.Duaattributyangpalingseringdigunakan padatag<a>adalahhrefdantarget. hrefdigunakanuntukmenentukanlokasitujuandarilink.DapatberuparelatifURLatauabsolut URL. targetdigunakanuntukmenentukanapakahhalamanakandibukapadajendela/windowbaruatau tidak.Defaultnyaadalahselfdimanalinktidakdibukapadawindowbaru.Jikainginmembukapada windowbarugunakannilai_blank. Untuklebihmemahamicarakerjalink,kitaakanmembuatduafileyaituprofilku.htmldandaftar situs.html. 1. Bukagedit/Notepad++ 2. Ketikkodeberikut:
1. <html> 2. <head> 3. <title>ProfilJSL</title> 4. </head> 5. <body> 6. <h2>ProfilKu</h2> 7. <ul> 8. <li><strong>NamaLengkap:</strong>JohnSeptianLennon<li> 9. <li><strong>Tempat/Tgl.Lahir:</strong>Lipermboh,14September1940</li> 10. <li><strong>Pekerjaan:</strong>RockerJalanan<li> 11. <li><strong>Wafat:</strong>Tewastertembakolehpenggemardidepan 12. kandangsapipada1980</li> 13. </ul> 14. <p>Inginlihatdaftarsitusfavoritsaya?<ahref="daftarsitus.html"> 15. klikdisini</a>.</p> 16.</body> 17.</html>
3. Simpandengannamaprofilku.html
20082009RioAstamalHal.4
LUGSTIKOMSurabaya
BabIHTMLdanWorldWideWeb
4. Buatfilebarulagi,kemudianketikkodeberikut:
1. <html> 2. <head> 3. <title>DaftarsitusfavoritJSL</title> 4. </head> 5. <body> 6. <h2>DaftarSitusfavoritku</h2> 7. <ol> 8. <li><atarget="_blank"href="http://www.google.com/">OmGoogle</a></li> 9. <li><atarget="_blank"href="http://www.milw0rm.com"> 10. CacingUnderground</a></li> 11. </ol> 12. <p><ahref="profilku.html">Lihatprofillengkap</a></p> 13.</body> 14.</html>
Gambar1.3 1.5MembuatTabel Untukmembuattabelkitadapatmenggunakantag<table></table>.Dalambeberapatahunterakhir, penggunaantabelsebagailayoutwebsitesudahtidakrelevanlagi,dandigantikanolehtagDIV.Saat inipenggunaantabeldikhususkanhanyauntukmenampilkandatasecaratabularsajatidakuntuk designhalaman. Beberapatagyangseringdigunakansaatmembuattabeladalah: Tag <tr></tr> <th></th>* Keterangan Digunakanuntukmembuatbarisbaru Digunakanuntukmembuatheadertabel
LUGSTIKOMSurabaya
BabIHTMLdanWorldWideWeb
3. Simpandenannamatabel.html 4. Bukadenganbrowseranda,hasilnyaakannampaksepertigambar1.4
Gambar1.4
20082009RioAstamalHal.6
LUGSTIKOMSurabaya
BabIHTMLdanWorldWideWeb
Contohpenggunaantagformsebagaiberikut:
<formaction=file.phpmethod=POST> ... </form>
Berikutinidaftarnilaiyangdapatdigunakanpadaattributtype: Nilaitype Keterangan text password file checkbox radio submit button reset Untukmenampilkantextbox Untukmenampilkanpasswordfield Untukmenampilkanprosesuploadfile(miripsepertitextboxnamun dengantombolBrowse) Untukmenampilkantombolcheckbox(lebihdarisatupilihan) Untukmenampilkantombolradio/option(hanyasatupilihan) Tomboluntukmensubmitform(defaultbuttonuntuksubmit) samadengansubmithanyasajabukandefaultbutton Untukmembersihkantampilkanform
20082009RioAstamalHal.7
LUGSTIKOMSurabaya
BabIHTMLdanWorldWideWeb
hidden
Inputtidakditampilkandibrowser.
20082009RioAstamalHal.8
LUGSTIKOMSurabaya
BabIHTMLdanWorldWideWeb
Gambar1.6
Dalamkasusrealworldnilaiyangadapadaattributnamedanvaluelahyangakandikirimkefile pemroses. 1.7MenampilkanGambar UntukmenampilkangambarpadahalamanHTMLdapatdigunakantag<img>.Beberapaattribut yangseringdigunakanadalahsrc,height,danwidth.Attributsrcdigunakanuntukmenentukan alamatdarigambaryangakanditampilkan,dapatberuparelatifURIatauabsolutURI.Attribut heightdigunakanuntukmenentukantinggi,sedangkanwidthuntukmenentukanlebar. Secaradefaultnilaiyangadapadaheightdanwidthadalahdalampixel,kecualiandamenambahkan tanda%.Makalebaratautinggidiukurmenggunakanpersen.Jikaandatidakmenyertakan attributheightdanwidth,makagambartersebutakanditampilkansesuaidenganukuranaslinya. Untuklebihmemahaminyaikutilangkahberikut: 1. 2. 3. 4.
1. 2. 3. 4. 5. 6. 7. 8.
BabIHTMLdanWorldWideWeb
5. Simpandengannamagambar.html
Gambar1.7 1.8XHTMLdanDOCTYPE ApakahXHTMLitu?apakahiaberbedadenganHTML?SebenarnyaXHTMLadalahHTMLhanya sajaXHTMLmengikutiformatXMLsebagaistandarpenulisannya.Jadisetiaptagharusmemiliki penutup. Andatentupernahmengetiktagtagtanpapenutupseperti<br>,<img>,dan<input>pada pembahasansebelumnya.PadaXHTMLsemuatagharusmemilikipenutup,jikatidakmaka halamanyangandabuattidaksesuaidenganstandaryangtelahditentukandandianggaptidakvalid/ compliantdenganstandarW3C. BerikutiniadalahbeberapacontohpenulisanyangvaliddiHTMLtapitidakdiXHTML. SALAH
<strong><span>HelloWorld</strong></ span> <inputtype=radiochecked> <br> <imgborder=1> <inputtype=buttonvalue=GO>>>> <STRONG>Hello</strong>
BENAR
<strong><span>Hello World</span></strong> <inputtype=radiochecked=checked/> <br/>atau<br></br> <imgborder=1/> <inputtype=button value=GO>>>/> <strong>Hello</strong>
Mungkinandabertanya,lalubagaimanasayamemberitahubrowserbahwahalamansayaadalah XHTML?SemuaituterletakpadaDOCTYPEhalamananda.DOCTYPEadalahpententutipe
20082009RioAstamalHal.10
LUGSTIKOMSurabaya
BabIHTMLdanWorldWideWeb
DalampembahasanselanjutnyakitaakanselalumenggunakanXHTMLbukanlagiHTML. DeklarasiversiXMLpadaawalhalamantidakharusditulisnamunsangat dianjurkanuntukditulis.Attributxmlnsharusditulisuntukmenentukan namespaceyangdigunakan. 1.9CSS(CascadingStyleSheets) CSSmerupakansuatuteknologiyangdigunakanuntukmempermudahpembuatansebuahwebsite. DenganCSSkitadapatdengancepatmengaplikasikansuatustylepadatagtertentu.Bahkankita dapatmeletakkanCSSpadasuatufilesehinggadapatdigunakanolehbanyakhalamansekaligus. ItumerupakansalahsatukelebihanCSS.CSSdiapitolehtag<style></style>danberadadiantara tag<head></head>.KelebihanlainnyaadalahandadapatmenyisipkankomentarpadaCSS,halini
20082009RioAstamalHal.11
LUGSTIKOMSurabaya
BabIHTMLdanWorldWideWeb
3. Simpandengannamacss.html 4. Lalujalankanpadabrowser,hasilnyaakanterlihatsepertigambar1.8
20082009RioAstamalHal.12
LUGSTIKOMSurabaya
BabIHTMLdanWorldWideWeb
Gambar1.8:ContohpenggunaanCSS DapatandalihatbahwatagyangkitadeklarasikanpadaCSSsecaraotomatisstyletagtersebut mengikutiaturanCSSyangkitabuat.Dengandemikiankitadapatdenganmudahmemodifikasi banyakelemensekaligushanyadarisebuahbarisCSS. 1.9.1CSSClassdanID Jikaandacukupkreatif,sayaharapmemangdemikian:)makaandamungkinberfikirkalau penggunaancarasepertipembahasansebelumnyatidaksepenuhnyabaik.Mengapa?Bayangkanjika padabeberapabagianpadahalaman,andatidakinginmengaplikasikanstyletersebut.Laluapayang andalakukan?Merubahnyasecaramanuallewatinlinestyle?Itumemangdapatdilakukantapitidak efisien. CarayangpalingefektifdanefisienadalahdenganmenggunakanclassdalamCSS.Dengan menggunakanclasskitadapatmenentukanletakbagianyangharuskitaaplikasikansuatustyle. Penggunakanclassdiawalidengantandatitik..Lihatcontohberikut:
.tebalmiring{fontweight:bold;fontstyle:italic} div.error{color:red;fontweight:bold}
20082009RioAstamalHal.13
LUGSTIKOMSurabaya
BabIHTMLdanWorldWideWeb
4. <htmlxmlns="http://www.w3.org/TR/xhtml1"> 5. <head> 6. <title>CSSClass&ID</title> 7. <styletype="text/css"> 8. body{fontfamily:Verdana,Serif;fontsize:11px} 9. #main{ 10. border:1pxsolid#cccccc; 11. padding:4px 12. } 13. div.box{ 14. border:1pxsolidorange; 15. backgroundcolor:#FFF8B9; 16. padding:6px3px; 17. color:#c60000; 18. width:200px 19. } 20. .greenforce{ 21. fontweight:bold; 22. color:green 23. } 24. </style> 25.</head> 26.<body> 27. <divid="main"> 28. <divclass="box"> 29. I'mtheWalRUS...!!<br/>GOOGOOG'JOOB!!! 30. </div> 31. <spanclass="greenforce">Classgreenforcepadatagspan</span> 32. <pclass="greenforce">Classgreenforcepadatagp</p> 33. </div> 34.</body> 35.</html>
3. Simpandengannamacssclass.html 4. Hasilnyaakantampaksepertigambar1.9jikaandajalankanpadabrowser
LUGSTIKOMSurabaya
BabIHTMLdanWorldWideWeb
karenaitutaginiliahyangakankitamanipulasi.Formatpenulisanhyperlinkpseudoclassadalah a:nama_aksi,dimananama_aksidapatberupa:
3. Simpandengannamapseudoclass.html 4. Bukabrowserandalalubukafiletersebut
20082009RioAstamalHal.15
LUGSTIKOMSurabaya
BabIHTMLdanWorldWideWeb
Gambar:1.10 1.9.3ExternalCSS Sampaisaatiniandasudahtahubagaimanamudahnyamemodifikasistyledenganmenggunakan CSS.AgardalampembuatanwebsitekitalebihefisienmakasebaiknyakitameletakkanfileCSS kitapadasuatufiletersendiri.Sehinggakitadapatmeloadnyapadahalamanyangmembutuhkan styeyangadapadafileCSStersebut. FileCSSyangakankitaloadtidakharusberadasatukomputerdenganfileHTMLkita.FileCSS tersebutdapatberadapadawebsitelain,inidimungkinkankarenakitadapatmenggunakanURL padasaatpemanggilanfile. AdaduametodeuntukmemanggilfileCSS,yangpertamaadalahdenganmenggunakantag<link> danyangkeduaadalahmenggunakanstatement@importdidalamCSS.Carayanglebihsering digunakanadalahmenggunakantag<link>.Tidakadayanglebihjelasdaripadalearningbydoing, karenaitulangsungsajakitapraktikkan. 1. Bukagedit/Notepad++ 2. Ketikkodeberikut:
1. body{fontfamily:Verdana,Serif;fontsize:14px} 2. #main{ 3. border:1pxsolid#cccccc; 4. padding:4px 5. } 6. div.error{ 7. border:1pxsolid#c60000; 8. borderleft:5pxsolid#c60000; 9. color:#c60000; 10. fontsize:14px; 11. padding:4px6px; 12. fontweight:bold; 13. width:350px; 14.}
3. Simpandengannamamy.css 4. Buatfilebarulagi,kemudianketikkodeberikut:
1. 2. 3. 4. 5. 6. <?xmlversion="1.0"encoding="UTF8"?> <!DOCTYPEhtmlPUBLIC"//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd"> <htmlxmlns="http://www.w3.org/TR/xhtml1"> <head> <title>ExternalStylesheet</title> 20082009RioAstamalHal.16
LUGSTIKOMSurabaya
BabIHTMLdanWorldWideWeb
7. <linkrel="stylesheet"type="text/css"href="my.css"/> 8. </head> 9. <body> 10. <divid="main"> 11. <h2>ExternalStylesheet/CSS</h2> 12. <divclass="error"> 13. WARNING!,memoryotakandasudah90%penuhsilahkankosongkanpikiran 14. pikirankotoryangtidakdiperlukan...!!! 15. </div> 16. </div> 17.</body> 18.</html>
5. Simpandengannamaexternalcss.html 6. Jalankanpadabrowser,hasilnyaakanterlihatsepertigambar1.11
Gambar1.11 1.10MembuatLayoutdenganDIV Sepertiyangsudahdisinggungpadapembahasantentangtabel,kalaupembuatandesignwebsite yangmenggunakantabeldapatdikatakansudahtidakrelevanlagi.Sebagaipenggantidaritabel adalahtagdiv.Tagdivmemangdikhususkanuntukmembagihalamankedalambeberapasegmen. Jikakitagabungkandenganpenggunakanattributiddanclass,makadivdapatkitagunakanuntuk layoutsebuahhalaman. Secarakasarsetiaphalamanyangbaikpastimemilikibeberapabagaian,misalnyahalaman tersebutterdiridariheader,kemudianbeberapakolomuntukcontentutama,dansebagainya.Semua ituterserahpadadesignernya. Padacontohkasusyangakankitabuatnantinya,kitaakanmembuatsebuahlayouthalamanyang terdiridari: 1. 2. 3. 4. 5. Headerutamahalaman 2Kolom 1untukcontentutama 1untukberitaataulainnya lebarhalamantidaklebihdari800px(untukberjagajaga,karenamasihbanyakuseryang resolusimonitornya800x600) 6. Footerhalaman
20082009RioAstamalHal.17
LUGSTIKOMSurabaya
BabIHTMLdanWorldWideWeb
LUGSTIKOMSurabaya 53.} 54.#footer{ 55. position:relative; 56. clear:both; 57. height:40px; 58. border:none; 59. background:#cfcfcf; 60. color:#fff; 61. width:100%; 62. textalign:center; 63.} 64.#footerspan{ 65. top:10px; 66. position:absolute; 67.} 68.#content{ 69. margin:2px2px8px2px; 70. float:left; 71. width:485px; 72. border:1pxsolid#ccc; 73. padding:6px10px; 74.} 75.#contenth1{ 76. borderbottom:2pxdashed#ccc; 77. marginbottom:16px; 78.} 79.#side{ 80. border:1pxsolid#ccc; 81. float:right; 82. margin:2px; 83. width:250px; 84. padding:2px; 85.} 86.#sideh1{ 87. borderbottom:1pxsolid#fafafa; 88.} 89.#sideh2{ 90. background:#cfcfcf; 91. padding:3px; 92. color:#333; 93. textalign:center; 94.} 95.#sidep{ 96. border:1pxsolid#ccc; 97. padding:4px; 98.} 99.a{textdecoration:none;color:#666} 100.a:visited{color:#666}
BabIHTMLdanWorldWideWeb
5. Simpandengannamalayout.css 6. Buatfilebaru,lanjutkandenganmengetikkodeberikut:
1. 2. 3. 4. 5. 6. 7. <?xmlversion="1.0"encoding="UTF8"?> <!DOCTYPEhtmlPUBLIC"//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd"> <htmlxmlns="http://www.w3.org/TR/xhtml1"> <head> <title>LayoutMenggunakanDIV</title> <linkrel="stylesheet"type="text/css"href="layout.css"/> 20082009RioAstamalHal.19
LUGSTIKOMSurabaya
BabIHTMLdanWorldWideWeb
8. </head> 9. <body> 10. <divid="container"> 11. <divid="header"> 12. <h1>R.I.PJohn</h1> 13. </div> 14. <divid="menu"> 15. <ul> 16. <li><aclass="aktif"href="#">Home</a></li> 17. <li><ahref="#">Books</a></li> 18. <li><ahref="#">Search</a></li> 19. <li><ahref="#">About</a></li> 20. <li><ahref="#">ContactUs</a></li> 21. </ul> 22. </div> 23. <divid="content"> 24. <h1>WorkingClassHero</h1> 25. <p>Assoonasyou'reborntheymakeyoufeelsmall<br/> 26.Bygivingyounotimeinsteadofitall<br/> 27.Tillthepainissobigyoufeelnothingatall<br/> 28.Aworkingclassheroissomethingtobe<br/> 29.<br/> 30.Theyhurtyouathomeandtheyhityouatschool<br/> 31.Theyhatedyourcleveranddespisedafool<br/> 32.Tillyou'resofuckingcrazyyoucan'tfollowtheirrules<br/> 33.Aworkingclassheroissomethingtobe<br/> 34.<br/> 35.Whenthey'vetorturedandscaredyoufortwentyhardyears<br/> 36.Thentheyexpectyoutopickacareer<br/> 37.Whenyoucan'treallyfunctionyou'resofulloffear<br/> 38.Aworkingclassheroissomethingtobe<br/> 39.<br/> 40.KeepyoudopedwithreligionandsexandTV<br/> 41.Andyouthinkyou'resocleverandclasslessandfree<br/> 42.Butyou'restillfuckingpeasantsasfarasIcansee<br/> 43.Aworkingclassheroissomethingtobe<br/> 44.Aworkingclassheroissomethingtobe<br/> 45.<br/> 46.There'sroomatthetoptheyaretellingyoustill<br/> 47.Butfirstyoumustlearnhowtosmileasyoukill<br/> 48.Ifyouwanttobelikeallthefolksonthehill<br/> 49.<br/> 50.Ifyouwanttobeaherowelljustfollowme</p> 51. </div> 52. <divid="side"> 53. <h2>IMAGINE...</h2> 54. <p>Imaginethere'snoheaven 55.It'seasyifyoutry 56.Nohellbelowus 57.Aboveusonlysky 58.Imagineallthepeople 59.Livingfortoday... 60.Imaginethere'snocountries 61.Itisn'thardtodo 62.Nothingtokillordiefor 63.Andnoreligiontoo 64.Imagineallthepeople 65.Livinglifeinpeace... 66.YoumaysayI'madreamer 67.ButI'mnottheonlyone 68.Ihopesomedayyou'lljoinus 20082009RioAstamalHal.20
LUGSTIKOMSurabaya 69.Andtheworldwillbeasone 70.Imaginenopossessions 71.Iwonderifyoucan 72.Noneedforgreedorhunger 73.Abrotherhoodofman 74.Imagineallthepeople 75.Sharingalltheworld... 76.YoumaysayI'madreamer 77.ButI'mnottheonlyone 78.Ihopesomedayyou'lljoinus 79.Andtheworldwillliveasone...</p> 80. </div> 81. <divid="footer"> 82. <span>19401980</span> 83. </div> 84. </div> 85.</body> 86.</html>
BabIHTMLdanWorldWideWeb
Gambar1.12
1.11Javascript
20082009RioAstamalHal.21
LUGSTIKOMSurabaya
BabIHTMLdanWorldWideWeb
Javascriptadalahsebuahbahasapemrogramanyangkhususdirancanguntukwebsite.Javascript hanyaberjalandisisiklien,artinyapenggunaanjavascripthanyaterbataspadawebbrowseranda saja,iatidakbisamelakukanmanipulasidatapadasisiserver.Saatinijavascriptmerupakansalah satuelementterpentingdariteknologiwebterkini.AJAXadalahsalahsatucontohpenggunakan javascriptyangsaatinibanyakdigunakanolehwebsiteWeb2.0. Namunpadabukuinisayahanyamembahasjavascriptsepintassaja,untuktahulebihjauhtentang javascriptandadapatmencarilewatgoogleatautunggubukusayaberikutnyahehehe... 1.11.1MenggunakanJavascript Secarasederhanasebuahscriptjavascriptdiapitolehtag<script></script>,namununtuklebih memperjelaspenggunaanjavascriptbiasanyaditambahkanattributlanguageatautype,contoh sepertiberikut:
<scriptlanguage=javascript> //javascriptkodedisini... </script> atau <scripttype=text/javascript> //javascriptkodedisini... </script>
LUGSTIKOMSurabaya 18.</body>
BabIHTMLdanWorldWideWeb
Gambar1.13:Javascriptprompt Padacontohdiataskitameletakkanjavascriptpadalevelglobaldenganmeletakkannyapadatag <head></head>.prompt,confirm,danalertadalahfungsifungsibuiltinjavascriptyangdapatkita gunakanuntukberinteraksidenganuser. JikaandafamiliardenganbahasasepertiJava,C++,C,atauanakcucunyamakaandatidakakan terlaluberlamalamamenyesuaikandiridengansyntaxjavascript.Halitukarenasyntaxjavascript sangatmiripdenganketigabahasayangtelahdisebutkandiatas.Untukmendeklarasikanvariabel padajavascriptkitadapatmenggunakankeywordvar. Javascriptversiterbarusudahmendukungpenggunaantipedatadalam pendeklarasianvariabelsepertiint,string,dll.Namununtukmenjagakompatibilitas sebaiknyatetapgunakankeywordvar. 1.11.2ManipulasiDOM SalahsatufungsiutamajavascriptadalahkemampuannyauntukmemanipulasiDOM(Document ObjectModel).DOMsendiriadalahsuatustrukturdidalamdokumenHTMLyangberbentukseperti treeyangkomponenkomponennyaadalahelemenHTMLsepertitag.Karenakemampuaninilah makadenganjavascriptkitadapatmenciptakanDHTMLEffect(DynamicHTMLEffect). SalahsatucontohpengaplikasianDHTMLEffectadalahhideandshowsuatuelemenHTML. Misal,jikasuatutomboldiklikmakatampilanhilangatautampil.Semuainidimungkinkankarena javascriptdapatmelakukanmodifikasistyleCSSpadaelemensecaralangsungatauparageeky lebihsukamenyebutnya:onthefly:). Untuklebihmemahaminyasebaiknyakitalangsungsajamencobanyalewatcontoh. 1. Bukagedit/Notepad++ 2. Ketikkodeberikut:
1. <?xmlversion="1.0"encoding="UTF8"?> 20082009RioAstamalHal.23
LUGSTIKOMSurabaya
BabIHTMLdanWorldWideWeb
2. <!DOCTYPEhtmlPUBLIC"//W3C//DTDXHTML1.0Transitional//EN" 3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd"> 4. <htmlxmlns="http://www.w3.org/TR/xhtml1"> 5. <head> 6. <title>ManipulasiDOM</title> 7. <scriptlanguage="javascript"> 8. functionberiWarna(){ 9. varkotak=document.getElementById('kotak'); 10. varwarna=document.getElementById('warna'); 11. //gantiCSSonthefly 12. kotak.style.backgroundColor='#'+warna.value; 13. } 14. functionhideShow(){ 15. varkotak=document.getElementById('kotak'); 16. varstatus=kotak.style.display; 17. //setCSSdisplaykeblockataunone 18. if(status=='block'){ 19. kotak.style.display='none'; 20. }else{ 21. kotak.style.display='block'; 22. } 23. } 24. </script> 25. <styletype="text/css"> 26. #kotak{ 27. border:3pxsolid#000; 28. padding:4px; 29. backgroundcolor:#ccc; 30. fontsize:18px; 31. fontweight:bold; 32. width:300px;height:200px; 33. } 34. </style> 35.</head> 36.<body> 37. <form> 38. <label>Warna</label> 39. #<inputtype="text"id="warna"name="warna"size="5"value="ccc"/> 40. <inputtype="button"onclick="beriWarna()"value="GantiWarna"/> 41. <inputtype="button"onclick="hideShow()"value="HideorShow"/> 42. </form> 43. <br/> 44. <divid="kotak"style="display:block"> 45. SAYABUKANDUKUN,PESULAPATAUBAHKANBUNGLONTAPISAYABISABERUBAH 46.WARNADANMENGHILANG.HEBATKAHSAYA?TENTUTIDAK.YANGHEBATADALAH 47.YANGMENULISSAYABUKANBEGITU?:p 48. </div> 49.</body>
LUGSTIKOMSurabaya
BabIHTMLdanWorldWideWeb
Agarobjectdivtersebutdapatkitamanipulasimakakitaperlumembuatkansebuahwadahuntuk menampungobjecttersebutdalamjavascript.UntukitudigunakanlahsalahsatufungsiDOMyaitu getElementById.Setelahkitamendapatkanobjecttersebutmakakitabebasuntukmemodifikasinya. Contohsederhanaadalahmengubahstylesheetdariobjecttersebut.Setiaptagyangdapat dimanipulasidenganCSSmemilikiatributstyle.BedanyajikapadaCSSformatpenulisannyajika terdiridariduakatamakadipisahdengantandacontoh:backgroundcolor,fontfamily,fontsize, dansebagainya.TapipadajavascriptdigunakanmodelCapitalis,contoh:backgroundColor, fontFamily,fontSizedansebagainya. Warnayangdigunakanpadacontohadalahmenggunakanhexadecimal.Contohcontohwarnayang dapatandagunakansebagaibahanujicobaadalah:90EE90,FFFF00,FFC0CB,danmasihbanyak lagi.
Gambar1.14:ManipulasiDOM
20082009RioAstamalHal.25
LUGSTIKOMSurabaya
BabIHTMLdanWorldWideWeb
RingkasanBabI PadababinikitatelahmempelajaridasardasarpenggunaanHTML,bagaimanamengunakantag tagnya,memanipulasiteksdenganCSSdanmendesainlayoutsederhanamenggunakanCSSdan DIV.HalyangperludiingatadalahkitaakanmenggunakanstandarXHTMLjadisetiaptagpasti memilikipenutup.OlehkarenaituuntukpembahasanselanjutnyaDOCTYPEyangakankitapakai adalahXHTMLTransitional. Padababinikitajugasedikitmembahastentangpenggunakanjavascriptsecarasederhanauntuk penyampaianinformasikeuserberupadialogboxdaninputbox.Selainitukitajugasedikit membahasbagaimanamemanipulasiDOMmenggunakanjavascript.FungsiDOMtersebutadalah getElementById.
20082009RioAstamalHal.26
LUGSTIKOMSurabaya
BabIIPengenalanPHP
BabII PengenalanPHP
2.1ApaItuPHP? PHP(akronimdariPHP:HypertextPreprocessor)adalahbahasaserversidescriptingyangdidesain khususuntukweb.PadahalamanHTMLandadapatmenempelkan(embed)kodePHP.KodePHP dieksekusidisisiserverbukandikomputerklien.DanhasilyangditampilkanadalahkodeHTML murni. PHPmerupakanhasilkerjaseorangbernamaRasmusLerdorfpada1995.NamunkemudianPHP berkembangdantidakhanyamerupakanproyekpribadiRasmus.PHPditulisulangdandengan banyakmenambahkanfungsifungsibaruolehZeevSuraskidanAndiGutmants(disingkatZend) danlahirlahPHP3pada1998. PHPmasihterusdikembangkan,padatahun2002PHPhadirdenganversike4.PHP4dilengkapi denganZendEnginedanmengalamibanyakpeningkatanperforma.Danyangpalingakhirpada tahun2005PHP5hadirdengandukunganZendEngine2.Banyakfiturbarukhususnyapada OOP(ObjectOrientedProgramming)danXML BerbedadengandenganPHP4,adopsiPHP5dikalanganindustrisangatlambat.Bahkanhingga sekarangmasihcukupbanyakhostingyangbelummenyediakanPHP5.Halinidikarenakan beberapafaktor,diantanranyakompatibilitasdenganversiPHP4. PadasaatbukuiniditulisversiterakhirdariPHPadalahversi5.2.8untukPHP5danversi4.4.9 untukPHP4.PHP6jugasudahdikembangkanmeskipundalamtahapalpha. Untuk instalasi PHP silahkan baca halaman pendahuluan.
Browser
HTMLResponse HTTPResponse
Web Server
PHP
HTMLResponse
LUGSTIKOMSurabaya
BabIIPengenalanPHP
berupamodul(bagiandariwebserver)atauterpisah(sebagaiCGI/FastCGI) 4. PermintaandiprosesolehPHPprocessorkemudianhasilnyadikirimkembalikewebserver 5. WebservermemaketkembalihasiltersebutdenganmenambahkanHTTPheaderdan dikirimkembalikebrowser. 6. BrowsermemprosesHTTPpacketdanmenampilkannyasebagaiHTMLkepadauser. 2.3VariabelpadaPHP Variabelmerupakanelemenyangsangatpentingdalambahasapemrograman.Hampirsetiap bahasapemrogramanmengenalapaituyangnamanyavariabel.Variabelsendirimerupakan suatubentukpenyimpanandatasementarapadamemorikomputeryangakandiolahlebih lanjut.ContohvariabelpadaPHPantaranlain:
$nama='LUGSTIKOMPSurabaya'; $angka_1=1; $angka_2=2; $hasil=$angka_1+$angka_2;
Ketentuanketentuandalammembuatvariabel: Variabeldapatterdiridarihuruf,angkadanunderscore(_)dantentusajatandadollar$. Variabeltidakdapatdiawalidenganangka. Variabelbersifatcasesensitiveartinyamembedakanhurufkecildanhurufbesar. Variabel$namatidaksamadengan$NaMa.Untukituhatihatidalampenulisannama variabel. Padavariabelandadapatmengubahnilainya,contoh$angka_1=1dapatandaubahmenjadi $angka_1=2saatsuatuscriptdijalankan.Iniberbedadengankonstanta(akandibahasberikutnya). 2.3.1TipeVariabel PadaPHPkitatidakperlumendeklarasikantipevariabelsecaraeksplisit,istilahkerennyadynamic typing.KarenaPHPsecaraotomatisdapatmenentukantipevariabelberdasarkannilaiyangada padavariabeltersebut.BerikutiniadalahbeberapatipedatayangdikudungolehPHP. Tabel2.1:MacammacamTipeData TipeData Integer String Double Boolean Array Object 2.3.2Konstanta Hampirsamadenganvariabel,konstantajugadigunakanuntukpenyimpanannilaisementara. Namunperbedaankonstantadenganvariabeladalahpadakonstantaandatidakdapatmengubah
20082009RioAstamalHal.28
LUGSTIKOMSurabaya
BabIIPengenalanPHP
1. <!DOCTYPEhtmlPUBLIC"//W3C//DTDXHTML1.0Transitional//EN" 2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd"> 3. <htmlxmlns="http://www.w3.org/TR/xhtml1"> 4. <head> 5. <title>VariabeldanKonstanta</title> 6. </head> 7. <body> 8. <?php 9. $menu='Menu:NasiPecel'; 10. define('HARGA',2500); 11. 12. $menu='Menu:NasiRawon'; 13. define('HARGA',5000); 14. 15. echo$menu.'<br/>'; 16. echoHARGA; 17.?> 18.</body> 19.</html>
LUGSTIKOMSurabaya
BabIIPengenalanPHP
Namunadasedikitperbedaan,dimanapadafilevariabel.phpterdapatsebuahtagbaruyaitu<?php dan?>.ScriptdalamtaginilahyangakandiprosesolehPHPprocessor.Semuatulisandiluartag<? phpdan?>akandiabaikanolehPHP. Carasepertiyangkitalakukanpadafilevariabel.phpadalahmenempelkanPHPpadaHTML.Jika kumpulanmp3andaadalahwesternsongmungkinandalebihsukamendengarnyadengansebutan embeddingPHPinsideHTML:). Jikaandamasihingatteorisebelumnyatentangvariabel,dapatdilihatbahwavariabel$menukita deklarasiulangdannilainyadiubahmenjadi'Menu:NasiRawon'(Baris:12).Namunhaltersebut tidakberlakupadakonstanta,padabaris13kitadeklarasikanulangkonstantaHARGA.Nilaidari konstantatersebuttidakberubah. Halituditunjukkanketikakitamencetaknilaidari$menudanHARGA.$menuberubahmenjadi 'NasiRawon'dankonstantatetap2500. PadaPHPuntukmencetaksesuatudapatdigunakanperintahecho.Contohpenggunaandapatdilihat padabaris15dan16.Padakonstantatidakperludiberitanda$. TIPS: Selainperintahechoandajugadapatmenggunakanperintahprintuntukmencetak output. 2.4Komentar Komentarpadascriptbertujuanuntukmemberitahupembacanya,baikoranglainataupunanda sendiri.Biasanyakomentardigunakanuntukmenjelaskantujuandituliskannyascripttersebut,siapa penulisnya,kapanditulisdansebagainya.Komentarjugabergunabagiandasendiriketikasuatu waktuandalupamengapaandamenulisfileini,fungsifungsinyauntukapadanbanyaklainnya. PHPakanmengabaikansemuatextdidalamkomentar.Jaditidakakanberpengaruhpadajalannya suatuscript. PHPmengenaltigajenisgayakomentar.PertamamodelbahasaC(banyakbaris/multiline), biasanyadapatdiletakkanpadabagianatasscript.Lihatlahscriptdibawahini.
1. <?php 3. /* 4. Filename:db.php 5. Author:RioAstamal 6. Created:2002200918:22 7. Updated:2205200916:11 8. Desc:FileyangmenyimpankonfigurasiuntukkoneksikeMySQLDatabase 9. */ 10. 11.?>
2.
YangkeduaadalahmodelC++,sepertiyangditunjukkandibawahini.
echo$nama;//cetaknama
20082009RioAstamalHal.30
LUGSTIKOMSurabaya
BabIIPengenalanPHP
Yangketigaadalahmodelshellscript.
echoHARGA;#cetakharga
Sekarangcobamodifikasifilevariabel.phptersebutdenganmenambahkankomentarlalulihat hasilnya.Apakahmasihsamaatautidak. 2.5Operator Operatormerupakansimbolyangdapatdigunakanuntukmemanipulasinilaidanvariabel.Pada bagiansebelumnyakitasudahmenggunakanbeberapaoperatordiantaranya=,==,<,.,+,*dan lainnya.Selanjutnyakitakanmembahasoperatoropratorinidanoperatorlainnyalebihdetillagi. 2.5.1OperatorAritmatik Pastiandasudahbanyakmengenalberbagaimacamoperatoraritmatik.Jikaandapernhah mengenyampendidikanyangbernamaSekolahDasaratauSDpastiandaseringmenulisoperator operatorinipadabukuanda:). Tabel2.2:OperatorAritmatik Operator
+ * / %
Nama
Penambahan Pengurangan Perkalian Pembagian Modulus
Contoh
$a+$b $a$b $a*$b $a/$b $a%$b
YangmungkinbapakatauIbuguruSDkitalupamengajarkanadalahtentangmodulus.Modulus merupakansisapembagiandariduabilangan.Lihatcontohberikutuntuklebihjelas.
1. <?php 2. 3. $bil1=10; 4. $bil2=5; 5. $bil3=3; 6. 7. echo$bil1%$bil2;//output0 8. echo$bil1%$bil3;//output1 9. echo$bil2%$bil3;//output2 10. 11.?>
Penggunaan
$a+=$b $a=$b
Samadengan
$a=$a+$b $a=$a$b 20082009RioAstamalHal.31
Nama
samadengan identik(harusbertipesama) tidaksamadengan tidaksamadengan kurangdari lebihdari kurangdariatausamadengan lebihdariatausamadengan
Penggunaaan
$a==$b $a===$b $a!=$b $a<>$b $a<$b $a>$b $a<=$b $a>=$b
Nama
NOT OR AND XOR
Penggunaaan
!$a $a||$b $a&&$b $axor$b
Keterangan
TRUEjika$aadalahFALSE,berlaku sebaliknya TRUEjika$aatau$bbernilaiTRUEatau keduanyabernilaiTRUE TRUEjika$adan$bbernilaiTRUE TRUEjika$aatau$bbernilaiTRUE, tapitidakkeduanya
LUGSTIKOMSurabaya
BabIIPengenalanPHP
Tabel2.5:OperatorIncrement/Decrement Nama
PreIncrement PostIncrement PreDecrement PostDecrement
Contoh
++$a $a++ $a $a
Keterangan
Tambah$adengansatu,lalukembalikannilainya Kembalikannilai$a,lalutambah$adengansatu Kurangi$adengansatu,lalukembalikannilainya Kembalikannilai$a,lalukurangi$adengansatu
Mungkinakanlebihjelasjikaandamelihatcontohdibawahini.
1. <?php 2. 3. echo"<h3>Postincrement</h3>"; 4. $a=5; 5. echo"Seharusnya5:".$a++."<br/>"; 6. echo"Seharusnya6:".$a."<br/>"; 7. 8. echo"<h3>Preincrement</h3>"; 9. $a=5; 10.echo"Seharusnya6:".++$a."<br/>"; 11.echo"Seharusnya6:".$a."<br/>"; 12. 13.echo"<h3>Postdecrement</h3>"; 14.$a=5; 15.echo"Seharusnya5:".$a."<br/>"; 16.echo"Seharusnya4:".$a."<br/>"; 17. 18.echo"<h3>Predecrement</h3>"; 19.$a=5; 20.echo"Seharusnya4:".$a."<br/>"; 21.echo"Seharusnya4:".$a."<br/>"; 22. 23.?>
LUGSTIKOMSurabaya
BabIIPengenalanPHP
Barisbaru(\n) Tab(\t)
Sebenarnyamasihbanyakkarakterspesiallainnyaseperti\r,\0,\bdanlainlain.Untuklebih jelasnyacobalahcontohberikut.
1. 2. 3. 4. 5. 6. 7. 8. 9. <?php echo"INI\t\tBANYAK\t\tSPASI<br/>"; echo"INIBARISSATU<br/>"; echo"INIBARISDUA<br/>"; echo"INIBARISTIGA<br/>"; echo"\n\n<br/>\n\n"; echo"INIBARISSATU<br/>\nINIBARISDUA<br/>\nINIBARISTIGA"; 20082009RioAstamalHal.34
BabIIPengenalanPHP
Outputdarikodediataskuranglebihsepertiberikut: INIBANYAKSPASI INIBARISSATU INIBARISDUA INIBARISTIGA INIBARISSATU INIBARISDUA INIBARISTIGA Jikadilihatdaribrowsertidakadayangberbedadarigroup1dangroup2yangadapadakode diatas.TapijikaandamelihatsourceHTMLdengancaraklikkananViewSource(Firefox)akan terlihatperbedaannya. TIPS: Untukmencetakspecialcharacterseperti\n,\t,\rdansebagainyaharusmenggunakan petikduasebagaipenutupstring.
20082009RioAstamalHal.35
LUGSTIKOMSurabaya
BabIIPengenalanPHP
20082009RioAstamalHal.36
LUGSTIKOMSurabaya
BabIIIStrukturKontrol
BabIII StrukturKontrol
StrukturKontrolmerupakansebuahstrukturdalambahasapemrogramanyangmembolehkan kitauntukmengontrolalurdarieksekusisuatuprogramatauscript.Strukturkontrol mencakupstrukturkondisidanstrukturpengulanganataulooping.Strukturkondisiterdiridari beberapastatementyaitu:
Sedangkanstrukturperulanganterdiridari:
JikakondisibernilaiTRUEmakaperintahyangadablokpada{}akandieksekusi.Perhatikan contohdibawah.
1. 2. 3. 4. 5. 6. 7. 8. <?php $nama='LUGSTIKOMP'; if($nama=='LUGSTIKOMP'){ echo'OK,andabolehmasuk.'; } ?>
BabIIIStrukturKontrol
Padacontohkeduaini,blokifhanyaakandieksekusijikanilaidariusialebihdariatausama dengan21DANnilaidariblack_listsamadenganfalse. TIPS: Andadapatmeletakkanifdidalamif(ifbersarang).Inijugaberlakuterhadapsemua strukturkontrollain. 3.1.2Statementif...else... Statementinihampirsamadenganifhanyasajapadaifelsekitadiberikanopsialternatifuntuk menentukanaksiyangdilakukanjikakondisibernilaifalse.Statementiniakansangatseringanda gunakandibandingpenggunakanifsaja.Syntaxpenulisanstatementif...else...adalahsebagai berikut:
if(kondisi){ //kodeyangdieksekusijikakondisitrue }else{ //kodeyangdieksekusijikakondisifalse }
Contohstatementif...else...sederhanadapatandalihatberikutini.
1. <?php 2. 3. $peghasilan=5000000; 4. if($penghasilan>=3000000){ 5. echo'PakToyib:"Nakjohn,kamubolehmenikahiputrisaya:)"'; 6. }else{ 7. echo'PakToyib:"Maukamukasihmakanapaputrisayananti!!!"'; 8. } 9. 10.?>
LUGSTIKOMSurabaya //kodeyangdieksekusi }elseif(kondisi_2){ //kodeyangdieksekusi }elseif(kondisi_3){ //kodeyangdieksekusi }elseif(kondisi_4){ //kodeyangdieksekusi }else{ //kodeyangdieksekusi }
BabIIIStrukturKontrol
Andadapatmenulisstatementelseifdenganspasi,yaituelseif.Keduanyasamasamadianggap validolehPHP. 3.1.4PenerapanTeoriif...elseif...else... HalyangpalingseringdilakukanolehPHPsebagaibahasaserversidescriptingadalahmemproses HTMLForm.PadacontohiniadalahintiawalandamemahamitugasPHPsebagaipemrosesHTML Form.KitaakanmembuatduafileyangpertamaadalahfileHTMLmurnisebagaiinputdatabagi user(HTMLForm).DanfileyangkeduaadalahfilePHPyangbertugasmemprosesdatayang dikirimolehfileHTML. 1. 2. 3. 4. 5. Jikabelumsilahkanbuatfolderbab3padafolderhtdocs/webpro PastikanApachesudahberjalan Bukagedit/Notepad++ Simpanfiletersebutdengannamaformtoko.html Ketikkodeberikut:
1. <!DOCTYPEhtmlPUBLIC"//W3C//DTDXHTML1.0Transitional//EN" 2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd"> 3. <htmlxmlns="http://www.w3.org/TR/xhtml1"> 4. <head> 5. <title>PembelianOnline</title> 6. </head> 7. <body> 8. <h3>LUGONLINESTORE</h3><hr/> 9. <formaction="formproses.php"method="post"> 10.<label>StickerLinux(Rp7.500,)</label><br/> 11.<label>Jumlah:</label> 12.<inputtype="text"name="sticker"value="0"size="4"/><br/><br/> 13. 14.<label>KaosLinux(Rp35.000,)</label><br/> 15.<label>Jumlah:</label> 16.<inputtype="text"name="kaos"value="0"size="4"/><br/><br/> 17. 18.<label>JacketLinux(Rp35.000,)</label><br/> 19.<label>Jumlah:</label> 20.<inputtype="text"name="jacket"value="0"size="4"/><br/><br/> 21. 22.<inputtype="submit"value="Proses"/> 23.</form> 24.</body> 25.</html>
LUGSTIKOMSurabaya
BabIIIStrukturKontrol
9. Ketikkodeberikut:
1. <?php 2. 3. //buatvariabeluntukmenampungdatadarifileformtoko.html 4. $sticker=$_POST['sticker'];//datasticker 5. $kaos=$_POST['kaos'];//datakaos 6. $jacket=$_POST['jacket'];//datajacket 7. 8. //hargadarimasingmasingproduk 9. define('HARGA_STCIKER',7500); 10.define('HARGA_KAOS',35000); 11.define('HARGA_JACKET',55000); 12. 13.//totalharga 14.$total=(HARGA_STICKER*$sticker)+(HARGA_KAOS*$kaos)+ 15.(HARGA_JACKET*$jacket); 16. 17.$diskon=0; 18.$pesan_diskon='0%'; 19. 20.//cektotaluntukmenentukandiskon 21.if($total>=50000&&$total<75000){ 22.$diskon=0.05;//diskon5% 23.$pesan_diskon='5%'; 24.}elseif($total>=75000&&$total<100000){ 25.$diskon=0.1;//diskon10% 26.$pesan_diskon='10%'; 27.}elseif($total>=100000){ 28.$diskon=0.15;//diskon15% 29.$pesan_diskon='15%'; 30.} 31.$subtotal=$total($total*$diskon); 32. 33.?> 34.<!DOCTYPEhtmlPUBLIC"//W3C//DTDXHTML1.0Transitional//EN" 35."http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd"> 36.<htmlxmlns="http://www.w3.org/TR/xhtml1"> 37.<head> 38.<title>PembelianOnline</title> 39.<styletype="text/css"> 40..tanda{backgroundcolor:#cfcfcf;} 41.</style> 42.</head> 43.<body> 44.<strong>LUGONLINESTOREDATAPEMBELIAN</strong><hr/> 45.<tableborder="1"> 46.<trclass="tanda"> 47.<th>Barang</th><th>Jumlah</th><th>Total</th> 48.</tr> 49.<tr> 50.<td>Sticker</td> 51.<td><?phpecho$sticker;?></td> 52.<td><?phpecho($sticker*HARGA_STCIKER);?> 53.</tr> 54.<tr> 55.<td>Kaos</td> 56.<td><?phpecho$kaos;?></td> 57.<td><?phpecho($kaos*HARGA_KAOS);?> 58.</tr> 59.<tr> 60.<td>Jacket</td> 20082009RioAstamalHal.40
LUGSTIKOMSurabaya 61.<td><?phpecho$jacket;?></td> 62.<td><?phpecho($jacket*HARGA_JACKET);?> 63.</tr> 64.<trclass="tanda"> 65.<tdcolspan="2">TOTAL</td> 66.<td><?phpecho$total;?></td> 67.</tr> 68.<trclass="tanda"> 69.<tdcolspan="2">Diskon</td> 70.<td><?phpecho$pesan_diskon;?></td> 71.</tr> 72.<trclass="tanda"> 73.<tdcolspan="2">SUBTOTAL</td> 74.<td><?phpecho$subtotal;?></td> 75.</tr> 76.</table> 77.</body> 78.</html>
BabIIIStrukturKontrol
Gambar3.1
Gambar3.2
LUGSTIKOMSurabaya
BabIIIStrukturKontrol
<inputtype="text"name="sticker"value="0"size="4"/>
Artidarikodediatasadalahdatayangakankitakirimkankefileformproses.phpbernamasticker. Jadipadafileformproses.phpkitamengambilnyadengancara:
$sticker=$_POST['sticker'];//datasticker
Kodediatasberartikitamenangkapdatayangdikirimdenganmetodepostdandatatersebut bernamasticker.Isidari$_POSTharussamadenganisidarinamepadaform.Namavariabel penampungtidakharussamaakantetapilebihmudahjikasamadengandatayangdipost. TIPS: PHPtidakmemperdulikantataletakkodeanda.Jadidesainlahkodeandasenyaman mungkinuntukdibaca. 3.1.5Statementswitch...case...break Sebenarnyastatementswitch...case...breaksamadenganif...elseif...dimanakitadapatmemilihlebih dariduakondisiataulebih.Selainitupadaswitchkitadapatmemilihkondisitidakhanyapadanilai trueataufalsesajatetapikitajugadapatmemilihdariberbagaitipelainsepertiinteger,boolean, stringdanlainlain.Syntaxpenulisanstatementswitchadalahsebagaiberikut.
switch($kondisi){ casekondisi_1: //kodeyangdieksekusi break; casekondisi_2: //kodeyangdieksekusi break; casekondisi_3: //kodeyangdieksekusi break; default: //kodeyangdieksekusijikatidakadayangmemenuhi break; }
BabIIIStrukturKontrol
3.2StrukturPerulangan(Looping) Salahsatukelebihankomputeradalahmelakukanpekerjaanselamaberulangulangtanparasabosan sedikitpun.Berbedadenganmanusia,tidakdapatdibayangkanjikakomputertibatibabosanketika menjalankanperintah:D.Dalampemrogramanperulanganatauloopingadalaheksekusisuatublok kodeselamasuatukondisiloopingmasihterpenuhi.Iniberbedadenganstrukturkontrolyanghanya mengeksekusiblokkodesatukalisaja. Agarpengertianloopingmudahdicerna,sepertimakanansajadicerna:p,kitaakanmembuatsebuah fileHTMLstaticyangkemudianakankitabuatduplikatnyatetapimenggunakanloop. 1. 2. 3. 4. Bukagedit/Notepad++ Buatfilebaru Simpandengannamabensin.htmlletakkanpadafolderhtdocs/webpro/bab3 Ketikkodeberikut:
1. <!DOCTYPEhtmlPUBLIC"//W3C//DTDXHTML1.0Transitional//EN" 2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd"> 3. <htmlxmlns="http://www.w3.org/TR/xhtml1"> 4. <head> 5. <title>BensinStatic</title> 6. </head> 7. <body> 8. <tablecellpadding="4"> 9. <trstyle="backgroundcolor:#cfcfcf"> 10.<th>Bensin(Liter)</th><th>Harga(Rp)</th> 11.</tr> 12.<tr> 13.<td>5</td><td>22500</td> 14.</tr> 15.<tr> 16.<td>10</td><td>45000</td> 17.</tr> 18.<tr> 19.<td>15</td><td>67500</td> 20.</tr> 21.<tr> 22.<td>20</td><td>90000</td> 23.</tr> 24.<tr> 25.<td>25</td><td>112500</td> 26.</tr> 27.</table> 28.</body> 29.</html>
20082009RioAstamalHal.43
LUGSTIKOMSurabaya
BabIIIStrukturKontrol
Keterangan: ekspresi1:dieksekusisatukalisaatloopmulaidieksekusi,biasanyauntukinisialisasi variabelcounter kondisi:diceksetiaploopapakahkondisimasihtrue,jikayamakablokkodetetap dieksekusi,berlakusebaliknyajikafalse ekspresi2:dieksekusisetiapakhirloop,disinibiasanyadigunakanuntukmengubahnilai variabelcounter 3.2.2PenerapanTeorifor... Sepertiyangpernahdisinggungsebelumnya,bahwakitaakankanmenduplikasifilebensin.html tetapidenganmenggunakanperulangan,dalamhalinikitagunakanfor. 1. 2. 3. 4.
1. 2. 3. 4. 5. 6. 7. 8. 9.
Bukagedit/Notepad++ Buatfilebaru Simpan dengan nama bensin_for.php pada folder htdocs/webpro/bab3 Ketikkodeberikut:
<!DOCTYPEhtmlPUBLIC"//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd"> <htmlxmlns="http://www.w3.org/TR/xhtml1"> <head> <title>BensinFor</title> </head> <body> <tablecellpadding="4"> <trstyle="backgroundcolor:#cfcfcf"> 20082009RioAstamalHal.44
LUGSTIKOMSurabaya
BabIIIStrukturKontrol
10.<th>Bensin(Liter)</th><th>Harga(Rp)</th> 11.</tr> 12.<?php 13.$harga=4500;//semogatidaknaiklagi:p 14. 15.//lakukanloopdengankelipatan5sampaidengan25 16.for($liter=5;$liter<=25;$liter+=5){ 17.echo"<tr>\n"; 18.echo"<td>$liter</td><td>".($harga*$liter)."</td>\n"; 19.echo"</tr>\n"; 20.} 21.?> 22.</table> 23.</body> 24.</html>
6. Simpankembalifilebensin_for.php 7. Arahkanbrowserandakehttp://localhost/webpro/bab3/bensin_for.php 8. Hasilnyaakansamapersissepertigambar3.3 PenjelasanSingkatFilebensin_for.php Nilaivariabel$literawalkitaset5,kondisiyangingincekadalahjika$liter<=25.Selamamasih terpenuhi(kondisitrue)makablokkodeakantetapdieksekusi.Setiapselesaieksekusinilaidari variabelcounteryaitu$literkitatambahdengan5. Loopingakanberhentijikasudahmencapaistep6.Karenapadasaatitunilai$litersudahmencapai 30danitutidakmemenuhisyaratkondisidimana$liter<=25. 3.2.3Statementwhile... Berbedadenganforpadawhilekitatidakbisameletakkaninisialisasivariabel,kondisi,dancounter padasatubarissaja.Syntaxpenulisanwhileadalahsebagaiberikut.
while(kondisi){ //blokkodeyangdieksekusi }
LUGSTIKOMSurabaya
BabIIIStrukturKontrol
4. <head> 5. <title>BensinWhile</title> 6. </head> 7. <body> 8. <tablecellpadding="4"> 9. <trstyle="backgroundcolor:#cfcfcf"> 10.<th>Bensin(Liter)</th><th>Harga(Rp)</th> 11.</tr> 12.<?php 13.$harga=4500;//semogatidaknaiklagi:p 14.$liter=5;//inisialisasi$literdiluarloop 15. 16.//lakukanloopdengankelipatan5sampaidengan25 17.while($liter<=25){ 18.echo"<tr>\n"; 19.echo"<td>$liter</td><td>".($harga*$liter)."</td>\n"; 20.echo"</tr>\n"; 21.$liter+=5;//tambahcounter 22.} 23.?> 24.</table> 25.</body> 26.</html>
Blokkodedoakandieksekusiselamakondisiwhilemasihbernilaitrue. 3.2.6PenerapanTeorido...while 1. 2. 3. 4.
1. 2. 3. 4. 5. 6. 7. 8.
20082009RioAstamalHal.46
LUGSTIKOMSurabaya
BabIIIStrukturKontrol
9. <trstyle="backgroundcolor:#cfcfcf"> 10. <th>Bensin(Liter)</th><th>Harga(Rp)</th> 11. </tr> 12. <?php 13. $harga=4500;//semogatidaknaiklagi:p 14. $liter=5;//inisialisasi$literdiluarloop 15. 16. //lakukanloopdengankelipatan5sampaidengan25 17. do{ 18. echo"<tr>\n"; 19. echo"<td>$liter</td><td>".($harga*$liter)."</td>\n"; 20. echo"</tr>\n"; 21. $liter+=5;//tambahcounter 22. }while($liter<=25) 23. ?> 24. </table> 25.</body> 26.</html>
5. Simpankembalifiletersebut 6. Arahkanbrowserkehttp://localhost/webpro/bab3/bensin_while.phpuntukmelihathasilnya Jikaandamasihpenasarandengankatakataminimaldieksekusisatukalicobagantinilai$liter dari5menjadi30saatinisialisasi.Kodepastiakandieksekusisatukalikemudianselesai.Halini tidakberlakuuntukfordanwhile. Jikaditanyakapankitamenggunakando...while,susahjugajawabnya.Yangjelassecaranalurinanti andaakanmenggunakannyatanpadisuruhsuruhoranglain:p. TIPS: Loopingforbiasadigunakanjikakitatelahmengetahuibatasawaldanakhirdarisuatu perulangan. Untuksementarakitatidakmenbahasduluforeachkarenaloopinididesainkhususuntuk penggunaandidalamarray.Jadipembahasanforeachakankitalakukansaatmembahastentang array.
20082009RioAstamalHal.47
LUGSTIKOMSurabaya
BabIIIStrukturKontrol
Sedangkanstrukturperulanganterdiridari:
20082009RioAstamalHal.48
LUGSTIKOMSurabaya
BabIVFiledanArray
BabIV FiledanArray
4.1BerinteraksidenganFile Filemerupakansalahsatuaspekpentingdalamsebuahaplikasi.Seringkalisebuahfiledibuatuntuk berbagaitujuanmisalnya,menyimpankonfigurasi,temporaryfile,cachedanmasihbanyaklagi. InteraksiPHPdenganfilesangatmiripdenganbahasaC.Prosesumumyangdilakukanadalah:
Parameter 2 Modeyangdapatdigunakanpadafopenadalah: Mode Deskripsi 'r' 'r+' 'w' 'w+' 'a' 'a+' Bukafilehanyauntukbacasaja;pointerfilediletakkandiawalfile. Bukafileuntukbacadantulis;ponterfilediletakkandiawalfile. Bukafileuntuktulissaja;pointerdiletakkandiawalfilelalutruncate(overwrite);jika filetidakada,buatfiletersebut. Bukafileuntukbacadantulis;pointerdiletakkandiawalfilelalutruncate(overwrite); jikafiletidakada,buatfiletersebut. Bukafileuntuktulissaja;pointerdiletakkandiakhirfile(append);jikafiletidakada, buatfiletersebut. Bukafileuntukbacadantulis;pointerdiletakkandiakhirfile(append);jikafiletidak ada,buatfiletersebut.
Copyright2009RioAstamalHal.49
LUGSTIKOMSurabaya
BabIVFiledanArray
TIPS: AgarkompatibelantarsistemoperasiyangmemilikiendinglineyangberbedaLinux (\n),MacOS(\r),danWindows(\r\n)tambahkanopsi'b',misal'wb'.(b=binarymode) Kitaakanmenggunakancontohformtoko.htmlyangterdapatpadabab3.Formatpenyimpanan yangkitagunakanadalah: jml_kaosSticker#harga_kaos#jml_kaosKaos#harga_kaos#jml_jacketJacket# harga_jacket#total#diskon#subtotal OK,langsungajakitacobauntukmenulisfile. 4.1.3PenerapanTeoriPenyimpananFile Sebelummemulaipastikanandasudahmembuatfolderbarudidirektorihtdocsandadengannama bab4.Kitaakanmenyimpanfiletersebutdidalamfolderbab4dengannamafaktur.txt.Ikutilangkah langkahberikut: 1. Copyfileformtoko.htmldanformprosesdarifolderbab3kebab4 2. Modifikasifileformproses.php(padabab4)agarmenampilkanlinkkehalamanfaktur.
1.<?php 2.//buatvariabeluntukmenampungdatadarifileformtoko.html 3.$sticker=$_POST['sticker'];//datasticker 4.$kaos=$_POST['kaos'];//datakaos 5.$jacket=$_POST['jacket'];//datajacket 6.//hargadarimasingmasingproduk 7.define('HARGA_STICKER',7500); 8.define('HARGA_KAOS',35000); 9.define('HARGA_JACKET',55000); 10.//totalharga 11.$total=(HARGA_STICKER*$sticker)+(HARGA_KAOS*$kaos)+ 12.(HARGA_JACKET*$jacket); 13.$diskon=0; 14.$pesan_diskon='0%'; 15.//cektotaluntukmenentukandiskon 16.if($total>=50000&&$total<75000){ 17.$diskon=0.05;//diskon5% 18.$pesan_diskon='5%'; 19.}elseif($total>=75000&&$total<100000){ 20.$diskon=0.1;//diskon10% 21.$pesan_diskon='10%'; 22.}elseif($total>=100000){ 23.$diskon=0.15;//diskon15% 24.$pesan_diskon='15%'; 25.} 26.$subtotal=$total($total*$diskon); 27.//tuliskefile,modeyangdigunakanadalah'a'=>append 28.//filefaktur.txtakandibuatotomatisjikabelumada 29.$fp=fopen('faktur.txt','a'); 30.$isi_file="$stickerSticker#".(HARGA_STICKER*$sticker)."#". 31."$kaosKaos#".(HARGA_KAOS*$kaos)."#". 32."$jacketJacket#".(HARGA_JACKET*$jacket)."#". 33."$total#$pesan_diskon#$subtotal\n"; 34.fwrite($fp,$isi_file); 35.fclose($fp); Copyright2009RioAstamalHal.50
LUGSTIKOMSurabaya
BabIVFiledanArray
36.?> 37.<!DOCTYPEhtmlPUBLIC"//W3C//DTDXHTML1.0Transitional//EN" 38."http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd"> 39.<htmlxmlns="http://www.w3.org/TR/xhtml1"> 40.<head> 41.<title>PembelianOnline</title> 42.<styletype="text/css"> 43..tanda{backgroundcolor:#cfcfcf;} 44.</style> 45.</head> 46.<body> 47.<strong>LUGONLINESTOREDATAPEMBELIAN</strong><hr/> 48.<tableborder="1"> 49.<trclass="tanda"> 50.<th>Barang</th><th>Jumlah</th><th>Total</th> 51.</tr> 52.<tr> 53.<td>Sticker</td> 54.<td><?phpecho$sticker;?></td> 55.<td><?phpecho($sticker*HARGA_STCIKER);?> 56.</tr> 57.<tr> 58.<td>Kaos</td> 59.<td><?phpecho$kaos;?></td> 60.<td><?phpecho($kaos*HARGA_KAOS);?> 61.</tr> 62.<tr> 63.<td>Jacket</td> 64.<td><?phpecho$jacket;?></td> 65.<td><?phpecho($jacket*HARGA_JACKET);?> 66.</tr> 67.<trclass="tanda"> 68.<tdcolspan="2">TOTAL</td> 69.<td><?phpecho$total;?></td> 70.</tr> 71.<trclass="tanda"> 72.<tdcolspan="2">Diskon</td> 73.<td><?phpecho$pesan_diskon;?></td> 74.</tr> 75.<trclass="tanda"> 76.<tdcolspan="2">SUBTOTAL</td> 77.<td><?phpecho$subtotal;?></td> 78.</tr> 79.</table> 80.<p><ahref="faktur.php">LihatFaktur</a></p> 81.</body> 82.</html>
BabIVFiledanArray
Gambar4.1:TambahanlinkLihatFaktur
Gambar4.2:Databeberapafakturtransaksiyangtercatat
4.1.4PenjelasanSingkatPenerapanTeoriPenyimpananFile
Copyright2009RioAstamalHal.52
LUGSTIKOMSurabaya
BabIVFiledanArray
Padafileformproses.phpmodifikasiyangdilakukandapatdilihatmulaidaribaris2735danjuga bariske80.Padabaris2735yangkitalakukanadalahmelakukanpenulisansebuahfiledengan namafaktur.txt.Karenakitatidakmenyertakanpathuntukdirektorifilemakadiasumsikanfile faktur.txtakanditulispadadirektoriyangsama. Modefileyangkitagunakanadalah'a',agardatafakturfaktursebelumnyayangsudahtertulistidak tertimpa/overwritemelainkankitatambahkandiakhir(append).Separatoryangdigunakanuntuk setiapitemadalah#.Formatiniakantetapkitagunakan,karenapadapembahasanarraykita akanmengextractsetiapitemberdasarkanseparatortersebut. Padafilefaktur.phppembacaanfiledilakukandenganmemanggilfungsireadfile().Fungsireadfile akanmembacasebuahfiledanlangsungmenampilkannyakeoutput.Karenasetiapbarisdipasahkan dengankarakter\nmakakitaperlutagpreformattedtext<pre>agarfileditampilkanapaadanya. 4.1.5FungsifungsiLain Beberapafungsilainyangdapatdigunakanuntukmanajemenfilediantarnyabacadanhapusantara lainfungsifile_get_contents(),fread(),danunlink(). a.file_get_contents() Fungsifile_get_contents()digunakanuntukmembacasebuahfiledanmenyimpannyasebagai string.Sebagaicontohkitadapatmenggantifungsidarireadfile()padafilefaktur.phpdengan perintahberikut:
$data=file_get_contents('faktur.txt'); echo$data;
atau
$fp=fopen('faktur.txt','r'); $data=''; while(!feof($fp)){ $data.=fread($fp,2048); } fclose($fp); echo$data;
LUGSTIKOMSurabaya
BabIVFiledanArray
c.fgets() Penggunaanfungsifgets()hampirsamadenganfread()padametodeyangkedua.
$fp=fopen('faktur.txt','r'); $data=''; while(!feof($fp)){ $data.=fgets($fp,2048); } fclose($fp); echo$data;
Fungsiunlink()akanmengembalikannilaibooleanmengenaistatuspenghapusandarisebuahfile. TRUEjikafileberhasildihapusdanFALSEjikagagaldihapus. TIPS: Masalahyangseringmunculjikamenyangkutpembuatandanpenghapusanfileadalah masalahpermission(hakakses).Haliniumumterjadipadasistemoperasiberbasis UNIX.Jadiperhatikanpermissiondaridirektori/fileyangmenjadiobjek. 4.2ArraypadaPHP Arraymerupakansalahsatuaspekterpentingdalambahasapemrograman.Sebenarnyaapasiharray itu?Secarasederhanaarraymerupakansuatuvariabelyangdapatmenyimpanbeberapanilai sekaligus.Berbedadenganvariabelbiasayanghanyadapatmenampungsebuahnilaisaja.Array jugadapatberisiarraylainnya(arraydidalamarray),arraysepertiiniseringdisebutarraymulti dimensi. PadaPHPdikenalduatipearrayberdasarkancarapengaksesannyayaituarrayindexnumerikdan arrayindexstring(associativearray).Bingung?Yesakhirnyasayabisamembuatandabingung:p. OK,biarandatidakstresslangsungsajakitabahasyangpertamaduluyaituarraiindexnumerik. 4.2.1ArraydenganIndexNumerik Kitaakantetapmenggunakancontohprodukpadababasebelumnyayaitusticker,kaos,danjacket dalampembahsancontoh.Sebuaharraydenganindexnumerikdiberiindexmulaidari0,1,2,3,...dan seterusnya.Untukmembuatsebuaharraydenganindexnumericterdapatbeberapacaradiantaranya: Cara1
$produk=array('sticker','kaos','jacket'); Copyright2009RioAstamalHal.54
LUGSTIKOMSurabaya
BabIVFiledanArray
Caradiatasadalahsebuahcaramanualyaitudenganmemberiindexlangsungpadaarray. Cara3
$produk[]='sticker'; $produk[]='kaos'; $produk[]='jacket';
Outputdariperintahdiatasadalah: Output1 stickerkaosjacket Untukarraydenganjumlahyangbisadihitungdenganjaripengaksesansecaramanualmungkin tidakmasalah.Namunjikajumlaharraymencapaipuluhanbahkanratusan?Solusinyayapakai looping. 4.2.4LoopingArrayIndexNumerik Padababbabawalkitasudahmembahaspenggunaanlooping.Loopingsangatbergunauntuk mengaksesarraydalamjumlahbesar.Padabagianinikitajugaakanmembahasforeach()satu satunyaperintahloopingyangbelumdibahas.Outputdariperintahperintahloopingberikutakan mengacupadaoutput1.Haliniditujukanagarmemudahkanandamemahamicarakerjaarraydan loopingitusendiri. a.LoopingArraydenganfor()
//setvariabelindexke0 Copyright2009RioAstamalHal.55
BabIVFiledanArray
Hasilyangditampilkanakansamadenganoutput1. b.LoopingArraydenganwhile()
//setvariabelindexke0 $i=0; while($i<3){ echo$produk[$i]; $i++;//increment$i }
Padacontohdiataskitahanyamenuliskanekspresi1danekspresi3.Penggunaanekspresi2dapat andalihatpadacontohberikut:
foreach($produkas$index=>$prd){ echo$index:$prd<br/>; }
Outputyangditampilkanadalah:
4.2.5PenerapanTeoriArrayIndexNumerik Untukcontohkaliinikitaakancobamenampilkanisidarifaktur.txttapidengantampilanyanglebih
Copyright2009RioAstamalHal.56
LUGSTIKOMSurabaya
BabIVFiledanArray
Copyright2009RioAstamalHal.57
LUGSTIKOMSurabaya
BabIVFiledanArray
Cara3
$produk['stc']='sticker'; $produk['ks']='kaos'; $produk['jkt']='jacket';
atau
echo{$produk['stc']}{$produk['ks'}{$produk['jkt']}; Copyright2009RioAstamalHal.58
LUGSTIKOMSurabaya
BabIVFiledanArray
Outputdariscriptdiatasadalahsebagaiberikut:
tobecontinue...
Copyright2009RioAstamalHal.59