Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

65
Kumpulan Soal Dasar-Dasar Algoritma Dan Pemrograman Last update: 04 November 2010 51 soal http://awanrimbawan.wordpress.com http://awanrimbawan.wordpress.com 04Nov2010 Page 1

Transcript of Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

Page 1: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

Kumpulan Soal Dasar-Dasar Algoritma Dan Pemrograman

Last update: 04 November 2010

51 soal

http://awanrimbawan.wordpress.com

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 1

Page 2: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

DISCLAIMER

- For educational purpose only

- Compiler menggunakan Dev C++ 4.9.9.2

- Mari berbagi,jika menemukan kesalahan tentang algoritma atau source code, silahkan hubungi [email protected].

- Semoga bisa membantu kita untuk belajar algoritma dan pemrograman

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 2

Page 3: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

1. Soal: Lama Bekerja

Tulis program untuk menentukan lama bekerja seorang pegawai, jika jam masuk dan jam pulang diinput. Catatan: jam berupa angka 1-12, dan seorang pegawai bekerja kurang dari 12 jam.

Contoh Masukan dan keluaran:

Jam masuk

Jam keluar

Keluaran/tampilan

10 11 Lama bekerja 1 jam

10 2 Lama bekerja 4 jam

10 7 Lama bekerja 9 jam

Algoritma:

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 3

Algoritma Lama_Bekerja{jam berupa angka 1-12, dan seorang pegawai bekerja kurang dari 12 jam}

KAMUS DATA iMasuk, iKeluar, iLama: Integer

BEGIN Input(iMasuk) Input(iKeluar)

If (iKeluar >= iMasuk) Then iLama iKeluar - iMasuk Else iLama (12-iMasuk) + iKeluar end if

Output(iLama)END

Page 4: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

Program:

2. Soal: Biaya Parkir

Tulis program untuk menentukan biaya parkir yang dihitung berdasarkan lama parkir. Lama parkir dihitung dari selisih jam masuk dan jam keluar diinput. Biaya parkir 2 jam pertama 2000, perjam berikutnya 500.

Contoh Masukan dan keluaran:

Jam masuk Jam keluar Lama keluaran/tampilan

10 11 1 Biaya = 2000

10 2 4 Biaya = 3000

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 4

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

/*Tulis procgram untuk menentukan lama bekerja seorang pegawai, jika jam masuk dan jam pulang diinput. Catatan: jam berupa angka 1-12, dan seorang pegawai bekerja kurang dari 12 jam.asumsi jam yang dimasukkan adalah tepat (tidak memasukkan menit)*/

int main(){ int iMasuk, iKeluar, iLama; printf("Menentukan lama bekerja\n\n"); printf(" Jam Masuk : "); scanf("%d",&iMasuk);

printf(" \nJam Keluar : "); scanf("%d",&iKeluar);

if (iKeluar >= iMasuk) iLama = iKeluar - iMasuk; else iLama = (12-iMasuk) + iKeluar; printf("\n\n Lama bekerja adalah : %d Jam\n", iLama);

system("PAUSE"); return 0;}

Page 5: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

Algoritma:

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 5

Algoritma Biaya_Parkir{menghitung biaya parkir}

KAMUS DATA iMasuk, iKeluar, iLama, iBiaya: Integer BEGIN Input(iMasuk) Input(iKeluar)

If (iKeluar >= iMasuk) Then iLama iKeluar - iMasuk Else iLama (12-iMasuk) + iKeluar End If

If (iLama > 2) Then iBiaya 2000 + ((iLama - 2)*500) else iBiaya 2000

Output(iBiaya)END

Page 6: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

Program:

3. Soal: Penggabungan Resistor

Tulis program untuk menghitung resistor pengganti dari 3 buah resistor yang disusun secara seri atau paralel. Rumus untuk resistor pengganti sbb:

Seri: Rgab = R1 + R2 + R3

Paralel: 1/Rgab = 1/R1 + 1/R2 + 1/R3

Besar R1, R2 dan R3 serta jenis penyusunan (seri/paralel) diinput oleh user.

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 6

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

int main(){ int iMasuk, iKeluar, iLama; long int iBiaya; printf("Menghitung Biaya Parkir\n\n"); printf(" Jam Masuk : "); scanf("%d",&iMasuk);

printf(" \nJam Keluar : "); scanf("%d",&iKeluar); if (iKeluar >= iMasuk) iLama = iKeluar - iMasuk; else iLama = (12-iMasuk) + iKeluar; if (iLama > 2) iBiaya = 2000 + ((iLama - 2)*500); else iBiaya = 2000; printf("\n\n Biaya parkir adalah : Rp %d \n", iBiaya); system("PAUSE"); return 0;}

Page 7: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

Algoritma:

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 7

Algoritma Menghitung_Resistor

KAMUS DATA iPilihan: Integer fR1, fR2, fR3, fResPengganti: Float

BEGIN Input(fR1,fR2,fR3) Input(iPilihan)

Case iPilihan 1: fResPengganti fR1+ fR2+ fR3 2: fResPengganti (1.0/fR1)+ (1.0/fR2)+ (1.0/fR3) fResPengganti 1.0/fResPengganti Otherwise: output(“pilihan salah”) End Case Output(fResPengganti) END

Page 8: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

Program:

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 8

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

/*Resistor Pengganti. Modul Praktikum Poltek. hal 27*/

int main(){ int iPilihan; float fR1, fR2, fR3; float fResPengganti; printf("Menghitung Resistor Pengganti"); printf("\n\nMasukkan Nilai R1: "); scanf("%f",&fR1); printf("\nMasukkan Nilai R2: "); scanf("%f",&fR2); printf("\nMasukkan Nilai R3: "); scanf("%f",&fR3); printf(" \n\nPenyusunan Resistor: "); printf("\n 1.Seri"); printf("\n 2.Paralel"); printf("\nMasukkan pilihan penyusunan (1 atau 2): "); scanf("%d",&iPilihan);

switch (iPilihan) { case 1: fResPengganti = fR1+ fR2+ fR3; break; case 2: fResPengganti = (1.0/fR1)+ (1.0/fR2)+ (1.0/fR3); fResPengganti = 1.0/fResPengganti; break; default: printf("inputan salah"); } printf("\n\nBesar resistor pengganti adalah : %.2f \n", fResPengganti); system("PAUSE"); return 0;}

Page 9: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

4. Soal: Harga barang

