algoritma&pemrograman i ti 2011 ganjil e rizal

122
Algoritma Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah Urutan logis berarti urutan langkah-langkah harus benar, dan langkah-langkah itu sendiri juga harus benar

Upload: muhammad-yunus-andrian

Post on 04-Jan-2016

18 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Algoritma

• Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis

• Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah

• Urutan logis berarti urutan langkah-langkah harus benar, dan langkah-langkah itu sendiri juga harus benar

Page 2: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

• Berasal dari ahli matematikia Arab :• Abu Ja’far Muhammad Ibnu Musa Al-

Khuwarizmi

Page 3: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Algoritmna merupakan kerangka dasar dari konsep suatu program untuk menyelesaikan masalah . Algoritma tidak terikat dari suatu bahasa pemrograman manapun atau dengan kata lain bahasa yang digunakan adalah bebas dengan bahasa apapun, baik memakai bahasa Indonesia, bahasa Inggris atau bahasa lainnya.

Page 4: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

menerapkan algoritma dalam kehidupan sehari-hari

• Menyapu halaman• Mencuci piring• Mandi• Dan banyak contoh lainnya …

Page 5: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

• Algoritma dikatakan benar apabila dapat memecahkan masalah

• Perlu dipertimbangkan masalah efisiensi dalam penyusunan 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

Page 6: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Penulisan Algoritma :

• Algoritma dapat dinotasikan dalam beberapa cara, yaitu:

• Dengan untaian kalimat deskriptif (natural)– Tapi sering membingungkan (ambiguous)

• Dengan pseudocode– Sudah lebih dekat ke bahasa pemrograman, namun

sulit dimengerti oleh orang yang tidak mengerti pemrograman

• Dengan flowchart– Bagus secara visual akan tetapi repot kalau

algoritmanya panjang

– Tapi sering membingungkan (ambiguous)

Page 7: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

FLOWCHART

• Flowchart lebih baik dibandingkan pseudocode• Merupakan gambaran dalam bentuk diagram alir dari

algoritma-algoritma dalam suatu program yang menyatakan arah alur program tersebut

• Disajikan dalam bentuk grafik/gambar• Dapat membantu programmer maupun orang lain dalam

memahami alur program (apa saja input, proses dan output dari program)

• Representasi visual, karena itu lebih mudah dipahami• Jumlah simbol yang digunakan sedikit, karena itu lebih

sederhana dan lebih mudah dipelajari

Page 8: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

Page 9: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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)

Page 10: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Mulai

Inputkan nilai

(tugas,uts,uas)

NA = 25%tg+25%uts+50%uas

NA>60 Gagal

Lulus

Selesai

Page 11: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

• PEmrograman : aktifitas yg dilakukan dengan membat intruksi untuk menyelesaikan permasalahan yg dimenegeti oleh komputer

• Program : coding, hasil pemrograman• Bahasa Pemrograman : Bahasa program yang

digunakan untuk membuat urutan instruksi yg dimengerti oleh komputer.

• Pemrograman (programer) : orang yg membuat program komputer.

Page 12: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Algoritma dengan pseudo-code

kecil bilangan pertamaif ( bilangan kedua < kecil)kecil bilangan keduaif ( bilangan ketiga < kecil)kecil bilangan ketiga

Ouput(kecil)

Page 13: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Flow chart untuk menentukan bilangan terkecil

Page 14: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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 input yang 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

Page 15: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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 kecil tersebut digabungkan menjadi satu untuk dapat menentukan solusi.

• Menentukan algoritma • Menulis program • Menguji program • Mendokumentasikan program • Merawat program

Page 16: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

TIGA BAGIAN ALGORITMA :

• Judul (Header)• Kamus• Algoritma

Page 17: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Contoh :JUDUL ( Header)

– Program Luas_Kubus { judul algoritma }

KAMUS – Kamus :

• X,Y : integer• Cari : boolean

