You are on page 1of 73

Lukas Sapto Aji D.S.

– Algoritma dan Struktur Data 1


Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Pertemuan 1 – 15/11/2010

Dosen: Moh.Sjukani

Susun program dalam bahasa C/C++ untuk menghitung total dua buah bilangan (misal 5 dan 2), kemudian mencetak total tersebut

Bahasa C
START
Cara 1.

#include <stdio.h>
void main ()
{int A,B,T;
A=5;
B=2;
T=A+B; T=A+B
printf("Total = %i ", T);
}

Cara 2

#include <stdio.h>
void main ()
{int A,B,T;
A=5; printf “T”
B=2;
printf("Total = %i ", T=A+B);
}

Bahasa C++
END
Cara 1.

#include <iostream.h>
void main ()
{int A,B,T;
A=5;
B=2;
T=A+B;
cout << "Total = ";
cout << T;
}

1
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal-2

Input 2 Bilangan & Cetak Total

START
Bahasa C

Cara 1.

#include <stdio.h> scanf “A”


void main ()
{int A,B,T;
scanf("%i", &A);
scanf("%i", &B);
T=A+B; scanf “B”
printf("\nTotal Bilangan = %i ", T);
}

Cara 2
T=A+B
#include <stdio.h>
void main ()
{int A,B,T;
scanf("%i", &A);
scanf("%i", &B);
printf("\nTotal Bilangan = %i ", T=A+B);
} printf “T”

Bahasa C++
END
Cara 1.

#include <iostream.h>
void main ()
{int A,B,T;
cin >> A;
cin >> B;
T=A+B;
cout << "\nTotal Bilangan = ";
cout << T;
}

2
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal-2

START

Bahasa C

Cara 1.
printf
“Bilangan 1 = “
#include <stdio.h>
void main ()
{int A,B,T;
printf("Bilangan 1 = "); scanf “A”
scanf("%i", &A);
printf("Bilangan 2 = ");
scanf("%i", &B);
T=A+B;
printf("\nTotal Bilangan = %i", T); printf
“Bilangan 2 = “
}
Cara 2

#include <stdio.h> scanf “B”


void main ()
{int A,T;
T=0;
printf("Bilangan 1 = ");
scanf("%i", &A); T=A+B
T=A+T;
printf("Bilangan 2 = ");
scanf("%i", &A);
T=A+T;
printf("\nTotal Bilangan = %i ", T); printf “T”
}

END

Bahasa C++ Bahasa C++

Cara 2.
Cara 1.
#include <iostream.h>
#include <iostream.h> void main ()
void main () {int A,T;
{int A,B,T; T=0;
cout << "Bilangan 1 = "; cout << "Bilangan 1 = ";
cin >> A; cin >> A;
cout << "Bilangan 2 = "; T=A+T;
cin >> B; cout << "Bilangan 2 = ";
cin >> A;
T=A+B;
T=A+T;
cout << "\nTotal Bilangan = " << T; cout << "\nTotal Bilangan = " << T;
} }

3
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal-3

Input 4 Bilangan & Cetak Total

Susun program untuk menginput 4 buah bilangan bulat, kemudian mencetak total keempat buah bilangan
tersebut

Bahasa C
START
Cara 1.

#include <stdio.h>
void main ()
{int A,B,C,D,T;
scanf("%i %i %i %i", &A,&B,&C,&D); scanf A,B,C,D
T=A+B+C+D;
printf("\nTotal Bilangan = %i ", T);
}

Bahasa C

Cara 2. T=A+B+C+D

#include <stdio.h>
void main ()
{int A,T;
T=0;
scanf("%i", &A); printf “T”
T=A+T;
scanf("%i", &A);
T=A+T;
scanf("%i", &A);
T=A+T;
scanf("%i", &A);
T=A+T; END
printf("\nTotal Bilangan = %i ", T);
}

Bahasa C Bahasa C
Menggunakan cara LOOP Cara 4.
Cara 3. #include <stdio.h>
void main ()
#include <stdio.h> {int A,T,I;
void main () T=0;
{int A,T,I; I=1;
T=0; while (I<=4)
for (I=1;I<=4;I=I+1) {scanf("%i", &A);
{scanf("%i", &A); T=A+T;
T=A+T; I=I+1;
} }
printf("Total Bilangan = %i ", T); printf("\nTotal Bilangan = %i ", T);
} }

4
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal-4

Mencetak Luas Segitiga

Susun algoritma untuk mencetak LUAS sebuah segitiga bila diketahui ALAS = 7 cm, dan TINGGI = 5 cm

Bahasa C START
Cara 1.

#include <stdio.h>
void main ()
{int A,T;
float L;
A=7; L=A*T/2.0
T=5;
L=A*T/2.0;
printf("Luas Segitiga = %6.1f cm", L);
}

Cara 2

#include <stdio.h> printf “L”


void main ()
{float A,T,L;
A=7;
T=5;
L=A*T/2;
printf("Luas Segitiga = %6.1f cm", L);
} END

Bahasa C++

Cara 1.

#include <iostream.h>
void main ()
{float A,T,L;
A=7;
T=5;
L=A*T/2;
cout << "Luas Segitiga = ";
cout << L;
}

5
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal-5
Detik J
J = Detik/3600
7425 2
Konversi Detik ke Jam, Menit & Detik

X = J*3600
Y = Detik - X
7200

M = Y/60
Y 225 3 M

Z = M*60
D=Y-Z
180

Bahasa C
3 D
Cara 1.

#include <stdio.h>
void main ()
{int Detik,J,M,D,X,Y,Z;
printf("Input Detik = ");
scanf("%i", &Detik);
J=Detik/3600;
X=3600*2;
Y=Detik-X;
M=Y/60;
Z=M*60;
D=Y-Z;
printf("\nHasil Konversi = %i Jam : %i Menit : %i Detik", J,M,D);
}
Cara 2

#include <stdio.h>
void main ()
{int Detik,J,M,D,X;
printf("Input Detik = ");
scanf("%i", &Detik);
J=Detik/3600;
X=Detik-(3600*2);
M=X/60;
D=X-(M*60);
printf("\nHasil Konversi = %i Jam : %i Menit : %i Detik", J,M,D);
}

Cara 3.
#include <stdio.h>
void main ()
{int Detik,J,M,D;
printf("Input Detik = ");
scanf("%i", &Detik);
J=Detik/3600;
M=(Detik-(3600*2))/60;
D=(Detik-(3600*2))-(M*60);
printf("\nHasil Konversi = %i Jam : %i Menit : %i Detik", J,M,D);
}

6
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal-5 Detik J
J = Detik/3600
7425 2
Konversi Detik ke Jam, Menit & Detik –
Menggunakan Modulus % (Sisa Pembagian) Y = Detik%3600
M = Y/60
Y 225 3 M

D = Y%60
45 D

Bahasa C

Cara 1.

#include <stdio.h>
void main ()
{int Detik,J,M,D,Y;
printf("Input Detik = ");
scanf("%i", &Detik);
J=Detik/3600;
Y=Detik%3600;
M=Y/60;
D=Y%60;
printf("\nHasil Konversi = %i Jam : %i Menit : %i Detik", J,M,D);
}

Cara 2

#include <stdio.h>
void main ()
{int Detik,J,M,D;
printf("Input Detik = ");
scanf("%i", &Detik);
J=Detik/3600;
M=(Detik%3600)/60;
D=(Detik%3600)%60;
printf("\nHasil Konversi = %i Jam : %i Menit : %i Detik", J,M,D);
}

7
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

START
Pertemuan 2 – 24/11/2010

Dosen: Moh.Sjukani scanf N

Soal Latihan Mandiri 1

N>=80
Soal-1a

N>=70 printf “A”

N>=60 printf “B”

N>=40 printf “C”

printf “E” printf “D”

#include <stdio.h>
END
void main ()
{int N;
scanf("%i", &N); Gambarkan flowchart program berikut ini:
if (N>=80) Soal 1a. Apa yang tercetak bila untuk program 1a diinput nilai N =
printf("A"); A) 85
else B) 64

if (N>=70)
Jawab
printf("B"); A) A
else B) C
if (N>=60)
printf("C");
else
if (N>=40)
printf("D");
else
printf("E");
}

8
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal Latihan Mandiri 1

Soal-1b

Gambarkan flowchart program berikut ini:


Soal 1b. Apa yang tercetak bila untuk program 1a diinput nilai N =
A) 85
B) 64 START

Jawab
scanf N
A) A
B) C

N>=40

printf “E” N>=60

printf “D” N>=70

printf “C” N>=80

printf “B” printf “A”

#include <stdio.h>
void main ()
{int N;
scanf("%i", &N);
if (N>=40)
if (N>=60)
END if (N>=70)
if (N>=80)
printf("A");
else
printf("B");
else
printf("C");
else
printf("D");
else
printf("E");
}
9
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal Latihan Mandiri 1

Soal-2

Susun program (penggalan program) dalam bahasa c untuk flowchart gambar diatas

START

scanf A,B,C

A>B

B>C A>C

scanf “C” scanf “B” scanf “C” scanf “A”

START

#include <stdio.h>
void main ()
{int A,B,C;
scanf("%i %i %i", &A,&B,&C);
if (A>B)
{if (A>C)
printf("A");
else
printf("C");
}
else
{if (B>C)
printf("B");
else
printf("C");
}
}
10
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal Latihan Mandiri 1

Soal-3

Periksa flowchart gambar diatas, apa yang tercetak bila untuk nilai A,B, dan C berturut-turut diinputkan nilai
sebagai berikut:
A) 5, 7, 10 tercetak: 10
B) 5, 10, 7 tercetak: 10
C) 7, 5, 10 tercetak: 10
D) 7, 10, 5 tercetak: 10
E) 10, 5, 7 tercetak: 10
F) 10, 7, 5 tercetak: 10
START

scanf A,B,C

A>B

B>C A>C

scanf “C” scanf “B” scanf “C” scanf “A”

#include <stdio.h> START


void main ()
{int A,B,C;
scanf("%i %i %i", &A,&B,&C);
if (A>B)
{if (B>C)
printf("%i", A);
else
printf("%i", C);
}
else

{if (A>C)
printf("%i", B);
else
printf("%i", C);
}
}
11
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal Latihan Mandiri 1

Soal-4

Periksa flowchart gambar diatas, apa yang tercetak bila untuk nilai A,B, dan C berturut-turut diinputkan nilai
sebagai berikut:
A) 5, 7, 10 tercetak: 10
B) 5, 10, 7 tercetak: 7 START
C) 7, 5, 10 tercetak: 10
D) 7, 10, 5 tercetak: 10
E) 10, 5, 7 tercetak: 7 scanf A,B,C
F) 10, 7, 5 tercetak: 10

A>B

A>C B>C

scanf “C” scanf “B” scanf “C” scanf “A”

START

#include <stdio.h>
void main ()
{int A,B,C;
scanf("%i %i %i", &A,&B,&C);
if (A>B)
{if (B>C)
printf("%i", A);
else
printf("%i", C);
}
else

{if (A>C)
printf("%i", B);
else
printf("%i", C);
}
}