Buatlah program untuk menyelesaikan masalah berikut :Program akan menerima masukan berupa kode, jenis dan harga, dengan jenis adalah "A", "B", dan "C". Untuk setiap jenis, masing-masing akan diberikan diskon sebesar 10% untuk A, 15% untuk B, dan 20% untuk C. Program akan menghitung berapa harga setelah didiskon.Contoh masukan :Jenis = Bkode = 10harga = 10000Contoh keluaran :Jenis barang B mendapat diskon = 15%, Harga setelah didiskon = 8500

Algoritma:

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 9

Algoritma Menghitung_Barang

KAMUS DATAiKode,iHarga:integercJenis: character

BEGIN Input(cJenis) Input(iKode) Input(iHarga)

Case(cJenis) 'A': iHDiskon 0,9 * iHarga

'B': iHDiskon 0,85 * iHarga 'C': iHDiskon 0,8 * iHarga End Case

output(iHDiskon)END

Page 10: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

Program:

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 10

#include <stdio.h>#include <stdlib.h>#include <conio.h>

int main(){ int iKode,iDiskon; char cJenis; long int iHarga, iHDiskon; printf(" Jenis : "); scanf("%c",&cJenis);

printf(" Kode : "); scanf("%d",&iKode); printf(" Harga : "); scanf("%d",&iHarga); switch (cJenis) { case 'A': iDiskon=10; iHDiskon = 0.9 * iHarga; break; case 'B': iDiskon=15; iHDiskon = 0.85 * iHarga; break; case 'C': iDiskon=20; iHDiskon = 0.8 * iHarga; break; default: printf("inputan salah"); } printf("\n\n Jenis barang %c mendapat diskon %d %%, Harga setelah didiskon : Rp %d \n", cJenis, iDiskon, iHDiskon);

system("PAUSE"); return 0;}

Page 11: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

5. Soal: Gaji karyawan mingguan

Sebuah perusahaan swasta menggaji karyawannya secara mingguan dengan hitungan sebagai berikut :

golongan 1 dengan upah per jam 3.000 rupiahgolongan 2 dengan upah per jam 3.500 rupiahgolongan 3 dengan upah per jam 4.000 rupiahgolongan 4 dengan upah per jam 5.000 rupiah

Bila seorang karyawan bekerja kurang atau sama dengan 40 jam per minggu, akan dihitung dengan upah per jam seperti di atas, tetapi apabila bekerja lebih dari 40 jam, maka lebihnya akan dihitung sebagai lembur dengan upah per jam 1½ kali upah biasa.Tulis algoritma untuk menghitung gaji mingguan karyawan, bila golongan dan jam kerja diinput dari keyboard.

Algoritma:

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 11

Algoritma Menghitung_Gaji

KAMUS DATA iGol, iJam, iUpah, iGaji : Integer

BEGIN Input(iGol) Input(iJam)

iUpah 0 Case(iGol) 1: iUpah 3000 2: iUpah 3500 3: iUpah 4000 4: iUpah 5000 End case If (iJam > 40) Then iGaji 40 * iUpah + ((iJam - 40) * 1.5 * iUpah) Else iGaji iJam * iUpah End if Output(iGaji)

END

Page 12: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

Program:

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 12

#include <stdio.h>#include <stdlib.h>#include <conio.h>

int main(){ int iGol,iJam, iUpah; int iGaji; iUpah=0; printf(" Jumlah Jam Kerja : "); scanf("%d",&iJam); printf(" Golongan(1,2,3,4) : "); scanf("%d",&iGol); switch (iGol) { case 1: iUpah=3000; break; case 2: iUpah=3500; break; case 3: iUpah=4000; break; case 4: iUpah=5000; break; default: printf("inputan golongan salah"); } if (iJam > 40) iGaji = 40 * iUpah + ((iJam - 40) * 1.5 * iUpah); else iGaji = iJam * iUpah; printf("\n\n Gaji : Rp %d \n", iGaji);

system("PAUSE"); return 0;}

Page 13: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

6. Soal: Menghitung selisih waktu dalam jam dan menit

Buat program menghitung selisih waktu (dalam jam dan menit) berdasarkan jam mulai (jam,menit) dengan jam selesai (jam,menit). Data yang diinput adalah jam dan menit mulai, jam dan menit selesai.

Contoh Masukan dan Keluaran:

Mulai (jam,menit)

Selesai (jam,menit)

Lama (menit) Lama (jam,menit)

10:30 12:10 100 1 jam 40 menit

10:30 1:40 130 3 jam 10 menit

Algoritma:

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 13

ALGORITMA MENGHITUNG_JAM_MENIT

KAMUS DATAiJamStart,iMenitStart,iMenitStop,iJamStop: integeriTotMenit1,iTotMenit2,iSelangMenit,iJamDurasi,iMenitDurasi: integer

BEGIN Input(iJamStart) Input(iMenitStart) Input(iJamStop) Input(iMenitStop) iTotMenit1 iJamStart * 60 + iMenitStart iTotMenit2 iJamStop * 60 + iMenitStop If (iTotMenit2 >= iTotMenit1) Then iSelangMenit iTotMenit2 - iTotMenit1 Else iSelangMenit ((12*60)-iTotMenit1) + iTotMenit2 End if iJamDurasi iSelangMenit div 60 iMenitDurasi iSelangMenit mod 60; Output(iJamDurasi) Output(iMenitDurasi)

END

Page 14: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

Program:

7. Soal: Kuadran dari koordinat titik

Buat program dengan masukan koordinat sebuah titik (x,y) dalam sebuah system koordinat kartesian, kemudian ditentukan di kuadran mana titik tersebut.

Contoh Masukan :Koordinat titik (x,y) : 10 -20

Contoh keluaran:Titik 10,-20 berada pada kuadran 4

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 14

#include <stdio.h>#include <stdlib.h>#include <conio.h>

int main(){ int iJamStart,iMenitStart,iJamStop,iMenitStop,iSelangMenit, iJamDurasi, iMenitDurasi ; long int iTotMenit1, iTotMenit2; printf(" Masukkan Waktu Mulai (contoh 10:05) : "); scanf("%d:%d",&iJamStart,&iMenitStart); printf(" Masukkan Waktu Berhenti (contoh 11:04) : "); scanf("%d:%d",&iJamStop,&iMenitStop); iTotMenit1 = iJamStart * 60 + iMenitStart; iTotMenit2 = iJamStop * 60 + iMenitStop; if (iTotMenit2 >= iTotMenit1) iSelangMenit = iTotMenit2 - iTotMenit1; else iSelangMenit = ((12*60)-iTotMenit1)+iTotMenit2; iJamDurasi = iSelangMenit / 60; iMenitDurasi = iSelangMenit % 60; printf("\n\n Durasi adalah %d Jam %d Menit\n", iJamDurasi, iMenitDurasi);

system("PAUSE"); return 0;}