ALGORITMA – Algoritma :

• Input (c,d)• If c < d then• e a + b• Else• e a-b• Output( e )

Page 18: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Contoh penulisan kasus algoritmaBahasa natural

Program nilai_maksimal

Kamus

X = nilai pertama

Y = nilai kedua

Hasil = hasil perbandingan

Algoritmaa. Masukkan Nilai x dan y

b. Jika x lebih besar dari y, nilai terbesar adalah x jika tidak maka nilai terbesar adalah nilai y

c. Cetak hasil nilai yg terbesar

Pseudo code

Program Nilai_maksimal

Kamus

hasil,x,y : integer

Algoritma

input(x,y)

if x > y then

hasil x

else

hasil y

output(hasil)

Page 19: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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.

Page 20: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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.

Page 21: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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).

Page 22: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

Page 23: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

Page 24: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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 trueA and ( y or z) trueNot (x and z) false(y xor z) and y false

Page 25: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

BILANGAN BULAT

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

• NAMA TIPE :– Integer

• RANAH NILAI :–

tipe Rentang nilai FormatByte 0 .. 255 8 bitShortint -128 .. 127 8 bitWord 0 .. 65535 16 bitInteger -32768 .. 32767 16 bitLongint -2147483648 .. 2147483647 32 bit

Page 26: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

Page 27: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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.

Page 28: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

Page 29: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

Page 30: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Contoh : operasi perbandingan

3 < 8 True

74 > 101 False

17 = 17 True

(24 div 3) ≠ 8 false

Page 31: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

BILANGAN RIIL• Bilangan yang mengandung pecahan

desimal : 3.65, 0.003, 29.0, .24, dll• NAMA TIPE :

– Real

• RANAH NILAI :

tipe Rentang nilai FormatReal 2.9 x 10 -39 .. 1.7 x 1038 6 byteSingle 1.5 x 10-45 .. 3.4 x 1038 4 byteDouble 5.0 x 10-324 .. 1.7 x 10308 8 byteextended 3.4 x 10-4932 .. 1.1 x 104932 10 byte

Page 32: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

BILANGAN RIIL - next• KONSTANTA :

harus ditulis dengan tanda titik desimalcontoh : 0.78, -14.2376, 0.0, .5, 99.0

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

Contoh: 6.4 + 5.7 hasil : 12.1 8.0 – 2.8 hasil: 5.2 10/2.5 hasil: 4.0 (operasi bilangan campuran)

7.2 * 0.5 hasil : 3.6

Page 33: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

Page 34: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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’, ‘$’

Page 35: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

KARAKTER - next• OPERASI :

– Hanya Operasi Perbandingan :

Contoh :‘a’ = ‘a’ hasil: true‘T’ = ‘t’ hasil: false‘y’ ≠ ‘y’ hasil: false‘m’ < ‘z’ hasil: true‘q’ > ‘z’ hasil : false

< Lebih kecil

≤ Lebih kecil atau sama dengan

> Lebih besar

≥ Lebih besar atau sama dengan

= Sama dengan

≠ Tidak sama dengan

Page 36: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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.

Page 37: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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 :

Page 38: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

STRING - next2. 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

Page 39: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

• Harus unik (tidak boleh dua buah nama yang sama)

• Harus dimulai dengan huruf alfabet (tidak boleh dimulai 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

Page 40: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Contoh penamaan NAMA

Contoh yg salah Contoh yg benar

6titikNilai ujianPT-1Hari!A 1

Titik6 atau titik_6NilaiUjian atau Nilai_ujianPT_1 atau PT1HariA1

Page 41: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Yg diberi nama dalam Algoritma :

1. Peubah (variable) :Tempat menyimpan nilai yg isinya dapat diubahContoh: 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

Page 42: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Yg diberi nama dalam Algoritma -next:

3. Tipe Bentukan :

Nama tipe bentukan diberikan oleh pemrogramcontoh:

Type titik : record <x:real, y : real>Type Jam : record

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

ss : integer {0..59} >

P : titik J1, J2 : Jam

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

Page 43: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

Page 44: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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)

