Upload
bung-karno-bootex
View
79
Download
8
Embed Size (px)
Citation preview
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.