solusi uts genap 2011 beserta langkah
Post on 02-Jul-2015
159 Views
Preview:
TRANSCRIPT
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
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;
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;
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
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.
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.
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
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.
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
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
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;
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;
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
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.
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.
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}
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.
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.
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;
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.
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
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.
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.
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.
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
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;
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.
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
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;
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];
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
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.
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
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;
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
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;
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.
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;
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);
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.
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
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.
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
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);
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.
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)));
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.
top related