Page 45: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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 16 P M * 2 M P + 100 P 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

Page 46: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

EKSPRESI

• Transformasi nilai menjadi keluaran dilakukan melalui sutu perhitungan (komputasi)

• Cara perhitungan itu dinyatakan dalam suatu ekspresi

• Ekspresi terdiri atas :OPERAND dan OPERATOR

Page 47: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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’

Page 48: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Jenis Proses Algoritma

• Algoritma berisi langkah2 penyelesaian suatu masalah (berurut, pemilihan, pengulangan aksi)

Konstruksi Algoritma :• Runtunan (sequence process)• Pemilihan (selection process)• Pengulangan (repetition process)

Page 49: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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 1 proses 2 proses 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 .

Page 50: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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, maka berhenti

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

Page 51: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

Page 52: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Pemilihan (selection process)-IF-next• Struktur pemilihan If-then : hanya memberikan

satu pilihan aksi• Struktur pemilihan If-then-else

– Memilih satu dari dua buah aksi bergantung pada nilai kondisinya.

bentuk umum : if kondisi then aksi 1 else aksi 2

Contoh : if x > y then tulis x sebagai bilangan terbesar else tulis y sebagai bilangan terbesar

Page 53: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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}

Kamus x : integer

AlgoritmaRead (x)If x mod 2 = 0 then write(‘genap’)endif

Page 54: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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}

Kamus x : integer

AlgoritmaRead (x)If x mod 2 = 0 then write(‘genap’)Else write(‘ganjil’)endif

Page 55: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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 aksi1 else if kondisi2 then aksi2 else aksi-alternatif

Contoh : if x > y then if x > z then tulis x sebagai bilangan terbesar else tulis z sebagai bilangan terbesar else if y > z then tulis y sebagai bilangan terbesar else tulis z sebagai bilangan terbesar

Page 56: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Tiga aksi atau lebih (Nested-IF)• Tiga kasus :

Notasi algoritma :

If kondisi1 then aksi1Else if kondisi2 then aksi2 else if kondisi3 then aksi3 endif endifendif

• Empat kasus :

Notasi algoritma :

If kondisi1 then aksi1Else if kondisi2 then aksi2 else if kondisi3 then aksi3 else if kondisi4 then aksi4 endif endif endifendif

Page 57: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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 }

Kamus x : integer

AlgoritmaRead (x)If x > 0 then write(‘positif’)Else if x < 0 then write(‘negatif’) else if x = 0 then write(‘nol’) endif endifendif

Page 58: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Tugas

• Buat Notasi Algoritma untuk statemen pemilihan 4 kasus.

• Transformasikanlah Algoritma di atas ke dalam bahasa Pascal

Page 59: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

kelebihan struktur/jenis proses pemilihan

• kemampuannya yg memungkinkan pemroses mengikuti jalur aksi yg berbeda berdasarkan kondisi yg ada

• Memungkinkan menulis algoritma untuk permasalah praktis yg demikian kompleks.

Page 60: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Struktur CASE

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

2 kasus)

Page 61: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Konstruksi CASECASE ekspresi if ekspresi = nilai1 then

Nilai1 : aksi1 aksi1

Nilai2 : aksi2 else

Nilai3 : aksi3 if ekspresi = nilai2 then

... aksi2

... else

Nilain : aksin if ekspresi = nilai3 then

Otherwise : aksix aksi3

endCASE else {otherwise}

aksi x

endif

endif

endif

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

konstanta yang bukan bertipe real.

Page 62: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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(‘Jum’at’)7: write(‘Sabtu;)Otherwise: write(‘bukan hari yang benar’)

endCASE

Page 63: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

NOTASI ALGORITMA

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