12
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal Latihan Mandiri 1

Soal-5

Periksa flowchart gambar diatas, apa yang tercetak bila untuk nilai A,B, dan C berturut-turut diinputkan nilai
sebagai berikut:
A) 5, 7, 10 tercetak: 10
B) 5, 10, 7 tercetak: 7 START
C) 7, 5, 10 tercetak: 10
D) 7, 10, 5 tercetak: 10
E) 10, 5, 7 tercetak: 7 scanf A,B,C
F) 10, 7, 5 tercetak: 10

A>B

B>C A>C

scanf “C” scanf “B” scanf “C” scanf “A”

#include <stdio.h> START


void main ()
{int A,B,C;
scanf("%i %i %i", &A,&B,&C);
if (A>B)
{if (B>C)
printf("%i", A);
else
printf("%i", C);
Dari hasil (jawaban) yang diperoleh dari soal-4, dapat diambil
} kesimpulan bahwa flowchart gambar diatas menggambarkan
else algoritma yang tidak mencetak salah satu bilangan yang
{if (A>C) nilainya terbesar dari 3 buah bilangan yang diinput
printf("%i", B);
else Jawaban : Salah
printf("%i", C);
}
}

13
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal Latihan Mandiri 1

Soal-6

Lanjutkan flowchart gambar dibawah sehingga maksudnya menggambarkan algoritma yang mencetak salah
satu bilangan yang nilainya terbesar dari 3 buah bilangan yang diinput

START

scanf A,B,C

A>B

A>C B>C

C>B printf “C” C>A printf “A”

printf “B” printf “C” printf “A” printf “C”

#include <stdio.h> END


void main ()
{int A,B,C;
scanf("%i %i %i", &A,&B,&C); Periksa flowchart gambar diatas, apa yang tercetak bila untuk nilai
if (A>B) A,B, dan C berturut-turut diinputkan nilai sebagai berikut:
{if (B>C) A) 5, 7, 10 tercetak: 10
printf("%i", A);
B) 5, 10, 7 tercetak: 10
else
C) 7, 5, 10 tercetak: 10
{if (C>A)
printf("%i", C); D) 7, 10, 5 tercetak: 10
else E) 10, 5, 7 tercetak: 10
printf(“%i”, A); F) 10, 7, 5 tercetak: 10
}
} Pembuktian algoritma yg mencetak salah satu bilangan yang
else nilainya terbesar dari 3 buah bilangan yg diinput ternyata BENAR.
{if (A>C) ini terbukti dari nilai 10 yg selalu tercetak dalam 6 kali pengecekkan.
printf("%i", B);
else
{if (C>B)
printf("%i", C);
else
printf(“%i”, B);
}
}
}
14
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal Latihan Mandiri 1

Soal-7

scanf
“8”

C>B
scanf
“7”

A>C
scanf
“6”

C>B

START
scanf
A>B
scanf
START

A,B,C
scanf

“5”

#include <stdio.h>
void main ()
{int A,B,C;
“4”

scanf("%i %i %i", &A,&B,&C);


C>A

if (A>B)
{if (B>C)
if (C>A)
scanf

printf(“1”);
else
printf(“2”);
B>C

else
“3”

if (C>A)
printf(“3”);
scanf

else
printf(“4”);
}
else
“2”

{if (A>C)
C>A

if (C>B)
printf(“5”);
else
printf(“6”);
scanf

else
Untuk semua kemungkinan nilai A,B, dan C pd flowchart diatas dari 8 jalur yang ada
if (C>B) tunjukkan jalur mana saja yang tidak pernah dilalui
printf(“7”); Kemungkinan kombinasi nilai A,B dan C sebagai contoh adalah sbb:
A) 5, 7, 10 tercetak: 7
“1”

else B) 5, 10, 7 tercetak: 8


printf(“8”); C) 7, 5, 10 tercetak: 3
} D) 7, 10, 5 tercetak: 6
E) 10, 5, 7 tercetak: 4
} F) 10, 7, 5 tercetak: 2

Jadi jalur yang tidak terlewati adalah 1 & 5


15
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal Latihan Mandiri 1

Soal-8

Susun algoritma untuk menginput 3 buah bilangan yang masing-masing menyatakan panjang sisi sebuah segitiga. Kemudian periksa
ketiga buah garis tersebut. Bila ketiga buah garis (sisi) tersebut panjangnya sama, maka cetak perkataan “SAMA SISI”. Bila hanya dua
sisi yang sama maka cetak perkataan “SAMA KAKI”. Tapi bila ketiga-tiganya tidak sama maka cetak perkataan “SEMBARANG”.

START

scanf A,B,C

A==B

B==C A==C

“SAMA
A==C printf printf “SAMA KAKI” printf “SAMA SISI”
KAKI”

printf “SEMBARANG” printf “SAMA KAKI”

#include <stdio.h>
START void main ()
{int A,B,C;
scanf("%i %i %i", &A,&B,&C);
1 4 2 4 SAMA KAKI if (A==B)
2 4 3 3 SAMA KAKI {if (A==C)
printf("Sama Sisi");
3 3 3 2 SAMA KAKI else
4 3 4 4 SAMA KAKI printf("Sama Kaki");
}
5 2 4 3 SEMBARANG else
6 2 2 2 SAMA SISI {if (B==C)
printf("Sama Kaki");
else
{if (A==C)
printf("Sama Kaki");
else
printf("Sembarang");
Pengecekan Program, }
terdapat 6 kali pengecekkan }
}
16
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1 A>B ? AB : A1 B2
B<C ? CB : C1 B2
Maka urutan 1=C 2=A 3=B
Soal Latihan Mandiri 1 Urut ke-2: C
START Urut ke-1: A
Komputer membaca urut ke-2 ke ke-1
dan ketika dibandingkan belum
diketahui apakah C>A atau C<A, namun
yang pasti hasil yang paling kecil adl B.
Soal-9 karena pembacaan dimulai dari urut ke-
2 dan belum bisa dipastikan mana yang
paling besar maka logika membacanya
adalah hasil yang paling besar dari urut
A<B ? BA : B1 A2 ke-2 yaitu C, kemudian hasil terbesar
B<C ? CB : C1 B2 scanf A,B,C dari urut ke-1 yaitu B baru kemudian
Maka urutan 1=C 2=B 3=A hasil yang paling kecil dari kedua urut
Urut ke-2: C A>B ? AB yaitu B
Urut ke-1: B A<B ? BA AB CAB
Komputer membaca urut ke-2 ke ke-1
dan ketika dibandingkan belum BA
diketahui apakah C>A atau C<A, namun
yang pasti hasil yang paling kecil adl A. BA AB
karena pembacaan dimulai dari urut ke-
2 dan belum bisa dipastikan mana yang A>B ? AB : A1 B2
paling besar maka logika membacanya A>B B>C ? BC : B1 C2
adalah hasil yang paling besar dari urut Maka urutan 1=A 2=B 3=C
ke-2 yaitu C, kemudian hasil terbesar Urut ke-2: B
dari urut ke-1 yaitu B baru kemudian Urut ke-1: A
hasil yang paling kecil dari kedua urut
yaitu A
CBA BAC A<B ? BA : B1 A2
CAB ABC Komputer membaca urut ke-2 ke ke-1 dan
ketika dibandingkan A>B maka tercetak A
CBA A>C ? AC : A1 C2 di urut 1 sebagai yang paling besar,
A>C Maka urutan 1=B 2=A 3=C
Urut ke-2: A
B>C kemudian B, diurut 2, kemudian C diurut 3
sebagai yang paling kecil
Urut ke-1: B ABC
A<B ? BA : B1 A2 CBA BCA Komputer membaca urut ke-2 ke ke-1 dan
ketika dibandingkan B>A maka tercetak B
A<C ? CA : C1 A2
B<C ? CB : C1 B2 di urut 1 sebagai yang paling besar,
Maka urutan 1=C 2=B 3=A B>C printf “B,A,C” kemudian A, diurut 2, kemudian C diurut 3
sebagai yang paling kecil
CAB ACB
Urut ke-3: C
Urut ke-2: C BAC
Urut ke-1: B A>C printf “A,B,C”
Komputer membaca urut ke-3 ke ke-2 ke
ke-1 dan ketika dibandingkan C lebih A>B ? AB : A1 B2
besar dari B di urut 3 dan A diurut 2, printf “C,B,A” printf “B,C,A” A>B ? AB : A1 B2 B<C ? CB : C1 B2
maka C paling besar. Kemudian yang B<C ? CB : B1 C2 A>C ? AC : A1 C2
terbesar kedua adl B karena pada urut A<C ? CA : A1 C2 Maka urutan 1=A 2=C 3=B
ke-1 B>A maka B tercetak kedua setelah Maka urutan 1=A 2=C 3=B Urut ke-3: A
C. kemudian yang paling kecil adalah A
karena lebih kecil dari C di urut 2 dan
Urut ke-3: C
Urut ke-2: C
printf “C,A,B” printf “A,C,B” Urut ke-2: C
Urut ke-1: A
dari A di urut 1 Urut ke-1: A Komputer membaca urut ke-3 ke ke-2 ke
CBA Komputer membaca urut ke-3 ke ke-2 ke ke-3 dan ketika dibandingkan A lebih
ke-1 dan ketika dibandingkan C lebih besar dari C di urut 3 dan B diurut 1,
besar dari A di urut 3 dan B diurut 2, maka A paling besar. Kemudian yang
maka C paling besar. Kemudian yang terbesar kedua adl C karena pada urut
terbesar kedua adl A karena pada urut ke-2 C>B maka C tercetak kedua setelah
ke-1 A>B maka A tercetak kedua setelah A. kemudian yang paling kecil adalah B
A<B ? BA : B1 A2 C. kemudian yang paling kecil adalah B karena lebih kecil dari C di urut 2 dan
A<C ? CA : C1 A2 karena lebih kecil dari C di urut 2 dan dari A di urut 1
B>C ? BC : B1 C2 dari A di urut 1 ACB
Maka urutan 1=B 2=C 3=A CAB
Urut ke-3: B
Urut ke-2: C
Urut ke-1: B
Komputer membaca urut ke-3 ke ke-2 ke
ke-3 dan ketika dibandingkan B lebih
besar dari C di urut 3 dan A diurut 1,
maka B paling besar. Kemudian yang
terbesar kedua adl C karena pada urut
ke-2 C>A maka C tercetak kedua setelah
START
B. kemudian yang paling kecil adalah A
karena lebih kecil dari C di urut 2 dan
dari B di urut 1
BCA

