Professional Documents
Culture Documents
DISCLAIMER
http://awanrimbawan.wordpress.com Page 1 04Nov2010
Compiler menggunakan Dev C++ 4.9.9.2 Mari berbagi,jika menemukan kesalahan tentang algoritma atau source code, silahkan hubungi awanrmb@gmail.com. Semoga bisa membantu kita untuk belajar algoritma dan pemrograman
1.
http://awanrimbawan.wordpress.com Page 2
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 mas uk 10 10 10 Jam keluar 11 2 7 Keluaran/tampila n Lama bekerja 1 jam Lama bekerja 4 jam Lama bekerja 9 jam
Algoritma:
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
http://awanrimbawan.wordpress.com Page 3
04Nov2010
Program:
#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; }
2.
http://awanrimbawan.wordpress.com Page 4
04Nov2010
Algoritma:
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
#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;
Program:
3.
04Nov2010
#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", Program: fResPengganti); system("PAUSE"); return 0; http://awanrimbawan.wordpress.com } Page 7
04Nov2010
4.
http://awanrimbawan.wordpress.com Page 8
04Nov2010
Program akan menghitung berapa harga setelah didiskon. Contoh masukan : Jenis = B kode = 10 harga = 10000 Contoh keluaran : Jenis barang B mendapat diskon = 15%, Harga setelah didiskon = 8500
Algoritma:
Algoritma Menghitung_Barang #include <stdio.h> KAMUS DATA #include <stdlib.h> iKode,iHarga:integer #include <conio.h> cJenis: character int main() BEGIN { int iKode,iDiskon; Input(cJenis) char cJenis; Input(iKode) long int iHarga, iHDiskon; Input(iHarga) printf(" Jenis : "); Case(cJenis) scanf("%c",&cJenis); 'A': iHDiskon 0,9 * iHarga 'B': iHDiskon printf(" Kode : "); 0,85 * iHarga 'C': iHDiskon 0,8 * iHarga scanf("%d",&iKode); End Case printf(" Harga : "); output(iHDiskon) scanf("%d",&iHarga); END 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"); }
5.
http://awanrimbawan.wordpress.com P a g e 10
04Nov2010
golongan 3 dengan upah per jam 4.000 rupiah golongan 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:
Algoritma Menghitung_Gaji #include <stdio.h> #include <stdlib.h> KAMUS DATA #include <conio.h> iGol, iJam, iUpah, iGaji : Integer int main() BEGIN { int iGol,iJam, iUpah; int iGaji; Input(iGol) Input(iJam) iUpah=0; iUpah 0 printf(" Jumlah Jam Kerja : "); scanf("%d",&iJam); Case(iGol) 1: iUpah 3000 printf(" Golongan(1,2,3,4) : "); 2: iUpah 3500 scanf("%d",&iGol); 3: iUpah 4000 4: (iGol) switchiUpah 5000 End case { case 1: iUpah=3000; If (iJam > 40) Then break; iGaji case 2: 40 * iUpah + ((iJam - 40) * 1.5 * iUpah) Else iUpah=3500; iGaji iJam * iUpah break; End if 3: case iUpah=4000; Output(iGaji) break; case 4: END iUpah=5000; break; default: printf("inputan golongan salah"); } if (iJam > 40) iGaji = Program: 40 * iUpah + ((iJam - 40) * 1.5 * iUpah); else iGaji = iJam * iUpah; printf("\n\n Gaji : Rp %d \n", iGaji); system("PAUSE"); return 0; http://awanrimbawan.wordpress.com } P a g e 11
04Nov2010
6.
http://awanrimbawan.wordpress.com P a g e 12
04Nov2010
Algoritma:
ALGORITMA MENGHITUNG_JAM_MENIT KAMUS DATA iJamStart,iMenitStart,iMenitStop,iJamStop: integer iTotMenit1,iTotMenit2,iSelangMenit,iJamDurasi,iMenitDurasi: integer BEGIN Input(iJamStart) Input(iMenitStart) #include <stdio.h> Input(iJamStop) #include <stdlib.h> Input(iMenitStop) #include <conio.h> intiTotMenit1 iJamStart * 60 + iMenitStart main() { iTotMenit2 iJamStop * 60 + iMenitStop int iJamStart,iMenitStart,iJamStop,iMenitStop,iSelangMenit, iJamDurasi, iMenitDurasi ; If (iTotMenit2 >= iTotMenit1) Then iSelangMenit iTotMenit2; long int iTotMenit1, iTotMenit2 - iTotMenit1 Else iSelangMenit Waktu Mulai (contoh 10:05) : "); printf(" Masukkan ((12*60)-iTotMenit1) + iTotMenit2 End if scanf("%d:%d",&iJamStart,&iMenitStart); printf(" Masukkan Waktu Berhenti iJamDurasi iSelangMenit div 60 (contoh 11:04) : "); scanf("%d:%d",&iJamStop,&iMenitStop); iMenitDurasi iSelangMenit mod 60; iTotMenit1 = iJamStart * 60 + iMenitStart; Output(iJamDurasi) iTotMenit2 = iJamStop * 60 + iMenitStop; Output(iMenitDurasi) if END (iTotMenit2 >= iTotMenit1) iSelangMenit = iTotMenit2 - iTotMenit1; Program: 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"); http://awanrimbawan.wordpress.com return 0; P a g e 13 } 04Nov2010
Algoritma: BEGIN
Input(ix,iy) If (ix >= 0) If (iy >=0) Output(Kuadran I) else Output(Kuadran IV) else if (iy >=0) Output(Kuadran II) http://awanrimbawan.wordpress.com else P a g e 14 Output(Kuadran III) END
04Nov2010
Program:
#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 else printf("\nKuadran else if (iy >=0) printf("\nKuadran else printf("\nKuadran system("PAUSE"); return 0; }
http://awanrimbawan.wordpress.com P a g e 15
Algoritma:
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) #include <stdio.h> END #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); http://awanrimbawan.wordpress.com system("PAUSE"); P a g e 16 return 0; } 04Nov2010
Program:
9.
Algoritma: 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 http://awanrimbawan.wordpress.com Output(iMinibus) P a g e 17 END 04Nov2010
Program:
#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; 10. Soal: Menentukan }
http://awanrimbawan.wordpress.com P a g e 18
10 20
Jumat Selasa
Algoritma:
ALGORITMA Menentukan_Nama_Hari_1 KAMUS DATA iNHari,iBelakang : #include <stdio.h> Integer cNamaHari[15]: String #include <stdlib.h> #include <string.h> BEGIN intInput(iNHari) main() { int iNHari,iBelakang; iBelakang ( iNHari + 1) char cNamaHari[15]; Case (iBelakang) printf("Masukkan N Hari yg lalu : "); 1: cNamaHari "Senin" scanf("%d",&iNHari); 2: cNamaHari "Selasa" iBelakang = (iNHari+1) ; 3: cNamaHari "Rabu" 4: cNamaHari "Kamis" switch (iBelakang){ 5: cNamaHari "Jumat" case 1: 6: cNamaHari "Sabtu" strcpy(cNamaHari,"Senin"); 7: cNamaHari "Minggu" break; Otherwise: cNamaHari "Inputan salah" case 2: End Case strcpy(cNamaHari,"minggu"); break; Output(cNamaHari) case 3: strcpy(cNamaHari,"sabtu"); END break; case 4: strcpy(cNamaHari,"jumat"); break; case 5: strcpy(cNamaHari,"kamis"); break; case 6: Program: 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; } http://awanrimbawan.wordpress.com P a g e 19
04Nov2010
11.
http://awanrimbawan.wordpress.com P a g e 20
Algoritma:
ALGORITMA Menghitung_Hari KAMUS DATA iNHari,iHariIni,iBelakang : Integer #include <stdio.h>String cNamaHari[15] : #include <stdlib.h> cNamaHariLalu: Char #include <string.h> BEGIN int main() { Input(iHariIni) int iNHari,iHariIni,iBelakang; char cNamaHari[15],cNamaHariLalu; Input(iNHari) printf("Masukkan Kode Hari ini : "); If (iHariIni>iNHari) Then scanf("%d",&iHariIni); - iNHari iBelakang iHariIni Else printf("Masukkan- N Hari yg iHariIni) iBelakang 7 (iNHari - lalu : "); scanf("%d",&iNHari); End If if (iHariIni>iNHari) Case (iBelakang) iBelakang = iHariIni - iNHari; 1: cNamaHari "Senin" else 2: cNamaHari "Selasa" iBelakang= 7 - (iNHari - iHariIni); 3: cNamaHari "Rabu" 4: cNamaHari "Kamis" switch (iBelakang){ 5: cNamaHari "Jumat" case 1: strcpy(cNamaHari,"Senin"); 6: cNamaHari "Sabtu" break; 7: cNamaHari "Minggu" case 2:strcpy(cNamaHari,"Selasa"); End Case break; case 3:strcpy(cNamaHari,"Rabu"); Output(cNamaHari) break; END case 4: strcpy(cNamaHari,"Kamis"); break; case 5: strcpy(cNamaHari,"Jumat"); Program: 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; http://awanrimbawan.wordpress.com } P a g e 21 04Nov2010
12. Soal:
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 1 Pemakai an 50 Bayar 100.000 04Nov2010
http://awanrimbawan.wordpress.com P a g e 22
2 1
150 1000
300.000 1.100.000
ALGORITMA Menghitung_Pembayaran_Listrik KAMUS DATA iGol,iPakai,iTarif,iBayar : Integer BEGIN Input(iGol) Input(iPakai) If ( iGol = 1) Then iTarif 1000 Else iTarif 2000 End If If (iPakai < 100) Then iBayar 100 * iTarif Else If ( iPakai >= 1000) iBayar iPakai * iTarif * 1.1 Else iBayar iPakai * iTarif End If Output(iBayar) END
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 http://awanrimbawan.wordpress.com P a g e 23 04Nov2010
{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 1 12 10 N Bulan Kedepan 2 1 5 Bulan Pernikahan 3 1 3
ALGORITMA Menghitung_Bulan_Pernikahan KAMUS DATA iBlnSekarang, iNbulan, iBlnPernikahan : Integer BEGIN Input (iBlnSekarang) Input (iNBulan) If ( (iBlnSekarang + iNbulan) <= 12 ) Then iBlnPernikahan iBlnSekarang + iNbulan Else iBlnPernikahan (iBlnSekarang + iNbulan) mod 12 End If http://awanrimbawan.wordpress.com P a g e 24 04Nov2010
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; }
14.
Buatlah sebuah program untuk menampilkan bilangan ganjil antara 1-20 dengan menggunakan struktur while. ALGORITMA Menampilkan_deret_ganjil KAMUS DATA i : Integer BEGIN i1 While (i <= 20) Output(i) ii+2 End While END http://awanrimbawan.wordpress.com P a g e 25 04Nov2010
int main() { int i=1; while(i<=20){ printf("%d ",i); i=i+2; } system("PAUSE"); return 0; }
15. Soal:
Buatlah sebuah program untuk menampilkan bilangan kelipatan 3, dengan range berupa inputan dari user. Gunakan struktur dowhile Contoh inputan : Awal : 1 Akhir : 10 Kelipatan 3 : 3 6 9 Awal : 15 Akhir : 30 Kelipatan 3 : 15 18 21 24 27 30
ALGORITMA Kelipatan_Tiga KAMUS DATA i : Integer BEGIN Input(i) {awalan} http://awanrimbawan.wordpress.com P a g e 26 04Nov2010
Input(j) {akhiran}
SOURCE CODE: #include <stdio.h> #include <stdlib.h> int main() { int i,j,k; printf("awal : "); scanf("%d",&i); printf("akhir : "); scanf("%d",&j); do{ if (i % 3 == 0) printf(" %d ",i); i=i+1; }while(i<=j); system("PAUSE"); return 0; } 16. Soal:
Buatlah program pengulangan untuk menghitung jumlah sederet bilangan berurut yang dimulai dari 1 hingga bilangan inputan. Contoh: INPUT PROSES OUTPUT :7 : 1+2+3+4+5+6+7 : 28
KAMUS DATA i,j,k : Integer BEGIN k0 Output("Input : ") Input(i) Output("Proses : ") j 1; While (j <= i) Output(j) If (j <> i) Then Output(" + ") End If k k+j jj+1 End While Output(k) END
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"); http://awanrimbawan.wordpress.com P a g e 28 04Nov2010
return 0; }
17.
Soal: Segitiga
Buatlah program pengulangan bersarang dengan sintaks FOR untuk menampilkan output sebagai berikut: Masukkan angka: 4 * ** *** ****
ALGORITMA Menampilkan_Segitiga KAMUS DATA i,j,k : Integer BEGIN Input(k) For (i 1; i <= k ; i++) For(j 1 ; j<=i ; j++) Output("*") End For Output("\n") End For END 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++){ http://awanrimbawan.wordpress.com P a g e 29 04Nov2010
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
http://awanrimbawan.wordpress.com P a g e 30
04Nov2010
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; }
http://awanrimbawan.wordpress.com P a g e 31
04Nov2010
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 jam Kemudian ditampilkan total gaji karyawan yang harus dibayarkan oleh perusahaan. Jumlah jam kerja tiap karyawan akan diinputkan oleh user Contoh inputan Jumlah karyawan : 3 [inputan user] Jam kerja karyawan 1 : 8 [inputan user] Total Gaji : 85000 Jam kerja karyawan 2 : 6 [inputan user] Total Gaji : 60000 Jam kerja karyawan 3 : 12 [inputan user] Total Gaji : 145000 Total Gaji karyawan : 290000 ALGORITMA Faktorial KAMUS DATA i,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 P a g e 32
04Nov2010
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; }
http://awanrimbawan.wordpress.com P a g e 33
04Nov2010
ALGORITMA Bintang_x KAMUS DATA i,j,k,l,m : Integer BEGIN Output("mmasukkan angka : ") Input(k) l1 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 http://awanrimbawan.wordpress.com P a g e 34 04Nov2010
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; }
http://awanrimbawan.wordpress.com P a g e 35
04Nov2010
21.
Buatlah program untuk menampilkan bintang berbentuk belah ketupat seperti berikut : Contoh inputan : Jumlah bintang : 5 * * * * * * * * Jumlah bintang : 6 ** * * * * * * * * ** Jumlah bintang : 9 * * * * * * * * * * * * * * * *
ALGORITMA Bintang_Ketupat KAMUS DATA i,j,k,l,m,input,tengah : Integer BEGIN m0 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 http://awanrimbawan.wordpress.com P a g e 36 04Nov2010
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 End If End For Output("\n") End For END 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(" "); } } } } http://awanrimbawan.wordpress.com P a g e 37 04Nov2010
yang merupakan nilai ujian mahasiswa, serta nilai tertinggi yang didapat mahasiswa.
ALGORITMA Input_nilai1 KAMUS DATA N, Max, i : Integer BEGIN Input(N) Max N i2 While ( i <= 4) Input(N) If (N > Max) Then Max N End If i++ End While Output(i) END
mencetak
http://awanrimbawan.wordpress.com P a g e 38
04Nov2010
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 Nilai Tertinggi: 95 Jumlah: 2 ALGORITMA Nilai2 KAMUS DATA N, Max, i, Jumlah : Integer BEGIN Input(N) Max N i2 While ( i <= 7) Input(N) If (N > Max) Then Max N Jumlah 1 Else if ( N = Max ) Jumlah++ End If i++ End While Output(Max) Output(Jumlah) END 80 80 92 95 87 95
http://awanrimbawan.wordpress.com P a g e 39
04Nov2010
24. Soal:
Buatlah algoritma yang menginputkan 10 bilangan yang merupakan nilai ujian mahasiswa, kemudian mencetak nilai tertinggi dan nilai terendahnya.
ALGORITMA Input_nilai3 KAMUS DATA N, Max, Min, i : Integer BEGIN Input(N) Max N Min N i2 While (i <= 10) Input(N) If (N > Max) Then Max 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.
http://awanrimbawan.wordpress.com P a g e 40 04Nov2010
ALGORITMA Input_nilai4 KAMUS DATA nilai : Integer BEGIN nilai -1 While ( nilai < 0 Or nilai > 100) Output(Masukkan nilai Ujian (0-100):) Input(nilai) End While If (nilai >= 60) Then Output(LULUS) Else Output(Coba Lagi Tahun Depan) End If END 26. 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_nilai5 KAMUS DATA nilai: integer BEGIN Do Output(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) Then Output(LULUS) Else Output(Coba lagi tahun depan) End If END 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, 500 http://awanrimbawan.wordpress.com P a g e 41 04Nov2010
Output: 3 Data Input: 200, 400, 100, 200,100,1 Output: 6 ALGORITMA Input_jumlah KAMUS DATA nilai,i,jumlah : integer BEGIN jumlah 0 i0 While ( jumlah <= 1000) Output(Input Nilai) Input(nilai) jumlah jumlah + nilai i++ End While Output(i) END 28. 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, 999 Maka rata-ratanya: (60+50+70+65+75) / 5 = 64 Note: data bisa berupa n bilangan (n tidak diketahui) ALGORITMA Rata_rata KAMUS DATA nilai, jumlah, banyak, ratarata : Integer BEGIN banyak 0 jumlah 0 Input(nilai) While (nilai <> 999) jumlah jumlah + nilai banyak++ Input(nilai) End While ratarata jumlah/banyak Output(ratarata) END
http://awanrimbawan.wordpress.com P a g e 42
04Nov2010
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_loop KAMUS DATA nilai, BEGIN Output(Inputkan sebuah nilai: ) Input(nilai) While (nilai > 0) nilai nilai - 2 End While If (nilai = 0) output(Even) Else output(Odd) End If END
30. Buat algoritma yang inputannya sebuah bilangan. Kemudian menentukan apakah bilangan tersebut adalah bilangan prima atau bukan.
ALGORITMA cekprima KAMUS DATA nilai, x, batasatas, penanda: Integer BEGIN http://awanrimbawan.wordpress.com P a g e 43 04Nov2010
Input(nilai) x2 batasatas nilai 1 penanda 0 While (penanda = 0 And x <= batasatas) If (nilai Mod x = 0) Then penanda 1 End If x x+1 END WHILE If (penanda = 0) Then 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: 7405 Output: 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 UbahDetik KAMUS DATA J, M, D: Integer BEGIN Input(D) J 0 M0 While (D >= 3600) D D 3600 J ++ End While While (D >= 60) D D 60 M++ End While
http://awanrimbawan.wordpress.com P a g e 44
04Nov2010
Output(J,M,D) END
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 HitungBebek KAMUS DATA I, M, T : Integer BEGIN T1000 http://awanrimbawan.wordpress.com P a g e 45 04Nov2010
I1 While ( I <= 10) M T * 0.2 TTM TT*2 I++ End While Output(T) End
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 HitungBahanBakar KAMUS DATA i: Integer n,t: Float BEGIN t0 n10 i1 While ( i <= 100) tt+n n n*0.8 i++ End While Output(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
http://awanrimbawan.wordpress.com P a g e 46 04Nov2010
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 HitungJarak KAMUS DATA Jam1, Jam2, JumWaktu, Interval, SisaWaktu, V, TS, I: Integer BEGIN Jam1 8*3600 + 25*60 + 10 Jam2 10*3600 JumWaktu Jam2 Jam1 Interval 10 * 60 JumInterval JumWaktu Div Interval SisaWaktu JumWaktu Mod Interval V5 TS 0 I1 While ( I <= JumInterval) S Interval * V TS TS + S http://awanrimbawan.wordpress.com P a g e 47 04Nov2010
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 Balapan KAMUS DATA JamBerangkatBadu,JarakAli,JarakBadu,JamBertemu: Integer t, jam,menit,detik: Integer BEGIN JamBerangkatBadu 9*3600 t 1 JarakBadu 0 JarakAli 3600*5 While ( JarakBadu < JarakAli) JarakAli JarakAli + 5 JarakBadu JarakBadu + 8 t++ End While JamBertemu JamBerangkatBadu + t jam JamBertemu Div 3600 detik JamBertemu Mod 3600 http://awanrimbawan.wordpress.com P a g e 48 04Nov2010
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 BuatDeret KAMUS DATA V, Detik, Jarak: Integer BEGIN V10 Detik 0 Jarak0 While ( Jarak < 100000) Detik++ Jarak Jarak + V If (Detik Mod 600 = 0) Then V++ End If End While Jam Detik Div 3600 http://awanrimbawan.wordpress.com P a g e 49 04Nov2010
Detik Detik Mod 3600 Menit Detik Div 60 Detik Detik Mod 60 Output(Jam, Menit, Detik) End
39. Jika
angka
Apa
Output
dari
angka
Apa
Output
dari
angka
Apa
Output
dari
04Nov2010
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 For End 42. Jika
angka
Apa
Output
dari
angka
Apa
Output
dari
angka
Apa
Output
dari
04Nov2010
I,j,n: Integer BEGIN 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 For End
45. Jika
angka
Apa
Output
dari
ALGORITMA loop7 KAMUS DATA I,j,n: Integer BEGIN 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
Apa
Output
dari
http://awanrimbawan.wordpress.com P a g e 52
04Nov2010
algoritma berikut?
ALGORITMA loop8 KAMUS DATA I,j,n: Integer BEGIN 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
47. Jika user memasukkan angka 5 Apa Output dari algoritma berikut?
ALGORITMA loop9 KAMUS DATA I,j,n: Integer BEGIN 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
http://awanrimbawan.wordpress.com P a g e 53
04Nov2010
48. Jika
angka
Apa
Output
dari
ALGORITMA loop10 KAMUS DATA I,j,n: Integer BEGIN 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
49. Jika user memasukkan angka 4 Apa Output dari algoritma berikut?
ALGORITMA loop11 KAMUS DATA I,j,n: Integer BEGIN 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 http://awanrimbawan.wordpress.com P a g e 54 04Nov2010
End
50. Jika user memasukkan angka 4 Apa Output dari algoritma berikut?
ALGORITMA loop12 KAMUS DATA I,j,n: Integer BEGIN 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
51. Jika user memasukkan angka 4 Apa Output dari algoritma berikut?
ALGORITMA loop13 KAMUS DATA I,j,n: Integer BEGIN 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 http://awanrimbawan.wordpress.com P a g e 55 04Nov2010
52.
http://awanrimbawan.wordpress.com P a g e 56
04Nov2010