Page 15: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

Algoritma:

Program:

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 15

ALGORITMA Menghitung_Kuadran

KAMUS DATA ix, iy: Integer

BEGIN Input(ix,iy)

If (ix >= 0) If (iy >=0) Output(“Kuadran I”) else Output(“Kuadran IV”) else if (iy >=0)

Output(“Kuadran II”) else Output(“Kuadran III”)END

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

int main(){ int ix, iy; printf(" Masukkan koordinat x,y : "); scanf("%d,%d",&ix,&iy);

if (ix >= 0) if (iy >=0) printf("\nKuadran I\n"); else printf("\nKuadran IV\n"); else if (iy >=0) printf("\nKuadran II\n"); else printf("\nKuadran III\n"); system("PAUSE"); return 0;}

Page 16: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

8. Soal: Tunjangan Anak

Pemerintah hanya memberikan tunjangan anak dari PNS maksimal sampai 3 anak saja. Setiap anak diberikan tunjangan sebesar 10% dari gaji pokok.

Tulis program untuk menghitung total tunjangan anak, bila gaji pokok dan jumlah anak diinput oleh user.

Contoh Masukan dan Keluaran:

Jumlah anak

Gaji Pokok Tunjangan Anak

0 1.000.000 0

1 1.000.000 100.000

3 1.000.000 300.000

5 1.000.000 300.000

Algoritma:

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 16

ALGORITMA Menghitung_Tunjangan

KAMUS DATA iGajiPokok, iTunjangan, iJmlAnak: Integer

BEGIN

Input(iGajiPokok) Input(iJmlAnak) If (iJmlAnak <= 3 && iJmlAnak > 0) Then iTunjangan iJmlAnak * 0.1 * iGajiPokok Else If (iJmlAnak > 3) iTunjangan 3 * 0.1 * iGajiPokok Else iTunjangan 0 End if Output ( iTunjangan)

END

Page 17: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

Program:

9. Soal: Minibus pariwisata

Sebuah acara wisata digunakan minibus kapasitas 7 penumpang per mobil. Apabila terjadi kelebihan penumpang (walaupun cuma 1), maka minibus yang digunakan ditambah 1. Tulis program untuk menghitung jumlah minibus yang diperlukan, bila jumlah pesertanya diinput.

Contoh Masukan dan Keluaran:

Jumlah Peserta Jumlah Minibus

5 1

7 1

8 2

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 17

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

int main(){ int iGajiPokok, iTunjangan, iJmlAnak; printf(" Masukkan Gaji Pokok : "); scanf("%d",&iGajiPokok); printf(" Masukkan JmlAnak : "); scanf("%d",&iJmlAnak); if (iJmlAnak<=3 && iJmlAnak>0) iTunjangan = iJmlAnak * 0.1 * iGajiPokok; else if (iJmlAnak>3) iTunjangan = 3 * 0.1 * iGajiPokok; else iTunjangan =0; printf("\nTunjangan Anak adalah sebesar Rp.%d \n", iTunjangan); system("PAUSE"); return 0;}

Page 18: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

Algoritma:

Program:

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 18

ALGORITMA Menghitung_Tunjangan

KAMUS DATA iPeserta,iMinibus : Integer

BEGIN Output(iPeserta) iMinibus0 If (iPeserta > 7) Then iMinibus iPeserta / 7 If (iPeserta % 7 != 0) Then iMinibus iMinibus + 1 End If Else if (iPeserta > 0) Then iMinibus 1 End if Output(iMinibus)

END

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

int main(){ int iPeserta,iMinibus; printf(" Masukkan jml peserta : "); scanf("%d",&iPeserta); iMinibus=0; if (iPeserta > 7){ iMinibus = iPeserta / 7; if (iPeserta % 7 != 0) iMinibus++; }else if (iPeserta > 0) iMinibus=1; printf("Minibus yg diperlukan: %d\n",iMinibus); system("PAUSE"); return 0;}

Page 19: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

10. Soal: Menentukan N hari yang lalu tanpa menginputkan Hari Ini

Diinput jumlah berapa hari yang lalu, kemudian ditentukan nama harinya. Tulis program untuk menentukan nama hari dari sekian hari yang lalu yang diinput. (Catatan, gunakan Hari ini = ‘Senin’)

Contoh Masukan dan Keluaran:

N hari yang lalu Nama Hari

0 Senin

1 Minggu

10 Jumat

20 Selasa

Algoritma:

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 19

ALGORITMA Menentukan_Nama_Hari_1

KAMUS DATA iNHari,iBelakang : Integer cNamaHari[15]: String BEGIN Input(iNHari) iBelakang ( iNHari + 1) Case (iBelakang) 1: cNamaHari "Senin" 2: cNamaHari "Selasa" 3: cNamaHari "Rabu" 4: cNamaHari "Kamis" 5: cNamaHari "Jumat" 6: cNamaHari "Sabtu" 7: cNamaHari "Minggu" Otherwise: cNamaHari "Inputan salah" End Case Output(cNamaHari)

END

Page 20: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

Program:

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 20

#include <stdio.h>#include <stdlib.h>#include <string.h>

int main(){ int iNHari,iBelakang; char cNamaHari[15]; printf("Masukkan N Hari yg lalu : "); scanf("%d",&iNHari); iBelakang = (iNHari+1) ; switch (iBelakang){ case 1: strcpy(cNamaHari,"Senin"); break; case 2: strcpy(cNamaHari,"minggu"); break; case 3: strcpy(cNamaHari,"sabtu"); break; case 4: strcpy(cNamaHari,"jumat"); break; case 5: strcpy(cNamaHari,"kamis"); break; case 6: strcpy(cNamaHari,"rabu"); break; case 7: strcpy(cNamaHari,"selasa"); break; default: strcpy(cNamaHari,"Inputan salah"); } printf("\n Sekarang Hari Senin. %d Hari yang lalu adalah hari %s \n",iNHari,cNamaHari); system("PAUSE"); return 0;}

Page 21: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

11. Soal: Menentukan N hari yang lalu dengan menginputkan Hari Ini

