Open Source Campus Agreement Modul Pelatihan G NUPLOT UNTUK ORANG LUGU oleh ABe Susanto dan I Wayan Warmada Tim PANDU Editor: I Made Wiryana Hak cipta buku ini tetap pada penulis. Tetapi buku ini bebas untuk diperbanyak, dikutip baik sebagian atau seluruhnya ataupun disebar luaskan dalam bentuk elektronis ataupun non-elektronis. Baik untuk tujuan komersial maupun non komersial. Selama penyebutan nama asli pengarang, penerbit, pemberi sponsor serta proyek Open Source Campus Agreement (OSCA) tetap dilakukan. 2001
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
OpenSourceCampusAgreement
Modul Pelatihan
GNUPLOT UNTUK ORANG LUGU
oleh
ABe SusantodanI WayanWarmadaTim PANDU
Editor:
I MadeWiryana
Hak ciptabuku ini tetappadapenulis.Tetapibuku ini bebasuntukdiperbanyak, dikutip baiksebagianatauseluruhnya ataupundisebarluaskandalambentukelektronisataupunnon-elektronis. Baik untuktujuankomersialmaupunnonkomersial.Selama
Saatini dalamduniakomputerdi negara-negarasepertiAmerika,Australia,India, Inggris, Jepang,Jerman,negara-negaraSkandinavia,dansebagainya telahberkembangdansudahbanyakorangmenggunakansistemoperasiberbasisLinux, yaitu suatusistemoperasiyang bersifat ’open source’. Hal ini berarti sistemoperasitersebut bisa disalindandiinstaldari sebuahkomputerke komputerlainnya tanpaadapembayaranlisensi,selainitu bagiprogrameryanggemar’mengutak-ngatiksourcecode’ nya akanmendapatkantempatyangcocok,karenahal itu bukanlahdilarangjustrusebaliknya malahdianjurkansehinggamenghasilkansuatusistemoperasiyanglebihbaik.
Di sisi lain, penulismerasasudahbeberapatahunmengenallinux sebagaihobi ataupenunjangkegiatanutamayaitu menimbailmu di negeri yangserbatehnologiini, merasabelumpernahmenulisbuku linux yangcukupserius.Walaupuntulisan-tulisanlepaspenulistentangLinux adabeberapayangtelahdi terbitkandi internetdenganalamatURL adalahhttp://ngelmu.dhs.org/ atauhttp://pandu.dhs.org/. Oleh karenaitu sebagairasakecintaankami padaLinux danuntukmenambahvariasipustakatentangLinux yangberbahasaIndonesia,makapenulismerasaterpanggildanmemberanikandiri menguraikansepintastentangduniagrafikdengansoftwaregnuplot, sepertidalambukuini.
Buku ini dibagi menjadibeberapabagianyangterdiri dari pengenalangnuplot mencakuppengantardanin-stalasignuplot; mengenalperintahgnuplot yang membahastentangformat data,contohperintahsederhana,menyimpantampilangnuplot;grafik multiplot, ekstrapolasi,datamultivariat. Babberikutnya adalahmembuatgrafikdenganstandardeviasi danbeberapacontohaplikasignuplot padabidanglainnya. Kemudiansemuauraiandalambuku ini lebih cocokdigunakanbagipemulayangbelumpernahmengenalgnuplotsamasekali. Hal ini disebabkancontohdalampenggunaannya diberikansecaramudahuntukdicernadansangatsederhana.
Padakesempatanyangbaik ini, penulisjugamenyampaikanterimakasihkepadatemen-temenseangkatanpener-imabeasiswaDAAD yangtelahmendorongpenulismemberikansemangatuntukmenyelesaikanbukuini, baikberupakritikan ataumasukanyangmembangun.Selainitu penulisjugaakanberterimakasih,apabilamendapatkankritikandansaranbersifatmembanguntentangmateriyangditulis dalambukuini gunaperbaikanpenulisandi kemudianhari.Sarandankritikan dari pembacadapatdikirimkanmelaluie-mail langsungkepenulis
Ir . I WayanWarmada, stafFakultasTeknik,UniversitasGadjahMada.MerampungkanS1bidanggeologidi UniversitasGadjahMada. Denganbeasiswadari DAAD kini sedangmelanjutkanstu-di doktoral bidangGeologi Ekonomi di TechnicalUniversity of Clausthaldi bawah bimbinganProf.Dr. BerndLehmann.PenelitiannyamendalamiprosespembentukanEmasEpithermal.Pernahmengajarmatakuliah Komputeruntuk GeologidanGambarTeknik Geologiyangmenggunakankomputersebagaialatbantuutama.Sangattertarikuntuk mencobahampirsemuaprogramgrafisbaik yang jalan di Linux, SolarismaupunWindows (hanya untuk membandingkanefisiensiker-janya). Pengalamanberkomputerbanyak diperolehketikamelakukan"SummerJob"di PT Caltex
Drs. ABe Susanto,MSc, menekunibidangkajian RUMPUT LAUT selamamenyelesaikanstu-di S1 di UnsoedPurwokertodan S2 di UniversitasRyukyus, Jepang. Staf mudadari FakultasPerikanandan Ilmu KelautanUNDIP ini sekarangsedang"ngelmu" tentangrumput laut lagi diFak. Biologi/Kimia UniversitasBremen,Jermandi bawahbimbinganProf.Dr.GunterO. Kirst danProf.Dr. ChristianWienckedariAWI-BremerhavendenganbeasiswadariDAAD. MatakuliahPen-genalanKomputerpernahdiberikandi JurusanIlmu Kelautan-FPIK-UNDIPdanSCUBA-Divingadalahkegiatanwaktusenggangnya. MengenalLINUX sejaktiba di Bremen(1997)dantertarikdenganprogramLinux yangdapatdiaplikasikandi duniapenelitiankelautan.MikroZNet adalah
proyekisengpertamakalinyadenganI MadeWiryanayangmencobamengkombinasikanLINUX denganMikroskop.Keterlibatannyadi LINUX mendorongdiabersama-samadenganrekanlainnya membentukTIM PANDU
I Made Wiryana SSiSKom MSc menamatkanS1di jurusanFisikaFMIPA UniversitasIndonesiapadabidanginstrumentasidanfisikaterapan.DenganbeasiswadariSTMIK Gunadarmajugamena-matkanS1Teknik Informatikadi STMIK Gunadarma.MelanjutkanstudiS2di ComputerScienceDepartmentEdithCowanUniversity- PerhdenganbeasiswaADCSSdanSTMIK Gunadarmapadabidangfuzzysystemdanartificial neuralnetworkuntukpengolahansuara.MenanganiperancangandanimplementasijaringanInternetdi UniversitasGunadarmadenganmemanfaatkansistemOpenSourcesebagaibasisnya. Pernahmewakili IPKIN dalamkelompokkerjaStandardisasiProfesiTIuntuk Asia Pasifik (SEARCC).Saatini denganbeasiswadari DAAD melanjutkanstudi doktoral
di RVS ArbeitsgruppeUniversitätBielefeld Jermandi bawah bimbinganProf. PeterB Ladkin PhD. Aktif menjadikoordinatorbeberapaproyekpenterjemahanprogramOpenSourcesepertiKDE, SuSE,Abiword dan juga sebagaiadvisorpadaTrustix Merdeka,distibusiLinux Indonesiayangpertama.Terkadangmenyumbangkantulisannyaseba-gai kolumnispadamediaonline DETIK.COM danSATUNET. Jugakontributor padaKOMPUTEK, MIKRODATA,ELEKTRO danINFOLINUX. Kontribusi ke komunitasOpenSourceseringdilakukanbersama-samakelompokTimPANDU. StarpengajartetapUniversitasGunadarma.
ix
ABe & Warmada Gnuplot untuk orang lugu
OpenSourceCampusAgreement x
Pernyataan
Penulisanbuku dilakukanselamapenulismelanjutkanstudidi Jermanatasbeasiswadari DAAD. Secaratidak lang-sungpenulisanbuku ini disponsorioleh:
Kemudahandalampenggunaandankeserderhaanperintah-perintahnyatidaklahmengurangikualitaskemampuanprogramini, olehkarenaitu programgnuplot mempunyai beberapamacamkemampuan,yaitusebagaiberikut:
Barangkalitimbul suatupertanyaan,“mengapamemilihprogramgnuplot,sedangkandi sisi lain banyaktersediaprogram grafik berbasisGUI secara bebas?” Salahsatualasanmengapamemilih programberbasisCLI, misalnyaprogramini dapatdijalankanlebihcepatdibandingkanprogramberbasisGUI karenaprogramini tidakmembutuhkanterminalgrafikyangbagus.Hanyadenganmemakaikomputer“butut” punmasihbisamembuatgrafikdengankualitascetakyangsangatbaik. Di sampingitu kadangdatamentahyangdiperolehdari suatupengukuranmemerlukansuatuprosesawal (preprocessing)sebelumdiplot kedalamgrafik,misalnyamemberikankoreksitertentu.Minimal kitaakanbekerjabeberapakali untuk menghasilkangrafik dari datamentahsepertiini. Sebagaicontoh,pertamamelakukanperhitungankoreksi dankeduamelakukanpemplotan. Memangtidak terlalu sulit melakukanhal sepertiini padaprogramberbasisGUI karenasudahdisediakanspreadsheetuntukmelakukanprosesawalnya.
Dalamprogramgnuplot yang berbasisCLI kita tidak perlu melakukanperhitungansepertiitu, karenapro-gramini dapatmelakukanperhitunganbersama-samadenganpemplotan.Dalamperhitunganyangkompleks,bila
1
ABe & Warmada Gnuplot untuk orang lugu
spreadsheettidak dapatmelakukannya (ataucukuprumit), gnuplot dapatdigabung denganskrip programteren-tu, misalnya perl, python, danlain-lain. Hal ini yangmembuatprogramini jauh lebih cepatdalammembuatgrafikdibandingkandenganprogramberbasisGUI. Alasanini lahyangmembuatgnuplotdapatdigunakanjugauntukmembuatgrafiksuatuweb,misalnyauntukmenampilkangrafik analisiswebsecaraon-line.
Penulissendirimemanfaatkangnuplotuntukmenunjangmenyelesaikantugasakhirterutamauntukmenampilkandatadalambentukgrafik. Alasanpenulismenggunakanprogramgnuplotadalahkarenaprogramini dapatdiperolehsecaragratisdanmempunyai kemampuanuntuk menampilkangambarsesuaiyangkita inginkan. Walaupundalamduniagrafisdikenaljugaberbagaimacamprogramgrafikpopuleryanglain, akantetapisebagianbesarpemakaiharusmengeluarkansejumlahuangyangcukupbesaruntukmembeliprogramtersebut. Sebagaicontohsaja,programXactuntuk versi ’up date’, paling sedikit seseorangharusmengeluarkanRp. 500.000,-(saatini 1 DM setaradenganRp.4.100,-).ProgramXact sendiridibuatolehSciLabGmbHdi Hamburg, Jerman.
1.2 Menginstal gnuplot
Ada beberapacarauntukmenginstalprogramgnuplotdi lingkunganlinux maupunwindows. Carayangpalingmu-dahadalahmenginstalgnuplot dari file biner(*.rpm, *.deb, *.zip, *.exe) ataumenginstaldari paketyangterdapatpadadistributorsepertiSuSE,EasyLinux,RedHat,Debian,Mandrake,danlain-lain. Biasanya setiapdistrib-utor memberikancaratertentuuntuk menginstalprogramyangadapadapaketprogramyangdipaketkannya. LihatpanduaninstalasiLinux padatiap-tiapdistributoryangdigunakan.
Carayang lain adalahmenginstaldari sourcecodegnuplot yangdapatdidownloadmelalui situs resmignu-plot (lihat lampiranA). Langkah-langkahpre-instalasignuplot dari sourcecodeadalahsebagaiberikut (khususLinux/Unix):
� Downloadfile gnuplot-3.7.1.tar.gz dari salahsatuserver gnuplot. Jika ingin menginstallibrary GIF(untuk terminalGIF), downloadfile gd1.4.tar.gz. Janganlupa downloadjuga file-file dokumentasinya,misalnya file gnuplot.pdf.gz, gp-ps.zip, danlain-lain.
� Ekstrakfile yangterkomprestar tersebut denganperintahtar -xvzf gnuplot-3.7.1.tar.gz padadirektor /usr/src/packages (hanya untuk memudahkanpencarian). Janganlupa login sebagairootatausuperuser sebelummemulaiinstalasi.Prosesekstraksiini akanmembuatdirektorignuplot-3.7.1secaraotomatis,yangberisifile-file sourcecodegnuplot.
File demognuplot tidak diinstal secaradefault. Jika diinginkan, file-file ini harusdisalin secaramanualke suatudirektori yangdipilih, misalnya/usr/local/share/docs/gnuplot/demo.
Menginstalgnuplot di lingkunganwindows dari sourcecodelebihsulit dibandingkanpadalingkunganLinuxatauUnix, karenadibutuhkansuatukompiler yangharusdiinstal terlebihdahulu. Programini harusdibeli di luarbasissistemoperasiMS Windows/DOS.Beberapakompileryangbisadipakaiuntukmenginstalgnuplotdi lingkunganMS Windows,meliputiMicrosoft C 7.0,Borland C++, Visual C++, MinGW32 (membutuhkanMicrosoftSDK), danCygwin (membutuhkanMicrosoft SDK). Perintahnya tidak akandijelaskandi sini, karenapadaservergnuplottelahtersediafile binerterkompresprogramini. File-file tersebut adalahgp37w16.zip (untukMS Windows3.1),gp37w32.exe dangp371w32.zip (untukMS Windows 9x/nt). Untuk menginstalfile ini dapatdilakukandenganlangkah-langkahsebagaiberikut:
� Ekstrakfile gp37w16.zip, gp371w32.zip,ataugp37w32.exe (autoextracted)padadirektori Programme(hanya untuk pengelompokansupayalebih mudahdalampencarian).Gnuplotakanmembuat direktori baru,gp37w16 ataugp37w32 atau gp371w32 yang berisi file-file: wgnuplot.exe atauwgnuplot32.exe,wgnuplot.dll, wgnuplot.hlp, danwgnuplot.mnu.
� Untukmenjalankangnuplotini, panggilfile wgnuplot.exe atau wgnuplot32.exe dariperintahrun.
� File gnuplot terkompresuntukwindows 16 bit (gp37w16.zip) tidak menyertakanfile-file demo.Jikafileini diinginkandapatdi ekstrakdari sourcecodelalu dikopi.
Jika instalasidilakukandenganbenardangnuplot dijalankan,makatampilanpembukagnuplot dapatdilihatsepertiberikutini:
$ gnuplot
G N U P L O TLinux version 3.7patchlevel 1last modified Fri Oct 22 18:00:00 BST 1999
Copyright(C) 1986 - 1993, 1998, 1999Thomas Williams, Colin Kelley and many others
Type ‘help‘ to access the on-line reference manualThe gnuplot FAQ is available from<http://www.ucc.ie/gnuplot/gnuplot-faq.html>
Gnuplot dapatmenghasilkanbermacam-macamgrafik dari datayangtertabulasi. Kaidahpentingdari organisasidataadalahmekanismegnuplot yangmembacadatatiapbaris.Contohdatayangpalingsederhanaadalahdataseriyangterdiri dari koordinat-x dankoordinat-y. Perintahplot ’<data-filename>’ akanmemplotnilai dataseri yangterdapatpadafile tersebut.
File yangmengandungdataharusdisimpandalambentukASCII dengannamamisalfileku.dat. Hal yangpentingdalammembuatfile ASCII ini adalahdata-databerupaangkayangdisusunberdasarkankolom dandi antarakolomsatudenganlainnyadipisahkansatuataulebihspasi.Datayangdapatdibacaolehprogramini adalahteksatauASCII dalambentukbaris dankolom yang tidak terbatas(tergantungkemampuankomputeruntuk mengolahnya).Formatfile dataadalahsebagaiberikut:
# contoh file ---> disimpan dengan nama bebas# tanda ’#’ tidak dibaca oleh gnuplot, seperti ’rem’ pada program basic#X ��� � Y ��� � Y ��� � Y ��� � ... Y ��� �X ��� � Y ��� � Y ��� � Y ��� � ... Y ��� �X �� � Y �� � Y �� � Y �� � ... Y �� �X �� � Y �� � Y �� � Y �� � ... Y �� �...X �� � Y �� � Y �� � Y �� � ... Y �� �
Hampir semuajenis programspreadsheetsepertiMicrosoft Excel, StarCalc, Lotus 1-2-3, Quatro,Gnumericatauspreadsheetyang disediakanoleh programgrafik yang lain misalnya Scigraphica, Grapher,Origin, Sigmaplot, SPSS, dsb. dapatdipakaiuntukmenghasilkandatadalamformatASCII. Caranyayaituden-ganmemakaiperintahsave as padamenuFile kedalamformatteks(*.txt) dandipilih karakterpemisahantarkolomnya. Dalam programspreadsheetbiasanya ada3 pilihan untuk memisahkandataberdasarkankolom dalam
5
ABe & Warmada Gnuplot untuk orang lugu
format ini, yaitu spasi, tab dankoma. Gnuplot hanya bisamembacapemisahkolom berupaspasi dan/atautab.
2.2 Perintah sederhanagnuplot
Secaradefaultgnuplotakanmensetterminal keluaranke terminalx11 atauwindows (monitor). Perintahutamauntuk menampilkangrafik padaprogramini adalahplot dansplot. Perintahplot digunakanuntuk memplotgrafik duadimensi,sedangkanperintahsplot untuk memplotgrafik tiga dimensi. Mari kita lihat contohperintahberikutini.
gnuplot> plot [-pi:pi*2] sin(x)gnuplot> plot f(x) = sin(x*a), a = .2, f(x), a = .4, f(x)gnuplot> plot [t=1:10] [-pi:pi*2] tan(t)
Datatersebut disimpandalamfile gambarku.dat. Bila kita ingin menampilkangrafikini kesuatuterminalkeluaranyangditentukandapatdilakukandenganmenggunakanperintahplot (lihat contohberikut):
Dari file gambarku.dat dapatdimodifikasi beberapamacamgrafik dan itu berasaldari beberapaperintahtentunyaseperticontohdi bawahini :
gnuplot> plot "gambarku.dat" using 1:2 with linesgnuplot> plot "gambarku.dat" using 1:2 with linespointsgnuplot> plot "gambarku.dat" using 1:2 with points
Selainmemplotdengancarapemanggilanfile sepertidi atas,gnuplotdapatjugamemplotdatayangdimasukkansecarainteraktif,misalnya jika kita akanmemplotdatadi atasuntukkolom1:2perintahnyaadalahsebagaiberikut:
� Set output digunakanuntukmemberikannamafile yangdiinginkan.
Di sampingsebagaifile postscriptyangbisadigabungdengantekspadaprogrampengolahtekssepertiLATEX, LyxatauprogrampengolahgambarsepertiXfig, Gimp, Tgif, gnuplot dapatjuga menghasilkankeluarandalamformatyanglain tergantungdari terminalyangdipilih. Misalnya untukkeperluanwebsite,gnuplotbisamenghasilkanformatPNG(PortableNetworkGraphics)atauGIF (CompuserveGraphicsInterchangeFormat). SebetulnyabisajugadalambentukJPEG,tetapiuntukgrafik jenisvektor, formatini tidak baguskarenadatayanghilangketikadilakukankompresisaatpenyimpanan.Untukmelihatmacam-macamterminalyangdisediakanolehgnuplot dapatdilakukandenganperintahberikutini (keluarannyadiambil beberapacontoh):
OpenSourceCampusAgreement 8
ABe & Warmada Gnuplot untuk orang lugu
gnuplot> set termAvailable terminal types:
unknown Unknown terminal type - not a plotting devicetable Dump ASCII table of X Y [Z] values to outputlinux Linux PC with (s)vgalibxlib X11 Window System (gnulib_x11 dump)x11 X11 Window SystemX11 X11 Window System (identical to x11)
2. Simpanfile grafik padasoalno. 1 dalamformatpostscript.
3. Buatlahsembarangdataseri 8 pasang,dansimpanlahdalamfile latihan2.dat. Buatlahgrafik tipe lines,linespoints,danpointsdari file latihan2.dat.
4. Simpanfile grafik padasoalno. 3 dalamformatPNGatauGIF.Catatan: untukmelihatbagaimanasintakssetterminalpngataugif, panggilteksbantuon-linedenganperintahhelp set term png atauhelp set term gif padapromptgnuplot.
OpenSourceCampusAgreement 9
ABe & Warmada Gnuplot untuk orang lugu
OpenSourceCampusAgreement 10
Bab 3
Membuat grafik multiplot dan errorbar
3.1 Multiplot dalam satu grafik
Bila perintah-perintahsederhanayangdijelaskanpadabab2 di atasdigabungkanmenjadisatuperintah,makaakandihasilkansebuahmultigrafik. Hanyauntukmendapatkansebuahtampilanyanglebihbagussesuaidengankeinginankita, perluditambahkanbeberapaperintahsepertidi bawahini.
gnuplot> set xrange [-2:11]gnuplot> set yrange [0:16]gnuplot> set xlabel "Waktu kultur (hari)"gnuplot> set ylabel "Biomasa (gram)"gnuplot> plot "gambarku.dat" u 1:2 t "kolom 1:2" with boxes,\> "gambarku.dat" u 1:3 t "kolom 1:3" with lines,\> "gambarku.dat" u 1:4 t "kolom 1:4" with points
Bandingkandenganperintahberikutini:
gnuplot> set multiplotgnuplot> set size 1.0,1.0gnuplot> set origin 0.0,0.0gnuplot> set xrange [-2:11]gnuplot> set yrange [0:16]gnuplot> set xlabel "Waktu kultur (hari)"gnuplot> set ylabel "Biomasa (gram)"gnuplot> plot "gambarku.dat" u 1:2 t "kolom 1:2" with boxesgnuplot> plot "gambarku.dat" u 1:3 t "kolom 1:3" with lines 2gnuplot> plot "gambarku.dat" u 1:4 t "kolom 1:4" with points 3gnuplot> set nomultiplot
Dari perintahdi atasakanditampilkanhasilmultiplot dalamsatugrafik sepertitampakpadagambarberikutini.
Perbedaankeduagrafik ini terletakpadapemakainperintahset multiplot padagrafikb (kanan).Perbedaankeduasusunanperintahdi atasadalahpadagrafik a (kiri) hanya grafik plot-nya sajayang diplot padalapis yangberbeda,sedangkanpadagrafik b baikgrafik plot maupunsumbu danketerangannyadiplot berulang-ulangpadalapisyangberbeda.Perbedaannya dapatdilihat padagrafik b legendamenjadisalingtumpang-tindihbegitu juga sumbuyangmenyebabkanteksketerangansumbu menjadilebihtebal(sepertitercetaktebal),tetapijika dicetaktidaktampak.
� set multiplot di barisawal danset nomultiplot di baristerakhiradalahuntuk menunjukkanagarpemplotandibuatuntukbanyak plot (multiplot).
� set size 1.0,1.0 untukmenentukanukuran1x1 tampilanpemplotandi daerahkeluarangrafik.
� set origin 0.0,0.0 digunakanuntuk menentukankoordinat(posisi) pemplotanpadadaerahkeluarangrafik.
11
ABe & Warmada Gnuplot untuk orang lugu
0
2
4
6
8
10
12
14
16
-2 0 2 4 6 8 10
Bio
mas
sa (
gram
)
Waktu kultur (hari)
kolom 1:2kolom 1:3kolom 1:4
0
2
4
6
8
10
12
14
16
-2 0 2 4 6 8 10
Bio
mas
sa (
gram
)
Waktu kultur (hari)
kolom 1:2
0
2
4
6
8
10
12
14
16
-2 0 2 4 6 8 10
Bio
mas
sa (
gram
)
Waktu kultur (hari)
kolom 1:3
0
2
4
6
8
10
12
14
16
-2 0 2 4 6 8 10
Bio
mas
sa (
gram
)
Waktu kultur (hari)
kolom 1:4
Gambar3.1: Tampilanhasilpemplotanmultigrafik
� set xrange [-2:11] untuk mengaturkisaransumbu X dari grafik yangkita inginkan. Untuk membuatkisaranini perludiperhatikandanpenyesuaiandari file gambarku.dat.
� set yrange [0:16] untukmenentukankisaransumbu Y darihasilpemplotanfile gambarku.dat. Olehkarenaitu dalammembuatangkakisaranini harusdilihat padafile gambarku.dat.
� set ylabel "Biomassa (gram)" digunakanuntukmenuliskanketerangannilai-nilai sumbu y. Penulisanketerangannyadapatdilakukandi antaratandapetik tunggal[’ ] atautandapetik ganda["].
� Plot "gambarku.dat" using 1:2 with boxes,\ digunakanuntukmenampilkansebuahpemplotandatayangkita miliki. Perintahplot hanya memplotsatumacamgrafik dataartinya satuperintahplot mewakilisatuhalamankertasatausebuah grafik. Kalau ingin memplot lebih dari satumacamgrafik datadalamse-buahgrafik, makatiap-tiapplot harusdipisahkandengantandakoma(,). Tanda[\] berfungsisebagaitandapenghubungyangmenyatakanbarisberikutnyamasihmerupakansatubarisdari perintahtersebut. Jadiartinyasamadengantanda[-] padapengetikanteksdi akhir sebuahbaris.
Padatampilanpemplotanmultigrafik ini dapatdilihat denganjelas, beberapaparametersepertiketerangansumbuX atauY dankisarannya telahdapatdiatur sesuaidengankeinginankita sendiri. Bila sedikit beranimemodifikasiperintahtersebut, misalnya nilai kisaransumbu X danY besertaketerangannyaataupunpenentuanukurandankoor-dinatnya,makaakandiperolehsebuahtampilanmultigrafikyangsesuaidengankeinginankita..
3.2 Multiplot dalam satu halamankertas
Ada kalanya, karenasuatualasantertentu,makabeberapaplot datayangada,harusditampilkandalamsatuhalamankertasatausatukeluarangambar. Hal ini berartibahwadalamsatuhalamankertasbisaditampilkanduaataulebihgrafik (lihat susunangrafik padagambarberikut). Untuk membuat grafik sepertiini berdasarkanperintah-perintahyangtelahdiuraikandi atassudahdapatdilakukan.Hanya perluditambahkanbeberapapengaturanukurandanposisigambar.
Mari kita perhatikancontohperintahsepertiditampilkandalamskripdi bawahini. Dalamhal ini dibuatfile baruuntukdatayangakandigunakan,misalnyafileku.dat yangberisinilai-nilai sepertidi bawahini. Kolom 2, 3, 4dan5 mewakili pertumbuhanjenisrumputlautGracilaria, Eucheuma,GelidiumdanSargassum.
set multiplotset size 1.0,1.0# Grafik pertamaset size 0.5,0.5set origin 0.0,0.0set nokeyset xrange [-2:12]set yrange [0:16]set xlabel "Waktu kultur (hari)"set ylabel "Biomasa (gram)"set title "Gracilaria" ,-4plot "fileku.dat" using 1:2 with boxes# Grafik keduaset size 0.5,0.5set origin 0.0,0.5set title "Eucheuma" ,-4plot "fileku.dat" using 1:3 with lines# Grafik ketigaset size 0.5,0.5set origin 0.5,0.0set title "Gelidium" ,-4plot "fileku.dat" using 1:4 with linespoints# Grafik keempatset size 0.5,0.5set origin 0.5,0.5set title "Sargassum" ,-4plot "fileku.dat" using 1:5 with pointsset nomultiplotpause -1 "Tekan tombol Enter <RETURN>"
Berbekaldari uraiandi atas,makabila beberapacontohperintahdimodifikasimakasudahdapatdihasilkanbeberapavariasigrafikdalamberbagaibentuktampilan,misalmultiplot darimulti grafikdalamsatuhalamankertasdenganatautanpalabel di sumbu X atauY, danlain-lain. Dan bila menginginkanjenis tampilangrafik lainnya misalnya grafiklinier denganstandardeviasi, danlain-lain dapatdibacamanualgnuplot yangditampilkandi internetatausecaraon-line.
Tipe grafikerrorbarsmerupakansalahsatujenistipegrafikyangadadalamprogramgnuplot.Tipe ini digunakanuntukmenggambarkanbesarnyaerror(kesalahan)ataudeviasidarisuatutitik-titik plot. Danprogramgnuplot untukmenampilkangrafik jenis ini tidaklahsulit. Adapuntipe errorbarsyangdisediakanolehprogramgnuplot terdapatbeberapajenis, yaitu xerrorbars, yerrorbars (atauerrorbars), xyerrorbars, boxerrorbars danboxes.
Untuk menampilkangrafik jenis ini, padaprogramgnuplotdibutuhkansebuahfile databerbentukASCII yangmempunyai susunanminimumterdiri dari3 kolomdata,yaituX, Y dandelta-Y(menyatakansebagaibesarnya error).Untuk lebih jelasnya diperhatikancontohberikut ini. Dari hasil penimbanganberatbasah(denganpengulangann)padapertumbuhanrumput laut Sargassumdari Karimunjawa danTakabonerateterhadapperubahansalinitas(kadargaram)diperolehdatayangdisimpandalamfile error.dat danterdiri sebagaiberikut:
SelaindataASCI sepertitersebut di atas,diperlukanjugaperintah-perintahyangmempunyai sintaksebagaiberikut:
set function style <style>set data style <style>show function styleshow data style
Berdasarkanhal tersebut, bila digabungkandenganbeberapaperintah-perintahyang telah diuraikandi atas,makauntukmenampilkangrafikerrorbarsdari file error.dat, makadiperlukanskripsebagaiberikut:
# Grafik Pertambahan berat Sargassum dari Karimunjawaset size square 0.6,0.6set data style errorbarsset xrange [5:49]set yrange [6:51]set xlabel "Salinitas (o/oo)"set ylabel "Pertambahan berat basah (gram)"set bars largeset title "Sargassum" ,-10plot "errorku.dat" u 1:2:3 notitle with errorbars,\
"" u 1:2 title "Karimunjawa" with lines 1pause -1 "Tekan tombol Enter <RETURN>"
Adapuntampilangambardari skrip di atasdapatdilihat sepertigambardibawahini. Grafik ini merupakanhasildarisebuahplot contohSargassumdari Karimunjawadandari file error.dat diperolehdari kolom1, 2 dan3.
10
15
20
25
30
35
40
45
50
5 10 15 20 25 30 35 40 45
Per
tam
baha
n be
rat b
asah
(gr
am)
�
Salinitas (‰)
Sargassum
Karimunjawa
Gambar3.4: Tampilangrafik tipeerrorbars
Kadangkalakegiatanpengambilandatatidakhanyadilakukandalamsatutempatsaja,sehinggadatayangdiper-olehmenjadisemakinbanyak. Danbiladiamatidarifile error.dat jugadapatdikembangkanmenjadiduabeberapagrafik. Untukmewujudkanhal ini dapatdiperhatikanskripdi bawahini, yaitu :
set size square 0.6,0.6set data style errorbarsset xrange [5:49]set yrange [6:49]set xlabel "Salinits (o/oo)"set ylabel "Pertambahan berat basah (gram)"set bars largeset title "Sargassum" ,-12.5plot "errorku.dat" u 1:2:3 notitle with errorbars, \
OpenSourceCampusAgreement 15
ABe & Warmada Gnuplot untuk orang lugu
"" u 1:2 t "Karimunjawa" with lines, \"" u 1:4:5 notitle with errorbar, \"" u 1:4 t "Takabonerate" with lines
Dari duabuahcontohgrafik errorbarstersebut, bila dilihat secaracermatpadaskripnya tidakbanyak perbedaan-nya. Padaskrip keduaterdapatpenambahan2 barisperintah.Dandari file error.dat masihbisadikembangkanmenjadibeberapagrafik tipeyanglain, misalnyaxerrorbar, xyerrorbar, boxes, danlain-lain.
Untuk menambahwawasanakankegunaangnuplot dan kehandalannya dalammenampilkangrafik dapatdi-ikuti uraiandalambabselanjutnya. Sesuatuhal yang perlu diperhatikanpadasaatmenjalankangnuplot adalahmemperhatikandenganseksamapenulisanperintahnya,kesalahanyangtimbul biasanya disebabkanhanya kesalahanpenulisan.
3.4 Latihan
1. Buatlahgrafikmultiplot yangterdiri dari6grafik,masing-masing:sin(x), cos(x), tan(x), f (x)=2x+1, f (x)=xˆ2+2x+1,danf (x)=sin(x)*cos(x).
4. Dari empatgrafik ini gabungkanlahsehinggadiperolehsebuahgrafikmultiplot.
OpenSourceCampusAgreement 17
ABe & Warmada Gnuplot untuk orang lugu
OpenSourceCampusAgreement 18
Bab 4
Ekstrapolasi
Padabagianini akanditerangkankemampuankurvafiting dariprogramgnuplot. Sepengetahuanpenulis,gnuplotdapatmelakukan2 macamtipe fiting denganmenggunakansuatuimplementasiyangdikenaldengannamaalgoritmanon-linearkuadratterkecil (NLLS=Non-LinearLeastSquare) Marquardt-Lavenberg. Tipe pertamaadalahregresiataufiting lineardimanaoptimasidilakukanpadasuatupersamaanlinearatausuatupersamaanyangdapatdinyatakandalamsuatubentuklinear. Ini termasukfiting polinomial dan bentuk-bentukpersamaantertentu. Tipe yang lainadalahnon-lineardanmemberikankebebasankepadapenggunauntukmenentukansendiripersamaannya. Padafitingnon-linear, gnuplot memberikankebebasankepadapenggunauntukmenentukanpersamaanyangakandigunakansecarabebas.
4.1 Melakukan fitting data
Dalamprogramgnuplot adaduahalyangharusdilakukanuntukmelakukanfiting suatudata,yaitumembuatsuatudefinisi fungsi kecenderungandatadalamsebuah file, misalnya f(x) = y0 + m*x (fungsi linear). Fungsi inidisimpandalamfile misalnya line.fnc. Membuat skrip yang akandikerjakanoleh gnuplot (lihat sintaksdancontohberikut).
Sintaks:
fit {[xrange] {[yrange]}} <function> ’<datafile>’{datafile-modifiers}via ’<parameter file>’ | <var1>{,<var2>,...}
Contohpemakaian:
f(x) = a*x**2 + b*x + cg(x,y) = a*x**2 + b*y**2 + c*x*yFIT_LIMIT = 1e-6 fit f(x) ’measured.dat’ via ’start.par’fit f(x) ’measured.dat’ using 3:($7-5) via ’start.par’fit f(x) ’./data/trash.dat’ using 1:2:3 via a, b, cfit g(x,y) ’surface.dat’ using 1:2:3:(1) via a, b, c
# file ekstra.dat# [1]porositas [2]ukuran butir# data yang dipakai pada contoh grafik tidak ditulis# semuanya, tapi cukup untuk digunakan mencoba skrip#14.482 0.2799.245 0.247
Dikenalada2 macammetodeuntukmembuatgambarkontur, yaitu "gridding"dan"TiN" (triangulatedirregularnetwork)namunyangpalingpopuleradalahmetodegridding (penggridan).Prinsipdari metodeini adalahmembuattitik-titik baru denganjarak yangteraturdenganmenginterpolasititik-titik yang tersebaracak. Ada enammetodeintrapolasiyangbiasadipakaiuntukmelakukanpenggridan,misalnya triangulation, inversdistanceweighting, nearestneighbor, ordinaryKriging, minimumcurvature, dantrendsurface. Padaprogramgnuplothanya tersediasatumetodeuntukmelakukanpenggridanyaitu inversdistanceweighting. Gnuplot menyediakan2 macamcarauntukmembuatkontur, yaitu memplotdatayangtelahdigrid danmemplotdataacak(belumdigrid).
5.2.1 Data teratur
Padasubbabini hanya akandibahasmengenaipemplotandari datayangtelahdigrid. Ini berlakujika penggridantidak diserahkansecaraotomatispadagnuplot,karenasepertiditulis di atasbahwaprogramini hanya menyediakansatumacammetodeuntukmelakukanpenggridan,sehinggauntukmembuatkonturdenganmetodepenggridanyangberbedadapatjugadilakukan,misalnyadenganmembuatsuatuskripdenganbahasapemrogramantertentuataupeng-gridandilakukanolehprogramlain, sepertiUncert yangmemiliki fasilitaspenggridanpalinglengkapdi lingkunganLinux.
Perintahini memiliki duafungsi. Pertama,mensetnilai z dimanatitik kontur ditentukanmisalnya oleh interpolasiantaratitik dataataufungsiisosample. Kedua,mengontrolcarapenggambarankonturantaratitik-titik yangditen-tukanberdasarkankesamaanz. <n> harusberupapernyataankonstantaintegral dan<z1>,<z2>... menyatakansuatukonstanta.
’linear’, ’cubicspline’, ’bspline’ – mengontroltipe pendekatanatauinterpolasipadapenggambarankontur. Jika ’linear’, segmengaris lurus menghubungkantitik-titik yang mempunyai nilai z yang sama. Jika’cubicspline’, konturlinearakandiinterpolasiantartitik dengannilai z yangsamauntukmembentukgariskon-tur yang(melengkung)halus. Jika ’bspline’, dapatdipastikanbahwagarislengkunghalusakandigambaruntukmenghubungkantitik-titik yangmempunyanilai z yangsama.
Padagambardi atasterlihat ada3 komponenyang akandiplot yaitu A, B, danC yang masing-masingdiny-atakandalampersen).Jumlahtotal 3 komponenini harus100%.Kalaukita bacatitik yangdiplot adalahP(A,B,C)=P(10,50,40).Hati-hatimemberikanpersamaanpadagnuplot,karenaposisiplot A danC bisaterbalik!
Untuk lebih jelasnya silakanamaticontohberikutini:
# Memplot batas segitiga, jaring-jaring dan data# Dari sini perubahan hasil dapat dilakukan sesuai keinginan
set label 41 "CHCl_3" at -5,-5 center # label x-Axisset label 42 "C_2H_5OH" at 50,92.5 center # label y-Axisset label 43 "NH_3(aq)" at 105,-5 center # label z-Axisplot "tern-bnd.dat" u (gx($1,$2)):(gy($1,$2)) notitle with lines 1, \
"ter-mesh.dat" using (gx($1,$2)):(gy($1,$2)) notitle with lines 5, \"ternary.dat" u (gx($1,$2)):(gy($1,$2)) t "Dataku" with points 7, \"ternary.dat" u (gx($1,$2)):(gy($1,$2)):(0.1) smooth acsplines noti-
tle with lines 8pause -1 "Tekan tombol Enter <RETURN>"
� set size square 0.535,0.65 bergunauntuk menentukanukurangrafik denganskalasumbu x danyyangsama(square).
� File tern-bnd.dat berisi nilai koordinatbatasluar diagramsegitiga, sedangkanter-mesh.dat berisinilai koordinatjaring-jaringdalamsegitiga. File ternary.dat merupakandatayangakandiplot ke dalamdiagramsegitiga tersebut.
Padasubbabini akandibahasbagaimanamensettampilangrafiksehinggamenghasilkangrafikyangbagus.Penaturantampilangrafik padaprogramgnuplot sangattergantungpadaterminalkeluaranyangakandipakai. Ada beberapaterminalyangmempunyai fasilitas lengkapuntuk mensettampilangrafik, misalnya postscript,latex dangabungankeduanya. Ketiga terminal ini dipakai terutamauntuk membuat grafik kualitas tinggi untuk dicetakpadaprinterpostscript.Jikasuatugrafik memuatketeranganpersamaanmatematikataurumuskimia yangbiasanya selaluberisisubskripatausuperskrip,makaterminal postscript jenisenhanced danterminal latex sangatbagusdigunakan.
dimana<mode> meliputi ‘landscape’, ‘portrait’, ‘eps’ atau‘default’; ‘solid’ menggambarsemuaplotdengangaris padat,menggantisemuajenis pola garis putus-putus;<duplexing> tergantungjenis printer yangdigunakan,‘duplex’ akandicetakbolak-baliksedangkan‘simplex’ akandicetakbiasa;"<fontname>" adalahnamajenishurufyangsesuaidenganhuruf PostScript.
Contoh:
set terminal postscript default # old postscriptset terminal postscript enhanced # old enhpostset terminal postscript landscape 22 # old psbigset terminal postscript eps 14 # old epsf1set terminal postscript eps 22 # old epsf2set size 0.7,1.4; set term post portrait color "Times-Roman" 14
Penerapannya lihat contohdi bawahini.
set term postscript landscape "Roman" 14set output "tampilan1.ps"set title "Grafik y=sin(x)"set xlabel "sudut (radian)"set ylabel "sin(x)"set nokeyplot [-3.14:3.14] sin(x)
29
ABe & Warmada Gnuplot untuk orang lugu
-1
-0.5
0
0.5
1
-π/2-π 0 ππ/2
sin(
x)
sudut (radian)
Grafik y=sin(x)
Gambar6.1: Pengesetanterminalpostscript
6.2 Menambahkan teks dan panah padagrafik
Seringkalilegendapadasuatugambarataugrafiktidakmemberikaninformasiyangcukupkepadapembaca.Biasanyatambahanketeranganseperlunya diperlukanuntuk memperjelassuatugrafik, misalnya denganmenambahkanlabeldanpenunjukpanah.Untuk menambahduaketeranganini tidak terlalusulit dilakukandenganprogramgnuplot.Ada 2 perintahgnuplotyangdapatmelakukankeduahal ini, yaitu set label danset arrow. Mari kita lihatsintaksdancontohberikutini:
Sintaksset label
set label {<tag>} {"<label_text>"} {at <position>}{<justification>} {{no}rotate} {font "<name><,size>"}
set nolabel {<tag>}show label
Tag merupakannilai integeryangdigunakanuntukmenentukannomoratautandalabel. Jikatagtidak didefinisikan,nilai tag terendahyangtidak digunakanakanditentukansecaraotomatisoleh gnuplot. Tag dapatdigunakanuntukmenghapusataumemodifikasilabel tertentupadagrafik. Untuk merubahatribut tertentudari suatulabel, gunakanperintahset label sesuaidengannomortag.
Untukmensettandapanahdari titik awal ke titik (1,2)dengantipegarisnomor5, gunakan:
OpenSourceCampusAgreement 30
ABe & Warmada Gnuplot untuk orang lugu
set arrow to 1,2 ls 5
Untukmensetanakpanahdari kiri bawahdaerahplot ke (-5,5,3),dannomortagpanah3, gunakan:
set arrow 3 from graph 0,0 to -5,5,3
Contohpemakaian
# Contoh plot peta Indonesia dan negara tetangga dengan gnuplot
set size ratio .55 0.6,0.475set xrange [95:141.065]set yrange [-15.9343:8.00469]set nokey set noyzeroaxisset grid
# menambah labelset label "Sumatera" at 101.5, 0.5 centerset label "Kalimantan" at 113.5, -0.5 centerset label "Sulawesi" at 120.75, -2 centerset label "Maluku" at 128.25, 3 centerset label "Irian Jaya" at 140.5, -3.8 rightset label "Jawa" at 110, -7.25 centerset label "Bali" at 115, -10 centerset label "NTB" at 117, -7.5 centerset label "NTT" at 122.25, -9.75 center
# menambah panahset arrow from 115, -9.5 to 115, -8.25
# plot indonesian mapplot ’indo.dat’ with lines 3 4, 0pause -1 "Tekan tombol Enter <RETURN>"
-15
-10
-5
0
5
95 100 105 110 115 120 125 130 135 140
SumateraKalimantan
Sulawesi
Maluku
Irian Jaya
Jawa
Bali
NTB
NTT
Gambar6.2: GambarpetaIndonesiadannegaratetangga
6.3 Mensetukuran grafik
Pengaturanukurangrafikadalahsalahsatuhal yangpentingpadatampilangrafik,karenamerupakansalahsatuunsurdari suatukomposisigrafik. Perubahanukurankeluarangrafik dari programgnuplotdilakukandenganperintahsetsize (lihat sintaksberikutini):
OpenSourceCampusAgreement 31
ABe & Warmada Gnuplot untuk orang lugu
Sintaks:
set size {{no}square | ratio <r> | noratio} {<xscale>,<yscale>}show size
Nilai <xscale> dan<yscale> adalahfaktorskalauntukukurangrafiktermasukgrafikdanbatastepi. ratiomenye-babkangnuplotuntuk mencobamembuat grafik denganaspekrasio<r> (rasiopanjangsumbu y dengansumbu x)denganproporsiyangtelahditentukanpada<xscale> dan<yscale> (lihat contohdi atas).
Arti dari nilai negatif <r> berbeda,jika <r>=-1, gnuplotakanmensetskalasehinggasumbu x dansumbu ymemiliki unit panjangyangsama(sangatcocokuntukdatageografi).Jika<r>=-2, unit padasumbu y mempunya 2kali panjangdari unit sumbu x. ’square’ samadengan’ratio 1’. Baik ’noratio’ maupun’nosquare’ akanmengembalikangrafik ke aspekrasiodefaultdari terminalyangdigunakantetapitidak mengembalikan<xscale>atau<yscale> kenilai defaultnya(1.0). ’ratio’ dan’square’ tidak memiliki efekpadapemplotan3-dimensi.
Untukmembuatgrafikdenganukurantinggi 2 kali lebargunakan:
set size ratio 2
6.4 Mengatur lebar margin
Pengaturanlebar margin diperlukanjika gambargrafik tidak terletakpadaposisi yang proporsionalterhadapke-dudukanbingkai gambar. Hal ini sangatpentingketika gambarakandigabungkandengansuatuteks atautulisanataulaporan.Tanpapengesetanmargin, posisigambarkadangterpotongolehbingkaigambar(terutamapadabagianlabelsumbu), sehinggamenjadikanmargin padabagianatasgambarmenjaditerlalulebar.
Padaprogramgnuplot telah tersediasuatuperintahuntuk mengaturlebar margin yaitu denganperintahsetmargin (lihat sintaksberikut).
Sintaks:
set bmargin {<margin>}set lmargin {<margin>}set rmargin {<margin>}set tmargin {<margin>}show margin
Unit <margin> menyatakannilai dari tinggi ataulebarhuruf. Nilai positif unit ini menyatakannilai mutlakdarimar-gin, sedangkannilai negatif (atautanpanilai) menyebabkangnuplotmenggunakannilai terhitung. Biasanya margindari suatugrafik secaraotomatisdihitungberdasarkantics, label tic, labelsumbu, judul grafik, timestampdanukurandari legendajika diletakkandi luar batastepi.
set terminal latexset output "gb-8.tex"set size 3.5/5, 3/3.set format y "$%g$"set format x "$%g$"set xlabel "$x$"set ylabel "$y$"set key -4,8plot [-10:10] [-10:10] "tex.dat" title "File Data" with linespoints 1 7,\
3*exp(-x*x)+1 title "$3e^{-x^{2}}+1$" with lines 4
33
ABe & Warmada Gnuplot untuk orang lugu
Jikaskrip di atasdikompilasidengangnuplotakandihasilkanfile formatTEX gb-8.tex. Untuk menambahkanfile inikedalamdokumenLATEX, tinggalmenambahkansatubaristag\input{gb-8} padadokumendimanagambarakandisisipkan.Atau lebih lengkapnyaadalahsebagaiberikut:
Atau file ini bisajuga dijadikanfile GIF. Denganperintahlatex2html dapatdihasilkangrafik dalamformat gifdari file gb-8.tex ini. Hasilnya adalahsebagaiberikut:
-10
-5
0
5
10
-10 -5 0 5 10
Sum
bu y
�
Sumbu x
File Data3e-x2
+1
Gambar7.1: Gambaryangdihasilkandaridari file LATEX keluaranskripdi atas
initial set of free parameter valuesy0 = 1e-30m = 1e-30
After 5 iterations the fit converged.final sum of squares of residuals : 6.93087rel. change during last iteration : -1.62311e-10
degrees of freedom (ndf) : 28rms of residuals (stdfit) = sqrt(WSSR/ndf) : 0.497525variance of residuals (reduced chisquare) = WSSR/ndf : 0.247531
Final set of parameters Asymptotic Standard Error======================= =========================y0 = -35.636 +/- 2.711 (7.606%)m = 179.901 +/- 10.12 (5.623%)