konsep algo dan pemrograman-update-sept2013.pdf

152
Algoritma dan pemrograman dasar

Upload: bung-karno-bootex

Post on 18-Nov-2015

65 views

Category:

Documents


8 download

TRANSCRIPT

  • Algoritma dan pemrograman dasar

  • KOMPONEN PENILAIAN

    ABSEN : 10 %

    KUIS : 10 %

    TUGAS : 20 %

    UTS : 20 %

    UAS : 40%

  • Rinaldi Munir, Algoritma dan Pemrogramandalam bahasa Pascal dan C, PenerbitInformatika Bandung

    P. Insap Santosa, Ir ., M.Sc., Dasar dasar Pascal, Teori dan Program Terapan

    Budi Raharjo, Teknik Pemrograman Pascal, Penerbit Informatika Bandung.

    Donald Knuth, The art Computer Programming, Vol.1 / fundamental Algorithms. 2nd edition, Addison Wesleyl

    Referensi dari internet

  • beberapa langkah umum dalam pembuatan suatu program yaitu

    Mendefinisikan masalah mendefinisikan permasalahan. langkah ini harus dilakukan untuk

    menentukan masalah yang ada serta ditentukan pula input dan output program

    Mencari solusinya Bila untuk mendapatkan solusi harus melalui langkah yang terlalu

    rumit dapat dilakukan pembagian masalah dalam beberapa modul-modul kecil agar mudah untuk dikerjakan. Lalu modul-modul keciltersebut digabungkan menjadi satu untuk dapat menentukan solusi.

    Menentukan algoritma

    Menulis program

    Menguji program

    Mendokumentasikan program

    Merawat program

    http://www.nusinau.com/tag/program/http://www.nusinau.com/tag/input/http://www.nusinau.com/tag/program/http://www.nusinau.com/tag/solusi/http://www.nusinau.com/tag/solusi/http://www.nusinau.com/tag/algoritma/http://www.nusinau.com/tag/program/http://www.nusinau.com/tag/program/http://www.nusinau.com/tag/program/http://www.nusinau.com/tag/program/

  • Apa itu Algoritma

    Algoritma adalah urutan langkah-langkah logispenyelesaian masalah yang disusun secarasistematis dan logis.- Kata logis merupakan kata kunci dalamalgoritma.- Urutan logis/langkah-langkah dalam algoritmaharus dapat ditentunkan dengan nilaiBenar(TRUE) atau Salah(FALSE).

    Algoritma adalah jantungnya Ilmu komputer/ Informatika

  • Algoritma Dalam Kehidupan.

    Tanpa disadari kita sering menerapkan algoritmadalam kehidupan sehari-hari, seperti :

    Memasak resep makanan

    Mencuci Baju

    Mandi

    dll

  • Contoh Algoritma :

    Misalkan ada 2 Ember yang berisi air(larutan) yang berwarna, (anggap saja Ember A dan Ember B). Ember A berisi air yang berwarna Merah, sedangkan Ember B berisi air yang berwarna Biru. Volume kedua ember tersebut sama.

    Pertanyaannya? : Bagaimanakah cara pertukaranisi kedua ember itu sehingga nanti akan menjadiEmber A berisi air warna Biru, dan Ember B berisiair warna Merah?

  • Algoritmanya :

    Kondisi Awal : Ember A (Berisi air warnaMerah) dan Ember B (Berisi air warna Biru).Kondisi Ahir : Ember A (Berisi air warna Biru) dan Ember B (Berisi air warna Merah).

    Algoritma menghasilkan Efek Netto

  • Penyelesainyan :

    Tambahkan satu Ember kosong, (Anggap sajaEmber C).

    Tuang ember A ke ember C

    Tuang ember B ke ember A

    Tuang ember C ke ember B

    Selesai.

  • BAHASA PEMROGRAMAN.

    Untuk melaksanakan suatu algoritma, diperlukansuatu bahasa pemrograman, contoh : Pascal, C++, Visual Basic, dll.

    Notasi algoritma dapat diterjemahkan kedalambahasa pemrograman apapaun, dengan kata lain notasi algoritma bersifat independen.

    Notasi Algoritmik :- Deskripsi- Flow Chart- Kode Pesudo

  • Program : instruksi (coding)

    Pemrogram : yang membuat program

    Pemrograman : kegiatan yang dilakukan untukmerancang dan menulis program

    Bahasa Pemrograman : bahasa yang digunakan dalam membuat program yang dimengerti oleh komputer.

  • case

  • Algoritma :

    { sisi A : (P, S, K, Y) sisi B : ()}1. Pemuda menyeberangkan kambing dari sisi A ke sisi B

    { sisi A : (-, S, -, Y) sisi B : (P,-,K,-)}1. Pemuda menyeberang sendiri dari sisi B ke sisi A2. Pemuda menyeberangkan srigala dari sisi A ke sisi B3. Pemuda menyeberangkan kambing dari sisi B ke sisi A4. Pemuda menyeberangkan sayur dari sisi A ke sisi B5. Pemuda menyeberangkan sendiri dari B ke A6. Pemuda menyeberangkan kambing dari sisi A ke sisi B{ sisi A : () sisi B : (P, S, K, Y) }

  • Algoritmna merupakan kerangka dasar darikonsep suatu program untuk menyelesaikanmasalah .

    Algoritma tidak terikat dari suatu bahasapemrograman manapun atau dengan kata lain bahasa yang digunakan adalah bebas denganbahasa apapun, baik memakai bahasaIndonesia, bahasa Inggris atau bahasa lainnya.

    http://www.nusinau.com/tag/konsep/http://www.nusinau.com/tag/program/http://www.nusinau.com/tag/algoritma/http://www.nusinau.com/pemrograman/

  • Setiap orang punya pola pikir yang berbeda, karenaitu akan menghasilkan algoritma yang berbeda

    Algoritma dikatakan benar apabila dapatmemecahkan masalah

    Perlu dipertimbangkan masalah efisiensi dalampenyusunan algoritma

    Pemilihan rute jalan, misalnya : Beberapa rute mungkin akan menghasilkan tujuan yang

    sama Ada rute yang lebih efisien dibanding rute lainnya Sebaiknya yang diambil adalah rute terpendek

    http://www.nusinau.com/tag/algoritma/http://www.nusinau.com/tag/algoritma/http://www.nusinau.com/tag/algoritma/

  • Kriteria/ Aspek Penting dari Algoritma

    1. Finiteness Algoritma harus berhenti after a finite number of steps2. Definiteness Setiap langkah harus didefinisikan secara tepat, tidak boleh membingungkan (ambiguous)3. Input Sebuah algoritma memiliki nol atau lebih inputyang diberikan kepada algoritma sebelum dijalankan4. Output Sebuah algoritma memiliki satu atau lebih output, yang biasanya bergantung kepada input5. Effectiveness Setiap algoritma diharapkan miliki sifat efektif

    http://www.nusinau.com/tag/algoritma/http://www.nusinau.com/tag/algoritma/http://www.nusinau.com/tag/input/http://www.nusinau.com/tag/algoritma/http://www.nusinau.com/tag/input/http://www.nusinau.com/tag/algoritma/http://www.nusinau.com/tag/algoritma/http://www.nusinau.com/tag/input/http://www.nusinau.com/tag/algoritma/

  • FLOWCHART

    Flowchart lebih baik dibandingkan pseudocode

    Merupakan gambaran dalam bentuk diagram alir darialgoritma-algoritma dalam suatu program yang menyatakanarah alur program tersebut

    Disajikan dalam bentuk grafik/gambar

    Dapat membantu programmer maupun orang lain dalammemahami alur program (apa saja input, proses dan output dari program)

    Representasi visual, karena itu lebih mudah dipahami

    Jumlah simbol yang digunakan sedikit, karena itu lebihsederhana dan lebih mudah dipelajari

    http://www.nusinau.com/tag/flowchart/http://www.nusinau.com/tag/algoritma/http://www.nusinau.com/tag/algoritma/http://www.nusinau.com/tag/program/http://www.nusinau.com/tag/program/http://www.nusinau.com/tag/gambar/http://www.nusinau.com/tag/program/http://www.nusinau.com/tag/input/http://www.nusinau.com/tag/program/

  • Flow Chart

    flow chart (diagram alir)

    (menggambarkan urutan langkah-langkah kegiatan /program mulai dari awal sampai akhir dengan menggunakan simbol atau gambar tertentu.)

    Kegunaan : mendesain dan mempresentasikan program

  • Kaidah-Kaidah Umum PembuatanFlowchart Program

    Dalam pembuatan flowchart Program tidak ada rumus atau patokan yang bersifat mutlak. Karena flowchart merupakan gambaran hasilpemikiran dalam menganalisis suatu masalahdengan komputer. Sehingga flowchart yang dihasilkan dapat bervariasi antara satupemrogram dengan yang lainnya.

  • Namun secara garis besar setiap pengolahanselalu terdiri atas 3 bagian utama, yaitu:Input,

    Proses pengolahan dan

    Output

  • Untuk pengolahan data dengan komputer, urutan dasarpemecahan suatu masalah:

    START, berisi pernyataan untuk persiapan peralatan yangdiperlukan sebelum menangani pemecahan persoalan.

    READ, berisi pernyataan kegiatan untuk membaca data darisuatu peralatan input.

    PROSES, berisi kegiatan yang berkaitan dengan pemecahanpersoalan sesuai dengan data yang dibaca.

    WRITE, berisi pernyataan untuk merekam hasil kegiatan keperalatan output.

    END, mengakhiri kegiatan pengolahan.

  • Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunanflowchart, namun ada beberapa anjuran:

    Hindari pengulangan proses yang tidak perludan logika yang berbelit sehingga jalannyaproses menjadi singkat.

    Jalannya proses digambarkan dari atas kebawah dan diberikan tanda panah untukmemperjelas.

    Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.

  • Lambang FlowchartTerminator (mulai/selesai)

    Input/output

    Proses

    Decision (percabangan)

    Data Flow (Aliran data)

    Preparation (pemberian nilai awal suatu

    variabel)

    Call (memanggil prosedur/fungsi)

    Connector (di halaman yg sama

    Connector ( di halaman lain)

  • Kasus:

    Buatlah sebuah Algoritma denganmenggunakan flowchart, mencari luas persegipanjang.

    Solusi:

    Perumusan untuk mencari luas persegi panjangadalah: L = p. l

    di mana, L adalah Luas persegi panjang, p adalah panjang persegi, dan l adalah lebarpersegi.

  • Keterangan 1:1. Simbol pertama menunjukkan dimulainya sebuah program.2. Simbol kedua menunjukkan bahwa input data dari p dan l.3. Data dari p dan l akan diproses pada simbol ketiga denganmenggunakan perumusan L = p. l4. Simbol keempat menunjukkan hasil output dari proses dari simbolketiga.5. Simbol kelima atau terakhir menunjukkan berakhirnya programdengan tanda End.

  • kuis

    Buatlah sebuah Algoritma denganmenggunakan flowchart untuk menghitungluas lingkaran!

  • Case (penggunaan Decision dalamproses)

    Membuat algoritma dengan flowchart untukmenentukan apakah seorang mahasiswatersebut LULUS atau GAGAL berdasar NilaiAkhir (NA) yang didapat.

    dengan ketentuan : Jika NA >= 60, makaLULUS, kalau tidak, maka GAGAL.

    Buatlah algoritma dg flowchart untukmenyelesaikan permasalahan di atas!

  • INPUT :

    TUGAS, UTS, dan UAS

    Proses :

    NA = (10%xABSEN)+(15%xTUGAS)+(25%XUTS)+(50%XUAS)

    Output :

    NA ( Nilai akhir)

  • Pseudo Code berupa pengkodean atau penandaan yang menyerupai suatu program

    Pseudo Code sering digunakan dalam penulisan algoritma.

    Contoh : Mencari bilangan terkecil dari dua bilangan yang dimasukkan.

    Algoritma :

    1. Masukkan bil pertama

    2. Masukkan bil kedua

    3. Jika bil pertama < bil kedua maka kerjakan langkah 4, bila tidak makadikerjakan langkah 5.

    4. Tampilkan bil pertama

    5. Tampilkan bil kedua

    http://www.nusinau.com/tag/pseudo-code/http://www.nusinau.com/tag/program/http://www.nusinau.com/tag/pseudo-code/http://www.nusinau.com/tag/algoritma/http://www.nusinau.com/tag/contoh/http://www.nusinau.com/tag/bilangan/http://www.nusinau.com/tag/bilangan/http://www.nusinau.com/tag/algoritma/

  • Menghitung rata-rata tiga buah data

    Algoritma dengan strukturbahasa Natural (Deskriptif)

    - Baca bilangan a, b, dan c

    - Jumlahkan ketiga bilangantersebut

    - Bagi jumlah tersebutdengan 3

    - Tulis hasilnya

    Algoritma dengan pseudocode

    input (a, b, c)

    Jml = a+b+c

    Rerata = Jml/3

    Output (Rerata)

  • Latihan

    Buatlah sebuah Algoritma program denganmenggunakan notasi Algoritmik Deskriptif danPseudo Code untuk menghitung luaslingkaran!

  • Nilai Terbesar Dari 2 Buah Bilangan

    deskriptif

    Baca bilangan pertama, danbilangan kedua

    Bandingkan nilai pertamadengan nilai kedua.

    sehingga di dapat nilaiterbesar di antara keduabilangan tersebut.

    Pseudo code

    Input bil1, bil2

    if bil1 > bil2, then besarbil1

    Besar bil2

    Output(Besar)

  • Nilai Terbesar Dari 3 Buah Bilangan

    deskriptif

    Baca bilangan pertama , bilangan kedua dan bilanganketiga

    Bandingkan nilai pertamadengan nilai kedua.

    Kemudian yang lebih besar diantara nilai tersebut dibandingkan dengan nilaiberikutnya (nilai ke tiga)

    sehingga di dapat nilaiterbesar di antara ketigavariabel tersebut.

    Pseudo code

    Input bil1, bil2, bil3

    Besar bil1

    If bil2 > Besar, then besar bil2

    If bil3 > besar, then besar bil3

    Output (besar)

  • TIGA BAGIAN UTAMA PENULISAN ALGORITMA :

    Judul (Header)

    Kamus

    Algoritma

  • Contoh :

    JUDUL ( Header)

    Program Jumlah_Bilangan { judul algoritma }

    KAMUS

    Kamus :

    c,d ,e: integer

    ALGORITMA

    Algoritma :

    Input (c,d)

    If c < d then

    e c + d

    Else

    e c-d

    Output( e )

  • TIPE DATA, OPERATOR DAN EKSPRESI

    Program Komputer memanipulasi data (variabel dan konstanta) di dalam memori.

    TIPE DATA : Untuk menyatakan tipe data dari sebuah variabel (peubah)

    pada Deklarasi.

    OPERATOR : Menspesifikasikan operasi apa yang dapat dilakukan

    terhadap peubah (variabel) dan konstanta.

    EKSPRESI : Mengkombinasikan peubah-peubah dan dan konstanta

    untuk menghasilkan hasil baru.

  • TIPE DATA

    1. TIPE DATA DASAR :

    Tipe yang dapat langsung dipakai.

    2. TIPE DATA BENTUKAN :

    Tipe dasar atau dari tipe bentukan lain yang sudah didefinisikan sebelumnya.

  • 1. TIPE DATA DASAR

    Dalam pemrograman, yang termasuk ke dalam tipe dasar adalah : Bilangan lojik, bilangan bulat, karakter, bilangan riil, dan string

    Bilangan lojik, bilangan bulat, dan karakter disebut juga dengan TIPE ORDINAL (nilainya ada dalam urutan).

  • BILANGAN LOJIK

    NAMA TIPE : Boolean

    RANAH NILAI : Dua buah nilai : Benar (true) dan Salah (false) bilangan logik :benar 1, salah 0

    KONSTANTA : True dan False

    OPERASI : Operasi Logika atau operasi boolean Operasi logika menghasilkan nilai : true atau false Operator logika : AND, OR dan XOR

  • BILANGAN LOJIK - next

    a b not a a and b a or b a xor b

    True True False True True False

    True False False False True True

    False True True False True True

    False false True false False False

  • BILANGAN LOJIK - next

    Contoh operasi logika :

    Misalkan X, Y, dan Z adalah peubah (variabel) bertipe boolean.

    Dimana : X bernilai true, Y bernilai false, dan Z bernilai true

    Maka :operasi logika hasil

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

    ( x and y) or z true

    A and ( y or z) true

    Not (x and z) false

    (y xor z) and y false

  • BILANGAN BULAT

    Bilangan yang tidak mengandung pecahan desimal, misal : 34, 8, 0, -17, 45678901, dsb

    NAMA TIPE :

    Integer

    RANAH NILAI :

    tipe Rentang nilai Format

    Byte 0 .. 255 8 bit

    Shortint -128 .. 127 8 bit

    Word 0 .. 65535 16 bit

    Integer -32768 .. 32767 16 bit

    Longint -2147483648 .. 2147483647 32 bit

  • BILANGAN BULAT - next

    Contoh ;

    deklarasi : X : byte

    Y : integer

    Maka :

    Peubah X tidak dapat dioperasikan untuk nilai-nilai di atas 255

    Peubah Y tidak dapat dioperasikan untuk nilai-nilai di atas 32767

  • Contoh program

    Program salahtipe;

    Uses

    wincrt;

    Var

    a,b,x : shortInt;

    Begin

    a:=10;

    b:=20;

    X:=a*b; {x akan bernilai -56, bukan 200}

    Writeln(Nilai x=, x);

    End.

  • BILANGAN BULAT - next

    KONSTANTA : Harus ditulis tanpa mengandung titik desimal : Contoh : 78, -14, 7654, 0, 5, 9999, dsb

    OPERASI :1. Operasi aritmetika :

    + (tambah)- (kurang)* (kali)

    Div (hasil bagi bilangan bulat) Mod (sisa hasil bagi)

    Contoh :3 + 10 hasil : 1310 DIV 3 hasil : 310 MOD 3 hasil : 1

  • BILANGAN BULAT - next

    2. Operasi Perbandingan :

    Menghasilkan nilai boolean (true dan false)

    < Lebih kecil

    Lebih kecil atau sama dengan

    > Lebih besar

    Lebih besar atau sama dengan

    = Sama dengan

    Tidak sama dengan

  • Contoh : operasi perbandingan

    3 < 8 True

    74 > 101 False

    17 = 17 True

    (24 div 3) 8 false

  • BILANGAN RIIL

    Bilangan yang mengandung pecahan desimal : 3.65, 0.003, 29.0, .24, dll

    NAMA TIPE :

    Real

    RANAH NILAI :

    tipe Rentang nilai Format

    Real 2.9 x 10 -39 .. 1.7 x 1038 6 byte

    Single 1.5 x 10-45 .. 3.4 x 1038 4 byte

    Double 5.0 x 10-324 .. 1.7 x 10308 8 byte

    extended 3.4 x 10-4932 .. 1.1 x 104932 10 byte

  • BILANGAN RIIL - next

    KONSTANTA :harus ditulis dengan tanda titik desimal

    contoh : 0.78, -14.2376, 0.0, .5, 99.0 OPERASI :

    1. operasi Aritmetika+ (tambah, -(kurang), *(kali), / (bagi)

    Contoh:6.4 + 5.7 hasil : 12.18.0 2.8 hasil: 5.2

    10/2.5 hasil: 4.0 (operasi bilangan campuran)7.2 * 0.5 hasil : 3.6

  • BILANGAN RIIL - next

    2. Operasi Perbandingan :

    menghasilkan nilai boolean (true dan false)

    Tipe bilangan riil tidak mengenal operator kesamaan (=), karena bilangan riil tidak bisa disajikan secara tepat oleh komputer,

    Misal : 1/3 tidak sama dengan 0.33333, sebab 1/3 = 0.33333(dg angka 3 yg tidak pernah berhenti).

    < Lebih kecil

    Lebih kecil atau sama dengan

    > Lebih besar

    Lebih besar atau sama dengan

    Tidak sama dengan

  • KARAKTER

    Semua huruf-huruf abjad, semua tanda baca, karakter khusus, karakter kosong (null) .

    NAMA TIPE : Char

    RANAH NILAI : Adalah semua huruf di dalam alfabet (a..z, A..Z, angka

    desimal (0..9), tanda baca(.,:,!,dll), operator aritmetika(+,-,dll), karakter khusus($,#,@,dll)

    KONSTANTA : Karakter harus diapit oleh tanda petik tunggal.

    Contoh : h, y, ., , 9, $

  • KARAKTER - next OPERASI :

    Hanya Operasi Perbandingan :

    Contoh :a = a hasil: trueT = t hasil: falsey y hasil: falsem < z hasil: trueq > z hasil : false

    < Lebih kecil

    Lebih kecil atau sama dengan

    > Lebih besar

    Lebih besar atau sama dengan

    = Sama dengan

    Tidak sama dengan

  • BUATLAH program komputer dengan bahasapascal dengan ketentuan sbb:

    Lakukan perbandingan :

    a > b

    4 # 4

    Simpanlah hasil masing perbandingan di atas kedalam variabel.

    Tampilkanlah hasil perbadingan dari prosesperbandingan di atas!

  • STRING

    Adalah untaian karakter dengan panjang tertentu.

    NAMA TIPE : String

    RANAH NILAI : Deretan karakter yg telah didefinisikan pada ranah

    karakter.

    KONSTANTA : Semua konstanta string harus diapit oleh tanda petik

    tunggal.

    Contoh: BANDUNG, ganesha, Jl. Pahlawan no. 76, , k768532, dll.

  • STRING - next

    OPERASI :

    1. Operasi Penyambungan (Concatenation):

    Operator : + (penyambungan, bukan tambah)

    Contoh :

    Teknik + Informatika hasil : Teknik Informatika

    aaa + bbb hasil: aaa bbb

    1 + 2 hasil: 12

    2. Operasi Perbandingan :

  • STRING - next

    2. Operasi Perbandingan

    menghasilkan nilai boolean (true dan false)

    Contoh:

    abcd = abc hasil: false

    aku < AKU hasil: true

    < Lebih kecil

    Lebih kecil atau sama dengan

    > Lebih besar

    Lebih besar atau sama dengan

    = Sama dengan

    Tidak sama dengan

  • Latihan

    Buatlah notasi Algoritma lengkap denganmenggunakan pseudocode untuk :

    Menyambungkan SAYA dengan RAJIN

    Ketentuan : antara SAYA dan RAJIN dipisahkan dengan 2 spasi

    Menjumlahkan 34.5 + 20

    Tampilkanlah hasil masing-masing proses di atas!

  • Latihan - next

    Buatlah notasi Algoritma lengkap denganmenggunakan pseudocode untuk menghitungluas segitiga dengan ketentuan sbb:

    Berikanlah nilai bilangan bulat kepada alas dantinggi sebagai inputan.

    Hitunglah luas segitiga dengan rumus :

    Luas

  • Latihan - next

    Buatlah notasi Algoritma lengkap denganmenggunakan pseudocode untuk menghitungluas lingkarang dengan ketentuan sbb:

    Deklarasikanlah PHIE sebagai bilangan tetap

    Berikanlah nilai bilangan bulat kepada jari-jarisebagai inputan.

    Hitunglah luas lingkaran dengan rumus :

    Luas

  • Syarat penamaan (variabel, konstanta, nama type bentukan, namafield, nama fungsi,nama prosedur)

    Harus unik (tidak boleh dua buah nama yang sama)

    Harus dimulai dengan huruf alfabet (tidak bolehdimulai dg angka, spasi, atau karakter khusus lainnya)

    Huruf besar dan huruf kecil tidak dibedakan

    Karakter penyusun nama hanya boleh huruf alfabet, angka, dan _ (underscore)

    Tidak boleh mengandung operator aritmetika, relasional, tanda banca, dan karakter khusus lainnya

    Karakter tidak boleh dipisah dengan spasi

    Panjang nama tidak dibatasi

  • Contoh penamaan NAMA

    Contoh yg salah Contoh yg benar

    6titik

    Nilai ujian

    PT-1

    Hari!

    A 1

    Titik6 atau titik_6

    NilaiUjian atau Nilai_ujian

    PT_1 atau PT1

    Hari

    A1

  • Yg diberi nama dalam Algoritma :

    1. Peubah (variable) :Tempat menyimpan nilai yg isinya dapat diubah

    Contoh: X, nilai_ujian, jumlah : real

    k : integer

    2. Konstanta (constant)Tempat penyimpanan di dalam memori yg nilainya tetap

    selama pelaksanaan program dan. Notasi yg digunakan adalah const

    Contoh ;

    const

    phi = 3.14, Nmaks = 100, sandi = xyz, dll

  • Yg diberi nama dalam Algoritma -next:

    3. Tipe Bentukan :

    Nama tipe bentukan diberikan oleh pemrogramcontoh:

    Type titik : record

    TypeJam : record

    < hh : integer {0..23}mm : integer {0..59}ss : integer {0..59} >

    P : titikJ1, J2 : Jam

    Titik dan Jam adalah nama tipe, sedangkan P adalah variabel yg bertipe Titik, J1 dan J2 adalah variabel yg bertipe Jam

  • Yg diberi nama dalam Algoritma -next:

    4. Nama Fungsi :

    Function Maksimum (input A,B : integer) integer

    { mengembalikan nilai terbesar antara A dan B}

    Maksimum adalah nama fungsi

    5. Nama prosedur :

    Procedure Tukar(input/output A, B : integer)

    { mempertukarkan nilai A dan B}

    Tukar adalah nama prosedur

  • NILAI dalam Algoritma

    Nilai adalah besaran dari tipe data yang terdefinisi (tipe dasar atau tipe bentukan)

    Dapat berupa data yg disimpan di dalam peubah atau konstanta, nilai dari hasil hitung, atau nilai yg dikirim oleh fungsi

    Pada ALgoritma, memanipulasi nilai di dalam peubah/variabel (yg bertipe sama)

  • Pengisian NIlai ke dalam Peubah (Variable):

    1. Pengisian secara langsung (assignment):Mengisi sebuah nilai ke dalam peubah secara langsung (nilai yg diisikan harus

    bertipe sama dg tipe peubah)contoh :

    M 16P M * 2M P + 100P P + M

    2. Pembacaan :Nilai peubah dapat diisi secara eksternal dafri piranti masukan, misalnya dari

    keyboard, dari file, mouse, dsb.Akan membaca sesuai apa yg kita masukkan (inputkan).Contoh :

    Read (M): komputer membaca nilai M yg diinputkan dari luar (mis: keyboard), jika nilai

    yg diketik adalah 78, maka lokasi memori yg bernama M sekarang berisi 78

  • EKSPRESI

    Transformasi nilai menjadi keluaran dilakukan melalui sutu perhitungan (komputasi)

    Cara perhitungan itu dinyatakan dalam suatu ekspresi

    Ekspresi terdiri atas :OPERAND dan OPERATOR

  • Tiga macam ekspresi :

    1. Ekspresi Aritmetik (operator aritmetik):Contoh : a*b, a*b/c, a div b * c, a+b*c

    : d a*b (tipe data d harus sama dengan hasil hitungan ekspresi a*b)

    2. Ekspresi Relasional (operator relasional):Contoh : not ada, ada or ketemu, x < 5,

    ada or (x=y), dll.

    3. Ekspresi String (operator penyambungan (+))Contoh :

    Jl. Ganesa + No.12

  • Jenis Proses Algoritma

    Algoritma berisi langkah2 penyelesaian suatumasalah (berurut, pemilihan, pengulanganaksi)

    Konstruksi Algoritma :

    Runtunan (sequence process)

    Pemilihan (selection process)

    Pengulangan (repetition process)

  • Runtunan (sequence process)

    Terdiri dari satu atau lebih pernyataan Tiap pernyataan dikerjakan secara berurutan sesuai dg urutan penulisannya

    (sebuah instruksi dilaksanakan setelah instruksi sebelumnya selesai dilaksanakan)

    Bentuk umum :proses 1proses 2proses 3

    Contoh: mempertukarkan dua nilai dari dua buah variabel (peubah) A dan B.Algoritma :1. isikan nilai A ke dalam C2. isikan nilai B ke dalam A3. isikan nilai C ke dalam B

    Hasil akhir : varibel A berisi nilai dari varibale B, dan variabel B berisi nilai dari variabel A .

  • LATIHAN

    Buatlah program komputer dengan bahasapascal untuk menukarkan 2 buah bilanganbulat, dengan ketentuan sbb: Input nilai lansung terhadap 2 buah variabel :

    A = 150

    B = 200

    Lakukakanlah pertukaran nilai Variabel A dan B

    Tampilkanlah Hasil pertukaran tsb!

    Gunakanlah jenis Sekuential Proses untkpertukaran dua buah variabel tsb!

  • Pemilihan (selection process)

    Sebuah aksi dikerjakan jika kondisi tertentu dipenuhi (True) dan apabila suatu kondisi tidak terpenuhi (false) maka program akan melakukan aksi lain (jika ada) atau langsung keluar dari blok pemilihan.

    Contoh:

    jika lampu traffic light berwarna merah, makaberhenti

    Dalam Algoritma dan pemrograman Struktur pemilihan dapat didefinisikan dengan dua cara yaitu menggunakan statemen IF atau CASE.

  • Struktur IF

    Statemen IF akan diikuti oleh ekspresi (sebagai kondsi yang diperiksa) dan selalu berpasangan dengan kata kunci THEN.

    Bentuk umum dari selection process : IF

    if kondisi then

    aksi

  • Pemilihan (selection process)-IF-next

    Struktur pemilihan If-then : hanya memberikan satupilihan aksi

    Struktur pemilihan If-then-else Memilih satu dari dua buah aksi bergantung pada nilai

    kondisinya.bentuk umum : if kondisi then

    aksi 1else

    aksi 2

    Contoh : if x > y thentulis x sebagai bilangan terbesar

    elsetulis y sebagai bilangan terbesar

  • Algoritma Pemilihan satu Aksi (IF-THEN)

    Contoh:Mencetak genap jika data masukan adalah bilangan genap.

    Notasi Algoritma :

    Program Genap{mencetak pesan bilangan genap jika sebuah bilangan bulat yang dibaca dari piranti

    masukan merupakan bilangan genap}

    Kamusx : integer

    AlgoritmaRead (x)If x mod 2 = 0 then

    write(genap)endif

  • Algoritma Pemilihan dua aksi (IF-THEN-ELSE)

    Contoh:Mencetak genap jika data masukan adalah bilangan genap atau mencetak ganjil jika data

    masukan adalah bilangan ganjil.

    Notasi Algoritma :

    Program Genap{mencetak pesan bilangan genap jika sebuah bilangan bulat yang dibaca dari piranti

    masukan merupakan bilangan genap dan mencetak bilangan ganjil jika sebuah bilangan bulat yang dibaca merupakan bilangan ganjil}

    Kamusx : integer

    AlgoritmaRead (x)If x mod 2 = 0 then

    write(genap)Else

    write(ganjil)endif

  • Latihan IF

    Buat notasi algoritma lengkap untukmenseleksi kondisi di bawah ini

    Jika nilai >= 75 maka dinyatakan lulus

    Jika nilai >=60 maka dinayatakan anda melakukanher

    Jika nilai < 60 maka dinyatakan gagal

    Gunakanlah konstruksi IF untuk membuatseleksi proses di atas!

  • Pemilihan (selection process)-Nested-IF

    Struktur pemilihan bersarang (nested-if) : terdapat strktur IF didalam IF lainnya Aksi yang dilakukan lebih dari 2 buah

    Bentuk umum :if kondisi1 then

    aksi1else if kondisi2 then

    aksi2else

    aksi-alternatif

    Contoh :if x > y then

    if x > z thentulis x sebagai bilangan terbesar

    elsetulis z sebagai bilangan terbesar

    elseif y > z then

    tulis y sebagai bilangan terbesarelse

    tulis z sebagai bilangan terbesar

  • Tiga aksi atau lebih (Nested-IF)

    Tiga kasus :

    Notasi algoritma :

    If kondisi1 thenaksi1

    Elseif kondisi2 then

    aksi2else

    if kondisi3 thenaksi3

    endifendif

    endif

    Empat kasus :

    Notasi algoritma :

    If kondisi1 thenaksi1

    Elseif kondisi2 then

    aksi2else

    if kondisi3 thenaksi3

    elseif kondisi4 then

    aksi4endif

    endifendif

    endif

  • Algoritma Pemilihan tiga aksi atau lebih (Nested-IF)

    Contoh:Menentukan bilangan positif, negatif atau nol dari sebuah bilangan bulat yang diinput dari piranti masukan.

    Notasi Algoritma :

    Program JenisBilanganBulat{menentukanapakah sebuah bilangan bulat merupakan bilangan positif, negatif, atau nol }

    Kamusx : integer

    AlgoritmaRead (x)If x > 0 then

    write(positif)Else

    if x < 0 thenwrite(negatif)

    elseif x = 0 then

    write(nol)endif

    endifendif

  • Tugas

    Buat Notasi Algoritma untuk statemen pemilihan 4 kasus dengan menggunakanstruktur seleksi proses NESTED-IF

    Transformasikanlah Algoritma di atas ke dalambahasa Pascal

  • kelebihan struktur/jenis proses pemilihan

    kemampuannya yg memungkinkan pemrosesmengikuti jalur aksi yg berbeda berdasarkankondisi yg ada

    Memungkinkan menulis algoritma untukpermasalah praktis yg demikian kompleks.

  • Struktur CASE

    Konstruksi CASE dapat menyederhanakan IF THEN ELSE yang bertingkat (lebih dari 2 kasus)

  • Konstruksi CASECASE ekspresi if ekspresi = nilai1 then

    Nilai1 : aksi1 aksi1Nilai2 : aksi2 elseNilai3 : aksi3 if ekspresi = nilai2 then... aksi2... elseNilain : aksin if ekspresi = nilai3 thenOtherwise : aksix aksi3

    endCASE else {otherwise}aksi x

    endif

    endif

    endif

    ----------------------------------------------------------------------------Ekspresi menghasilkan suatu nilai (konstanta), range dari

    konstanta yang bukan bertipe real.

  • Contoh CASE

    Algoritma untuk membaca nomor hari (integer) , lalu menuliskan nama hari sesuai dengan angka harinya.

    -------------------------------------------------------------------------------Read(nomor_hari)CASE nomor_hari

    1: write(Minggu)2: write(Senin)3: write(Selasa)4: write(Rabu)5: write(Kamis)6: write(Jumat)7: write(Sabtu;)Otherwise: write(bukan hari yang benar)

    endCASE

  • NOTASI ALGORITMA

    PROGRAM NamaHari{ mencetak nama hari berdasarkan nomor hari (1..7) }

    KAMUSNomor_hari : integer

    ALGORITMARead(nomor_hari)CASE nomor_hari

    1: write(Minggu)2: write(Senin)3: write(Selasa)4: write(Rabu)5: write(Kamis)6: write(Jumat)7: write(Sabtu)Otherwise: write(bukan hari yang benar)

    endCASE

  • Tidak semua bahasa pemrograman menyediakan struktur CASE

    Gunakan struktur IF-THEN-ELSE

  • Ekuivalesi if-then-else dg CASE

    If-Then-ElseRead(angka)

    If angka = 1 then

    write(satu)

    Else

    if angka = 2 then

    write(dua)

    elses

    if angka = 3 then

    write(tiga)

    elses

    if angka = 4 then

    write(empat)

    else

    write(angka yg dimasukan salah)

    endif

    endif

    endif

    endif

    Case

    Read(angka)

    Case angka

    1: write(satu)

    2: write(dua)

    3: write(tiga)

    4: write(empat)

    otherwise :write(angka ygdimasukan salah)

    endcase

  • Latihan CASE

    Buat algoritma untuk konversikan Huruf ke Status dari Nilai Mahasiswa, dengan menggunakan Struktur CASE.

    Seperti :A = Sangat Baik

    B = Baik

    C = Cukup

    D = Kurang

    E = Sangat Kurang

  • Uji kasus

    Lihat hal 126 (hand book)

  • Jenis Proses : PENGULANGAN(Repetition Process)

    Kelebihan komputer dibanding manusia adalah kemampuan untuk melaksanakan perintah berulangkali tanpa mengenal lelah dan bosan

    Dalam algoritma, pengulangan (repetitionatau looping) dapat dilakukan beberapa kali sampai kondisi pemberhentian pengulangan tercapai

  • Struktur Pengulangan

    Awal pengulangan

    Badan pengulangan

    Akhir pengulangan

    Inisialisasi dan terminasi tidak selalu harus ada, namun pada beberapa kasus inisialisasi umumnya diperlukan

  • Tiga konstruksi pengulangan

    FOR (pengulangan tanpa kondisi : jumlah pengulangan sudah diketahui, sebelum konstruksi pengulangan dieksekusi)

    WHILE

    REPEAT

    WHILE dan REPEAT (pengulangan dengan kondisi : jumlah pengulangan tidak diketahui sebelum eksekusi program, yang dapat

    ditentukan hanyalah kondisi berhenti pengulangan)

  • Pengulangan - FOR

    Diperlukan sebuah peubah (variable) pencacah (counter) untuk menghitung sudah berapa kali pengulangan dilakukan

    Bentuk umum pengulangan FOR ada dua macam :

    FOR menaik (ascending) / FOR positif

    FOR menurun (descending) / FOR negatif

  • FOR menaik (ascending) / FOR positif

    Bentuk umum:

    For pencacahnilai_awal to nilai_akhir do

    Aksi

    Endfor

  • Contoh pengulangan FOR Positif untuk Satu Aksi

    PROGRAM cetak_satuaksi

    KAMUS

    i: integer {pencacah pengulangan}

    ALGORITMA

    For i1 to 5 do {ulang sebanyak 5 kali}

    Write(I Love Dinda) {aksi yang diulang}

    endfor

  • Contoh Notasi Algoritma pengulangan FOR Positif untuk membuat tabel

    PROGRAM cetak_tabelKAMUS

    a,b,c: integer Bagi : real;

    ALGORITMAWrite(-----------------------------------)write(a a*a a*a*a 1/a)Write(-----------------------------------)for a1 to 10 do

    b a*ac a*a*abagi 1/a

    Write(a,b,c,bagi)EndforWrite(-----------------------------------)

  • FOR menurun (descending) / FOR negatif

    Bentuk umum:

    For pencacahnilai_akhir downto nilai_awal do

    Aksi

    Endfor

  • Contoh pengulangan FOR Negatif untuk Satu Aksi

    PROGRAM cetak_ulangnegatif

    KAMUS :

    i: integer {pencacah pengulangan}

    ALGORITMA :

    For i10 downto 1 do {ulang sebanyak 10 kali secara menurun}

    Write(i) {Aksi yang diulang}

    endfor

  • Pengulangan FOR tersarang (nested-FOR)

    Perulangan FOR berada pada perulangan FOR yang lainnya

    Perulangan yang lebih dalam akan diproses terlebih dahulu sampai habis, kemudian perulangan yang lebih luar baru akan bertambah, masuk lagi ke perulangan dalam sampai habis, dst. Dan berakhir pada akhir pengulangan luar.

  • Contoh :Pengulangan FOR tersarang (nested-FOR)

    PROGRAM nested_for

    KAMUS

    I,j: integer {pencacah pengulangan}

    ALGORITMA

    For i1 to 3 do

    For j1 to 2 do

    write(i,j)

    endfor

    Endfor

  • Contoh Tampilan

    tampilan112123123412345

    Tampilan543214321321211

    For a 1 to 5 do for b 1 to a do write(b, ) endfor writeln Endfor

    For a 5 downto 1 do for b a downto 1 do write(b) endfor writeln endfor

  • bb

    Buatlah Algoritma lengkap untukmenginputkan data bilangan genap dariinputan eksternal (keyboard) sebanyak 4 bilangan :

    Hitunglah jumlah semua bilangan tsb?

    Hitunglah rata-rata dari semua bilangan yang andainputkan tsb!

    Tampilkanlah jumlah dan rata_rata tsb!

  • Struktur pengulangan- repeat-until

    Bentuk umum :Repeat

    aksi

    Until kondisi

    (pengulangan aksi dilakukan hingga kondisi berhentiterpenuhi)

    - Pengulangan akan dijalankan terus kalau kondisimasih bernilai FALSE

    - Pengulangan berhenti, jika kondisi bernilai TRUE

  • Contoh :

    ALGORITMA :

    I 1

    Repeat

    write (hello pascal)

    I I + 1

    Until I > 10

  • Struktur pengulangan: while-do

    Bentuk umum :

    While kondisi doAksi

    : selama kondisi (persyaratan) pengulangan masih benar, maka aksi dikerjakan

  • Contoh WHILE-DO

    Algoritma :

    I 0

    While I < 5 do

    Write (I)

    I I + 1

    endwhile

  • while-do vs repeat-until

    Repeat-until vs while-doKondisi pengulangan kondisi pengulanganDi evaluasi di akhir di evaluasi di awal

    Pernyataan REPEAT memiliki makna yang sama dg WHILEDalam beberapa masalah kedua pernyataan tsb komplemen

    satu sama lain.

    Paling sedikit statemen-statemen dalam repeat until diprosessekali, karena seleksi kondisi ada pada statemen until yang terletakdibawah.

    Pada while do paling sedikit dikerjakan nol kali, karena seleksikondisi ada pada statemen while yang terletak diatas, sehinggaapabila kondisi tidak terpenuhi maka tidak akan masuk ke dalamlingkungan perulangannya.

  • Kedua script diatas sengaja dibuat nilai awal yang tidak memenuhi kondisi pada tiapperulangan, baik repeat...until maupun while-do. Jika kedua script diatas dijalankan

    maka script dengan perulangan while-do tidak akan menampilkan hasil apapun, sementara script dengan perulangan repeat...until tetap akan menjalankan statement

    program minimal satu kali, dan menampilkan hasil seperti ini:

  • WHILE atau REPEAT ?

    Gunakan konstruksi WHILE pada kasus ygmengharuskan terlebih dahulu pemeriksaankondisi objek sebelum objek dimanipulasi

    Gunakan konstruksi REPEAT pada kasus ygterlebih dahulu memanipulasi objek, barukemudian memeriksa kondisi objek tsb.

  • perbandingan

    WHILE (benar)

    ALGORITMA :

    S 0

    Read(x)

    While x 0 do

    s s + 1/x

    read(x)

    Endwhile

    Write (s)

    Repeat ( salah)

    ALGORITMA :

    S 0

    Repeat

    read(x)

    s s + 1/x

    Until x = 0

    Write (s)

  • perbandingan

    Repeat ( benar)

    ALGORITMA :

    Repeat

    write( MENU )

    write(1. Baca Data)

    write(2. cetak data)

    write(3. keluar)

    write(masukan pilihan anda(1/2/3) ? )

    read(nomormenu)

    case nomormenu

    1 : write (anda memilih menu nomor 1)

    2 : write(anda memilih meniu nomo 2)

    3 : write(keluar program

    endcase

    Until nomormenu = 3

    While (salah)

    ALGORITMA :

    While nomormenu 3 do

    write( MENU )

    write(1. Baca Data)

    write(2. cetak data)

    write(3. keluar)

    write(masukan pilihan anda(1/2/3) ? )

    read(nomormenu)

    case nomormenu

    1 : write (anda memilih menu nomor 1)

    2 : write(anda memilih meniu nomo 2)

    3 : write(keluar program

    endcase

    endwhile

  • Latihan

    Buatlah sebuah algoritma lengkap, untukmenghitung jumlah deret bilangan bulat dari 3 sampai dengan 10. dengan menggunakankonstruksi pengulangan REPEAT-UNTIL !

    Transformasika algoritma di atas ke program komputer dg bahasa pascal

    Lakukan modifikasi algoritma dan program komputer di atas untuk menghitung nilai rata-rata, dan tampilkanlah nilai rata-rata tsb.

  • PEMROGRAMAN MODULAR

    adalah suatu teknik pemrograman di mana program yang biasanya cukup besar dibagi-bagi menjadi beberapa bagian program yang lebih kecil .

    Dalam beberapa bahasa pemrograman disebut : sub-rutin, modul, prosedur, atau fungsi.

    http://www.nusinau.com/pemrograman/http://www.nusinau.com/tag/program/http://www.nusinau.com/tag/program/

  • STRUKTUR POHON

    PROGRAM A

    SUBPROGRAM A1 SUBPROGRAM A2 SUBPROGRAM A3

    SUBPROGRAM A21 SUBPROGRAM A22

  • ILUSTRASIDEKLARASI

    A, B, Temp : integerALGORITMA

    { baca nilai A dan B}

    read(A)read(B)

    {proses pertukaran}

    temp AA B B temp

    { tulis nilai A dan B setelah pertukaran }

    output(A)output(B)

  • Dipecah subprogramDEKLARASI

    A, B : integer

    BacaALGORITMA: read(A)read(B)

    TukarDEKLARASI

    temp : integer {peubah bantu}ALGORITMA

    temp AA B B temp

    TulisALGORITMA

    output(A)output(B)

    ALGORITMABacaTukarTulis

  • KEUNTUNGAN Pemrogram Modular

    1. Program lebih pendek2. Mudah menulis (banyak programer)

    3. Mudah dibaca dan dimengerti(bandingkan dg nonmodular dg banyak instruksi)

    4. Mudah didokumentasi5. Mengurangi kesalahan dan mudah mencari kesalahan(debug) program

    6. Kesalahan yang terjadi bersifat lokal

    http://www.nusinau.com/tag/program/

  • Dua bentuk pemrogram modular : PROSEDUR dan FUNGSI

    Struktur setiap subprogram tersebut pada hakekatnya sama , yaitu : Nama modul (subprogram)

    Bagian deklarasi

    Algoritma (intruksi yg akan dilaksanakan)

    Perbedaan penggunaannya dalam bahasa pemrograman Pascal : Prosedur merupakan modul(subprogram) yg melakukan

    aktifitas tertentu tanpa adanya pengembalian nilai

    Fungsi terdapat pengembalian nilai

  • PROSEDUR

    Dalam bahasa pemrograman

    Prosedur adalah modul program yang mengerjakan tugas/aktifitas yg spesifik dan menghasilkan suatu efek netto (membandingkan keadaan awal dan keadaan akhir dari suatu aktifitas prosedur)

    Setiap prosedur perlu mendefinisikan keadaan awal sebelum rangkaian instruksi di dalam prosedur dilaksanakan, dan keadaan akhir yg diharapkan setelah instruksi di dalam prosedur dilaksanakan

  • Prosedur - next

    prosedur bekerja dengan mekanismepemanggilan-pengembalian (call-return mechanism ), yaitu dengan urutan langkah:

    1. Prosedur dipanggil oleh kode pemanggil(program utama maupunprosedur lainnya)

    2. Sekumpulan operasi yang disimpan dalamprosedur dieksekusi.

    3. Kontrol dikembalikan ke kode pemanggil

  • STRUKTUR PROSEDUR

    JUDUL (header) nama prosedur dan deklarasi parameter(kalau ada)

    DEKLARASI mengumumkan nama-nama dan tipe data

    ALGORITMA badan prosedur (instruksi)

    *sama dengan struktur ALGORITMA

  • Nama Prosedur

    Nama yang unik

    Sebaiknya diawali dengan kata kerja karena prosedur berisi suatu aktifitas

    Misalnya: HitungLuas, Tukar, CariMaks, Tulis, dll.

  • Parameter

    Adalah nama-nama peubah (variabel) yang dikdeklarasikan pada bagian header (judul) prosedur dan titik dimana dia dipanggil.

    Penggunaan parameter menawarkan mekanisme pertukaran informasi (antara yg memanggil (program/algoritma utama) dg prosedur itu sendiri)

  • Parameter dibedakan menjadi dua :

    Parameter aktual (argumen) : Parameter yg disertakan pada waktu pemanggilan prosedur

    (parameter yg ada pada program/algoritma utama).

    Parameter formal : Parameter yg dideklarasikan di dalam bagian header prosedur itu

    sendiri.

    Ketika prosedur dipanggil, parameter aktual menggantikan parameter formal.

    Tiap-tiap parameter aktual berpasangan dengan parameter formal yg bersesuain (berkorespondasi satu satu)

  • Notasi algoritma untuk PROSEDUR

    Procedure NamaProsedur(deklarasi parameter, jika ada)

    {spesifikasi prosedur, berisi penjelasan tentang apa yg dilakukan oleh prosedur ini.

    K.awal : keadaan sebelum prosedur dilaksanakan.

    K. akhir : keadaan setelah prosedur dilaksanakan}

    DEKLARASI

    {semua nama yg dipakai di dalam prosedur dan hanya berlaku lokal di dalam prosedur ini}

    ALGORITMA{badan prosedur, berisi urutan instruksi}

  • Pendeklarasian Parameter dalam prosedur bukanlah keharusan

    Contoh :

    Procedure HitungLuasSegitiga{menghitung luas segitiga dengan rumus : L = (alas x tinggi)/2}

    {K.awal : sembarang}

    {K.akhir : luas segitiga tercetak}

    DEKLARASIAlas, tinggi, luas : real

    ALGORITMARead(alas, tinggi)

    Luas (alas * tingg) / 2

    Write(luas)

  • Pemanggilan Prosedur

    Prosedur bukan program yg beridiri sendiri

    Prosedur tidak dapat dieksekusi secara langsung.

    Instruksi-instruksi di dalam prosedur dapat dilaksanakan bila prosedur itu diakses.

    Prosedur diakses dg cara memanggil namanya dari program pemanggil (misalnya dari program utama atau modul program lainnya)

    Jika prosedur tanpa parameter, maka pemanggilannya cukup dg nama prosedurnya saja, contoh : HitungLuasSegitiga

  • Notasi Algoritma :

    PROGRAM Segitiga{menghitung luas segitiga}

    DEKLARASIProcedure HitungLuasSegitiga{menghitung luas segitiga dengan rumus : L = (alas x tinggi)/2}{K.awal : sembarang}{K.akhir : luas segitiga tercetak}

    DEKLARASIAlas, tinggi : integerluas : real

    ALGORITMARead(alas, tinggi)Luas (alas * tinggi) / 2Write(luas)

    ALGORITMAHitungLuasSegitiga

  • KUIS

    BUATLAH NOTASI ALGORITMA UNTUK MELAKUKAN PEMANGGILAN PROSEDUR LUASSEGITIGA SEBANYAK 3 X

  • Nama Global dan Nama Lokal

    Nama Lokal :Nama-nama (Konstanta, peubah(variabel), tipe, dll) yang

    dideklarasikan di dalam prosedur (termasuk parameter, jika ada). (hanya dikenal/digunakan dalam lingkup (scope) prosedur tersebut

    Nama Global :Nama-nama (Konstanta, peubah(variabel), tipe, dll) yang

    dideklarasikan di dalam program utama. (dapat dikenal/digunakan dibagian manapun dalam program (progam utama maupun prosedur).

  • _______________________________________________________________Nama Peubah (variabel) I, N, alas, tinggi variabel GLOBALNama Peubah (variabel) luas variabel LOKAl

    PROGRAM Segitiga{menghitung luas N buah segitiga}

    DEKLARASII, N : integeralas, tinggi : real

    Procedure HitungLuasSegitiga{menghitung luas segitiga dengan rumus : L = (alas x tinggi)/2}{K.awal : sembarang}{K.akhir : luas segitiga tercetak}

    DEKLARASIluas : real

    ALGORITMALuas (alas * tinggi) / 2Write(luas)

    ALGORITMAread(N) { tentukan banyaknya segitiga }

    for I 1 to N doread(alas, tinggi HitungLuasSegitiga

    endfor

  • Menggunakan variabel Global atau variabel Lokal

    Bila suatu peubah (variabel) digunakan di seluruh bagian program (baik program utama maupun prosedur), maka deklarasikanlah peubah tsb secara Global.

    Bila suatu peubah (variabel) hanya digunakan di dalam prosedur, maka deklarasikanlah peubah tsb secara Lokal.

    Gunakan peubah global sedikit mungkin Penggunaan variabel lokal membuat program lebih

    elegan Penggunaan variabel lokal dapat meminimumkan

    usaha pencarian kesalahan yg disebabkan oleh nama-nama tsb.

  • Parameter

    Prosedur yg baik adalah prosedur yg independen dari program utama/ program yg memanggilnya.

    Prosedur yg baik tidak menggunakan peubah-peubah global di dalam prosedur.

    Jika program utama perlu mengomunikasikan nilai peubah Global ke dalam prosedur, maka gunakanlah PARAMETER.

  • Parameter - next

    Penggunaan parameter adalah mekanisme pertukaran informasi antara prosedur dengan yang memaggilnya (program utama maupun subprogram lainnya).

    Prosedur dengan parameternya (Parameter Formal) dapat diakses dg cara memanggil namanya dari program yg memanggilnya yg disertai dg parameter dari program yg memanggil tsb (Parameter Aktual).

    Contoh: NamaProsedur(parameter aktual)

    Tiap parameter aktual berpasangan dg paramater formal yg bersesuaian

  • Parameter - next

    Ketika prosedur dipanggil, parameter aktual berkoresponden satu-satu dengan parameter formal (parameter yg dideklarasikan pada bagian header prosedur)

  • Aturan korespondensi satu satu

    Jumlah parameter aktual harus sama dengan jumlah parameter formal.

    Tiap parameter aktual harus bertipe sama dengan tipe parameter formal yg sesuai.

    Tiap parameter aktual harus diekspresikan dalam cara yg taat azas dg parameter formal yg bersesuaian, bergantung pada jenis parameter formal.

  • Jenis parameter formal yg disertakan di dalam prosedur :

    Parameter Masukan (input parameter) :Parameter yg nilainya berlaku sebagai masukan untuk

    prosedur.

    Parameter Keluaran (Output parameter):Parameter menampung keluaran yg dihasilkan oleh prosedur.

    Parameter masukan/keluaran (input/output parameter) :Parameter yg berfungsi sebagai masukan sekaligus keluaran

    bagi prosedur tsb.

  • Parameter masukan

    Nilai parameter aktual diisikan ke dalam parameter formal yg sesuai.

    Perubahan nilai parameter di dalam badan prosedur tidak mengubah nilai parameter aktual.

    Nama parameter aktual boleh berbeda dg nama parameter formal yg sesuai

  • Contoh : paramater masukan

    Procedure HitungLuasSegitiga(input alas, tinggi : real){menghitung luas segitiga dengan rumus : L = (alas x tinggi)/2}

    {K.awal : alas dan tinggi sudah terdefinisi nilainya}

    {K.akhir : luas segitiga tercetak}

    DEKLARASIluas : real

    ALGORITMALuas (alas * tinggi) / 2

    Write(luas)

  • Program utama yg memanggil nama prosedur:harus mendeklarasikan nama prosedur dan memanggilnya dg

    parameter aktual yg sesuai

    PROGRAM Segitiga{menghitung luas N buah segitiga}

    DEKLARASII, N : integeralas, tinggi : real Procedure HitungLuasSegitiga(input alas, tinggi : real){menghitung luas segitiga dengan rumus : L = (alas x tinggi)/2}{K.awal : alas dan tinggi sudah terdefinisi nilainya }{K.akhir : luas segitiga tercetak}

    DEKLARASIluas : real

    ALGORITMALuas (alas * tinggi) / 2Write(luas)

    ALGORITMAread(N) { tentukan banyaknya segitiga }for I 1 to N do

    read(alas, tinggi HitungLuasSegitiga(alas,tinggi)

    endfor

  • nama parameter aktual tidak harus sama dengan nama parameter formal : yg dipentingkan adalah nilainya

    PROGRAM Segitiga{menghitung luas N buah segitiga}

    DEKLARASII, N : integera, t : real Procedure HitungLuasSegitiga(input alas, tinggi : real){menghitung luas segitiga dengan rumus : L = (alas x tinggi)/2}{K.awal : alas dan tinggi sudah terdefinisi nilainya }{K.akhir : luas segitiga tercetak}

    DEKLARASIluas : real

    ALGORITMALuas (alas * tinggi) / 2Write(luas)

    ALGORITMAread(N) { tentukan banyaknya segitiga }for I 1 to N do

    read(a, t) HitungLuasSegitiga(a,t)

    endfor

  • Parameter aktual boleh berupa ekspresi atau konstanta

    Contoh :

    HitungLuasSegitiga(a*0.2, t*0.1)

    HitungLuasSegitiga(12, 6)

  • Parameter keluaran

    Parameter keluaran dideklarasikan di dalam headerprosedur, sebagaimana parameter masukan

    Parameter keluaran dideklarasikan dengan keyword OUTPUT.

    Ketika prosedur yg mengandung parameter keluaran dipanggil, maka nama parameter aktual menggantikan (substitute) nama parameter formal yg bersesuaian.

  • Contoh : parameter keluaran-next

    PROGRAM Segitiga{menghitung luas N buah segitiga}

    DEKLARASII, N : integera, t, L : real Procedure HitungLuasSegitiga(input alas, tinggi : real, output luas:real){menghitung luas segitiga dengan rumus : L = (alas x tinggi)/2}{K.awal : alas dan tinggi sudah terdefinisi nilainya }{K.akhir : luas segitiga tercetak}

    ALGORITMALuas (alas * tinggi) / 2

    ALGORITMAread(N) { tentukan banyaknya segitiga }for I 1 to N do

    read(a, t) HitungLuasSegitiga(a, t, L)Write(L)

    endfor

  • Parameter masukan/keluaran

    Prosedur harus dapat mengakomodasi baik masukan dari dan keluaran ke blok program pemanggil

    Maka gunakan parameter masukan/ keluaran Bila parameter aktual diubah nilainya di dalam badan

    prosedur, maka sesudah pemanggilan prosedur nilai parameter aktual di titik pemanggilan juga berubah

    Parameter masukan/keluaran dideklarasikan di dalam header prosedur dengan keyword INPUT/OUTPUT

    Parameter aktual harus berupa peubah, tidak boleh berupa ekspresi atau konstanta

  • Contoh : parameter masukan/keluaranPROGRAM Cetak0Sampai10{ mencetak nilai dari 0 sampai 10 }

    DEKLARASIx : integer

    procedure Inc(input/output x : integer){menaikan nilai x sebesar 1}{K.Awal : x sudah terdefinisi nilainya}{K.Akhir : nilai x bertambah 1}DEKLARASI

    ALGORITMAx x + 1

    ALGORITMAX 0repeat

    write(x)inc(x)

    until x > 10

  • Parameter masukan - parameter masukan/keluaran

    PROGRAM xyzDEKLARASI

    a, b : integerProcedure tambah(input x,y:integer)DeklarasiAlgoritmax x + 4Y y +4write(nilai x dan y di akhir prosedur

    tambah:)Write( x=, x)Write( y=, y)

    ALGORITMAa 15B 10Write(nilai a dan b sebelum panggil

    prosedur tambah:)Write( a=, a)Write( b=, b)Tambah(a,b)Write(nilai a dan b sesudah panggil

    prosedur tambah:)Write( a=, a)Write( b=, b)

    PROGRAM xyzDEKLARASI

    a, b : integerProcedure tambah(input/output

    x,y:integer)DeklarasiAlgoritmax x + 4Y y +4write(nilai x dan y di akhir prosedur

    tambah:)Write( x=, x)Write( y=, y)

    ALGORITMAa 15B 10Write(nilai a dan b sebelum panggil

    prosedur tambah:)Write( a=, a)Write( b=, b)Tambah(a,b)Write(nilai a dan b sesudah panggil

    prosedur tambah:)Write( a=, a)Write( b=, b)

  • Program dg prosedur atautanpa prosedur

    Dianjurkan menulis program yg modular

    Program yg dipecah menjadi beberapa prosedur menunjukkan teknik pemrograman yg baik dan terstruktur

  • Prosedur dg parameter atautanpa parameter

    Dianjurkan menulis prosedur dg parameter

    Parameter dapat mengurangi kebutuhan penggunaan peubah (variabel) global

  • Parameter masukan atauparameter keluaran

    Bila prosedur menghasilkan keluaran yg digunakan oleh program pemanggil, gunakan parameter keluaran untuk menampung keluaran tsb.

    Bila prosedur tidak menghasilkan keluaran, atau kalaupun menghasilkan keluaran tapi keluaran tsb hanya digunakan di dalam prosedur itu saja, maka gunakan parameter masukan.

    Bila prosedur menerima masukan sekaligus keluaran pada parameter yg sama, gunakan parameter masukan/keluaran.