Diinput jumlah berapa hari yang lalu, kemudian ditentukan nama harinya. Tulis program untuk menentukan nama hari dari sekian hari yang lalu dan nomor hari ini yang diinput.

Contoh Masukan dan Keluaran:

N hari yang lalu Hari ini Nama Hari

0 1 Senin

3 3 Minggu

5 4 Sabtu

Algoritma:

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 21

ALGORITMA Menghitung_Hari

KAMUS DATA iNHari,iHariIni,iBelakang : Integer cNamaHari[15] : String cNamaHariLalu: Char

BEGIN Input(iHariIni) Input(iNHari) If (iHariIni>iNHari) Then iBelakang iHariIni - iNHari Else iBelakang 7 - (iNHari - iHariIni) End If Case (iBelakang) 1: cNamaHari "Senin" 2: cNamaHari "Selasa" 3: cNamaHari "Rabu" 4: cNamaHari "Kamis" 5: cNamaHari "Jumat" 6: cNamaHari "Sabtu" 7: cNamaHari "Minggu" End Case Output(cNamaHari)END

Page 22: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

Program:

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 22

#include <stdio.h>#include <stdlib.h>#include <string.h>

int main(){ int iNHari,iHariIni,iBelakang; char cNamaHari[15],cNamaHariLalu; printf("Masukkan Kode Hari ini : "); scanf("%d",&iHariIni); printf("Masukkan N Hari yg lalu : "); scanf("%d",&iNHari); if (iHariIni>iNHari) iBelakang = iHariIni - iNHari; else iBelakang= 7 - (iNHari - iHariIni); switch (iBelakang){ case 1: strcpy(cNamaHari,"Senin"); break; case 2: strcpy(cNamaHari,"Selasa");

break; case 3: strcpy(cNamaHari,"Rabu");

break; case 4: strcpy(cNamaHari,"Kamis"); break; case 5: strcpy(cNamaHari,"Jumat"); break; case 6: strcpy(cNamaHari,"Sabtu"); break; case 7: strcpy(cNamaHari,"Minggu"); break; default: strcpy(cNamaHari,"Inputan salah"); } printf("\n %d Hari yang lalu adalah hari %s \n",iNHari,cNamaHari); system("PAUSE"); return 0;}

Page 23: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

12.Soal: Penghitungan Pembayaran Listrik

PLN menerapkan pembayaran listrik perumahan dengan cara perhitungan sebagai berikut :- Untuk golongan 1 tarif : Rp 1000/kWh- Untuk golongan 2 tarif : Rp 2000/kWh

Dengan syarat penghitungan:Minimum pembayaran adalah 100 kWh sedangkan untuk pemakaian 1000 kWh dan seterusnya tarifnya ditambah 10% dari total pembayaran.

Golongan Pemakaian Bayar1 50 100.0002 150 300.0001 1000 1.100.000

ALGORITMA Menghitung_Pembayaran_Listrik

KAMUS DATAiGol,iPakai,iTarif,iBayar : Integer

BEGIN Input(iGol)Input(iPakai)

If ( iGol = 1) TheniTarif 1000

ElseiTarif 2000

End If

If (iPakai < 100) TheniBayar 100 * iTarif

Else If ( iPakai >= 1000)iBayar iPakai * iTarif * 1.1

ElseiBayar iPakai * iTarif

End If

Output(iBayar)END

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 23

Page 24: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

SOURCE CODE:

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

int main(){ int iGol,iPakai,iTarif,iBayar; printf("masukkan golongan: ");scanf("%d",&iGol); printf("masukkan jam pemakaian: ");scanf("%d",&iPakai); if (iGol == 1 ) {iTarif=1000;} else {iTarif=2000;}

if (iPakai < 100) {iBayar=100*iTarif;} else if (iPakai >= 1000) {iBayar=iPakai*iTarif*1.1;} else {iBayar=iPakai * iTarif;}

printf("\n yg harus dibayarkan %d\n",iBayar); system("PAUSE"); return 0;}

13.Soal: Penghitungan Bulan

Buatlah algoritma untuk menghitung bulan pernikahan dengan menginputkan bulan saat ini dan berapa bulan kedepan. Misal data:

Bulan Saat Ini N Bulan Kedepan Bulan Pernikahan1 2 312 1 110 5 3

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 24

Page 25: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

ALGORITMA Menghitung_Bulan_Pernikahan

KAMUS DATAiBlnSekarang, iNbulan, iBlnPernikahan : Integer

BEGINInput (iBlnSekarang)Input (iNBulan)

If ( (iBlnSekarang + iNbulan) <= 12 ) TheniBlnPernikahan iBlnSekarang + iNbulan

ElseiBlnPernikahan (iBlnSekarang + iNbulan) mod 12

End If

Output (iBlnPernikahan)

END

SOURCE CODE:#include <stdio.h>#include <stdlib.h>

int main(){ int iBlnSekarang, iNbulan, iBlnPernikahan; printf("masukkan Bulan Sekarang: "); scanf("%d",&iBlnSekarang); printf("masukkan N Bulan Kedepan: "); scanf("%d",&iNbulan);

if ( (iBlnSekarang + iNbulan) <= 12 ){iBlnPernikahan=iBlnSekarang + iNbulan;}

else{iBlnPernikahan=(iBlnSekarang + iNbulan) % 12;}

printf("\n Bulan Pernikahan adalaha bulan ke-%d\n",iBlnPernikahan);

system("PAUSE"); return 0;}

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 25

Page 26: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

14. Soal: Deret Ganjil

Buatlah sebuah program untuk menampilkan bilangan ganjil antara 1-20 dengan menggunakan struktur while.

ALGORITMA Menampilkan_deret_ganjil

KAMUS DATAi : Integer

BEGIN i 1

While (i <= 20) Output(i) i i + 2 End WhileEND

SOURCE CODE:#include <stdio.h>#include <stdlib.h>

int main(){ int i=1;

while(i<=20){ printf("%d ",i); i=i+2; } system("PAUSE"); return 0;}

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 26

Page 27: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

15.Soal: Menampilkan bilangan kelipatan 3

Buatlah sebuah program untuk menampilkan bilangan kelipatan 3, dengan range berupa inputan dari user. Gunakan struktur do…while

Contoh inputan : Awal : 1Akhir : 10Kelipatan 3 : 3 6 9Awal : 15Akhir : 30Kelipatan 3 : 15 18 21 24 27 30

ALGORITMA Kelipatan_Tiga

KAMUS DATAi : Integer

