Anda di halaman 1dari 22

KOM101 -- ALGORITME

Pseudo-C

● Pseudocode Like C
● Komponen Algoritme
● Precedence and Associativity

Tim Pengajar Algoritme - IPB University


Praktikum Pseudocode #1
Buatlah pseudocode untuk menukar nilai dari
variabel bilangan bulat a dan b.

● Variabel input : a dan b


● Membutuhkan 1 tambahan variabel untuk menampung nilai
sementara.
● Tidak ada output

read(a,b);
c=a;
a=b;
b=c;
Praktikum Pseudocode #2
Buatlah pseudocode untuk mendapatkan nilai satuan tahun dan
bulan dari usia yang diketahui dalam satuan bulan. Sebagai
contoh, usia 14 bulan berarti 1 tahun 2 bulan (nilai tahun=1, dan
nilai bulan=2). Maka output dari masalah ini adalah 1 2.

● Input : bulan
● Output : tahun dan bulan

read(bulan);
tahun=bulan/12;
bulan%=12;
write(tahun,bulan);
Praktikum Pseudocode #3
Setiap pelanggan warung Tahu Sumedang dikenakan pajak 15%
dari nilai pembelian. Dapatkan nilai pembelian yang sebenarnya
jika diketahui Pak Ramadhan membayar belanja tahu di kasir
dengan nilai uang tertentu.

● Misal harga tahu = x.


● Maka harga setelah pajak: y = x + 0.15*x = 1.15*x
● Sehingga x = y/1.15

read(bayar);
harga=bayar/1.15;
write(harga);
Praktikum Pseudocode #4
Diketahui lembar uang rupiah 100 ribuan, 50 ribuan, 10 ribuan, 5 ribuan, 2
ribuan, dan seribuan dalam jumlah yang tak terbatas. Jika diberikan suatu nilai
uang dalam satuan ribuan, dapatkan banyaknya setiap lembar uang yang
mungkin, dimulai dari nilai lembar uang terbesar hingga terkecil. Sebagai
contoh, uang 59 ribu (input data adalah 59) akan memiliki 0 lembar 100 ribuan,
1 lembar 50 ribuan, 0 lembar 10 ribuan, 1 lembar 5 ribuan, 2 lembar 2 ribuan, 0
lembar seribuan. Maka output dari masalah ini adalah 0 1 0 1 2 0.

● Input adalah sebuah nilai uang


● Output ada 6 nilai

read(nilai);
write(nilai/100); sisa=nilai%100;
write(sisa/50); sisa%=50;
write(sisa/10); sisa%=10;
write(sisa/5); sisa%=5;
write(sisa/2); sisa%=2; write(sisa);
Ingat Problem Mesin Pencetak?
● Ini adalah algoritme, yaitu sekumpulan instruksi yang ditulis
untuk melakukan pekerjaan (menjawab persoalan).
● Komponen algoritme antara lain adalah
variabel, misalnya K, Q.
● Struktur algoritme: sequential, conditional, looping.
● Jawaban yang benar adalah A. Mengapa?
Tentukan K (lingkaran)
Ulangi:
Tentukan Q (persegi)
Tentukan ukuran K, BESAR atau KECIL
Cetak K
Cetak Q
Komponen Algoritme
Buat algoritme yang menerima jawaban dari user atas pertanyaan:
Berapa suhu saat ini? Jika suhu dibagi 2 kurang dari 10, tuliskan
kalimat "Bawa jaket".

● Input : nilai suhu (misalnya dalam celcius)


● Proses : kondisi nilai 0.5xsuhu apakah kurang dari 10?
● Output : teks "Bawa jaket" jika kondisi terpenuhi (bernilai benar
atau true). Tidak ada output jika kondisi false.

read(suhu);
if (suhu/2<10) write("Bawa jaket");

● Variabel : misalnya suhu


● Literal : misalnya 10, 2
● Ekspresi : suhu/2, suhu/2<10
● Operator : /, <
● Struktur kondisi : if
Variabel
● Variabel adalah elemen dari algoritma untuk menyimpan suatu
nilai tertentu pada suatu saat dan pada saat lain nilai dalam
variable itu bisa diubah ke nilai lain sesuai kebutuhan.
● Merupakan salah satu dari identifier.
● Beberapa aturan untuk variabel:
○ Variabel dituliskan dengan suatu nama yang unik dan dapat
terbentuk dengan karakter alfanumerik (hanya huruf dan
angka) dan underscore.
○ Case-sensitive: huruf besar berbeda dengan huruf kecil.
○ Tidak menggunakan kata-kata reserve-word.
○ Contoh: sum, t2, jumlahKecil, jumlahBesar, suhu
Literal
● Literal adalah elemen dari algoritma yang berupa nilai.
● Literal bukan untuk menyimpan suatu nilai, karena literal
sebenarnya adalah suatu nilai.