KAMUS Nomor_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(‘Jum’at’)7: write(‘Sabtu;)Otherwise: write(‘bukan hari yang benar’)

endCASE

Page 64: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Tidak semua bahasa pemrograman menyediakan

struktur CASE

Gunakan struktur IF-THEN-ELSE

Page 65: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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 yg dimasukan salah’)

endcase

Page 66: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

Page 67: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Uji kasus

• Lihat hal 126 (hand book)

Page 68: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Jenis Proses : PENGULANGAN(Repetition Process)

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

• Dalam algoritma, pengulangan (repetition atau looping) dapat dilakukan beberapa kali sampai kondisi pemberhentian pengulangan tercapai

Page 69: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Struktur Pengulangan

<inisialisasi>

Awal pengulanganBadan pengulangan

Akhir pengulangan

<terminasi>

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

Page 70: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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)

Page 71: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

Page 72: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

FOR menaik (ascending) / FOR positif

Bentuk umum:

For pencacahnilai_awal to nilai_akhir doAksi

Endfor

Page 73: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Contoh pengulangan FOR Positif untuk Satu Aksi

PROGRAM cetak_satuaksi

KAMUSi: integer {pencacah pengulangan}

ALGORITMA

For i1 to 5 do {ulang sebanyak 5 kali}

Write(‘I Love Dinda’) {aksi yang diulang}

endfor

Page 74: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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/aWrite(a,b,c,bagi)

EndforWrite(‘-----------------------------------’)

Page 75: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

FOR menurun (descending) / FOR negatif

Bentuk umum:

For pencacahnilai_akhir downto nilai_awal do

Aksi

Endfor

Page 76: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

Page 77: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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.

Page 78: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Contoh :Pengulangan FOR tersarang (nested-FOR)

PROGRAM nested_for

KAMUSI,j: integer {pencacah pengulangan}

ALGORITMA

For i1 to 3 do For j1 to 2 do

write(i,j)

endfor

Endfor

Page 79: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Struktur pengulangan- repeat-until• Bentuk umum :

Repeat

aksi

Until kondisi

(pengulangan aksi dilakukan hingga kondisi berhenti terpenuhi)

- Pengulangan akan dijalankan terus kalau kondisi masih bernilai FALSE

- Pengulangan berhenti, jika kondisi bernilai TRUE

Page 80: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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 WHILE

Dalam beberapa masalah kedua pernyataan tsb komplemen satu sama lain.

Page 81: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Contoh :

ALGORITMA :

I 1

Repeat

write (‘hello pascal’)

I I + 1

Until I > 10

Page 82: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

WHILE atau REPEAT ?

• Gunakan konstruksi WHILE pada kasus yg mengahruskan terlebih dahulu pemeriksaan kondisi objek sebelum objek dimanipulasi

• Gunakan konstruksi REPEAT pada kasus yg terlebih dahulu memanipulasi objek, baru kemudian memeriksa kondisi objek tsb.

Page 83: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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)

Page 84: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

perbandinganRepeat ( 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

Page 85: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Latihan• Buatlah sebuah algoritma lengkap, untuk

menghitung jumlah deret bilangan bulat dari 3 sampai dengan 10. dengan menggunakan konstruksi 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 tampiikanlah nilai rata-rata tsb.

Page 86: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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.

Page 87: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

STRUKTUR POHON

Page 88: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

ILUSTRASIDEKLARASI A, B, Temp : integerALGORITMA { baca nilai A dan B} read(A) read(B) {proses pertukaran} temp A A B B temp { tulis nilai A dan B setelah pertukaran } output(A) output(B)

Page 89: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Dipecah subprogramDEKLARASI A, B : integer

Baca(A,B:Integer) ALGORITMA: read(A) read(B)

Tukar(A, B:integer) DEKLARASI temp : integer {peubah bantu} ALGORITMA temp A A B B temp Tulis(A,B : integer) ALGORITMA output(A) output(B)

ALGORITMA Baca(A,B) Tukar(A,B) Tulis(A,B)

Page 90: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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”

Page 91: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

Page 92: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

Page 93: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

Page 94: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Nama Prosedur

• Nama yang unik• Sebaiknya diawali dengan kata kerja

karena prosedur berisi suatu aktifitas– Misalnya: HitungLuas, Tukar, CariMaks,

Tulis, dll.

Page 95: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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)

