Solusi UTS Genap 2011 Beserta Langkah

47
Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011 Soal A - 1 SOAL A Buatlah sebuah program untuk menampilkan sejumlah bilangan / angka. Kumpulan angka tersebut pada posisi ganjil memiliki selisih 2. Sedangkan pada posisi genap merupakan kelipatan 3. LIHAT CONTOH BERIKUT INI: 3 10 3 12 6 14 9 16 12 18 15 20 2 Kriteria program: 1. Program akan meminta input batas bawah dan batas atas. Program juga akan meminta input jumlah angka yang akan ditampilkan. 2. Syarat: batas bawah HARUS lebih kecil dari batas atas. Jika tidak dipenuhi, program akan meminta kembali nilai batas bawah dan batas atas. 3. Syarat: jumlah bilangan yang ditampilkan MINIMAL 3. Jika jumlah bilangan kurang dari 3, maka program akan meminta kembali input jumlah bilangan yang hendak ditampilkan. 4. Untuk langkah 5-8 hanya dikerjakan dalam 1 looping. 5. Angka ke-1 merupakan nilai batas bawah, angka ke-3,5,7,9,11,… (ganjil) memiliki selisih 2 dari bilangan posisi ganjil sebelumnya (lihat contoh di atas). 6. Angka ke-2 selalu mulai dari angka 3. Angka ke-4,6,8,10,12,… (genap) merupakan bilangan kelipatan 3. 7. Bilangan/angka dalam kumpulan tersebut, yang merupakan bilangan ganjil diberi warna CYAN (yang diberi warna biru, dicontohkan dengan di BOLD), angka lainnya berwarna WHITE. 8. Angka / bilangan yang ditampilkan sejumlah input yang diinginkan ATAU sampai batas atas, kalau jumlahnya tidak mencukupi keluar peringatan bahwa angka yang ditampilkan tidak mencukupi permintaan. Bobot masing-masing: no. 1 – 4,7 – 8 maks 10; no. 5 – 6 maks 20 Perintah untuk memberi warna sebelum perintah write adalah textcolor(cyan), textcolor(white) atau textcolor(lightgray) Contoh Input: BB = 10; BA = 20; n = 8 (angka yang dibold + underline adalah angka yang harus berwarna biru) 10 3 12 6 14 9 16 12 BB = 5; BA = 14; n = 10 (angka yang dibold + underline adalah angka yang harus berwarna biru) 5 3 7 6 9 9 11 12 13 15 Langkah-langkah : 1. Input batas bawah, batas atas dan nilai n 2. Ulangi langkah 1 sampai batas bawah lebih kecil daripada batas atas 3. Ulangi langkah 1 dan 2 sampai n lebih besar daripada 3 4. Angka posisi ganjil dimulai dari batas bawah dan ditambah 2 dari angka posisi ganjil sebelumnya 5. Tulis sampai angka posisi ganjil lebih besar daripada batas atas 6. Pertama kali akan ditulis angka batas bawah, tetapi karena angka posisi ganjil sudah ditambah 2 terlebih dahulu (yang ditulis pertama akan menjadi batas bawah +2) maka dilakukan sedikit perbaikan dengan mengganti angka posisi ganjil dimulai dari batas bawah -2. 7. Angka posisi genap dimulai dari 3 dan ditambah 3 dari angka posisi genap sebelumnya

Transcript of Solusi UTS Genap 2011 Beserta Langkah

Page 1: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal A - 1

SOAL A

Buatlah sebuah program untuk menampilkan sejumlah bilangan / angka. Kumpulan angka

tersebut pada posisi ganjil memiliki selisih 2. Sedangkan pada posisi genap merupakan kelipatan 3.

LIHAT CONTOH BERIKUT INI:

3

10 3 12 6 14 9 16 12 18 15 20

2

Kriteria program:

1. Program akan meminta input batas bawah dan batas atas. Program juga akan meminta input jumlah

angka yang akan ditampilkan.

2. Syarat: batas bawah HARUS lebih kecil dari batas atas. Jika tidak dipenuhi, program akan meminta

kembali nilai batas bawah dan batas atas.

3. Syarat: jumlah bilangan yang ditampilkan MINIMAL 3. Jika jumlah bilangan kurang dari 3, maka

program akan meminta kembali input jumlah bilangan yang hendak ditampilkan.

4. Untuk langkah 5-8 hanya dikerjakan dalam 1 looping.

5. Angka ke-1 merupakan nilai batas bawah, angka ke-3,5,7,9,11,… (ganjil) memiliki selisih 2 dari

bilangan posisi ganjil sebelumnya (lihat contoh di atas).

6. Angka ke-2 selalu mulai dari angka 3. Angka ke-4,6,8,10,12,… (genap) merupakan bilangan kelipatan

3.

7. Bilangan/angka dalam kumpulan tersebut, yang merupakan bilangan ganjil diberi warna CYAN (yang

diberi warna biru, dicontohkan dengan di BOLD), angka lainnya berwarna WHITE.

8. Angka / bilangan yang ditampilkan sejumlah input yang diinginkan ATAU sampai batas atas, kalau

jumlahnya tidak mencukupi keluar peringatan bahwa angka yang ditampilkan tidak mencukupi

permintaan.

Bobot masing-masing: no. 1 – 4,7 – 8 maks 10; no. 5 – 6 maks 20

Perintah untuk memberi warna sebelum perintah write adalah textcolor(cyan), textcolor(white) atau

textcolor(lightgray)

Contoh Input:

BB = 10; BA = 20; n = 8 (angka yang dibold + underline adalah angka yang harus berwarna biru)

10 3 12 6 14 9 16 12

BB = 5; BA = 14; n = 10 (angka yang dibold + underline adalah angka yang harus berwarna biru)

5 3 7 6 9 9 11 12 13 15

Langkah-langkah :

1. Input batas bawah, batas atas dan nilai n

2. Ulangi langkah 1 sampai batas bawah lebih kecil daripada batas atas

3. Ulangi langkah 1 dan 2 sampai n lebih besar daripada 3

4. Angka posisi ganjil dimulai dari batas bawah dan ditambah 2 dari angka posisi ganjil sebelumnya

5. Tulis sampai angka posisi ganjil lebih besar daripada batas atas

6. Pertama kali akan ditulis angka batas bawah, tetapi karena angka posisi ganjil sudah ditambah 2

terlebih dahulu (yang ditulis pertama akan menjadi batas bawah +2) maka dilakukan sedikit

perbaikan dengan mengganti angka posisi ganjil dimulai dari batas bawah -2.

7. Angka posisi genap dimulai dari 3 dan ditambah 3 dari angka posisi genap sebelumnya

Page 2: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal A - 2

8. Tulis sampai angka posisi ganji lebih besar daripada batas atas atau angka posisi genap lebih besar

daripada batas atas

9. Angka posisi genap pertama kali harusnya adalah 3, tetapi karena angka posisi ganjil sudah

ditambah 3 terlebih dahulu (yang ditulis pertama akan menjadi 6) maka dilakukan sedikit perbaikan

dengan mengganti angka posisi genap dimulai dari 0.

10. Sebelum angka posisi ganjil dan genap ditulis, periksa terlebih dahulu. Bila angkanya ganjil ditulis

dengan warna cyan selain itu diberi warna putih

11. Setelah menulis angka (baik posisi ganjil atau posisi genap), counter ditambah 1.

12. Jika counter masih lebih kecil daripada n, tulis angka posisi ganjil dan angka posisi genap.

13. Ulangi sampai counter = n, atau salah satu dari angka posisi genap atau angka posisi ganjil sudah

melebihi batas atas

14. Bila counter lebih kecil daripada n, maka angka yang ditampilkan tidak mencukupi permintaan

Langkah 1 : Input batas bawah, batas atas dan nilai n

program SOAL_UTS_A;uses crt;var bb,ba: integer;

n : byte;

beginclrscr;

write('Input Batas Bawah : '); readln(bb);write('Input Batas Atas : '); readln(ba);write('Input Banyak Bilangan : '); readln(n);

readkey;end.

Langkah 2 : Ulangi langkah 1 sampai batas bawah lebih kecil daripada batas atas

program SOAL_UTS_A;uses crt;var bb,ba: integer;

n : byte;

beginclrscr;

repeatwrite('Input Batas Bawah : ');readln(bb);write('Input Batas Atas : ');readln(ba);write('Input Banyak Bilangan : ');readln(n);

until (bb<ba);

readkey;end.

Langkah 3 : Ulangi langkah 1 dan 2 sampai n lebih besar daripada 3

program SOAL_UTS_A;uses crt;var bb,ba: integer;

n : byte;

beginclrscr;

Page 3: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal A - 3

repeatwrite('Input Batas Bawah : ');readln(bb);write('Input Batas Atas : ');readln(ba);write('Input Banyak Bilangan : ');readln(n);

until (bb<ba) and (n>=3);

readkey;end.

Langkah 4 : Angka posisi ganjil dimulai dari batas bawah dan ditambah 2 dari angka posisi

ganjil sebelumnya

program SOAL_UTS_A;uses crt;var bb,ba,posisiganjil: integer;

n : byte;

beginclrscr;

repeatwrite('Input Batas Bawah : ');readln(bb);write('Input Batas Atas : ');readln(ba);write('Input Banyak Bilangan : ');readln(n);

until (bb<ba) and (n>=3);

clrscr;

posisiganjil := bb;posisiganjil := posisiganjil+2;

readkey;end.

Langkah 5 : Tulis sampai angka posisi ganjil lebih besar daripada batas atas

program SOAL_UTS_A;uses crt;var bb,ba,posisiganjil: integer;

n : byte;

beginclrscr;

repeatwrite('Input Batas Bawah : ');readln(bb);write('Input Batas Atas : ');readln(ba);write('Input Banyak Bilangan : ');readln(n);

until (bb<ba) and (n>=3);

clrscr;

posisiganjil := bb;repeat

posisiganjil := posisiganjil+2;write(posisiganjil,' ');

until (posisiganjil>=ba);readkey;

end.

Langkah 6 : Pertama kali akan ditulis angka batas bawah, tetapi karena angka posisi ganjil

sudah ditambah 2 terlebih dahulu (yang ditulis pertama akan menjadi batas bawah +2) maka

dilakukan sedikit perbaikan dengan mengganti angka posisi ganjil dimulai dari batas bawah -2.

program SOAL_UTS_A;uses crt;var bb,ba,posisiganjil: integer;

n : byte;

Page 4: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal A - 4

beginclrscr;

repeatwrite('Input Batas Bawah : ');readln(bb);write('Input Batas Atas : ');readln(ba);write('Input Banyak Bilangan : ');readln(n);

until (bb<ba) and (n>=3);

clrscr;

posisiganjil := bb-2;repeat

posisiganjil := posisiganjil+2;write(posisiganjil,' ');

until (posisiganjil>=ba);readkey;

end.

Langkah 7 : Angka posisi genap dimulai dari 3 dan ditambah 3 dari angka posisi genap

sebelumnya

program SOAL_UTS_A;uses crt;var bb,ba,posisiganjil,posisigenap: integer;

n : byte;

beginclrscr;

repeatwrite('Input Batas Bawah : ');readln(bb);write('Input Batas Atas : ');readln(ba);write('Input Banyak Bilangan : ');readln(n);

until (bb<ba) and (n>=3);

clrscr;

posisiganjil := bb-2;posisigenap := 3;repeat

posisiganjil := posisiganjil+2;write(posisiganjil,' ');posisigenap := posisigenap +3;

until (posisiganjil>=ba);readkey;

end.

Langkah 8 : Tulis sampai angka posisi ganji lebih besar daripada batas atas atau angka posisi

genap lebih besar daripada batas atas

program SOAL_UTS_A;uses crt;var bb,ba,posisiganjil,posisigenap: integer;

n : byte;

beginclrscr;

repeatwrite('Input Batas Bawah : ');readln(bb);write('Input Batas Atas : ');readln(ba);write('Input Banyak Bilangan : ');readln(n);

until (bb<ba) and (n>=3);

clrscr;

posisiganjil := bb-2;posisigenap := 3;repeat

Page 5: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal A - 5

posisiganjil := posisiganjil+2;write(posisiganjil,' ');posisigenap := posisigenap +3;write(posisigenap,’ ‘);

