Anda di halaman 1dari 17

Review Materi UAS

Nama

a. Nama Data

1. Tuliskan nama konstanta dalam notasi algoritma

Nama Tipe Nilai Notasi Algoritma

Dua integer 2

TigaKomaLima real 3.5

HariKeTiga string “Rabu”

SudahSelesai boolean True

Selusin integer 12

2. Tuliskan nama tipe dalam notasi algoritma

Nama Nama Tipe Tipe Notasi Algoritma

Kata Panjang Integer

Isi String

Mahasiswa NIM String

Nama String

IPK real

Barang Kode String

Nama String

JumlahStok integer

3. Tuliskan nama variabel dalam notasi algoritma

Nama Tipe Notasi Algoritma

Panjang integer Panjang : integer

Lebar Integer Lebar : integer

Nilai Real Nilai : real


Flag boolean Flag : boolean

P string P : string

b. Nama Proses

1. Tuliskan nama fungsi dalam notasi algoritma

Nama Fungsi Tipe Nama Tipe Input Notasi Algoritma


Input

Luas real Panjang Real Real luas (real


panjang, real lebar);
Lebar Real

PangkatTiga integer x Integer int PangkatTiga


(Int x);

ApakahNamaHari boolean NamaHari String Bool


ApakahNamaHari
(String NamaHari);

ALebihBesarDariB boolean A integer Bool


AlebihBesarDariB
B integer (int *A,*B);

2. Tuliskan nama prosedur dalam notasi algoritma

Nama Prosedur Nama Tipe Nama Tipe


Input Input Output Output

MenghitungPersegiPanjang panjang Integer luas Integer

lebar integer keliling Integer

Tukar A Integer A Integer

B integer B integer

//*********** Assignment Statements

// INTEGER : beri nilai a = 2; beri nilai b = 10; dapatkan nilai f dari user;
A2
B  10
Input (f)
// operasikan : c = akar dari a2 + b2 lalu tampilkan hasilnya di layar
C  sqrt (a*a+b*b)
Output (c)

// operasikan : d = b2 - 4ac lalu tampilkan hasilnya di layar


D  (b * b ) – 4 * a * c
Output (d)

// operasikan : e = 34 * f mod 5 lalu tampilkan hasilnya di layar


E  34 * f mod 5
Output (e)

// operasikan : g = e div c lalu tampilkan hasilnya di layar


G  e div c
Output (g)

// tampilkan nilai c dan d di layar; tukarkan nilai c dan d (swapping); lalu tampilkan
lagi c dan d
Output (c, d)
Temp  d
dc
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)

// operasikan : keliling = 2 * pi * r lalu tampilkan hasilnya di layar


Keliling  2 *pi*r
Output (keliling)

// operasikan : volume = (4/3) * pi * r2 lalu tampilkan hasilnya di layar


Volume  (4/3) * pi * (r * r)
Output (volume)

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

// atau : * ######### * sebanyak 5 kali disusun ke bawah (tapi tidak menggunakan


