Pembahasan soal-soal pemrograman terstruktur Yuli Astuti, S.Kom
No 1 Buatlah program dengan untuk menghitung volume dan luas tabung. Rumus : Volume Tabung : phi x jari-jari x jari-jari x tinggi) Luas Tabung : 2 x phi x jari-jari x tinggi)
Jawab #include <iostream.h> #include <conio.h> #define phi 3.14 void main(){ float jari_jari,tinggi,volume,luas; jari_jari=5.0; tinggi=7; volume=phi*jari_jari*jari_jari*tinggi; luas=2*phi*jari_jari*tinggi; cout<<"Volume Tabung = "<<volume<<endl; cout<<"Luas Tabung = "<<luas<<endl; getch();}
No 2 Buatlah Program untuk mencatat data mahasiswa yang terdiri dari field nama, nim dan nilai.
Jawab #include <iostream.h> #include <conio.h> void main(){ char nama[20]; int nim,nilai; cout<<"Masukan Nama Mahasiswa :”; cin>>nama; cout<<"Masukan Nim Mahasiswa :”; cin>>nim; cout<<"Masukan Nilai Mahasiswa :”; cin>>nilai; cout<<"Nama : "<<nama<<endl; cout<<"NIM : "<<nim<<endl; cout<<"Nilai : "<<nilai<<endl; getch(); }
No 3 Buatlah Program menghitung luas bangun geometri (bujur sangkar, lingkaran, segitiga dan trapesium). Data dimasukan oleh user melalu piranti masukkan dan luas bangunan ditampilkan sebagai keluaran.
Jawab #include <iostream.h> #include <conio.h> # define phi 3.14 void main(){ int kode; int ls_bujur_sangkar,sisi; float ls_lingkaran,jari_jari; int ls_segitiga,alas_segitiga,t_segitiga; int ls_trapesium,ss_pjg,ss_pendek,t_trapesium; cout<<“Pilih Program Yg Ingin Dijalankan!”; cout<<" 1. Luas Bujur sangkar. "<<endl; cout<<" 2. Luas Lingkaran. "<<endl;
Lanjutan 1 cout<<" 3. Luas Segitiga. "; cout<<" 4. Trapesium. “; cout<<"\nPilih = "; cin>>kode; if (kode==1) {cout<<"\nMasukan Sisi Bujur Sangkar:”; cin>>sisi; ls_bujur_sangkar = sisi*sisi; cout<<"Luas Bujur Sangkar =“ <<ls_bujur_sangkar<<endl; } else if (kode==2) cout<<"\nMasukan jari-jari Lingkaran = "; cin>>jari_jari; ls_lingkaran=phi*jari_jari*jari_jari; cout<<"Luas Lingkaran = "<<ls_lingkaran;}
Lanjutan 2 else if (kode==3) {cout<<"\nMasukan Tinggi segitiga = "; cin>>t_segitiga; cout<<"Masukan Pajang alas Segitiga = "; cin>>alas_segitiga; ls_segitiga=(t_segitiga*alas_segitiga)/2; cout<<"Luas Segitiga = "<<ls_segitiga;} else if (kode==4) {cout<<"\nMasukan Sisi Pajang Trapesium = "; cin>>sisi_panjang; cout<<"Masukna sisi pendek Trapesium = "; cin>>sisi_pendek; cout<<"Masukan Tinggi Trapesium ="; cin>>tinggi_trapesium;
Lanjutan 3 ls_trapesium=(ss_panjang+ss_pendek* t_trapesium)/2; cout<<"Luas Trapesium =“ <<ls_trapesium;} else cout<<"\nKode yg anda masukan salah !"; getch();}
No 4 Buatlah program untuk menghitung harga total dimana banyak barang di input user, dan harga barang perunit 5203.02
Jawab #include <iostream.h> #include <conio.h> #define harga 5203.02 void main(){ float jumlah,total; cout<<"Masukan jumlah barang = "; cin>>jumlah; total=harga*jumlah; cout<<"\nYang harus di bayar = "<<total; getch();}
No 5 Buatlah program untuk penggunaan operasi aritmatika yaitu penjumlahan, pembagian, perkalian dan pengurangan dengan variabel yang diinput.
Jawab #include <iostream.h> #include <conio.h> void main() { int kode; int a,b,c; float a1,b1,c1; cout<<"Program Operasi aritmatika”; cout<<"1. Penjumlahan"<<endl; cout<<"2. Pembagian"<<endl; cout<<"3. Perkalian"<<endl; cout<<"4. Pengurangan"<<endl; cout<<"\nMasukan angka kode program= "; cin>>kode;
Lanjutan 1 if (kode==1) {cout<<"\nMasukan angka pertama = "; cin>>a; cout<<"Masukan angka kedua = "; cin>>b; c=a+b; cout<<"Hasil penjumlah = "<<c; } else if (kode==2) {cout<<"Masukan angka yg ingin di bagi ="; cin>>a1; cout<<"Masukan angka pembagi = ";cin>>b1; c1=a1/b1;
Lanjutan 2 cout<<"Hasil pembagian = "<<c1; } else if (kode==3) {cout<<"\nMasukan angka pertama = “;cin>>a; cout<<"Masukan angka kedua = ";cin>>b; c=a*b; cout<<"Hasil perkalian = "<<c;} else if (kode==4) {cout<<"\nMasukan angka pertama = ";cin>>a; c=a-b; cout<<"Hasil pengurangan = "<<c;} else cout<<"\nKode yang anda masukan salah !"; getch();}
No 6 Buatlah program menampilkan bilangan ganjil antara 1 sampai N, dimana N dimasukan oleh operator.
Jawab #include <iostream.h> #include <conio.h> void main(){ int a,i; cout<<"Masukan batas bilangan = ";cin>>a; for (i=1;i<=a;i++) if (i%2!=0) cout<<i<<" "; getch();}
No 7 Buat program untuk mencari apakah bilangan tersebut ganjil atau genap, dimana bilangan merupakan piranti masukan.
Jawab #include <iostream.h> #include <conio.h> void main(){ int bil ; cout <<"Masukan Bilangan = ";cin>>bil; if (bil%2!=0) cout<<"\nBilangan ganjil."; else cout<<"\nBilangan genap"; getch();}
No 8 Buatlah program untuk menyeleksi suatu bilangan dengan ketentua sebagai berikut : 0<nilai<=30 :Nilai rendah 30<nilai<=60 :Nilai Sedang 60<nilai<=100 : Nilai Tinggi
Jawab #include <iostream.h> #include <conio.h> void main(){ int nilai; cout<<"Masukan nilai = ";cin>>nilai; if (nilai>0 && nilai<=30) cout<<"\nNilai Rendah"; else if (nilai>30 && nilai<=60) cout<<"\nNilai sedang"; else if (nilai >60 && nilai<=100) cout<<"\nNilai Tinggi"; else cout<<"\nSalah memasukan nilai"; getch();}
No 9 Buatlah program menu untuk menghitung : a. Luas dan Keliling Bujur Sangkar b. Luas dan Keliling Persegi Panjang c. Luas dan Keliling Lingkaran.
Jawab #include <iostream.h> #include <conio.h> #define phi 3.14 void main(){ int kode,luas_bj,keliling_bj,sisi,panjang_persegi, lebar_persegi,luas_persegi,keliling_persegi; float luas_lingkaran,keliling_lingkaran,jari; cout<<"\nMenghitung luas dan keliling Geometri\n\n"; cout<<"1. Menghitung Luas & Keliling Bujur Sangkar\n"; cout<<"2. Menghitung Luas & Keliling Persegi Pjg\n"; cout<<"3. Menghitung Luas dan Keliling lingkaran\n"; cout<<"\nMasukan Kode Program = " ;cin>>kode;
Lanjutan 1 if (kode==1) {cout<<"\nMasukan Panjang Sisi Bujur sangkar = "; cin>>sisi; luas_bj=sisi*sisi; keliling_bj=4*sisi; cout<<"\nLuas Bujur Sangkar = "<<luas_bj; cout<<"\nKeliling Bujur Sangkar = " <<keliling_bj; } else if (kode==2) {cout<<"\nMasukan Panjang = ";cin>>panjang_persegi; cout<<"Masukan Lebar = ";cin>>lebar_persegi; luas_persegi=panjang_persegi*lebar_persegi; keliling_persegi=2*(panjang_persegi+lebar_persegi);
Lanjutan 2 cout<<"\nLuas Persegi Panjang = "<<luas_persegi; cout<<"\nKeliling Persegi Panjang = " <<keliling_persegi; } else if (kode==3) {cout<<"\nMasukan nilai Jari-jari = ";cin>>jari; luas_lingkaran = phi*jari*jari; keliling_lingkaran= 2*phi*jari; cout<<"\nLuas Lingkaran ="<<luas_lingkaran; cout<<“\nKeliling Lingkaran ="<<keliling_lingkaran; } else cout<<"\nKode yang anda masukan salah !"; getch();}
No 10 Buatlah program untuk mencetak deret 10 9 8 7 6 5 4 3 2 1.
Jawab 1 #include <iostream.h> #include <conio.h> void main() { int i; for(i=10;i>=1;i--) cout<<" "<<i; getch(); }
Jawab 2 #include <iostream.h> #include <conio.h> void main() { int i; i=10; while (i>0) {cout<<i<<endl; i--; } getch(); }
Jawab 3 #include <iostream.h> #include <conio.h> void main() { int i; i=10; do {cout<<i<<endl; i--; } while (i>0) ; getch(); }
No 11 Buatlah program untuk mencetak menggunakan for, while dan do while * * * * * * * * * *
Jawab 1 #include <iostream.h> #include <conio.h> void main(){ int i,j; i=1; while (i<=4) { j=4; while (j>=i) { cout<<“*”; j--; } cout<<endl; i++; } getch();}
Jawab 2 #include <iostream.h> #include <conio.h> main() { int batas; cout<<"input batas : ";cin>>batas; for(int i=batas;i>=1;i--){ for(int a=i;a>=1;a--) {cout<<"*"<<" ";} cout<<endl;} getch();}
No 12 Buatlah program yang menampilkan 5 buah bilangan, yaitu mulai dari bilangan ke-5 sampai bilangan ke-1 dengan nilai awal bilangan 8. Tampilan bilangan adalah menurun dan contohnya adalah : bilanga ke-5, i=3 (diperoleh dari 8-5) dan seterusnya sampai bilangan 1, i=7 (diperoleh dari 8-1=7). Output: 8 - 5 = 3 8 - 4 = 4 8 - 3 = 5 8 - 2 = 6 8 - 1 = 7
Jawab #include <iostream.h> #include <conio.h> void main() { int a,i,x,hasil; x=8; for (a=5;a>=1;a--) {hasil = x - a; cout<<x<<" - "<<a<<" = "<<hasil; cout<<endl; } getch(); }
No 13 Buat program menentukan bilangan terbesar dan terkecil dari jumlah data yang diinput.
Jawab #include <conio.h> #include <iostream.h> void main(){ clrscr(); int i, n, max, min, bil; cout<<“Mencari bilangan terbesar & terkecil \n"; cout<<"Banyak data : “; cin>>n; cout<<"Masukkan bilangan : “; cin>>bil; max=bil; min=bil; for (i=2; i<=n;i++){ if (bil>max) max=bil; if (bil<min) min=bil; } cout<<“MAX = "<<max<<"\nMIN = “ <<min; getch();}
No 14 Buat Pyramid Angka 10 baris, seperti gambar di bawah:
Jawab #include <iostream.h> #include <conio.h> int main(){ clrscr(); int x, y, z, bil=10; for( x = 1; x <= bil; x++ ) {for( z = bil; z >= x; z-- ) cout << ' '; for( z = x; z < 2*x; z++ ) {y = z % 10; cout << y;} for( z = 2*(x-1); z >= x; z-- ) cout << endl; } getch();}