pengantar turbo pascal.pdf

229

Click here to load reader

Upload: vancong

Post on 01-Jan-2017

598 views

Category:

Documents


102 download

TRANSCRIPT

  • i t. -\:

    .,f

    tl

    f, . ........... __ ,. .... , ,.

    ' t a f

    ~

    i ~ 1:;

    ! ~l

    ...

    DAFTAR tSf

    DJftJt lsi

    l\.1u l'cngantJ r ...... ... ....... .

    I. !'F:"JG/\ ''-iTAH TL:HIH l l'A\C:\1.

    II

    l I TUH!lJV..(

    -~h" ...t~

    ~()\

    .o .... ,.

    :! ,. '\.

    ~0\ :y' ...... \. .9

    ~

  • VI.

    VII.

    VIII.

    IX.

    X

    Vlll

    y.6.

    V.7. V.8. V.

  • l!f'Jti AN VOINTER - - 260 PEMR0GnMv1"j.J I ~!'I 1 1\)JN~R .... .... .... ..... ......... : ...... . 260

    ,.Jr t:ltfl .._.,,o...._'TER "6.1 XIV.l. l'J\ I H~l~'" ll'< ~ XIV .

    2. prHI II : ': '~ I ,\f"l I)AFfAR BERANTAl ....... ......... 263

    XIV.3

    . pt 'Hnlr,l ,\It I'N VARIABEL DINAMIS .... ... ... .... 264 XIV A . Mllf l( II ~I I , -\f t' fi\R BERANTAI .. .... .... ....... ..... 267 XIV .S. MI ' MII 11

    1.,

    111 \N lSI DAFTAR BERANTAI ... ... ... 271

    XIV.6. Ml ' f IAf'JI pll h Vt\ IUABEL DTNAMIS .. .... .. .......... 272

    XIV .7. Mflflt ,l~ I ~ ltli'JIO: KEPERLUAN ALOK ASI XIV .8. 1'1 11 1' I 1 ,. 2K."\ ' I, I"~,, I I I , I d ..... .. ... .. -.. -...... . .. ... . ... . . . . . . . . . . 2~7

    XV . MANI I'l 'I /'1'1 1 1111

    I ' \ I :\I\ I KOMl'uTf. l~ 11\"v\-PC .... ...... 2X7 XV.l. r-.,.11 f'- 1' I

    111, q rl I)ALAM TUR!JO l' t\SCr.L ..... . ,:::-;1

    XV.2 . 1' 1 I '' t 1, 11 Ill t\1 AMAT, SEGMEN ATi\. U (\ II ' I I I xv .3. tvl l ----- ..... ....... .... ________ __ 2'JI'

    1 t1 , 1 1 11

    , ,1

    1 I I hi REGISTER CS,DS.SP 1),\.N SS 2')11

    XV.-l 1,11 1\ ll : l II' 11 1 11 UKUR.A.N MEMORI SU ATU XV.j . 1\11 r II I

    1 1 1 tl'l ATAU KON ST.ANTI\. BERTIPE 2'J1

    \' /'1 111 \Ill ,111\ Il l TIPE DATA TERSTRUKTUH

    XV h. I 11 11 ' ,I ; I 1 ill AI YA NG SAMA ..................... .. .

    291

    I ol I 11 ,' \ I I I 1 1',1 >;EJ UMLAH MEMORI ...... ... ." ... . ~ 11 1 1 ' :~I I ;\ ', I I lATA BERTIPE \X.'ORD .... ........ .

    XVX r, l ' 1 !11 II' \II ' .1 (; MEN D.AN OFSET :O.~ENj:\DI XV

    .. t i ll ' . '' I .. ............ .. .... ......... ... ...... ... .. 'I ' " 1 ~

    1. , I , t\IF.MORI DAN PORT ')ECARf.

    r Ill i' . XV . lil 11

    p ...... .... ............. .. ..

    I ,,II' ' , I . ,, . II UT I

    I '. t\ ,- , XV .ll t l ' '

    XV. 7

    ........... .. .. ...... ........ .

    ~l)~

    2').\

    ')t \ , __ .,

    2'1(,

    2'1l'

    .301 " I . \ I II' I I "\ 1-i ..... ... ... .. .. N ........................... .. .

    XV I. FASILII 11 1

    11 1\M LANJUTA. .. .. ....... .. ... .. ..... .. . .. ' I 1!11 ' 1' I . XVI. I.

    1111 111 1: .............. .................... .... .

    }(ll

    30-\ .3

  • ? t

    ~ L .. . =-.. } ,.

    ' r;

    ~

    }.."

    '~~

    KATA PENGANTAR

    Turbo Pascal merupak:: n sabh s ~tu ko mpi k r ' : :: , ,mgat tcrkcnal unw k pem:-,)graman ko rnputcr bahasa P:< sol. Pr. , \ang cimdi \ dcngm rn cn g~:; unak:~n Turbo Pascal rncmpu n v.1r ern y:m~ rcrqruktur, scl nngga mud.~h dip:~hami maupun dikcmbangkan okh ?rland fr ll,n ... ,nal scb.1gai pcrusaha-an yang menciptakannya telah menshadirkan : .'r bo rascal versi 5. 5. Banyak kelebihan pada versi ini yang rak adJ ;:- .da \"l'fSi scbclumnya . Fasilitas-fasilitas yang dimaksudkan untuk m cT:.:J ahkan pcrnrogr:~m :Hl tclah disediakan. Schingga tid:1klah tcrl:tmpw ,.1: . ,~Jn mcm:tkan banyak waktu untuk membuat program gun:~ rncnytJi kan suJtu ntas:~l a h. fasilitas yang disediakan diantaranya berupa kem .:,iah:ll1 untuk mcmbuar gambar, mcngakscs memo~i :naupu r. pl) n . :;1cnjabnbn pro gram bcrjenis .EXE atau .COM dari suJtu progn::: mclakukan int c.: rupsi sccara software bahkan sampai mcmbuat pru !_:~Jm residcn (program yang tinggal menctap dalam memori sampai ,-boorti11g). Tentu saja masih banyak fasilitas yang lain .

    Bagi yang ingin mengenal ataupun mcndJ!am J r'a;ilitas yang ada dalam Turbo Pascal termasuk dari segi dasar pcmrogflmJn, buku ini kiranya sangat bermanfaat scbagai petunjuk . Materi yang ,-ukup lengkap disercai lebih dari 130 program contoh. yang bisa dioperasibn dengan menggunakan Turbo Pascal versi 5.0 mau pun 5.5, akan sangat membantu dalam mempercepat penguasaan trrhadap Turbo Pascal, terutama yang m.enggunak.an komputer IBM PC.

    Akhirnya, seperci kata pcpatah tak ada gading v.mg tak rct.1k, pcnulis dcngan scnang hati menerima saran arau kritik untuk pcnycmpurnaan atas kckurangan d:tn kesabhan-kesal.1han y.lll g r~rJ J dr. Dan unruk icu; pcnulis mengucapkan banyak tcrimJ kasih . T.1k lupa pcnulis j uga

    XUI

  • rncngucapkan terima kasih kepada 1~ua pihak yang telah membantu hingga ter..,vujudnya buku ini.

    J~arta, Agustus 1989

    Penulis

    ~ /

    ' f ~- \~:w-

    \

    XIV

    i r

    t r t

    "' r .

    f. t l r ;

    I PENGANTAR TURBO PASCAL

    Bab ini mcn_jdaskan kaiun Tur ~o Pa~cal dcng.m pcmrogr:~!n ~n tn,truk-ru r, kompikr sch.; ,:.1i tr .l:l,J.I'Or se n 1 lllunbcrikan garnb:1r.11, -~~~~~ k.H mcngcn:~i progr.1m Turlo !Ja~ca l.

    1.1 TURBO PASCAL DAN PEMROGRAMAN TERSTRUKTUR

    Turbo P;jscalmcrupabn ~.1lah ~aru vc r,: bJha~a PJscal yang dlkcmb;u-:g-kan olch Bvrland lntrmation,!l. B.1has.1 Pascal scndir i tcrmJsuk bai JJ s.l bcraras tinggi (lu~~~~ !,Id i.u:glla,I( C) . Scbagai bahasJ bcraras tinggi . Pa,oi sudah cemu beroricntasi ~, a,~a baha~a man usia. Dalam hal ini P .. sol bcrupa bahasa scmaCJm ln sg r:,. I1~Struksinya menggunak.ln btJ-kau dalam bah:~ s:~ lngg ri s. KJrena icu bahasa Pasu l sangat mudah ciip~hami dan dipclaj:~ri. Untuk rncmrclajari bahasa P:~sca l, scscorang ti d.1k ha rus rncngctahui perilla! tL knis da;-i m,si n ko mputcr sccarJ rnc,J..Ialal!!, melainbn yang pcnt:nf:( .1Jalah rncmahanll kaidah Jari bahas.t rcr-.,cbu!. Kemudahan dahm mcma11Jn ll dan mcmpcbjari ~ahasa Pascal dnu;1jang oleh bentuk program Pa,cal yang tcrstruktur. Scbagai b:1h:~s.1 png tcrstruktu r, program PascJI tcrsusun :ltas scjumlah biok. Blok-hlok y.lllg kecil selanjutnya dapat dipakai untuk mcmbuat blok yang lcb ih hcs:~r. dan sccara kcsduruhan membcmu k program kcrja. H.!l ini mcmbcrikan kemudahan bagi pemrogram daiam mcmbuat, mengcmbangkan dan memahami program. Suatu permasalahan dapat dipecah-pecah mcnjadi bagian-bagian yang kecil schingga dcngan gampang dapat dikodcbn. Keuntungan yang lain, logika program menjadi lebih mudah dipelajari/ dimengcni. Kesalahan-kcsalahan yang terjadi di dalam program akan rnudah direlusuri. Disamping itu program mudah dirnodifikasi tanpa kuarir rncnimbulbn cfck sampingan terhadap bagian lain dari program. Sebab program dalarn bahasa yang terstruktur, mernungkinkan pemb:J-tasan cfek tindakan hanya di dalam blok am tidak rncmpcngaruhi yang tcrletak di luar blok.

    Dalam Pascal, blt'k kbih dikcnal dcngan ~cbutan subprogram. Subprogram scndiri dibeJakan menjad1 dua golongan . Golongan pertama dinamakan prosedur dan golongan kcdua discbut fungsi .

  • j. ~

    L2 I(OaiiPILER SEBAGAI TRANSLA'rof. program. yang ditulis dalarn bahah- beraras tinggi seperti Pascal, coBOL (Common Business Oriented Language) ataupun beberapa bahasa

    ang lain sebenamya tidak dimengerti oleh komputer secara langsung, ~ebab kornputer hanya mengenal bahasa khasnya saja yaitu bahasa mesin. Supaya program bisa dijalankan (di~ksekosi) haruslah diterjemahkan terlebih dahulu ke dalam bahasa.__mesm (bahasa yang hanya mengenal ko;nbinasi kode 0 dan 1). Proses penerjemahan dilakukan oleh program

    ,ang disc but translator (penerjemah).

    Translator dap::.r-berupa:

    i. Interpreter -, Kompiler Interpreter mcnerjemahkan instruksi selama ek sek -; i program . Jika

    dikehendaki untuk menjalankan program, mula-muL. 2rogram sumber (wur.:f program atau program yang ditulis dalam bahasa beraras tinggi) dit crjemahkan terlebih dahulu ke dalam bentuk kode mesin per instruksi . Setelah instruksi tersebut dipahami oleh komputer dan dijalankan , translator kembali mengulang proses scrupa untuk instruksi berikutnya. Ocngan cara seperti ini, suatu instruksi akan dij:1lankan dengan sangat

    lam bat . Bcrbeda dengar, interpreter, kompiler menerjemahkan inst ruksi scc:na keseluruhan terlebih dahulu ke dalam kode mesin ~ebelum program dapat d ijalankan. Setelah penerjemahan (istilahny:J yaitu kompilasi). kompiler tidak diperlukan lagi, scbab sesudah pcnerjcmahan diperoleh program objek (program ini disimpan pada file tcrpisah dcngan program sumbcr) yang bersifat 'executable', dalam artian bisa dijalankan secara langsung pada sistem operasi (MS-DOS). Berdasarkan sifat ini, program akan dijalankan dengan sangat cepat, karena pada saat dijalankan tidak

    ada lagi proses penerjemahan.

    i t l

    t ;: r ' ~

    '

    .,

    ' ~

    ! k

    ,da-kompiler tradisional, program sumber ditulis dengan mengguna-kan editor teks (misalnya Wordstar atau SideKick) yang terpisah dengan kompiler . Sesudah program disimpan dalam file , kompiler baru dilibatkan, untuk melakukan kompilasi. Sesudah kompilasi, hasil , kompilasi baru bisa dijalankan. Seandainya kemudian terjadi kesalahan, ~ cntah karena kaidah i.nstruksi masih salah atau logika programnya yang ~ s:1\ah, editor teks harus dipanggil lagi untuk mempcrbaiki program. ! Selanjutnya proses kompilasi dan pengujian program dilaksanakan lagi . ~' Cara sepcrti ini, dari proses penulisan program, kompilasi sampai pengujian program, akan memakan waktu yang relatif lama .

    2

    Berbeda dengan kompiler tradisional, fasilitas yang diberikan pada Turbo Pascal tidak sekedar berisi kompiler, tetapi sekaligus juga mengandung editor teks. Bahkan eksekusi program bisa dilaks:makan langsung dari Turbo Pascal, tanpa harus kduar menuju MS-DOS. Perbedaan yang lain, program sumber yang ditulis tidak harus disimpan terlebih dahulu kalau mau dikompilasi. Jika program Jiras:1kan sudah sempurna barulah disimpan ke dalam file. Cara ini tentunya mcnghemat waktu: Sclain itu, Turbo Pascal memungkinbn hasi! kompibsi bisa dipilih dan ditemp:1tbn ke

    RAM, atau Disket (media pcnyimp:1n ekstcrnal),

    Kompilasi ke dalam RAM mernpunyai kcuntungan : proses kompilasi sangat cepat. Namun karcn a hasil kompilasi tidak d1 simpan kc dah m disket, tcntu saja eksekusi program hanya bisa dijalankan c1 i cLl!am Turbo Pascal. Oleh karcna itu, biasanya kompila:.i kc HAM ha11V:J diiakubn selama pcngujian program saja. Kalau program sud olh scmpurn.1, baru dikompilasi ke disket (dengan harapan dap:lt diekscku si sccarJ l:tnf:'~ung pada MS-DOS).

    1.3 PENCENALAN PROGRAM TURBO PASCAL

    Contoh yang sedcrhana Program 1-1. Prograrri 'Turbo Pascal' ke layar.

    mengcnai program PasCJ.I ditunjukbn pJ,la tcrscbu r dipakai un tuk mcnampilkan tuh~ J n

    PROGRAM TP;

    USES CRT ;

  • 1 2 r r - - -~ - - --

    If' ~

    dan ltll-ftlerupakansalah_satu..contott..Pengenal_ vang_sangat._pan,lang_seblLnamanva

    oleh Turbo Pascal dianggap sebagai pengenal yang sama d~ngan:

    inLmerupakan-salatLSatu-contoh_ pengenal_yang_sangaLpanjang_se

    Bcrdasnkan keleluasaan yang dibcrik.m Turbo Pascal, remherian naJlll pcngcnal scbaiknya y:.ng rncngandung makna, supaya program

    111udah dibaca dan dipahami oleh pernrogram. Pengenal scperc; L nng

    111cwakili r:ibi luas misalnya lcbih baik jika dinyatabn deng:an Luas. Nama pengcnal tidak bolch sanu dcngan nama yang tergolong dalam

    kata-tercadang ( reserved_tvord). Yang rcrmasuk dalam kat;-,-tercadang

    yaitu:

    Ta'f>el 2-2. Kata-tercaaano dalam TurbO Pascal ./

    abSolute else v tnllne procedure typev

    anav end; interface program.; unit

    arrav v external interrupt record,; untllv'

    oegin v file.; labelv repeat v uses

    ose ,. ror.; modv setv varv

    const v f'JrwardJ nlt.J shl virtual

    constructor function.- notv shr wtllle v

    destructor go to.; object string wlthv

    t/ dlVv nH~~ ll?~'--"1':~ry.~.,..%~

    < ~ >

    r

  • ~

    r ~--

    comp. Keempat jenis data yang terakhft (single, double, extended dan comp) ditujukan untuk komputer yang mempunyai prosesor-pendamping yang disebut 8087 (prosesor untuk pemrosesan numeris dengan ketelitian ringgi). Seandainya komputer ridak mengandung keping (chip)/prosesor 8087, keernpat tipe tersebut tetap bisa diiibatkan dalam program dengan

    cara emulasi (akan dijelaskan pada Bab XfX). Tipe data comp merupakall bentuk :-w::sisi ganda dari tipe data

    )ongint. Tipe ini sangat cocok dipakai ~mtuk pemrosesan nilai bulat yang bcsJr Scbab kavvasan nilain v.1 k: ~ J-kir J mcncapai --9,2 x 10 lR sampai du:;:_. aatam 'it\tcrn f- 1 ~J!uh..J.n)

    (Rihng.];; 21~)1 i cbbm S:.(l'n: hcLadc~~rn:d Jtau 2 13 dalam sisrcr:l r::!uhan)

    ---~-~--

    Konsrant;1 dalam '>istu~J hcksJdc>inH] bcr'.Jsar Jntar;; SOOOOtJOOO dan $FFFFFFFF.

    Konstanca bdang.m rc~l mcngF unakan tanda pecahan berupa titik. Tanda pemisah ribuan tldak bolch disertakan. Contoh penulisan konstanta bilangan pecahan:

    40.57 +40.57

    (BiLmgan pecahan 40. 57)

    (T Jmi 1 + bnleh Jiscrubn. menyatakan nilai positii)

    -6777 (Terrn,Jsuk dahm bilang.1n pccahan) -327778.567 (Biiangan pccah.m -- J::777K, 5(; 7)

    .5 (Bilang.H! rcc:dun 0,5) - .. ------~ ----~---~--------...

    Contt'h pcnulisan kunst.mta pccahan van~ salah:

    11

    ~.,)..,._,,.!OltJ;.!,""'$',_._.4._..,__.,!ZJ ___ ,,.~!\ . ..,._J . t . .......,_ __ .EJS_,~ . 9. 1, .. ,'f, _._J,~'i''',.....,.~"-~~~-U.,*,-'.Y .. .,d!l? .. ,lf.,f~~'i~""v.w,.,;s:c,.,. . ~ J~"'"''"' ,, ~,.J~.;p.:~;~'T-'~ ... -'""t~~' ''"-:'~,.~;-:.~;!'--~:..,::-;,..;::'"""~"':'''!t!'"""; .. j':"i~:'!'~': .. ~~";-:;vr.:';.~~~"":;;-~.:-::-:~-~~-~:-~?-t,..'!!if*.+.t.tdet ... tt.r.

    ,.

  • !'" r

    3.000,00 (Konstanta pecahan hanya boleh mengandung tanda titik. Jika yang dimaksud adalah bilangan tiga ribu, penulisannya adalah 3000.00 atau 3000 saja)

    5. (Sesudah tanda titik harus ada angka) -----

    Konsunta pccah:m juga bisa r:lituli~ dalam bcntuk notasi cksponeiJsial

    yang mcngg'..makan tanda c auu E (\,mg diikuti dcnpn scbuah nil;;i pangbt). Contoh:

    2.7E+ 3 2.7eJ03 5.2E-06

    (ldcmik Jcnt:an h:l.lJJ~an pccahan ::J(,( t Jt.111 ~ 7 X ] i I;)

    (BiJangan pccahan 5.~ X 1()-f,

    JULI ] / (5,2 X ]()~) )

    Contoh p:.!~Jii~Jll \;,r.~ saLh:

    2.7 E +3 :D1 ,icp.m dan d: bcL1b.ng randa E arau c tlt.hk bolch ' . '\ aoa ~ras1,

    Konstanta Karalcter Pcnulisan konstanta karaktcr cliiakukan dengan mcnemp.Hkan

    di an tara t.111da pctik tunggal ( \ Schaga1 contoh:

    'A' Konstanta huruf A a Konstanta huruf a ' I Konstanta karaktcr SPAS!

    '*' Konstanta simbol * '"' Konstanta PETIK TUNGGAL

    braktcr

    Untuk konstanta karakter petik tunggal. karaketernya harus ditulis dua kali.

    Dalam tabd ASCII tcrdapat s~jumlah karakter yang tombolnya tidak tersedia dalam papan-kctik (keyboard). Scbagai contoh, karakter yang !Jlemiliki kodc ASCII 25-(tanda panah bawah). Untuk karakter scmacam ini, Turbo Pascal rncnycdiakan cara pcnulisan yang khusus.

    K

  • pROGRAM Kotak;

    .,._

    '

  • I t

    :_ ' -sariS 1 . . sans 2

    PernatiJcan nasllnya ! BariS H10Barl52 c;PernatJJcan nasunva 1

    .... dlawall dengan bunyt speaker

    Adanya karakter yang mempunyai kode ASCII 10 (disebut kar:tkter line

    feed), pernyataan

    WRITELN ('8arls11'*10'Barls 2'l

    menyebabkan tulisan Baris 1 eLm Baris 2 dttempatbli ;.'.iCb b,lm \'Jng berbeda. Ini disebabkan sifat d.1ri karakter line feed, yang mcmbuat kursor bergcrak satu baris ke ba wah. Dengan bcrpindahnn k ur>ur pad a baris di bawahnya maka tulisan lanjutannya (VJitu Baris 2) diumpdbn pada baris yang bcrbcda dcngan tulisan Baris 1.

    Karakter beJl CG) pada pernyataan:

    WRITELN ('G Perhatlkan hasilnya!'l

    menyebabkan terdcngarnya suara speaker sc:jen.;k scbclum t:tmpilnya tulisan Perhatikan hasilnya !.

    Pada pernyataan:

    WRITELN ('Baris h10Baris 2')

    #10 bukanlah mcnyatakan karaktcr bc'rni!Ji ASCII 10, melair:bn tlg.t karakter berturutan #, 1 dan 0. Sedangkar. pada pcrnyaraan:

    WRITELN rGPerhatikan hasllnya !'l

    dalam string tidak terdapat karakter bell, melainkan karaktcr dan G.

    Konstanta Boolean . Konstanta boolean bisa berupa TRUE atau FALSE. Contoh program yang mengandung konstanta hc.'lean:

    PROGRAM ContohBoolean; USES CRT;

    VAR

    Selea.ili : BOOLEAN;

    !

    I ~ j\:

    ~ !!,. !':'

    ' :,~~ I ~~ ~t: ~~. t;;-;::

    BEGIN

    CLRSCR;

    Selesai . : FALSE;

    WRITELN (Selesai); READLII

    END.

    Program 2-J.

    Pcrnyat.Lm St'f,

  • CLRSCR; Jejari : = 45; "'

    (

    Luas := PHI Jejari Jejari; Keliling := 2 PHI Jejari; WRITELtl ( 'Luas : , Lu&s} ; WRITELN ('Keliling = ', KelilingJ; READLN

    END.

    Conton ekeet.:1 kernbali ke variabcl Jumlah". Pada contoh ini Jumlah + 1 mcrupakan suatu ungkapan.

    Pengertian nilai variabcl dapat diuhah dan dilihat pada program berikur:

    PROORAM Var1abel;

    USES CRT;

    VAR

    X : BYTE;

    BEGIN

    CLRSCR;

    X :: 10;

    19

  • r

    WRITELN ('Iai X mu1a-m~-: X := 25; WRITELN ('lsi X sekarang

    READLH

    END.

    x mu1a-mu1a = 10 x sekarang = 25

    =

    X);

    X);

    _Pro~~~~m Z-5. n.riabcl X dibcri nilai 10 melalui penugasan:

    :s1 X diubah menjadi 25 mclalui penugasan:

    Ungk.1pan Li:~entuk uieh operand dan operator- Sel:ngai contoh dari sl.latu ungk.l;:: ~n:

    operator

    operand

    lain:

    kedua contoh di atas, A, B, 2, C dan 4 merupakan operand, vatakan nilai yang akan diproses. Sedangkan tanda seperti +, * dan

    pakan operator, yang menyatakanjenis tindakan yang dikenakan

    operand_

    operator dalam Pascal bersifat birwry, yaitu operator yang

    .,

    melibatkan dua buah operand. Operator scpcrti * termasuk operator binary. Sebagai contoh:

    2 3

    Operator * mdibatkan dua buah operand, bempa 2 dan 3. Contoh yang bin: 2 + 3. Pada contoh ini, operator + juga bersifat birzary.

    Disamping o~er::ttor lnnary terdapat operator jen1s 11nary, yang hanva mempunyai sehuah operand. Sebagai cuntoh:

    +a b

    Pada contoh Jnl, + Ll.m - bersiflt Jo:,:~r. Bcrd:~:oarka:J kcf:ll11.UnnyJ, d.dam Turbo P.bc-.11 terdapat operator

    pcnug:1~.1n (bcrupa :==), logik.1, hubung:m/rciJs;, .lbmJt, set (h1mpun:m) ,J.m ~tring. Bcbcrap.1 di:m[JLIJJYJ 3Kan dibJlJJs pa(ia bab-b:~b sehnjumya

    T:Jh=In

    Derajat tpriorltasl -------------

    pertama kedua ketiga keempat tterendahl

    Kelor~pok

    operator unary ope~ator oengail operator penamoanan operator relas1

    Operator dalam suatu ungkapan d!k

  • .L

    dan 3 d~jumlahkan j}Iebih dahulu, selanjutnya hasil dikurangt dengan 5.

    mengubah urutan pengerjaan dalam suatu ungkapan, tanda buka dan kurung tutup dapat dipergunakan. Misalnya, diingin-

    untuk menjumlahkan 2 dengan 3, kemudian hasilnya dikalikan

    4. Penulis.mnya:

    -6 buah opcrato:- binary yang digunakan dalam opcrasi aritmatika, . + - * 1 Jj,- Jan mod. Operator unary ada 2 buah, yaitu + dan

    ___ .,,.,. PenJumlahan I+> ;ib sa!ah satu dari operand bertipe pecahan

    + 1,0 ---- s.c (hasil pecahan) 1 ---o- 5.0 (hasil pecahan)

    1,0 -----=- 5.0 (hasil pccah.:n)

    + 1 -----:::-- ;, (hasil bulat)

    'nn.r.!ltor Pengurangan 1-l

    3,0

    -- 3,0 3,0

    3

    jika salah sacu dari operand bertipe pecahan

    (hasil pecahan) (hasil pecahan) (hasil pecahan) (hasil bulat)

    PROGRAM TambahKurang;

    USES CRT;

    "'

    BEGW

    CLRSCR;

    WRITEUl ( '4 + 1 .o = 4 + 1.0); WRITELN ( .. o + 1 = . 0 + 1); WRITELN ('.,0 + 1,0:

    . 0 + 1-0)' WRITEUI ( '4 + 1 : + 1)'

    ' WRITEUI ( .. - 1. 0 = 4 - 1. 0)-WRITE Lll ('4,0- 1 = 4.0 - 1). WRITEU4 (. 4 '0 - 1 '0 = .:.o - 1- 0). WRITEdl ( .. - 1 ;.: 4 - 1)-READUI

    EIW.

    Contoh eksekusi.

    4 + 1 ,0 ;.: S.OOOOOOOOOOE+OO 4,0 + 1 = 5.0000000000E+OO 4,0 + 1.0 = 5.0000000000Et00

    + 1 = 5 4 - 1 '0 = 3.0000000000E+OO 4,0 - 1 = 3.0000000000EtOO 4,0-1,0:: 3.0000000000E+O

    1 = 3 (_ Program Z-6.

    f ~

    I I I ' ~-... ~-

    Berdasarkan hasil eksekusi J, at as tam pak b.dnva jika sa!ah satu operand bcrtipc pecahan, hasilnya juga pccahan.

    Operator Perkallan !l

    Sifat dari operator* yaitu apabila salah satu dari operand bcrtipc pccahan, hasilnya juga pecahan.

    Contoh:

    4 2,0 ---- 8,0 4,0 2 8,0

    4,0 2,0 - --- 8,0

    4 2 ------ 8

    (hasil pecahan) (hasil pccah:1n) (hasil pecahan) (hasil bulat)

    Operator Pembaglan < 1 dan dlv J Ada dua buah operator yang ,hgunakJn operator pembag1an dcngan hasil pccahan

    untuk pembagian. bcrupa clan hasil bulat.

    23

    J

  • I L' ,_ ....

    ~, ~ t;

    Operator I menghasilkan bilanga.D"'pecahan, apa pun ripe operand-nya.

    - Contoh program:

    PROGR~ Pambagian1;

    USES CRT;

    BEGIN CLRSCR ; WRITELtl { '4 I 2,0 = WRIT EUI ('4,0 I 2 = WRITEUI ('4-~0- 1 2,0: 1-IRITELII ( '4 I 2 = READLN

    END .

    contoh eksekusi :

    4 I 2 ,o = 2.0000000000E+OO 4,0 I 2 = 2.0000000000 E+OO 4,0 I 2,0 = 2.0000000000E+OO 4 I 2 = 2.0000000000E+OO

    Program 2- 7.

    4 I 2. 0):

    4. 0 I 2);

    4.0 I 2.0);

    4 I 2);

    ( ' ,

    . ' )

    Dari hasil eksekusi tampak bahwa ~Eillbagi!l_n,\'ang mt: :1 ~gumkan operator I selalu dalam bcntuk pccahan.

    Operator div hanya bisa dikenakan tcrhadap operand vang bntipe bilangan bulat. Hasilnya juga bertipe bilangan bulat.

    Contoh program:

    24

    PROGRAM Pembagian2 ;

    USES CRT;

    BEGIN CLRSCR;

    WRITELN ('10 DIV 2 --> WRITELN (' 10 DIV 3 --> WRITELN ('10 DIV 4 --> READLN

    END.

    10 DIV 2}; 10 DIV 3): 10 DIV 4) ;

    ' { f f i f

    Contota eksekuai:

    10 DIV 2 ,--> 5

    10 OIV 3 "'-> 3 10 OIV 4 --> ,2 ~

    Program 1-8.

    Operator Slsa ~t:nba,glan Bulat rmod> .... ' Operat& mod digurl:Ykarl:,,unruk mcmpcrokh.~~~,br~llJ~tgi~b,J!at Contoh:

    7mod2 ........ ...

    20 mod 3 ....... 2

    Penjelasan:

    * Basil bagi dari 7 dengan2 adalah 3 dan sisa pembagiJn sebes:t r 1 (7-2 * 3)

    * Hasil bagi dari 20 dcngan 3 ada!.ah 6 dan si>:J pcmbagi.1n a(blah.? (2U - 6 * 3)

    Tanda hasil opcrasi yang meliba tkan operator mod ~csuai dengan tanda dari operand yang terletak di scbelah kiri mod,

    Contoh:

    -7 moa 2 -1 7 mod - 2 1

    Operator Unary + dan -

    Operator UIUJry + dan - dikenakan di dcpan scbuah operand. Tipe hasilnya sesuai dengan ripe operand .

    Contoh:

    -b

    +a

    Uika b bertipe pecahan , hasiln ya pccahan jika b bertipe bulat, hasilnya bulat)

    Uika b bertipe pecahan, hasilnya pccahan jika b benipc bulat, hasilnya bulat)

    Operator Loglka

    Turbo Pascal menyediak:w 6 buah operator logib, bcrupa : not, and, or, xor, shl dan shr. Oper:~tor ini h;mya bisa dikmabn tcrhadap operand yang bcnipc bilangan bulat dJn hasil jug.t d:llam biLmg,l n bular.

    Operator logika dipakai umuk mcmanipulasi d.lta Jalam bcntuk bir.

    25

  • ~ -~ .1 .:.

    Pengertian bit ~dili.!:t digit p~da J~ngan ~iner. Sebua~ bit da~at berupa digit 0 atau di~1t 1. Dalam ~Jsten\ bmer, btlangan 3 mtsalnya dmyatakan dengan 11. Btlang.m 12 dmyatakan dengan 1100.

    Pada Turbo Pasal terdapat istilah bit bcrtanda dan bit tak bertanda (lihat Tabel 2-3). P1da bit tak bertanda, b_it terkiri me~~akan ?~anda bilangan (sign .flag) yang menyatakan b1langan berrulat postttf atau negatif Jika bit penanda bilan~~~ernilai 0 berarti bilangan adalah positif Bilangan :::egatif ditandai dengan nilai 1 pada bit penanda

    bilangan.

    SebJgai contoh: _ Bilangan 127 desi;;_.;l (puluhan) jika dinyatakan dalam bemuk biner 16

    bit bertanda:

    0000 0000 Ol i : 1111

    Lbit tanda pos;::i~-dan bilangan -1T .:iesim al apabila dinyatakan dalam bemuk biner 16 digit adalah sebag;: ~erikut :

    1111 1111 1 ((( 0001

    lbit tanda neg ~:: : Jib dinyatakan da,;:n 16 bit tak ber tanda , pola bit

    1111 1111 }(f.( 0001

    menyatakan bilangar. 65409 (2 + 27 + 28 + 29 + 210 + .. + 214 + 2 15) .

    Perbedaan antara bir tak :bertanda dan bit bertanda dapat dilihat pada program berikur:

    26

    PROGRAM Bit ;

    USES CRT;

    VAR A, B : ItlTEG.ER;

    c

    BEGIN CLRSCR ;

    WORD ;

    A :: 127;

    15 bit bert~nda }

    15 bit tak-bertanda

    !

    r

    ~

    -

    B :: -A; C :: B; WRITELN ('A: ', A); WRITELN ('B: ',B); WRITELN ( 'C : , C); REAOLN

    END.

    Contor. ekaekuai:

    A : 12 7

    B : - 12 7 c = 55409 Progra,. Z- 9.

    .,

    Tampak dari hasil cksekusi program . is i C bcr h:t.b dcnpn i ~i D, sekalipun ada pernyataan penugasan :

    c := 8;

    Hal ini disebabkan variabcl C dan B mempunyai tipc yang bcrbcda. C bertipe bilangan bulat tak bertanda (WORD), scchngkan 13 bercipc bilangan bulat bertanda (INTEGER). Mcskipun pola bitnya dar i k c:du :-~ variabel rersebut sama, pcrlakuannya bcrbcd2, sehingga mcmbcrikan nilai yang berbeda pula.

    Operator Negasl CNotl

    Operator not bersifat unary (hanya mclibatkan satu operand). Keg unaan-nya yairu untuk memperolch nilai dengan bit-bit yang berlJ wan an terhadap bit-bit dari operand. Jika bit operand berupa 1, hasilnya berupa bit bemilai 0. Sebaliknya, hila bit operand bernilai 0, hasilnya berupa bit bernilai 1.

    Contoh:

    A dan B bertipe byte. Jika A bernilai 185 dan kemudian diberikan penugasan:

    B := NOT A;

    maka B akan bcrnilai 70.

    Penjelasan dalam bentuk bit :

    '27

    I

  • ~s _.

    A = 185 --- 1011 1001 ,.

    --not

    B = 70 - - 0100 0110

    PROGRAM Operaai_not;

    USES CRT ;

    VAR A , 8 : BYTE;

    BE Gill

    CLRSCR;

    A : = 185 ; B : : NOT A; WP.ITEU< ( ' A :

    WRITELN ( '8 : READL N

    END.

    Contoh eksekua i .

    A = 185 B = 70 Program 2-10.

    Operator And

    A) ;

    B) ;

    Bentuk: o~ and operand2

    Hasil dari Wlg~"'Wl !:Dcrupakan hasil operasi and dari masing-masing bit operandl dan ~ pada posisi bit yang sama. Sifat operasi and pada tiap bit:

    Bit ~.:,::~.~ Bit operand 2

    0 1 0 1

    Bit hasil ~: : _lib kedua bit operand bernilai 1.

    28

    Bit hasil

    0 0 0

    ~

    Contoh:

    Variabd A, B dan C bertipe byte. A diberi nilai 26 dan B 105. C rnerupakan hasil operasi and antara A dan B. Berapa nilai C?

    PROGRAM Operaat_and;

    USES CRT;

    VAR A, B, C : BYTE;

    BEGIN CLRSCR;

    A :=~ 211;

    B :: 105;

    C :: A AND B; WRITELN ( 'A :

    WRITELN ('B:

    WRITELN ( 'C :

    REAOLN

    END.

    Hastl ekaekuai;

    A : 26

    B : 105

    c = 8 Program 2-11 .

    A);

    B);

    C);

    Hasil C = 8 bisa dijelaskan m'elalui pola bit berikut: A = 126 0001 1010 B = 105 0110 1001

    c 8

    Operator or

    and ()()()() 1000

    Bentuk: operandl or operand2

    l-bsil dari ungkapan mcrupakan hasil opcrasi or da ri rna operandi dan operand2 pada posisi bit yang sama. Sifa ti.lp bit:

    31

  • Bit operand 1

    0 0

    ~

    I , # ;..; , ,

    .6 :=.--,~ ~ .. ~ --Bit operand 2 ~ \ _0

    1 0 1

    " .~

    Bit hasir :

    0 1 1 1

    Bit hasil bernilai 1 jib bit operand ada yang bernilai 1.

    A, B dan C bcrtipc b yte. A dibcri nilai 42 dan B 156. C antara A dan B. Berapa nilai-e?

    Contoh: Varia bel

    merupakan hasil operasi or

    PROGRAM Operasi_or;

    USES CAT;

    VAR A, B, C BYTE;

    BEGIN CLRSCR; A :: 42;

    8 : = 156: C :: A OR B; WRITELN ('A: ', A); WRITELN ('B = . I B); WRITELN ( 'C :

    READLN

    END.

    Contoh ekaekusi:

    A : 42

    8 = 1515 c = 190 Progr"m 2- 11.

    C);

    Hasil C = 190 bisa dijelaskan melalui pola bit berikut:

    A= 42 0010 1010

    B = 156 ___.. 1001 1100 or

    c = 190--- 1011 1110

    30

    ~

    i f t t

    t

    -- I

    Operator Xor r --'-- Bentuk: operandl xor operaud2 (

    Hasil dari ungkapan mempakan hasil operasi xor dari masing-masing bit operandl dan operand2 pada posisi bit yang sama. Sifat operasi xor pada tiap bit:

    Bit operand 1 Bit operand 2 Bit hasil

    0 0 0 o 1

    0 1 0

    Bit hasil bcrnibi 1 jika hany:t sal4J~ satu dari bit operand bernilai 1.

    C ontoh: I Variabcl A, B dan C bempe byte. A diberi nilai 42 dan B 156. C

    mcrupakan hasil operasi xor antara A dan ll . Berapa nilai C?

    PROGRAM Operasi_xor:

    USES CRT; VAR

    A, B, C BYTE ;

    BEGIN CLRSCR; A :: 42;

    B := 156; C :: A XOR B;

    WRITELH ('A : A);

    WRITELH ('B = ', 8); WRITELH ('C = ~.C); READLH

    END.

    Contoh ekaekus1 :

    A = 42 8 = 158 c = 182

    Program 1- 1).

    /

    31

  • I SS 'Cc Q' 'fi . -----

    Hasil C == 182 bisa dijelasktfl melalui pola bit berikut:

    A= 42 ___..

    B == 156 -

    c == 182 ~

    0010 1010 1001 11 00

    1011 0110

    xor

    operator Shl dan Shr Operator shr digunakan untuk mcnggcscr bit kc kanan sebanyak nilai dari operand kedua . Scdangbn operator shl dipakai untuk mcnggcsc:r

    bit kc kiri scbanyaJ.: nilai dari o perand kcduJ . Comoh operasi menggun:~kan shr :

    110 11 0 11 A 219

    \\\\\\\ 0 1 1 0 1 1 0 1 A 109

    (hasil A shr 1)

    lbit bernilai 0 disisipb.n pada bagian kiri

    Contoh operas! menggun aka n shl:

    0 11011 0 1 -EO---A = 109

    /! IIIII 1 1 0 1 1 0 1 u - - - A = 21 8 (hasil A shl 1)

    Lbit bcrnilai 0 disisipkan pada bagian kanan

    Contoh program:

    PROGRAM Operasi_ehr_~,1;

    USES CRT;

    VAR A : BYTE;

    BEGIN CLRSCR; A :: 219;

    WAITELtf ('lsi A -u)a :

    3~

    ..

    A);

    J l f

    J

    ~ t

    ~

    A :: A SHR 1;

    WRITELN ('lsi A aetelah A;: A SHR 1 --> ',A);

    A :: A 5Hl 1;

    WRITELN ('Isi A setelah A ::A SHL 1 --> ',A); P.EAOLN

    EHO.

    Contoh e~. se~uai :

    Isi A se~ula = 219 lsi A setelah A :: A SHR 1

    Iai A aetelah A ::A SHL

    Program l - 14

    -- > 109 --) 218

    Dari hasi l di atas tampak bJhwa pcnggescran 1 bit kc kanan (dcngan shr) pada dasarnya merupakan opcrasi pcm bJgian dcn gan 2, scdangbn pcnggcseran 1 bit ke kiri p~da d;lsJrnya mcrupakan opcrasi pcrblim dcngan bilangan 2.

    Slfat Operator Binary pada Ungkapan Arltmetlka dan Logll

  • .. ... t ~

    (1

    Ill STRUKTUR PROGRAM

    Program P:1scal dapat dih.tgi menjadi u ga bagian, berupa:

    (1 ) Kt:pala program (2) Bag ian deklarasi (.3) Bagian perny:~taan

    Dabm bcntuk garnb~r . kaidah scbuah prog ram Turbo P:~ so l ad::dah sebagai bcrikut:

    programyl ]udul program !---{)~ [ , 1 1 I clause uisJ

    GJmbJr 3-1. Kaidah program da lam Turbo PJ;c.:./

    Gambar 3- 1 sekaligus menjelasbn bah'.n kepala progra m mcrup:1ka n optional dalam Turbo Pascal, dalam arrian boleh discrtakan boleh tiJ:~k. Program mengandung klausa uses hanya bila :~da unit (pus taka dalam Turbo Pascal) yang dilibatkan . Sedangkan blok (blok program) berupa bagian deklarasi dan bagian pernyataan.

    111.1 KEPALA PROGRAM

    Kepala progra.m diawali oleh kata-tercadang bernama program, yang diikuti dengan judul program (berupa pengenal) dan diakhiri dengan tanda titik koma (;) . Sebelum tanda titik koma boleh ada sejumlah parameter (berupa pengenal) yang diapit oleh sepasang kurung . Antara sua tu parameter dengan parameter berikutnya Uika ada) dip isahkan dengan tanda--koma.

    Bebcrapa contoh judul program :

    34

    PROGARAM PemasukanDATA: PROGRAM KRS !Input, output!; PROG~AM cetak lflle_ke_prlnterl:

    t t

    I ; l f

    I

    Kep:Ua program hanya bersifat optional dalam Turbo Pascal dan tidak berpengaruh terhadap programnya sendiri. Sekalipun demikian, judul program yang diberikan pada kr.pala program biasanya menyiratkan isi program.

    111.2 BACIAN DEKLARASJ

    Bagian deklarasi berisi daftar label, kt .tstanta, tipe data, variabel serta subprog ram (berupa fungsi dan proscdur) yang di ciptakan oleh pemro-gram . Kaid:th pendeklarasian dalam Turbo Paso! disajikan chlam Garnbar 3-2.

    ~ian deklarasi l

    ~an aelclarasl label L

    H Bagfan dek:larasl k:onstanta L

    H Bag ian deklarasl tlpe J

    H sag ian deklarasl label J I

    H Sagfan deklarasl varlabel l

    L.i Baglan dek:larasl subprogram l

    Gambar 3-l. Bagian ddtlarai T,.rbo Paua/

    Sepeni dipcrlihatkan pada Gam bar 3- 2, bagian deklarasi terdiri dari: Deklarasi label Dckbrasi konstanta Dck!Jrasi tipe Dckhrasi label DekJarasi variabcl

    Dcklarasi subprogram (prosedur dan fungsi)

    Lengbp tidaknya bagian deklarasi tcrgancung sendiri . M ungkin saja sebuah program tidak

    drngan progran1 iw mengandung bagun

    .15

  • ~; """ ,k,li (bahk'" juga. ~ mengandung judul p,l,g.-am), . . . ~ ( i . ' ...,.

    1

    ,;.nana te

  • I,

    Pakan contoh pendefmisian wang sah .

    rneru " l{onstanta bertipe dapat dianalogikan dengan variabcl yang diberi nilai awal. Ni lainya juga bisa diubah dalam bagian pernyataan.

    oeldarasl npe oata Digunakan nntuk m endetinisikan nama ripe da ta baru . Pendefi nisian tipe

    diawali olch kara- tercadang type.

    TYPE pengenaL 1 = tl pe_1 :

    pengenaLn = tipe_n;

    Tip c-1 .. Tipe_n dapat beru.pa scb:u ang ripe d;H:l.

    Conwh:

    = INTEGER TYPE

    Bulat Kallmat = STRING;

    berarti mcndcfinisikan pengenal Bulat sebga i ripe integer dan Kalimat bcrti pc string. Tipc seperti K alima t J:au Bulat dapat dipakai untuk

    menentukan jenis v ariabcl.

    oeklarasl varlabel Scmua variabel yang digunakan dalam program yang diciptakan oleh pemrogram harus dinyatakan dalam dek larasi variabcl. Deklarasi variabel dapat diartikan sebagai pcmesanan tcmpat dalam memori komputer dan penentuan jenis data yang disimpan di dalamnya. Bentuk

    pcndeklarasian:

    VAR dattar_varlabeL 1 : tJpe_1:

    - dattar _varlabeLn = ttpe_n;

    Dekl.uasi variabel diawali dengan kata-tercadang var. Setiap dajtar_varia b.:/ dapat berupa satu atau sejumlah nama variabel. Jika \ebih dari satu variabel, antara satu variabel dengan variabel lainnya dipisahkan dcngan

    38

    ,. . tanda koma. Tipe dapat berupa tipc bawaan dari Turbo Pascal atau ripe yang didefinisikan dalam deklarasi T YPE .

    Contoh:

    VAA JumlahBarang, JumlahCudang Karakter

    : BYTE; : CHAR;

    Contoh di atas, mendeklarasikan ':ari.lbcl JumlahBaran g dan Jumlah-G uda n g bcrt ipc byte dan variJlJc l Ka r a k tcr bcnipe CH.A.ft

    Deklarasl Prosedur dan Fungsl DckLnasi proscdur da n fu ngsi hany :l :~da bila program mcngandung subprog ram (yang diciptakan okh pcmrogram). Subprogram dalam Pascal bisa bcrupa prosedur at:~upun fung5i. M odel prog , Jm Pascal m emang banyak meli batkan subrrogram. Di:lll taranya un tuk mem uc!ah-kan pcnyusunan p rogram.

    Perbcdaan utama dari prosedur d:m fungsi (pJdJ bagian pcrnya taan):

    Fungs i: - N ama fungsi mcngh:Js ilbn scbu ah nilai jika dipanggil. Tidak dapat bcrdiri scndiri scbag.~i pcrnyataa n, mela in-ka n sebJg ri i operand.

    P rosedur: - Nama proscdur ticbk mcnghasilkan nibi jika dipang-gil, m clainkan mcnghasilkan ri ndakan tcnentu. Berd iri scndiri scbagai pernyataan.

    Contoh fungsi bawaan adalah sqrt , yai tu fungsi yang d ipakai untuk memperokh akar kuad rat dari ~mcnnya (nilai yang ditcm patkan dalam tanda kurung). Fungsi tid:~k b_isa dikenakan s_cl>a.gai peroyataaQ ~ang ~erdiri.l;ensli ri . Penulisan:

    SORT !5!;

    merupakan penulisan yang m enya lahi kaidah. Penulisan fun dalam ungka~ atau arg um en da ri prosedur a~ .. g ~~

    __. .. ..... Misalnya:

    WRITELN !SORT !5));

    untuk menampilkan nilai akar ku:~drar dari 5. Pada contoh ini, fungsi sqrt digunakan sebagai argumen dari pcrnyataan writeln .

    39

  • ' "Writeln mcrupakan salah satu{contoh dari prosedur bawaan. c ootOh' yang lain:

    ct.RSCR; ctrscr merupabn prosedur dalam unit crt yang berfungsi untuk

    111embcrsihbn atau menghapus layar.

    111.3 B.AGlAN PiRNYATAAN Bagian rcrn yar aan da ri program diawali dengan kata-tcrcadang begin, diikuti dcngan sejumlah perny::taan dan diakhi ri dengan kata-rcro dang end bcscrta tanda titik/period (.). Tanda titik menyatakan akhir

    program.

    Bcntuk b:~gian pcrnyataan program:

    BEGIN Pernvaoan_1: pemvarniL1:

    Pemrataan_n END

    Bagian pcrnyataan program sering discbut sebagai program ntama (main program). Setiap progr11m Pa~ca l memiliki program utama. Biasanya hanya berisi beberapa pernyataan saja dan menyatakan gambaraf1 proses yang dikerjakan komputcr. Adapun rinciannya (bcr~1pa subprogram) ditempatkan dalam deklarasi subprogram.

    111.4 PERNYATAAN Pernyataan menjelaskan tindakan atau kegiatan dalam program. Pernya-taan sendiri digolongkan menjadi beberapa kelompok, diantaranya berupa pemyataan penugasan, pemyataan pengendali aliran dan pernya-

    taan majemuk. Aturan atau kaidah pernyataan dittmjukkan dalam Gambar 3-3.

    ,.;;;,,,..n l ~ , 1 1

    i )en pemvataan 11

    -

    ~ Gmbar J - J. Ki4tJII pasulun pcrnyat4411

    40

    I i i

    i i

    I t :

    --

    Sebuah pernyataan bisa diawali denganlabel dan nama label serca tanda titik ganda (:). Contoh:

    Akhir: WRITELN 1'5elesal.. 'I;

    Pernyataan semacam ini digunakan berkaitan dengan pernyataan goto . Pcrnyataan juga boleh tidak ada. Dengan demikian:

    BEGIN END.

    rcta p rnerupakan program y;:mg SJh , w a!aupun rid.1k m~ nghasilkan apa-apa apabila program ai.Jalankan (karena tak ada pernyaraan sama sekali).

    Jenis pernyataan dapat berupa sebarang pcrnyauan.

    111.5 PEMISAH PERNYATAAN

    Pascal menggunak~n tanda tirik koma (;) scba~ai pcm is~ h Jntarpernyata-an. Bcrdasarkan hal ini, mungkin sJja dalam scbuah baris terdiri k bih Ja ri saru pcrnyataan, dengan antarpcrny~t :l .m ,Jipisahkan dengan titik koma.

    111.6 FORMAT PROGRAM

    Pascal merupakan bahlsa yang mempcrkcnanbn rcnuli san dengan format yang dikehendaki oleh pemrograrn, asalka11 tctap rncmenuhi aturan/kaidah program. Sebagai contoh, pcndeklarasian scperti

    VAR JumlahBarang, JumlahCudang : BYTE; Karalcter : CHAR;

    boleh ditulis- menjadi:

    VAR JumlahBarang, JumlahOudang : BYTE; Karakter : CHAR:

    atau ditulis dengan format sebagai berikut:

    VAR JumlahBarang JumlahGudang Karalcter

    : byte; : byte; :Char;

    41

    .1.~ ... :~ " .... ...._ __.,._., ... -~'1!-~~~.~~~~.-!''a,:;;:::a:. ......... ~*"o;:'-4~ 1 i'?)'

  • ,. :eisa juga ditulis dengan format:

    VAR Jumtansaran9. JumlahGudang :byte: Kara~tter

    : char: T arnpok banyak cara untuk rncndiskan format program . Pernilihan form at yang baik tcntun , ,, .d.Jiah forma t yang m udah dibaca dan

    dipahami. Dalam Pascal dikenal ist ib':-1 blok pernyataan, terutama berkaitan dcngan pernyataan m:~jemuk. Pcrnyataan majemuk sendiri dapat dianggap scbagai kumpulan rnnyataan yang diperlakukan sebagai pcrn~ataan tun ggal. Pernyataan majemuk diawali dengan kata-tercadang begin dan diakhiri dcngan bta-tcrc;~ciang end . Gambar 3-4 mcnjelas-kan bidah pernyatJJn m ajcH: uk.

    '

    pemyataan ma]emuk

    ~ 1-[oem~n} \ {~oo] ~

    Gambar J-4. Kaidah prrnyar.:an m3jtmuk

    Contoh dari pernyataan majemuk adalah program mama. Dengan demikian, kaidah program utama juga mcngikuti kaidah dalam Gambar

    Format penulisan pernyataan majemuk sebenamya bebas. Hanya saja, 3-4.

    jika salah memilih format akan menyebabkan program sulit dibaca/ dipahami. Sebagai contoh diperlihatkan pada Program 3-1, yaitu program untuk menghitung pcnjumlahan isi variabel a dan b.

    PROGRAM Penju.1ahan :

    ~E~ C~T; VAR a,b,c:BYTE; BEGIN CLRSCR; a : :20 ; b : =30; c::a+b; WRITELN('Ia1 a= ', a) ; WRITELN('l!li b: ',b);

    WRITELN('C =a+ b: ',c); REAOLN E~O .

    Pro>gram J-1.

    42

    r

    Seblipun program sangat sederhana,. program tidak begitu mudah untuk dibaca.

    Kebiasaan bagi pemrogram Pascal, pernyataan yang terdapat dalam suatu blok pernyataan (yang diawali begin dan diakhiri end) ditulis sedikit masuk ke bnan tcrhadap posisi begin dan end. Program 3-1 dapat ditulis menjadi:

    PROGRA~ Penjumlahan;

    USES CRT;

    Y AR a , b , c ;_ 8 'f'T E ;

    BEGIN

    CLRSCR;

    a :: 20;

    b : : 30;

    c :=a t b;

    WRITEUI ('lsi a= , a); WRITEUI ('lsi b: , b);

    WRITELN{'c =a+ b = ',c); REAOLN

    END.

    Program ) - 1.

    Denga11 mcnuliskan scpcrt i pad a Program 3-~ . program menjadi lcbih mudah dibaca dan dipahami, rneskipun jumlah baris yang diperlukan lebih b:tnyak dibandingkan dengan Program 3-1.

    111.7 KOMENTARIKETERANCAN

    Dalam penulisan program, kadang-kadang diperlukan untuk memberi-kan ketcrangan yang mcnjelaskan isi program secara singkat. M isalnya untuk menjelaskan masing-masing pengenal, tindakan tertentu dalam prograw beserta kondisinya, dan sebagainya. Bagi kompilemya sendiri, keterangan semacam itu tidak bermakna apa-apa. Tetapi bagi yang membaca program, adanya keterangan akan sangat membantu sekali dalam mcmahami program . Dengan kata lain adanya keterangan dalam program, program akan semakin mudah dibaca dan dipahami.

    Keterangan atau komentar dalam program dapat ditulis pada bagian mana saJa (asalkan bukan berada dalam pengenal atau kata-te rcadang atau di d;~lan, ~ons tanta string) dan bisa lebih dari satu baris . Penulisannya diawali dcngan satu tanda { (kurung kurawal buka) dan diakhiri dengan tanda } lku rung kurawal tutup) .

    43

  • ~-- --

    {lnl rnerupakan contoh keterangan) ,' {lnl juga merupakan contoh keterangan. Keterangan lnl akan dlabalkan oleh ~eomp!ler TUrba Pascal)

    untuk pernvataan t>erll

  • r:,.,.

    G pbJ Bi'i f.,ilit" g"fik ~ :ymg te.dpt dabm T~rbo ra Pascal 3.0, khususnya fasilitas gambar yang dalam Turbo

    Pascal 3.0 harus mdibatkan file bernama GRAPH.BIN

    dan GRAPH.P.

    overlay Berisi fasilitas overlay.

    pencrnpatan klausa uses adalah antara kepala program dan bagian Jcklarasi. Pad:l contoh Program 3-3, USES CRT menyatakan program mdibatk Jn unit CRT. Dai:J.m hal ini fasilitas dalam unit CRT yang d,gun'"' ,,im pco"d"' bow"n CLRSCR. CLRSCR meOti' '"" J

    1

    kai rkan p.1da seuap program Turbo Pascal. jil--.a fro;ram mdibatkan lebih dari satu unit , antara unit satu dengan

    u;.it lamnva dituli s dcngan dipisahkan oleh koma.

    Cvnttlh: USES CS

  • 1 . ..

    -121; -- ' -- ,., akall 01en

  • program yang melibatkari pbprogram: --- _-;

    pll()GR~ sut:>prog;

    LJSES cRT;

    pROCEDURE cetakJudul;

    WRITELN ('PT. AOIJAYA AOIGUtlA- SE~ARANO') eEGlH

    END :

    aEOlH (* Prosr~~ ut~a ~) CLRSCR; cetakJudul: { mamangg\1 prosedur cetakJudul J

    READLN

    END.

    progrartl 4- 1.

    pada Program 4- 1,

    PROCEDURE Ceta!Uudul;

    BEGIN WRITELN {'PT. ADUAYA ADIGUNA SEMP..RANG'l

    END: ""'"P'bn >ubp

  • --a program dic~ekusi . . Peranti masukan s~ndiri beraneka ra~am,

    ,el~ 1

    ya papan-ketJk (keyb oard) dan dtsk-dnve (dengan med1anya

    -y,eru a disket). p ~ b,gi'" ini, p

  • S~ pd Pmg""' 4-2. p~oG~~ oataKarakter ;

    1J5ES C~T;

    vt-R Kar1. Kar2. Kar3

    BEGIN cLRSCR; READ (Kar1, Kar2);

    CHAR;

    READ ( Kar3) ; WRITELN (ORD( Kar1)) ; ~RITELN {ORO(Kar2)); WRITELN (ORO(Kar3)) ;

    END.

    Program ~2.

    p,d, Pcog

  • US~S CRT: _ -- } { variabel operand 1 VAR a,

    b, { variabel operand 2 } f variabel hasil penjualahan

    c : BYTE;

    BEGIN CLRSCR; WRITE ('~asukKan REAOLN (a); WRITE ('Masukkan READLN (b);

    nilai a : . ) ; ni lai o : . ) ;

    c := a + b; WRITELU('c: a + o = c);

    READLN

    END .

    Hasil eksekusi :

    Masukkan nilai a : 5

    Masukkan nllai b: 6

    c:: a+b=11

    ProJlram 4-J .

    Readln Tanpa Parameter Readln dapat digunakan tanpa melibatkan parameter (a rgunH:n). Sebagai

    contoh:

    BEGIN WRITELN t'Tekan RETURN'!; READLN

    END.

    Readln tanpa argumen biasa digunakan dengan maksud untuk menunda eksekusi program, sampai tombol RETURN (ENTER) ditekan.

    IV.S PERNYATAAN KELUARAN

    Pcrnyataan keluaran digunakan untuk mcnampilkan data atau informasi ke peranti keluaran . Pcrami keluaran yang paling umum dipakai adalah layar (monitor). Pada Pascal , tcrdapat prosedur bawaan yang dipakai

    sebagai pernyataan keluaran. yairu berupa:

    56

    J l f t '

    if ~

    t t

    ~

    Write dan Writeln

    Bentuk umum: WRITE (dattar __argumenl WRITELN (daftar __argumenl

    dafiar....argumen bisa berupa sebuah atau beberapa argumen. Penulisan anrarargumcn dip isahkan dengan tanda koma. Masing ~ masing argu-men bi~a bcrupa konstanta, variabel, fungsi ataupun ungkapan . Contoh:

    WRIT E (10, 'SEPULUH'l; { Mcncetak koflstanta Bilangan dan string } WR!TE (A B + Cl; { Mcncctak nilai dari suatu rum us I ungb p-

    an } WRITELN Uaml; { Menampilkan isi variabel } WRITELN (SORT (BIIanganH: { Menampilbn nilai kduarai1 dari fungs i

    Perbedaan write dan writcln:

    Write setcla h mcnampilkan semua argumcnnya , ti dak tcrjadi perpindahan baris.

    Writeln scsudah menampilkan scmua argumennya, terjadi pcrpind ah-an baris.

    ::.cb.;gai contOh:

    WRITE rPemrograman'l: WRITE nurbo' . 'Pascal'l :

    akan menampilkan:

    PemrogramanTurboPascal

    Sedangkan:

    WRITELN l'Pemrograman'l: WRITELN !'Turbo', 'Pascal'!;

    menghasilkan:

    Pemrograman TurboPascal

    , I '

    I I Khusus untuk W ritcln balch ditulis tanpa mcngandung

    Kcgunaannya yai tu untuk berpindah baris . Contoh: argumen. l

    57

    I

    ~..,.,..-:;-.. ., .. ~.....,...~ ~.'"Y:"t ..... ~ ~

  • WRITELN !'Pemrooraman'l WRITELN; . WRfTELN !'TUrbO Pascal'!;

    akan rnenarnpilkan:

    pemrograman rurt>O Pascal

    +- baris kosong

    Menamplll

  • v PENGAMBILAN KEPUTUSAN DAN PENGULANGAN PROSES

    Bab in i mcnekankan pembicaraan mengcnai pcrr. ya taan pcn ga mbilan keputusan terhadap dua a tau scj umlah altcrnatif dJn pcngubn gar! pro~c~ . Namun scbclumnya, pernyataan goro dan pcrn yataa n majemuk akan

    dibahas terlcbih dah ulu .

    V.1 PERI'-JYATAAN COTO

    Pernyataan goto sering dis.ebu t sebagai pcrnyataan loncaran tak bersyarat. GunJnya mcmang untuk mengarahkan cksekusi program ke pernyataan yang diawali oleh label scsu ai yang ditunjuk oleh goto.

    Bentuk pcrnyat:Jan goto:

    GOTO nama.Jabel

    Nama label yang digunakan dalam goto berupa pcngenal (i,lclltijier) yang sudah didcfinisikan dalam deklarasi LABEL.

    Pada ken yata.mnya, pernya taan goro bolch dibtakan tidak dipe rlukan dalam program Pascal, sebab program bisa ditulis tanpa mcnggunakan

    goto sama sckali. Contoh program yang menggunakan go to dapat dilihat pada Program

    5-1.

    (* Contoh GOTO *)

    LABEL Ulang;

    BEGIN Ulang:

    END .

    WRITELN ('Turbo Pascal'); GOTO Ulang

    Program 5-1.

    (:IJ

    I I i f

    j ! '

    l ~ t f. ~

    i f r

    --- --

    Program 5-t: mengandung de.\clarasi LABEL, disebahkan pernyataan goto. Label yang digunakan berupa Ulang. Jik.a dijalankan, pe!!_l~taan yang pertama kali dijalankan adalah

    WRITELN liurbo Pascal');

    Selanjutnya ada pemyataan . goto yang mengarahkan eksekusi k, pernyataan WRITELN ('Turbo Pascal') kembali. Seb ~

  • d ungkapan nalar, hanya ada dua kemungkinan nilai, berupa pa a ta boolean true (benar) atau false (salah). Nilai bisa diperoleh

    Jtonstanrnelibarkan operator relasi (hubungan) ataupun operato r boolean . dengan

    aperator Relasl Operator relasi digunakan untuk membandingk:an . du_a buah operand

    ang berripe seJems. Dalam Pascal terdapat 6 buah JCniS operator relasi Yang scring dipakai dalam ungbp:m nal ar, scb::lgaimana tcrcantum

    ~alam Tabel 5-1. Tat>el 51 . operator relasl dalam Turt>o Pascal

    operator relasl Deflnlsl Kurang dart Leblh dart

    < > =

    Kurang dart atau sama dengan . Lebih dart atau sama dengan sama dengan Tldak sarr.a dengan ---------------------- ------------

    Operator relasi yang tertcra pada Tabel 5-l d:1pa t di kenakan pada tipe bilangan bulat, bilangan pecahan, karaktcr, boolean dan pada bcberapa tipe yang lain. Selain operator yang rebh disebutkan , ada sebuah operator rclasi v:mg lain, yaitu IN . Mengcnai operatOr ini akan dib:~has pada bab yang membicarakan mas:~lah himpunan.

    Conroh ungbpan nalar yang menggunak :~n operator relasi:

    Jumlah...barang < 10

    Nllal >= 90

    a b Tombol = 'Y

    { bernilai bcnar , jika JumlaiLbarang kurang

    dari 10 } { bemilai benar, jib Nilai lcbih bes:Jr atau

    sama dengan 90 } { bemilai benar, jika a tidak sama dcngan b} { bemilai benar, jika Tombul berisi karakter

    y }

    Kesemua contoh di atas hanya akan memberikan basil benar atau salab.

    Operator Boolean _ Operator boolean terutama digunakan untuk menghubungkan dua buah ungkapan nalar , membentuk sebuah un.gkapan nalar baru . Ada juga oparator boolean yang hanya rnelibatkan sebuah ungkapan nalar saja. Dalam Turbo Pascal terdapat 4 buah opera to r boolean, berupa not, and,

    or dan xor .

    62

    ir

    I r t l f t

    t f ' l ,,

    Tabel S-2. Operator boolean dalam Turt Pascal

    Operator boolean

    Bentuk ungkapan nalar Operas I

    not

    and

    or

    xor

    not p

    p and o

    p oro

    D xor G

    Negasl. Hasfl benar. Jlka p salah. Hasll salah, Jlka p benar Nalar dan. Hasll benar n "lya jlka p dan o bernllal benar Natar atau. Hasll salah hanya Jlka p dan o bernllal satah Nalar xor..l:!asll benar hanva ill

  • l}ntuk mengubah urutan pengerjaan dalam suatu ungkapan nalar, tanda kuf\lilS dapat disertakan. Beberapa contoh berikut menunjukkan operasi dalam ungkapan nalar yang melibatkan tiga buah variabd bertipe boolean (yaitu f, g dan h) :

    (1) not f and g or h (2) not f and (g or h) (3) not (f and g) or h

    l)ngkapan yang pertama seca ra implisit identik deng:m penulisan :

    ((not fl and gl or h bnn ilai benar jika: . (i) h berni bi benar AT AU (i i) f sal ah dan g benar

    l)ngbpan kedua identik dengan penulisan :

    1not fl and (g or n1 { berniiai henar j ika : (i) g atau h benar DAN (ii) [ salah }

    Ungkapan yang ketiga sama maknanya jika ditulis menjadi

    lnot (f and Qll or h { bernilai benar jika: (i) h bcnar ATAU (ii) f atau g sa lah }

    Jika dalam suacu ungkap:m nahr terdapat operator rclasi dan operator boolean, ungkapan nalar yang mengandung operator relasi harus ditulis dalam tanda kurung. Hal ini merupakan keharusan , discbabkan prioritas operator relasi lebih rendah dibandingkan dengan operator boolean. Tanpa adanya tanda l=11 AND 1PIIIhan=1 AND Plllhan = 11 AND Plllhanl Diagram aflr IF Gambar J-1. Diagram alir pcrnrataan IF

    lbl Diagram allr IFElSE

    Pada bentuk IF yang pertama, pern yataan sesudah THEN hanya dijalankan jika ungkapan nalar bernilai benar. Pada bcntuk IF yang kedua, Pemyataan_1 hanya dijalankan jika ungkapan nalar bernilai benar. Jika ungkapan nalar bcrnilai salah, Pemyataan-.2 yang akan dilaksanakan .

    65 I

    f

  • ----contoh rnasalah 1:

    Diket.ahui sebuah bilangan bulat. Bilangan tersebut termasuk genap

    ataU ganjil?

    pernecahan:

    IF oo[){BIIanganl THEN ~ITELN rellangan termasuk GANJll'l

    ELSE WRITELN t'BIIangan termasuk GENAP'l;

    Cararan: Perhatikan, pcmyataan scbclum ELSE tidak diakhiri J.:ng~n titik koma. Membcrikan tanda titik koma scsudah

    WRITELN ('BIIangan termasuk GANJIL ')

    rnalah akan mcnycbabkan kcsalahan scwaktu kompihsi.

    Pcncntuan gcnap arau ganjil d ibkukan J cngan mcnggunakan fungsi

    bawaan bernama ODD yang be rtipe boolean:

    oootenanganl

    Ungkapan naiar im mcmberikan nilai bcnar jika Bilangan bcrisi

    bilangan ganjil.

    Contoh masalah 2:

    Seorang siswa dikatakan lulus jika nilai yang ia pcroleh sama Jcngan atau lebih besar dari 60. Informasi lulus tidaknya seorang siswa bisa

    dinyatakan dengan:

    IF Nllal >= 60 THEN WRITELN ('LUIUS'l

    ELSE WRITELN t'Tldak tutus'!;

    Contoh masalah 3: Pada sistem penggajian (payroll), gaji ditentukan oleh lamanya j am

    kerja. Jikajam kerja lebih dari 1l0 jam, besamyagaji adalah 110 kali upah per jam ditambah dengan jam lembur (total jam kerja - 110) dikalikan dengan 1,5 kali upah per jam. Jika jam kerja kurang dari arau sama dengan 110, besarnya gaji adalah jam kerja dikalikan dengan upah per

    jam. Jika dituangkan dalam pemyataar. :

    66

    I i l i f ' l

    ' i t t I

    .'-r

    ---~------- ...... --illll--~ IF Totaljant.Jcerja > 110 THEN

    BEGIN JaiTLlembur := Total..jamJcerJa - 110: GaJLtotal := 110 UpatLperJam +

    JarnJembur 1.5 Upah~r)am END

    ELSE GaJLtotal := TotaLJam_kerja Upah_perJam:

    Program sekngkapnya mengenai masalah penggajian ini dapat dilih.H pada Program 5-2. Pada program tersebut , karena nibi 110 bersifar unik dan serin g d i ~ unakan dalam program n_llb di tulis dalam benruk konstanta BATAS_LEMBUR.

    PROGRAM Ciaj i ;

  • WRITELH ( 'BeS&rnya gaj i

    READLH

    END.

    contoh eksekusi :

    Total jaa kerja : 100

    eesarnya ~ 1 : Rp.

    contoh aksakusi:

    Total j .. kerja : 150

    BeS&rnya gaj i Rp.

    Program 5-l.

    Rp. , Gaji_total:12:2);

    300000.00

    510000 . 00

    Pada Program 5-2, penycnaan 1.0 dalam pernyataan :

    GajLtotal := 1.0 TotaL.jam_kerja UPAH_PERJAM ;

    dimaksudkan supaya ungkapan di sebclah kanan opcr:ltor pcn ugas:m (:=) menghasilkan nilai pecahan. Tanpa adanva pcnyena:m nilai tcrsebut, akan diperoieh hasil yang salah, sckir:mya to tal jam kerja yang _ dimasukkan kurang dari atau sama dengan BATAS_LEMBUR . Seb:~b II kalau ditulis hanya dengan

    Ga)Uotal := Totai_JarrLkerja UPAH_PERJAM ;

    ungkapan TotaL.jam._lurja * UPAH_PER)AM nJenghasilkan niiai bertipe integer (disebabkan TdtaLjam.Jwja bertipc integer dan kons tanta UPAH _FER]AM sendiri secara implisit bcrtipe i'}teger) . Padahal pada permasa-lahan ini, perkalian dalam ungkapan terscbut ada kcmungkinan melebihi dari nilai bulat positif dari kawasan integer. Supaya nilai pcrkalian benar (dan nantinya disimpan dalam variabel Gaji_total dengan benar) , maka ungkapan harus dibuat supaya bcrnilai pecahan.

    Contoh masalah 4: Ada riga orang bersaudara bernama Amir, Ali dan Andi. Bagaimana-

    kah cara untuk memasti.kan Ali merupakan yang tertinggi diantara ketiga orang tersebut?

    68

    IF mnooLAJI > nnggL.Amlrl AND mnggL.AII > TlnggLAndll THEN WRITELN I'AII merupakan yang tertlnggl'l

    ELSE WRfTti.N I'Bukan All yang tertlnogl'l ;

    ... Logika penyelesaiannya tentunya adalah: "jika Ali lebih tinggi dari Amir dan Andi, maka Ali-lah yang tertinggi". Implementasi dan pada masalah ini yairu dengan menggunakan operator AND.

    V.S MENGGUNAKAN IF UNTUK MENENTUKAN KEPUTUSAN TERHADAP SEJUMLAH ALTERNAnF

    Beberapa con toh yang diutarakan di depan hanya digunakan untuk mcnangani pcngambilan keputusan tcrhad3p dua alternatii ~ Jja:-Adakalanya, kita harus melakukan pen gam bibn kcputus:m tcrhadap sejurnlah .l lternatif. Mis:1lnya ~ aja , untuk mcncntukan kbs ifikasi nilai siswa dengan kriteria:

    Nilai Rata-rata Kbsifikas1 Nilai

    Nilai > 90 A 70 :;; Nilai < 90 B 60 :;; Nilai < 70 c SO :;; Nilai < 60 D Nilai < SO E

    Penyelesaian terhadap masalah semacam ini juga dilaksanakan mcnggu-nakan IF.

    Bentuk umum pernyataan IF untuk menentukan kcputusan tt:rhadap sejumlah alternatif:

    IF Ungl 90 THEN Klaslf!kasl : 'A'

    6

    I

  • "

    ELSE IF Nllal >= 70 THEN

    KlaSlfikaSI := 'B' ELSE

    IF Nllal >= 60 THEN Klastflkast := c

    ELSE IF Nllal >= 50 THEN

    Ktasiflkasl := o ELSE

    Ktaslflkasl := 'E':

    Penyelesaian di atas dengan men;;pis nilai dimulai dengan kemu11gkinan yang tertinggi. Jika ungka pan nalar Nilai > = 90 bernilai bcnar, rnaka WRITEU\' ('Kias!flkasi: A.') saja yang dijalankan. Jika bernilai salah, perneriksaan dilakukan tcrhadap nibi yang lebih rendah (ya itu Nilai >= 70). Jika ungkapan nalar ini juga salah, rnaka ungkapan nalar berikutnya yang diperiksa. Bcgitu sercrusnya. Kcmungkinan ungkapan nalar yang terakhir diperiksa adalah Nilai > = 50. Jika nilai ungkapan ini bcn:n, l' maka pernyataan WRJTEL.f\! ('Klu.'0'ikasi: D') yang dikerjakan. Jib I salah, pernyataan WRITELN ('Kiasij1lec!S i: E') yang dilaksanakan. Untuk lebihjelasnn, diagram alir dari perny:naan ini dapat diliha t pada Garnbar

    5-/ --

    l

    satah

    Garnbar 5-1. Prnrnr..an lrlasifilttUi A., B, C, D dan E terhadap ni/ai uorang sisw1

    70

    I f

    Implc:mentasi pogram penentuan klasifikasi A, B, C, D dan E terhadap nilai seorang siswa dapat dilihat pada Program 5-3.

    PROORAH Ranking;

    (--------------------------------------> C* ~lenentukan l

  • ccntoh .k .. kui:

    MaSUkk&n nilai aiswa

    J(laifikasi : A

    P,.lriUfl 5-J.

    90

    v.& peNGlJLANCiAN PROSES DENGAN: FOR Dalam Pascal , pernyataan yang berhubungan dcngan pcn.gulang.m suatu proses ada 3 macam. Salah satunya berupa pern yataan FOR. Pernyataan FOR digunakan jika jumlah pen gul angan sudah d iketahui sebelum

    proses dimulai . Pengulangan proses dengan FOR diperlihatkan dalam Gambar 5-3.

    Pencacah dlberl nllal sebesar nllal awal

    lal FORTO

    Nllal Pencacah dtnatkkan sebesar 1

    benar

    Cmllor .f-J. Diagram

  • ---------------~-------------->

    USfS CRT;

    V-" "' enangan

    8EOIH CLRSCR;

    BYTE;

    WRITE ('Masukk &n sebuah bllangot.n bulat posoitif < 256: ');

    READLN (N);

    FOR Bllangan :: 1 TO H DO

    WRITELN (B1lans&n:3};

    READUI

    END.

    Masukk&n aebuah Oilangan bulat positif < 256: 3

    1

    z 3 Masukkan sabuah bilangan bulat positif < 256 : 0

    Protr"m 5-4.

    Pada program ini jika nilai 0 dimasukkan (sebagai N) maka pernyataan WiUTELN tidak dikerjakan sama sekali. (Mengapa? Perhatikan diagram

    alir pada Gambar 5-3.) Contoh lain penggunaan FOR misalnya untuk menampilkan tulisan

    TURBO PASCAL sebanyak 10 kali. Penulisan pemyataannya,

    FOR I := 1 TO 10 DO WRITELN ('TURBO PASCAL'!;

    dengan I berupa variabel bertipc....l>ilangan bulat. Pcnggunaan FOR dengan DOWNTO misalnya untuk memperoleh

    keluaran :

    5

    74

    \

    i I I ~ ~ 1

    3 2 1 0

    ~

    C ara penulisan pemyataannya:

    FOR Bllangan := 5 DOWNTO 0 DO WRIT'ELN JI digunakan unt uk menampil-bn huruf Z sampai dengan A dalam ,;;iu ~a ris .

    FOR Karalcter := 'Z' DOWNTO 'A' DO 'M(fTE

  • 3 4 5 6

    9 12 16 15 20 25 18 24 30 36

    pada Program 5-6

    pROGR~ TabelKali;

    c ...-buat ta.bel per!

  • pernyataan yang berada dalam REPEAT -UNTIL bisa berupa sebuah pernyataan a tau beberapa pemyataan. Pernyataan REPEAT dengan

    beberapa pernyataan mempunyai bentuk:

    REPEAT Pemvataan_1: Pemyataan...2:

    PemyataanJl UNTIL ungkapanJla/ar;

    Persoalan yang menggunakan pemyataan REPEAT misalnYa vanu

    untuk menghitung jumlah deret:

    1 1 1 1 -+-+- + ... + -1 3 5 N

    Jika dituangkan dalam p~ogram :

    78

    PROGRAM Oeret; ( 1 1 1 1 .,

  • di.Jilasukkan dengan sebelumnya menampilkan pesan (disertai bunyi

    peringatan) :

    N harus bllangan ganjil 1

    pcngujian bilangan ganjil dilakukan melalui:

    Ganjll := ODO(N );

    Variabcl Car~ji l bernil ai true jika N adala h bilangan ganJ N;

    pcrnyataan y:mg ada di d;dam REPE!\ T -UNTIL jug:t mini:nal dikerja-bn scbh, v:titu bib N bcrnilai 1.

    Contoh lain dari pcnggunaan REPEAT yaitu untuk menghirung bcsarn ya angsunn tcrhadap suatu nilai uang yang dibayar bcbcrap,1 kali. D:~lam hal in i penghitungan dilakukan bcrkali-kali unruk heberapa nilai yang berbcdJ. Rumus yang digunakan:

    Angsuran

    dengan : Angsuran Bunga N

    Nilai Pokok X Bunga

    1 - (1 + Bunga)-N

    = Besarnya pembayaran angsuran per bulan = Besarnya bunga per bulan = Jumlah periode angsuran

    Rumus ,li atas melibatbn pangkat, tetapi di depan telah dijelasbn bahwa Pascal tidak mempunyai operator pangkat. Bagaimana carany~ mcnghitung hasil pangkat' Pada pcrmasalahan ini pangkat dapat dJpcrol ch melalui manipulasi logaritma alami dan cksponensial. Misal-nya saja, dicari nilai

    xn =

    RO

    I I f

    t i f

    '

    i n;,d,;b, "j h .. ;my. dl>h Y. Kbu komud;'" d;Jkuk2n opec.,; I logantma alanu- (Ln), maka: , Ln X" = Ln Y

    a tau

    n Ln X = ln Y

    Dari persamaan di atas, solusi dari Y adalah y = c' n Ln Xd)

    Ana log1 -~cng an per~arnaan di at:ts. 111;;1ka (l -r bunga)" = e N Ln (i + bung>)

    1 (1 + bunga) -n = N;-c; 'l + bung>)

    <

    Dalam T~rbo Pascal, logaritma alami dapat diperleh rneLdui fungsi LN dan ckspon~nsial bisa didapatkan dengan fung\1 F. X P.

    PROGRI\.4 Angsur;

    (*-------------------------------------- ----) ( 1-4engh i tung besarny

  • sunga : = eunga ./ ( 1 oo 12); { Bung& ~r bulan } Angsuran := HilaiTunai sunga I

    (1 - 1 I EXP (CacahPeriode LN (1+Bunga))};

    WRITELN; WRITELN ('Besarnya anssuran = Rp ' , Angauran:10:2);

    WRITELN; WRITE ('Mau menghitung lagi (V/T)? ');

    READLN (Ulansl; UNTIL (Uiang = 'T') OR (Ulang : 't')

    END.

    contoh eksekusl:

    Besarnya n11ai tunal Besarnya bunga per tahun (~ ) cacah period pombayaran

    10000000

    12.5

    311

    Besarnya angsuran = Rp 3345313.26

    Mau 111enghituns 1agi (V/T)? v

    Besarnya nilai tunai

    Besarnya bunga per tahun

    cacah periods pe~bayaran

    Besarnya angsuran = Rp

    (~)

    12500000

    11

    24

    582597.98

    ~a4 111enghitung lagi (Y/T)? T

    Program 5-8.

    Pada Program 5-8, karena data masukan bunga dinyatakan dalam o/o, maka bunga yang sesungguhnya dipergunakan dalam rumus tentunya harus dibagi dengan 100 dan 12 (bunga per bulan) . Dalam pernyataan

    ditulis:

    sunga := aunga 1 t100 12l:

    Penggunaan REPEAT pada Program 5-8 yaitu untuk mengulang perhitungan bcsamya :mgsuran . Setiap kali selcsai menampilkan nilai besarnya angsuran , akan mun~-ul pertanyaan:

    82

    ---~~Y.:II $>-.,q.bernilai salah yang akan menyebabkan pernyataan dalam REPEAT-UNTIL diulang kembali . Jib yang ditekan adalah T dan t, akan menyebabkan ungkapan nalar sesudah kata tercadang UNTIL bernilai b('nar , schingga pernvatJan LhlJ m REPEAT-UNTi L -tidalc dikerjakar~ bgi . I

    REPEAT bi sa c1HnJnfa3tbn untuk mcmbuat tahcl konversi suhu. -Humus yang di gunakan um uk meb.kubn konvcr~i :

    n = 4/ S * c F = 9/5 * C

    dengan

    R = derajat Rcamur F = derajat Fahrenhe it C = derajat Cdcius

    Tabel yang dihar:~pkan dimula1 dari 0 Cclcius s:~mpai 100 Cdcius dcngJ.: selang kenaikan Sl'hesar 10 clerajat. Program yang diperlukan untu pcmbuatan tabel ini dapat d iliha t pada Program 5-9.

    PROGRAM Suhu ;

    c---------------------------------------------1 (* Progran untuk meMbuat tabel konversi suhu *)

    (* dtari derajat CELCIUS ka REJU.IUR & FAHREilHEIT *)

  • r 7 I t ' rs -- 0 ---- --- -r------------~-~----J '" ~

    WRITELN ('

    WRITELN;

    TABEL KONVERSI SUHU'};

    ----------------- ' ); WRITELH ('-------------------WRITELH (': CELCIUS : REAMUR : FAHREtiHEil :>; WRITELH (':------------:------------:------------:');

    Celcius :: OERAJAT_AWAL;

    REPEAT Rea~ur : = 4 I 5 Celcius; Fahrenheit := 9 I 5 Celcius 32; WRITEUl ('!' ,Celcius:11:2,' : . Rearr.ur : 11 :2 ,

    :, Fahrenheit:11 :2 ,' !') ;

    Celcius : : Celcius SELANG_DERAJAT

    UNTIL Celciu9 > DERAJAT_AKHIR;

    \~RITEltl (' ------------------------------------- - -- ') ;

    READLN

    EtlO.

    contoh e kekusi :

    lABEL KONVERSI SUHU

    -----------------------------CELCIUS I REAMUR

    I FAHRENHEIT : . . :------------:-- ----------:------------ :

    0.00 I 0.00 I 32.00 . I

    . 10.00 I 8.00 I 50.00 . I I 20 . 00 I 16.00

    I 68.00 . I 30.00 I 2L00

    . 86.00 I

    . 40.00 I 32.00

    I 104.00 I

    . 50.00 I 40.00

    I 122 . 00 '

    I

    80.00 ' 48.00 I 140 . 00 . I

    70.00 . 56.00 I 158.00 I I 80.00 ' -- - 6.&.00 :

    176.00 I

    90.00 I 72.00 ' 194 .00

    I .

    100.00 I 8o . oo I 212.00

    -----------------------------------

    Prog r.tm 5-9.

    84

    Ungkapan Celcius > DERAJA T -AKHIR sesudah kata-tercadang UN-TIL, menyeba~kan pernyataan yang berada dalam REPEAT-UNTIL diproses ulang sampai nilai Celcius melebihi nilai DERAJAT _.AKHIR.

    Jika menggunakan pernyataan REPEAT, bagi an ymg ada dalam REPEAT-UNTIL atau p:tda bagian ungkapan nala r h.1rus ada yang menyebabkan ungkapan nalar bernilai benar untuk kondisi tcrtentu . Berikut mcrupakan contoh yang men yebabkan proses diulang terus tanpa ada hentinya.

    X = 0: i.'EPEAT

    WRITELN IX:e rn :J h tn~.: 1 uhi. Jib l1ai sepcrti ini tcrjad i, prog ram lhpat dihcmikan dcngJil rr. .. , kan tom hoi Ctrl Scroll.

    V.8 PENCULANCAN PROSES DENCAN WHILE

    Pernyataan lain yang dipakai untuk pcngulangan proses adalJh_pernyat:l-an WHILE. Terutama dit,;unakan jika jumlah penguhngan bclum diketahui secara pasti. Pernyataan WHlLE scring dikatakan scbagai pengulang proses selama kondisi benar. Diagram alir 0.1~1 pernyataan WHILE ditunjukkan pada Gambar 5-5. Dalam gambar terschut. Pmtyataal! menyatakan proses yang abn diulang .

    Bentuk pernyataan WHILE:

    WHILE Ungkapan-nalar DO Pemvataan;

    85

    -t'""i"""'\,o- '' ll- .:, ; 'l:;"h.o "'' ;:A. ~~~~"');.-;-~:t:~-;. .~ ,;,-=,~n -. ;,;. \. __.._.

  • ,

    Gul1lbar 5- 5. Dio,crJm alir ptrny.:~rJ ,m W HILE

    i

    Pada saat WHILE dikc rjab n, mula-mula ungkapan n3lar yang I mcrupakan kondis i pcngulan gan diperiksa tcrlebih dahulu. Jika ungkap- . an nala r bc:rnilai bcn:n, m aka Pemyataall akan dikerjabn. Selanjutnya akan Jil akukan pe11gujian lagi tc rh adap ungbpan nalarny:L Selama j un gkapan nala r bernibi bcnar, maka PeP I}'

  • pernyataan yang ada da_lam ~HILE (DEC (Sisa, Pembilang)) tid~ dikerjakan sama sekah apab1la pada saat masuk ke WHILE, kondiSl

    WBILE bemilai salah (yai tu jika Per1yebut < Pcmbil.mg). pernyataan WHILE juga bisa diterapkan untuk menggantikan pernya-

    pan RPEA T. Sebagai _ contoh, program ten tang pembuatan tabel kooversi suhu (Program :>-9) akan dJlaksanakan dengan menggunakan pernyaraan WHILE pada Program 5-10. Pada Program 5-10 ungkap-ao nalar sesudah kata- tercadang WHILE harus dibuat tcrlcbih dulu bernil ai benar, supaya perny:n:~:~n y:m? mcngikutinya diproses.

    pROGRAM Suhu; cs tcru~.

    V.9 PENYELESAIAN SEJUMLAH ALTERNATIF DENGAN PERNYATAAN CASE

    Dalam P:~s cJ I, pcrm as:dahan dcng;m scjumlah altcrn ,u if atau pilihan berganda dap:tt diselesaibn ,icn g:~ n nrcnggunabn pernyat

  • pn bahwa yang ada di dalamnya (yaitu ELSE Pernyataarz_m) bersifat

    ptional (boleh ada boleh tidak ada). ~tf1lyataarz_1 sampai dengan Pemyataar~_n dapat berupa pernyataan tuflggal ataupun pernyataan majemuk.

    pernyat!lan yang mengikuti ELSE bisa berupa sebuah pernyataan tunggal ataupun beberapa pernyataan cunggal (tidak pc rlu berupa

    pernyacaan n:~~emuk) . . . . . . . variabcl Pemnth harus bewpe ordmal. Vanabel Pmnldt ndak boleh

    bertipc pecahan. }{onstanta yang dilibatkan dabm C.I\SE h:n us bertipc st:jen is dcngan

    vJriabel Pentilih.

    Pemvataan yang menglkutl ELSE

    G.am!J

  • pada program ini. kata-terc-adang ELSE dalam CASE diguna-Illengendalikan nilai pilihan yang di luar kawasan karakter '1'

    dengan '4', dengan mcmunculkan pesan: "Salah pemasukan data

    p~R~ HitungLuas;

    ,.------------------------------- ) ( penssunaan CASE untuk memilih *l

    ( perhitungan luas : . )

    - segiti ga . )

  • (11 ~enshitung LUAS SEGITIGA (2 1 ~nghitun9 LU~ SEGIEMPAT (31 Menghitung LUAS LINGKARAN

    ( 4 1 Seles&i

    Pili han [1 .. 4] : 1

    MENGHITUNG LUAS SEGITIGA Hasukl

  • ,. ----------------------------- > ~ CRT; .,_ Karal.;r. !l11 ,i:JL!m Pasc.ll Ll lllU r.l llYJ tc r~U S tlll .Has scjumbh subp rog ra n l. J..,. , l.cr :t da.m subprobr.llll d J!.l m prog rar :1 Pascal rnentbc:rik:tn bam3k kt.' tH1 tun g~n . Di:mtar.mya m emudahkJn pcmbuatan a t:~u pcmaham am tcrhadap program, k:ncna program dibcn tuk dari blok-blok y:mg kcc il , dcngm ~ctiap bag ian mcmpunvai tugas tcrsL~ndiri. Scti:tp subprog ram dapat diuJi at:1u dipclajari rrr !epas dari detail subprogram lain. l )t s:ml-plng itu jika tcrdapat proses tcrtentu dab m program yang sanl:l ata u hampir sarna dan sering dilibatkan dabm program, pcngg unadn sub program dapat mcngurangi duplibsi kode (menghcmat koJc In csi n h :1sil kompilasi) .

    Bcntuk subprogram dalam Pascal dapa t bcrupa proscdur dan fu ngsi. D i~ampi ng adanya prosedur dan fungsi bawaan (scperti prosdur writcln dan fungsi odd), pemrograrn jug:t bisa menciptabn scnd1ri ,._, ng si ataupun prosedur.

    V1.1 MENCENAL FUNCSJ ARITMETIKA

    P:t sLal menyediakan scjum lah fungsi ya ng berkaitan dengan opcrasi ar iunctika, scpcrti memperolch n ila ! kuadrat , akar kuad rat, sinus auu Losinus suatu sudut, logaritma alami dan cksponensial. Lengkapnya adalah scbagai bcrikut:

    1. Abs(X) Untuk mcmperoleh nilai mutlak (absolut) argurncn. Kcluaran fungsi bertipc sesuai tipe argumcn. Contoh: Abs(-7.2) - 7, 2

    Abs(- 157) - 157 2. ArcTan(X) Untuk memperoleh sudut (dalam radian) ya ng m cmi-

    liki tangcn sebesar X. Keluaran bertipe real. .1. Cos(X) Mcnghasilkan cosinus dari sudu t X (sudut dinyatakan

    dalam satuan radian). Hasil bcrtipc real. 4. Exp(X) Untuk mcmreroleh ek~po~lcnsial dari argumen X .

    yJ\tu e' . Ha~il bertipc real. 5. Frac(X) Untuk memperoleh bagian pecahan dari argumcn X .

    97

  • tO. Sin(X}

    11. Sqr(X)

    12. Sqrt(X)

    13. Trunc(X)

    Hasil fungsi bcrtipe real. Contoh: Frac(123.456) _. 0,456

    Frac(-123.456) _. -0,456 Untuk mendapatkan bagian bulat dari argumen X .

    Hasil bcrtipe real. Contoh: Int(50.5) _. 50,0

    Int(-50.5) _. -50,0 Untuk mempcroleh logaritma alami/ na tural (basis e),

    yaitu nilai elog X

    Hasil bertipc real. Menghasilkan nilai 3,14159265336. Untuk memperoleh nilai pcmbula tan dari suatu bihng-an real. Hasil bertipe bilangan bul:.n (longint).

    Conroh: Round (-5.6) _. - 6 Round (5.5) - b

    Untuk memperoleh sinus d:.ui SLJ" I sudur (sudut dinyatakan dalam satuan radian). Hasi! bertipc reaL Mcnghasilkan nilai kuadrat dari :ugumen X. Hcsil fungsi bertipc sesuai dengan ripe argumcn. contoh: Sqr (10) - 100 (bular)

    Sqr (10.0) - 100.0 (real) Menghasilkan nilai akar kuadrat dari argumen X. H:lSil

    fungsi bertipe real. Contoh: Sqrt (100) -4 10.0

    Sqrt (25.0) -4 5.0 Untuk memperoleh bagian bulat da ri X (real). Hasil

    bertipe longint. Contoh: Trunc (10.6) -4 10

    Trunc (- 5.6) - 5

    Selain fungsi aritmetika terdapat fungsi yang berkaitan dengan

    bilangan, berupa: Fungsi ini dipakai untuk menentukan argumen I (bcrtipe longint) berupa bilangan ganjil atau tidak. Hasil berupa true jika argumen I merupakan bilangan ganjil dan false jika

    I berupa bilangan genap ." --Dipakai untuk menghasilkan bilangan acak yang nilainya lebih bcsar atau sama dcngan 0 dan kurang dan I. Argumen bertipe word dan basil juga bc.: rtipe word. Untuk membangkitkan bilangan acak bc.:rtipe real yang

    I J

    I I I ~ f

    t f

    I t ""

    nilainya lebih besar atau sama dengan no! dan kurang dari 1.

    Catatan: Turbo Pascal menyediakan prosedur bawaan bernama RaHdomi:u (tanpa argumen), yang mcmpunyai kcgunaan untuk merriberi inisialisasi tcrhadap generator pembangki~ bilangan acak dengan nilai ac1k (diambilkan dari jam sistem) . Inisialisasi dapa t dilakukan juga dcngan membrri nilai kc variabcl bawaan RandSecd.

    Scmua f

  • {uogsi ini _terdapat ~ua bua_h para~etcr for~aidengan masing-bercipe tnteger. Ttpe hastl fungst berupa mtcger pula. Fungsi

    rnengandung bagian deklarasi. Bagian pernyataan berupa:

    bJ.gian pcrnya taan ada pcrnyataan:

    jumlan := a ... b yang mcm bcrikan nil ai pcnJum_lahan da ri :1 da n ~ k

  • PTAKAN PROSEDUR

    kedua yang dapat diciptakan oleh pemrogram berupa Deklarasi prosedur terdiri tiga bagi:1n, yaicu judul prosedur,

    dan bagian pernyataan.

    [n. judul prosedur -~

    baglan deklarasl prosedu~

    Struktur dtklaraJi prosrdur

    prosedur mempunyai bentuk:

    PROCEDURE nama_prosedur fdat:ar_parameter _formaD;

    dengan dajtar_pararneter ... fonnal bsa berupa scbuah atJU bcberapa paramc ter. Bcntuk dajtar_param r:rer_li.>nPw/ scpcrti pada pendekla rasian fungsi Jib prosedur tidak memiliki parameter, bcntuk judul proscdur bcru pa:

    PROCEDURE nama_prosedur;

    Bagian deklarasi prosedur dan bagian pernyataan prosedur pada dasarn:a sama dcngan struktur program. Bagian deklarasi bisa saj:~ mcnganJung deklarasi CONST, V AR, TYPE, LABEL dan bahkan juga subprogram lain. Bagian pemyataan dia'\\'ali dengan BEGIN dan diakhiri dengan END serta tanda titik koma.

    Contoh sederhana tentang program yang mcngandung deklarasi prosedur:

    ----

    PROGRAM ContohProsedur1 ;

    c ----------------- -------------------- > --c Contoh ~embuat dan ~emanggil prosedur *l ( ~ -- - - - - ----- --- ------- * l

    USES CRT;

    CotlST SPAS I = ' 32 ;

    102

    "

    I (

    I f ~

    I i I I-t f ~

    I j

    PROCEDURE Garfa;

    CotlST GARIS_GAIIDA : 205; VAR Pencacan : BYTE ; BEGIN

    FOR Pencacah: :t TO 22 DO

    WRITE (GAR IS_GAiiDA) ; WRITE ltl

    END ; ( akhir Prosedur garis

    BEGHI 1 Program utama ) CLRSCR ;

    Garig ;

    WRITEUI ( SFASI: 5, ' TURBO PASCAL' ); Garis;

    READLN

    fi4D.

    Contoh ekse k:.Jsi

    =========~== = === = ===== TURBO PASCAL

    ==== === = ==== ===~ ======

    Program 6-l.

    1~+ r>rQ.,\\'

    _y_

  • gram. Gambaran mengena1 hal m1 dapat dilihat pada Program

    pROGRAM Parameter1;

  • acrdiri sebagai parameter variabel), karena parameter formal dan r.:,- rrrrrrllff aktual mempunyai kaitan memori yang sama, maka 'f>erubah-

    afanl subprogam juga mempengaruhi parameter aktual.

    Pada cara melewatkan parameter dengan referensi, nama parameter aktual dan parameter formal boleh berbeda (tidak harus sama). Parameter aktual harus berupa variabel atau

    konstanta bertipe.

    PROGRAM Par~eter1; . )

  • Y : BYTE;

    PROCEDURE Pros_A; CONST

    BEL = c: PROCEDURE Pros_B;

    VAR Y : BOOLEAN ; M : REAL:

    BEGIN M := 3.1 4:

    --

    WRITELN !BEL, 'M pada PROS_B = ', Ml ; WRITELN I'Y dalam prosedur PROS_B = ' , Yl ;

    END: { akhir prosedur Pros_B }

    PROCEDURE Pros_C

    I BEG!N 1 Pros_B; WRITELNIBEL.'Y pada prosedur PROS_c = ',Yl: I I

    I END: { al

  • VII MENGGUNAKAN TIPE ENUMERASI DAN SUB~ANGE .

    Pascal memungkinkan pemrogram mendcfmisibn t ipc scndiri . DiantJra tipe yang dapat di ciptakan oleh pemrogram bcrupa ripe cnumerasi dan tipe subrange. Kedua tipe data ini sebenarnya tc;-golong scbagai t ipe da ta sedcrhana atau ripe skalar , ya itu tipe da ta yang hanya mcmpunyai sehuah nilai dan tak dapat dibagi-bagi lag1 menj adi bagi :m yang lcbih kecil. Tipe skalar sendiri meliputi seluruh ripe bawaan yan g sudah dibahas pada Bab II (seperti char, boolean: Tipe st ring tidak ten nas uk tipe-skalar). Diantara tipe skalar ada yang disebut sebagai ripe o rd inal. T ermasuk dalam tipe ordinal adalah semua tipe skalar kecua li tipe real.

    Vll.1 nPE ENUMERASI

    Tipe enumerasi merupakan t ipe datJ yang beris i sejumlah pcngcnal yang diciptakan olch pcmrogra m. Tipe ini dia\\"ali Jcngan kurung bub dan diakhiri dengan kurung tutup dan rnasing-ma >i ng pcngcnal yan g ada di dalamnya dipisahkan dengan tanda koma. S: bagai contoh:

    (SD, SMTP, SMT A , Akaderni, Universitas)

    yang mendefinisikan ripe enumerasi dengan pengcnal berupa SD, SMTP, SMT A, Akademi dan Universitas.

    Tipe enumerasi bisa didefinisikan dalam bagian TYPE. Selanjutnya tipe yang didefinisikan dalam bagian TYPE tersebut dapat digunakan untuk menentukan tipe varia bel dalam deklara.si V AR . Sebagai contoh:

    TYPE TlpePendldlkan = !SO, SMTP, SMTA, Akademl, Untversltasl;

    VAR Pendldlkan : TlpePendldlkan:

    Pendeklarasian di atas menyebutkan bahwa variabel Pendidikan dapat bcrisi salah satu dari pengenal SD, SMTP, SMT A , Akademi dan Universitas.

    Disamping menggunakan. cara seperti di ata.s, pcndeklarasian variabd juga bisa dilakukan tanpa menggunakan deklarasi TYPE. Misalnya:

    110

    VAR

    Pendldl!t:an : !SO, SMTP, SMTA, Akademl, UnlverSlbsl;

    Terapi penciinaan tipe enumerasi dalam TYPE mempuny;u krkb\h~l'l bisa dipakai untuk menentukan jenis keluaran dari suatu ti.m~' ' enumerasi ataupun uncuk menentukan tipe argumen dari su.ttu pr'~

  • ~

    nilai ordinal SD ,.. 0 nilai ordinal SMTP =- 1 nilai ordinal SMT A ~ = 2 nilai ordinal Akademi = 3 nilai ordinal Univeritas = 4

    Nilai o rdinal dari elemen enumerasi dapat dipcroleh dengan mcnggu-

    nakan fungsi ord . Misalnya pemanggilan ,

    ORO !SOl

    menghasilkan nilai 0.

    ORO !SMTAl

    menghasilkan nilai 2.

    Memperoleh Elemen Enumerasl serdasarkan Nllal ordinal 'h:a nil ai ordinal diketahui , elemen cnumerasi dapat diperoleh J~\nggunakan bentuk: / ~

    nama_tipe_enumerasl lnllaLordlnall

    Scbagai contoh:

    Pendldlkan := PendldlkanTertlnggl !Ol ;

    ckngan

    Pemyataan di atas akan membuat variabd Pcrzdidika11 bcrisi SO. Scbab elemen dalam PendidikanTertinggi yang mempunyai nilai ordinal 0 adalah

    pengenal SO.

    Memperoleh Pendahulu dan Penglkut -Pascal menyediakan fungsi bawaan yang dipakai untuk memperoleh elcmen yang terletak sebelum atau sesudah suatu elcmcn cnumerasi.

    Dalam hal ini terdapat istilah:

    {ll Pendahulu (Predecessor) Menyatakan elemcn yang terlctak sebelum suaru clemen enumerJ--

    si . Pengikut (Successor) Menyatakan elemen yang terlctak scsudah suatu elemen enumera-

    si.

    f

    l

    I I

    Fungsi yang .~ ipakai untuk keperluan masalah ini yaitu:

    Pred : L=nruk mcmpcroleh pendahulu elemen enumcrasi argu~~~ya Succ : Unt11k rncmperolch pengikut clemen enumerasi argumennya

    Pcrlu dik::>ul~ui:

    1111 Ekmen !"'cn.l ma dalam ripe cnumerasi tidak mcmpunyai pcndahulu. Elcu1c:1 1:: .:k hir dalam ripe cnumerasi tithk mcmpunni pcngikur.

    lkhn.lp .l ,-,,,:: ,, h:

    P~ ''l.ll' ;~d.;: !

    FUili!, Si

    Ha~il kdt:aran h. ctcrangan

    --------------------------:) 1 ~ ED 1S \ \I' A)

    I'HfD (S \ .\TP) SUCC (Sf)' PHED (S I )\

    SUCC( L' ""crs itJ~)

    SMTP

    so SMTP

    -------- ------

    Pcndahulu S.\17';\ adahh S.\17P Pcndahulu S.\!TP adabh SO Pmdahulu SD adabh SMTP SO tidak mcmpun yai penda-hulu

    L'llil'c'rsira.' ti tbk mcm punyai pengikut

    jik.l ~u.iw 1 .1ri "' hc l diberi ni!Ji lu~ il fu ngsi PRED tcrhad :lJJ elcmen I pe-rtama at.J u r-ungsi SUCC terhJlhp clemcn tcrakhir dalam ripe. cnu m cras1 "lkJil 1n~nycbabkan l:csalah:lll (Kcsalahan :1kan dilaporkan snt cksekusi, k.d.lu dala m program discrtabn pcngarah kompiler berupa {$R+} ).

    Pemasukan/Penampllan Data Enumerasl Pcmasukan ,lara enumerasi ke suatu variabel cnumerasi tidak menggunak.ln proscdur READ atau READLN. Pcrnyataan seperti:

    READLN IPendlalkanl;

    merupabn pcrnyataan yang salah. 1

    Lalu bagaim ana ca ranya mcmasukkan data ke variabd cnumcrasi yang / diatur meblui papan-ketik sewakru cksckusi program? Perhatikan contoh proscdur bcrikut:

    PROCEDURE MemasukkanDataPendidlkan !VAR Pendldlkan: PendldlkanTertlnggll ;

    VAR Kode : SHORTINT;

    11

  • I'Mi!SUIQ(an Kode Pendkllkan:'); !31 Akademi'); so

    sMT? WRITEL.N 1'121 SMTA'l; Wfl!TELN: REPEAT -

    WRITE I'Kode 10 .. 41: 'l; READLN !Kadel;

    141 Untversttas'l;

    -~ ----,.--

    IF tKode < Ol OR !Kode > 4l THEN WRITELN l'Kode yang anda masui

  • Jumat : WRITELN !'Jumat'l; sabtU : WRITELN 1'5abtu'l; MlnggU : WRITELN I'Mingg(l'l

    END;

    ditulis dengan menggunakan pernyataan repeat sebag;;. , ....._'\'

    ~ar1 := senln; REPEAT

    CASE Hari OF senln : WRITELN t'Senin'l: Selasa : WRITELN !'Se!asa'l; RabU : WRITELN f'RabU'l ; Kamls : WRITELN ttcimis'l; Jumat : WRITELN f'Jumat'l; SabtU : WRITELN !'SabtU'l; Mlnggu : WRITELN !'Minggu')

    END;

    IF Harl Mlnggu THEN Hari : = succ tHaril

    UNTIL Harl = Mlnggu;

    Pada pcrnyataan di atas. fun gsi SlJCC dipakai untuk merr"r- -. 1

    : , '1'

    berikutnya . Pcrnyataan IF digunakan untuk memcriks~ -. "' '1111

    dengan Minggu a tau tidak . Jika sam a dcngan .\finggu maka i . .::::-.:- , ~._ '\ 1 tidak digunakan lagi. And;,ikata pemanggilan fungsi SUC~ ~ ' ,.\ kondisi IF , akan mcnimbulkan kesalahan sewakm Hari b:::::- :1 1'~'' Sebab Minggu tidak mempunyai pengikut.

    Contoh yang lain dapat dilihat pada Program 7-'2. Masu;.::: "' .,; ! 11

    ''

    berupa nilai ordinal dari suatu tipe enumerasi. Selanjur::"- J \nf.l'

    enumerasi dipakai untuk me~entukan besarnya gaji pok01.

    PROGRAM Gaj i ;

    (' ---------------------------------------------- . ~: :::::::_:::::~~~~:=~-~:~::::~::_:::~~~~~:: : USES CRT; TYPE

    Pendldlk.anTertlnggl = !SO, SMTP, SMTA. Al>,'l' _~,,

  • ~asukkan Kode Pendidikan: [0] SO [3] Akadeai [1) S~TP [4] Universitas

    [2) SMTA');

    Kode ( 0 .. 4 ] : 1

    Gaji " Pokok = Rp 45000.00

    Vll.2 TIPE SUBRANGE

    Tipe subrange merupakan tipe deng:m kawasan merupakan bagian dari tipe skalar. Pendefinisi;mnya dia,,ali dengan nilai awal, diikuri dcngan tanda subratzge dan diakruri dcngan nibi akhir dari kawasan yang dikehendaki pemrogram. BcncuknyJ:

    NilaLawal .. -NilaL..ali:hlr

    dengan syarat : Ni iai_awal s !':ilrzi_a khir. Beberapa contoh pendefinisian ripe subrange:

    TYPE oataHari = !Senln, Selasa. Rabu, Kamls, Jumat. 5abtU, Mlnggu);

  • VIII PENGOLAHAN DATA STRING

    Srnng merupakan jenis dan yang bisa bcrupa gabung:.n da ri huruf, angka maupun simbol. Str ing biasa didcfinisikan scbJgai untaian atau deretan karakter. J enis data ini banvak d itcrapkan dalam aplikasi yang bersifat nonnumerik, misalnya untuk rncmpcrokh kata-ka ta yang terdapat suaru kalimat atau mcnyimpan data nJma ~cscorang.

    Vlll.1 KONSTANTA STRit~C

    Konstanta string mempunYJi em yaitu ditu li s denpn diav.lJ]i dan diakhiri tanda petik tungg :1 l. Scb:~gai contoh:

    'Jalan Kallsahak 5' '1 56' { string dengan deretan angka 156 } 'Jum"at' { string Jum'at. Tanda petlk harus dltulis dua kal!

    Sekalipun pengertian string adalah sederctan karak tcr , sua tu string bisa saja tidak mengandung kar:1krer ~am a sckali. String dcmikian discbut dengan string kosong (srring dengan panjang samJ deng;m no!). Penulisan string kosong: --

    " { String l

  • Kallmat1 := ~::ata + Generasl + rv ; '

    'Komputer Generasl' + ' rv L------- --'

    Komputer Generasl rv

    varlabel Kallmat1 al

  • VJII.S PEMBANDINGAN STRING '~

    seta in peng gabungan string (konkatenasi), __ operasi string lainnya yang dimungkinkan adalah pembandingan string. Operator relasi yang dipakai dalam operasi pembandingan string dapat dilihat pada Tabel

    8-1.

    rabel B-1. Operator relasl untuk operas! string

    operator Art!

    > <

    >=

  • Contoh pengaksesan ' karakter dalam suatu string J diubah. M isalm a:

    St : ~ 'Turbo Pascal '; St!21 := 'U': Stl31 := 'R': Stl41 := 'B': StiSI := '0';

    dimaksudkan ur.tu k mer.gubah clemen dar i pengenal string St. Kalau semula St beri si 'T urbo Pascal' , sesudah d emen kedua sampai kelima diganti, hasilnya mcnj adi 'TURBO Pasca l' .

    VJII.7 FUi'JGSI OAN PROSEDUR UNTUK OPERAS! STRING

    Turbo Pasca l m cnyediabn sej uml ah fasilita s bcrupa subprogram yang dapat di p.1ka i umuk kcperluan opcras i strin g. Subprogram yang

    disediakan tcrcantum pada Tabel 8-2.

    Tabel 8- 2. Subprogram bawaan untuk keperluan operas! string

    126

    Pengenal

    Chr

    co neat

    Copy Insert Length Pos Ord Str UpCase Val

    Proseour/ Fungsl

    Fungsl

    Fungsl

    Prose our Prosedur Fungsl Fungsl Fungsl Prosedur Fungsl Prosedur

    Kegunaan

    Menghasllkan karakter yang sesual dengan nllal ASCU dll argumennya Menghasllkan string gabungan dai1 dua buah strl119 a13f , leblh Menyalln baglan dar! suatu string Menylslpkan suatu string ke dalam string lain Untuk memperoleh pan)ang string Menghasllkan poslsl suatu string dalam string yang !Ill Memperoleh nllal ASCII dar! karakter argumennva untuk mengubah tloe numerlk menJadl tlpe strl119 Untuk memperolen huruf kapltal dar! suatu huruf ~ Mengubah tlpe strl r.g menjadl tlpe numerlk

    Fungsl Chr Fungsi Chr digunakan un_tuk memperoleh karakter yang sesuai dengan nilai ASCII yang diberikan pada argumen. Kaidah dari fungsi Chr:

    Chr tNIIaLbulatl

    dengan Nilai.Jm/at bisa bcrnilai antara 0 sampai dengan 255 (Lihat tabel ASCH). Sebagai C.Qntoh:

    Kar : = CHR !65!;

    akan... mcnghasilka n brak tcr ' ;\ p.hi a q riabcl Kar (bcrtipc Char).

    Fungsl concat Fung si Conw t m cmpun ya i keg unJ.1n umu k mcmpcrolch str ing gabung-an dari bcberapa stri ng . Bcnruk fung s1 l!li

    concat !Strlng1, Strlng2, .. .l

    dengan sduruh argum cn (Srrin,~ 7. Srn~- J.1n s c b:~ga in ya) dJ pat bcrupa sembarang variabcl , hmstan ta. funp: .H.1tl ungkap'an str ing. Scbagai contoh:

    St1 := 'lngln': St2 := 'kau ra lh': St3 := se)uta blntang '; St4 := CONCAT!St1,' ',St2,' ',St3l;

    akan m embuat variabcl string Sr.; hcrisi srr1ng

    'lngln lcau ralh se)uta blntang

    Pemanggilan fungsi Concat di atas sama Jcngan penulisan:

    St1 + ' ' + St2 + ' ' + St3

    Fungsi concat mempunyai sifat, apabil a String gabungan melebihi dari 255 karakter, maka karakrer setelah \;mg ke-255 akan di buang.

    Fungsl Copy Fungsi Copy memrunyai bcnr uk :

    Copy !Stnng1, lndelcs, Jum!ahl

    dengan String1 dapat berupJ ungL1p;m, komt:mra arau variabel atau .. 127

  • I - 14 c r-=nn' PM* .. w- -- - -

    fungsi string, Jumlah menyatakan banyaknya karakter yang disa\in,

    dirnulai dari karakter ke-Indeks Strit~g1. Sebagai contoh:

    St1 : = rurbo Pascal ': St2 :=COPY tSt1. 7, 61;

    rnaka. Sr2 aka n tcnSl deng:w ' Pasca l', ~ . ------. I 1234S678901 2 COPY !'Turbo Pascal' , 7, 61

    - - - - - - _ _..J L- --

    Fun gsi Copy mcngh :1~ ilkan str ing kosong, j ib nil ai I11deks lcbih dari panjan g Srri11g1 . Apabila ft; deks ~ j;mdah mclcbihi dari panjang String_ J. maka fun g>i Ct

    1py mcnghasilkan stri ng \ 'ang berupa dcretan dari brakter

    ke- fH ,icks cbri So in_(: 1 sam pai dengan b raktcr ya ng terakh ir,

    Bcberapa co tn oh :

    Pemangg ilan tungsi

    COPY nurbO Pascal ', 7, 31 copy nurbo Pascal' , 7, 61 copy nurbo Pascal ', 7. 81 copy nurbo Pascal', 13, 31

    Prosedur Delete Proscdur Delete mernpunyai ben tuk :

    Delete tst ring1, Awal , Jumlahl:

    String hasil

    'Pas 'Pascal' 'Pascal' String kosong

    Proscdur ini digunakan untuk mcnghapus bagian dari String1 dimulai dari posisi se5uai nila i AtVaL Banyaknya braktcr dirnulai dari posisi awal yang d ihapus .di tentukan oleh nilai Jumlah, Pada pemanggilan prosedur ini . S rring1 harus bcrupa variabel. Sebagai contoh:

    ,PS OFF 12345678901234.,

    St := 'slnat r~mbulan bersama bintang-bintang' ; DELETE tSt , 7, 3l ;

    .PS ON

    mmycbabkan 3 buah ka rakter dim ubi posisi ke-7 dari s