Otodidak Behind The Scene PDF
Otodidak Behind The Scene PDF
BehindTheScene
BukuSatu
PanduanLengkapMembuatAplikasiGUIdenganNetbeans
KhususuntukPemuladanOrangAwam
Judulbuku:
OtodidakBehindTheSceneSeriI:PanduanLengkapMembuatAplikasiGUIdengan
NetbeansKhususuntukPemuladanOrangAwam
Tujuanbuku:
mengajarisemuaorangIndonesiaterutamayangberusiamudauntukmembuat
softwareaplikasiLinux
Platform:
Linux,Windows,danMacOSX
Bahasapemrograman:
Java
Banyakseri:
tidakdiketahui
Hargabuku:
gratis
Lisensibuku:
halaldisebarluaskanasaltidakuntukkomersial
Persenjataanlayoutbuku:
LibreofficediatasmesinUbuntu12.04
Softwaredesainkover:
Inkscape
Penerbit:
http://malsasa.wordpress.com
IsiBukuIni
Semangat!
Pembukaan
BagaimanaCaramembuatSoftware?
ApaYangHarusDimilikiUntukMembuatSoftware?
PenjelasanMengenaiPersenjataanKita
MulaiMengenalNetbeans
MembuatProyekBaru
MembuatFrame
PenjelasanDariPerkenalanDenganNetbeans
MembongkarTampilanUtamaOtodidak
MembuatAplikasiPertamaAnda
PraDeploy
Deploy!
MengenalNetbeans(Lagi)
Masalah1
TrikNetbeans1
Rangkuman1
Latihan1
PenutupBukuSatu
JanganMinder!
HalpalingawalyangmestiAndamilikiuntukmemulaipemrogramanadalahmental.Jangan
minderdenganparaprogrameryangmendahuluikitadengansegalakemampuan
pemrogramannya.JanganminderpulajikaAndatermasukorangyangtidakmemiliki
komputer,Andamasihpunyakesempatan!SayasendirimembuatOtodidakdenganmemulai
desainnyadalambukutulissekolahbiasa58lembar.Otodidakdibuatdaridesaindesain,dan
itusayatulismanualdidalambukuini.Danfotohalamanberikutadalahhalamanpertama
catatanOtodidakBehindTheSceneyangasli.
BukuinihanyalahcatatansetiapsayaberhasilataugagalmembuatkodeJava
Pembukaan
DenganmengharaprahmatAllah,sayamembukabukuseripertamaOtodidakBehindThe
Sceneini.Bukuinisayasusunsebagaipanduanlengkapmembuatsoftwareaplikasisendiri
untukpemuladanorangawam,berdasarkanprosespembuatanaplikasiOtodidakversi1.
Ringkasnya,bukuinimembocorkanbagaimanadevelopermembuataplikasinyasendiri.
TujuanbukuiniadalahmengajakpemudaIndonesiadantemantemansayadiSMK/SMP
untukmembuatsoftwaresendiri,dengancarayangpalingmudah.Bukuinihanyalahproofof
conceptbahwamembuatsoftwareaplikasiGUIitusangatmudah.Bukuiniakanditerbitkan
berseridanpadaakhirseribuku,diharapkansemuapembacadapatmembuatsoftware
aplikasinyamasingmasing.Semogabukuinimengawalilahirnyabukubukulainataupaling
tidakaplikasiaplikasilainbuatantemantemansekaliandiseluruhIndonesia.
Sebagaiperingatanpalingmendasar,sayainginmengatakan:
YangditekankandalamOtodidakBehindTheSceneadalahmembuatsoftwaresecara
draganddrop,bukanmenuliskodekode.
Mengapasayamemilihjalanini?Karenainilahjalantermudahbagisayasendiriuntuk
membuatOtodidakdanbagiAndajugauntukmembuatnya.
BagaimanaCaraMembuatSebuahSoftware?
Ya,bagaimanacaranya?Banyaksekalipenggunaawamyangtidaktahu.Sayaakanbocorkan
rahasianya.
1) Desain
2) Melakukanpemrograman
3) Mengetessoftware
4) Memaketkansoftware
Dengan4langkahinilahsayamembuatOtodidak.Dandengan4langkahglobalinilahsemua
softwaretermasukgamediciptakan.Dansegalanyadiawalidengandesain,begitupula
Otodidak.SayamenuliskandesainOtodidakdisebuahbukutulisSIDU58lembaruntuk
sekolahsaya.Apasihdesainitu?Apasajaisinya?Untuksementara,silakanlihatfotohalaman
desainsaya:
Tidakadaaturanyangbakuuntukmembuatdesain.Makaitupembuatansoftwareseperti
Otodidaksangatlahmenyenangkan,karenakebebasanmutlakmilikkita.Andabisamelakukan
desainsoftwaresendiridenganmendasarkanpadafotoiniataudenganmenulis.Misal:
1) Namasoftware
2) Tanggalawaldesain
3) Tujuansoftware,misalnyauntukbelajarLinux
4) Bahasapemrogramanyangmaudipakai,misalnyaJava
5) Kirakirabagaimanatampilannya,gambarsendiri
6) BagaimanatampilansoftwareAndaakanbekerja,beripanahsepertigambardiatas.
Hanyasaja,satupegangandalammembuatdesainadalah:
tuliskansemuaidetetapinantipakailahyangpalingbagussaja.Denganpeganganinilah
sayamembuatdesainsebebasmungkindibukuitu.
ApaYangHarusDimilikiUntukMembuatSoftware?
Pertanyaansederhanayangbikinpenasaranpenggunapemula.Apasajayangsayasiapkan
untukmembuatOtodidak?
Sistemoperasi:Ubuntu12.04
Mesin:laptopASUSX44C
Hardwareinti:mousedankeyboard
Aplikasipembuatsoftware:Netbeansversi7.1.2
Aplikasibantu:GIMP,Inkscape,Gedit,ChromiumBrowser,
Itulahpersenjataansaya.Sampaisini,pastiadapembacayangbingung.Mungkinkarena
belumkenalNetbeans,Inkscape,dantemantemannya.Tidakmengapa.Perlahanakansaya
jelaskan.Sebelumnya,Andaharusmengenalini:aplikasipembuatsoftware.Andabisa
menyebutnya:softwarepembuatsoftware.Apaini?InilahintidarisegalaprosesAndananti
dalammembuatsoftware.Andaakan:
memrogram
mengetikkodekodepemrograman
membuatantarmukaGUIdengandraganddrop
memasukkangambarkedalamsoftwareAnda(sepertidalamOtodidak)
menjalankansoftwareAnda
mengetessoftware
didalamaplikasipembuatsoftwareini.JikaAndasenangmembaca,makaAndaakan
menyadariyangsayamaksuddenganiniadalahIntegratedDevelopmentEnvironmentatau
yangbiasadisebutIDE.Ya,kitamembutuhkansoftwareuntukmembuatsoftwarelain.Software
macaminilahyangdisebutIDE,kitamemasukkankodekodepemrogramandisana.Mengapa
sayajelaskaninidulu?Karenasemenjakawalsayatahuadanyapembuatansoftware,saya
tidaktahukodekodenyaharusdiketikdimana.Ketidaktahuaniniberlangsungselama
beberapatahunsementaratidakadayangmengajarisaya.Cukupburuk,bukan?Oleh
karenanya,demimemangkaswaktubelajarAnda,ketahuilahapaituIDE.
BagaimanatampilansebuahIDE?ApakahIDEhanyasatu?Atauadabanyak?TampilanIDE
sepertigambarsetelahparagrafini.IDEadabanyak.DanbiasanyaIDEituadaberdasarkan
bahasapemrogramanyangdigunakan.Misalnya,pemrogramandalamBahasaJava,makaIDE
yangdipakaiyanguntukJava.PemrogramandalamBahasaPascal,makaIDEyangdipakai
yanguntukPascal.TidakbisaIDEkhususJavadipakaiuntukmembuatsoftwaredalamBahasa
Pascal.Nah,IDEitumengikutibahasapemrograman.DansayatunjukkannamanamaIDE
yangpalingterkenaldidunia:NetbeansuntukBahasaJava,DevC++untukBahasaCatauC+
+,MicrosoftVisualBasicStudiountukBahasaVisualBasic,danFreePascaluntukBahasa
Pascal.SebenarnyaadaratusanlagiIDElainyangbaguspadasetiapbahasapemrograman
tetapitidakmungkinsayasebutsemuadisini.
PenjelasanMengenaiPersenjataanKita
1) Apakahsayawajibmemilikisemuanya?
2) Dimanasayabisamemperolehnya?
3) Apayangharusdilakukandenganitusemua?
Tentusajatidak.YangharusdimilikihanyaNetbeans.Ingat,dalammembuatOtodidaksaya
memakaiversi7.1.2.AndatidakharusmenggunakanUbuntu.Windowspunbisa.Namun,
untukmembuatOtodidak,palingnyamanmenggunakanUbuntu.Mengapa?Karenatumpuan
Otodidakhanyalahgambardanikonikon.SemuaitusayadapatkandariUbuntu.Terutama
untukikon,sayatidaklahmembuatnyadarinol.Sayacukupmengambilikonyangdisediakan
Ubuntudidirektori/usr/share/icons/.ProyekOtodidakinijugabertujuanmendayagunakan
ikonikondisitubiarbermanfaatuntukoranglain.
Netbeanshttp://netbeans.org
Inkscapehttp://inkscape.org
GIMPhttp://gimp.org
Pintahttp://pintaproject.com/
GeditsudahadadiUbuntudanbisadigantikandenganNotepaddiWindows
ChromiumBrowserhttp://www.chromium.org/bisadigantidenganFirefox/Chrome
Silakankunjungiwebtersebutuntukmemperolehprogramnya.JikaAndamenggunakan
Linux,sebaiknyaunduhNetbeans7.1.2yanguntukLinux.UnduhversiyangsamauntukAnda
yangmemakaiWindows.SayainstalNetbeansbukandarireporesmiUbuntutetapidari
berkas.shyangsayaunduhdariwebresmiNetbeans.Ingat,ukurannyasekitar70MB.
Catatan:untukpenggunaUbuntu,sayarekomendasikanNetbeans7.1.2
dariwebresminya.Sebaiknyatidakinstaldarireporesmi
karenahanyatersediaversi7.0.1(saattulisaninidibuat)danMatisse
mengalamihangsaatsayacoba.HematlahbandwidthAnda.
YangAndalihatdiatasadalahNetbeans,IDEuntukJava.IDEinilahyangsayapilihuntukmembuatOtodidak.
YangdibawahininamanyaQtCreator,IDEuntukBahasaC++.
MulaiMengenalNetbeans
Bukusatuinidikhususkanhanyauntukdasarpsikis,sehinggadominanperkenalan.Anda
harusmengenalaplikasiNetbeansdahuluuntuktahudimanaAndaharusbekerjadalam
Netbeans.Mengapa?KarenafiturNetbeanssangatbanyak,sedangkanuntukmembuat
softwaremacamOtodidakhanyadibutuhkan1/100nyamungkin.JanganlahAndameraba
rabasendirikarenaitumenghabiskanwaktu.BiarkansayabocorkaninformasinyauntukAnda.
SayatidakakanmenjelaskansatupersatuantarmukaNetbeanskarenaitutidakefektif.Saya
hanyajelaskanglobalnyadanmerincipadaapayangdilakukanuntukmembuataplikasiGUI.
MembuatProyekBaru
RingkaswaktuAndadenganmengikutiini.
HasilpembuatanproyekbaruNetbeans
Andajikabarukaliinimengenalpemrograman,selamatdatang.Inilahbahasapemrograman
Java,inilahNetbeans.SayajanjitidakakanjelaskantombolNetbeanssatusatu.Itutidak
efektif.Sekarangmulaimasukkebagianpertamapembuatanaplikasi,bagianterpenting.
MembuatFrame
Tujuaninisemuahanyalahskrinsotterakhirini.Apaini?Akansayajelaskan.
PenjelasanDariPerkenalanDenganNetbeans
Andaharusmengenalbeberapakatapentingini:
1. Project
2. Class
3. Package
4. JFrame
5. Matisse
Apaitu?Mengapapenting?Iniadalah5halyangakansayapakaiterussecaraintensdalam
bukuini.Danmemanghanyadengan5halinilahAndaakanmembuataplikasi.Sayaharus
melakukaneksplorasidahulusaatpertamamembuatproyekOtodidak.Sekarangkarenasaya
sudahtahuhanyainiyangdibutuhkan,makaAndacukupfokuspada5halinidengan
mengabaikansebegitubanyaknyatomboldanmenudiNetbeans.Inilebihhematwaktu.
Project:satufolderyangmenampungseluruhkodeprogramAnda.Iniditampilkan
sebagaifoldertertinggidalampanelkanandiNetbeans.
Class:namasuatukelompokfungsidalambahasapemrogramanJava.NantijikaAnda
sudahmencoba,akanpahamsendiri.Semuaberkasyangbernama*.javaadalahkode
programAnda,dannamaberkaspastisamapersisdengannamaclass.MisalnyaAnda
membuatclassbaru,makanamaclassiniakanmenjadinamaberkas.javajuga.Ini
sudahaturandalambahasapemrogramanJava.Bisadibuatdenganklikkanandi
Package>New>JavaClass.
Package:folderyangmenampungberkas.javadanberkaspendukungproyekAnda.
KalaudiOtodidak,sayamemiliki3package.Satuuntukberkas.java,satuuntuk
gambargambar,dansatuuntukpustakaJavayangharusdisertakan.Bisadibuat
denganklikkanandiSourcePackages>New>JavaPackage.
JFrame:sebenarnyatermasuksalahsatuclassdalamJava,yakniclassJendela.Ya
JFrameinilahyangsebenarnyamembuatOtodidakmemilikiGUI.JFrameinibisa
diibaratkankanvas,kitameletakkantombol,gambar,teks,dansegalanyadiatasnya.
InilahjendelaaplikasiAnda.
Matisse:GUIbuilderdidalamNetbeans.DeveloperNetbeansmemberinamauntuk
pembuatGUIdidalamNetbeans,suatuhalyangsangatunik.JikaAndadansaya
membuataplikasidengandraganddropdiNetbeans,ituartinyakitasedang
menggunakanMatisse.BeberapaorangyanglamabelajarLinuxsendiritidaktahu
MatissesaatbertanyamengenaiOtodidak.MungkinAndasekaranglebihberuntung.
Sekarang,inisayatunjukkanbagaimanaProjectasliOtodidak.Iniuntukmembuatkesannyata
dibenakkita.
Sedikitpenjelasan,yangAndalihatdipanelkiriitukelaskelasJFramemilikOtodidak.Setiap
kelasJFrameitumewakili1jendeladalamOtodidak.Andaakanmembuatyangsepertiini.
AndaperlujugamelihatisidariPackageotodidak.gambar,yangisinyahanyagambargambar
dariOtodidak.Lihatgambarberikut.
Sebagaiinformasi,Otodidakberisisekitar306kelasJava
JFrame.Andatidakusahsebanyakitu.Cukuptahudasarnya
saja.Namunbukusatuinihanyaberisiperkenalan.Anda
hanyaakanmembuatsatuaplikasipalingdasardenganbuku
satuini.
Untukmemantapkan,sayatunjukkanada3buahPackage
dalamOtodidak:
1. org.netbeans.lib.awtextra
2. otodidak
3. otodidak.gambar
MembongkarTampilanUtamaOtodidak
Untukmemudahkanbelajar,sayaakanmembericontohyangtermudah.Cukupdariaplikasi
yangsudahadakemudiandijelaskanperbagiannya.Andaharustahuinidahulusebelum
melangkahkebagianpembuatanaplikasi.Perhatikangambarberikut.
IniadalahpenjelasankomponenGUIapasajayangdipakaiuntukmembanguntampilan
utamaOtodidak.TernyatahanyaJButton,JLabel,danJPanel.Komponenapaini?Iniadalah
komponenGUIyangsudahtersediadiMatisse.IniadalahbagiandariJavaSWING.Dengan
Matisse,kitacukupdraganddropkomponenuntukmembangunaplikasikita.Bagaimana?
Mudah,bukan?Sekarang,tentusajaAndaperlumengetahuiapayangdidraganddrop.
BagianskrinsotyangsayafokuskanituadalahkomponenkomponenGUIyangakankitapakai
dalampembuatanaplikasi.Otodidaksendiridibuathanyadari7komponendarisekianbanyak
komponenyangdisediakandalamMatisse.DanyangpalingbanyakdipakaidalamOtodidak
adalahButton.Artinya,Andaakanfokuspadabeberapakomponensajauntukmembuat
aplikasi.Tidakperlumenghajarsemuanya.SekarangsayakenalkanketujuhkomponenGUI
itu.
1. BuatsebuahJFramebernamaJFrameSatu.
2. LetakkansatuJButtondisitu.BiarkannamanyajButton1.
3. BuatsebuahJFramelagididalamPackageyangsama,berinamaJFrameDua.
4. LetakkansatuJButtonjugadisitu.Ubahnamanya(tekanF2)menjadijButton2.
5. KembalikeJFramepertama.
6. KlikkananJButton>Events>Action>ActionPerformed.Iniakanmembukaeditor
kodeNetbeanssecaraotomatis,langsungpadakodefungsieventpadaJButton.
7. Salinkodeberikutpadaisi{}:
this.dispose();
JframeDua.setVisible(true);
8. Sehinggasamadenganskrinsotini:
9. Sudah?Tidakadakodesalah?Sekarangkliktombol
DesigndibawahTabJFrameSatu.
10. AndaakankembalimelihatJFrameSatuAnda.SekarangRunaplikasi(JFrameAnda)
denganmenuRun>RunFile.Ingatmenuini,karenaakanAndapakaiterus.
11. CobakliktomboljButton1.ApakahiaotomatismembukaJframeDua?JframeDuaitu
yangadajButton2nya,bukan?Jikaya,selamat.Andatelahberhasilmembuataplikasi
pertamaAnda.
Otodidaksebenarnyacumakumpulantombolyangberisi2bariskodeini,untukmemanggil
JFrameJFramelain.Cumaitu.BerikutiniskrinsotdariJFrameyangkitadesain:
Apamaksud2bariskodetersebut?Barispertamaitumaksudnyauntukmenutupjendela
(dispose)danbariskeduaitumembukajendelabarudariJFrameDuadengankondisi
setVisible(true)aliastampak.Jikafalsemakatidaktampak.
PraDeploy
Mungkininisedikitmengganggu.NamunsekaliAndalakukanini,nantinyadeployakan
menjadisangatlancar.Ikutisaja.
1) Lihat,dengannamaproyekProyekku,makadidalamPackageproyekkupastiada
sebuahkelasbernamaProyekku.java.Benar,bukan?
2) Hapuskelastersebut.
3) BukamenuRun>SetProjectConfiguration>Customize.
4) GantiMainClassdariproyekku.Proyekkumenjadiproyekku.JFrameSatu.
5) OK.
PenjelasanPraDeploy
Sebenarnya,apayangsedangkitalakukanini?JikaAndacerdik,akanterbacabahwakita
sedangmengaturagarkelasutamakelasyangpertamakalidijalankannantisaatprogram
dibukaadalahJFrameSatu.JikamasihadakelasProyekku,makanantiyangpertamakali
dijalankanadalahkelasProyekkusedangkankelasinitidakadaapaapanya.ProgramAnda
akanberjalantidaksemestinya.YangkitainginkanjustruJFrameSatuyangberjalanpertama
kali.MakadariitukitahapuskelasProyekkudankitaaturagarkelasutamaadalah
JFrameSatu.JikaAndabingung,janganpedulikan.Lanjutsaja.
Deploy!
Dalamkamussaya,deployitumaknanyamenyebarkan.DidalampemrogramanJava,bersama
Netbeans,maknanyaadalahmembuatberkaseksekutabeltunggaldariaplikasikita.Jadi,kita
akanmembuatsemacamEXEsetelahkitamemrogram.Nantikitabisakopiberkassemacam
EXEinikekomputerlaindanituakanberjalandisana.FormataslihasildeployJavaadalah
.jar.JikaAndadekatdenganlingkunganpemrogramanataumobilesmartphone,pastikenal
formatuniversalini.FormatinisanggupberjalandisegalaOS.Kitaakanmembuatnyadengan
sekaliklik.
1) PastikanAndasedangmembukaproyekAnda.
2) Kliktombol CleanandBuildProject.
3) Sudah.
Lalu,dimanakahletakberkasbuatankitaitu?Kalaudikomputersaya,iaadadi
/home/master/Publik/Java/Netbeans/NetbeansProject/Proyekku/dist.Alamatinibisa
berbedadikomputerAndatergantungdimanaAndamengaturpertamakaliproyekAnda
disimpan.Pokoknya,.jarsenantiasadideploykedalamfolderdist.Inilaheksekutabelkita.
Aplikasikitasendiri!Sekarangmaridijalankan.
1) Klikkanan>Properties>TABPermission>centangExecutable.
2) OK.
3) Klik2kalipada.jarAnda.
4) Selamat,AndatelahmenyelesaikanaplikasipertamaAnda!
MengenalNetbeans(Lagi)
AndaharusmengenalNetbeans.Mengapa?Untukmenghematwaktu.JikaAndabisabekerja
secaracepat,aplikasiAndacepatselesai.Bagaimanabisa?Denganpemahamanterhadap
senjataAndaini.Perhatikan,padadasarnya,Netbeansmemilikitampilankanan,tengahdan
kiri.JikaAndamemangbelumfamiliardenganyangnamanyaIDE,makasayakenalkandulu.
SemuakomponentermasukButton, JikasebeluminiAndapernah
Label,TextArea,Panel,danlainlainada menggunakanMicrosoftVisual
propertinyadandiaturdisini. Basic,makasesungguhnyaMatisse
sangatmiripdengannya.
Masalah1
InsyaAllah,dalamsetiapseribukuini,sayaakankupasmasalahyangterjadidansayaberitrik
Netbeans.Mengapa?UntukmenghematwaktuAndajuga.Karenaadasekianmasalahyang
sayahadapisaatmembuataplikasiyangituharussayaselesaikandenganmencaridiinternet
selamaberharihari.Sayaakanpersingkatdenganbukuinisaja.Sekarangwaktunyamasalah
pertama.
Masalah:JFrameselalutampildipojokkananatas.
Harapan:JFrameselalutampilditengah.
Solusi:masukkankodeini
setLocationRelativeTo(null);
padabagiankode
public JFrameSatu() {
initComponents();
}
didalamJFrameSatu.JikaAnda
inginJframeDuajugaadadi
tengah(dansenantiasadi
tengah),lakukanhalyangsama.
Kodeyangbenarsepertidi
samping.
TrikNetbeans1
TekanESCuntukmembatalkansegalaaksiyangsedangdilakukan.
Rangkuman1
Andatelahmendapatkode2baris: Andatelahmendapatkodetambahan:
this.dispose(); setLocationRelativeTo(null);
new JframeDua().setVisible(true);
BarispertamauntukmenutupJFrame.Baris Iniuntukmemastikanletakjendelakitaagar
keduauntukmemanggilJFrameDuadalam selaluditengahlayar.
kondisitampak.InilahintiaplikasiOtodidak.
Setiapusaideploy,kitaperlumemberikanhak Sebelumdeploy,satukalidalampembuatan
eksekutabelpada.jar.Jikatidak,maka.jar proyek,aturMainClassmengarahpadakelas
tidakakanbisadijalankan. yangkitainginkan.
MenuRun>SetProjectConfiguration>
Customize.
Latihan1
Memangketikasayadikelas,PRitutidakmenyenangkan.Namunkinisetelahmencicip
manisnyapemrograman,adanyatugasserasakembalikemasaTK.Andabisamelakukanini
untukmengisiwaktubelajarAnda:
1) BuatlahJFramebarudenganTextField.Cobacobasaja.
2) TambahkanTextArea.
3) TambahkanPanel.
4) Gabungkanlangkah1,2,3kedalam1JFramebaru.
5) Buatlah1JFramebaruyangpunyabutton,hubungkanbuttonkeJFrameyangbaru
jadi.
6) Beri1tomboldiJFramesatunya,hubungkankeJFramesebelumnya.
7) TesprogramAnda.Diaharusbisasalingmembukaantarframe.
Percayalah,tugassebanyakiniakankurang.
InginMengunduhOtodidak?
Andabisamemperolehnyadarihttp://malsasa.wordpress.com/2013/02/24/otodidakversi1
dirilis/.Jikatidakmungkinmengunjunginya,Andabisamemanfaatkanmirrorberikut:
http://otodidak.linux.or.id
http://sourceforge.net/projects/otodidak/?source=directory
PenutupBukuSatu
Alhamdulillah,Andadansayatelahmenyelesaikanbukusatuini.Denganberbekalinisaja,
Andayangkreatifbisamembuataplikasisederhanasendiri.SementaraAndabelummendapat
carapemaketanDebian,pemaketankeEXE,bagaimanamemasukkangambar,membuatlink,
danlainlain.Sabar,belajarituperlahanlahan.Sampaijumpadibukudua.Ingat,bukuini
tidaklepasdaricacat.Silakankomentardiblogsayauntukmengungkapkritikdansaran.
Semogainibermanfaat.