until (posisiganjil>=ba) or (posisigenap>=ba);readkey;

end.

Langkah 9 : Angka posisi genap pertama kali harusnya adalah 3, tetapi karena angka posisi

ganjil sudah ditambah 3 terlebih dahulu (yang ditulis pertama akan menjadi 6) maka dilakukan

sedikit perbaikan dengan mengganti angka posisi genap dimulai dari 0.

program SOAL_UTS_A;uses crt;var bb,ba,posisiganjil,posisigenap: integer;

n : byte;

beginclrscr;

repeatwrite('Input Batas Bawah : ');readln(bb);write('Input Batas Atas : ');readln(ba);write('Input Banyak Bilangan : ');readln(n);

until (bb<ba) and (n>=3);

clrscr;

posisiganjil := bb-2;posisigenap := 0;repeat

posisiganjil := posisiganjil+2;write(posisiganjil,' ');posisigenap := posisigenap +3;write(posisigenap,' ');

until (posisiganjil>=ba) or (posisigenap>=ba);readkey;

end.

Langkah 10 : Sebelum angka posisi ganjil dan genap ditulis, periksa terlebih dahulu. Bila

angkanya ganjil ditulis dengan warna cyan selain itu diberi warna putih

program SOAL_UTS_A;uses crt;var bb,ba,posisiganjil,posisigenap: integer;

n : byte;

beginclrscr;

repeatwrite('Input Batas Bawah : ');readln(bb);write('Input Batas Atas : ');readln(ba);write('Input Banyak Bilangan : ');readln(n);

until (bb<ba) and (n>=3);

clrscr;

posisiganjil := bb-2;posisigenap := 0;repeat

posisiganjil := posisiganjil+2;if(posisiganjil mod 2 = 1) then textcolor(cyan) else textcolor(white);write(posisiganjil,' ');posisigenap := posisigenap +3;if (posisigenap mod 2 = 1) then textcolor(cyan) else textcolor(white);write(posisigenap,' ');

until (posisiganjil>=ba) or (posisigenap>=ba);readkey;

end.

Page 6: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal A - 6

Langkah 11 : Setelah menulis angka (baik posisi ganjil atau posisi genap), counter ditambah 1.

program SOAL_UTS_A;uses crt;var bb,ba,posisiganjil,posisigenap: integer;

n,counter : byte;

beginclrscr;

repeatwrite('Input Batas Bawah : ');readln(bb);write('Input Batas Atas : ');readln(ba);write('Input Banyak Bilangan : ');readln(n);

until (bb<ba) and (n>=3);

clrscr;

posisiganjil := bb-2;posisigenap := 0;repeat

posisiganjil := posisiganjil+2;if(posisiganjil mod 2 = 1) then textcolor(cyan) else textcolor(white);write(posisiganjil,' ');inc(counter);posisigenap := posisigenap +3;if (posisigenap mod 2 = 1) then textcolor(cyan) else textcolor(white);write(posisigenap,' ');inc(counter);

until (posisiganjil>=ba) or (posisigenap>=ba);readkey;

end.

Langkah 12 : Jika counter masih lebih kecil daripada n, tulis angka posisi ganjil dan angka

posisi genap.

program SOAL_UTS_A;uses crt;var bb,ba,posisiganjil,posisigenap: integer;

n,counter : byte;

beginclrscr;

repeatwrite('Input Batas Bawah : ');readln(bb);write('Input Batas Atas : ');readln(ba);write('Input Banyak Bilangan : ');readln(n);

until (bb<ba) and (n>=3);

clrscr;

posisiganjil := bb-2;posisigenap := 0;repeat

posisiganjil := posisiganjil+2;if(posisiganjil mod 2 = 1) then textcolor(cyan) else textcolor(white);if counter < n thenbegin

write(posisiganjil,' ');inc(counter);

end;posisigenap := posisigenap +3;if (posisigenap mod 2 = 1) then textcolor(cyan) else textcolor(white);if counter < n thenbegin

write(posisigenap,' ');inc(counter);

end;until (posisiganjil>=ba) or (posisigenap>=ba);readkey;

end.

Page 7: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal A - 7

Langkah 13 : Ulangi sampai counter = n, atau salah satu dari angka posisi genap atau angka

posisi ganjil sudah melebihi batas atas

program SOAL_UTS_A;uses crt;var bb,ba,posisiganjil,posisigenap: integer;

n,counter : byte;

beginclrscr;

repeatwrite('Input Batas Bawah : ');readln(bb);write('Input Batas Atas : ');readln(ba);write('Input Banyak Bilangan : ');readln(n);

until (bb<ba) and (n>=3);

clrscr;

posisiganjil := bb-2;posisigenap := 0;repeat

posisiganjil := posisiganjil+2;if(posisiganjil mod 2 = 1) then textcolor(cyan) else textcolor(white);if counter < n thenbegin

write(posisiganjil,' ');inc(counter);

end;posisigenap := posisigenap +3;if (posisigenap mod 2 = 1) then textcolor(cyan) else textcolor(white);if counter < n thenbegin

write(posisigenap,' ');inc(counter);

end;until (posisiganjil>=ba) or (posisigenap>=ba) or (counter = n);readkey;

end.

Langkah 14 : Bila counter lebih kecil daripada n, maka angka yang ditampilkan tidak mencukupi

permintaan

program SOAL_UTS_A;uses crt;var bb,ba,posisiganjil,posisigenap: integer;

n,counter : byte;

beginclrscr;

repeatwrite('Input Batas Bawah : ');readln(bb);write('Input Batas Atas : ');readln(ba);write('Input Banyak Bilangan : ');readln(n);

until (bb<ba) and (n>=3);

clrscr;

posisiganjil := bb-2;posisigenap := 0;repeat

posisiganjil := posisiganjil+2;if(posisiganjil mod 2 = 1) then textcolor(cyan) else textcolor(white);if counter < n thenbegin

write(posisiganjil,' ');inc(counter);

end;posisigenap := posisigenap +3;if (posisigenap mod 2 = 1) then textcolor(cyan) else textcolor(white);if counter < n then

Page 8: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal A - 8

beginwrite(posisigenap,' ');inc(counter);

end;until (posisiganjil>=ba) or (posisigenap>=ba) or (counter = n);