Page 96: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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)

Page 97: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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}

Page 98: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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) / 2Write(luas)

Page 99: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

Page 100: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Notasi Algoritma :

PROGRAM Segitiga{menghitung luas segitiga}

DEKLARASI 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 * tinggi) / 2Write(luas)

ALGORITMA HitungLuasSegitiga

Page 101: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

KUIS

• BUATLAH NOTASI ALGORITMA UNTUK MELAKUKAN PEMANGGILAN PROSEDUR LUASSEGITIGA SEBANYAK 3 X

Page 102: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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).

Page 103: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

PROGRAM Segitiga{menghitung luas N buah segitiga}

DEKLARASI I, N : integer alas, tinggi : real Procedure HitungLuasSegitiga

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

DEKLARASIluas : real

ALGORITMA Luas (alas * tinggi) / 2 Write(luas)

ALGORITMA read(N) { tentukan banyaknya segitiga } for I 1 to N do read(alas, tinggi HitungLuasSegitiga endfor

Page 104: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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.

Page 105: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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.

Page 106: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

Page 107: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Parameter - next

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

Page 108: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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.

Page 109: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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.

Page 110: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

Page 111: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

ALGORITMA Luas (alas * tinggi) / 2 Write(luas)

Page 112: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

dg parameter aktual yg sesuai

PROGRAM Segitiga{menghitung luas N buah segitiga}

DEKLARASI I, N : integer alas, 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

ALGORITMA Luas (alas * tinggi) / 2 Write(luas)

ALGORITMA read(N) { tentukan banyaknya segitiga } for I 1 to N do read(alas, tinggi HitungLuasSegitiga(alas,tinggi) endfor

Page 113: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

PROGRAM Segitiga{menghitung luas N buah segitiga}

DEKLARASI I, N : integer a, 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

ALGORITMA Luas (alas * tinggi) / 2 Write(luas)

ALGORITMA read(N) { tentukan banyaknya segitiga } for I 1 to N do read(a, t) HitungLuasSegitiga(a,t) endfor

Page 114: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Parameter aktual boleh berupa ekspresi atau konstanta

Contoh :

• HitungLuasSegitiga(a*0.2, t*0.1)

• HitungLuasSegitiga(12, 6)

Page 115: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Parameter keluaran

• Parameter keluaran dideklarasikan di dalam header prosedur, 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.

Page 116: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Contoh : parameter keluaran-next

PROGRAM Segitiga{menghitung luas N buah segitiga}

DEKLARASI I, N : integer a, 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}

ALGORITMA Luas (alas * tinggi) / 2

ALGORITMA read(N) { tentukan banyaknya segitiga } for I 1 to N do read(a, t) HitungLuasSegitiga(a, t, L)

Write(L) endfor

Page 117: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

Page 118: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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

DEKLARASI x : 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

ALGORITMA x x + 1

ALGORITMA X 0 repeat write(x) inc(x) until x > 10

Page 119: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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)

Page 120: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Program dg prosedur atau tanpa prosedur

• Dianjurkan menulis program yg modular• Program yg dipecah menjadi beberapa

prosedur menunjukkan teknik pemrograman yg baik dan terstruktur

Page 121: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

Prosedur dg parameter atautanpa parameter

• Dianjurkan menulis prosedur dg parameter• Parameter dapat mengurangi kebutuhan

penggunaan peubah (variabel) global

Page 122: Algoritma&Pemrograman I TI 2011 Ganjil E Rizal

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.