BEGIN Input(i) {awalan} Input(j) {akhiran} Do If (i mod 3 = 0) Then Output(i)

End If i i+1 While (i <= j)

END

SOURCE CODE:#include <stdio.h>#include <stdlib.h>

int main(){ int i,j,k;

printf("awal : "); scanf("%d",&i); printf("akhir : "); scanf("%d",&j);

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 27

Page 28: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

do{ if (i % 3 == 0) printf(" %d ",i); i=i+1; }while(i<=j); system("PAUSE"); return 0;}

16.Soal: menghitung sederet bilangan

Buatlah program pengulangan untuk menghitung jumlah sederet bilangan berurut yang dimulai dari 1 hingga bilangan inputan. Contoh:

INPUT : 7PROSES : 1+2+3+4+5+6+7OUTPUT : 28

ALGORITMA Menghitung_sederet_bilangan

KAMUS DATAi,j,k : Integer

BEGIN k 0 Output("Input : ") Input(i)

Output("Proses : ") j 1; While (j <= i) Output(j) If (j <> i) Then Output(" + ") End If k k+j j j + 1 End While Output(k) END

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 28

Page 29: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

SOURCE CODE:#include <stdio.h>#include <stdlib.h>

int main(){ int i,j,k=0; printf("Input : "); scanf("%d",&i);

printf("Proses : "); j = 1; while(j <= i) { printf("%d",j); if (j != i) printf(" + "); k=k+j; j = j + 1; } printf(" = %d\n",k); system("PAUSE"); return 0;}

17.Soal: Segitiga

Buatlah program pengulangan bersarang dengan sintaks FOR untuk menampilkan output sebagai berikut:

Masukkan angka: 4**********

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 29

Page 30: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

ALGORITMA Menampilkan_Segitiga

KAMUS DATAi,j,k : Integer

BEGIN Input(k)

For (i 1; i <= k ; i++) For(j 1 ; j<=i ; j++) Output("*") End For Output("\n") End ForEND

SOURCE CODE:#include <stdio.h>#include <stdlib.h>

int main(){ int i,j,k;

printf("masukkan angka : "); scanf("%d",&k);

for (i=1;i<=k;i++){ for(j=1; j<=i; j++){ printf("*"); } printf("\n"); } system("PAUSE"); return 0;}

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 30

Page 31: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

18.Soal: Faktorial

Buatlah program untuk menghitung nilai faktorial suatu bilangan yang diinputkan oleh user.Rumus faktorial adalah sebagai berikut :

n! = n*(n-1)*(n-2)*…*(n-(n-1))

n merupakan inputan dari user.

Boleh menggunakan struktur pengulangan manapun.

Contoh inputan

Faktorial dari : 3

3! = 3*2*1=6

Faktorial dari : 5

5! = 5*4*3*2*1 = 120

ALGORITMA Faktorial

KAMUS DATAi,j,k : Integer

BEGIN k 1 Input(i)

While(i >= 1) k k*i i i - 1 End While

Output(k) END

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 31

Page 32: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

SOURCE CODE:#include <stdio.h>#include <stdlib.h>

int main(){ int i,j,k=1; printf("faktorial dari : "); scanf("%d",&i); printf("\n!%d = ",i); while(i >= 1) { printf("%d",i); if (i != 1) printf(" * "); k=k*i; i = i - 1; }

printf(" = %d\n",k); system("PAUSE"); return 0;}

19.Soal: Gaji Karyawan

Buatlah sebuah program untuk menghitung gaji n karyawan, n merupakan sebuah bilangan bulat yang akan diinputkan oleh user, kemudian akan dihitung gaji perkaryawan dengan ketentuan sebagai berikut :Gaji per jam : Rp 10.000,-Bila jam kerja > 7 jam, maka sisa jam kerja dihitung sebagai lembur yg besarnya 1.5 * gaji per jamKemudian ditampilkan total gaji karyawan yang harus dibayarkan oleh perusahaan.Jumlah jam kerja tiap karyawan akan diinputkan oleh userContoh inputanJumlah karyawan : 3 [inputan user]Jam kerja karyawan 1 : 8 [inputan user]Total Gaji : 85000Jam kerja karyawan 2 : 6 [inputan user]Total Gaji : 60000Jam kerja karyawan 3 : 12 [inputan user]Total Gaji : 145000

Total Gaji karyawan : 290000

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 32

Page 33: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

ALGORITMA Faktorial

KAMUS DATAi,j,k : Integer

BEGIN iTotalGaji 0 input(iKaryawan)

For (i1 ; i <= iKaryawan ; i++)

Output("jam kerja karyawan: ") Input(iJam)

If (iJam > 7) Then iLembur iJam - 7 iGaji 7 * 10000 + iLembur * 1.5 * 10000 Else iGaji = iJam * 10000 End If

Output(iGaji) iTotalGaji iTotalGaji + iGaji

End For

Output(iTotalGaji) END

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 33

Page 34: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

SOURCE CODE:#include <stdio.h>#include <stdlib.h>

int main(){ int i,iKaryawan,iJam,iLembur,iGaji,iTotalGaji=0; printf("jml karyawan: "); scanf("%d",&iKaryawan);

for (i=1;i<=iKaryawan;i++){ printf("\njam kerja karyawan %d: ",i); scanf("%d",&iJam); if (iJam > 7){ iLembur = iJam - 7; iGaji = 7 * 10000 + iLembur * 1.5 * 10000; }else{ iGaji = iJam * 10000 ; } printf("Gaji karyawan %d \n",iGaji); iTotalGaji = iTotalGaji + iGaji; } printf("\nGaji karyawan %d: ",iTotalGaji); system("PAUSE"); return 0;}

20.Buatlah program untuk menampilkan angka seperti berikut :

Contoh inputan :

Jumlah angka : 51 5 2 4 3 2 4 1 5Jumlah angka : 61 6 2 5 34

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 34

Page 35: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

34 2 5 1 6Jumlah angka : 91 9 2 8 3 7 4 6 5 4 6 3 7 2 8 1 9

ALGORITMA Bintang_x

KAMUS DATAi,j,k,l,m : Integer

BEGIN Output("mmasukkan angka : ") Input(k) l 1 m k;

For (i 1; i<=k ; i++) For (j 1 ; j<=k ; j++) If (i = j or j = m) Then Output(j) Else Output(" ") End If End For Output("\n") m-- End For

END

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 35

Page 36: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

SOURCE CODE:#include <stdio.h>#include <stdlib.h>#include <conio.h>