#include <stdio.h>
void main ()
{int A,B,C;
scanf("%i %i %i", &A,&B,&C); Susun algoritma untuk menginput 3 buah bilangan (anggap ketiga buah bilangan tersebut nilainya
if (A>B) tidak sama satu dengan yang lainnya). Kemudian cetak ketiga buah bilangan tersebut urut mulai dari
{if (B>C) bilangan yang nilainya terbesar sampai dengan nilai yang terkecil
printf("%i %i %i", A,B,C);
else Jawaban:
if (A>C) A=9
printf("%i %i %i", A,C,B); B=0
else C=4
printf("%i %i %i", C,A,B);
} Hasil:
else 940
{if (A>C)
printf("%i %i %i", B,A,C);
else
if (B>C)
printf("%i %i %i", B,C,A);
else
17
printf("%i %i %i", C,B,A);
}
}
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1
START
Soal Latihan Mandiri 1

Soal-10
J=0
Susun program untuk menginput tiga buah bilangan yang menyatakan nilai ujian tiga buah mata kuliah.

Cetak perkataan “Tiga”, bila ketiga mata kuliah tersebut mendapat nilai lulus.
Cetak perkataan “Dua”, bila hanya dua dari ketiga mata kuliah tersebut yang mendapat nilai lulus. scanf A,B,C
Cetak perkataan “Satu”, bila hanya satu mata kuliah yang mendapat nilai lulus.
Cetak perkataan “Nol”, bila ketiga mata kuliah tersebut dinyatakan tidak lulus.

Sebuah mata kuliah dinyatakan mendapat nilai lulus bila nilainya lebih besar atau sama dengan 60.
A>=60

#include <stdio.h> J=J+1


void main ()
{int J,A,B,C;
J=0;
scanf("%i %i %i", &A,&B,&C);
if (A>=60) B>=60
J=J+1;
if (B>=60) J=J+1
J=J+1;
if (C>=60)
J=J+1;
if (J==3)
printf("Tiga"); C>=60
else
if (J==2)
J=J+1
printf("Dua");
else
if (J==1)
printf("Satu");
else J==3
printf("Nol");
}
J==2 printf “Tiga”

J==1 printf “Dua”

printf “Nol” printf “Satu”

END

18
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1
Soal Latihan Mandiri 1
START
“Jam Keberangkatan”
Soal-11 “Menit Keberangkatan”
#include <stdio.h> “Detik Keberangkatan”
void main () “Jam Kedatangan”
{long int Jam,Detik,Menit,A,B,C,D,E,F,G,H,I,J,K,L,X,S;
printf “Menit Kedatangan”
printf("Jam Keberangkatan = "); “Detik Kedatangan”
scanf("%li", &A);
printf("Menit Keberangkatan = ");
scanf("%li", &B);
printf("Detik Keberangkatan = ");
scanf("%li", &C);
printf("\nJam Kedatangan = "); scanf Jam,Detik,Menit,A,B,C,D,E,F,G,H,I,J,K,L,X,S
scanf("%li", &D);
printf("Menit Kedatangan = ");
scanf("%li", &E);
printf("Detik Kedatangan = ");
scanf("%li", &F);
G=A*3600; G=A*3600;
H=B*60;
H=B*60;
I=G+H+C;
I=G+H+C;
J=D*3600; J=D*3600;
K=E*60; K=E*60;
L=J+K+F; L=J+K+F;
S=L-I;;
Jam=S/3600; S=L-I;
X=S%3600;
Menit=X/60; Jam=S/3600;
Detik=X%60; X=S%3600;
printf("\nLama Perjalanan = %li : %li : %li ", Jam, Menit, Detik); Menit=X/60;
} Detik=X%60;

printf Jam,Detik,Menit

START

Susun program untuk menginput jam keberangkatan dan jam kedatangan, kemudian menghitung serta mencetak jumlah waktu (lama)
dalam perjalanan. Semua waktu dinyatakan dengan notasi JAM, MENIT, dan DETIK.

Catatan, perjalanan dilakukan pada hari yang sama, dan notasi waktu dalam satu hari adalah mulai jam 00:00:00 sampai dengan jam
24:00:00
Contoh:
Bila Jam Keberangkatan = 8 : 45 : 30
Dan Jam Kedatangan = 10 : 20 : 17
Maka Lama Perjalanan = 1 : 34 : 47

Artinya, bila berangkat jam 8 lewat 45 menit 30 detik, dan jam kedatangan adalah jam 10 lewat 20 menit 17 detik, maka lama dalam
perjalanan adalah 1 jam 34 menit dan 47 detik

19
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Array Satu Dimensi Soal 3. Apa yang tercetak dari


susunan program berikut ini
Soal 1. Apa yang tercetak dari
susunan program berikut ini #include<stdio.h>

#include<stdio.h> void main ()

void main () {int A[7]={15,12,17,25,10,5,22};

{int A[7]; int I;

int I; A[3]=50;

for (I=0;I<=6;I++) for (I=0;I<=6;I++)

{A[I]=I; {printf(“%i”, A[I]);

printf(“%i”, A[I]); }

} }

} Soal 4. Apa yang tercetak dari


susunan program berikut ini
Soal 2. Apa yang tercetak dari
susunan program berikut ini #include<stdio.h>

#include<stdio.h> void main ()