statement pengulangan)
Output (***###www)
Output (***###www)
Output (***###www)
Output (***###www)
Output (***###www)

//*********** Conditional Statement

// 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

// ulangi 3 kali : baca, tampilkan (tanpa statement pengulangan)


If (jawaban=’y’)
Then
Output (“anda menjawab ya”)
Endif
If (jawaban=’y’)
Then
Output (“anda menjawab ya”)
Endif
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

// ulangi 3 kali : baca, tampilkan (tanpa statement pengulangan)


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

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

//*********** Repetitional Statement : while-do

// 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
I1
While ( i <= 10)
do
input (symbol)
output (symbol)
output (“ “)
ii+1
endwhile

symbol : character
i1
while (i<=10)
do
input (symbol)
output (symbol)
output (“\n”)
ii+1
endwhile

symbol : character
i1
while (i<=10)
do
input (symbol)
output (symbol)
output (“\n”)
output (“\n”)
output (“\n”)
output (“\n”)
output (“\n”)
ii+1
endwhile

1. Diberikan algoritma di bawah ini,

Program Misteri
{Deskripsi : Diberikan masukan n, mengeluarkan nilai f
IS : nilai n integer
FS : nilai f integer

Dibuat oleh : <nama>


Tanggal : }

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

Printf ("Masukkan nilai b: ");


Scanf ("%d", &b);

// Proses mencari nilai tengah


if (a == b)
t = a;
else if (a < b)
t = a + ((b - a) / 2);
else
t = b + ((a - b) / 2);

// Output (t)
Printf ("Nilai tengah (t) adalah: %d\n", t);

return 0;
}

Tuliskan hasil eksekusi algoritma di atas jika nilai n adalah 1, 2, 3, dan 4.

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

2. Diberikan algoritma di bawah ini, terjemahkan dalam bahasa C

Program MencariTengah
{Deskripsi : Diberikan masukan a dan b, mengeluarkan nilai tengah t
IS : nilai a, b integer
FS : nilai t integer

Dibuat oleh : <Nama>


Tanggal : }

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;

printf("Masukkan nilai a: ");


scanf("%d", &a);

printf("Masukkan nilai b: ");


scanf("%d", &b);

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;
}

3. Buatlah algoritma yang akan menghitung umur seseorang. Masukannya adalah


tanggal lahir dan tanggal hari ini. Keluarannya seperti ini : xx tahun xx bulan xx hari.
Misalkan :
Lahir :
tanggal : 28
bulan : 3
tahun : 1948

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]

tahunLahir, bulanLahir, tanggalLahir : integer


tahunIni, bulanIni, tanggalIni : integer
tahunHasil, bulanHasil, tanggalHasil : integer

Input(tahunLahir, bulanLahir, tanggalLahir)


Input(TahunIni, bulanIni, tanggalIni)

if(tanggalIni - tanggalLahir < 0 AND bulanIni – bulanLahir < 0)


then
tanggalHasil <- tanggalIni + jumlahHari[bulanIni – 1] - tanggalLahir
bulanHasil <- bulanIni + 12 – bulanLahir
tahunLahir <- tahunIni – tahunLahir – 1
else
tanggalHasil <- tanggalIni – tanggalLahir
bulanHasil <- bulanIni – bulanLahir
tahunHasil <- tahunIni – tahunLahir
endif
output(tahunHasil, bulanHasil, tanggalHasil)

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(“*****”)

Benarkah penulisan berikut ini di c :

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;

if (jawab = 'y') if (jawab == 'y')


printf ("Kondisi true, anda mengetikkan huruf y \n");

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

jumlah, n , kode: integer


for(i = 1 to 10)
do
if(i = 10)
then
output(“masukkan kode ke-”, i)
kode <- n
else
output(“masukkan kode ke-”, i)
input(n)
jumlah <- jumlah + n
endif
endfor
if(jumlah mod 11 = kode)
then
output(“ISBN valid”)
else
output(“ISBN tidak valid”)
endif

9
( ∑ i * xi ) mod 11 = angka10
i=1

2. Kode Rahasia (Kriptografi).


Input : nilai pergeseran kode, beberapa karakter yang akan dikodekan (5 karakter)
Output : karakter yang sudah dikodekan (bersifat rahasia)
/contoh/
Input : geser = 0, karakter 1 – 5 : SIAPA
Output : SIAPA

Input : geser = 1, karakter 1 – 5 : SIAPA


Output : RHZOZ

Input : geser = -1, karakter 1 – 5 : SIAPA


Output : TJBQB

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)

i1

while(i < sizeKode)


do
while(kode[i] = huruf[j])
do
KodeHasil[i]  j
jj+1
endwhile
endwhile

k1
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
ii+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]
ii+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}

if (A[i] > CARI)


then
output (“ditemukan, nilainya = “, A[i] )
output (“indeksnya = “, i )
else {A[i] < CARI}
output (“tidak ditemukan “ )
endif
5) Menuliskan statement algoritma “geser nilai array satu elemen ke belakang, mulai dari
elemen ke-IndeksTemu hingga sentinel, sentinel ikut bergeser juga”; Geser mulai dari
elemen paling belakang tentunya. Gunakan variabel i sebagai bantuan.

i  IndeksTemu
while (i != -9999)
do
A[i+1] = A[i]
ii+1
endwhile
{i = -9999}

Anda mungkin juga menyukai