int main(){ int i,j,k,l,m;

printf("mmasukkan angka : "); scanf("%d",&k); l=1; m=k;

for (i=1;i<=k;i++){ for(j=1; j<=k; j++){ if (i==j or j==m) printf("%d",j); else printf(" "); } printf("\n"); m-- ; }

system("cls"); system("PAUSE"); return 0;}

21.Soal: Bintang KetupatBuatlah program untuk menampilkan bintang berbentuk belah ketupat seperti berikut :Contoh inputan :

Jumlah bintang : 5 * * * * * * * *Jumlah bintang : 6 **

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 36

Page 37: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

* * * ** * * * **Jumlah bintang : 9 * * * * * * * * * * * * * * * *

ALGORITMA Bintang_Ketupat

KAMUS DATAi,j,k,l,m,input,tengah : Integer

BEGIN m 0

Output("masukkan angka: ") Output(input)

k input / 2 l input % 2 tengah k + l For (i 1; i<=input; i++) For(m 0; m<=tengah; m++) If (i=m+1 || i=input-m) For(j1; j<=input; j++) If (l) Then If (j = tengah-m || j = tengah+m) Then Output(*) Else Output(" ") End If Else If (j = tengah-m || j = tengah+m+1) Then Output (*) Else Output (" ")

End If End If End For

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 37

Page 38: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

End If End For Output("\n") End ForEND

SOURCE CODE:#include <stdio.h>#include <stdlib.h>

int main(){ int i,j, k, l,m=0,input,tengah;

printf("masukkan angkaa: "); scanf("%d",&input);

k=input / 2; l=input % 2;

tengah=k+l; for (i=1;i<=input;i++){ for(m=0;m<=tengah;m++){ if(i==m+1 || i==input-m){ for(j=1; j<=input; j++){ if(l){ if (j==tengah-m || j==tengah+m) printf("*"); else printf(" "); }else{ if (j==tengah-m || j==tengah+m+1) printf("*"); else printf(" "); } } } } printf("\n"); }

system("PAUSE"); return 0;}

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 38

Page 39: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

22.Soal: Buatlah algoritma yang menginputkan 4 bilangan yang merupakan nilai ujian mahasiswa, serta mencetak nilai tertinggi yang didapat mahasiswa.

ALGORITMA Input_nilai1

KAMUS DATA N, Max, i : Integer

BEGIN Input(N)

Max N

i 2While ( i <= 4)

Input(N)If (N > Max) Then Max N End Ifi++

End While

Output(i)END

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 39

Page 40: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

23.Soal: Buatlah algoritma yang menginputkan 7 bilangan yang merupakan nilai ujian mahasiswa, mencetak nilai tertinggi yang didapat mahasiswa dan juga mencetak berapa orang yang mendapat nilai tertinggi tersebut.

Misal bilangan yg diinput: 72 80 80 92 95 87 95Nilai Tertinggi: 95Jumlah: 2

ALGORITMA Nilai2KAMUS DATA N, Max, i, Jumlah : Integer

BEGIN Input(N)

Max N

i 2While ( i <= 7)

Input(N)If (N > Max) Then Max N Jumlah 1Else if ( N = Max ) Jumlah++ End Ifi++

End While

Output(Max)Output(Jumlah)

END

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 40

Page 41: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

24.Soal: Buatlah algoritma yang menginputkan 10 bilangan yang merupakan nilai ujian mahasiswa, kemudian mencetak nilai tertinggi dan nilai terendahnya.

ALGORITMA Input_nilai3KAMUS DATA

N, Max, Min, i : Integer BEGIN

Input(N)Max NMin N

i 2While (i <= 10)

Input(N)

If (N > Max) ThenMax N

Else If (N < Min)Min N

End If

i++End While

Output(Max)Output(Min)

END

25.Soal: Buatlah algoritma yang menginputkan sebuah bilangan bulat yang merupakan nilai ujian. Apabila nilai yang diinput < 0 atau > 100 maka ulangi menginput data. Bila nilainya berada dalam batas 0-100, maka periksa nilai tersebut. Bila nilainya >= 60 maka cetak perkataan “LULUS”, selainnya cetak perkataan “COBA LAGI TAHUN DEPAN”.

ALGORITMA Input_nilai4KAMUS DATA

nilai : IntegerBEGIN

nilai -1While ( nilai < 0 Or nilai > 100)

Output(“Masukkan nilai Ujian (0-100):”)Input(nilai)

End While

If (nilai >= 60) Then

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 41

Page 42: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

Output(“LULUS”)Else

Output(“Coba Lagi Tahun Depan”)End If

END26.Soal: Buatlah algoritma yang menginputkan sebuah bilangan bulat yang

merupakan nilai ujian. Apabila nilai yang diinput < 0 atau > 100 maka cetak perkataan “Data salah, silahkan ulangi lagi” dan ulangi menginput data. Bila nilainya >= 60 maka cetak perkataan “LULUS”, selainnya cetak perkataan “COBA LAGI TAHUN DEPAN”. Gunakan format Do While

ALGORITMA Input_nilai5KAMUS DATA

nilai: integerBEGIN

DoOutput(“Masukkan nilai (0-100):”)Input(nilai) If (nilai<0 Or nilai>100)

Output(“Data salah, silahkan ulangi lagi”)End If

While(nilai<0 Or nilai>100)

If (nilai>=60) ThenOutput(“LULUS”)

ElseOutput(“Coba lagi tahun depan”)

End IfEND

27.Soal: Dalam lembar dokumen tersedia banyak sekali data berupa bilangan-bilangan integer. Susun algoritma untuk menginput data-data tersebut dan menjumlahkannya. Kondisi berhenti adalah ketika jumlah dari data tersebut sudah melebihi 1000. Cetak berapa banyak bilangan yang diinputkan.Cth:Data Input: 300, 300, 500Output: 3

Data Input: 200, 400, 100, 200,100,1Output: 6

ALGORITMA Input_jumlahKAMUS DATA

nilai,i,jumlah : integerBEGIN

jumlah 0i 0While ( jumlah <= 1000)

Output(“Input Nilai”)

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 42

Page 43: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

Input(nilai)jumlah jumlah + nilaii++

End WhileOutput(i)

END28.Soal: Buat algoritma untuk menghitung rata-rata nilai mahasiswa. Berapa