writeln;if counter < n then write('Angka yang ditampilkan tidak mencukupi

permintaan');

readkey;end.

Page 9: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal B - 1

SOAL B

Buatlah sebuah program untuk menampilkan sekumpulan bilangan dari batas bawah sampai batas

atas, atau menampilkan sesuai jumlah yang diinput. Bilangan pertama merupakan batas bawah.

Bilangan berikutnya memiliki selisih 3 dari bilangan sebelumnya.

Kriteria program:

1. Program akan meminta input batas bawah dan batas atas. Program juga akan meminta input jumlah

angka yang akan ditampilkan.

2. Syarat: batas bawah HARUS lebih kecil dari batas atas. Jika tidak dipenuhi, program akan meminta

kembali nilai batas bawah dan batas atas.

3. Syarat: jumlah bilangan yang ditampilkan MINIMAL 2. Jika jumlah bilangan kurang dari 2, maka

program akan meminta kembali input jumlah bilangan yang hendak ditampilkan.

4. Untuk langkah 5-8 hanya dikerjakan dalam 1 looping.

5. Angka ke-1 merupakan nilai batas bawah, angka berikutnya memiliki selisih 3 dari bilangan

sebelumnya.

6. Angka / bilangan yang ditampilkan sejumlah input yang diinginkan ATAU sampai batas atas, kalau

jumlahnya tidak mencukupi keluar peringatan bahwa angka yang ditampilkan tidak mencukupi

permintaan.

7. Angka/bilangan yang merupakan bilangan prima diberi warna WHITE.

8. Bilangan ganjil namun bukan prima diberi warna CYAN, bilangan genap diberi warna GREY.

Bobot masing-masing: no. 1 – 6 maks 10; no. 7 – 8 maks 20

Perintah untuk memberi warna sebelum perintah write adalah textcolor(cyan), textcolor(white) atau

textcolor(lightgray)

CONTOH: (WHITE = BOLD + UNDERLINE; CYAN = BOLD + ITALIC)

BB = 5; BA = 30; n = 8

5 8 11 14 17 20 23 26

BB = 3; BA = 20; n = 10

3 6 9 12 15 18

Tidak mencukupi

Langkah-langkah :

1. Input batas bawah, batas atas dan nilai n

2. Ulangi langkah 1 sampai batas bawah lebih kecil daripada batas atas

3. Ulangi langkah 1 dan 2 sampai n lebih besar daripada 2

4. Nilai angka pertama adalah batas bawah dan bertambah 3 dari angka sebelumnya

5. Tulis angka sampai angka lebih besar daripada batas atas. Angka tidak ditulis jika sudah melebihi

batas atas.

6. Pertama kali akan ditulis angka batas bawah, tetapi karena angka posisi ganjil sudah ditambah 2

terlebih dahulu (yang ditulis pertama akan menjadi batas bawah +3) maka dilakukan sedikit

perbaikan dengan mengganti angka posisi ganjil dimulai dari batas bawah -3.

7. Setelah menulis angka, counter ditambah 1

Ulangi sampai counter sama dengan n atau angka lebih besar daripada batas atas

8. Sebelum angka ditulis, cek terlebih dahulu apakah angka merupakan bilangan prima atau bukan

9. Bila bukan prima, cek juga apakah ganjil atau genap. Jika ganjil diberi warna cyan, jika genap diberi

warna grey

10. Bila counter kurang dari n tulis angka yang ditampilkan tidak mencukupi

Page 10: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal B - 2

Langkah 1 : Input batas bawah, batas atas dan nilai n

program UTS_B;uses crt;var bb,ba : integer;

n : byte;

beginclrscr;

write('Input Batas Bawah : '); readln(bb);write('Input Batas Atas : '); readln(ba);write('Input n : '); readln(n);

readkey;end.

Langkah 2 : Ulangi langkah 1 sampai batas bawah lebih kecil daripada batas atas

program UTS_B;uses crt;var bb,ba : integer;

n : byte;

beginclrscr;

repeatwrite('Input Batas Bawah : '); readln(bb);write('Input Batas Atas : '); readln(ba);write('Input n : '); readln(n);

until bb<ba:

readkey;end.

Langkah 3 : Ulangi langkah 1 dan 2 sampai n lebih besar daripada 2

program UTS_B;uses crt;var bb,ba : integer;

n : byte;

beginclrscr;

repeatwrite('Input Batas Bawah : ');readln(bb);write('Input Batas Atas : ');readln(ba);write('Input n : ');readln(n);

until (bb<ba) and (n>=2);

readkey;end.

Langkah 4 : Nilai angka pertama adalah batas bawah dan bertambah 3 dari angka sebelumnya

program UTS_B;uses crt;var bb,ba,angka : integer;

n : byte;

beginclrscr;

repeatwrite('Input Batas Bawah : ');readln(bb);write('Input Batas Atas : ');readln(ba);write('Input n : ');readln(n);

until (bb<ba) and (n>=2);

clrscr

Page 11: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal B - 3

angka:=bb;angka:=angka+3;

readkey;end.

Langkah 5 : Tulis angka sampai angka lebih besar daripada batas atas. Angka tidak ditulis jika

sudah melebihi batas atas.

program UTS_B;uses crt;var bb,ba,angka : integer;

n,counter : byte;

beginclrscr;

repeatwrite('Input Batas Bawah : ');readln(bb);write('Input Batas Atas : ');readln(ba);write('Input n : ');readln(n);

until (bb<ba) and (n>=2);

clrscr;

angka:=bb;repeat

angka:=angka+3;if angka <= ba then write(angka,' ');

until (angka >= ba);

readkey;end.

Langkah 6 : Pertama kali akan ditulis angka batas bawah, tetapi karena angka p sudah

ditambah 3 terlebih dahulu (yang ditulis pertama akan menjadi batas bawah +3) maka dilakukan

sedikit perbaikan dengan mengganti angka dari batas bawah -3.

program UTS_B;uses crt;var bb,ba,angka : integer;

n : byte;

beginclrscr;

repeatwrite('Input Batas Bawah : ');readln(bb);write('Input Batas Atas : ');readln(ba);write('Input n : ');readln(n);

until (bb<ba) and (n>=2);

clrscr;

angka:=bb-3;repeat

angka:=angka+3;if angka <= ba then write(angka,' ');

until angka >= ba;

readkey;end.

Langkah 7 : Setelah menulis angka, counter ditambah 1

program UTS_B;uses crt;var bb,ba,angka : integer;

n,counter : byte;

Page 12: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal B - 4

beginclrscr;

repeatwrite('Input Batas Bawah : ');readln(bb);write('Input Batas Atas : ');readln(ba);write('Input n : ');readln(n);

until (bb<ba) and (n>=2);

clrscr;

angka:=bb-3;repeat

angka:=angka+3;if angka <= ba thenbegin

write(angka,' ');inc(counter);

end;until angka >= ba;

readkey;end.

Langkah 8 : Ulangi sampai counter sama dengan n atau angka lebih besar daripada batas atas

program UTS_B;uses crt;var bb,ba,angka : integer;

n,counter : byte;

beginclrscr;

repeatwrite('Input Batas Bawah : ');readln(bb);write('Input Batas Atas : ');readln(ba);write('Input n : ');readln(n);

until (bb<ba) and (n>=2);

clrscr;angka:=bb-3;repeat

angka:=angka+3;if angka <= ba thenbegin

write(angka,' ');inc(counter);

end;until (angka >= ba) or (counter=n);

readkey;end.

Langkah 9 : Sebelum angka ditulis, cek terlebih dahulu apakah angka merupakan bilangan

prima atau bukan. Kalau prima ganti textcolor menjadi white

program UTS_B;uses crt;var bb,ba,angka,pembagi : integer;

n,counter : byte;

beginclrscr;

repeatwrite('Input Batas Bawah : ');readln(bb);write('Input Batas Atas : ');readln(ba);write('Input n : ');readln(n);

until (bb<ba) and (n>=2);

clrscr;

Page 13: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal B - 5

angka:=bb-3;repeat

angka:=angka+3;pembagi := 1;

repeatinc(pembagi);

until (angka mod pembagi = 0) or (pembagi = angka - 1);

if (pembagi = angka - 1) or (angka=2) then textcolor(white) elsetextcolor(lightgray);

if angka <= ba thenbegin

write(angka,' ');inc(counter);

end;until (angka >= ba) or (counter=n);

readkey;end.

Langkah 10 : Bila bukan prima, cek juga apakah ganjil atau genap. Jika ganjil diberi warna cyan,

jika genap diberi warna grey

program UTS_B;uses crt;var bb,ba,angka,pembagi : integer;

n,counter : byte;

beginclrscr;

repeatwrite('Input Batas Bawah : ');readln(bb);write('Input Batas Atas : ');readln(ba);write('Input n : ');readln(n);

until (bb<ba) and (n>=2);

clrscr;

angka:=bb-3;repeat

angka:=angka+3;pembagi := 1;

repeatinc(pembagi);

until (angka mod pembagi = 0) or (pembagi = angka - 1);

if (pembagi = angka - 1) or (angka=2) then textcolor(white) elseif (angka mod 2 = 1) then textcolor(cyan) elseif (angka mod 2 = 0) then textcolor(lightgray);

if angka <= ba thenbegin

write(angka,' ');inc(counter);

end;until (angka >= ba) or (counter=n);

readkey;end.

Langkah 11 : Bila counter kurang dari n tulis angka yang ditampilkan tidak mencukupi

program UTS_B;uses crt;var bb,ba,angka,pembagi : integer;

n,counter : byte;

begin

Page 14: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal B - 6

clrscr;

repeatwrite('Input Batas Bawah : ');readln(bb);write('Input Batas Atas : ');readln(ba);write('Input n : ');readln(n);

until (bb<ba) and (n>=2);

clrscr;

angka:=bb-3;repeat

angka:=angka+3;pembagi := 1;

repeatinc(pembagi);

until (angka mod pembagi = 0) or (pembagi = angka - 1);

if (pembagi = angka - 1) or (angka=2) then textcolor(white) elseif (angka mod 2 = 1) then textcolor(cyan) elseif (angka mod 2 = 0) then textcolor(lightgray);

if angka <= ba thenbegin

write(angka,' ');inc(counter);

end;until (angka >= ba) or (counter=n);

writeln;if counter < n then write('Angka yang diinginkan tidak mencukupi');readkey;

end.

Page 15: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal C - 1

SOAL C

Untuk memecahkan persamalahan akar kuadrat ada beberapa algoritma yang dapat digunakan.

Ada sebuah algoritma yang dikenal dengan metode bagi dua. Pada soal UTS kali ini, permasalahan yang

diberikan sudah sangat jelas, yaitu: menerapkan algoritma bagi dua ini ke dalam suatu persamaan.

Persamaan f(x) = x2 – 4x + 3

Algoritma program yang harus dibuat adalah sebagai berikut:

1. Tentukan nilai e=10-5

2. Input nilai m dan n

3. x0=x1

4. Hitung nilai x1 merupakan nilai tengah dari m dan n

5. Jika nilai f(x1) bernilai 0 maka akarnya adalah x1 dan selesai.

6. Jika | x1-x0 | lebih kecil dari e maka akarnya adalah x1 dan selesai

7. Jika nilai f(x1)*f(n) lebih besar dari 0 maka n=x1. Jika tidak maka m=x1.

8. Ke langkah 3

9. Program akan memunculkan pertanyaan, “APAKAH ANDA AKAN MENGULANG PROGRAM?” dan

Anda harus menjawab dengan menekan tombol Y atau T (baik huruf kapital maupun huruf kecil).

Jika Anda menekan Y, maka program akan mengulang ke langkah 2. Jika Anda menekan T, maka

program akan berakhir.

10. Efek pada nomor 9 (jika menekan tombol) tidak akan berfungsi jika tombol yang ditekan bukan

tombol Y atau T (misalnya A, b, d, Z).

Bobot untuk masing-masing langkah adalah 10 poin. Total nilai maksimum 100 poin.

Untuk menguji, masukkan nilai m = 15 dan n=2 harus keluar angka 3.000000

Untuk menyelesaikan soal-soal dengan algoritma yang telah diberikan, sebaiknya Anda memahami

kegunaan dari algoritma tersebut. Algoritma tersebut adalah algoritma mencari akar dari sebuah fungsi

dengan metoda bagi dua. Akan tetapi, Anda bisa membuat program dengan tidak perlu mengerti

kegunaannya yaitu dengan cara membuat program selangkah demi selangkah untuk semua langkah

yang ada pada algoritma tersebut.

Langkah 1-4.

Untuk soal perhitungan matematika seperti ini, tipe variabel yang digunakan semuanya bertipe Real

dengan nama yang sama pada algoritma.

Program Soalc;Uses Crt;Var e,m,n,x0,x1:real;

Beginclrscr;{1}e:=0.00001; {1}Write('Masukkan Batas Bawah ');Readln(n); {2}Write('Masukkan Batas Atas ');Readln(m);x0:=x1; {3}x1:=(m+n)/2; {4}Readkey;

End.

Page 16: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal C - 2

Langkah 5-7.

Agar penulisan program yang berkaitan dengan fungsi tidak salah, bisa digunakan variabel a,b,c bertipe

real untuk menulis/menghitung nilai fungsi yang diinginkan. Pada langkah 5 dan 6, ada pernyataan

Selesai. Untuk keperluan ini digunakan variabel bertipe boolean dengan nama selesai.

Program Soalc;Uses Crt;Var e,m,n,x0,x1,a,b,c,fx1,akar:real;

selesai:boolean;

Beginclrscr; a:=1;b:=-4;c:=3; {untuk penghitungan nilai fungsi}selesai:=false; {nilai awal agar program tidak langsung berhenti}

e:=0.00001; {1}Write('Masukkan Batas Bawah ');Readln(n); {2}Write('Masukkan Batas Atas ');Readln(m);x0:=x1; {3}x1:=(m+n)/2; {4}

fx1:=a*sqr(x1)+b*x1+c;if fx1= 0 then {5}beginakar := x1; selesai:=true;

end;if abs(x1-x0)=0 then {6}beginakar := x1; selesai:=true;

end;fn:=a*sqr(n)+b*n+c;if fn*fx1>0 then n:=x1 else m:=x1; {7}

Readkey;End.

Langkah 8.

Pada langkah 8, penghitungan kembali ke langkah 3 kalau tidak selesai. Untuk keperluang ini diperlukan

suatu perintah pengulangan. Pengulangan yang dipakai adalah repeat until karena kriteria penghentian

program tidak pasti ( langkah 5 dan langkah 6 ). Tips : looping repeat until suatu perintah dengan

kriteria penghentian tidak pasti, dan agar program tidak HANG , Anda bisa menambahkan perintah until

menjadi Until selesai or keypressed;

Program Soalc;Uses Crt;Var e,m,n,x0,x1,a,b,c,fx1,akar,fn:real;

selesai:boolean;

Beginclrscr; a:=1;b:=-4;c:=3; {untuk penghitungan nilai fungsi}selesai:=false; {nilai awal agar program tidak langsung berhenti}

e:=0.00001; {1}Write('Masukkan Batas Bawah ');Readln(n); {2}Write('Masukkan Batas Atas ');Readln(m);repeatx0:=x1; {3}x1:=(m+n)/2; {4}fx1:=a*sqr(x1)+b*x1+c;if fx1= 0 then {5}beginakar := x1; selesai:=true;

end;if abs(x1-x0)=0 then {6}beginakar := x1; selesai:=true;

end;fn:=a*sqr(n)+b*n+c;If fn*fx1>0 then n:=x1 else m:=x1;{7}

until selesai; {8}

Page 17: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal C - 3

Writeln('Akarnya =',akar:10:5);Writeln('Nilai fungsinya =',akar:10:5);

Readkey;End.

Langkah 9-10.

Pada langkah 9 dan 10 ada pengulangan mulai dari langkah 1-8, dengan kriteria penghentian jika

jawab=’T’ atau jawab=’t’.

Program Soalc;Uses Crt;Var e,m,n,x0,x1,a,b,c,fx1,akar,fn:real;

selesai:boolean;jwb:char;

Beginclrscr; a:=1;b:=-4;c:=3; {untuk penghitungan nilai fungsi}selesai:=false; {nilai awal agar program tidak langsung berhenti}repeat {10}e:=0.00001; {1}Write('Masukkan Batas Bawah ');Readln(n); {2}Write('Masukkan Batas Atas ');Readln(m);repeatx0:=x1; {3}x1:=(m+n)/2; {4}fx1:=a*sqr(x1)+b*x1+c;if fx1= 0 then {5}beginakar := x1; selesai:=true;

end;if abs(x1-x0)=0 then {6}beginakar := x1; selesai:=true;

end;fn:=a*sqr(n)+b*n+c;If fn*fx1>0 then n:=x1 else m:=x1;{7}

until selesai; {8}

Writeln('Akarnya =',akar:10:5);Writeln('Nilai fungsinya =',akar:10:5);

jwb:=''; {9}Write('Mau lanjut?[Y/T] : ');

repeatjwb := readkey;jwb := upcase(jwb)

until (jwb='T') or (jwb='Y'); {9}

until jwb='T'; {10}

Writeln('Program Selesai!');Readkey;

End.

Page 18: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal D - 1

SOAL D

Untuk memecahkan persamalahan akar kuadrat ada beberapa algoritma yang dapat digunakan.Ada sebuah algoritma yang dikenal algoritma Newton-Rhapson. Pada soal UTS kali ini, permasalahanyang diberikan sudah sangat jelas, yaitu: menerapkan algoritma Newton-Rhapson ini ke dalam suatupersamaan. Tidak perlu khawatir jika Anda belum mengenal algoritma Newton-Rhapson ini karenaalgoritma akan diberikan.

Persamaan f(x) = ax2 + bx + cPersamaan f’(x) = 2ax + b

Algoritma program yang harus dibuat adalah sebagai berikut:1. Tentukan nilai e=10-4

2. Inputlah masing-masing koefisien untuk persamaan tersebut.3. Tentukan nilai x1=20;4. x0=x15. Hitung nilai x1= x0 – (f(x0)/f’(x0)).6. Jika nilai f(x1) bernilai 0 maka akarnya adalah x1 dan selesai.7. Jika | f(x1)-f(x0) | lebih kecil dari e maka akarnya adalah x1 dan selesai8. Ke langkah 3.9. Program akan memunculkan pertanyaan, “APAKAH ANDA AKAN MENGULANG PROGRAM?” dan

Anda harus menjawab dengan menekan tombol Y atau T (baik huruf kapital maupun huruf kecil).Jika Anda menekan Y, maka program akan mengulang ke langkah 2. Jika Anda menekan T, makaprogram akan berakhir.

10. Efek pada nomor 9 (jika menekan tombol) tidak akan berfungsi jika tombol yang ditekan bukantombol Y atau T (misalnya A, b, d, Z).

Bobot untuk masing-masing soal adalah 10 poin. Total nilai maksimum 100 poin.

Untuk menguji, masukkan nilai a = 1, b = -4, dan c = 3 seharusnya memberikan hasil 3.Untuk menguji, masukkan nilai a = 1, b = 1, dan c = -6 seharusnya memberikan hasil 2.Untuk menguji, masukkan nilai a = 1, b = -5, dan c = 6 seharusnya memberikan hasil 3.

Untuk menyelesaikan soal-soal dengan algoritma yang telah diberikan, sebaiknya Anda memahami

kegunaan dari algoritma tersebut. Algoritma tersebut adalah algoritma mencari akar dari sebuah fungsi

dengan metoda bagi dua. Akan tetapi, Anda bisa membuat program dengan tidak perlu mengerti

kegunaannya yaitu dengan cara membuat program selangkah demi selangkah untuk semua langkah

yang ada pada algoritma tersebut.

Langkah 1-4.

Untuk soal perhitungan matematika seperti ini, tipe variabel yang digunakan semuanya bertipe Real

dengan nama yang sama pada algoritma.

Program Soald;Uses Crt;Var e,a,b,c,x0,x1:real;

Beginclrscr;e:=0.00001; {1}Write('Masukkan Koefisien A = ');Readln(a); {2}Write('Masukkan Koefisien B = ');Readln(b);Write('Masukkan Koefisien C = ');Readln(c);x1:=20; {3}x0:=x1; {4}Readkey;

End.

Page 19: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal D - 2

Langkah 5-7.

Pada langkah 5 dan 6, ada pernyataan Selesai. Untuk keperluan ini digunakan variabel bertipe boolean

dengan nama selesai.

Program Soald;Uses Crt;Var e,a,b,c,x0,x1,fx0,f1x0,fx1,akar:real;

selesai:boolean;

Beginclrscr;e:=0.00001; {1}selesai:=false;{agar program tdk langsung berhenti ketika ada loop}

Write('Masukkan Koefisien A = ');Readln(a); {2}Write('Masukkan Koefisien B = ');Readln(b);Write('Masukkan Koefisien C = ');Readln(c);x1:=20; {3}x0:=x1; {4}

fx0:=a*sqr(x0)+b*x0+c;f1x0:=2*a*x0+b;x1:=x0 - (fx0/f1x0); {5}fx1:=a*sqr(x1)+b*x1+c;If fx1=0 thenbeginakar:=x1; selesai:=true;

end;If abs(fx1-fx0)=0 thenbeginakar:=x1; selesai:=true;

end;

Readkey;End.

Langkah 8.

Pada langkah 8, penghitungan kembali ke langkah 4 kalau tidak selesai. Untuk keperluang ini diperlukan

suatu perintah pengulangan. Pengulangan yang dipakai adalah repeat until karena kriteria penghentian

program tidak pasti ( langkah 5 dan langkah 6 ). Tips : looping repeat until suatu perintah dengan

kriteria penghentian tidak pasti, dan agar program tidak HANG , Anda bisa menambahkan perintah until

menjadi Until selesai or keypressed;

Program Soald;Uses Crt;Var e,a,b,c,x0,x1,fx0,f1x0,fx1,akar:real;

selesai:boolean;

Beginclrscr;e:=0.00001; {1}selesai:=false; {agar program tdk langsung berhenti ketika ada loop}Write('Masukkan Koefisien A = ');Readln(a); {2}Write('Masukkan Koefisien B = ');Readln(b);Write('Masukkan Koefisien C = ');Readln(c);x1:=20; {3}repeatx0:=x1; {4}

fx0:=a*sqr(x0)+b*x0+c;f1x0:=2*a*x0+b;x1:=x0 - (fx0/f1x0); {5}fx1:=a*sqr(x1)+b*x1+c;If fx1=0 thenbeginakar:=x1; selesai:=true;

end;If abs(fx1-fx0)=0 thenbeginakar:=x1; selesai:=true;

end;until selesai;

Page 20: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal D - 3

Writeln('Akarnya =',akar:10:5);Writeln('Nilai fungsinya =',akar:10:5);Readkey;

End.

Langkah 9-10.

Pada langkah 9 dan 10 ada pengulangan mulai dari langkah 1-8, dengan kriteria penghentian jika

jawab=’T’ atau jawab=’t’.

Program Soald;Uses Crt;Var e,a,b,c,x0,x1,fx0,f1x0,fx1,akar:real;

selesai:boolean;jwb:char;

Beginclrscr;repeat {10}e:=0.00001; {1}selesai:=false;{agar program tdk langsung berhenti ketika ada loop}Write('Masukkan Koefisien A = ');Readln(a); {2}Write('Masukkan Koefisien B = ');Readln(b);Write('Masukkan Koefisien C = ');Readln(c);x1:=20; {3}repeatx0:=x1; {4}

fx0:=a*sqr(x0)+b*x0+c;f1x0:=2*a*x0+b;x1:=x0 - (fx0/f1x0); {5}fx1:=a*sqr(x1)+b*x1+c;If fx1=0 thenbeginakar:=x1; selesai:=true;

end;If abs(fx1-fx0)=0 thenbeginakar:=x1; selesai:=true;

end;until selesai;Writeln('Akarnya =',akar:10:5);Writeln('Nilai fungsinya =',akar:10:5);

jwb:=' '; {9}Write('Mau lanjut?[Y/T] : ');repeatjwb := readkey;jwb := upcase(jwb);

until (jwb='T') or (jwb='Y'); {9}

until jwb='T'; {10}

Writeln('Program Selesai!');End.

Page 21: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal E - 1

SOAL E

Buatlah program untuk menampilkan bilangan PRIMA dari mulai batas bawah hingga batas atas ATAU

sebanyak n buah. Bila jumlah bilangan prima antara batas bawah dan batas atas tidak mencukupi n buah,

maka keluar peringatan “JUMLAH BILANGAN TIDAK MENCUKUPI”.

Kemudian, bilangan prima pada posisi urutan genap, diberi warna CYAN.

Kriteria program:

1. Program akan meminta input batas bawah dan batas atas. Program juga akan meminta input jumlah

bilangan (n) yang hendak ditampilkan.

2. Syarat: batas bawah HARUS lebih kecil dari batas atas. Jika tidak dipenuhi, program akan meminta

kembali nilai batas bawah dan batas atas.

3. Syarat: jumlah bilangan yang ditampilkan MINIMAL 2. Jika jumlah bilangan kurang dari 2, maka

program akan meminta kembali input jumlah bilangan yang hendak ditampilkan.

4. Program hanya dikerjakan dalam 1 looping.

5. Program dapat menampilkan bilangan prima antara batas bawah dan batas atas ATAU sesuai jumlah.

6. Angka / bilangan yang ditampilkan sejumlah input yang diinginkan ATAU sampai batas atas, kalau

jumlahnya tidak mencukupi keluar peringatan bahwa angka yang ditampilkan tidak mencukupi

permintaan.

7. Angka/bilangan pada posisi GENAP diberi warna CYAN.

CONTOH: (ket: yang di-BOLD + UNDERLINE adalah angka yang diberi warna CYAN)

BB = 6; BA = 20; n=6

7 11 13 17 19

Jumlah Tidak Mencukupi

BB = 6; BA = 20; n=3

7 11 13

Tips : Program dibuat bertahap mulai dari sekedar menguji suatu bilangan prima atau bukan lalu

disesuaikan hingga menjadi sesuai permintaan soal. Setelah setiap langkah selesai, program

sebaiknya dijalankan untuk menguji apakah program telah benar sampai tahap itu sebelum

lanjut ke tahap berikutnya.

Langkah-langkah:

1. Buat program untuk menguji apakah suatu bilangan prima atau bukan.

2. Perbaiki program untuk menampilkan n buah bilangan prima.

3. Perbaiki program untuk menginput batas atas dan bawah serta menguji batas atas harus lebih besar

daripada batas bawah.

4. Tambahkan perintah dan kondisi untuk menampilkan n prima antara batas atas dan bawah.

5. Tambahkan perintah untuk menampilkan prima pada posisi genap dengan warna CYAN

6. Tambahkan perintah untuk menampilkan peringatan “JUMLAH BILANGAN TIDAK MENCUKUPI” jika

bilangan prima antara batas bawah dan batas atas kurang dari n buah.

Program dalam satu box ke box lainnya menunjukkan langkah-langkah pembuatan program. Tambahan

perintah dari langkah sebelumnya diberi warna biru dan perubahan perintah diberi warna merah.

Langkah 1 : Buat program untuk menguji apakah suatu bilangan prima atau bukan

Program Soal_E;Uses CRT;Var

Page 22: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal E - 2

x : byte; {bilangan yang diuji}y : byte; {pembagi}Prima : Boolean; {status Prima true/false}

BeginTextColor(7);ClrScr;writeln('Bilangan yang diuji : '); readln(x);Prima := False;if (x = 2) then Prima:=Trueelse

beginy := 1;Repeat

inc(y);Until (x mod y =0) OR (y = x-1);if (x mod y <> 0) then Prima := True;

end;if Prima then Write('Prima') else write('Bukan prima');

End.

Langkah 2 : Perbaiki program untuk menampilkan n buah bilangan prima

Program Soal_E;Uses CRT;Var

n : byte; {jumlah}i : byte; {counter}x : byte; {bilangan yang diuji}y : byte; {pembagi}Prima : Boolean; {status Prima true/false}

BeginTextColor(7);ClrScr;{Input n buah bil yang ingin ditampilkan dan pengulangan sampai n>=2}Repeat

Write('Input Bilangan yang ditampilkan: '); readln(n);if (n<2) then Writeln('Jumlah MINIMAL 2');Writeln;

Until (n>=2);{Tampilkan n buah bilangan prima}i:=0; x := 2; {nilai x yang semula diinput diubah menjadi 2 karena

bilangan prima terkecil adalah 2}

RepeatPrima := False;if (x = 2) then Prima:=Trueelse

beginy := 1;Repeat

inc(y);Until (x mod y =0) OR (y = x-1);if (x mod y <> 0) then Prima := True;

end;

if Prima thenbegin

inc(i); Write(x:4);end;

inc(x); {Bilangan yang diuji ditambah 1 untuk pengujianberikutnya}

Until (i=n); {Pengulangan sampai jml bil prima (var i) sebanyak n}End.

Page 23: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal E - 3

Langkah 3 & 4 :

Langkah 3: Perbaiki program untuk menginput batas atas dan bawah serta menguji batas

atas harus lebih besar daripada batas bawah.

Langkah 4: Perbaiki program yang semula menampilkan n buah bilangan prima menjadi

perintah untuk menampilkan bilangan-bilangan prima antara batas atas dan bawah.

Program Soal_E;Uses CRT;Var

bb,ba : byte; {batas atas dan batas bawah}n : byte; {jumlah}i : byte; {counter}x : byte; {bilangan yang diuji}y : byte; {pembagi}Prima : Boolean; {status Prima true/false}

BeginTextColor(7);ClrScr;{Langkah 3: Input batas atas dan bawah serta pengulangan untuk

memastikan bb<ba}Repeat

Write('Input Batas Bawah: '); readln(bb);Write('Input Batas Atas : '); readln(ba);if (bb>=ba) then Writeln('Batas Bawah HARUS LEBIH KECIL dari BatasAtas');Writeln;

Until (bb < ba);{Input n buah bil yang ingin ditampilkan dan pengulangan sampai n>=2}Repeat

Write('Input Bilangan yang ditampilkan: '); readln(n);if (n<2) then Writeln('Jumlah MINIMAL 2');Writeln;

Until (n>=2);i:=0;x := bb; {Langkah 4: bilangan pertama yang diuji diubah dari semula 2

menjadi batas bawahnya}Repeat

Prima := False;if (x = 2) then Prima:=Trueelse

beginy := 1;Repeat

inc(y);Until (x mod y =0) OR (y = x-1);if (x mod y <> 0) then Prima := True;

end;if Prima then

begininc(i); Write(x:4);

end;inc(x); {Bilangan yang diuji ditambah 1 untuk pengujianberikutnya}

Until (x>ba) OR (i=n); {Langkah 4: Tambahan kondisi x>ba untukmemastikan pengujian hanya dilakukan sampai x>ba}

End.

Page 24: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal E - 4

Langkah 5 & 6 :

Langkah 5: Tambahkan perintah untuk menampilkan prima pada posisi genap dengan

warna CYAN

Langkah 6: Tambahkan peruntah untuk memberi peringatan “JUMLAH BILANGAN TIDAK

MENCUKUPI” jika bilangan prima antara batas bawah dan batas atas < n buah.

Program Soal_E;Uses CRT;Var

bb,ba : byte; {batas atas dan batas bawah}n : byte; {jumlah}i : byte; {counter}x : byte; {bilangan yang diuji}y : byte; {pembagi}Prima : Boolean; {status Prima true/false}

BeginTextColor(7);ClrScr;{Input batas atas dan bawah serta pengulangan untuk memastikan bb<ba}Repeat

Write('Input Batas Bawah: '); readln(bb);Write('Input Batas Atas : '); readln(ba);if (bb>=ba) then Writeln('Batas Bawah HARUS LEBIH KECIL dari BatasAtas');Writeln;

Until (bb < ba);{Input n buah bil yang ingin ditampilkan dan pengulangan sampai n>=2}Repeat

Write('Input Bilangan yang ditampilkan: '); readln(n);if (n<2) then Writeln('Jumlah MINIMAL 2');Writeln;

Until (n>=2);i:=0;x := bb;Repeat

Prima := False;if (x = 2) then Prima:=Trueelse

beginy := 1;Repeat

inc(y);Until (x mod y =0) OR (y = x-1);if (x mod y <> 0) then Prima := True;

end;if Prima then

begininc(i);{Langkah 5: prima pada posisi genap diberi warna CYAN}if (i mod 2 = 0) then TextColor(Cyan)

else TextColor(LightGray);Write(x:4);

end;inc(x); {Bilangan yang diuji ditambah 1 untuk pengujianberikutnya}

Until (x>ba) OR (i=n);{Langkah 6: memunculkan pesan jika jumlah bilangan prima antara batas-

batas kurang dari n buah}writeln;if (i<n) then Writeln('Jumlah Tidak Mencukupi');Readln;TextColor(7);

End.

Page 25: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal F - 1

SOAL F

Buatlah program untuk menampilkan bilangan yang merupakan kelipatan 3 mulai dari batas bawah

hingga batas atas ATAU sebanyak n buah. Bila jumlah bilangan antara batas bawah dan batas atas tidak

mencukupi n buah, maka keluar peringatan “JUMLAH BILANGAN TIDAK MENCUKUPI”.

Kemudian, bilangan pada posisi urutan PRIMA, diberi warna CYAN.

Kriteria program:

1. Program akan meminta input batas bawah dan batas atas. Program juga akan meminta input jumlah

bilangan (n) yang hendak ditampilkan.

2. Syarat: batas bawah HARUS lebih kecil dari batas atas. Jika tidak dipenuhi, program akan meminta

kembali nilai batas bawah dan batas atas.

3. Syarat: jumlah bilangan yang ditampilkan MINIMAL 2. Jika jumlah bilangan kurang dari 2, maka

program akan meminta kembali input jumlah bilangan yang hendak ditampilkan.

4. Program hanya dikerjakan dalam 1 looping.

5. Program dapat menampilkan bilangan prima antara batas bawah dan batas atas ATAU sesuai jumlah.

6. Angka / bilangan yang ditampilkan sejumlah input yang diinginkan ATAU sampai batas atas, kalau

jumlahnya tidak mencukupi keluar peringatan bahwa angka yang ditampilkan tidak mencukupi

permintaan.

7. Angka/bilangan pada posisi GENAP diberi warna CYAN.

Bobot: no. 1,2,3,4: 10 poin. No. 5,6,7: 20 poin. Total nilai maksimum 100 poin.

CONTOH: (ket: yang di-BOLD + UNDERLINE adalah angka yang diberi warna CYAN)

BB = 6; BA = 20; n=6

6 9 12 15 18

Jumlah Tidak Mencukupi

BB = 6; BA = 20; n=3

6 9 12

Tips : Program dibuat bertahap mulai dari menampilkan n buah bilangan kelipatan 3 lalu disesuaikan

hingga menjadi sesuai permintaan soal. Setelah setiap langkah selesai, program sebaiknya

dijalankan untuk menguji apakah program telah benar sampai tahap itu sebelum lanjut ke tahap

berikutnya.

Langkah-langkah:

1. Cari pola untuk bilangan kelipatan 3.

2. Buatlah program untuk menampilkan n buah bilangan kelipatan 3

3. Input batas atas dan batas bawah beserta pengecekan kondisinya

4. Perbaiki program sehingga dapat menampilkan n buah bilangan kelipatan 3 antara batas bawah dan

batas atas

5. Tambahkan perintah untuk mengecek posisi prima

6. Tambahkan perintah untuk menampilkan bilangan pada posisi prima dengan warna CYAN

7. Tambahkan perintah untuk menampilkan peringatan “JUMLAH BILANGAN TIDAK MENCUKUPI” jika

bilangan kelipatan 3 antara batas bawah dan batas atas kurang dari n buah

Page 26: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal F - 2

Program dalam satu box ke box lainnya menunjukkan langkah-langkah pembuatan program. Tambahan

perintah dari langkah sebelumnya diberi warna biru dan perubahan perintah diberi warna merah.

Langkah 1 & 2:

Langkah 1: Cari pola untuk bilangan kelipatan 3.

Langkah 2: Buatlah program untuk menampilkan n buah bilangan kelipatan 3

Program Soalf;Uses Crt;Var N,i,j,pembagi,angka:byte;

Beginclrscr;

{Langkah 2: input n buah bilangan yang diinginkan dan pengecekan kondisinyadimana n minimal 2}Repeat

Write('Masukkan Jumlah '); Readln(n);if (n<2) then Writeln('Jumlah MINIMAL 2');

Until n>=2;

{Langkah 2: menampilkan n buah buah bilangan kelipatan 3}i:=1; {Variable i mewakili posisi bilangan}Repeat

angka:= 3*i; {Langkah 1: Pola bilangan kelipatan 3}write(angka:4);inc(i); {Posisi bilangan ditambah 1}

Until (i>n); {pengulangan sampai kondisi dimana i>n sehingga tampil n buahbilangan kelipatan 3}readkey;End.

Langkah 3 & 4:

Langkah 3: Input batas atas dan batas bawah beserta pengecekan kondisinya;

Langkah 4: Perbaiki program sehingga dapat menampilkan n buah bilangan kelipatan 3 antara

batas bawah dan batas atas

Program Soalf;Uses Crt;Var BB,BA,N,i,j,pembagi,angka:byte;

Beginclrscr;

{Langkah 3 : Input batas bawah dan atas beserta pengecekan kondisinya}Repeat

{Perintah input batas bawah dan batas atas}Write('Masukkan Batas Bawah '); Readln(BB);Write('Masukkan Batas Atas '); Readln(BA);{Tampilkan pesan jika input batas bawah bernilai lebih besar atau sama

dengan batas atas}if (bb>=ba) then Writeln('Batas Bawah HARUS LEBIH KECIL dari Batas Atas');Writeln;

Until (BA>BB) and (bb mod 3=0); {kondisi sampai batas bawah lebih kecil daribatas atas dan batas bawah harus kelipatan 3}

{input n buah bilangan yang diinginkan dan pengecekan kondisinya dimana nminimal 2}Repeat

Write('Masukkan Jumlah ');Readln(n);if (n<2) then Writeln('Jumlah MINIMAL 2');

Until n>=2;

Page 27: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal F - 3

{Langkah 4: menampilkan n buah bilangan kelipatan 3 antara batas bawah danbatas atas}i:=1; {Variable i mewakili posisi bilangan}Repeat

angka:=bb+3*(i-1); {Pola bilangan disesuaikan karena sekarang dimulai daribatas bawah}

write(angka:4);inc(i); {Posisi bilangan ditambah 1}

Until (i>n) or (angka>=ba); {kondisi ditambah dengan angka>=ba karenapengulangan akan berhenti setelah angka melebihi batasatas}

Readkey;End.

Langkah 5, 6, & 7:

Langkah 5: Tambahkan perintah untuk mengecek posisi prima

Langkah 6: Tambahkan perintah untuk menampilkan bilangan pada posisi prima dengan warna

CYAN

Langkah 7: Tambahkan perintah untuk menampilkan peringatan “JUMLAH BILANGAN TIDAK

MENCUKUPI” jika bilangan kelipatan 3 antara batas bawah dan batas atas kurang dari n buah

Program Soalf;Uses Crt;Var BB,BA,N,i,j,pembagi,angka:byte;

Beginclrscr;

{Langkah 3 : Input batas bawah dan atas beserta pengecekan kondisinya}Repeat

{Perintah input batas bawah dan batas atas}Write('Masukkan Batas Bawah ');Readln(BB);Write('Masukkan Batas Atas ');Readln(BA);{Tampilkan pesan jika input batas bawah bernilai lebih besar atau sama

dengan batas atas}if (bb>=ba) then Writeln('Batas Bawah HARUS LEBIH KECIL dari Batas Atas');Writeln;

Until (BA>BB) and (bb mod 3=0); {kondisi sampai batas bawah lebih kecil daribatas atas dan batas bawah harus kelipatan 3}

{input n buah bilangan yang diinginkan dan pengecekan kondisinya dimana nminimal 2}

RepeatWrite('Masukkan Jumlah ');Readln(n);if (n<2) then Writeln('Jumlah MINIMAL 2');

Until n>=2;

{menampilkan n buah bilangan kelipatan 3}

i:=1; {Variable i mewakili posisi bilangan}Repeat

angka:=bb+3*(i-1); {Pola bilangan kelipatan 3}{Langkah 5: Pengujian posisi prima atau bukan}pembagi:=1;For j:=2 to i doif i mod j = 0 then inc(pembagi);

{Langkah 6: Warna CYAN untuk bilangan pada posisi prima dan LightGrayuntuk posisi lainnya}

if pembagi=2 then textcolor(cyan) {Posisi Prima}else textcolor(lightgray); {Posisi Bukan Prima}

write(angka:4);inc(i);

Until (i>n) or (angka>=ba); {pengulangan sampai kondisi}

{Langkah 7: tampilkan pesan jika jumlah tidak mencukupi}Writeln;textcolor(lightgray);If i<n then writeln('Tidak mencukupi permintaan!');readkey;

End.

Page 28: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal G - 1

SOAL G

Buatlah program untuk menginput sebuah kalimat, kemudian program akan

mengurutkan karakter-karakter huruf dari kalimat tersebut mulai dari huruf besar secara

ASCENDING, kemudian huruf-huruf kecil secara ASCENDING pula, kemudian angka-angka

secara ascending pula.

Kriteria program:

1. Program akan meminta input berupa sebuah kalimat.

2. Kalimat yang diinput harus terdiri dari MINIMAL 5 digit dan MAKSIMAL 50 digit. Jika tidak

memenuhi syarat tersebut, program akan meminta user untuk menginput kalimat sampai

benar.

3. Program dapat mengurutkan dan menampilkan huruf mulai dari A – Z.

4. Program dapat mengurutkan dan menampilkan huruf mulai dari a – z.

5. Program dapat mengurutkan angka mulai dari 0 – 9.

6. Program akan memunculkan pertanyaan, “APAKAH ANDA AKAN MENGULANG

PROGRAM?” dan Anda harus menjawab dengan menekan tombol Y atau T (baik huruf

kapital maupun huruf kecil). Jika Anda menekan Y, maka program akan mengulang ke

bagian input kalimat kembali. Jika Anda menekan T, maka program akan berakhir.

7. Efek pada nomor 6 (jika menekan tombol) tidak akan berfungsi jika tombol yang ditekan

bukan tombol Y atau T (misalnya A, b, d, Z).

Bobot: no. 1,2,6,7: 10 poin; no. 3,4,5: 20 poin. Total nilai keseluruhan: 100.

CONTOH:

Kalimat: Prokom Unpar 2010

PUakmnoopr0012

Langkah-langkah Pengerjaan:

1. Menentukan variabel yang harus digunakan.

2. Membuat perintah input kalimat.

3. Memasang error trapping jika kalimat tersebut kurang dari 5 digit atau lebih dari 50 digit.

4. Menguji karakter dari ‘A’ sampai ‘Z’ dan membandingkannya dengan karakter-karakter dari kalimat

tersebut.

5. Menguji karakter dari ‘a’ sampai ‘z’ dan membandingkannya dengan karakter-karakter dari kalimat

tersebut.

6. Menguji karakter dari ‘0’ sampai ‘9’ dan membandingkannya dengan karakter-karakter dari kalimat

tersebut.

7. Memasang pertanyaan “Anda akan mengulang kembali?” dan program HANYA bereaksi jika yang

ditekan adalah huruf ‘Y’ atau ‘T’ saja (baik huruf kecil maupun kapital).

8. Mengulang langkah 2 – 7 HINGGA jawaban pada langkah 7 adalah ‘T’.

LANGKAH 1

Dengan ketentuan soal tersebut ada beberapa variabel yang diperlukan, antara lain:

1. Variabel untuk kalimat dengan panjang maksimal 50 digit → kal : String[50]

2. Variabel untuk mewakili 1 karakter dari kalimat tersebut untuk diuji → hrf : String[1]

3. Variabel penguji untuk ‘A’ – ‘Z’, ‘a’ – ‘z’, ‘0’ – ‘9’ → x : Char

4. Variabel untuk indeks karakter ke-? dari kalimat → i : byte (karena maksimal panjang kalimat 50

digit, sedangkan byte bisa untuk 0 – 255)

5. Variabel untuk INPUT TOMBOL KEYBOARD → tmbl : Char

Page 29: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal G - 2

Langkah 1

Program Soal_G;Uses CRT;Var

kal : String[50];hrf : String[1];

x : Char;i : byte; {huruf ke}

tmbl : Char;

LANGKAH 2

Membuat perintah input kalimat, yang penting adalah perintah READLN(variabel)

Program Soal_G;Uses CRT;Var

kal : String[50];hrf : String[1];

x : Char;i : byte; {huruf ke}

tmbl : Char;

BeginClrScr;Write('Kalimat: '); readln(kal);

End.

LANGKAH 3

Pada langkah ini, kita membutuhkan perintah LENGTH untuk menghitung panjang dari sebuah String

karena error trapping yang diminta pada soal adalah panjang dari kalimat yang diinput oleh user. Karena

keinginan soal adalah mengulang perintah input sampai kondisinya terpenuhi, maka digunakan perintah

REPEAT...UNTIL...

Program Soal_G;Uses CRT;Var

kal : String[50];hrf : String[1];

x : Char;i : byte; {huruf ke}

tmbl : Char;

BeginClrScr;Repeat

Write('Kalimat: '); readln(kal);Until (Length(kal) >= 5) AND (Length(kal) <= 50);

End.

LANGKAH 4

Pada langkah ini, kita membutuhkan penguji karakter ‘A’ – ‘Z’ dan kita butuh huruf mulai dari pertama

hingga huruf paling akhir dari kalimat tersebut untuk dibandingkan. Jika ditemukan, maka program akan

menampilkan huruf tersebut.

Program Soal_G;Uses CRT;

Page 30: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal G - 3

Varkal : String[50];hrf : String[1];

x : Char;i : byte; {huruf ke}

tmbl : Char;

BeginClrScr;Repeat

Write('Kalimat: '); readln(kal);Until (Length(kal) >= 5) AND (Length(kal) <= 50);

For x := ‘A’ to ‘Z’ DoFor i := 1 to Length(kal) Do

Beginhrf := Copy(kal,i,1);if (hrf = x) then WRITE(x);

End;End.

LANGKAH 5

Sama seperti langkah 4, hanya diganti ‘a’ – ‘z’

Program Soal_G;Uses CRT;Var

kal : String[50];hrf : String[1];

x : Char;i : byte; {huruf ke}

tmbl : Char;

BeginClrScr;Repeat

Write('Kalimat: '); readln(kal);Until (Length(kal) >= 5) AND (Length(kal) <= 50);

For x := ‘A’ to ‘Z’ DoFor i := 1 to Length(kal) Do

Beginhrf := Copy(kal,i,1);if (hrf = x) then WRITE(x);

End;For x := ‘a’ to ‘z’ Do

For i := 1 to Length(kal) DoBegin

hrf := Copy(kal,i,1);if (hrf = x) then WRITE(x);

End;End.

LANGKAH 6

Sama seperti langkah 4 dan 5, tapi yang diuji ‘0’ – ‘9’

Program Soal_G;Uses CRT;Var

kal : String[50];hrf : String[1];

Page 31: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal G - 4

x : Char;i : byte; {huruf ke}

tmbl : Char;

BeginClrScr;Repeat

Write('Kalimat: '); readln(kal);Until (Length(kal) >= 5) AND (Length(kal) <= 50);

For x := ‘A’ to ‘Z’ DoFor i := 1 to Length(kal) Do

Beginhrf := Copy(kal,i,1);if (hrf = x) then WRITE(x);

End;For x := ‘a’ to ‘z’ Do

For i := 1 to Length(kal) DoBegin

hrf := Copy(kal,i,1);if (hrf = x) then WRITE(x);

End;For x := ‘0’ to ‘9’ Do

For i := 1 to Length(kal) DoBegin

hrf := Copy(kal,i,1);if (hrf = x) then WRITE(x);

End;End.

LANGKAH 7

Untuk meminta input berupa tombol keyboard, perintah yang digunakan adalah READKEY dengan

variabel penampung input tersebut harus bertipe CHAR. Perintah tersebut harus diulang sampai tombol

yang ditekan tersebut berkapital ‘Y’ atau ‘T’.

Program Soal_G;Uses CRT;Var

kal : String[50];hrf : String[1];

x : Char;i : byte; {huruf ke}

tmbl : Char;

BeginClrScr;Repeat

Write('Kalimat: '); readln(kal);Until (Length(kal) >= 5) AND (Length(kal) <= 50);

For x := ‘A’ to ‘Z’ DoFor i := 1 to Length(kal) Do

Beginhrf := Copy(kal,i,1);if (hrf = x) then WRITE(x);

End;For x := ‘a’ to ‘z’ Do

For i := 1 to Length(kal) DoBegin

hrf := Copy(kal,i,1);if (hrf = x) then WRITE(x);

End;For x := ‘0’ to ‘9’ Do

Page 32: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal G - 5

For i := 1 to Length(kal) DoBegin

hrf := Copy(kal,i,1);if (hrf = x) then WRITE(x);

End;

Repeattmbl := readkey;tmbl := UPCASE(tmbl); {huruf kecil / besar, jadi kapital}

Until (tmbl = ‘Y’) OR (tmbl = ‘T’); {berhenti sampai ‘Y’ atau‘T’}End.

LANGKAH 8

Mengulang langkah 2 – 7 HINGGA jawaban pada tombol keyboard bernilai ‘T’.

Langkah 2 dimulai dari mengetik CLRSCR. Jadi kita pasang REPEAT sebelum perintah CLRSCR, dan pasang

UNTIL setelah LANGKAH 6 SELESAI.

Program Soal_G;Uses CRT;Var

kal : String[50];hrf : String[1];

x : Char;i : byte; {huruf ke}

tmbl : Char;

BeginREPEAT

ClrScr;Repeat

Write('Kalimat: '); readln(kal);Until (Length(kal) >= 5) AND (Length(kal) <= 50);

For x := ‘A’ to ‘Z’ DoFor i := 1 to Length(kal) Do

Beginhrf := Copy(kal,i,1);if (hrf = x) then WRITE(x);

End;For x := ‘a’ to ‘z’ Do

For i := 1 to Length(kal) DoBegin

hrf := Copy(kal,i,1);if (hrf = x) then WRITE(x);

End;For x := ‘0’ to ‘9’ Do

For i := 1 to Length(kal) DoBegin

hrf := Copy(kal,i,1);if (hrf = x) then WRITE(x);

End;

Repeattmbl := readkey;tmbl := UPCASE(tmbl); {huruf kecil / besar, jadi kapital}

Until (tmbl = ‘Y’) OR (tmbl = ‘T’); {berhenti sampai ‘Y’ atau‘T’}

UNTIL (tmbl = ‘T’);End.

Page 33: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal H - 1

SOAL H

Buatlah program untuk menginput sebuah kalimat, kemudian program akan mengurutkan

karakter-karakter huruf dari kalimat tersebut mulai dari huruf besar secara DESCENDING, kemudian

huruf-huruf kecil secara DESCENDING pula, kemudian angka-angka secara ASCENDING.

Kriteria program:

1. Program akan meminta input berupa sebuah kalimat.

2. Kalimat yang diinput harus terdiri dari MINIMAL 5 digit dan MAKSIMAL 50 digit. Jika tidak memenuhi

syarat tersebut, program akan meminta user untuk menginput kalimat sampai benar.

3. Program dapat mengurutkan dan menampilkan huruf mulai dari Z – A.

4. Program dapat mengurutkan dan menampilkan huruf mulai dari z – a.

5. Program dapat mengurutkan angka mulai dari 0 – 9.

6. Program akan memunculkan pertanyaan, “APAKAH ANDA AKAN MENGULANG PROGRAM?” dan

Anda harus menjawab dengan menekan tombol Y atau T (baik huruf kapital maupun huruf kecil).

Jika Anda menekan Y, maka program akan mengulang ke bagian input kalimat kembali. Jika Anda

menekan T, maka program akan berakhir.

7. Efek pada nomor 6 (jika menekan tombol) tidak akan berfungsi jika tombol yang ditekan bukan

tombol Y atau T (misalnya A, b, d, Z).

Bobot: no. 1,2,6,7: 10 poin; no. 3,4,5: 20 poin. Total nilai keseluruhan: 100.

CONTOH:

Kalimat: Prokom Unpar 2010

UPrrpoonmka0012

Langkah-langkah Pengerjaan:

1. Menentukan variabel yang harus digunakan.

2. Membuat perintah input kalimat.

3. Memasang error trapping jika kalimat tersebut kurang dari 5 digit atau lebih dari 50 digit.

4. Menguji karakter dari ‘Z’ sampai ‘A’ dan membandingkannya dengan karakter-karakter dari kalimat

tersebut.

5. Menguji karakter dari ‘z’ sampai ‘a’ dan membandingkannya dengan karakter-karakter dari kalimat

tersebut.

6. Menguji karakter dari ‘0’ sampai ‘9’ dan membandingkannya dengan karakter-karakter dari kalimat

tersebut.

7. Memasang pertanyaan “Anda akan mengulang kembali?” dan program HANYA bereaksi jika yang

ditekan adalah huruf ‘Y’ atau ‘T’ saja (baik huruf kecil maupun kapital).

8. Mengulang langkah 2 – 7 HINGGA jawaban pada langkah 7 adalah ‘T’.

LANGKAH 1

Dengan ketentuan soal tersebut ada beberapa variabel yang diperlukan, antara lain:

1. Variabel untuk kalimat dengan panjang maksimal 50 digit → kal : String[50]

2. Variabel untuk mewakili 1 karakter dari kalimat tersebut untuk diuji → hrf : String[1]

3. Variabel penguji untuk ‘A’ – ‘Z’, ‘a’ – ‘z’, ‘0’ – ‘9’ → x : Char

4. Variabel untuk indeks karakter ke-? dari kalimat → i : byte (karena maksimal panjang kalimat 50

digit, sedangkan byte bisa untuk 0 – 255)

5. Variabel untuk INPUT TOMBOL KEYBOARD → tmbl : Char

Page 34: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal H - 2

Langkah 1

Program Soal_G;Uses CRT;Var

kal : String[50];hrf : String[1];

x : Char;i : byte; {huruf ke}

tmbl : Char;

LANGKAH 2

Membuat perintah input kalimat, yang penting adalah perintah READLN(variabel)

Program Soal_G;Uses CRT;Var

kal : String[50];hrf : String[1];

x : Char;i : byte; {huruf ke}

tmbl : Char;

BeginClrScr;Write('Kalimat: '); readln(kal);

End.

LANGKAH 3

Pada langkah ini, kita membutuhkan perintah LENGTH untuk menghitung panjang dari sebuah String

karena error trapping yang diminta pada soal adalah panjang dari kalimat yang diinput oleh user. Karena

keinginan soal adalah mengulang perintah input sampai kondisinya terpenuhi, maka digunakan perintah

REPEAT...UNTIL...

Program Soal_G;Uses CRT;Var

kal : String[50];hrf : String[1];

x : Char;i : byte; {huruf ke}

tmbl : Char;

BeginClrScr;Repeat

Write('Kalimat: '); readln(kal);Until (Length(kal) >= 5) AND (Length(kal) <= 50);

End.

LANGKAH 4

Pada langkah ini, kita membutuhkan penguji karakter ‘Z’ – ‘A’ dan kita butuh huruf mulai dari pertama

hingga huruf paling akhir dari kalimat tersebut untuk dibandingkan. Jika ditemukan, maka program akan

menampilkan huruf tersebut.

Program Soal_G;Uses CRT;Var

kal : String[50];hrf : String[1];

x : Char;

Page 35: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal H - 3

i : byte; {huruf ke}

tmbl : Char;

BeginClrScr;Repeat

Write('Kalimat: '); readln(kal);Until (Length(kal) >= 5) AND (Length(kal) <= 50);

For x := ‘Z’ downto ‘A’ DoFor i := 1 to Length(kal) Do

Beginhrf := Copy(kal,i,1);if (hrf = x) then WRITE(x);

End;End.

LANGKAH 5

Sama seperti langkah 4, hanya diganti ‘z’ – ‘a’

Program Soal_G;Uses CRT;Var

kal : String[50];hrf : String[1];

x : Char;i : byte; {huruf ke}

tmbl : Char;

BeginClrScr;Repeat

Write('Kalimat: '); readln(kal);Until (Length(kal) >= 5) AND (Length(kal) <= 50);

For x := ‘Z’ downto ‘A’ DoFor i := 1 to Length(kal) Do

Beginhrf := Copy(kal,i,1);if (hrf = x) then WRITE(x);

End;For x := ‘z’ downto ‘a’ Do

For i := 1 to Length(kal) DoBegin

hrf := Copy(kal,i,1);if (hrf = x) then WRITE(x);

End;End.

LANGKAH 6

Sama seperti langkah 4 dan 5, tapi yang diuji ‘0’ – ‘9’

Program Soal_G;Uses CRT;Var

kal : String[50];hrf : String[1];

x : Char;i : byte; {huruf ke}

tmbl : Char;

Begin

Page 36: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal H - 4

ClrScr;Repeat

Write('Kalimat: '); readln(kal);Until (Length(kal) >= 5) AND (Length(kal) <= 50);

For x := ‘Z’ downto ‘A’ DoFor i := 1 to Length(kal) Do

Beginhrf := Copy(kal,i,1);if (hrf = x) then WRITE(x);

End;For x := ‘z’ downto ‘a’ Do

For i := 1 to Length(kal) DoBegin

hrf := Copy(kal,i,1);if (hrf = x) then WRITE(x);

End;For x := ‘0’ to ‘9’ Do

For i := 1 to Length(kal) DoBegin

hrf := Copy(kal,i,1);if (hrf = x) then WRITE(x);

End;End.

LANGKAH 7

Untuk meminta input berupa tombol keyboard, perintah yang digunakan adalah READKEY dengan

variabel penampung input tersebut harus bertipe CHAR. Perintah tersebut harus diulang sampai tombol

yang ditekan tersebut berkapital ‘Y’ atau ‘T’.

Program Soal_G;Uses CRT;Var

kal : String[50];hrf : String[1];

x : Char;i : byte; {huruf ke}

tmbl : Char;

BeginClrScr;Repeat

Write('Kalimat: '); readln(kal);Until (Length(kal) >= 5) AND (Length(kal) <= 50);

For x := ‘Z’ downto ‘A’ DoFor i := 1 to Length(kal) Do

Beginhrf := Copy(kal,i,1);if (hrf = x) then WRITE(x);

End;For x := ‘z’ downto ‘a’ Do

For i := 1 to Length(kal) DoBegin

hrf := Copy(kal,i,1);if (hrf = x) then WRITE(x);

End;For x := ‘0’ to ‘9’ Do

For i := 1 to Length(kal) DoBegin

hrf := Copy(kal,i,1);if (hrf = x) then WRITE(x);

End;

Repeattmbl := readkey;

Page 37: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal H - 5

tmbl := UPCASE(tmbl); {huruf kecil / besar, jadi kapital}Until (tmbl = ‘Y’) OR (tmbl = ‘T’); {berhenti sampai ‘Y’ atau

‘T’}End.

LANGKAH 8

Mengulang langkah 2 – 7 HINGGA jawaban pada tombol keyboard bernilai ‘T’.

Langkah 2 dimulai dari mengetik CLRSCR. Jadi kita pasang REPEAT sebelum perintah CLRSCR, dan pasang

UNTIL setelah LANGKAH 6 SELESAI.

Program Soal_G;Uses CRT;Var

kal : String[50];hrf : String[1];

x : Char;i : byte; {huruf ke}

tmbl : Char;

BeginREPEAT

ClrScr;Repeat

Write('Kalimat: '); readln(kal);Until (Length(kal) >= 5) AND (Length(kal) <= 50);

For x := ‘Z’ downto ‘A’ DoFor i := 1 to Length(kal) Do

Beginhrf := Copy(kal,i,1);if (hrf = x) then WRITE(x);

End;For x := ‘z’ downto ‘a’ Do

For i := 1 to Length(kal) DoBegin

hrf := Copy(kal,i,1);if (hrf = x) then WRITE(x);

End;For x := ‘0’ to ‘9’ Do

For i := 1 to Length(kal) DoBegin

hrf := Copy(kal,i,1);if (hrf = x) then WRITE(x);

End;

Repeattmbl := readkey;tmbl := UPCASE(tmbl); {huruf kecil / besar, jadi kapital}

Until (tmbl = ‘Y’) OR (tmbl = ‘T’); {berhenti sampai ‘Y’ atau‘T’}

UNTIL (tmbl = ‘T’);End.

Page 38: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal I - 1

SOAL I

Buatlah program untuk menginput batas bawah dan batas atas bilangan. Kemudian program

juga akan meminta input jumlah bilangan yang ditampilkan. Kemudian program meminta input faktor

pertama dan faktor kedua.

Kriteria program:

1. Program akan meminta input batas bawah dan batas atas dengan syarat batas bawah lebih kecil dari

batas atas.

2. Program akan meminta input banyaknya bilangan dengan syarat minimal 2.

3. Program akan meminta input faktor pertama dan kedua dengan syarat kedua faktor tidak sama dan

lebih kecil dari batas bawah.

4. Langkah 5-7 dibuat dalam 1 looping.

5. Program.akan menampilkan angka di antara batas bawah dan batas atas yang merupakan kelipatan

dari faktor pertama dan kedua.

6. Program dapat menampilkan bilangan antara batas bawah dan batas atas ATAU sesuai jumlah.

7. Angka / bilangan yang ditampilkan sejumlah input yang diinginkan ATAU sampai batas atas, kalau

jumlahnya tidak mencukupi keluar peringatan bahwa angka yang ditampilkan tidak mencukupi

permintaan.

8. Jika tidak ada bilangan yang merupakan faktor dari bilangan pertama dan kedua, maka ditampilkan

tidak ada bilangan yang memenuhi syarat.

Bobot: no. 1,2,3,7: 15 poin; no. 4,5,6,8: 10 poin. Total nilai keseluruhan: 100.

CONTOH:

BB=40; BA=60; n=2;Faktor1 = 2; Faktor2 = 3

Output: 42 48

BB=40; BA=60; n=10;Faktor1 = 2; Faktor2 = 3

Output: 42 48 54 60

Tidak mencukupi permintaan

BB=40; BA=60; n=10;Faktor1 = 13; Faktor2 = 17

Tidak ada yang memenuhi syarat

Langkah-langkah:

1. Buat proses input batas bawah dan batas atas.

program soal_i;

uses crt;

var bawah, atas: integer;

begin

clrscr;

write('Masukkan batas bawah: '); readln(bawah);

write('Masukkan batas atas: '); readln(atas);

readkey;

end.

2. Lakukan proses pengulangan peng-input-an batas bawah dan batas atas (sampai terpenuhi

kondisi batas bawah lebih kecil dari batas atas)

program soal_i;

uses crt;

var bawah, atas: integer;

Page 39: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal I - 2

begin

clrscr;

repeat

write('Masukkan batas bawah: '); readln(bawah);

write('Masukkan batas atas: '); readln(atas);

until bawah<atas;

readkey;

end.

3. Buat proses input banyaknya bilangan yang ingin ditampilkan (n).

program soal_i;

uses crt;

var bawah, atas, n: integer;

begin

clrscr;

repeat

write('Masukkan batas bawah: '); readln(bawah);

write('Masukkan batas atas: '); readln(atas);

until bawah<atas;

write('Masukkan banyaknya bilangan: '); readln(n);

readkey;

end.

4. Lakukan pengulangan untuk peng-input-an banyaknya bilangan (sampai terpenuhi kondisi

bilangan yang ingin ditampilkan minimal 2 buah (>=2).

program soal_i;

uses crt;

var bawah, atas, n: integer;

begin

clrscr;

repeat

write('Masukkan batas bawah: '); readln(bawah);

write('Masukkan batas atas: '); readln(atas);

until bawah<atas;

repeat

write('Masukkan banyaknya bilangan: '); readln(n);

until n>=2;

readkey;

end.

5. Buat proses untuk input nilai Faktor1 dan Faktor2

program soal_i;

uses crt;

var bawah, atas, n, f1, f2: integer;

begin

clrscr;

repeat

write('Masukkan batas bawah: '); readln(bawah);

write('Masukkan batas atas: '); readln(atas);

until bawah<atas;

repeat

write('Masukkan banyaknya bilangan: '); readln(n);

until n>=2;

write('Masukkan Faktor 1: '); readln(f1);

Page 40: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal I - 3

write('Masukkan Faktor 2: '); readln(f2);

readkey;

end.

6. Lakukan proses pengulangan untuk peng-input-an Faktor1 dan Faktor 2 (sampai terpenuhi

kondisi kedua faktor tidak boleh sama dan keduanya harus lebih kecil dari batas bawah)

program soal_i;

uses crt;

var bawah, atas, n, f1, f2: integer;

begin

clrscr;

repeat

write('Masukkan batas bawah: '); readln(bawah);

write('Masukkan batas atas: '); readln(atas);

until bawah<atas;

repeat

write('Masukkan banyaknya bilangan: '); readln(n);

until n>=2;

repeat

write('Masukkan Faktor 1: '); readln(f1);

write('Masukkan Faktor 2: '); readln(f2);

until ((f1 <> f2) and ((f1 < bawah) and (f2 < bawah)));

readkey;

end.

7. Buat sebuah looping yang akan memproses bilangan mulai dari batas bawah dan berakhir di

batas atas.

program soal_i;

uses crt;

var bawah, atas, n, f1, f2, i: integer;

begin

clrscr;

repeat

write('Masukkan batas bawah: '); readln(bawah);

write('Masukkan batas atas: '); readln(atas);

until bawah<atas;

repeat

write('Masukkan banyaknya bilangan: '); readln(n);

until n>=2;

repeat

write('Masukkan Faktor 1: '); readln(f1);

write('Masukkan Faktor 2: '); readln(f2);

until ((f1 <> f2) and ((f1 < bawah) and (f2 < bawah)));

for i:=bawah to atas do

begin

end;

readkey;

end.

Page 41: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal I - 4

8. Dalam looping lakukan pengecekan terhadap angka-angka (mulai dari batas bawah sampai

batas atas), apakah angka tersebut kelipatan dari faktor 1 dan faktor2 dan juga buat variabel

penghitung yang akan ditambah setiap ada bilangan kelipatan dari faktor 1 dan faktor 2.

program soal_i;

uses crt;

var bawah, atas, n, f1, f2, i, penghitung: integer;

begin

clrscr;

repeat

write('Masukkan batas bawah: '); readln(bawah);

write('Masukkan batas atas: '); readln(atas);

until bawah<atas;

repeat

write('Masukkan banyaknya bilangan: '); readln(n);

until n>=2;

repeat

write('Masukkan Faktor 1: '); readln(f1);

write('Masukkan Faktor 2: '); readln(f2);

until ((f1 <> f2) and ((f1 < bawah) and (f2 < bawah)));

penghitung:=0;

for i:=bawah to atas do

begin

if (i mod f1 = 0) and (i mod f2 = 0) then

begin

penghitung:=penghitung+1;

end;

end;

readkey;

end.

9. Dalam looping lakukan penampilan output terhadap angka-angka (mulai dari batas bawah

sampai batas atas) yang memenuhi syarat kelipatan dari faktor1 dan faktor2. Angka yang

ditampilkan tentu saja sebanyak jumlah yang diinginkan.

program soal_i;

uses crt;

var bawah, atas, n, f1, f2, i, penghitung: integer;

begin

clrscr;

repeat

write('Masukkan batas bawah: '); readln(bawah);

write('Masukkan batas atas: '); readln(atas);

until bawah<atas;

repeat

write('Masukkan banyaknya bilangan: '); readln(n);

until n>=2;

repeat

write('Masukkan Faktor 1: '); readln(f1);

write('Masukkan Faktor 2: '); readln(f2);

until ((f1 <> f2) and ((f1 < bawah) and (f2 < bawah)));

penghitung:=0;

for i:=bawah to atas do

Page 42: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal I - 5

begin

if (i mod f1 = 0) and (i mod f2 = 0) then

begin

penghitung:=penghitung+1;

if penghitung<=n then write(i, ' ');

end;

end;

readkey;

end.

10. Lakukan penampilan output, apabila jumlah yang diinginkan tidak terpenuhi dan juga apabila

tidak ada bilangan yang tidak memenuhi syarat

program soal_i;

uses crt;

var bawah, atas, n, f1, f2, i, penghitung: integer;

begin

clrscr;

repeat

write('Masukkan batas bawah: '); readln(bawah);

write('Masukkan batas atas: '); readln(atas);

until bawah<atas;

repeat

write('Masukkan banyaknya bilangan: '); readln(n);

until n>=2;

repeat

write('Masukkan Faktor 1: '); readln(f1);

write('Masukkan Faktor 2: '); readln(f2);

until ((f1 <> f2) and ((f1 < bawah) and (f2 < bawah)));

penghitung:=0;

for i:=bawah to atas do

begin

if (i mod f1 = 0) and (i mod f2 = 0) then

begin

penghitung:=penghitung+1;

if penghitung<=n then write(i, ' ');

end;

end;

writeln;

if penghitung=0 then write('Tidak ada yang memenuhi syarat')

else if penghitung<n then write('Tidak mencukupi permintaan');

readkey;

end.

11. Program selesai.

Page 43: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal J - 1

SOAL J

Buatlah program untuk menginput batas bawah dan batas atas bilangan. Kemudian program

juga akan meminta input jumlah bilangan yang ditampilkan. Kemudian program meminta input bilangan

pertama dan bilangan kedua.

Kriteria program:

1. Program akan meminta input batas bawah dan batas atas dengan syarat batas bawah lebih kecil dari

batas atas.

2. Program akan meminta input banyaknya bilangan dengan syarat minimal 2.

3. Program akan meminta input bilangan pertama dan kedua dengan syarat kedua bilangan tidak sama

dan lebih besar dari batas atas.

4. Langkah 5-7 dibuat dalam 1 looping.

5. Program.akan menampilkan angka di antara batas bawah dan batas atas yang merupakan faktor dari

bilangan pertama dan kedua.

6. Program dapat menampilkan bilangan antara batas bawah dan batas atas ATAU sesuai jumlah.

7. Angka / bilangan yang ditampilkan sejumlah input yang diinginkan ATAU sampai batas atas, kalau

jumlahnya tidak mencukupi keluar peringatan bahwa angka yang ditampilkan tidak mencukupi

permintaan.

8. Jika tidak ada bilangan yang merupakan faktor dari bilangan pertama dan kedua, maka ditampilkan

tidak ada bilangan yang memenuhi syarat.

Bobot: no. 1,2,3,7: 15 poin; no. 4,5,6,8: 10 poin. Total nilai keseluruhan: 100.

CONTOH:

BB=2; BA=10; n=3;Bilangan1 = 40; Bilangan2 = 60

Output: 2 4 5

BB=2; BA=10; n=10;Bilangan1 = 40; Bilangan2 = 60

Output: 2 4 5 10

Tidak mencukupi permintaan

BB=2; BA=3; n=10;Bilangan1 = 45; Bilangan2 = 46

Tidak ada yang memenuhi syarat

Langkah-langkah:

1. Buat proses input batas bawah dan batas atas.

program soal_j;

uses crt;

var bawah, atas: integer;

begin

clrscr;

write('Masukkan batas bawah: '); readln(bawah);

write('Masukkan batas atas: '); readln(atas);

readkey;

end.

2. Lakukan proses pengulangan peng-input-an batas bawah dan batas atas (sampai terpenuhi

kondisi batas bawah lebih kecil dari batas atas)

program soal_j;

uses crt;

var bawah, atas: integer;

begin

Page 44: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal J - 2

clrscr;

repeat

write('Masukkan batas bawah: '); readln(bawah);

write('Masukkan batas atas: '); readln(atas);

until bawah<atas;

readkey;

end.

3. Buat proses input banyaknya bilangan yang ingin ditampilkan (n).

program soal_j;

uses crt;

var bawah, atas, n: integer;

begin

clrscr;

repeat

write('Masukkan batas bawah: '); readln(bawah);

write('Masukkan batas atas: '); readln(atas);

until bawah<atas;

write('Masukkan banyaknya bilangan: '); readln(n);

readkey;

end.

4. Lakukan pengulangan untuk peng-input-an banyaknya bilangan (sampai terpenuhi kondisi

bilangan yang ingin ditampilkan minimal 2 buah (>=2).

program soal_j;

uses crt;

var bawah, atas, n: integer;

begin

clrscr;

repeat

write('Masukkan batas bawah: '); readln(bawah);

write('Masukkan batas atas: '); readln(atas);

until bawah<atas;

repeat

write('Masukkan banyaknya bilangan: '); readln(n);

until n>=2;

readkey;

end.

5. Buat proses untuk input nilai Bilangan1 dan Bilangan2

program soal_j;

uses crt;

var bawah, atas, n, b1, b2: integer;

begin

clrscr;

repeat

write('Masukkan batas bawah: '); readln(bawah);

write('Masukkan batas atas: '); readln(atas);

until bawah<atas;

repeat

write('Masukkan banyaknya bilangan: '); readln(n);

until n>=2;

write('Masukkan Bilangan 1: '); readln(b1);

Page 45: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal J - 3

write('Masukkan Bilangan 2: '); readln(b2);

readkey;

end.

6. Lakukan proses pengulangan untuk peng-input-an Bilangan1 dan Bilangan2 (sampai terpenuhi

kondisi kedua bilangan tidak boleh sama dan keduanya harus lebih besar dari batas atas)

program soal_j;

uses crt;

var bawah, atas, n, b1, b2: integer;

begin

clrscr;

repeat

write('Masukkan batas bawah: '); readln(bawah);

write('Masukkan batas atas: '); readln(atas);

until bawah<atas;

repeat

write('Masukkan banyaknya bilangan: '); readln(n);

until n>=2;

repeat

write('Masukkan Bilangan 1: '); readln(b1);

write('Masukkan Bilangan 2: '); readln(b2);

until ((b1 <> b2) and ((b1 > atas) and (b2 > atas)));

readkey;

end.

7. Buat sebuah looping yang akan memproses bilangan mulai dari batas bawah dan berakhir di

batas atas.

program soal_j;

uses crt;

var bawah, atas, n, b1, b2, i: integer;

begin

clrscr;

repeat

write('Masukkan batas bawah: '); readln(bawah);

write('Masukkan batas atas: '); readln(atas);

until bawah<atas;

repeat

write('Masukkan banyaknya bilangan: '); readln(n);

until n>=2;

repeat

write('Masukkan Bilangan 1: '); readln(b1);

write('Masukkan Bilangan 2: '); readln(b2);

until ((b1 <> b2) and ((b1 > atas) and (b2 > atas)));

for i:=bawah to atas do

begin

end;

readkey;

end.

Page 46: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal J - 4

8. Dalam looping lakukan pengecekan terhadap angka-angka (mulai dari batas bawah sampai

batas atas), apakah angka tersebut merupakan faktor dari Bilangan1 dan Bilangan2 dan juga

buat variabel penghitung yang akan ditambah setiap ada bilangan yang merupakan faktor

dari Bilangan1 dan Bilangan2.

program soal_j;

uses crt;

var bawah, atas, n, b1, b2, i, penghitung: integer;

begin

clrscr;

repeat

write('Masukkan batas bawah: '); readln(bawah);

write('Masukkan batas atas: '); readln(atas);

until bawah<atas;

repeat

write('Masukkan banyaknya bilangan: '); readln(n);

until n>=2;

repeat

write('Masukkan Bilangan 1: '); readln(b1);

write('Masukkan Bilangan 2: '); readln(b2);

until ((b1 <> b2) and ((b1 > atas) and (b2 > atas)));

penghitung:=0;

for i:=bawah to atas do

begin

if (b1 mod i = 0) and (b2 mod i = 0) then

begin

penghitung:=penghitung+1;

end;

end;

readkey;

end.

9. Dalam looping lakukan penampilan output terhadap angka-angka (mulai dari batas bawah

sampai batas atas) yang memenuhi syarat faktor dari Bilangan1 dan Bilangan2. Angka yang

ditampilkan tentu saja sebanyak jumlah yang diinginkan.

program soal_j;

uses crt;

var bawah, atas, n, b1, b2, i, penghitung: integer;

begin

clrscr;

repeat

write('Masukkan batas bawah: '); readln(bawah);

write('Masukkan batas atas: '); readln(atas);

until bawah<atas;

repeat

write('Masukkan banyaknya bilangan: '); readln(n);

until n>=2;

repeat

write('Masukkan Bilangan 1: '); readln(b1);

write('Masukkan Bilangan 2: '); readln(b2);

until ((b1 <> b2) and ((b1 > atas) and (b2 > atas)));

Page 47: Solusi UTS Genap 2011 Beserta Langkah

Solusi dan Penjelasan UTS Prokom Semester Genap 2010/2011

Soal J - 5

penghitung:=0;

for i:=bawah to atas do

begin

if (b1 mod i = 0) and (b2 mod i = 0) then

begin

penghitung:=penghitung+1;

if penghitung<=n then write(i, ' ');

end;

end;

readkey;

end.

10. Lakukan penampilan output, apabila jumlah yang diinginkan tidak terpenuhi dan juga apabila

tidak ada bilangan yang tidak memenuhi syarat

program soal_j;

uses crt;

var bawah, atas, n, b1, b2, i, penghitung: integer;

begin

clrscr;

repeat

write('Masukkan batas bawah: '); readln(bawah);

write('Masukkan batas atas: '); readln(atas);

until bawah<atas;

repeat

write('Masukkan banyaknya bilangan: '); readln(n);

until n>=2;

repeat

write('Masukkan Bilangan 1: '); readln(b1);

write('Masukkan Bilangan 2: '); readln(b2);

until ((b1 <> b2) and ((b1 > atas) and (b2 > atas)));

penghitung:=0;

for i:=bawah to atas do

begin

if (b1 mod i = 0) and (b2 mod i = 0) then

begin

penghitung:=penghitung+1;

if penghitung<=n then write(i, ' ');

end;

end;

writeln;

if penghitung=0 then write('Tidak ada yang memenuhi syarat')

else if penghitung<n then write('Tidak mencukupi permintaan');

readkey;

end.

11. Program selesai.