Bilangan Bulat
Integer 10, 5, -2

Floating point
Float 2.5, -1.089
Literal
Karakter
Character 'a', '5', ''
String atau teks
String
"5", "bogor", ""
Ekspresi dan Operator
● Ekspresi adalah operasi yang akan menghasilkan nilai.
Contoh: a, x, a + b, a ∗ b, −x , 5, a < b, etc.
● Ekspresi dapat melibatkan operator

● Jenis operator berdasarkan jumlah operand:


○ Unary (satu operand), misal: −5
○ Binary (dua operand), misal: a + b
○ Ternary (tiga operand), misal: ((x > 5)?1 : 0)
Jenis Ekspresi

Menggunakan
ARITMATIKA operator aritmatika

Menggunakan
PENUGASAN operator penugasan

Menggunakan
LOGIKA operator logika
Ekspresi Aritmatika
Ekspresi Penugasan
● Menggunakan operator penugasan (=)
● Ada dua bagian yang dipisahkan oleh operator =,
yaitu:
○ L-Value : variabel penyimpanan nilai
○ R-Value : nilai ekspresi yang disimpan
● Contoh:
○ a=5
○ b = a = 10
○ c=c+5
Ekspresi Penugasan Majemuk
Menggabungkan operator penugasan dengan operator aritmatika
Ekspresi Logika
Hasil ekspresi logika adalah {true, false}
Latihan
Apa output algoritme berikut jika diberikan input:
5 3 4

read(a,b);
c=a+b;
write(a,b,c);
read(b);
c*=b;
write(a,b,c);
Latihan
Apa output algoritme berikut;

result=4*4+4*4+4-4*4;
write(result);

result=(4*(4+4)*4+4)-4*4;
write(result);

Terdapat aturan evaluasi ekspresi:


Precedence dan Associativity
PRECEDENCE
● Menentukan urutan operasi dari
operator-operator dalam
ekspresi majemuk.
● Operator dengan tingkat
precedence lebih tinggi akan
diproses lebih dahulu

ASSOCIATIVITY
● Menentukan arah evaluasi bila ada dua atau lebih operator
dengan tingkat precedence yang sama.
● Dilambangkan dengan left-to-right (LR) atau right-to-left (RL)
Precedence & Associativity
Kondisi IF start

Buat algoritme yang menerima jawaban dari


user atas pertanyaan: Berapa suhu saat ini?
Jika suhu dibagi 2 kurang dari 10, tuliskan read(suhu)
kalimat "Bawa jaket".

● Input : nilai suhu (misalnya dalam


celcius) suhu/2<10
● Proses : kondisi nilai 0.5x suhu apakah ?
kurang dari 10 atau tidak
● Output : teks "Bawa jaket" jika kondisi
terpenuhi (bernilai benar atau true). F
Tidak ada output jika kondisi false. T
write
("Bawa jaket")
read(suhu);
if (suhu/2<20)
write("Bawa jaket");
end
Kondisi IF-ELSE start

Buat algoritme yang menerima jawaban dari


user atas pertanyaan: Berapa suhu saat ini?
Jika suhu dibagi 2 kurang dari 10, tuliskan read(suhu)
kalimat "Bawa jaket". Jika tidak, tuliskan
kalimat "Bawa kaos".

read(suhu); suhu/2<10
?
if (suhu/2<20)
write("Bawa jaket"); F T
else
write("Bawa kaos"); write
("Bawa jaket")

write
("Bawa kaos")

end
Compound Statement
● Menggabungkan 1 atau lebih pernyataan (kalimat
algoritme) ke dalam satu blok
● Ditandai oleh { … }
● Contoh:
read(a);
baca nilai a
jika a kurang dari 5, lakukan:
if (a<5)
● tambahkan 2 ke a {
● Cetak nilai a a+=2;
Selainnya, cetak nilai 0. write(a);
}

Anda mungkin juga menyukai