banyak nilai mahasiswa tidak diketahui. Kondisi berhenti adalah ketika diinputkan nilai 999 yang pasti bukan merupakan nilai ujian.Misal data yang ada: 60, 50, 999, 65, 75, 999Maka rata-ratanya: (60+50+70+65+75) / 5 = 64Note: data bisa berupa n bilangan (n tidak diketahui)

ALGORITMA Rata_rataKAMUS DATA

nilai, jumlah, banyak, ratarata : IntegerBEGIN

banyak 0jumlah 0Input(nilai)

While (nilai <> 999)jumlah jumlah + nilaibanyak++Input(nilai)

End While

ratarata jumlah/banyakOutput(ratarata)

END

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 43

Page 44: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

29.Buatlah algoritma yang menentukan apakah sebuah bilangan genap atau ganjil. Bilangan diinputkan oleh user. Jika genap maka cetak perkataan “Even”, jika ganjil maka cetak perkataan “Odd”. Susun algoritma pengecekan genap atau ganjil ini tidak menggunakan Mod tetapi menggunakan loop

ALGORITMA Genapganjil_loopKAMUS DATA

nilai,BEGIN

Output(“Inputkan sebuah nilai: ”)Input(nilai)

While (nilai > 0)nilai nilai - 2

End While

If (nilai = 0)output(“Even”)

Elseoutput(“Odd”)

End IfEND

30.Buat algoritma yang inputannya sebuah bilangan. Kemudian menentukan apakah bilangan tersebut adalah bilangan prima atau bukan.

ALGORITMA cekprimaKAMUS DATA

nilai, x, batasatas, penanda: IntegerBEGIN

Input(nilai)x 2batasatas nilai – 1penanda 0

While (penanda = 0 And x <= batasatas)If (nilai Mod x = 0) Then

penanda 1End Ifx x+1

END WHILE

If (penanda = 0) Then

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 44

Page 45: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

Output(“prima”)Else

Output(“bukan prima”)End If

END

31.Buat Algoritma yang menginput sebuah bilangan bulat yang menyatakan waktu dalam detik. Kemudian konversikan dan cetak waktu itu dalam satuan Jam, Menit, Detik. Cth:Input: 7405Output: 2 Jam, 3 Menit, 25 Detik

Note:Gunakan mekanisme loop untuk menentukan jam dan menit. Untuk mendapatkan jam kurangi terus menerus detik dengan 3600, sampai nilainya < 3600. Setiap detik dikurangi 3600 maka Jam bertambah 1. Untuk mendapatkan menit kurangi terus detik dengan 60, sampai nilainya < 60. Setiap detik dikurangi 60 menitnya ditambah 1.

ALGORITMA UbahDetikKAMUS DATA

J, M, D: IntegerBEGIN

Input(D)J 0M 0

While (D >= 3600)D D – 3600J ++

End While

While (D >= 60)D D – 60M++

End While

Output(J,M,D)END

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 45

Page 46: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

32.Buat algoritma yang menampilkan deret: 1 2 3 5 8 13 21....

ALGORITMA BuatDeretKAMUS DATA

J, M, D: IntegerBEGIN

a1b1i1Input(banyak)Output(b)While ( i < banyak)

c a + bOutput(c)a bb ci++

End WhileEnd

33.Dalam sebuah kandang ada 1000 bebek. Setiap akhir bulan bebek tersebut serempak melahirkan satu bebek baru. Namun sebelum melahirkan, 20% dari bebek tersebut mati. Susun program untuk menghitung dan mencetak jumlah bebek setelah 10 bulan.

ALGORITMA HitungBebekKAMUS DATA

I, M, T : IntegerBEGIN

T1000I1

While ( I <= 10)M T * 0.2T T – MT T * 2I++

End While

Output(T)End

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 46

Page 47: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

34.Sebuah truk bergerak dari Kota Malang ke Pulau Sempu. Pada Km pertama ia menghabiskan 10kg bahan bakar. Pada Km ke 2 ia menghabiskan 8kg bahan bakar (atau 80% dibanding Km pertama). Demikian seterusnya setiap Km sebelumnya. Susun algoritma untuk menghitung dan mencetak total bahan bakar yang dihabiskan setelah mencapai 100km.

ALGORITMA HitungBahanBakarKAMUS DATA

i: Integern,t: Float

BEGINt0n10i1

While ( i <= 100)t t + nn n*0.8i++

End WhileOutput(t)

End

35.Seseorang menyimpan uang 1.000.000 di bank dengan bunga 2% perbulan. Jadi setelah satu bulan uangnya menjadi 1.020.000. satu bulan berikutnya uang 1.020.000 ini mendapat bunga lagi 2% sehingga setelah 2 bulan uangnya menjadi 1.020.000 + 20.400 = 1.040.400. Buat algoritma untuk menghitung dan mencetak jumlah uang setelah 10bulan.

ALGORITMA HitungBunga1KAMUS DATA

u, b: Floati: Integer

BEGINu1000000i1

While ( i <= 10)b U * 0.02u u + bi++

End While

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 47

Page 48: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

Output(u)End

36.Seseorang mengendarai mobil dengan kecepatan tetap. Tepat pukul 08:25:10 pagi kecepatannya masih tetap 5 m/detik. Tetapi sepuluh menit kemudian, kecepatannya dinaikkan 1 m/detik sehingga kecepatannya menjadi tetap 6 m/detik. Demikian 10 menit berikutnya kecepatannya selalu dinaikkan 1 m/detik. susun algoritma untuk menghitung jarak yang ditempuhnya sejak pukul 08:25:10 sampai jam tepat menunjukkan 10:00:00 pagi pada hari yang sama.

ALGORITMA HitungJarakKAMUS DATA

Jam1, Jam2, JumWaktu, Interval, SisaWaktu, V, TS, I: IntegerBEGIN

Jam1 8*3600 + 25*60 + 10Jam2 10*3600 JumWaktu Jam2 – Jam1Interval 10 * 60JumInterval JumWaktu Div IntervalSisaWaktu JumWaktu Mod Interval

V5TS 0I1

While ( I <= JumInterval)S Interval * VTS TS + SV V+1I++

End While

TS TS + (SisaWaktu * V)

Output(TS)End

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 48

Page 49: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

37.Ali berangkat dari titik A menuju titik B tepat pukul 08:00 dengan kecepatan tetap 5 m/detik. Badu juga berangkat dari titik A menuju titik B tepat pukul 09:00 dengan kecepatan tetap 8 m/detik. Buat algoritma untuk menghitung dan mencetak pada pukul berapa Ali dan Badu tepat berada pada titik yang sama dimana Badu mulai akan mendahului Ali.