void main () {int A[7]={15,12,17,25,10,5,22};

{int A[7]={15,12,17,25,10,5,22}; int I;

int I; I=3;

for (I=0;I<=6;I++) A[I]=50;

{printf(“%i”, A[I]); for (I=0;I<=6;I++)

} {printf(“%i”, A[I]);

} }

20
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 5. Apa yang tercetak dari Soal 7. Apa yang tercetak dari
susunan program berikut ini susunan program berikut ini

#include<stdio.h> #include<stdio.h>

void main () void main ()

{int A[7]={15,12,17,25,10,5,22}; {int A[7]={15,12,17,25,10,5,22};

int I; int I;

A[2]=A[3]; for (I=0;I<=5;I++)

for (I=0;I<=6;I++) {A[I]=A[I+1];

{printf(“%i”, A[I]); }

} for (I=0;I<=6;I++)

} {printf(“%i”, A[I]);

Soal 6. Apa yang tercetak dari }

susunan program berikut ini }

#include<stdio.h>
Soal 8. Apa yang tercetak dari
void main () susunan program berikut ini

{int A[7]={15,12,17,25,10,5,22}; #include<stdio.h>

int I; void main ()

I=2; {int A[7]={15,12,17,25,10,5,22};

A[I]=A[I+1]; int I;

for (I=0;I<=6;I++) for (I=0;I<=5;I++)

{printf(“%i”, A[I]); {A[I+1]=A[I];

} }

} for (I=0;I<=6;I++)

{printf(“%i”, A[I]);

21
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 9. Apa yang tercetak dari Soal 10. Apa yang tercetak dari
susunan program berikut ini susunan program berikut ini

#include<stdio.h> #include<stdio.h>

void main () void main ()

{int A[7]={15,12,17,25,10,5,22}; {int A[7]={15,12,17,25,10,5,22};

int I; int I,X;

for (I=0;I<=5;I++) for (I=0;I<=5;I++)

{if (A[I]>A[I+1]) {if (A[I]>A[I+1])

{A[I+1]=A[I]; {X=A[I];

} A[I]=A[I+1];

} A[I+1]=X;

for (I=0;I<=6;I++) }

{printf(“%i”, A[I]); }

} for (I=0;I<=6;I++)

} {printf(“%i”, A[I]);

22
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 11. Apa yang tercetak dari Soal 12. Apa yang tercetak dari
susunan program berikut ini susunan program berikut ini

#include<stdio.h> #include<stdio.h>

void main () void main ()

{int A[7]={15,12,17,25,10,5,22}; {int A[7]={15,12,17,25,10,5,22};

int B[7]; int B[7]={10,27,12,15,18,12,3};

int I; int I;

for (I=0;I<=6;I++) for (I=0;I<=6;I++)

{B[I]=A[I]; {if (A[I]>B[I])

} {B[I]=A[I];

for (I=0;I<=6;I++) }

{printf(“%i”, A[I]); }

} for (I=0;I<=6;I++)

printf(“\n”); {printf(“%i”, A[I]);

for (I=0;I<=6;I++) }

{printf(“%i”, B[I]); printf(“\n”);

} for (I=0;I<=6;I++)

} {printf(“%i”, B[I]);

23
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 13. Apa yang tercetak dari Soal 14. Apa yang tercetak dari
susunan program berikut ini susunan program berikut ini

#include<stdio.h> #include<stdio.h>

void main () void main ()

{int A[7]={15,12,17,25,10,5,22}; {int A[3]={15,25,17};

int B[7]={10,27,12,15,18,12,3}; int B[7]={10,27,12,15,18,22,3};

int I,X; int I,K,X;

for (I=0;I<=6;I++) for (K=0;K<=2;K++)

{if (A[I]>B[I]) {X=A[K];

{X=B[I]; }

B[I]=A[I]; for (I=0;I<=6;I++)

A[I]=X; {if (B[I]>X)

} {X=B[I];

} }

for (I=0;I<=6;I++) }

{printf(“%i”, A[I]); printf(“%i”, X);

} }

printf(“\n”);

for (I=0;I<=6;I++)

{printf(“%i”, B[I]);

24
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Jawaban Soal Array Satu Dimensi

Soal 1.

0 1 2 3 4 5 6 #include<stdio.h>
A[7] diminta
menyediakan 7 void main ()
kolom
{int A[7];
for (I=0;I<=6;I++)
perintah ini
int I;
melakukan
pengulangan
sebanyak 6 kali
for (I=0;I<=6;I++)

1 2 3 4 5 6 7 {A[I]=I;
0 1 2 3 4 5 6
printf(“%i”, A[I]);

I I<=6 I++ A[I]=I printf A[I] Tercetak:


0 True 1 0 0
1 True 2 1 1 0 1 2 3 4 5 6
2 True 3 2 2
3 True 4 3 3
4 True 5 4 4
5 True 6 5 5
6 True 7 6 6
7 False Keluar Loop

25
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 2.

0 1 2 3 4 5 6
15 12 17 25 10 5 22 #include<stdio.h>

void main ()

{int A[7]={15,12,17,25,10,5,22};

int I;

for (I=0;I<=6;I++)

{printf(“%i”, A[I]);

0 1 2 3 4 5 6 }
15 12 17 25 10 5 22
}

Tercetak:

15 12 17 25 10 5 22

I I<=6 I++ printf A[I]=A[7]


0 True 1 15
1 True 2 12
2 True 3 17
3 True 4 25
4 True 5 10
5 True 6 5
6 True 7 22
7 False Keluar Loop

26
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 3.

0 1 2 3 4 5 6 #include<stdio.h>
15 12 17 25 10 5 22
50 void main ()

{int A[7]={15,12,17,25,10,5,22};

int I;

A[3]=50;

for (I=0;I<=6;I++)

0 1 2 3 4 5 6 {printf(“%i”, A[I]);
15 12 17 50 10 5 22
}
Tercetak:
}
15 12 17 50 10 5 22

I I<=6 I++ printf A[I]=A[7] A[3]=50 printf A[I]=A[7]


0 True 1 15 15 15
1 True 2 12 12 12
2 True 3 17 17 17
3 True 4 25 50 50
4 True 5 10 10 10
5 True 6 5 5 5
6 True 7 22 22 22
7 False Keluar Loop

27
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1
#include<stdio.h>

Soal 4. void main ()


0 1 2 3 4 5 6
{int A[7]={15,12,17,25,10,5,22};
15 12 17 25 10 5 22
50 int I;

I=3;

A[I]=50;

for (I=0;I<=6;I++)

{printf(“%i”, A[I]);

0 1 2 3 4 5 6
}
15 12 17 50 10 5 22
}
Tercetak:

15 12 17 50 10 5 22

I I<=6 I++ printf A[I]=A[7] A[3]=50 printf A[I]=A[7]


0 True 1 15 15 15
1 True 2 12 12 12
2 True 3 17 17 17
3 True 4 25 50 50
4 True 5 10 10 10
5 True 6 5 5 5
6 True 7 22 22 22
7 False Keluar Loop

28
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

#include<stdio.h>
Soal 5.
void main ()
0 1 2 3 4 5 6
15 12 17 25 10 5 22 {int A[7]={15,12,17,25,10,5,22};
25 25
int I;

A[2]=A[3];

for (I=0;I<=6;I++)

{printf(“%i”, A[I]);

}
0 1 2 3 4 5 6
15 12 25 25 10 5 22 }
Tercetak:

15 12 25 25 10 5 22

I I<=6 I++ printf A[I]=A[7] A[2]=A[3] printf A[I]=A[7]


0 True 1 15 15 15
1 True 2 12 12 12
2 True 3 17 25 25
3 True 4 25 25 25
4 True 5 10 10 10
5 True 6 5 5 5
6 True 7 22 22 22
7 False Keluar Loop

29
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 6. #include<stdio.h>

0 1 2 3 4 5 6 void main ()
15 12 17 25 10 5 22
25 25 {int A[7]={15,12,17,25,10,5,22};

int I;

I=2;

A[I]=A[I+1];

for (I=0;I<=6;I++)

0 1 2 3 4 5 6 {printf(“%i”, A[I]);
15 12 25 25 10 5 22
}
Tercetak:
}
15 12 25 25 10 5 22

printf A[I]=A[7] I=2 printf A[I]=A[7]


I I<=6 I++
A[I]=A[I+1]
0 True 1 15 15 15
1 True 2 12 12 12
2 True 3 17 25 25
3 True 4 25 25 25
4 True 5 10 10 10
5 True 6 5 5 5
6 True 7 22 22 22
7 False Keluar Loop

30
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 7.
#include<stdio.h>
0 1 2 3 4 5 6 1
15 12 17 25 10 5 22 2 void main ()
0 12 12 17 25 10 5 22
1 12 17 17 25 10 5 22 {int A[7]={15,12,17,25,10,5,22}; 2
2 12 17 25 25 10 5 22 3
3 12 17 25 10 10 5 22 int I;
4 12 17 25 10 5 5 22
for (I=0;I<=5;I++) 5
5 12 17 25 10 5 22 22
12 17 25 10 5 22 22 4 {A[I]=A[I+1]; 3

}
5
for (I=0;I<=6;I++) 1

{printf(“%i”, A[I]); 4

atau

I I<=6 I++ printf A[I]=A[7] I I<=5 I++ A[I]=A[I+1] printf A[I]


0 True 1 15 0 True 1 A[0]=A[1] => 12 12
1 True 2 12 1 True 2 A[1]=A[2] => 17 17
2 True 3 17 2 True 3 A[2]=A[3] => 25 25
3 True 4 25 3 True 4 A[3]=A[4] => 10 10
4 True 5 10 4 True 5 A[4]=A[5] => 5 5
5 True 6 5 5 True 6 A[5]=A[6] => 22 22
6 True 7 22 6 False Keluar Loop 22
7 False Keluar Loop

Tercetak:

12 17 25 10 5 22 22

31
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 8.
#include<stdio.h>
0 1 2 3 4 5 6 1
15 12 17 25 10 5 22 2 void main ()
0 15 15 17 25 10 5 22
1 15 15 15 25 10 5 22 {int A[7]={15,12,17,25,10,5,22};
2
2 15 15 15 15 10 5 22 3
3 15 15 15 15 15 5 22 int I;
4 15 15 15 15 15 15 22
for (I=0;I<=5;I++) 5
5 15 15 15 15 15 15 15
15 15 15 15 15 15 15 {A[I+1]=A[I];
4 3

}
5
for (I=0;I<=6;I++) 1

{printf(“%i”, A[I]); 4

atau

I I<=6 I++ printf A[I]=A[7] I I<=5 I++ A[I+1]=A[I] printf A[I]


0 True 1 15 0 True 1 A[1]=A[0] => 15 15
1 True 2 12 1 True 2 A[2]=A[1] => 15 15
2 True 3 17 2 True 3 A[3]=A[2] => 15 15
3 True 4 25 3 True 4 A[4]=A[3] => 15 15
4 True 5 10 4 True 5 A[5]=A[5] => 15 15
5 True 6 5 5 True 6 A[6]=A[5] => 15 15
6 True 7 22 6 False Keluar Loop 15
7 False Keluar Loop

Tercetak:

15 15 15 15 15 15 15

32
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 9.

0 1 2 3 4 5 6 1 #include<stdio.h>
15 12 17 25 10 5 22 2
0 15 15 17 25 10 5 22 void main ()
1 15 15 17 25 10 5 22
2 15 15 17 25 10 5 22 {int A[7]={15,12,17,25,10,5,22}; 2
3 15 15 17 25 25 5 22
int I;
4 15 15 17 25 25 25 22
5 15 15 17 25 25 25 25
for (I=0;I<=5;I++)
15 15 17 25 25 25 25
4
{if (A[I]>A[I+1])
3
5 {A[I+1]=A[I];

for (I=0;I<=6;I++) 1

{printf(“%i”, A[I]); 4

atau

I I<=6 I++ printf A[I]=A[7] I I<=5 I++ if A[I]>A[I+1] A[I+1]=A[I] printf A[I]
0 True 1 15 0 True 1 A[0]>A[1] =>True 15 15
1 True 2 12 1 True 2 A[1]>A[2] => False - 15
2 True 3 17 2 True 3 A[2]>A[3] => False - 17
3 True 4 25 3 True 4 A[3]>A[4] => True 25 25
4 True 5 10 4 True 5 A[4]>A[5] => True 25 25
5 True 6 5 5 True 6 A[5]>A[6] => True 25 25
6 True 7 22 6 False Keluar Loop 25
7 False Keluar Loop

Tercetak:

15 15 17 25 25 25 25

33
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1
#include<stdio.h>

Soal 10. void main ()

0 1 2 3 4 5 6 1 {int A[7]={15,12,17,25,10,5,22}; 2
15 12 17 25 10 5 22 2
0 12 15 17 25 10 5 22 int I,X;
1 12 15 17 25 10 5 22
2 12 15 17 25 10 5 22 3 for (I=0;I<=5;I++) 5
3 12 15 17 10 25 5 22
4 12 15 17 10 5 25 22 {if (A[I]>A[I+1])
5 12 15 17 10 5 22 25
{X=A[I];
12 15 17 10 5 22 25 4 3
A[I]=A[I+1];

5 A[I+1]=X;

}
Tercetak:
for (I=0;I<=6;I++) 1
12 15 17 10 5 22 25
{printf(“%i”, A[I]); 4
}

atau

printf I I<=5 I++ if X=A[I] A[I]=A[I+1] A[I+1]=X printf


I I<=6 I++
A[I]=A[7] A[I]>A[I+1] A[I]
A[0]>A[1]
0 True 1 15 0 True 1 15 12 15 12
=>True
A[1]>A[2]
1 True 2 12 1 True 2 - - - 15
=> False
A[2]>A[3]
2 True 3 17 2 True 3 - - - 17
=> False
A[3]>A[4]
3 True 4 25 3 True 4 25 10 25 10
=> True
A[4]>A[5]
4 True 5 10 4 True 5 25 5 25 5
=> True
A[5]>A[6]
5 True 6 5 5 True 6 25 22 25 22
=> True
6 True 7 22 6 False Keluar Loop 25
7 False Keluar Loop

34
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

#include<stdio.h>
Soal 11.
void main ()
0 1 2 3 4 5 6
A[I]
15 12 17 25 10 5 22 {int A[7]={15,12,17,25,10,5,22};

int B[7];
0 1 2 3 4 5 6
B[I]
15 12 17 25 10 5 22 int I;

for (I=0;I<=6;I++)
atau
{B[I]=A[I];

I A[I]=A[7] printf A[I] B[I]=A[I] printf B[I] }


0 15 15 15 15
1 12 12 12 12 for (I=0;I<=6;I++)
2 17 17 17 17
3 25 25 25 25 {printf(“%i”, A[I]);
4 10 10 10 10
5 5 5 5 5 }
6 22 22 22 22
printf(“\n”);

Tercetak: for (I=0;I<=6;I++)

15 12 17 25 10 5 22 {printf(“%i”, B[I]);

15 12 17 25 10 5 22 }

35
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 12. A[I] B[I] #include<stdio.h>

0 1 2 3 4 5 6 0 1 2 3 4 5 6 void main ()
15 12 17 25 10 5 22 10 27 12 15 18 12 3
{int A[7]={15,12,17,25,10,5,22};

if printf printf int B[7]={10,27,12,15,18,12,3};


I A[I]=A[7] B[I]=B[7] B[I]=A[I]
A[I]>B[I] A[I] B[I]
0 15 10 True 15 15 15 int I;
1 12 27 False - 12 27
for (I=0;I<=6;I++)
2 17 12 True 17 17 17
3 25 15 True 25 25 25 {if (A[I]>B[I])
4 10 18 False - 10 18
5 5 12 False - 5 12 {B[I]=A[I];
6 22 3 True 22 22 22
}

Tercetak:
}

15 12 17 25 10 5 22
for (I=0;I<=6;I++)

15 27 17 25 18 12 22
{printf(“%i”, A[I]);

printf(“\n”);

for (I=0;I<=6;I++)

{printf(“%i”, B[I]);

36
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 13. A[I] B[I] #include<stdio.h>

0 1 2 3 4 5 6 void main ()
0 1 2 3 4 5 6
15 12 17 25 10 5 22 10 27 12 15 18 12 3
{int
A[7]={15,12,17,25,10,5,22};

if B[I]= A[I]= printf printf int B[7]={10,27,12,15,18,12,3};


I A[I]=A[7] B[I]=B[7] X=B[I]
A[I]>B[I] A[I] X A[I] B[I]
int I,X;
0 15 10 True 10 15 10 10 15
1 12 27 False - - - 12 27 for (I=0;I<=6;I++)
2 17 12 True 12 17 12 12 17
3 25 15 True 15 25 15 15 25 {if (A[I]>B[I])

4 10 18 False - - - 10 18 {X=B[I];
5 5 12 False - - - 5 12
6 22 3 True 3 22 3 3 22 B[I]=A[I];

A[I]=X;

Tercetak: }

10 12 12 15 10 5 3 }

15 27 17 25 18 12 22 for (I=0;I<=6;I++)

{printf(“%i”, A[I]);

printf(“\n”);

for (I=0;I<=6;I++)

{printf(“%i”, B[I]);

37
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 13. A[K] B[I] #include<stdio.h>

0 1 2 void main ()
0 1 2 3 4 5 6
15 12 17 10 17 12 15 18 12 3
{int A[3]={15,25,17};

int B[7]={10,17,12,15,18,22,3};
K A[K]=A[3] X=A[K] I B[I] if B[I]>X X=B[I] printf “X”
int I,K,X;
0 15 15 0 10 False -
1 25 25 1 17 False - for (K=0;K<=2;K++)
2 17 17 2 12 False -
15 3 15 False - {X=A[K];

25 4 18 False - }
17 5 22 True 22 22
15 6 3 False - for (I=0;I<=6;I++)

{if (B[I]>X)
Tercetak:
{X=B[I];

22 }

printf(“%i”, X);

38
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal Ujian Algoritma – UTS

1. Apa yang tercetak dari susunan program berikut ini (masukkan N dengan
menggunakan 2 digit terakhir NIM anda)

#include<stdio.h>
void main ()
{int I,J,N,T,X;
printf(“Input Nilai = “);
scanf(“%i”, &N);
T=0;
X=5;
for (I=1;I<=9;I=I+4)
{for (J=I;J<=9;J=J+3)
{T=T+N;
N=N+X;
X=X+J;
}
printf(“%i”, T);
}
}

2. Apa yang tercetak dari susunan program berikut ini (Masukkan Nilai N
dengan menggunakan 1 digit terakhir NIM anda)

#include<stdio.h>
void main ()
{int I,J,N,X;
printf(“Input Nilai = “);
scanf(“%i”, &N);
X=(N+5)/3;
for (I=1;I<=2;I=I+1)
{for (J=1;J<=3;J=J+1)
{printf(“%i”, N);
N=N+X;
}
printf(“\n”);
}
}

40
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

3. Buatlah susunan program dalam bahasa C dari hasil cetak berikut ini:

1 2 3 4 5

6 7 8 9

10 11 12

13 14

15

4. Apa yang tercetak dari susunan program berikut ini (Masukkan Nilai N
dengan menggunakan 2 digit terakhir NIM anda)

#include<stdio.h>
void main ()
{int A,B,N,X,Y;
printf(“Input Nilai = ”);
scanf(“%i”, &N);
if (N>=0)
{A=6; B=8;}
if (N>=25)
{A=9; B=12;}
if (N>=50)
{A=12; B=16;}
if (N>=75)
{A=6; B=18;}
X=A;
Y=B;
while (X!=Y)
{if (X<Y)
{X=X+A;}
else
{Y=Y+B;}
}
printf(“%i”, X);
}

41
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

5. Apa yang tercetak dari susunan program berikut ini (Masukkan Nilai N
dengan menggunakan 1 digit terakhir NIM anda)

#include<stdio.h>
void main ()
{int I,J,N,X;
printf(“Input Nilai = ”);
scanf(“%i, &N”);
for (I=1;I<=5;I=I+1)
{X=N;
for (J=I;J<=5;J=J+2)
{printf(“%i, X”);
X=X+I;
}
}
}

6. Apa yang tercetak dari susunan program berikut ini (Masukkan Nilai N
dengan menggunakan 2 digit terakhir NIM anda)

#include<stdio.h>
void main ()
{int B,N,T,X;
if (N>50) N=N-49;
if (N<51) N=N+20;
if (N>40) N=N-30;
if (N<21) N=N+10;
B=N+100;
T=0;
X=5;
while (T<=B)
{T=T+N;
printf(“%4i”, T);
N=N+X;
X=X+2;
}
}

42
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

7. Lanjutkan susunan program berikut ini

#include<stdio.h>
void main ()
{int A,B,C;
if (A>C)
{if (C<B)
…………………
…………………
…………………
…………………
…………………
…………………
…………………
}
else
{if (A>B)
…………………
…………………
…………………
…………………
…………………
…………………
…………………
}
}

8. Susun algoritma untuk menginput tiga buah bilangan. Cetak perkataan “ADA”,
bila salah satu bilangan lebih besar dari jumlah dua buah bilangan yang lain.,
selainnya (bila tidak) cetak perkataan “TIDAK ADA”.

43
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Jawaban Soal Ujian Algoritma – UTS

Soal 1

T=0

N=4 (diisi dengan nomor NIM 2 digit dari belakang)

X=5

T=T+N N=N+X X=X+J printf


I J T N X
mjd T mjd N mjd X “T”
1 1 0 4 5 4 9 6 4
1 4 4 9 6 13 15 10 13
1 7 13 15 10 28 25 17 28
5 5 28 25 17 53 42 22 53
5 8 53 42 22 95 64 30 95
9 9 95 64 30 159 94 39 159

#include<stdio.h> I=1 I<=9 I=I+4


void main () 1 True 5
{int I,J,N,T,X; 5 True 9
printf(“Input Nilai = “); 9 True 13
scanf(“%i”, &N); 1 9 False Keluar Loop => Bagian ini tdk diproses

T=0; ini merupakan loop yang mencetak berapa


2 kali pengulangan
X=5;
3 for (I=1;I<=9;I=I+4)
{for (J=I;J<=9;J=J+3)
{T=T+N;
4 I=1 J=I J<=9 J=J+3
N=N+X;
1 1 True 4
X=X+J;
1 4 True 7
} 1 7 True 10
printf(“%i”, T); 1 10 False Keluar Loop => Bagian ini tdk diproses
} 5 5 True 8
} 5 8 True 11
5 11 False Keluar Loop => Bagian ini tdk diproses
9 9 True 12
tercetak: 9 12 False Keluar Loop => Bagian ini tdk diproses
ini merupakan loop pembentuk
28 95 159

3 4 dibaca berulangkali s/d keluar loop

1 2 dibaca sekali saja

44
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 2

N=4

X=(4+5)/3=3

N=N+X
I J N X printf “N”
Menjadi N
1 1 4 3 4 7
1 2 7 3 7 10
1 3 10 3 10 13
2 1 13 3 13 16
2 2 16 3 16 19
2 3 19 3 19 22

#include<stdio.h> I=1 I<=2 I=I+1


void main () 1 True 2
{int I,J,N,X; 2 True 3
printf(“Input Nilai = “); 3 False Keluar Loop => Bagian ini tdk diproses
1
scanf(“%i”, &N); ini merupakan loop yang mencetak berapa
X=(N+5)/3; 2 kali pengulangan
for (I=1;I<=2;I=I+1)
3
{for (J=1;J<=3;J=J+1)
4 {printf(“%i”, N);
N=N+X; I=1 J=1 J<=3 J=J+1
} 1 1 True 2
printf(“\n”); 1 2 True 3
} 1 3 True 4
} 1 4 False Keluar Loop => Bagian ini tdk diproses
2 1 True 1
2 2 True 2
2 3 True 3
tercetak: 2 4 False Keluar Loop => Bagian ini tdk diproses
ini merupakan loop pembentuk
4 7 10

13 16 19

3 4 dibaca berulangkali s/d keluar loop

1 2 dibaca sekali saja

45
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 3
mendatar 5 dari hasil cetak program disamping menunjukkan I
J
sebagai pembentuk cetakkan menurun dan tidak
1 2 3 4 5
berkurang seperti J yang mencetak mendatar. Ini
menurun 5

6 7 8 9 berarti J mengikuti I atau J=I. Batasan Loop I dan J


adalah <=5
10 11 12

13 14

15
I

N=N+1 N=N+1
I J N printf “N” I J N printf “N”
Menjadi N Menjadi N
1 1 0 1 1 1 1 1 1 2
1 2 1 2 2 1 2 2 2 3
1 3 2 3 3 1 3 3 3 4
1 4 3 4 4 1 4 4 4 5
1 5 4 5 5 1 5 5 5 6
2 2 5 6 6 2 2 6 6 7
2 3 6 7 7 2 3 7 7 8
2 4 7 8 8 2 4 8 8 9
2 5 8 9 9 2 5 9 9 10
3 3 9 10 10 3 3 10 10 11
3 4 10 11 11 3 4 11 11 12
3 5 11 12 12 3 5 12 12 13
4 4 12 13 13 4 4 13 13 14
4 5 13 14 14 4 5 14 14 15
5 5 14 15 15 5 5 15 15 16

#include<stdio.h> #include<stdio.h>
void main () void main ()
{int I,J,N; {int I,J,N;
N=0; N=1;
for (I=1;I<=5;I=I+1) for (I=1;I<=5;I=I+1)
{for (J=I;J<=5;J=J+1) {for (J=I;J<=5;J=J+1)
{N=N+1; {printf("%4i", N);
printf("%4i", N); N=N+1;
} }
printf("\n"); printf("\n");
} }
} }

46
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 4

N=4 (A=6 B=8)

X=A

Y=B

if X<Y
X Y X!=Y printf “X”
X=X+A Y=Y+B
6 8 True 12 12
12 8 True 16 12
12 16 True 18 18
18 16 True 24 18
18 24 True 24 24
24 24 False

tercetak:

24

47
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 5

N=4

X=N => X=4

X=N
I J=I printf “X” X=X+I
Menjadi X
1 4 1 4 5
1 5 3 5 6
1 6 5 6 7
2 4 2 4 6
2 6 4 6 8
3 4 3 4 7
3 7 5 7 10
4 4 4 4 4
5 4 5 4 4

#include<stdio.h> I=1 I<=5 I=I+1


1 True 2
void main ()
2 True 3
{int I,J,N,X; 3 True 4
printf(“Input Nilai = ”); 4 True 5
1 5 True 6
scanf(“%i, &N”); 6 False Keluar Loop => Bagian ini tdk diproses
2 for (I=1;I<=5;I=I+1) ini merupakan loop yang mencetak berapa
{X=N; 3 kali pengulangan
for (J=I;J<=5;J=J+2)
4 {printf(“%i, X”);
I=1 J=I J<=5 J=J+2
X=X+I; 1 1 True 2
} 1 3 True 5
1 5 True 7
} 1 7 False Keluar Loop => Bagian ini tdk diproses
2 2 True 4
} 2 4 True 6
2 6 False Keluar Loop => Bagian ini tdk diproses
3 3 True 5
3 5 True 7
3 7 False Keluar Loop => Bagian ini tdk diproses
2 4 dibaca berulangkali s/d keluar loop 4 4 True 6
4 6 False Keluar Loop => Bagian ini tdk diproses
5 5 True 7
1 3 dibaca sekali saja 5 7 False Keluar Loop => Bagian ini tdk diproses
ini merupakan loop pembentuk
3 untuk nilai X tidak bertambah
tercetak:
setiap kali pengulangan. X nilainya
sama dengan N setiap kali awal 4 5 6 4 6 4 7 4 4
pengulangan

48
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 6

N=24

B=24+100

T=0

X=5

T=T+N N=N+X X=X+2


T N X T<=B printf “T”
menjadi T menjadi N menjadi X
0 24 5 True 24 24 29 7
24 29 7 True 53 53 36 9
53 36 9 True 89 89 45 11
89 45 11 True 134 134 56 13
134 56 13 False Keluar Loop

tercetak:

24 53 89 134

49
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 7

#include<stdio.h>

void main ()

{int A,B,C;

if (A>C) AC
{if (C<B) A
BC
{if (B<A) ABC

printf(“%i”, A); ABC


else

printf(“%i”, B); BAC


}

else

printf(“%i”, A); ACB

else

{if (A>B) C
AB
printf(“%i”, C); CAB
else

{if (C>B)

printf(“%i”, C); CBA


else

printf(“%i”, B); BCA

50
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 8

#include<stdio.h>

void main ()

{int A,B,C,X,Y,Z;

X=B+C;

Y=A+C;

Z=A+B;

if (A>X)

printf(“ADA”);

else

if (B>Y)

printf (“ADA”);

else

if (C>Z)

printf(“ADA”);

else

printf(“TIDAK ADA”);

51
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 1.

#include<stdio.h> Tercetak:
void main()
{ int A[7] = {5,10,15,20,25,30,35 };
5 10 15 20 25 30 35
int B[7] = {35,30,25,20,15,10,5 }; 35 30 25 20 15 10 5
int I;

printf("\n");
for(I=0; I<=6; I++)
printf("%4i",A[I] );
printf("\n");
for(I=0; I<=6; I++)
printf("%4i",B[I] );
}

A[I] B[I]

0 1 2 3 4 5 6 0 1 2 3 4 5 6
5 10 15 20 25 30 35 35 30 25 20 15 10 5

I A[7] B[7] A[I] B[I] printf “A[I]” printf “B[I]”


0 5 35 A[0]=5 B[0]=35 5 35
1 10 30 A[1]=10 B[1]=30 10 30
2 15 25 A[2]=15 B[2]=25 15 25
3 20 20 A[3]=20 B[3]=20 20 20
4 25 15 A[4]=25 B[4]=15 25 15
5 30 10 A[5]=30 B[5]=10 30 10
6 35 5 A[6]=35 B[6]=5 35 5

52
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 2.

#include<stdio.h> Tercetak:
void main()
{ int A[7] = {5,10,15,20,25,30,35 };
5 10 15 20 25 30 35
int B[7] = {35,30,25,20,15,10,5 }; 5 10 15 20 25 30 35
int I;

for(I=0;I<=6;I++)
{ B[ I ] = A[ I ] ;
}

printf("\n");
for(I=0; I<=6; I++)
printf("%4i",A[I] );
printf("\n");
for(I=0; I<=6; I++)
printf("%4i",B[I] );
}

A[I] B[I]

0 1 2 3 4 5 6 0 1 2 3 4 5 6
5 10 15 20 25 30 35 5 10 15 20 25 30 35

I A[7] B[7] A[I] B[I] B[I]=A[I] printf “A[I]” printf “B[I]”


0 5 35 A[0]=5 B[0]=35 B[0]=A[0] 5 5
1 10 30 A[1]=10 B[1]=30 B[1]=A[1] 10 10
2 15 25 A[2]=15 B[2]=25 B[2]=A[2] 15 15
3 20 20 A[3]=20 B[3]=20 B[3]=A[3] 20 20
4 25 15 A[4]=25 B[4]=15 B[4]=A[4] 25 25
5 30 10 A[5]=30 B[5]=10 B[5]=A[5] 30 30
6 35 5 A[6]=35 B[6]=5 B[6]=A[6] 35 35

53
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 3.

#include<stdio.h> Tercetak:
void main()
{ int A[7] = {5,10,15,20,25,30,35 };
5 10 15 20 25 30 35
int B[7] = {35,30,25,20,15,10,5 }; 35 30 25 20 15 10 5
int I;

for( I=0; I<=6; I++ )


{ B[6-I ] = A[ I ] ;
}

printf("\n");
for(I=0; I<=6; I++)
printf("%4i",A[I] );
printf("\n");
for(I=0; I<=6; I++)
printf("%4i",B[I] );
}

A[I] B[I]

0 1 2 3 4 5 6 0 1 2 3 4 5 6
5 10 15 20 25 30 35 35 30 25 20 15 10 5

I A[7] B[7] A[I] B[I] B[6-I]=A[I] printf “A[I]” printf “B[I]”


0 5 35 A[0]=5 B[0]=35 B[6]=A[0] 5 35
1 10 30 A[1]=10 B[1]=30 B[5]=A[1] 10 30
2 15 25 A[2]=15 B[2]=25 B[4]=A[2] 15 25
3 20 20 A[3]=20 B[3]=20 B[3]=A[3] 20 20
4 25 15 A[4]=25 B[4]=15 B[2]=A[4] 25 15
5 30 10 A[5]=30 B[5]=10 B[1]=A[5] 30 10
6 35 5 A[6]=35 B[6]=5 B[0]=A[6] 35 5

54
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 4.

#include<stdio.h> Tercetak:
void main()
{ int A[7] = {5,10,15,20,25,30,35 };
5 10 15 20 25 30 35
int B[7] = {35,30,25,20,15,10,5 }; 35 30 25 20 25 30 35
int I;

for( I=0; I<=6; I++ )


{ if(A[I] > B[I] )
B[I ] = A[ I ] ;
}

printf("\n");
for(I=0; I<=6; I++)
printf("%4i",A[I] );
printf("\n");
for(I=0; I<=6; I++)
printf("%4i",B[I] );
}

A[I] B[I]

0 1 2 3 4 5 6 0 1 2 3 4 5 6
5 10 15 20 25 30 35 35 30 25 20 25 30 35

I A[7] B[7] A[I] B[I] A[I]>B[I] B[I]=A[I] printf “A[I]” printf “B[I]”
0 5 35 A[0]=5 B[0]=35 False - 5 35
1 10 30 A[1]=10 B[1]=30 False - 10 30
2 15 25 A[2]=15 B[2]=25 False - 15 25
3 20 20 A[3]=20 B[3]=20 False - 20 20
4 25 15 A[4]=25 B[4]=15 True B[2]=A[4] 25 25
5 30 10 A[5]=30 B[5]=10 True B[1]=A[5] 30 30
6 35 5 A[6]=35 B[6]=5 True B[0]=A[6] 35 35

55
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 5.

#include<stdio.h> Tercetak:
void main()
{ int A[7] = {5,10,15,20,25,30,35 };
5 10 15 20 15 10 5
int B[7] = {35,30,25,20,15,10,5 }; 35 30 25 20 25 30 35
int I, X;

for( I=0; I<=6; I++ )


{ if(A[I] > B[I] )
{ X = B[I];
B[ I ] = A[ I ] ;
A[I] = X;
}
}

printf("\n");
for(I=0; I<=6; I++)
printf("%4i",A[I] );
printf("\n");
for(I=0; I<=6; I++)
printf("%4i",B[I] );
}

A[I] B[I]

0 1 2 3 4 5 6 0 1 2 3 4 5 6
5 10 15 20 15 10 5 35 30 25 20 25 30 35

A[I] B[I] A[I]>B[I] X=B[I] B[I]=A[I] A[I]=X printf Printf


I A[7] B[7]
“A[I]” “B[I]”
0 5 35 A[0]=5 B[0]=35 False - - - 5 35
1 10 30 A[1]=10 B[1]=30 False - - - 10 30
2 15 25 A[2]=15 B[2]=25 False - - - 15 25
3 20 20 A[3]=20 B[3]=20 False - - - 20 20
4 25 15 A[4]=25 B[4]=15 True 15 25 15 15 25
5 30 10 A[5]=30 B[5]=10 True 10 30 10 10 30
6 35 5 A[6]=35 B[6]=5 True 5 35 5 5 35

56
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 6.

#include<stdio.h> Tercetak:
void main()
{ int A[7] = {5,10,15,20,25,30,35 };
35 30 25 20 25 30 35
int B[7] = {35,30,25,20,15,10,5 }; 5 10 15 20 15 10 5
int I, X;

for( I=0; I<=6; I++ )


{ if(A[I] < B[I] )
{ X = B[I];
B[ I ] = A[ I ] ;
A[I] = X;
}
}

printf("\n");
for(I=0; I<=6; I++)
printf("%4i",A[I] );
printf("\n");
for(I=0; I<=6; I++)
printf("%4i",B[I] );
}

A[I] B[I]

0 1 2 3 4 5 6 0 1 2 3 4 5 6
35 30 25 20 25 30 35 5 10 15 20 15 10 5

A[I] B[I] A[I]<B[I] X=B[I] B[I]=A[I] A[I]=X printf Printf


I A[7] B[7]
“A[I]” “B[I]”
0 5 35 A[0]=5 B[0]=35 True 35 5 35 35 5
1 10 30 A[1]=10 B[1]=30 True 30 10 30 30 10
2 15 25 A[2]=15 B[2]=25 True 25 15 25 25 15
3 20 20 A[3]=20 B[3]=20 False - - - 20 20
4 25 15 A[4]=25 B[4]=15 False - - - 25 15
5 30 10 A[5]=30 B[5]=10 False - - - 30 10
6 35 5 A[6]=35 B[6]=5 False - - - 35 5

57
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 7.

#include<stdio.h> Tercetak:
void main()
{ int A[3] = {5,10,15 };
int B[5] = {35,30,25,20,15 }; 15
int I,J, X;
X=0;
for( I=0; I<=2; I++ )
{ for(J=0; J<=4; J++)
{ if(A[I] == B[J] )
X = A[I] ;
}
}
printf("\n");
printf("%i", X );
}

A[I] B[J]

0 1 2 0 1 2 3 4
5 10 15 35 30 25 20 15

I I<=2 I++ A[3] A[I]


I J A[I] B[J] A[I]==B[J] X=A[I] printf “X”
0 True 1 5 5
0 0 5 35 False - 0
1 True 2 10 10
0 1 5 30 False - 0
2 True 3 15 15
0 2 5 25 False - 0
3 False Keluar Loop
0 3 5 20 False - 0
0 4 5 15 False - 0
J J<=2 J++ B[5] B[J]
1 0 10 35 False - 0
0 True 1 35 35
1 1 10 30 False - 0
1 True 2 30 30
1 2 10 25 False - 0
2 True 3 25 25
1 3 10 20 False - 0
3 True 4 20 20
1 4 10 15 False - 0
4 True 5 15 15
2 0 15 35 False - 0
5 True Keluar Loop
2 1 15 30 False - 0
2 2 15 25 False - 0
2 3 15 20 False - 0
2 4 15 15 True 15 15

58
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 8.

#include<stdio.h> Tercetak:
void main()
{ int A[3] = {10,20,30 };
int B[5] = {35,30,25,20,15 }; 30
int I,J, X;
X=0;
for( I=0; I<=2; I++ )
{ for(J=0; J<=4; J++)
{ if(A[I] == B[J] )
X = A[I] ;
}
}
printf("\n");
printf("%i", X );
}

A[I] B[J]

0 1 2 0 1 2 3 4
10 20 30 35 30 25 20 15

I I<=2 I++ A[3] A[I]


I J A[I] B[J] A[I]==B[J] X=A[I] printf “X”
0 True 1 10 10
0 0 10 35 False - 0
1 True 2 20 20
0 1 10 30 False - 0
2 True 3 30 30
0 2 10 25 False - 0
3 False Keluar Loop
0 3 10 20 False - 0
0 4 10 15 False - 0
J J<=2 J++ B[5] B[J]
1 0 20 35 False - 0
0 True 1 35 35
1 1 20 30 False - 0
1 True 2 30 30
1 2 20 25 False - 0
2 True 3 25 25
1 3 20 20 True 20 20
3 True 4 20 20
1 4 20 15 False - 20
4 True 5 15 15
2 0 30 35 False - 20
5 True Keluar Loop
2 1 30 30 True 30 30
2 2 30 25 False - 30
2 3 30 20 False - 30
2 4 30 15 False - 30

59
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 9.

#include<stdio.h> Tercetak:
void main()
{ int A[3] = {5,10,15 };
int B[5] = {35,30,25,20,15 }; 1
int I,J, Jum;
Jum=0;
for( I=0; I<=2; I++ )
{ for(J=0; J<=4; J++)
{ if(A[I] == B[J] )
Jum++;
}
}
printf("\n");
printf("%i", Jum );
}

A[I] B[J]

0 1 2 0 1 2 3 4
5 10 15 35 30 25 20 15

I I<=2 I++ A[3] A[I]


I J A[I] B[J] A[I]==B[J] Jum++ printf “Jum”
0 True 1 5 5
0 0 5 35 False - 0
1 True 2 10 10
0 1 5 30 False - 0
2 True 3 15 15
0 2 5 25 False - 0
3 False Keluar Loop
0 3 5 20 False - 0
0 4 5 15 False - 0
J J<=2 J++ B[5] B[J]
1 0 10 35 False - 0
0 True 1 35 35
1 1 10 30 False - 0
1 True 2 30 30
1 2 10 25 False - 0
2 True 3 25 25
1 3 10 20 False - 0
3 True 4 20 20
1 4 10 15 False - 0
4 True 5 15 15
2 0 15 35 False - 0
5 True Keluar Loop
2 1 15 30 False - 0
2 2 15 25 False - 0
2 3 15 20 False - 0
2 4 15 15 True 1 1

60
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 10.

#include<stdio.h> Tercetak:
void main()
{ int A[3] = {10,20,30 };
int B[5] = {35,30,25,20,15 }; 2
int I,J, Jum;
Jum=0;
for( I=0; I<=2; I++ )
{ for(J=0; J<=4; J++)
{ if(A[I] == B[J] )
Jum++;
}
}
printf("\n");
printf("%i", Jum );
}

A[I] B[J]

0 1 2 0 1 2 3 4
10 20 30 35 30 25 20 15

I I<=2 I++ A[3] A[I]


I J A[I] B[J] A[I]==B[J] Jum++ printf “Jum”
0 True 1 10 10
0 0 10 35 False - 0
1 True 2 20 20
0 1 10 30 False - 0
2 True 3 30 30
0 2 10 25 False - 0
3 False Keluar Loop
0 3 10 20 False - 0
0 4 10 15 False - 0
J J<=2 J++ B[5] B[J]
1 0 20 35 False - 0
0 True 1 35 35
1 1 20 30 False - 0
1 True 2 30 30
1 2 20 25 False - 0
2 True 3 25 25
1 3 20 20 True 1 1
3 True 4 20 20
1 4 20 15 False - 1
4 True 5 15 15
2 0 30 35 False - 1
5 True Keluar Loop
2 1 30 30 True 2 2
2 2 30 25 False - 2
2 3 30 20 False - 2
2 4 30 15 False - 2

61
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 11.

#include<stdio.h> Tercetak:
void main()
{ int A[3] = {5,10,15 };
int B[5] = {35,30,25,20,15 }; 0000000000015
int I,J, X;
X=0;
for( I=0; I<=2; I++ )
{ for(J=0; J<=4; J++)
{ if(A[I] == B[J] )
X = A[I] ;
printf(“%i”, X);
}
}
}

A[I] B[J]

0 1 2 0 1 2 3 4
5 10 15 35 30 25 20 15

I I<=2 I++ A[3] A[I]


I J A[I] B[J] A[I]==B[J] X=A[I] printf “X”
0 True 1 5 5
0 0 5 35 False - 0
1 True 2 10 10
0 1 5 30 False - 0
2 True 3 15 15
0 2 5 25 False - 0
3 False Keluar Loop
0 3 5 20 False - 0
0 4 5 15 False - 0
J J<=2 J++ B[5] B[J]
1 0 10 35 False - 0
0 True 1 35 35
1 1 10 30 False - 0
1 True 2 30 30
1 2 10 25 False - 0
2 True 3 25 25
1 3 10 20 False - 0
3 True 4 20 20
1 4 10 15 False - 0
4 True 5 15 15
2 0 15 35 False - 0
5 True Keluar Loop
2 1 15 30 False - 0
2 2 15 25 False - 0
2 3 15 20 False - 0
2 4 15 15 True 15 15

62
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 12.

#include<stdio.h> Tercetak:
void main()
{ int A[3] = {5,10,15 };
0000
int B[5] = {35,30,25,20,15 }; 0000
int I,J, X; 00015
X=0;
for( I=0; I<=2; I++ )
{ for(J=0; J<=4; J++)
{ if(A[I] == B[J] )
X = A[I] ;
printf("%i", X);
}
printf("\n");
}
}

A[I] B[J]

0 1 2 0 1 2 3 4
5 10 15 35 30 25 20 15

I I<=2 I++ A[3] A[I]


I J A[I] B[J] A[I]==B[J] X=A[I] printf “X”
0 True 1 5 5
0 0 5 35 False - 0
1 True 2 10 10
0 1 5 30 False - 0
2 True 3 15 15
0 2 5 25 False - 0
3 False Keluar Loop
0 3 5 20 False - 0
0 4 5 15 False - 0
J J<=2 J++ B[5] B[J]
1 0 10 35 False - 0
0 True 1 35 35
1 1 10 30 False - 0
1 True 2 30 30
1 2 10 25 False - 0
2 True 3 25 25
1 3 10 20 False - 0
3 True 4 20 20
1 4 10 15 False - 0
4 True 5 15 15
2 0 15 35 False - 0
5 True Keluar Loop
2 1 15 30 False - 0
2 2 15 25 False - 0
2 3 15 20 False - 0
2 4 15 15 True 15 15

63
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 12.

#include<stdio.h> Tercetak:
void main()
{ int A[3] = {5,10,15 };
0
int B[5] = {35,30,25,20,15 }; 0
int I,J, X; 15
X=0;
for( I=0; I<=2; I++ )
{ for(J=0; J<=4; J++)
{ if(A[I] == B[J] )
X = A[I] ;
}
printf("%i", X);
printf("\n");
}
}

A[I] B[J]

0 1 2 0 1 2 3 4
5 10 15 35 30 25 20 15

I I<=2 I++ A[3] A[I]


I J A[I] B[J] A[I]==B[J] X=A[I] printf “X”
0 True 1 5 5
0 0 5 35 False - 0
1 True 2 10 10
0 1 5 30 False - 0
2 True 3 15 15
0 2 5 25 False - 0
3 False Keluar Loop
0 3 5 20 False - 0
0 4 5 15 False - 0
J J<=2 J++ B[5] B[J]
1 0 10 35 False - 0
0 True 1 35 35
1 1 10 30 False - 0
1 True 2 30 30
1 2 10 25 False - 0
2 True 3 25 25
1 3 10 20 False - 0
3 True 4 20 20
1 4 10 15 False - 0
4 True 5 15 15
2 0 15 35 False - 0
5 True Keluar Loop
2 1 15 30 False - 0
2 2 15 25 False - 0
2 3 15 20 False - 0
2 4 15 15 True 15 15

64
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 13.

#include<stdio.h> Tercetak:
void main()
{ int A[3] = {10,20,30 };
int B[5] = {35,30,25,20,15 }; 000000001112222
int I,J, Jum;
Jum=0;
for( I=0; I<=2; I++ )
{ for(J=0; J<=4; J++)
{ if(A[I] == B[J] )
Jum++;
printf("%i", Jum );
}
}
}

A[I] B[J]

0 1 2 0 1 2 3 4
10 20 30 35 30 25 20 15

I I<=2 I++ A[3] A[I]


I J A[I] B[J] A[I]==B[J] Jum++ printf “Jum”
0 True 1 10 10
0 0 10 35 False - 0
1 True 2 20 20
0 1 10 30 False - 0
2 True 3 30 30
0 2 10 25 False - 0
3 False Keluar Loop
0 3 10 20 False - 0
0 4 10 15 False - 0
J J<=2 J++ B[5] B[J]
1 0 20 35 False - 0
0 True 1 35 35
1 1 20 30 False - 0
1 True 2 30 30
1 2 20 25 False - 0
2 True 3 25 25
1 3 20 20 True 1 1
3 True 4 20 20
1 4 20 15 False - 1
4 True 5 15 15
2 0 30 35 False - 1
5 True Keluar Loop
2 1 30 30 True 2 2
2 2 30 25 False - 2
2 3 30 20 False - 2
2 4 30 15 False - 2

65
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 14.

#include<stdio.h> Tercetak:
void main()
{ int A[3] = {10,20,30 };
00000
int B[5] = {35,30,25,20,15 }; 00011
int I,J, Jum; 12222
Jum=0;
for( I=0; I<=2; I++ )
{ for(J=0; J<=4; J++)
{ if(A[I] == B[J] )
Jum++;
printf("%i", Jum );
}
printf(“\n”);
}
}

A[I] B[J]

0 1 2 0 1 2 3 4
10 20 30 35 30 25 20 15

I I<=2 I++ A[3] A[I]


I J A[I] B[J] A[I]==B[J] Jum++ printf “Jum”
0 True 1 10 10
0 0 10 35 False - 0
1 True 2 20 20
0 1 10 30 False - 0
2 True 3 30 30
0 2 10 25 False - 0
3 False Keluar Loop
0 3 10 20 False - 0
0 4 10 15 False - 0
J J<=2 J++ B[5] B[J]
1 0 20 35 False - 0
0 True 1 35 35
1 1 20 30 False - 0
1 True 2 30 30
1 2 20 25 False - 0
2 True 3 25 25
1 3 20 20 True 1 1
3 True 4 20 20
1 4 20 15 False - 1
4 True 5 15 15
2 0 30 35 False - 1
5 True Keluar Loop
2 1 30 30 True 2 2
2 2 30 25 False - 2
2 3 30 20 False - 2
2 4 30 15 False - 2

66
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 15.

#include<stdio.h> Tercetak:
void main()
{ int A[3] = {10,20,30 };
0
int B[5] = {35,30,25,20,15 }; 1
int I,J, Jum; 2
Jum=0;
for( I=0; I<=2; I++ )
{ for(J=0; J<=4; J++)
{ if(A[I] == B[J] )
Jum++;
}
printf(“% i”, Jum);
printf(“\n”);
}
}

A[I] B[J]

0 1 2 0 1 2 3 4
10 20 30 35 30 25 20 15

I I<=2 I++ A[3] A[I]


I J A[I] B[J] A[I]==B[J] Jum++ printf “Jum”
0 True 1 10 10
0 0 10 35 False - 0
1 True 2 20 20
0 1 10 30 False - 0
2 True 3 30 30
0 2 10 25 False - 0
3 False Keluar Loop
0 3 10 20 False - 0
0 4 10 15 False - 0
J J<=2 J++ B[5] B[J]
1 0 20 35 False - 0
0 True 1 35 35
1 1 20 30 False - 0
1 True 2 30 30
1 2 20 25 False - 0
2 True 3 25 25
1 3 20 20 True 1 1
3 True 4 20 20
1 4 20 15 False - 1
4 True 5 15 15
2 0 30 35 False - 1
5 True Keluar Loop
2 1 30 30 True 2 2
2 2 30 25 False - 2
2 3 30 20 False - 2
2 4 30 15 False - 2

67
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 16.

#include<stdio.h> Tercetak:
void main ()
{ int A[3] = {15, 25, 17 };
22 25 22
int B[7] = {10, 7, 12, 15, 18, 22, 3 };
int I,K,X;
for( K = 0; K<=2; K++ )
{ X = A[K];
for( I=0; I<=6; I++ )
{ if(B[I] > X )
{ X = B[I];
}
}
printf("%i ", X );
}
}

A[K] B[I]

0 1 2 0 1 2 3 4 5 6
15 25 17 10 7 12 15 18 22 3

X=A[K] => 15 ini untuk pertamanya saja sehabis itu


nilai x berubah mengikuti syarat if B[I]>X yg menjadi
X=B[I]
K K<=2 K++ K[3] A[K]
K I A[K] B[I] X B[I]>X X=B[I] printf ”X”
0 True 1 15 15
0 0 15 10 15 False - 15
1 True 2 25 25
0 1 15 7 15 False - 15
2 True 3 17 17
0 2 15 12 15 False - 15
3 False Keluar Loop
0 3 15 15 15 False - 15
0 4 15 18 18 True 18 18
I I<=6 I++ B[7] B[I]
0 5 15 22 22 True 22 22
0 True 1 10 10
0 6 15 3 22 False - 22
1 True 2 7 7
1 0 25 10 25 False - 25
2 True 3 12 12
1 1 25 7 25 False - 25
3 True 4 15 15
1 2 25 12 25 False - 25
4 True 5 18 18
1 3 25 15 25 False - 25
5 True 6 22 22
1 4 25 18 25 False - 25
6 True 7 3 3
1 5 25 22 25 False - 25
7 True Keluar Loop
1 6 25 3 25 False - 25
2 0 17 10 17 False - 17
2 1 17 7 17 False - 17
2 2 17 12 17 False - 17
2 3 17 15 17 False - 17
2 4 17 18 17 True 18 18
2 5 17 22 17 True 22 22
2 6 17 3 17 False - 22

68
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 17.

#include<stdio.h> Tercetak:
void main ()
{ int A[3] = {15, 25, 17 };
15 15 15 15 18 22 22
int B[7] = {10, 7, 12, 15, 18, 22, 3 }; 25 25 25 25 25 25 25
int I,K,X; 17 17 17 17 18 22 22
for( K = 0; K<=2; K++ )
{ X = A[K];
for( I=0; I<=6; I++ )
{ if(B[I] > X )
{ X = B[I];
}
printf("%i ", X );
}
printf(”\n”)
}

A[K] B[I]

0 1 2 0 1 2 3 4 5 6
15 25 17 10 7 12 15 18 22 3

K K<=2 K++ K[3] A[K]


K I A[K] B[I] X B[I]>X X=B[I] printf ”X”
0 True 1 15 15
0 0 15 10 15 False - 15
1 True 2 25 25
0 1 15 7 15 False - 15
2 True 3 17 17
0 2 15 12 15 False - 15
3 False Keluar Loop
0 3 15 15 15 False - 15
0 4 15 18 18 True 18 18
I I<=6 I++ B[7] B[I]
0 5 15 22 22 True 22 22
0 True 1 10 10
0 6 15 3 22 False - 22
1 True 2 7 7
1 0 25 10 25 False - 25
2 True 3 12 12
1 1 25 7 25 False - 25
3 True 4 15 15
1 2 25 12 25 False - 25
4 True 5 18 18
1 3 25 15 25 False - 25
5 True 6 22 22
1 4 25 18 25 False - 25
6 True 7 3 3
1 5 25 22 25 False - 25
7 True Keluar Loop
1 6 25 3 25 False - 25
2 0 17 10 17 False - 17
2 1 17 7 17 False - 17
2 2 17 12 17 False - 17
2 3 17 15 17 False - 17
2 4 17 18 17 True 18 18
2 5 17 22 17 True 22 22
2 6 17 3 17 False - 22

69
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 18.

#include<stdio.h> Tercetak:
void main ()
{ int A[3] = {15, 25, 17 };
22
int B[7] = {10, 7, 12, 15, 18, 22, 3 };
int I,K,X;
for( K = 0; K<=2; K++ )
{ X = A[K];
for( I=0; I<=6; I++ )
{ if(B[I] > X )
{ X = B[I];
}
}
}
printf(”% i”, X);
}

A[K] B[I]

0 1 2 0 1 2 3 4 5 6
15 25 17 10 7 12 15 18 22 3

K K<=2 K++ K[3] A[K]


K I A[K] B[I] X B[I]>X X=B[I] printf ”X”
0 True 1 15 15
0 0 15 10 15 False - 15
1 True 2 25 25
0 1 15 7 15 False - 15
2 True 3 17 17
0 2 15 12 15 False - 15
3 False Keluar Loop
0 3 15 15 15 False - 15
0 4 15 18 18 True 18 18
I I<=6 I++ B[7] B[I]
0 5 15 22 22 True 22 22
0 True 1 10 10
0 6 15 3 22 False - 22
1 True 2 7 7
1 0 25 10 25 False - 25
2 True 3 12 12
1 1 25 7 25 False - 25
3 True 4 15 15
1 2 25 12 25 False - 25
4 True 5 18 18
1 3 25 15 25 False - 25
5 True 6 22 22
1 4 25 18 25 False - 25
6 True 7 3 3
1 5 25 22 25 False - 25
7 True Keluar Loop
1 6 25 3 25 False - 25
2 0 17 10 17 False - 17
2 1 17 7 17 False - 17
2 2 17 12 17 False - 17
2 3 17 15 17 False - 17
2 4 17 18 17 True 18 18
2 5 17 22 17 True 22 22
2 6 17 3 17 False - 22

70
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 19.

#include<stdio.h> Tercetak:
void main ()
12 10 5 15 17 22 25
{ int A[7] = {15,12,17,25,10,5,22};
int I,K, X;
for(K=1; K<=3; K++)
{ for( I=0; I<=5; I++ )
{ if (A[I] > A[I+1] )
{ X = A[I];
A[I] = A[I+1];
A[I+1] = X;
}
}
}
for( I=0; I<=6; I++ )
{ printf("%i ", A[I] );
} A[I]
}

0 1 2 3 4 5 6
15 12 17 25 10 5 22

K K<=2 K++ K I I A[I]>A[I+1] A[I] X=A[I] A[I]=A[I+1] A[I+1]=X printf “A[I]”


1 True 1 1 0 0 True 15 15 12 15 12
2 True 2 1 1 1 False 12 - - - 15
3 True 3 1 2 2 False 17 - - - 17
4 False 1 3 3 True 25 25 10 25 10
1 4 4 True 10 25 5 25 5
I I<=6 I++ 1 5 5 True 5 25 22 25 22
0 True 1 1 6 25
1 True 2 2 0 0 False 12 - - - 12
2 True 3 2 1 1 False 15 - - - 15
3 True 4 2 2 2 True 17 17 10 17 10
4 True 5 2 3 3 True 10 17 5 17 5
5 True 6 2 4 4 False 5 - - - 17
6 False 2 5 5 False 22 - - - 22
2 6 6 25
3 0 0 False 12 - - - 12
I I<=6 I++
3 1 1 True 15 15 10 15 10
0 True 1
3 2 2 True 10 15 5 15 5
1 True 2
3 3 3 False 5 - - - 15
2 True 3
3 4 4 False 17 - - - 17
3 True 4
3 5 5 False 22 - - - 22
4 True 5
3 6 6 False 25 - - - 25
5 True 6
6 True 7
7 False

71
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 20.

#include<stdio.h> Tercetak:
void main ()
{ char A[26] = ”ABCDEFGHIJKLMNOPQRSTUVWXYZ”;
A B C D E
int I,J,N; F G H I J
N=0; K L M N O
for( I = 1; I<=3; I++ )
{ for( J=1; J<=5; J++ )
{ printf(”% c”, A[N]);
N=N+1;
}
printf(”\n”);
}
}

A[N]

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
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

N=0;
I I<=3 I++
printf “A[N]” N=N+1
1 True 2 I J N
menjadi N
2 True 3
1 1 0 0[A] 1
3 True 4
2 1 1[B] 2
4 False
3 2 2[C] 3
4 3 3[D] 4
J J<=5 J++
5 4 4[E] 5
1 True 2
2 1 5 5[F] 6
2 True 3
2 6 6[G] 7
3 True 4
3 8 8[H] 9
4 True 5
4 9 9[I] 10
5 True 6
5 10 10[J] 11
6 False
3 1 11 11[K] 12
2 12 12[L] 13
3 13 13[M] 14
4 14 14[N] 15
5 16 16[O] 17

72
Lukas Sapto Aji D.S. – Algoritma dan Struktur Data 1

Soal 21.

#include<stdio.h> Tercetak:
void main ()
{ char A[26] = ”ABCDEFGHIJKLMNOPQRSTUVWXYZ”;
A B C D E
int I,J,N; F G H I
N=0; J K L
for( I = 1; I<=3; I++ )
{ for( J=I; J<=5; J++ )
{ printf(”% c”, A[N]);
N=N+1;
}
printf(”\n”);
}
}

A[N]

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
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

N=0;
I I<=3 I++
printf “A[N]” N=N+1
1 True 2 I J N
menjadi N
2 True 3
1 1 0 0[A] 1
3 True 4
1 2 1 1[B] 2
4 False
1 3 2 2[C] 3
1 4 3 3[D] 4
1 5 4 4[E] 5
2 2 5 5[F] 6
2 3 6 6[G] 7
2 4 8 8[H] 9
2 5 9 9[I] 10
3 3 10 10[J] 11
3 4 11 11[K] 12
3 5 12 12[L] 13

73

You might also like