diktatalgoritma.doc

Upload: anggoro-adi-sucipto

Post on 05-Feb-2018

230 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/21/2019 Diktatalgoritma.doc

    1/87

    DIKTAT KULIAH

    ALGORITMA & PEMROGRAMAN II

    MKK42202

    UNTUK KALANGAN SENDIRI DAN BOLEH

    DI PERBANYAK UNTUK KEILMUAN

    Erna Kumalasari Nurnawati

    PROGRAM STUDI

    TEKNIK INFORMATIKA S1

    FAKULTAS SAINS & TEKNOLOGIUNIVERSITAS TEKNOLOGI YOGYAKARTA

    2010

    22

  • 7/21/2019 Diktatalgoritma.doc

    2/87

    Pengenalan Komputer Proses transformasi data berbantukan komputer

    Gambar 1. Diagram tansformasi data

    Penggunaan komputer

    Kelebihan Kelemahan

    1. Kecepatan2. Konsistensi3. Kapasitas4. Reusability (bisa dipake kembali)

    1. Hanya menjalankan instruksi

    ahasa !language"

    Adalah suatu sistim untuk berkomunikasi. ahasa tertulis men!!unakan simbol (yaitu

    huru") untuk membentuk kata. #alam ilmu komputer$bahasa manusia disebut bahasa

    alamiah (natural lan!ua!es)$ dimana komputer tidak bisa memahaminya$ sehin!!a

    diperlukan suatu bahasa komputer.

    ahasa pemrograman !programming language"

    Komputer men!erjakan trans"ormasi data berdasarkan kumpulan perintah % pro!ram %

    yan! telah dibuat oleh pemro!ram. Kumpulan perintah ini harus dimen!erti oleh

    komputer$ berstruktur tertentu (synta&) dan bermakna. ahasa pemro!raman merupakan

    notasi untuk memberikan perintah secara tepat pro!ram komputer.erbeda den!an

    bahasa alamiah$ mis. ahasa 'ndonesia$ 'n!!ris dsb. yan! merupakan bahasa

    alamiah(natural lan!ua!e)$ sintaks dan semantik bahasa pemro!raman (komputer)

    ditentukan secara kaku$ sehin!!a bahasa pemro!raman ju!a disebut seba!ai bahasa

    "ormal ("ormal lan!ua!e). adi$ dalam bahasa pemro!raman yan! di!unakan seba!ai

    alat komunikasi untuk memberikan perintah kepada komputer tidak berlaku kebebasan

    berekspresi seperti laiknya dalam bahasa alamiah. emro!raman dalam pen!ertian luas

    meliputi seluruh ke!iatan yan! tercakup dalam pembuatan pro!ram$ termasuk analisis

    kebutuhan (re*uirement+s analysis) dan keseluruhan tahapan dalam perencanaan

    (plannin!) $ perancan!an (desi!n) dan pe,ujudannya (implementation). #alam

    pen!ertian yan! lebih sempit$ pemro!raman merupakan pen!kodean (codin! atau

    pro!ram ,ritin! - penulisan pro!ram) dan pen!ujiannya (testin!) berdasarkan

    rancan!an tertentu. emahaman yan! lebih sempit ini serin! di!unakan dalam

    22

  • 7/21/2019 Diktatalgoritma.doc

    3/87

    pembuatan pro!ram%pro!ram terapan komersial yan! membedakan antara system

    analyst yan! bertan!!un! ja,ab dalam men!analisa kebutuhan$ perencanaan dan

    perancan!an pro!ram den!an pemro!ram (pro!rammer) yan! bertu!as membuat kode

    pro!ram dan men!uji kebenaran pro!ram.

    Generasi bahasa pemrograman#

    /enerasi '0 machine lan!ua!e

    /enerasi ''0 assembly lan!ua!e 0 Asssembler

    /enerasi '''0 hi!h%leel pro!rammin! lan!ua!e0 $ AA$ dsb.

    /enerasi '50 4 / ("ourth%!eneration lan!ua!e)0 6

    /ambar 2. 7in!katan bahasa komputer$. ahasa Tingkat %endah !lo&'le(el language"

    8erupakan bahasa assembly atau bahasa mesin. ebih dekat ke mesin (hard,are)$

    dimana hi!h%leel pro!rammin! lan!ua!es dekat pada bahasa manusia.

    ' ahasa )esin !ma*hine language"

    ahasa mesin merupakan representasi tertulis machine code (kode mesin)$ yaitu kode

    operasi suatu mesin tertentu. ahasa ini bersi"at khusus untuk mesin tertentu dan

    9dimen!erti9 lan!sun! oleh mesin$ sehin!!a pelaksanaan proses san!at cepat. ahasamesin kelompok komputer tertentu berlainan den!an bahasa mesin kelompok komputer

    yan! lain. Abstraksi bahasa ini adalah kumpulan kombinasi kode biner 9:9 dan 919 yan!

    san!at tidak alamiah ba!i kebanyakan oran! % kecuali insinyur pembuat mesin

    komputer. Karena tidak alamiah ba!i kebanyakan oran!$ bahasa mesin ju!a disebut

    bahasa tin!kat rendah.

    ' ahasa Assembl+ !assembl+ language"

    ahasa rakitan (assembly lan!ua!e) merupakan notasi untuk menyajikan bahasa mesinyan! lebih mudah dibaca dan dipahami oleh manusia. ahasa ini sudah men!!unakan

    simbol alpabet yan! bermakna (mnemonic). ontoh ;8$ pindahkan ke

    re!ister A= nilai 1111.roses data oleh komputer berdasarkan perintah bahasa rakitan

    adalah cepat. 8eski demikian masih merepotkan%bahkan ba!i kebanyakan pemro!ram$

    karena masih harus men!in!at%in!at tempat penyimpanan data. ahasa rakitan ju!a

    bersi"at khusus untuk mesin tertentu. ontoh0 Assembler.

    22

  • 7/21/2019 Diktatalgoritma.doc

    4/87

    $. ahasa Tingkat Tinggi !high'le(el language"

    Adalah bahasa pemro!raman yan! dekat den!an bahasa manusia$ kelebihan utama dari

    bahasa ini adalah mudah untuk di baca$ tulis$ maupun diperbaharui$ sebelum bisa

    dijalankan pro!ram harus terlebih dahulu di%compile. ontoh Ada$ Al!ol$ A'$

  • 7/21/2019 Diktatalgoritma.doc

    5/87

    ahasa %asio

    Assembler 10 1A#A 1 0 4.G6uick F 7urbo F asic 1 0 G

    1 0 2.G@

  • 7/21/2019 Diktatalgoritma.doc

    6/87

    b. a!i pro!ram ke dalam modul%modul lo!ika yan! sejenis$

    c. /unakan sub%pro!ram untuk proses%proses sejenis yan! serin! di!unakan$

    d. /unakan pen!kodean terstruktur0 '@ ... 7HB$ #< ... DH'B dan lain%lainnya$

    e. Hindarkan pen!!unaan perintah /< 7< bila tidak diperlukan$

    ". /unakan nama%nama bermakna (mnemonic names)$ dan

    !. uat dokumentasi yan! akurat dan berarti.

    #alam perencanaan dan perancan!an dari atas ke ba,ah$ kate!ori dan penyelesaian

    masalah dimulai dari ba!ian yan! utama kemudian diba!i menjadi ba!ian yan! lebih

    kecil. Rancan!an cara ini memudahkan penulisan$ pen!ujian$ koreksi dan dokumentasi

    pro!ram. 7ahapan rancan!an atas ke ba,ah dalam pemro!raman0

    1. 7entukan keluaran (output) yan! diminta$ masukan (input) yan! diperlukan dan

    proses%proses utama yan! diperlukan untuk trans"ormasi data.

    2. 8emba!i proses utama ke dalam modul%modul "un!sional.

    3. uat al!oritma msin!%masin! modul$ dari modul utama ke sub%sub modul.

    etiap modul dalam proses rancan!an atas ke ba,ah biasanya dibatasi dalam isi

    maupun batasan%batasan berikut0

    1. etiap modul hanya mempunyai satu masukan dan keluaran

    2. etiap modul hanya me,akili satu "un!si pro!ram.

    Rancan!an (desi!n) terstruktur0

    1. 8emba!i pro!ram menjadi sub%pro!ram

    2. 8enekankan "un!sionalitas.

    3. ocok untuk sistem yan! banyak mempunyai "un!si independen. /aya penulisan

    pro!ram terstruktur08en!!unakan indentasi sehin!!a jelas struktur dan kontrol

    pro!ram.8emudahkan pembacaan$ pemahaman$ penelusuran kesalahan dan pembuatan

    koreksi.

    $. ahasa pemrograman prosedural ' terstruktur

    ahasa pemro!raman prosedural adalah bahasa pemro!raman yan! mendukun!

    pembuatan pro!ram seba!ai kumpulan prosedur. rosedur%prosedur ini dapat salin!

    meman!!il dan dipan!!il dari manapun dalam pro!ram dan dapat men!!unakan

    parameter yan! berbeda%beda untuk setiap peman!!ilan. rosedur adalah ba!ian dari

    pro!ram untuk melakukan operasi%operasi yan! sudah ditentukan den!an men!!unakan

    22

  • 7/21/2019 Diktatalgoritma.doc

    7/87

    parameter tertentu. ahasa pemro!raman terstruktur adalah pemro!raman yan!

    mendukun! abstraksi data$ pen!kodean terstruktur dan kontrol pro!ram terstruktur.

    Kontrol pro!ram terstruktur0

    1. Runtun % urut (se*uence)

    2. ilihan (selection)

    3. en!ulan!an (repetition % loop)

    /ambar 4. 7ahap pen!emban!an pro!ram

    1. atasan 8asalah 8erencanakan sistim dan spesi"ikasi pro!ram0 iapa yan! akan

    men!!unakan pro!ram dan untuk apa den!an cara0% 8enentukan tujuan dan hasil yan! akan dicapai

    % 8enentukan hal%hal yan! diperlukan oleh sistim

    % en!umpulan data

    2. en!emban!an 8odel embuatan model dari sistim yan! akan kita ban!un$ model

    adalah suatu !ambaran sederhana dari sistim yan! kita buat. #en!an pembuatan model

    akan terlihat den!an jelas hubun!an antara objek%objek dalam sistim yan! akan kita

    ban!un. Intuk penyelesaian aritmatik$ biasanya model dibuat dalam bentuk rumus

    matematik.

    ontoh0

    Intuk membuat pro!ram luasJlin!karan kita membuat model matematis c - a & b

    3. Rancan!an al!oritma embuatan urutan instruksi yan! akan ditulis pada pro!ram

    ( dijelaskan lebih lanjut)

    4. emro!raman 'mplementasi al!oritma ke dalam pro!ram (al!oritma sendiri dalam

    komputer adalah merupakan pro!ram).

    G. Iji dan 5alidasi en!ujian terhadap pro!ram 0 seperti kesalahan penulisan (synta&

    error) $ kesalahan saat eksekusi (runtime error) kesalahan lo!ika pro!ram (pro!ram

    berjalan tapi men!hasilkan output yan! salah% "atal error).

    E. #okumentasi embuatan catatan pada pro!ram terutama pada modul%modul yan!

    rumit.

    ontoh0 istem en!emban!an o"t,are i"e ycle

    22

  • 7/21/2019 Diktatalgoritma.doc

    8/87

    /ambar G. istim en!emban!an o"t,are i"e ycle

    ALGORITMA

    erencanaan dan perancan!an pro!ram komputer ju!a disebut pembuatan al!oritma.

    ecara umum$ al!oritma: "kumpulan urutan perintah yang menentukan operasi-

    operasi tertentu yang diperlukan untuk menyelesaikan suatu masalah ataupun

    mengerjakansuatu tugas". ila data yan! di!unakan benar$ maka al!oritma akan selalu

    berhenti den!an memberikan hasil yan! benar pula. embuatan al!oritma harus selaludikaitkan den!an0

    a. Kebenaran al!oritma$ yakni bila pro!ram selesai maka hasilnya ju!a benar

    b. Kompleksitas % lama dan jumlah % ,aktu proses dan pen!!unaan memori.

    Al!oritma % dan tentu pro!ram yan! baik$ bercirikan0

    a. 7epat sasaran0 memenuhi spesi"ikasi pekerjaan dan bekerja sesuai tujuan

    b. @le&ible dan portable0 % @le&ible untuk dikemban!kan lebih lanjut % ortable untuk

    di!unakan pada berba!ai sistem dan mesin

    c. ersih dari kesalahan sistem ataupun lojik

    d. 8urah0

    % B"isien dalam pen!!unaan piranti memori dan penyimpanan lainnya.

    % epat ,aktu pelaksanaannya.

    e. #idokumentasi den!an baik untuk pen!operasian$ pemeliharaan dan pen!emban!an.

    ". Al!oritma merupakan pemberian (description) pelaksanaan suatu proses.ebuah

    proses dikerjakan oleh pemroses men!ikuti al!oritma yan! sudah dibuat. Al!oritma

    merupakan urutan lan!kah instruksi yan! lo!is. etiap lan!kahinstruksi men!erjakan

    suatu tindakan aksi. ila suatu aksi dilaksanakan$ maka operasi atau sejumlah operasi

    yan! bersesuaian den!an aksi itu dikerjakan oleh pemroses.

    Hasil atau pen!aruh suatu aksi diamati den!an membandin!kan keadaan sebelum (t:)

    dan sesudah suatu aksi dikerjakan (t1).

    t:0 kumpulan data ke 1 .. belum terurut membesar

    Al!oritma B/IRI7A #A7A

    22

  • 7/21/2019 Diktatalgoritma.doc

    9/87

    t10 kumpulan data ke 1 .. terurut membesar

    Aturan Penulisan Teks Algoritma

    7idak ada notasi yan! baku dalam penulisan teks al!oritma. Al!oritma bukanlah

    pro!ram yan! harus men!ikuti aturan%aturan tertentu. 8eski demikian$ al!oritma

    dituliskan mendekati !aya bahasa pemro!raman umumnya. 8isal$ tulis nilai = dan $

    dituliskan dalam al!oritma seba!ai ,rite(=$). erhatikan dalam notasi ,rite(=$) inihanya memerintahkan penyajian nilai = ke piranti keluaran (output). #alam notasi itu

    ju!a tidak memasalahkan "ormat ataupun bentuk%bentuk tampilan lainnya$ seperti

    dicetak dalam satu baris = dan $ pemakaian pemisah antara = dan men!!unakan

    koma atau spasi. Hal%hal yan! bersi"at teknis ini baru dipikirkan ,aktu penulisan

    pro!ram. Al!oritma adalah bebas bahasa pemro!raman.

    Teks Algoritma

    8en!ikuti alur konsep pemro!raman prosedural$ suatu teks al!oritma disusun dalamti!a ba!ian$ yaitu0

    a. a!ian kepala al!oritma$

    b. a!ian deklarasi$ dan

    c. a!ian deskripsi al!oritma.

    etiap ba!ian disertai den!an penjelasan atau dokumentasi tentan! maksud pembuatan

    teks. a!ian penjelasan dia,ali dan diakhiri den!an simbol L dan M.

    Al!oritma A8AJA/

  • 7/21/2019 Diktatalgoritma.doc

    10/87

    luasnya$ dan menyajikan hasilnya ke piranti keluaran M erhatian$ dalam menulis nama%

    nama dalam al!oritma harus mempunyai makna yan! mencerminkan proses$ si"at atau

    identitas lainnya yan! melekat den!an suatu proses$ tipe$ konstanta$ ariabel$ sub%

    pro!ram dan lain%lainnya.ama%nama yan! bermakna disebut mnemonic.

    2) #eklarasi al!oritma0

    DEKLARASI { nama konstanta }const PHI = 3.14; { Nilai pi = !!"# }{ nama p$%&a } 'a( R ) ($al; { inp%t *$*a(i lin+ka(an &ilan+an (iil }l,Lin+ka(an ) ($al; { l%as lin+ka(an &ilan+an (iil }{ nama s%& p(o+(am }p(oc$-%($ /KAR0inp%t"o%tp%t A)int$+$( inp%t"o%tp%t 2)int$+$({ $mp$(t%kankan nilai A -an 2.Pa(am$t$( A -an 2 s%-a t$(-$5inisi nilain6a.S$t$lap$(t%ka(an A &$(isi nilai 2 -an 2 &$(isi nilai A }

    3) #eskripsi al!oritma0 a!ian ini merupakan ba!ian inti al!oritma yan! berisikan

    uraian lan!kah%lan!kah penyelesaian suatu masalah. etiap lan!kah al!oritma dibaca

    dari atas ke ba,ah. Irutan penulisan menentukan urutan pelaksanaan perintah.

    { 2aca -ata *$*a(i lin+ka(an R.7ika R 8= 9 t%lis p$san -ata sala s$lain it% it%n+l%as in+ka(an. ampilkan l%as lin+ka(an. }&aca0R;*ika R 8= 9 t$n t%lis0:Data sala :s$lain it% l,Lin+ka(an = PHI < R < R;t%lis0l,Lin+ka(an;

    B. #ia!ram Alir (@lo, chart) 8erupakan bentuk !ra"isFisual dari al!oritma entukumum dari simbol%simbol dalam dia!ram alir0

    Simbol untuk mulai (start) atau akhir (end) program

    Simbol untuk pembacaan (read) data atau penulisan hasil (write) pada

    layar

    Simbol untuk suatu proses terhadap data pada program

    Simbol untuk suatu pernyataan pilihan (optional) pada program.

    Simbol untuk penghubung antar aktifitas.

    Konektor, Simbol untuk memutus aktivitas karena keterbatasan media

    kertas.

    Sub program

    22

  • 7/21/2019 Diktatalgoritma.doc

    11/87

    Komentar

    0ontoh pemakaian flo&*hart#

    'e2uential !berurutan"

    perhitun!an olume dan luas permukaan silinder

    ele*tion3ran*hing tru*ture !truktur pemilihan"

    22

  • 7/21/2019 Diktatalgoritma.doc

    12/87

    %epetition3Looping tru*ture!truktur pengulangan"

    22

  • 7/21/2019 Diktatalgoritma.doc

    13/87

    Kombinasi

    22

  • 7/21/2019 Diktatalgoritma.doc

    14/87

    seudocode seudocode adalah penulisan al!oritma men!!unakan !aya bahasa

    pemro!raman pemro!raman tertentu. ontoh deskripsi al!oritma di atas bila ditulis

    men!!unkan !aya bahasa AA akan berbentuk0

    2EIN { m%lai } { inp%t }($a-0R;{ p(os$s } *ika R 8= 9t$n t%lis0:Data sala :s$lain it% l,Lin+ka(an = PHI < R < R;{ o%tp%t } t%lis0l,Lin+ka(an;END; { s$l$sai }

    BAHASA PASCAL1.earahPA0AL

    8erupakan pen!emban!an dari bahasa A/

  • 7/21/2019 Diktatalgoritma.doc

    15/87

    1. erurutan

    usunan dari kode%kode dalam teks ascal harus ditulis secara urut dari atas$

    pernyataan%pernyataan yan! ditulis lebih a,al akan dieksekusi lebih dahulu.

  • 7/21/2019 Diktatalgoritma.doc

    16/87

    b. #eklarasi ariabel (5AR)

    c. #eklarasi konstanta ( C ) int$+$(; { D$kla(asi 'a(ia&$l >C -an s$&a+ai &ilan+an &%lat }2EIN { P(o+(am /tama %lai }> )= 9; { P$(inta m$m&$(ikan nilai 9 pa-a 'a(. > }C )= !; { P$(inta m$m&$(ikan nilai ! pa-a 'a(. C } )= > F C; { P$(inta m$n*%mlakan > -an C s$(ta m$n6impan asiln6a k$ }END. { Aki( P(o+(am /tama }

    Pada contoh ini nilai X dan tidak bisa sembarang, karena didefiniskan tertentu. !gar nilai X dan bisa

    bebas ditentukan, nilai X dan dibaca dari default input.

    p(o+(am A2AH,91; { $n*%mlalan -%a &%a &ilan+an 6an+ -i&aca -a(i -$5a%lt inp%t }'a( > C ) int$+$(; { D$kla(asi 'a(ia&$l >C -an s$&a+ai &ilan+an &%lat }2EIN { P(o+(am /tama %lai }($a-0>; { $m&aca nilai > l$Gat k$6&oa(- }

    ($a-0C; { $m&aca nilai C l$Gat k$6&oa(- } )= > F C; { $n*%mlakan > -an C s$(ta m$n6impan asiln6a k$ }G(it$0; { $n6a*ikan k$ la6a( monito( }END. { Aki( P(o+(am /tama }

    Dasar Bahasa PASCALUnsur'unsur Pemrograman

    a. 8endapatkan data den!an membaca data dari de"ault input (key board$ "ile atau

    sumber data lainnya).

    b. 8enyimpan data ke dalam memori den!an struktur data yan! sesuai$

    c. 8emproses data den!an instruksi yan! tepat.

    d. 8enyajikan atau men!irimkan hasil olahan data ke de"ault output (monitor$ "ile atau

    tujuan lainnya).

    #alam men!olah data diperlukan pen!elolaan instruksi terstruktur0

    a. eberapa instruksi dikelompokkan dalam satu blok atau model yan! men!erjakan

    22

  • 7/21/2019 Diktatalgoritma.doc

    17/87

    tu!as tertentu.

    b. eberapa perintah dilaksanakan den!an persyaratan tertentu.

    c. eberapa perintah dilaksanakan berulan! den!an jumlah pen!ulan!an tertentu.

    'denti"ier #i!unakan untuk nama0 ro!ram$ ub%pro!ram (procedure dan "unction)$

    nama0 5ariable$ onstant$ 7ype$ abel.

    ama%nama ini di!unakan untuk pemakaian dan peman!!ilan dalam pro!ram.

    Ketentuan penulisan identi"ier

    a. ama identi"ier harus dimulai den!an karakter huru" al"abet0 a sampai S$ A sampai O

    atau karakter +J+ (underscore % !aris ba,ah)

    b. Karakter berikutnya boleh karakter numerik (: .. N) atau kombinasi alphanumerik

    (huru"%numerik).c. anjan! nama$ pada berba!ai ersi ascal umumnya antara 32 % E3.

    d. 7idak boleh men!!unakan karakter istime,a0 ? % T F U V - W Q X Y . $ Z 0 ( ) [ \ L M ] ^ _

    ` C 9 + dan ontoh penulisan0

    enulisan yan! benar0 = J6R eta udutJAlpha luasin!karan

    enulisan yan! salah0 3# sisi%Kanan ^

    /enis identifier

    a. Identifier umum

    8erupakan identi"ier yan! dide"inisikan sendiri oleh pemro!ram. emro!ram

    mempunyai kebebasan untuk menentukan nama identi"iernya$ den!an syarat nama

    tersebut tidak sama den!an identi"ier standar dan resered ,ord yan! akan dibahas lebih

    lanjut. Hal ini untuk mence!ah kesalahan yan! bisa timbul akibat tumpan! tindih

    identi"ier dalam pro!ram.

    b. Identifier tandar !aku"8erupakan identi"ier yan! dide"inisikan oleh pembuat kompiler ascal. iasanya

    pembuat kompiler menyediakan suatu library yan! sudah ada didalam kompiler. ibrary

    berisi berba!ai procedure$ "un!si atau unit yan! sudah siap pakai. 8isalnya 7urbo

    ascal Dindo,s 1.G memiliki suatu unit untuk memproses output yaitu ,incrt$ !oto&y$

    yan! den!an mudah bisa dipakai oleh pro!rammer di dalam menuliskan kode%kode

    pro!ramnya. #inamai 'denti"ier tandar karena suatu kompiler tidak harus memilikinya$

    masin!%masin! kompiler dimun!kinkan mempunyai identi"ier yan! berbeda untuk suatu

    22

  • 7/21/2019 Diktatalgoritma.doc

    18/87

    tu!as yan! hampir sama. 8isalnya 7urbo ascal ersi #

  • 7/21/2019 Diktatalgoritma.doc

    19/87

    rentan! nilainya.

    tabel 1. 7ipe #ata ilan!an 'nte!er

    Tipe Data Ukuran Tempat Rentang ilai

    "yte $ byte % s&d '

    Shortint $ byte *+ s&d '$

    integer bytes *-+ s&d -

    /ord bytes % s&d -

    0ongint 1 bytes $11+-1+ s&d $11+-1

    ontoh bilan!an inte!er adalah0 34 E4G %N: : 1112 en!!olon!an tipe data inte!er

    tersebut dimaksudkan untuk membatasi alokasi memori yan! dibutuhkan misalkan

    untuk suatu perhitun!an dari suatu ariabel bilan!an diperkirakan nilai maksimumnya

    32PEP kita cukup mendeklarasikan ariabel bilan!an seba!ai inte!er (2 byte)$ daripada

    seba!ai lon!int(4 byte). #i dalam kompilernya$ ascal menyediakan konstanta untuk

    bilan!an 'nte!er yaitu0 8a&'nt and 8a&on!'nt$ pemro!ram bisa men!!unakannya di

    dalam pro!ramnya tanpa harus terlebih dahulu mende"inisikannya.

    %8a&'nt bernilai 32.PEP

    %8a&on!int bernilai 2.14P.43.E4P.

    contoh0

    P(o+(am -ispla6,ma

  • 7/21/2019 Diktatalgoritma.doc

    20/87

    *. 0har

    tipe data ini menyimpan karakter yan! diketikkan dari keyboard$ memiliki 2EE macam

    yan! terdapat dalam tabel A'' (American tandard ode "or 'n"ormation'nterchan!e). ontoh0 +a+ ++ +?+$ dsb. an! perlu diin!at bah,a dalam menuliskannya

    harus den!an memakai tanda kutip tun!!al. enis data ini memerlukan alokasi memori

    sebesar 1(satu) byte untuk masin!%masin! data.

    d. Tipe Data oolean

    merupakan tipe data lo!ika$ yan! berisi dua kemun!kinan nilai0 7RIB (benar) atau

    @AB (salah). 7urbo ascal "or Dindo,s memiliki ti!a macam jenis ini yaitu0

    oolean$ Dordool$ dan on!ool. 7ipe boolean memakai memori palin! kecil$sedan!kan Dordool dan on!ool dipakai untuk menulis pro!ram yan! sesuai den!an

    lin!kun!an Dindo,s.

    7abel 2. 7ipe #ata oolean

    Tipe Data Ukuran Tempat

    "oolean $ byte

    /ord"ool byte

    0ongbool - byte

    eba!ai bilan!an ordinal boolean true mempunyai nilai 1(satu)$ sedan!kan "alsenilainya adalah :(nol).

    ontoh0

    ro!ram displayJboolZ

    uses ,incrtZ

    be!in ,riteln(ord(true))Z

    ,riteln(ord("alse))Z

    end.

    Hasilnya0 1 : 3.2.

    Tipe Data Terstruktur

    tipe ini terdiri atas 0 array$ record$ set$ dan "ile. trin! adalah tipe data jenis array$ tetapi

    karena strin! memiliki kekhasan tersendiri seba!ai array dari karakter maka penulis

    22

  • 7/21/2019 Diktatalgoritma.doc

    21/87

    perlu memberikan penjelasan tersendiri. edan!kan untuk array$ record$ dan "ile perlu

    dijelaskan dalam bab yan! lain karena a!ak banyak hal%hal yan! perlu dibahas.

    a. Tipe Data tring tring

    )erupakan suatu data yan! menyimpan array (larik)$ seba!ai contoh +A#B@+

    merupakan sebuah konstanta strin! yan! berisikan E byte karakter. Ikuran 7empat

    untuk tipe data ini adalah 2 sFd 2GE byte$ den!an jumlah elemen 1 sFd 2GG. trin!

    dideklarasikan den!an strin! X konstanta Y atau strin!. ila ukuran strin! tidak

    dide"inisikan maka akan banyak memakan ruan!$ karena ukuran strin! menyesuaikan

    den!an de"aultnya. 8isalkan

    ar kata0 strin! X2:YZ atau ar kata0 strin!Z karena strin! merupakan array dari karakter.

    8aka kataX1Y merupakan karakter pertama dari strin!$ kemudian kataX2Y$ merupakan

    elemen kedua$ dst.

    ontoh0

    P(o+(am al,st(in+;/s$s Ginc(t;'a( s ) st(in+;&$+in s)=MH$lloM;G(it$ln0s;G(it$ln0Mpan*an+ -a(i st(in+ a-ala) Mo(-0s9Q;$n-.

    Karakter nol merupakan karakter yan! menyatakan panjan! strin!. ehin!!a ord(sX:Y)menyatakan panjan! dari strin! tersebut. anjan! strin! ju!a bisa dinyatakan seba!ai

    len!th(s).

    routines pada ascal untuk manipulasi strin! 0

    %en!th 0 men!hasilkan panjan! strin!.

    ynta& 0 len!th(s)

    ontoh 0 n0-len!th(s)Z

    8isal s0-+pemro!raman+Z n akan sama den!an 11.%opy 0 men!kopi suatu ekstrak karakter dari sebuah strin!.

    ynta& 0 copy(s$dari$banyaknya)

    ontoh 0 st0-copy(s$G$3)Z men!ekstrak 3 karakter dari s$ dimulai dari karakter kelima.

    8isal s0-+Dho are you +Z st adalah +are+.

    catatan0 bila indek lebih bear dari panjan! strin! maka hasilnya akan koson!0

    ontoh 0 st0-copy(s$1G$4)Z L koson!M jika banyaknya strin! yan! akan diekstrak lebih

    besar dari s$ maka hasilnya adalah ba!ian yan! tersisa dari strin!.

    22

  • 7/21/2019 Diktatalgoritma.doc

    22/87

    ontoh 0 st0-copy(s$N$1:)Z st hasilnya adalah +you +

    %os 0 men!hasilkan posisi dari suatu substrin! dari suatu strin!.

    ynta& 0 os(substr$s)

    ontoh 0 n0-pos(+are+$+Dho are you +)Z L n0-GZ M

    ika substrin! tidak ditemukan$ maka hasilnya :.

    %5al 0 men!konersi strin! ke numerik.

    ynta& 0 al(strar$numar$errorcode)

    strar adalah ariabel strin! yan! akan dikonersi$ numar ariabel numerik ( bisa

    inte!er atau real$ dan errorcode adalah ariabel inte!er yan! menyimpan error code

    (kode kesalahan). ika errorcode adalah :$ konersi berhasil. ebaliknya$ hal ini akan

    menunjukan posisi dimana pada strar yan! menyebabkan ke!a!alan.

    ontoh 0

    p(o+(am kon'$(sian+ka;%s$s Ginc(t;'a( s ) st(in+;$ ) int$+$(; ( ) ($al;&$+inG(it$0Mmas%kkan an+ka ) M;($a-ln0s;'al0s($;i5 $8?9 t$n G(it$ln0Msala pa-a posisi ) M$$ls$ G(it$ln0Mit% a-ala ) M()4)3;$n-.

    %tr 0 men!konersi numerik ke strin!.

    ynta& 0 str(numar$strar)

    ontoh 0p(o+(am kon'$(sian+ka,1;%s$s Ginc(t;'a( s ) st(in+;i ) int$+$(;&$+inG(it$0Mmas%kkan an+ka) M;($a-ln0i;st(0is;G(it$ln0Mit% a-ala) Ms;$n-.

    %oncat 0 8en!!abun!kan dua atau lebih strin!.

    ynta& 0 concat(s1$s2$...$sn)

    22

  • 7/21/2019 Diktatalgoritma.doc

    23/87

    ontoh 0 st0-concat(s1$s2)Z ikas1-+A+ dan s2-+#B@+$

    st akan menjadi +A#B@+ st0-concat(+orland +$+ascal +$+er. +$+P.:+)Z akan menjadi

    +orland ascal er. P.:+

    %'nsert 0 8enyisipkan suatu strin! ke dalam strin! yan! lain.

    ynta& 0 insert(asal$tar!et$indek)

    ontoh 0

    p(o+(am sisip ;%s$s Ginc(t;'a( s1 s! ) st(in+;&$+ins1)=Mti-ak M;

    s!)=Msa6a &$k$(*aM;ins$(t0s1s!O;G(it$ln0s!; {sa6a ti-ak &$k$(*a }$n-.

    ika hasilnya lebih dari 2GG maka akan terpoton! menjadi 2GG.

    %#elete 0 men!hapus n karakter dari strin! s bera,al dari indek i.

    ynta& 0 delete(s$i$n)Z

    ontoh 0

    p(o+(am ap%s;%s$s Ginc(t;

    'a( s ) st(in+;&$+ins)=Msa6a s$o(an+ insin6%(M;-$l$t$0sO3;G(it$ln0s; { Msa6a san+ insin6%(M}$n-.

    %@illchar 0 men!isi strin! s den!an karakter c sampai s sama den!an n%1 panjan!

    karakternya.

    ynta& 0 "illchar(s$n$c)Z Hati%hati 0 sX:Y akan tertumpuki$ jan!an lupa menambahkan

    sX:Y0-chr(n%1)Z untuk menormalkannnya.

    ontoh 0

    p(o+(am isika(akt$(;%s$s Ginc(t;'a( s ) st(in+;&$+in5illca(0s1M=M;s9Q)=c(09;$n-.

    b. Tipe Data et

    ebuah set merupakan suatu himpunan yan! berisi nilai (an!!ota). set merupakan 7ipe

    data yan! khusus untuk ascal. et dalam pemro!raman san!at mirip den!an himpunan

    dalam ilmu matematika$

    22

  • 7/21/2019 Diktatalgoritma.doc

    24/87

    contoh0 A - L 1$ 2$ 3$ 4$ G M

    ynta&0 set o" contoh0

    type #i!its - set o" :..NZ

    etters - set o" +A+..+O+Z

    type #ay - (un$ 8on$ 7ue$ Ded$ 7hu$ @ri$ at)Z

    haret - set o" harZ

    #i!its - set o" :..NZ

    #ays - set o" #ayZ

    const Ben#i!its0 #i!its - X:$ 2$ 4$ E$ YZ

    5o,els0 etters - X+A+$ +B+$ +'+$ +

  • 7/21/2019 Diktatalgoritma.doc

    25/87

    %!eneric(umum)0 merupakan pointer yan! tidak menunjuk pada tipe data tertentu pada

    ariable.

    ontoh deklarasi pointer0

    'a( p ) int$+$(;

    ontoh di atas merupakan deklarasi ariabel p seba!ai pointer dari inte!er. #en!an

    menambahkan tanda caret ([) di depan nama tipe data ariabel yan! dideklarasikan0

    contoh 0

    p(o+(am conto,point$(1;%s$s Ginc(t;'a( p ) int$+$(;m n ) int$+$(;

    &$+inm)=19;n)=1;p)=m; { p s$ka(an+ m$n%n*%k k$ m }p)=1!; { al ini sama -$n+an m)=1!; }p)=n; { p s$ka(an+ m$n%n*%k k$ n }p=m; { { al ini sama -$n+an n)=m; }G(it$ln0Mm = MmM n = Mn; { m = 1! n = 1! }$n-.

    Ketika p menunjuk ke m ( p0-\mZ)$ men!akses p[ sama den!an men!akses m. #alam

    membuat pro!ram$ dalam pen!!unaan pointer kita memerlukan alokasi memori

    tertentu0 Ketika kita mendeklarasikan ariabel pointer dalam 9ar9 sehin!!a merupakan

    suatu static ariable$ yan! mana tatic ariable ini dibatasi oleh kapasitas E4K untuk

    tiap module. an! berarti dalam pro!ram utama kita hanya bisa men!!unakan hanya

    E4K dan tiap unit ascal hanya bisa memakai E4K. ehin!!a kita perlu memecahkan

    pro!ram kebeberapa unit. alah satu teknik yan! dipakai untuk men!atasi persoalan ini

    adalah seperti pro!ram berikut.

    P(o+(am conto,point$(!;%s$s Ginc(t;6p$ P$mplo6$$ = $mplo6$$;$mplo6$$ = ($co(- Nam$ ) st(in+19Q;

    Position ) ca(;Sala(6 ) lon+int;

    $n-;'a( p ) p$mplo6$$;&$+inn$G0p;p.nam$)=MSa--amM;p.position)=MSM;p.sala(6)=3999;G(it$ln0p.nam$M Mp.positionM Mp.sala(6;-ispos$0p;$n-.

    ada blok be!in...end blok$ kita bisa melihat meskipun p tidak menunjuk pada suatu

    ariable tetapi dapat diisi den!an nilai. ernyataan ne,(p)Z tidak memerlukan alokasi

    22

  • 7/21/2019 Diktatalgoritma.doc

    26/87

    memori. etelah itu kita bisa melakukan apapun pada ariabel tersebut sampai kita

    membuan!nya dari memori den!an memakai perintah dispose(p)Z. 5ariable den!an cara

    ini dinamakan den!an dynamic ariable.

    Generi* Pointeradalah pointer tanpa tipe data tertentu. iasanya$ pointer berkaitan

    den!an tipe data khusus$ sedan!kan !eneric pointer tidak.

    #eklarasi0

    a( P ) point$(;

    #iper!unakan seba!ai bu""er sementara (tidak permanen). ehin!!a kita bisa

    melepasnya untuk suatu saat tidak diperlukan. Intuk itu pointer san!at ba!us karena

    si"atnya yan! dinamis. 7etapi$ !eneric pointer tidak sama den!an typed pointer. 7yped

    pointer men!!unakan 5ne&5 untuk menampun! memori dan 5dispose5untukmelepasnya. /eneric pointer men!!unakan 5getmem5untuk mendapatkan memori

    dan 5freemem5 untuk melepasnya. ada pointer den!an tipe tertentu$ pro!ram ascal

    men!etahui ukuran dari memori yan! harus dilaokasikan$ sedan!kan tipe umum

    (!eneric pointer) ascal tidak bisa$ karena ascal tidak men!etahui ariabel apa yan!

    akan dipakai. ehin!!a den!an !etmem kita perlu untuk menentukan berapa besar

    memori yan! akan kita alokasikan. Ikuran terbesar adalah EGG32 bytes (hampir E4K).

    P(o+(am conto,point$(!;%s$s Ginc(t;a( P ) point$(;2$+in$tm$m0pT1U!; { R$s$('$ T1U! &6t$s }{ @$ %s$ it t$n }5($$m$m0pT1U!; { R$l$as$ it T1U! &6t$s }$n-.

    !" Operator

    eberapa operator yan! disediakan oleh AA01. Aritmatika2. oolean3. Relasional

    4. et7abel 2.

  • 7/21/2019 Diktatalgoritma.doc

    27/87

    N % 2 (hasil0 P)N T 2 (hasil0 1) N F 2 (hasil0 4.G)N di 2 (hasil0 4)N mod 2 (hasil0 1)

    7abel 3. !0S= 5;

  • 7/21/2019 Diktatalgoritma.doc

    28/87

    ? Sama dengan Set, set boolean

    @A 5idak sama dengan Set, set boolean

    @? 0ebih kecil atau ? Set, set boolean

    A? 0ebih besar atau ? Set, set boolean

    8isal A dan adalah merupakan dua buah set. A - 0 mempunyai hasil 7rue jika A dan

    memiliki an!!ota%an!!ota yan! sama.

    ontoh0 Xun$ 7ue$ @riY - X7ue$ @ri$ unY.

    A WQ 0 mempunyai hasil 7rue jika A dan memiliki an!!ota%an!!ota yan! tidak sama.

    A W- 0 menunjukkan bah,a A adalah subset dari .

    ontoh0 ika A berisi Xun$ 8on$ 7ueY dan berisi Xun$ 8on$ 7ue$ Ded$ 7huY$ maka A

    adalah merupakan subset dari dan ekspresi men!hasilkan nilai 7rue.

    A Q- 0 menunjukkan bah,a A adalah superset dari .

    ontoh0 ika A berisi Xun..atY dan berisi X8on..@riY$ maka A adalah merupakan

    superset dari dan ekspresi men!hasilkan nilai 7rue. b. 6perasi Logika pada et

    Ada ti!a operasi lo!ika pada set.

    7abel G.

  • 7/21/2019 Diktatalgoritma.doc

    29/87

    D 3 ( y ' E ) D 3 8 ( y ' E )

    D b * 1ac D b 8 b * 18a8c

    ontoh0 ila dideklarasikan ar i$ j0 inte!erZ maka$ i ? j adalah ekspresi aritmatik

    (men!hasilkan suatu bilan!an inte!er) i W j adalah ekspresi boolean (men!hasilkan

    lo!ika 7RIB atau @AB)

    E. @un!si 8atematik tandar dalam AA

    7abel E. eberapa "un!si matematik standar yan! disediakan oleh AA

    Fama >ungsi Beskripsi 5ipe !rgumen 5ipe 6asil 4perasi

    abs absolute value real&integer real&integer

    arctan arctan (radian) ;eal&integer real

    cos cosine (radian) real&integer real

    sin sin (radian) real&integer real

    e3p fungsi Perpangkatan e real&integer real

    ln ln real&integer realround Pembulatan terdekat real integer

    sGr kuadrat real&integer real&integer

    sGrt !kar kuadrat real&integer real

    trunc Pembulatan ke bawah real&integer integer

    ontoh 0Abs(%11) (hasil0 11)Round(1:.E) (hasil0 11)7runc(1:.E) (hasil0 1:)*rt(4) (hasil0 2)*r(4) (hasil0 1E)

    Intuk "un!si tri!onometri0& - sin phi menjadi &0-sin (3.141E)Z

    P$RITAH IPUT % OUTPUT

    1. Assignment

    Komputer bisa men!olah dan menampilkan sesuatu yan! ada di dalam memori.

    8erupakan cara tersederhana untuk 9menempatkan9 (assi!n) data ke memori.

    ontoh0

    p(o+(am l%as,P$(s$+iPan*an,99; {P(o+(am %nt%k m$n+it%n+ l%as &an+%n $mpat p$(s$+ipan*an+} %s$s Ginc(t;'a( pan*an+PSP l$&a(PSP l%asPSP ) int$+$(;{$n-$kla(asikan 'a(ia&l$ pan*an+ l$&a( -an l%as p$(s$+i pan*an+ s$&a+ai int$+$(}2EIN {P(o+(am /LAI}pan*an+PSP )= !;l$&a(PSP )= !9;l%asPSP )= pan*an+PSP V l$&a(PSP;END. {P(o+(am SELESAI}

    $. Perintah Input !read atau readln"

    erintah di!unakan untuk membaca data dari de"ault input % keyboard.SCNA> ($a-0

  • 7/21/2019 Diktatalgoritma.doc

    30/87

    p(o+(am l%as,P$(s$+iPan*an+,99;{ P(o+(am %nt%k m$n+it%n+ l%as &an+%n $mpat p$(s$+i pan*an+. }%s$s Ginc(t;'a( pan*an+PSP l$&a(PSP l%asPSP )int$+$(;{ $n-$kla(asikan 'a(ia&l$ pan*an+ l$&a( -an l%as p$(s$+i pan*an+ s$&a+ai int$+$(. }2EIN { P(o+(am /LAI }{$m&aca -a(i -ata pan*an+ -an l$&a( p$(s$+i pan*an+ -$5a%lt inp%t %nit -an -$5a%lt5o(mat tanpa +anti &a(is}($a-0pan*an+PSP;($a-ln0l$&a(PSP;0p$n+isian 'a(ia&$l p$(tama -an k$-%a -ipisakan -$n+an spasil%asPSP)=pan*an+PSPVl$&a(PSP;{$n+it%n+ l%as p$(s$+i pan*an+}END. { P(o+(am SELESAI }

    erintah read atau readln dapat di!unakan untuk membaca data lebih dari satu sekali!us

    den!an berba!ai "ormat.

    ontoh0p(o+(am &acaJamp%(an; { $m&aca -ata s$kali+%s m$n++%nakan p$(inta ($a- }%s$s Ginc(t;'a( nimHS ) ca(act$(;%m%(HS ) int$+$(;stat%sHS) &ool$an;2EIN($a-ln0nimHS%m%(HSstat%sHS;{s$t$la m$n+isi s$m%a 'a(ia&$l a(%s -iik%ti -$n+an Ent$(}END.

    ,. Perintah 6utput !&rite atau &riteln "

    erintah di!unakan untuk menyajikan data ke de"ault output % key%board.

    SCNA> @(it$0

  • 7/21/2019 Diktatalgoritma.doc

    31/87

    ontoh perintah penyajian ,riteln(+uas - +$ luas)Z bisa dikerjakan den!an perintah0

    ,riteln(+uas - +$ panjan! T lebar)Z

    -. 7ormat Pen+aian Data

    a. 7ormat Pen+aian Tipe Data Integer dan tring

    erintah di!unakan untuk menyajikan data ke unit de"ault output % monitor den!an user%

    de"ined "ormat.

    SCNA> @(it$0A)n; ata% G(it$ln02)n;

    A$ - ekspresi yan! akan disajikan nilainya n - maksimum tempat yan! disediakan$ n

    harus lebih besar dari banyak karakter atau di!it yan! terkandun! di dalam A. ajian

    "ormat ini men!atur tampilan rata kanan (ri!ht justi"ied) ontoh0 ila adalah bilan!an

    bulat bernilai G$ maka0

    erintah0 #itampilkan di monitor0G(it$ln0N);, , , , G(it$ln0NV19);, , , ,9G(it$ln0NV199);, , ,,99

    b. 7ormat Pen+aian Tipe Data %eal

    erintah di!unakan untuk menyajikan data ke unit de"ault output % monitor den!an user%

    de"ined "ormat.

    SCNA> @(it$0R)n)-; ata% G(it$ln0E;

    R$ B - ekspresi yan! akan disajikan nilainya n - maksimum tempat yan! disediakan

    untuk an!ka termasuk tanda titik seba!ai tanda pemisah desimal. d - maksimum tempat

    yan! disediakan untuk an!ka desimal. ajian "ormat ini men!atur tampilan rata kanan

    (ri!ht justi"ied)

    ontoh0 ila R - 123.4G dan - 12.3GG$ maka0

    erintah0 #itampilkan di monitor0,riteln(R0E02)Z 123.4G

    ,riteln(0E02)Z 12.3G

    ilan!an den!an tipe real bila ditampilkan men!!unakan de"ault "ormat akan disajikan

    men!!unakan "ormat "loatin! point. Intuk contoh nilai R dan di atas$ de"ault "ormat

    sajiannya adalah0 R 1.234GB2 1.23GGB1

    *. Perintah untuk men+aikan tampilan ke printer

    SCNA> @(it$0LSA2J ; ata% G(it$ln0LSWPK;

    22

  • 7/21/2019 Diktatalgoritma.doc

    32/87

    d. Penempatan Kursor La+ar

    8onitor komputer umumnya diba!i dalam : kolom dan 2G baris den!an kolom ke 1

    dan baris ke 1 terletak di pojok kiri atas. #alam lin!kun!an pemro!raman yan!

    beorientasi teks$ pen!aturan interaksi pen!!una den!an komputer men!!unakan

    tampilan%tampilan teks yan! posisinya diatur dalam komposisi baris dan kolom.

    SCNA> oto>C0>C;

    = menyatakan kolom dan menyatakan baris. Intuk AA ersi tertentu$ masih

    dilen!kapi den!an perintah pen!hapusan seluruh layar dan pen!hapusan dari posisi

    kursor hin!!a akhir baris.

    SCNA> Jl(Sc(; -an JL(EWL;

    ontoh0p(o+(am contoWW,>C; { Jonto p$n++%naan p$(inta +oto>C %nt%k p$n+at%(an tampilan. }%s$s GinJR;'a( pan*an+PSP l$&a(PSP l%asPSP k$lilin+PSP) ($al;2EINcl(Sc(; { $m&$(sikan tampilan k$s$l%(%an la6a( }{$m&%at tampilan %nt%k m$minta mas%kan -ata m%lai kolom k$ ! &a(is k$ 19 la6a(}+oto>C0!19; G(it$0Mas%kkan -ata p$(s$+i pan*an+ ) M;

    +oto>C0!11; G(it$0MPan*an+ = M; ($a-0pan*an+PSP;+oto>C0!1!; G(it$0ML$&a( = M; ($a-0l$&a(PSP; {$lak%kan op$(asi mat$matika}k$lilin+PSP )= ! V 0pan*an+PSP F l$&a(PSP;l%asPSP )= pan*an+PSP V l$&a(PSP;{ $m&%at tampilan %nt%k o%tp%t m%lai kolom k$ ! &a(is k$ 14 la6a(. }+oto>C0!14; G(it$0MK$l$lin+ = M k$lilin+PSP)T)!;+oto>C0!1; G(it$0ML%as = M l%asPSP)T)!;END.

    22

  • 7/21/2019 Diktatalgoritma.doc

    33/87

    STRU&TUR &OTROL PROGRAM

    1. truktur Pengulangan

    ecara alamiah$ suatu proses bisa berupa proses berurutan dari a,al hin!!a selesai$

    pilihan berdasarkan kondisi tertentu atau pen!ulan!an bedasarkan batasan tertentu pula.

    AA menyediakan beberapa konstruksi perintah untuk melakukan proses%proses

    itu$ yaitu0

    1. Xo( ... to ... -o!. @il$ ... -o3. R$p$at ... %ntil4. +oto

    eberapa kemun!kinan proses pen!ulan!an adalah jumlah pen!ulan!an sudah tertentu

    atau ditentukan dalam pro!ram atau jumlah pen!ulan!an tidak tentu ter!antun! banyak

    data yan! harus diproses atau ken!inan pemakai.

    a. truktur 76% 8 K69DII : D6

    #i!unakan bila jumlah pen!ulan!an sudah diketahui atau sudah tertentu.5o( 'a(ia&$l)= 8aGal? to 8aki(? -o&$+in))p$(n6ataan)

    )$n-;

    Keteran!an05ariabel 0 merupakan nama ariabel yan! di!unakan seba!ai kendali pen!ulan!an$Wa,alQ 0 menyatakan kondisi a,al nilai ariabel kendali pen!ulan!an$WakhirQ 0 menyatakan kondisi akhir nilai ariabel kendali pen!ulan!an$WperintahQ0 merupakan instruksi(%instruksi) yan! perlu dilakukan.

    ontoh0 8isalkan i adalah suatu ariabel dalam inte!erXo( i)=1 to -o&$+inG(it$ln0ma(i m$m&%at p(o+(amB;$n-;

    Akan 8en!hasilkan 0

    mari membuat pro!rammari membuat pro!rammari membuat pro!rammari membuat pro!rammari membuat pro!ram

    sebanyak lima baris$ kemudian berhenti. Apabila kita akan melakukan pen!ulan!ansecara cacah mundur kita bisa memakai kata kunci do,nto

    7A= "or ariabel0- Wa,alQ do,nto WakhirQ do&$+in

    22

  • 7/21/2019 Diktatalgoritma.doc

    34/87

    ))p$(inta;))$n-;

    ontoh0 8isalkan i adalah suatu ariabel dalam inte!erXo( i)= -oGnto 1 -o&$+inG(it$ln0ma(i m$m&%at p(o+(amB;$n-;

    Akan 8en!hasilkan 0

    mari membuat pro!rammari membuat pro!rammari membuat pro!rammari membuat pro!rammari membuat pro!ram

    ontoh0

    etiap akhir min!!u 8elly$ seoran! mahasis,a yan! mendapatkan kiriman biaya hidup

    bulanan den!an jumlah a!ak pas%pasan$ selalu mencatat pen!eluarannya per%min!!u di

    luar se,a kamar selama satu bulan. #i akhir bulan ia men!hitun! total pen!eluarannya

    selama sebulan dan men!hitun! rerata pen!eluarannya per min!!u selama bulan itu.

    ila sebulan dian!!ap 4 min!!u$ buat pro!ram komputer untuk men!hitun!

    pen!eluaran 7ertib seperti itu.

    Hinggu ke

    Pengeluaran (;p.)

    $

    $%.%%%

    $.%%%

    -

    $.%%%1

    $+%.%%%

    enyelesaian0

    1. Rumus penyelesaian0

    rerata

  • 7/21/2019 Diktatalgoritma.doc

    35/87

    2.G rerata

  • 7/21/2019 Diktatalgoritma.doc

    36/87

    sedan!kan sinta&%nya adalah seba!ai berikut07A=Gil$ 8$ksp($si &ool$an? -o&$+in)

    )p$(inta;))$n-;

    ontoh a. (modi"ikasi untuk contoh "or... do)0p(o+(am it%n+,($(ataWH2;%s$s GinJR;'a( on+kosHP *%mlaWH2 ($(ataWH ) ($al;i m ) int$+$(;&$+in*%mlaWH2 )= 9.9;m )= 4;i)=1;Gil$ i8= m -o {$ksp($si &ool$an 6an+ akan -ilaksanakan apa&ila i84 sampai i=4}&$+inG(it$0MData min++% k$ ) M iM ) M; ($a-ln0on+kosHP;*%mlaWH2 )= *%mlaWH2 F on+kosHP;i)=iF1; { kont(ol -a(i loop}$n-;($(ataWH )= *%mlaWH2"m;G(it$ln0Motal on+kos i-%p p$( &%lan = Rp M*%mlaWH2)#)!;G(it$ln0MR$(ata on+kos i-%p p$( min++% =Rp M($(ataWH)#)!;$n-.

    ontoh b.p(o+(am @HILE,DEW ;%s$s Ginc(t;const PI = 3.14;'a( >L X($%$nc6 In-%ctanc$ ) ($al;

    &$+inIn-%ctanc$ )= 1.9;X($%$nc6 )= 199.99;Gil$ X($%$nc6 8 1999.99 -o&$+in>L )= ! V PI V X($%$nc6 V In-%ctanc$;G(it$ln0M>L at MX($%$nc6M $(t = M >L;X($%$nc6 )= X($%$nc6 F 199.99$n-$n-.

    *. truktur %

  • 7/21/2019 Diktatalgoritma.doc

    37/87

    sedan!kan sinta&%nya adalah seba!ai berikut0($p$at))p$(inta;))%ntil 8$ksp($si &ool$an?;

    dalam hal ini$ kita tidak perlu men!!unakan be!in...end karena pernyataan di antararepeat...until diperlakukan oleh AA seba!ai sebuah blok.

    contoh0p(o+(am REPEA,/NIL,DEW ;%s$s Ginc(t;const PI = 3.14;'a( >L X($%$nc6 In-%ctanc$ ) ($al ;&$+inIn-%ctanc$ )= 1.9;X($%$nc6 )= 199.99;R$p$at>L )= ! V PI V X($%$nc6 V In-%ctanc$;G(it$ln0M>L at MX($%$nc6M $(t = M >L ;X($%$nc6 )= X($%$nc6 F 199.99 ;%ntil X($%$nc6 = 1999.99 ;$n-.

    -. Label dan Gotoernyataan !oto mentrans"er pro!ram ke lokasi lain yan! dinyatakan den!an label$

    dimana WlabelQ merupakan tipe inte!er den!n maksimum 4 di!it. abel ju!a harus

    dideklarasikan seperti ariabel lainnya.

    enulisan /oto0

    +oto 8la&$l?

    ontoh !oto0!oto 1::Z

    enulisan abel 0

    22

  • 7/21/2019 Diktatalgoritma.doc

    38/87

    la&$l 8-a5ta( la&$l?

    ontoh deklarasi abel0 label 1::$ 2::$ 3::Zpenulisan pemakaian abel0 7A= W label Q0

    ontoh01::0ontoh.p(o+(am &is$ction; {p(o+(am m$nca(i aka( p$(samaan m$to-$ s$t$n+a int$('al}%s$s Ginc(t;'a( $

  • 7/21/2019 Diktatalgoritma.doc

    39/87

    $ls$&$+in))$n-;

    ontohp(o+(am IX,ELSE,DEW;%s$s Ginc(t;'a( an+ka t$&akan ) int$+$(;&$+inn%m&$( )= !;G(it$ln0M$&ak an+ka anta(a 1 -an 19M;($a-ln0t$&akan;i5 an+ka = t$&akan t$nG(it$ln0M$&akan an-a &$na( S$lamatM$ls$G(it$ln0Maa5 $&akan an-a sala.M$n-.

    b. 9ested I7 !I7 tersarang"

    ernyataan '@ dapat dimasukkan kedalam pernyataan '@ yan! lain $ den!an syarat kitatidak melupakan blok be!in...end untuk membatasinya.

    i5 8Eksp($si 2ool$an? t$n&$+in)i5 8Eksp($si 2ool$an? t$n&$+in))$n-)$n-$ls$

    ontohP(o+(am IX,ELSE,DEW,!;%s$s Ginc(t;'a( A 2 J ) int$+$(;&$+inG(it$ln0Mas%kkan ti+a an+ka -$n+an spasiM;($a-ln0 A 2 J ;i5 A ?= 2 t$n&$+ini5 A ?= J t$n G(it$ln0 AM a-ala t$(&$sa(M$ls$ G(it$ln0 JM a-ala t$(&$sa(M$n-$ls$i5 2 ?= J t$n G(it$ln0 2M a-ala t$(&$sa(M$ls$ G(it$ln0 JM a-ala t$(&$sa(M

    $n-.

    *. Kombinasi dari

  • 7/21/2019 Diktatalgoritma.doc

    40/87

    ))$n-

    contoh0p(o+(am i5,an-;

    %s$s Ginc(t;'a( i * ) int$+$(;&$+inG(it$0Mas%kkan nilai i = M; ($a-ln0i;G(it$ 0Mas%kkan nilai * = M; ($a-ln 0*;i5 0i?3 an- 0*?4 t$n&$+inG(it$ln0MHal ini t$(*a-i *ika i?3 -an *?4M;$n-;$n-.

    *.$. Pern+ataan 6%

    ernyataan

  • 7/21/2019 Diktatalgoritma.doc

    41/87

    )p$(inta;)$n-

    atau

    JASE 'a(ia&l$ WX)p$(inta;)$ls$p$(inta;$n-

    ontoh a.i5 op$(ato( = MVM t$n ($s%lt )= n%m&$(1 V n%m&$(!$ls$ i5 op$(ato( = M"M t$n ($s%lt )= n%m&$(1 " n%m&$(!$ls$ i5 op$(ato( = MFM t$n ($s%lt )= n%m&$(1 F n%m&$(!$ls$ i5 op$(ato( = MM & ($s%lt )= n%m&$(1 n%m&$(!$ls$ in'ali-,op$(ato( = 1;

    di!antikan den!an AB 0

    cas$ op$(ato( o5MVM ) ($s%lt)= n%m&$(1 V n%m&$(!;M"M ) ($s%lt)= n%m&$(1 " n%m&$(!;MFM ) ($s%lt)= n%m&$(1 F n%m&$(!;MM ) ($s%lt)= n%m&$(1 n%m&$(!;$ls$ in'ali-,op$(ato( )= 1$n-;

    ontoh b./anti pro!ram diba,ah ini den!an pernyataan '@ BB den!an ABp(o+(am SARAN;

    %s$s Ginc(t;'a( in'ali-,op$(ato( ) &ool$an;op$(ato( ) ca(;n%m&$(1 n%m&$(! ($s%lt ) ($al;&$+inin'ali-,op$(ato( )= XALSE;G(it$ln0MEnt$( tGo n%m&$(s an- an op$(ato( in t$ 5o(matM;G(it$ln0M n%m&$(1 op$(ato( n%m&$(!M;($a-ln0n%m&$(1; ($a-ln0op$(ato(; ($a-ln0n%m&$(!;i5 op$(ato( = MVM t$n ($s%lt )= n%m&$(1 V n%m&$(!$ls$ i5 op$(ato( = M"M t$n ($s%lt )= n%m&$(1 " n%m&$(!$ls$ i5 op$(ato( = MFM t$n ($s%lt )= n%m&$(1 F n%m&$(!$ls$ i5 op$(ato( = MM t$n ($s%lt )= n%m&$(1 n%m&$(!$ls$ in'ali-,op$(ato( )= R/E;i5 in'ali-,op$(ato( t$nG(it$ln0MIn'ali- op$(ato(M

    $ls$G(it$ln0n%m&$(1)4)!M Mop$(ato(M Mn%m&$(!)4)!M is M ($s%lt))!$n-.

    a,ab0p(o+(am PRW,@ELE ;'a( in'ali-,op$(ato( ) &ool$an;op$(ato( ) ca(;n%m&$(1 n%m&$(! ($s%lt ) ($al;&$+inin'ali-,op$(ato( )= XALSE;G(it$ln0MEnt$( tGo n%m&$(s an- an op$(ato( in t$ 5o(matM;G(it$ln0M n%m&$(1 op$(ato( n%m&$(!M;($a-ln0n%m&$(1; ($a-ln0op$(ato(; ($a-ln0n%m&$(!;cas$ op$(ato( o5

    MVM) ($s%lt )= n%m&$(1 V n%m&$(!;

    22

  • 7/21/2019 Diktatalgoritma.doc

    42/87

    M"M) ($s%lt )= n%m&$(1 " n%m&$(!;MFM) ($s%lt )= n%m&$(1 F n%m&$(!;MM) ($s%lt )= n%m&$(1 n%m&$(!;$ls$ in'ali-,op$(ato( )= R/E$n-;i5 in'ali-,op$(ato( t$nG(it$ln0MIn'ali- op$(ato(M$ls$G(it$ln0n%m&$(1)4)!M Mop$(ato(M Mn%m&$(!)4)!M is M ($s%lt))!$n-.

    SUB PROGRAM

    1. Pemrograman )odular

    8odular pro!rammin! adalah merupakan suatu teknik untuk menulis pro!ram yan!berukuran besar. ro!ram diba!i menjadi beberapa ba!ian kecil. 7iap ba!ian disebut

    module$ yan! melakukan suatu tu!as tertentu.

    ontoh 0

    8enampilkan menu pilihan

    8en!hitun! nilai rata%rata

    8ensortir data

    ascal men!enal module seba!ai0

    1. R

  • 7/21/2019 Diktatalgoritma.doc

    43/87

    PRWJED/RE NAA;&$+in)p$(n6ataan)$n-;

    ontoh a.PRWJED/RE DISPLAC,EN/;&$+inG(it$ln0MPilian $n%M;G(it$ln0M 1) E-it 5il$ t$ksM;G(it$ln0M !) &%ka 5il$ t$ks M;G(it$ln0M 3) Simpan 5il$ t$ks;G(it$ln0M 4) Kopi 5il$ t$ksB;G(it$ln0M ) J$tak 5il$ t$ksB

    $n-;

    contoh berikut adalah pro!ram untuk menampilkan menu0ontoh b.p(o+(am PRWJ1 ;%s$s Ginc(t;PRWJED/RE DISPLAC,EN/;&$+inG(it$ln0MPilian $n%M;G(it$ln0M 1) E-it 5il$ t$ksM;G(it$ln0M !) &%ka 5il$ t$ks M;G(it$ln0M 3) Simpan 5il$ t$ks;G(it$ln0M 4) Kopi 5il$ t$ksB;G(it$ln0M ) J$tak 5il$ t$ksB$n-;

    $n-;&$+inG(it$ln0Mm$man++il p(os$-%(M;DISPLAC,EN/;G(it$ln0Mk$m&ali -a(i p(os$-%(M$n-.

    ontoh c.p(o+(am SIPLE,PRWJED/RE;%s$s Ginc(t;'a( Gakt% *a(ak k$c$patan ) ($al;p(oc$-%($ tampilan,*%-%l;&$+inG(it$ln0M$n+it%n+ *a(ak t$mp% &$(-asa( pa-aM;G(it$ln0M-%a 'a(ia&$l 6ait%) k$c$patan -an Gakt%M;$n-;

    p(oc$-%($ mas%kkan,-ata;&$+inG(it$0Mas%kkan k$c$patan -alam km"*am) M;($a-ln0k$c$patan;G(it$0Mas%kkan Gakt% -alam *am ) ;($a-ln0tim$$n-;p(oc$-%($ it%n+,*a(ak;&$+in*a(ak)= k$c$patan VGakt%$n-;p(oc$-%($ tampilkan,asil;&$+inG(it$ln0M*a(ak 6an+ -it$mp% a-ala M*a(ak))!M km.M$n-;&$+in {p(o+(am %tama}

    tampilan,*%-%l;

    22

  • 7/21/2019 Diktatalgoritma.doc

    44/87

    mas%kkan,-ata;it%n+,*a(ak;tampilkan,asil$n-.

  • 7/21/2019 Diktatalgoritma.doc

    45/87

    a. 4ariabel Global

    5ariabel !lobal adalah ariabel yan! dide"inisikanFterletak pada pro!ram utama$ dimana

    semua sub%pro!ram bisa men!akses$ memper!unakan dan memodi"ikasinya. #ari

    !ambar berikut $ ariabel A$ $ dan dapat diakses oleh procedure # maupun B

    b. 4ariabel Lokal

    uatu procedure dapat mendeklarasikan ariabelnya sendiri. 5ariabel%ariabel itu hanya

    bekerja pada procedure dimana mereka dideklarasikan. 5ariabel%ariabel tersebut

    dinamakan ariabel local (local ariable) .

    22

  • 7/21/2019 Diktatalgoritma.doc

    46/87

    Keteran!an !ambar0

    emua bisa men!akses ariabel !lobal A$ @$ /.

    ada procedure al"a de"inisi !lobal ariabel A di!anti den!an ariabel lokal.

    betaJ1 dan betaJ2 dapat men!akses betama& dan betako.

    betaJ1 tidak dapat men!akses ariabel boboho$ dan betaJ2 tidak dapat men!akses

    bobo.

    7dak ada subpro!ram$ kecuali al"a dapat men!akses dan .

    rocedure beta dapat men!akses al"a dan beta.

    ontoh0

    p(o+(am LWKAL,ARIA2EL;%s$s Ginc(t;'a( nomo(1 nomo(! ) int$+$(;{ini &isa -ipan++il -a(i manamana LW2AL AR}p(oc$-%($ tam&a;'a( asil)int$+$(;{asil m$(%pakan milik p(oc$-%($ tam&a LWJAL AR}&$+inasil )= nomo(1 F nomo(!;G(it$ln0asil a-alaM asil$n-;&$+in {p(o+(am %tama}G(it$ln0as%kkan -%a an+ka &%lat -$n+an spasiB;($a-ln0nomo(1 nomo(!;tam&a$n-.

    *. Penggunaan 7or&ard

    #ari hal di atas kita tahu bah,a suatu subpro!ram dapat diakses oleh subpro!ram

    apabila sudah dide"inisikan terlebih dahulu.

    7etapi ada pen!ecualian$ untuk men!atasi masalah chicken%and%the%e!!$ bila kita

    memiliki duaFlebih subpro!ram masin!% masin! bisa meman!!il yan! lain den!an

    22

  • 7/21/2019 Diktatalgoritma.doc

    47/87

    re"erensi "or,ard.

    Hal ini berlaku ju!a untuk @I7'

  • 7/21/2019 Diktatalgoritma.doc

    48/87

    5ariabel yan! dipan!!il diletakkan didalam tanda kurun! tersebut.

    5ariabel ditulis dalam tin!kat yan! sama seperti dalam prosedur terkait.

    ontoh.

    erhatikan contoh pro!ram berikut$

    p(o+(am 7/LAH;%s$s Ginc(t;'a( nomo(1 nomo(! ) int$+$(;p(oc$-%($ JALJ,ANS@ER 0 k$sat% k$-%a ) int$+$( ;'a( asil ) int$+$(;&$+inasil )= k$sat% F k$-%a;G(it$ln0Masil a-ala M asil $n-;&$+inG(it$ln0Mmas%kkan -%a an+ka -alam spasiM;($a-ln0 nomo(1 nomo(! ;JALJ,ANS@ER0 nomo(1 nomo(!$n-.

    -. Pro*edure >ang )emakai Parameterp(o+(am $stNilai;%s$s Ginc(t;'a(

  • 7/21/2019 Diktatalgoritma.doc

    49/87

    erhatikan contoh berikut0

    p(o+(am Pa(am$t$(,Nilai;%s$s Ginc(t;'a( < ) &6t$;p(oc$-%($ 5oo0a ) &6t$;&$+inG(it$ln0a; {1}a)=19;G(it$ln0a; {19}$n-;&$+in

  • 7/21/2019 Diktatalgoritma.doc

    50/87

    19

    19

    ?. 7un*tion @ uatu Pro*edure Khusus >ang )enghasilkan 9ilai

    rocedure memakai data atau ariabel ketika dieksekusi. @unction ("un!si) ju!a

    memakai data$ tetapi mempunyai kemampuan untuk men!hasilkan nilai pada procedure

    atau pro!ram yan! meman!!ilnya. @unction di!unakan untuk melakukan operasi

    matematika seperti perhitun!an "aktorial.

    uatu "unction 0

    #imulai den!an kata kunci "unction

    trukturnya sama den!an sebuah procedure

    #idalam "un!si$ suatu nilai dihasilkan den!an nama "unction

    uatu "unction dipakai pada sisi sebelah kanan pada suatu ekspresi

    Hanya men!hasilkan tipe data sederhana

    7A=

    5%nction Nama 0-$kla(asi 'a(ia&$l)tip$,-ata,asil;&$+in)p$(n6ataan)$n-;

    contoh05%nction ADD,@W 0 nilai1 nilai! ) int$+$( ) int$+$(;&$+inADD,@W )= nilai1 F nilai!$n-;

    contoh berikut men!!ambarkan ba!aimana meman!!il "unction$($s%lt )= ADD,@W0 19 !9 ;

    maka$ ketika A##J7D< dieksekusi$ dia men!hitun! nilai yan! terdapat di dalamnya(dalam hal ini 3:)$ yaitu hasil akhirnya.ontohp(o+(am JWNWH,X/NSI;%s$s Ginc(t;'a( an+ka *aGa&an ) int$+$(;

    5%nction K/2IK0 < ) int$+$( ) int$+$(;&$+inK/2IK )= < V < V 'a( 'a(ia&$l,a((a6 ) ARRAC&aGa..atas &aGa..atasQ o5 tip$,-ata;

    ernyataan berikut membentuk suatu array inte!er den!an nama bilan!an $ 1: & 1:elemen (1::).t6p$ mat(iks = ARRAC 1..19 1..19Q o5 int$+$(;'a( AK/) mat(iks;

    untuk memasukkan tiap elemen maka$ diperlukan suatu procedure den!an

    memper!unakan struktur pen!ulan!an "or ...do tersaran!seperti berikut0p(oc$-%($ ISI,ARIK0AK/)mat(iks; mn)int$+$(;'a(i*) int$+$(; {5akto( p$n+%lan+}&$+in5o( i)=1 to m -o&$+in5o( *)=1 to n -o&$+in($a-0Ai*Q;$n-;($a-ln ;{ini m$m%n+kinkan kita m$n%lis tiap &a(is $l$m$n}$n-;

    untuk menampilkan tiap elemen maka$ di!unakan struktur pen!ulan!an "or ...do

    tersaran!seperti berikut

    p(oc$-%($ /LIS,ARIK0AK/)mat(iks; mn)int$+$(;'a( i*) int$+$(; {5akto( p$n+%lan+}&$+in5o( i)=1 to m -o&$+in5o( *)=1 to n -o&$+inG(it$0Ai*Q)O;$n-;G(it$ln ; {ini m$m%n+kinkan kita m$n%lis $l$m$n -alam &a(is -an kolom }$n-;$n-;

    ?. 6perasi pada Arra+

    22

  • 7/21/2019 Diktatalgoritma.doc

    55/87

    i"at masin!%masin! elemen array men!ikuti jenis data yan! dimilikinya$ untuk array

    den!an tipe bilan!an inte!er atau real kita bisa melakukan berba!ai standar operasi

    aritmatika seperti penjumlahan$ perkalian$ pen!uran!an$ dsb. an! perlu di !aris

    ba,ahi$ bah,a si"at dari array diman"aatkan untuk operasi matrik.

    a. )en*ari Harga Tertentu pada Arra+

    8encari suatu elemen data di dalam suatu data merupakan suatu kejadian yan! serin!

    kita alami$ contoh0 mencari nama mahasis,a dari da"tar presensi. encarian beruntun

    (se*uence)$ merupakan suatu teknik untuk mencari suatu elemen dalam suatu sistim

    yan! lebih besar.

    ontoh.8isal array AXY$ den!an elemen sbb0

    A

    E: 12 PE 23 11 42 1 42

    Intuk menari apakah bilan!an &-11 ada didalam tabel maka dilakukan pemeriksaan

    terhadap 0

    E: 12 PE 23 11

    ehin!!a ditemukan &pada elemen ke%G$ dalam bahasa AA diterjemahkan sepertiberikut0

    t6p$ PIA = ARRAC 1..TQ o5 int$+$(;'a( AK/) PIA;p(oc$-%($ JARI,ARIK0AK/) PIA;'a(i) int$+$(; {5akto( p$n+%lan+}&$+in5o( i)=1 to T -o&$+ini5 AK/iQ)= 11 t$nG(it$ln0 t$(-apat &ilan+an 11 -alam pita ini ;$ls$G(it$ln0 ti-ak a-a &ilan+an 11 p$nca(ian &$($nti ;

    $n-;$n-;

    b. )en*ari Harga )aksimum pada Arra+

    8isal array di atas kita cari har!a yan! tertin!!i$ maka kita perlu menentukan nilai

    tertin!!i dahulu sebelum melakukan pencarian Z dia,ali den!an nilai maksimum-:

    p(oc$-%($ JARI,AKSI/0AK/) PIA;'a(i) int$+$(; {5akto( p$n+%lan+}AKS ) int$+$(;&$+inAKS )= AK/1Q;

    5o( i)=1 to T -o

    22

  • 7/21/2019 Diktatalgoritma.doc

    56/87

    &$+ini5 AK/iQ? AKS t$nAKS)= AK/iQ;En-;@(it$ln0NILAI AKSI/ = BAKS;$n-;

    b. )en*ari Harga )inimum pada Arra+

    8isal array di atas kita cari har!a yan! terendah$ maka kita perlu menentukan nilai

    terendah dahulu sebelum melakukan pencarian Z dia,ali den!an nilai maksimum-32::

    p(oc$-%($ JARI,INI/0AK/) PIA;'a(i) int$+$(; {5akto( p$n+%lan+}IN ) int$+$(;&$+inIN )= 3!99;5o( i)=1 to T -o&$+ini5 AK/iQ8 IN t$n

    IN)= AK/iQ;$n-;G(it$ln0NILAI INI/ = BIN;$n-;

    *. )atrik

    eba!ai per,ujudan dari array dua dimensi$ operasi aritmatika seperti penjumlahan$

    perkalian$ dan pen!uran!an bisa dilakukan.

    ontoh.

    ' )endefinisikan

  • 7/21/2019 Diktatalgoritma.doc

    57/87

    G(it$ln;$n-; {G(it$}

    ' Penumlahkan )atrik

    p(oc$-%($ c$ck,mat(ik0A2J)mat(ik; mnp)int$+$(;'a( i* )int$+$(;&$+ini5 0m=p an- 0n= t$n&$+in5o( i)=1 to m -o&$+in5o( *)=1 to n -o&$+inJmnQ=AmnQF2mnQ$n-;$n-;$n-$ls$G(it$ln0MDIENSI ARIK IDAK JWJWKM$n-;

    ' Pengurangan )atrik

    p(oc$-%($ c$ck,mat(ik0A2J)mat(ik; mnp)int$+$(;'a( i* )int$+$(;&$+ini5 0m=p an- 0n= t$n&$+in5o( i)=1 to m -o&$+in5o( *)=1 to n -o&$+inJmnQ=AmnQ JmnQ$n-;$n-;$n-$ls$

    G(it$ln0MDIENSI ARIK IDAK JWJWKM$n-;

    '. Perkalian )atrik

    p(oc$-%($ p$(kalian,mat(ik0A2J)mat(ik; mnp)int$+$(;'a( i* k )int$+$(;J1) mat(ik;&$+ini5 0n=p t$n&$+in5o( i)=1 to m -o&$+in5o( *)=1 to p -o&$+in {inn$( p(o-%ct}J1i*Q)=9;5o( k)=1 to n -oJ1i*Q)=J1i*QFAikQV2k*Q;$n-; {inn$( p(o-%ct}$n-;n)=;5o( i)=1 to m -o5o( *)=1 to n -oJi*Q)=J1i*Q;$n-$ls$G(it$ln0MDIENSI ARIK IDAK JWJWKM$n-;

    ' Transpose )atrik

    p(oc$-%($ (anspos$0A2)mat(ik; mnp)int$+$(;

    22

  • 7/21/2019 Diktatalgoritma.doc

    58/87

    'a( i*)int$+$(;&$+in5o( i)=1 to n -o&$+in5o( *)=1 to m -o&$+in2mnQ=AnmQ$n-;$n-;$n-;

    '. )en*ari

  • 7/21/2019 Diktatalgoritma.doc

    59/87

    ara men!acu pada tiap "ield pada record pada contoh di atas adalah sbb0

  • 7/21/2019 Diktatalgoritma.doc

    60/87

    pernyataan ini akan membentuk suatu array den!an 1: elemen. #imana tiap elemen

    adalah sebuah record tan!!al$ yaitu$ terdiri atas bulan$ hari$ tahun den!an tipe data

    'nte!er.

    #i!ambarkan seperti berikut0

    ontoh emberian nilai a,al dari masin!%masin! elemen birthdays0

    2i(t-a6s1Q.a(i )=!;2i(t-a6s1Q.&%lan)=9U;2i(t-a6s1Q.ta%n)=1UT3;

    -. %e*ord di dalam %e*ord

    Record bisa berisi record lain seba!ai "ield. eperti contoh record tan!!al dan jam

    dikombinasikan menjadi sebuah record saat ini$

    t6p$ tan++al = ($co(-&%lan a(i ta%n ) int$+$(;

    $n-;t6p$ Gakt% =($co(-*am m$nit -$tik ) int$+$(;$n-;t6p$ Gakt%,ini =($co(-tan++al,ini ) tan++al;Gakt%,ini ) Gakt%$n-;

    Kemudian kita perlu membuat ariabel kerja'a( saat,ini ) Gakt%,ini;

    pemberian nilai akan terjadi seperti di ba,ah ini0saat,ini.tan++al.&%lan)= 11;saat,ini.tan++al.a(i)= !;saat,ini.tan++al.ta%n)= 1UT;

    22

  • 7/21/2019 Diktatalgoritma.doc

    61/87

    saat,ini.Gakt%.*am)= 3;saat,ini.Gakt%.m$nit)= 3;saat,ini.Gakt%.-$tik)= 33;

    ?. orting

    /ambar. data sebelum dan sesudah dilakukan proses sortin!.

    eberapa metode sortin! men!urutkan data yan! dikenal antara lain adalah01. ubble ort !sederhana tetapi lambat"

    $. Cui*k ort !*epat tetapi rumit"

    ,. hell ort !agak *epat dan tidak terlalu rumit"

    ?.1. ubble ort

    7eknik ini menyusun data yan! diin!inkan secara berurutan den!an membandin!kan

    elemen data yan! ada$ misalkan kita akan meyusun data secara (ascendin!) cacah naik.8aka la!oritma utamanya adalah seperti ini.

    7A=5o( i)=1 to 7%mla,-ata1 -o5o( *)=iF1 to 7%mla,-ata -oi5 DataiQ?Data*Q t$n&$+int)=DataiQ;DataiQ)=Data*Q;Data*Q)=t;$n-;

    ontoh.8isal kita punya data 0 G 3 4 1 P E 2 $ dalam pro!rampro!ram men!urutkandataZ%s$s @inJ(t;t6p$ %(%tkan=a((a6 1..TQ o5 int$+$(;'a( i*t)int$+$(;an%)%(%tkan;&$+inan%1Q)=; an%!Q)= 3;an%3Q)= T; an%4Q)= 4;an%Q)= 1; an%OQ)= # ;an%#Q)=O ; an%TQ)=! ;5o( i)=1 to # to&$+in5o( *)=iF1 to T to

    &$+in

    22

  • 7/21/2019 Diktatalgoritma.doc

    62/87

    i5 an%iQ?an%*Q t$n&$+int)=an%iQ;an%iQ)=an%*Q;an%*Q)=t;$n-;$n-;$n-;5o( i)=1 to T -oG(it$ 0an%iQ M M$n-.

    ?.$. hell sort

    rinsipnya hampir sama den!an bubble sort tetapi dioptmisisasi sehin!!a lebih cepat.

    #itemukan oleh #onald hell. prinsipnya adalah membandin!kan data den!an jarak

    tertentu dalam array.

    7A=

    5o( *a(ak)= 07%mla,-ata -i' ! -oGn to 1 -o5o( i)=1 to 7%mla,-ata*a(ak -oi5 DataiQ?DataiF*a(akQ t$n&$+int)=DataiQ;DataiQ)=DataiF*a(akQ;DataiF*a(akQ)=t;$n-;

    8isalkan kita punya data. an!kah pertama adalah membandin!kan data pertamaden!an ke lima$ dsb. arak antara data adalah ( di 2 0-4).an!kah iterasi0

    pertama$ jarak adalah 4.G 3 4 1 P E 2ke%1 perbandin!an 0 [ [ (salah urutan$ tukar)1 3 4 G P E 2ke%2 perbandin!an 0 [ [ ( urutan benar$ no tukar)ke%3 perbandin!an 0 [ [ (salah urutan$ tukar)1 3 E 4 G P 2ke%4 perbandin!an 0 [ [ (salah urutan$ tukar)1 3 E 2 G P 4 %%%%Q arak 3.ke%G perbandin!an 0 [ [ ( urutan benar$ no tukar)

    ke%E perbandin!an 0 [ [ ( urutan benar$ no tukar)ke%P perbandin!an 0 [ [ ( urutan benar$ no tukar)ke% perbandin!an 0 [ [ ( urutan benar$ no tukar)ke%N perbandin!an 0 [ [ (salah urutan$ tukar)1 3 E 2 4 P G %%%%Q arak 2.ke%1: perbandin!an 0[ [ ( urutan benar$ no tukar)ke%11 perbandin!an 0 [ [ (salah urutan$ tukar)1 2 E 3 4 P Gke%12 perbandin!an 0 [ [ (salah urutan$ tukar)1 2 4 3 E P Gke%13 perbandin!an 0 [ [ ( urutan benar$ no tukar)

    ke%14 perbandin!an 0 [ [ ( urutan benar$ no tukar)

    22

  • 7/21/2019 Diktatalgoritma.doc

    63/87

    ke%1G perbandin!an 0 [ [ (salah urutan$ tukar)1 2 4 3 E G P %%%%Q arak 1.ke%1E perbandin!an 0[ [ ( urutan benar$ no tukar)ke%1P perbandin!an 0 [ [ ( urutan benar$ no tukar)

    ke%1 perbandin!an 0 [ [ (salah urutan$ tukar)1 2 3 4 E G Pke%1N perbandin!an 0 [ [ ( urutan benar$ no tukar)ke%2: perbandin!an 0 [ [ (salah urutan$ tukar)1 2 3 4 G E Pke%21 perbandin!an 0 [ [ ( urutan benar$ no tukar)ke%22 perbandin!an 0 [ [ (salah urutan$ tukar)1 2 3 4 G E P

    ?.,. Cui*k sort

    Diketemukan oleh B. Hoare. #en!an men!!unakan metode rekursi samapi habis.

    rinsipnya memba!i data menjadi dua ba!ian yan! sama (kiri dan kanan). #imana data

    ten!ah menjadi piot (pusat operasi). Kumpulkan data den!an nilai lebih kecil dari

    piot disebelah kiri piot$ dan di kanan untuk yan! lebih besar. #imun!kinkan ba!ian

    kiri dan kanan piot tidak sama besarnya. Intuk itu tiap ba!in di ba!i menjadi dua la!i

    dan mempuyi piot yan! baru. ontoh misal kita mempunyai data array inte!er.

    p(oc$-%($ so(t0&aGa atas ) int$+$('a( ki(i kanan pi'ot ) int$+$(;&$+inpi'ot)=Data0&aGaFatas -i' !Q;ki(i)=&aGa;kanan)=atas;Gil$ ki(i8=kanan -o&$+inGil$ Dataki(iQ 8 pi'ot -o ki(i)=ki(iF1; { m$misakan k$ ki(i }Gil$ DatakananQ?pi'ot -o kanan)=kanan1;{$misakan k$ kanan}i5 ki(i8=kanan t$n { c$k p$(%&aan }&$+insGap Dataki(iQ Git DatakananQ;ki(i)=ki(iF1;kanan)=kanan1;$n-;

    $n-;i5 kanan?&aGa t$n so(t0&aGakanan;{ %(%tkan &a+ian KIRI }i5 atas?ki(i t$n so(t0ki(i atas;{ %(%tkan &a+ian KANAN}$n-;

    eman!ilan dalam pro!ram utama 0 2sort!1=9umber6fData"

    22

  • 7/21/2019 Diktatalgoritma.doc

    64/87

    *IL$

    1. Komposisi dari 7ile Teks

    @ile 7eks disusun seba!ai runtunan beberapa baris .

    7iap baris terdiri dari runtunan karakter.

    7iap baris diakhiri oleh karakter khusus$ yaitu B#%

  • 7/21/2019 Diktatalgoritma.doc

    65/87

    setelah selesai membaca keseluruhan teks kita harus menutupnya den!an0clos$0X;

    ontoh. (misal kita punya suatu "ile den!an path #0V"ile1.t&t)P(o+(am &aca,5il$,t$ks;

    %s$s Ginc(t;'a(X ) t$

  • 7/21/2019 Diktatalgoritma.doc

    66/87

    assi+n0Xs; {m%lai p(os$s}($G(it$0X; {m$m&%at 5il$ &a(%}G(it$ln0M%lai m$n+$tikkan t$ks.M;G(it$ln0M/nt%k &$($nti) t$kan $nt$( spasi -an $nt$(.M;Gil$ s 8?B -o&$+in($a-ln0s; {t%lis sampai s$l$sai}G(it$ln0Xs;$n-;clos$0X; { m$n%t%p 5il$ }$n-.

    atatan0 statemen re,rite(ariabelJteks) apabila diterapkan pada "ile yan! sudah ada

    akan menyebabkan isi "ile terhapus dan mulai membuat yan! baru$ maka untuk

    menambahkan teks pada "ile yan! sudah ada di!unakan kata kunci append

    (ariabelJteks).

    ?.

  • 7/21/2019 Diktatalgoritma.doc

    67/87

    !) G(it$ln 0MXil$ ti-ak k$t$m%M;3) G(it$ln 0Mlokasi ti-ak k$t$m%M;4) G(it$ln 0Mt$(lal% &ana6k 5il$ 6an+ -i&%kaM;) G(it$ln 0aks$s 5il$ -itolakM;199) G(it$ln 0Msala m$m&aca -iskM;191) G(it$ln0Msala m$n%lis -iskM;19) G(it$ln0MDisk -ip(ot$ksiM;1!) G(it$ln 0MD(i'$ ti-ak a-aM;14) G(it$ln 0MJRJ $((o( -i -ataM;1O) G(it$ln 0Mp$nca(ian -isk salaM;1#) G(it$ln 0Mm$-ia ti-ak -ik$nalM;1O!) G(it$ln 0Mk$(%sakan Ha(-Ga($M;$ls$ G(it$ln0Mpokokn6a salaM;$n-;alt;$n-;

    Delphi untuk pemula

    1. Mengistal dan membuka Delphi

    Perkembangan bahasa pemrograman berlangsung dengan pesat, mulai dari

    bahasa tingkat rendah (yang lebih dekat dengan hardware) seperti bahasa

    assembly, ataupun bahasa tingkat tinggi, seperti bahasa c dan pascal. Pada

    bahasa ini agak susah mengembangkannya dan membuat tampilannya

    menjadi menarik, apalagi bila kita menggunakan bahasa pemrograman ini

    dalam bentuk grafik. Perkembangan bahasa pemrograman terus berlanjut

    dengan dikeluarkannya Windows oleh pihak Microscoft. Pada windows

    diperkenalkan model OOP (Object Oriented Programming) yaitu yang lebih

    menampilkan kemudahan dan tampilan yang menarik (seperti window

    22

  • 7/21/2019 Diktatalgoritma.doc

    68/87

    window pada application yang sering kita gunakan , ms word).

    !elphi merupakan salah satu program yang berbasis pada OOP, jadi dengan

    bahasa delphi kita dapat membuat programprogram yang menarik untuk

    dilihat dan fleksibel serta user "riendly.

    Perkembangan !elphi

    #orland !elphi dirilis pertama kali pada bulan "ebruari $%%&, dan

    Perkembangna !elphi berjalan dari !elphi satu sampai dengan !elphi '.

    !asar pemrograman delphi dimulai ketika delphi $ dirilis, pada

    perkembangan delphi , user sudah dapat menggunakan fasilitas

    networking, yang memungkinkan user untuk membuat sebuah aplikasi yangdapat menghubungkan komputer melalui jaringan internet. Pada

    perkembangan terakhir (delphi ') user dapat membuat sebuah aplikasi yang

    bisa berjalan dalam operating system *inu+.

    Membuka Delphi untuk pertama kali

    ebelum menggunakan delphi kita harus menginstal -plikasi !elphi pada

    komputer kita. ntuk menginstal !elphi membutuhkan kurang dari $//

    Mb denngan O minimal win .$ dan memory 0 Mb, untuk !elphi & sekitar

    $//// Mb dengan O minimal Win %& dan Memory min $' Mb, dan #ila

    kita mnginstal !elphi ' kita membutuhkan minimal &/ Mb, dengan O

    minimal Win %& dan memory min Mb.

    etelah kita melakukan instalasi$ maka kita dapat memulai pro!ram kita yan!

    pertama. erikut ini adalah tampilan a,al bila kita men!!unakan delphi E (!ambar

    1)

    22

  • 7/21/2019 Diktatalgoritma.doc

    69/87

    Berikut keterangan bagianbagian gambar diatas 1

    22

  • 7/21/2019 Diktatalgoritma.doc

    70/87

    2. Membuat program hello

    Marilah untuk pengenalan pertama kita membuat program 2ello.

    Pada program yang pertama ini, kita akan membuat sebuah program hallo.

    *angkah yang harus dilakukan1

    $. #ukalah sebuah aplikasi baru

    22

  • 7/21/2019 Diktatalgoritma.doc

    71/87

    . -mbil komponen button

    #esar form dapat diatur

    1. *etakanlah komponen tersebut pada form dan klik kali2. pada procedure klik, tuliskan syntak berikut ini

    procedure 3"orm$.#utton$4lick(ender1 3Object)5begin

    messagedlg(6hallo apa kabar6,mtinformation,7mbok8,/)5

    end5

    1. dan kita juga bias menambahkan syntak yang

    megakibatkan bila kita mgklik diluar button, maka aplikasi tersebut

    mengeluakan sebuah pesan

    procedure 3"orm$."orm4lick(ender1 3Object)5begin

    messagedlg(6-nda menekan di luar tombol6,mtwarning,7mbok8,/)5

    end5

    1. 9adi program kita yang pertama.

    22

  • 7/21/2019 Diktatalgoritma.doc

    72/87

    :eterangan pada program hello$

    1. Pogram ini bekerja untuk medeteksi akti;itas kita saatmenekan menklik pada area suatu form. :ita akan mendapat suatu

    pemberitahuan bila kita mengklik pada tombol atau di luar tombol.2. #ila kita menklik pada tombol maka akan keluar suatu form

    message information, dengan tambahan kalimat yang bias kita ubah,.

    #erbeda halnya bila kita mengklik di luar tombol maka akan ada

    pemberitahuan warning.3. -da berbagai macam bentuk message

    type 3Msg!lg3ype < (mt4ustom, mt=nformation, mtWarning, mt>rror,

    mt4onfirmation)5

    mt4ustom uatu kotak message dengan caption(judul) yang

    dapat kita atur sendiri

    mt=nformation uatu kotak message dengan caption ?=nformation@.

    mtWarning uatu kotak message dengan caption ?Warning@.

    mt>rror uatu kotak message dengan caption ?>rror@.

    Mt4onfirmation uatu kotak message dengan caption ?4onfirm@

    1. 7mbok8 merupakan tombol yang ditampilkan pada kotak

    dialog tersebut. Macammacam tombol yang bias ditampilkan adalah 1

    (mbAone, mbOk, mb4ancel, mbBes, mbAo, mb-bort, mbCetry,

    mb=gnore)

    22

  • 7/21/2019 Diktatalgoritma.doc

    73/87

    ntuk listing program lengkapnya1

    unit Unit1;interface

    usesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls,

    Forms,ialogs, StdCtrls;

    type!Form1 " class#!Form$%utton1& !%utton;procedure %utton1Clic'#Sender& !()*ect$;procedure FormClic'#Sender& !()*ect$;

    pri+ate -ri+ate declarations .

    pu)lic -u)lic declarations .

    end;

    +arForm1& !Form1;

    implementation

    /0 2dfm.

    procedure !Form12%utton1Clic'#Sender& !()*ect$;)egin

    messagedlg#3hallo apa 'a)ar3,mtinformation,4m)o'5,6$;end;

    procedure !Form12FormClic'#Sender& !()*ect$;)egin

    messagedlg#37nda mene'an di luat tom)ol3,mtcustom,4m)o'5,6$;

    end;end23. Membuka dan menyimpan proyek

    Pada saat kita membuka delphi, maka secara otomatis !elphi akan

    membuka sebuah application. -pplication adalah sebuah proyek yang akan

    kita buat. !alam sebuah proyek ini anda akan menemukan berbagai macam

    file.

    Proyek

    22

  • 7/21/2019 Diktatalgoritma.doc

    74/87

    nit Pas

    nit !fm

    nit pas

    nit !fm

    -kan menjadi nama file application

    eperti pada bagan diatas. !alam sebauh proyek terdapat berbbagai macam

    file yang diperlukan untuk membangun proyek tersebut. "ilefile ini bisa kita

    tambahkan dengan bebas, asalkan tetap dalam sebuah proyek.

    Menyimpan proyek dan file

    !iperlukan buah langkah penyimpanan pada delphi, pertama penyimapan

    filefile dibawah proyek, dan kedua penyimpanan proyek itu sendiri.

    impan file

    impan proyek

    impan proyek D file

    3utup sebagian

    3utup file D proyek

    22

  • 7/21/2019 Diktatalgoritma.doc

    75/87

    #uka proyek

    #uka "ile

    3erlihat jelas pada gambar di atas. 9adi kita harus memperhatikan bagian

    bagian dalam penyimpanan dan buka file atau proyek. :eterangan tiapa

    bagian 1

    a. #uka file

    Membuka sebuah file (tidak ada hubungan atau berhubungan dengan

    proyek). *angkah ini diperlukan untuk melink kan sebuah fil dengan file

    lain, tapi masih dalam satu proyek, atau kita juga meliha program

    sebelumnya dan mengkopi bagianbagian tertentu saja.

    b. #uka proyek

    Membuka sebuah proyek (E.dpr), saat membuka proyek ini, maka akan

    terbuka juga file utama yang berhubungan dengan proyek tersebut.

    Aamun untuk melihat linklink yang digunakan oleh file tersebut maka

    kita harus membukanya secara manual dengan perintah buka file (nomor

    a)

    c. impan file

    Menyimpan file tertentu. Perhatikan saat menklik bagian ini, maka

    proyek anda belum tersimpan.

    d. impan proyek

    22

  • 7/21/2019 Diktatalgoritma.doc

    76/87

    Menyimpan proyek tertentu. !aapun isi proyek merupakan data

    mengenai linklink file yang digunakan dalam sebuah proyek tersebut.

    e. impan proyek dan file

    #ila kita mengklik bagian ini maka proyek dan file akan otomatis

    tersimpan dalam hardisk dengan nama file dan proyek tertentu (sudah

    ada). *angkah ini diperlukan saat kita mo menyimpan semua file dan

    proyek, sehingga sengan menekkan tombol ini, kita tidak perlu susah

    suha untukmenyimpan bagian file dan proyek.

    f. 3utup sebagian

    3ombol ini berguna untuk menutup file tertentu.

    g. 3utup file D proyek

    *angkah ini penting dilakukan, saat kita menutup sebuah application.

    #ila kita tidak melakukan ini, maka yang tertutup hanya file saja, dan

    proyek tidak tertutup. -rtinya jika kita belum menutup proyek dan kita

    membuka sebuah file tertentu, maak file itu akan berada di bwah proyek

    yang belum kita tutup ini.

    Oleh karena itu pergunakan lah tombol ini, untuk menutup seluruh

    program yang kita buat. !an bila ingin membuat program baru, silahkan

    pilih new application.

    h. >+it

    !igunakan untuk keluar dari !elphi.

    4. Penjelasan mengenai form dan file yang digunakan delphi

    a. Project file

    Merupakan sebuah file yang berisi informasi mengenai poject fule

    program yang kita buat.

    b. "orm file

    "orm file merupakan file yang berisi informasi mengani form yang telah

    kita buat.=nformasi ini meliputi ukuranukuran dan komponen apa aja

    22

  • 7/21/2019 Diktatalgoritma.doc

    77/87

    yang kita taruh dalam form.

    c. !ata module "ile

    !ata module ini berisi mengenai informasi mengenai kegunaan datamodule. "ilenya dalam e+tention E.dfm

    d. Cemote !ata Module "ile

    Merupakan file yang berisi remote data module. 3ype file ini E.rfm

    e. nit "ile

    nit Aame

    3he uses 4lauses

    3he =nterface ection

    3he =mplementation ection

    3he =nialiFation ection

    3he "inaliFation ection

    f. "orm nit

    &. Objek pasal !type data"

    a. Global dan local ;ariable

    Global ;ariabel adalah suatu ;aribel yang kita deklarasikan saat awal,

    global ;aribel ini akan mewakili atau dapat digunakan pada seluruh

    procedure di bawah program keseluruhan

    *ocal ;ariabel adalah suatu ;ariabel yang digunakan untuk

    mendeklarasikan suatu ;ariabel yang hanya digunakan dalam satu

    procedure saja.

    Penting dalam penentuan global ;ariabel dan local ;ariabel, sehingga kita

    dapat menentukan adata yang lebih optimal.

    b. =f H then .. else

    =f .. then .. else merupakan fungsi percabangan, yaitu bila statement

    pertama sesuaiItidak sesuai makaIthen akan diikuti respon berikutnya,

    bila statemen pertama tidak sesuai I sesuai maka akan terjadi aksi yang

    berbeda pula

    22

  • 7/21/2019 Diktatalgoritma.doc

    78/87

    4ontoh

    =f warna < merah then berenti else jalan

    c. 4ase of4ase of adala bentuk percabangan yang mengecek satu per satu kondisi

    yang dibuat.

    4ase of lampu

    Merah < berenti5

    2ijau < jalan

    :uning < pelanpelan>nd5

    Perhatikan bahwa case of harus ditutup dengan end.

    d. Cepeat H until

    Cepeat .. util merupakan procedure pengulangan. :onsepnya adalah

    repeat suatu statemen sampai suatu statemen itu bernilai tertentu maka

    pengulangan itu berhenti.

    #. Menggunakan $elp %ile

    2elp sangat berguna bila kita dalam kesulitan saat melakukan

    permrograman. Pada !elphi telah disiapkan help "ile yang sangat lengkap,

    mulai dari penggunaan bahasa pascal pada delphi, menggunaan win api

    (dri;er standar windows) sampai dengan bantuan pada pemrograman

    !elphi itu sendiri.

    4ara menggunakan 2elp "ile

    22

  • 7/21/2019 Diktatalgoritma.doc

    79/87

    epert pada gambar di atas, kita tinggal menekan "$ untuk mengaktifkan

    2elp file, dan kata ingin kita tanyakan langsung tertera pada help itu dan

    kita akan menemukan penjelasan dari pertanyaan tersebut.

    1&. Mode 'onsole

    Mode console digunakan bila kita tidak menggunakan form, tetapi

    menggunakan format seperti pascal, dalam bentuk dos. -dapun untuk

    mengubah mode normal ke dalam mode console, anda tinggal klik

    11. (omponen

    12. %ungsi )aktu

    a. Pengantar

    13. *rafik dan tabel

    22

  • 7/21/2019 Diktatalgoritma.doc

    80/87

    >ditor (!efault)

    3hese editor keyboard shortcuts apply to the !efault keystroke mapping

    scheme.

    hortcut -ction or command

    "$ 2elpJ3opic earch

    4trlK"$ 2elpJ3opic earch

    " earchJearch -gain

    4trlK> earchJ=ncremental earch

    4trlK"earchJ"ind

    4trlK= =nserts a tab character4trlKj 3emplates popup menu

    4trlKA =nserts a new line

    4trlKP4auses ne+t character to be interpreted as an -4== seLuence

    4trlKC earchJCeplace

    4trlK"ileJa;e

    4trlK3!eletes a word

    4trlKB !eletes a line4trlK>ditJndo

    4trlKNspace bar 4ode 4ompletion popup window

    4trlKhiftKg =nserts a new Globally niLue =dentifier (G=!)

    4trlKhiftK= =ndents block

    4trlKhiftK Outdents block

    4trlKhiftKB !eletes to the end of a line

    4trlKhiftK >ditJCedo

    4trlKhiftKNspace bar 4ode Parameters popup window

    -ltK7 "inds the matching delimiter (forward)

    -ltK8 "inds the matching delimiter (backward)

    >nd Mo;es to the end of a line

    2ome Mo;es to the start of a line

    >nter =nserts a carriage return

    22

  • 7/21/2019 Diktatalgoritma.doc

    81/87

    =ns 3urns insert mode onIoff

    !el !eletes the character to the right of the cursor

    #ackspace !eletes the character to the left of the cursor

    3ab =nserts a tab

    pace =nserts a blank space

    *eft -rrow Mo;es the cursor left one column, accounting for the autoindent

    setting

    Cight -rrow Mo;es the cursor right one column, accounting for the autoindent

    setting

    p -rrow Mo;es up one line

    !own -rrow Mo;es down one line

    Page p Mo;es up one page

    Page Do)n Mo+es do)n one page

    4trlK*eft -rrow Mo;es one word left

    4trlKCight -rrow Mo;es one word right

    4trlK3ab Mo;es to the ne+t code page (or file)

    4trlKhiftK3ab Mo;es to the pre;ious code page (or file)

    4trlK#ackspace !eletes the word to the right of the cursor

    4trlK2ome Mo;es to the top of a file

    4trlK>nd Mo;es to the end of a file

    4trlK!el !eletes a currently selected block

    4trlKpace =nserts a blank space

    4trlKPg!n Mo;es to the bottom of a screen

    4trlKPgp Mo;es to the top of a screen

    4trlKp -rrow crolls up one line

    4trlK!own -rrow crolls down one line

    4trlK>nter Opens file at cursor

    hiftK3ab Mo;es the cursor to the left one tab position

    hiftK#ackspace !eletes the character to the left of the cursor

    hiftK*eft -rrow elects the character to the left of the cursor

    22

  • 7/21/2019 Diktatalgoritma.doc

    82/87

    hiftKCight -rrow elects the character to the right of the cursor

    hiftKp -rrow Mo;es the cursor up one line and selects from the left of the

    starting cursor position

    hiftK!own -rrow Mo;es the cursor down one line and selects from the right

    of the starting cursor position

    hiftKPgp Mo;es the cursor up one screen and selects from the left of the

    starting cursor position

    hiftKPg!n Mo;es the cursor down one line and selects from the right of the

    starting cursor position

    hiftK>nd elects from the cursor position to the end of the current line

    hiftK2ome elects from the cursor position to the start of the current line

    hiftKpace =nserts a blank space

    hiftK>nter =nserts a new line with a carriage return

    4trlKhiftK*eft -rrow elects the word to the left of the cursor

    4trlKhiftKCight -rrow elects the word to the right of the cursor

    4trlKhiftK2ome elects from the cursor position to the start of the currentfile

    4trlKhiftK>nd elects from the cursor position to the end of the current

    file

    4trlKhiftKPg!n elects from the cursor position to the bottom of the screen

    4trlKhiftKPgp elects from the cursor position to the top of the screen

    4trlKhiftK3ab Mo;es to the pre;ious page

    hiftK-ltKarrow elects columnoriented blocks

    4lickK-ltKmousemo;e elects columnoriented blocks

    4trlKOK4 3urns on column blocking

    4trlKOK: 3urns off column blocking

    -ltK#ackspace >ditJndo

    -ltKhiftK#ackspace >ditJCedo

    -ltKhiftK*eft -rrow elects the column to the left of the cursor

    22

  • 7/21/2019 Diktatalgoritma.doc

    83/87

    -ltKhiftKCight -rrow elects the column to the right of the cursor

    -ltKhiftKp -rrow Mo;es the cursor up one line and selects the column

    from the left of the starting cursor position

    -ltKhiftK!own -rrow Mo;es the cursor down one line and selects thecolumn from the left of the starting cursor position

    -ltKhiftKPage p Mo;es the cursor up one screen and selects the column

    from the left of the starting cursor position

    -ltKhiftKPage !own Mo;es the cursor down one line and selects the

    column from the right of the starting cursor position

    -ltKhiftK>nd elects the column from the cursor position to the end of

    the current line-ltKhiftK2ome elects the column from the cursor position to the start of

    the current line

    4trlK-ltKhiftK*eft -rrow elects the column to the left of the cursor

    4trlK-ltKhiftKCight -rrow elects the column to the right of the cursor

    4trlK-ltKhiftK2ome elects the column from the cursor position to the

    start of the current file

    4trlK-ltKhiftK>nd elects the column from the cursor position to the end of

    the current file

    4trlK-ltKhiftKPage p elects the column from the cursor position to the

    bottom of the screen

    4trlK-ltKhiftKPage !ownelects the column from the cursor position to the

    top of the screen

    22

  • 7/21/2019 Diktatalgoritma.doc

    84/87

    ,ejarah (omputer

    !isiplin =lmu :omputer sudah muncul sejak era tahun $%/, seiring denganberpadunya teori algoritma dan logika matematika, serta ditemukannya

    komputer elektronik dengan kemampuan penyimpanan program. -dalah -lan

    3uring dan :urt Godel, yang pada tahun $%/an berhasil memadukan

    algoritma, logika, dan penghitungan matematika serta merealisasikannya dalam

    sebuah alat atau rule system. Prinsip algoritma yang digunakan adalah dari -da

    *o;elace, yang dikembangkan '/ tahun sebelumnya.

    -lan 3uring

    Penemu algoritma sendiri yang tercatat dalam sejarah

    awal adalah dari seorang yang bernama -bu -bdullah Muhammad =bn Musa al

    :hwariFmi. -l :hwariFmi adalah seorang ahli matematika dari Fbekistan yang

    hidup di masa tahun QQ/0/ masehi. !i literatur barat ia lebih terkenal dengan

    sebutan -lgoriFm. :ata algoritma sendiri berasal dari sebutannya ini.

    edangkan komputer analog diciptakan oleh Ranne;ar #ush pada tahun $%/,

    dan disusul dengan komputer elektronik yang dikembangkan oleh 2oward-iken dan :onrad use tahun $%/.

    Musa al :hwariFmi

    22

  • 7/21/2019 Diktatalgoritma.doc

    85/87

    :emudian 9ohn Ron Aeumann mendemonstrasikan salah satu karya

    fenomenalnya pada tahun $%&, yaitu sebuah

    arsitektur komputer yang disebut S;on Aeumann

    machineS, dimana program disimpan di

    memori. -rsitektur komputer inilah yang

    kemudian digunakan oleh komputer modern

    sampai sekarang.

    9ohn Ron Aeumann

    3ahun $%'/ adalah babak baru dimulainya formalisasi =lmu :omputer. 9urusan

    =lmu :omputer pada uni;ersitasuni;ersitas mulai marak dibangun. !isiplinilmu baru ini kemudian terkenal dengan sebutan =lmu :omputer (4omputer

    cience), 3eknik :omputer (4omputer >ngineering), :omputing (4omputing),

    atau =nformatika (=nformatics).

    Definisi

    eiring dengan perkembangan =lmu :omputer, dewasa ini banyak sekali

    peneliti yang mencoba membuat kajian dan melakukan pendefinisian terhadap

    =lmu :omputer. #agaimanapun juga, dasar =lmu :omputer adalah matematikadan engineering (teknik). Matematika menyumbangkan metode analisa, dan

    engineering menyumbangkan metode desainpada bidang ini.

    4-# 78 (4omputing ciences -ccreditation #oard, http1IIwww.csab.org)

    membuat definisi menarik tentang =lmu :omputer1

    8lmu 9omputer adalah ilmu pengetahuan yang )erhu)ungan dengan

    'omputer dan 'omputasi2 i dalamnya terdapat teoriti'a, e'sperimen, dan

    22

  • 7/21/2019 Diktatalgoritma.doc

    86/87

    pendesainan 'omponen, serta termasu' didalamnya hal:hal yang

    )erhu)ungan dengan&

    1. !eori:teori untu' memahami 'omputer de+ice, program,

    dan sistem2. 'sperimen untu' pengem)angan dan pengetesan 'onsep3. Metodologi

    desain, algoritma, dan tool untu' merealisasi'annya4. Metode analisa

    untu' mela'u'an pem)u'tian )ahwa realisasi sudah sesuai dengan

    re>> 4omputer ociety 7&8 (http1IIcomputer.org).

    8lmu 9omputer adalah studi sistemati' tentang proses algoritmi' yang

    meng*elas'an dan mentrasformasi'an informasi& )ai' itu )erhu)ungan

    dengan teori:teori, analisa, desain, efisiensi, implementasi, ataupun apli'asi:

    apli'asi yang ada padanya2 -ertanyaan mendasar )erhu)ungan dengan

    8lmu 9omputer adalah, =7pa yang )isa diotomatisasi'an secara efisien=2

    :ita bisa simpulkan dari persamaan pemakaian terminologi dan hakekat makna

    dalam definisi yang digunakan para peneliti diatas, bahwa1

    8lmu 9omputer adalah ilmu pengetahuan yang )erisi tentang teori,

    metodologi, desain dan implementasi, )erhu)ungan dengan 'omputasi,

    'omputer, dan algoritmanya dalam perspe'tif perang'at luna' #software$

    22

  • 7/21/2019 Diktatalgoritma.doc

    87/87

    maupun perang'at 'eras #hardware$2

    Persepsi -ang ,alah entang /lmu (omputer

    #eberapa persepsi yang salah kaprah tentang =lmu :omputer bisa kitarangkumkan seperti dibawah1

    I 8lmu 9omputer adalah ilmu yang mempela*ari tentang

    'omputer. =lmu :omputer bukanlah ilmu yang hanya mempelajari

    tentang komputer, seperti juga ilmu astronomi yang bukan ilmu tentang

    teleskop, atau ilmu biologi adalah juga bukan ilmu yang hanya

    mempelajari tentang mikroskop. :omputer, teleskop dan mikroskop

    adalah alat dari ilmu, dan bukan ilmu itu sendiri.I 8lmu 9omputer adalah ilmu yang mempela*ari tentang

    )agaimana menulis program 'omputer.I 8lmu 9omputer adalah ilmu yang mempela*ari tentang

    pengunaan apli'asi:apli'asi 'omputer.

    0eferensi

    1. Peter !enning, et al., S'omputing as a Disipline,S

    Communications of 7CM, , $ (9anuary), %, $%0%.

    2. Peter !enning, S'omputer ,iene the Disipline,S =nncyclopedia of Computer Science(-. Calston and !. 2emmendinger,

    >ds), $%%%.3. 4omputing ciences -ccreditation #oard,

    http1IIwww.csab.org4. -ssociation for 4omputing Machinary (-4M),

    http1IIacm.orgG.

    =>>> 4omputer ociety (=>>> 4), http1IIcomputer.org