ALGORITMA BalapanKAMUS DATA

JamBerangkatBadu,JarakAli,JarakBadu,JamBertemu: Integert, jam,menit,detik: Integer

BEGINJamBerangkatBadu 9*3600 t 1JarakBadu 0JarakAli 3600*5

While ( JarakBadu < JarakAli)JarakAli JarakAli + 5 JarakBadu JarakBadu + 8t++

End While

JamBertemu JamBerangkatBadu + t

jam JamBertemu Div 3600detik JamBertemu Mod 3600

menit detik Div 60detik detik Mod 60

Output(jam, menit,detik)End

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 49

Page 50: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

38.Ali berangkat dari titik A menuju titik B yang berjarak 100km dengan kecepatan tetap 10 m/detik. Tetapi setelah 10menit kemudian, kecepatannya menjadi 11 m/detik. Demikian setelah 10 menit berikutnya kecepatan konstan dengan lebih cepat 1 m/detik dibandingkan 10 menit sebelumnya. Buat algoritma yang menghitung dan mencetak berapa lama Ali menempuh perjalanan (dalam Jam, Menit dan Detik) dari titik A sampai titik B.

ALGORITMA BuatDeretKAMUS DATA

V, Detik, Jarak: IntegerBEGIN

V10Detik 0Jarak0

While ( Jarak < 100000)Detik++Jarak Jarak + VIf (Detik Mod 600 = 0) Then

V++End If

End While

Jam Detik Div 3600Detik Detik Mod 3600

Menit Detik Div 60Detik Detik Mod 60

Output(Jam, Menit, Detik)End

39.Jika user memasukkan angka 5 Apa Output dari algoritma berikut?

ALGORITMA loop1KAMUS DATA

I,j,n: IntegerBEGIN

Input(n)For (i 0 ; i<n ; i++)

For(j0; j<n; j++) Output(i+1)End For

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 50

Page 51: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

Output("\n\n") {ganti baris} End ForEnd

40.Jika user memasukkan angka 5 Apa Output dari algoritma berikut?

ALGORITMA loop2KAMUS DATA

I,j,n: IntegerBEGIN

Input(n)For (i 0 ; i<n ; i++)

For(j0; j<n; j++) Output(j+1)End For

Output("\n\n") {ganti baris} End ForEnd

41.Jika user memasukkan angka 4 Apa Output dari algoritma berikut?

ALGORITMA loop3KAMUS DATA

I,j,n: IntegerBEGIN

Input(n)For (i 0 ; i<n ; i++)

For(j0; j<n-i; j++) Output(i+1)End For

Output("\n\n") {ganti baris} End ForEnd

42.Jika user memasukkan angka 4 Apa Output dari algoritma berikut?

ALGORITMA loop4KAMUS DATA

I,j,n: IntegerBEGIN

Input(n)For (i 0 ; i<n ; i++)

For(j0; j<n-i; j++) Output(j+1)End For

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 51

Page 52: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

Output("\n\n") {ganti baris} End ForEnd

43.Jika user memasukkan angka 6 Apa Output dari algoritma berikut?

ALGORITMA loop5KAMUS DATA

I,j,n: IntegerBEGIN

Input(n)For (i 0 ; i<n ; i++)

For(j0; j < i+1; j++) Output(i+1)End For

Output("\n\n") {ganti baris} End ForEnd

44.Jika user memasukkan angka 6 Apa Output dari algoritma berikut?

ALGORITMA loop6KAMUS DATA

I,j,n: IntegerBEGIN

Input(n)For (i 0 ; i<n ; i++)

For(j0; j < i+1; j++) Output(j+1)End For

Output("\n\n") {ganti baris} End ForEnd

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 52

Page 53: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

45.Jika user memasukkan angka 5 Apa Output dari algoritma berikut?

ALGORITMA loop7KAMUS DATA

I,j,n: IntegerBEGIN

Input(n) For(i0; i<n; i++) For(j0; j<n; j++)

If ( (i = j) || (i+j = n-1) ) Then Output(i+1) Else Output(" ") End If

End For

Output("\n") End For

End

46.Jika user memasukkan angka 5 Apa Output dari algoritma berikut?

ALGORITMA loop8KAMUS DATA

I,j,n: IntegerBEGIN

Input(n) For(i0; i<n; i++) For(j0; j<n; j++)

If ( (i = j) || (i+j = n-1) ) Then Output(j+1) Else Output(" ") End If

End For

Output("\n") End For

End

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 53

Page 54: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

47.Jika user memasukkan angka 5 Apa Output dari algoritma berikut?

ALGORITMA loop9KAMUS DATA

I,j,n: IntegerBEGIN

Input(n) For(i0; i<n; i++) For(j0; j<n-1; j++)

If ( (i = j) || (i+j = n-1) ) Then Output(i+1) Else Output(" ") End If

End For

Output("\n") End For

End

48.Jika user memasukkan angka 5 Apa Output dari algoritma berikut?

ALGORITMA loop10KAMUS DATA

I,j,n: IntegerBEGIN

Input(n) For(i0; i<n; i++) For(j0; j<n-1; j++)

If ( (i=j) || (i+j = n-1) ) Then Output(j+1) Else Output(" ") End If

End For

Output("\n") End For

End

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 54

Page 55: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

49.Jika user memasukkan angka 4 Apa Output dari algoritma berikut?

ALGORITMA loop11KAMUS DATA

I,j,n: IntegerBEGIN

Input(n) For(i0; i<n; i++) For(j0; j<n; j++)

If (i+j = n-1) Then Output(i+1) Else Output(" ") End If

End For

Output("\n") End For

End

50.Jika user memasukkan angka 4 Apa Output dari algoritma berikut?

ALGORITMA loop12KAMUS DATA

I,j,n: IntegerBEGIN

Input(n) For(i0; i<n; i++) For(j0; j<n; j++)

If (i+j = n-1) Then Output(j+1) Else Output(" ") End If

End For

Output("\n") End For

End

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 55

Page 56: Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman (2)

51.Jika user memasukkan angka 4 Apa Output dari algoritma berikut?

ALGORITMA loop13KAMUS DATA

I,j,n: IntegerBEGIN

Input(n) For(i0; i<n; i++) For(j0; j<n; j++)

If (i=j) Then Output(i+1) Else Output(" ") End If

End For

Output("\n") End For

End

52.

http://awanrimbawan.wordpress.com 04Nov2010 P a g e 56