Nama
a. Nama Data
Dua integer 2
Selusin integer 12
Isi String
Nama String
IPK real
Nama String
JumlahStok integer
P string P : string
b. Nama Proses
B integer B integer
// INTEGER : beri nilai a = 2; beri nilai b = 10; dapatkan nilai f dari user;
A2
B 10
Input (f)
// operasikan : c = akar dari a2 + b2 lalu tampilkan hasilnya di layar
C sqrt (a*a+b*b)
Output (c)
// tampilkan nilai c dan d di layar; tukarkan nilai c dan d (swapping); lalu tampilkan
lagi c dan d
Output (c, d)
Temp d
dc
c temp
Output (c, d)
// REAL : beri nilai pi = 3.14; beri nilai y = -5.7; dapatkan nilai r dari user;
Pi 3.14
Y -5,7
Input (r)
// beri nilai x dengan keliling; beri nilai y dengan volume; tampilkan x dan y;
tukarkan;
tampilkan lagi x dan y
x keliling
y volume
Output (x, y)
Temp x
X Y
Y temp
Output (x, y)
// beri nilai y dengan 4 * y2; tuliskan di layar : “berapa nilai y jika y diisi dengan 4 *
y2”;
Ambil nilai dari user, masukkan ke m; tampilkan di layar nilai m dan y
Y 4 * (y * y)
Output (“berapa nilai y jika y diisi dengan 4 * y2”)
Input (m)
Output (m, y)
// CHARACTER : beri nilai bintang = “*”, pagar = “#”; dapatkan nilai simbol dari
user
Bintang ‘*’
Pagar ‘#’
Simbol w
// tampilkan bintang, pagar dan simbol ke layar dengan format dan jumlah bebas
// misalkan : ********** ############# kkkkkkkkkk
Output (***###www)
// IF-THEN
// baca nilai jawaban dari user; jawaban adalah variabel bertipe karakter
// jika jawaban = y, maka tampilkan “Anda menjawab ya”;
Jawaban : Character
Input (jawaban)
If (jawaban=’y’)
Then
Output (“anda menjawab ya”)
Endif
// IF-THEN-ELSE
// baca nilai a dari user; a bertipe integer;
// jika a bilangan genap, maka tampilkan di layar “bilangan yang anda masukkan
genap”;
Integer : a
Input (a)
If (a=’bilangan genap’)
Then
Output (“bilangan yang anda masukkan genap”)
Endif
// jika a bilangan ganjil, maka tampilkan di layar “bilangan yang anda masukkan
ganjil”
Integer : a
Input (a)
If (a=’bilangan ganjil’)
Then
Output (“bilangan yang anda masukkan ganjil”)
Endif
Input (a)
If (“a mod 2 = 0”)
Then
Output (“bilangan yang anda masukkan genap”)
Else { “a mod 2 != 0”}
Output (“bilangan yang anda masukkan ganjil”)
Endif
Input (a)
If (“a mod 2 = 0”)
Then
Output (“bilangan yang anda masukkan genap”)
Else { “a mod 2 != 0”}
Output (“bilangan yang anda masukkan ganjil”)
Endif
// CASE
// baca nilai bulan ; bulan bertipe integer;
// tuliskan di layar nama bulan sesuai dengan nomor bulan yang dimasukkan user
Bulan : integer
Input ( bulan)
Case bulan
1 : (“ januari “)
2 : (“februari”)
3 : (“maret”)
4 : (“april”)
5 : (“ mei”)
6: (“juni”)
7: (“juli”)
8: (“agustus”)
9: (“September”)
10: (“ oktober”)
11: (“november”)
12: (“desember”)
Endcase
// WHILE-DO
// baca nilai simbol dari user; simbol adalah variabel bertipe karakter
// tampilkan karakter simbol 10 kali ke samping, masing-masingnya disisipi spasi
// tampilkan karakter simbol 10 kali ke bawah
// tampilkan karakter simbol 10 kali ke samping, masing-masingnya disisipi spasi dan
5 kali ke
Bawah
Symbol : character
I1
While ( i <= 10)
do
input (symbol)
output (symbol)
output (“ “)
ii+1
endwhile
symbol : character
i1
while (i<=10)
do
input (symbol)
output (symbol)
output (“\n”)
ii+1
endwhile
symbol : character
i1
while (i<=10)
do
input (symbol)
output (symbol)
output (“\n”)
output (“\n”)
output (“\n”)
output (“\n”)
output (“\n”)
ii+1
endwhile
Program Misteri
{Deskripsi : Diberikan masukan n, mengeluarkan nilai f
IS : nilai n integer
FS : nilai f integer
KAMUS
a, b, t : integer
ALGORITMA
Input (a, b)
If (a = b)
Then t a
Else if (a < b)
Then t a + ((b-a) div 2)
Else t b + ((a-b) div 2)
Endif
Endif
Output (t)
#include <stdio.h>
int main () {
// KAMUS
int a, b, t;
// ALGORITMA
// Input (a, b)
Printf ("Masukkan nilai a: ");
Scanf ("%d", &a);
// Output (t)
Printf ("Nilai tengah (t) adalah: %d\n", t);
return 0;
}
n f
Setelah mencermati hasil eksekusi di atas, tuliskanlah hubungan nilai n dan f. Dengan kata
lain, tuliskan formula f sebagai fungsi n :
f(n) = ........
Program MencariTengah
{Deskripsi : Diberikan masukan a dan b, mengeluarkan nilai tengah t
IS : nilai a, b integer
FS : nilai t integer
KAMUS
a, b, t : integer
ALGORITMA
Input (a, b)
If (a = b)
Then t ß a
Else if (a < b)
Then t a + ((b-a) div 2) a + div((b-a),2)
Else t b + ((a-b) div 2)
Endif
Endif
Output (t)
Kode in C
#include <stdio.h>
int main() {
//deklarasi variable
int a, b, t;
if (a == b){
t = a;
} else if (a < b) {
t = a + (b-a) / 2;
} else {
t = b + (a-b) / 2;
}
printf("%d", t);
return 0;
}
Hari ini :
tanggal : 15
bulan : 11
tahun : 2011
Keluaran :
Umur = 63 tahun 7 bulan 18 hari
Jan Feb Mar Apr Mei Juni Juli Agust Sept Okt Nov Des
31 28 31 30 31 30 31 31 30 31 30 31
jumlahHari[] : integer
JumlahHari <- [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
4. Buatlah algoritma yang akan menampilkan bilangan dalam bentuk rangkaian karakter
‘*’.
Jika masukannya adalah ‘0134256789’ maka tampilannya adalah :
Case angka
0: output(“*****”)
output(“* *”)
output(“* *”)
output(“* *”)
output(“*****”)
1: output(“ ****”)
output(“ *”)
output(“ *”)
output(“ *”)
output(“ *”)
2: output(“*****”)
output(“ *”)
output(“*****”)
output(“* ”)
output(“*****”)
3: output(“*****”)
output(“ *”)
output(“*****”)
output(“ *”)
output(“*****”)
4: output(“* *”)
output(“* *”)
output(“*****”)
output(“ *”)
output(“ *”)
5: output(“*****”)
output(“* ”)
output(“*****”)
output(“ *”)
output(“*****”)
6: output(“* ”)
output(“* ”)
output(“*****”)
output(“* *”)
output(“*****”)
7: output(“*****”)
output(“ *”)
output(“ *”)
output(“ *”)
output(“ *”)
8: output(“*****”)
output(“* *”)
output(“*****”)
output(“* *”)
output(“*****”)
9: output(“*****”)
output(“* *”)
output(“*****”)
output(“ *”)
output(“*****”)
1. Pendefinisian variabel
2. Penulisan kondisi
3. Penulisan assignment
4. Penulisan / sintaks if-then-else
Perhatikanlah potongan program C di bawah ini, lingkari mana sintaks yang salah lalu
tuliskan penulisan yang benar di sampingnya.
1.
...
char Jawab;
int a;
int b;
2.
...
Char Jawab; char Jawab;
int a;
int b;
if (Jawab == 'y')
{
printf ("Kondisi true \n");
a := b div 2;
}
else
{ printf ("Kondisi False \n") printf ("Kondisi False \n");
a == a mod 2); a = a mod 2);
}
3.
...
int i, n;
...
...
scanf (&i); scanf (“%d”, &i);
n == 1; n = 1;
while (n <= i)
{
printf ("nilai n = %d \n", n) printf ("nilai n = %d \n", n);
n = n + 1;
}
1. Buatlah algoritma untuk menentukan apakah sebuah kode isbn benar atau tidak
Input : angka1, angka2, angka3, ... angka 10
Ouput : ISBN valid atau tidak valid
Ketentuan : ISBN valid jika memenuhi rumus
9
( ∑ i * xi ) mod 11 = angka10
i=1
Huruf[] : character
Huruf[] <- [‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘I’, ‘J’, ‘K’, ‘L’, ‘M’, ‘N’, ‘O’,
‘P’, ‘Q’, ‘R’, ‘S’, ‘T’, ‘U’, ‘V’, ‘W’, ‘X’, ‘Y’, ‘Z’]
kode[] : character
kodeHasil[] : integer
kodeRahasia : character
Geser, i : integer
output(“banyak geser: “)
input(geser)
output(“Kode: “)
input(kode)
i1
k1
while (k < sizeKode)
do
kodeHasil[k] kodeHasil[k] - geser
k <- k + 1
endwhile
i <- 1
while(kodeHasil[i] < sizeKodeHasil)
do
kodeRahasia[i] huruf[kodeHasil[i]]
endwhile
output (kodeRahasia)
Array
1) Menuliskan statement algoritma “jika ditemukan huruf ‘y’ pada sebuah elemen array
mulai dari elemen ke-1 hingga ke-50, tuliskan ‘e’ dan ‘s’ di dua elemen berikutnya”;
gunakan variabel i sebagai bantuan; sentinel = ‘#’
i ß1
while (i < 48)
do
if (A[i] = ‘y’)
then
A[i+1] ‘e’
A[i+2] ‘s’
endif
ii+1
endwhile
{i > 48}
2) Menuliskan statement algoritma “jika ditemukan huruf ‘y’ pada elemen array B mulai
dari elemen ke-1 hingga ke-Size, tampilkan indeksnya”; gunakan variabel i sebagai
bantuan.
i 1
while (i < size)
do
if (B[i] = ‘y’)
then
Output(i)
endif
i i +1
endwhile
{i > size}
3) Menuliskan statement algoritma “geser nilai array satu elemen ke belakang, mulai dari
elemen ke-1 hingga ke-Size - 1”; Geser mulai dari elemen paling belakang tentunya.
Gunakan variabel i sebagai bantuan.
i 1
while (i < size -1)
do
A[i+1] A[i]
ii+1
endwhile
{i > size -1}
4) Menuliskan statement algoritma “temukan nilai array A yang pertama kali yang lebih
besar dari nilai variabel CARI, jika ditemukan, tampilkan nilainya dan indeksnya, mulai
dari elemen ke-1 hingga sentinel”; Gunakan variabel i sebagai bantuan. Sentinel = -9999
input (CARI)
i 1
while (A[i] != -9999 AND A[i] > CARI)
do
i=i+1
endwhile
{A[i] = -9999 OR A[i] < CARI}
{artinya kondisi berhenti ada 2 : ditemukan atau sampai kepada sentinel dan tidak
ditemukan}
i IndeksTemu
while (i != -9999)
do
A[i+1] = A[i]
ii+1
endwhile
{i = -9999}