Module Algorithma dan Pemrograman Soal-Soal Latihan Algorithma dan Pemrograman
STMIK Indonesia S1 Sistem Informasi Ir. Muhammad Amrin Lubis, M.Sc Padang, Juli 2011
STMIK Indonesia Telp 0751 7058325
Algorithma dan Pemrograman
Ir. M. Amrin Lubis, M,Sc
1
Buatlah Program Flowchart dan C Programming dari persoalan dibawah ini !
Sequence
1. Hitunglah luas bangun segitiga. Diketahui rumus yang digunakan adalah luasSGT= ½ * alas * tinggi 2. Hitunglah luas bangun empat persegi panjang, rumus yang dipakai yaitu luasEPPJ = panjang * lebar 3. Hitunglah usia anda
Jawaban Soal Jawab soal nomor 1 diatas dapat diselesaikan dengan menggunakan berbagai macam programming seperti C, Java, Visual Basic, Delphi, dll. Penyelesaiaan soal ini menggunakan Java (penulis menggunakan NetBeans IDE 6.8). Bentuk tampilan dari soal tersebut seperti disebelah kanan, silahkan dirancangan ! Program memiliki 1 event yaitu keyPressed, terletak pada field Tinggi. Ketika nilai tinggi diinput dan ditekan tombol Enter, maka tampil hasil proses yaitu Luas Misalkan, nilai Alas 7, nilai Tinggi 3, ketika ditekan Enter maka tampil Luas 10.5, seperti gambar sebelah kanan.
Decision If dan If..else 1. Mahasiswa peserta test Algorithma dinyatakan LULUS jika nilai melebihi 65 2. Hasil test matakuliah Dasar Pemrograman berupa nilai 0 s/d 100. Nilai diluar itu ditolak tampilkan warning “Nilai diluar Range”. Dari hasil test itu cetaklah predikat kelulusan seperti ketentuan dibawah ini : a. Jika Nilai 0 s/d 50 Predikat “Fail“ b. Jika Nilai 51 s/d 65 Predikat “Good“ c. Jika Nilai 66 s/d 85 Predikat “Very Good“ d. Jika Nilai 86 s/d 100 Predikat “Excellent”
STMIK Indonesia Telp 0751 7058325
Algorithma dan Pemrograman
Ir. M. Amrin Lubis, M,Sc
2
3. Buatlah program flowchart dan C Programming untuk menentukan Gaji pokok seorang karyawan Gaji Pokok (GP) seorang karyawan mengacu kepada pendidikannya sbb: Jika pendidikan SD maka Gaji pokok Rp. 400000,Jika pendidikan SLTP maka Gaji pokok Rp. 500000,Jika pendidikan SLTA maka Gaji pokok Rp. 700000,Jika pendidikan DIPLOMA 3 maka Gaji pokok Rp. 1400000,Jika pendidikan S1 maka Gaji pokok Rp. 2000000,OUTPUT NAMA KARYAWAN PENDIDIKAN Gaji Pokok
: Syfa : S1 Rp. 2000000
4. Buatlah program flowchart dan C Programming untuk menghitunglah gaji Bersih seorang karyawan Gaji Pokok (GP) seorang karyawan mengacu kepada pendidikannya sbb: Jika pendidikan SD maka Gaji pokok Rp. 400000,Jika pendidikan SLTP maka Gaji pokok Rp. 500000,Jika pendidikan SLTA maka Gaji pokok Rp. 700000,Jika pendidikan DIPLOMA maka Gaji pokok Rp. 1400000,Jika pendidikan S1 maka Gaji pokok Rp. 2000000,Sedangkan Tunjungan Keluarga (TK) ditentukan berdasarkan jenis kelamin Jika Jenis kelamin laki-laki maka TK 20% dari Gaji Pokok Jika Jeni perempuan maka TK 10% dari Gaji Pokok Semua karyawan mendapat Tunjangan Transport (TT)berdasarkan Masa Kerja Jika Masa Kerja 0 s.d 5 tahun maka TT sebesar 5% dari GP Jika Masa Kerja 6 s.d 12 tahun maka TT sebesar 7.5% dari GP NAMA : Syfa Jika Masa Kerja melebihi 12 tahun Masa Kerja (thn) :3 maka TT sebesar 10% dari GP PENDIDIKAN : S1 JENIS KELAMIN : perempuan Gaji Bersih (GB) dihitung dengan Gaji Pokok Rp. 2000000 Rumus Tunjangan Keluarga Rp. 200000 Tunjangan Transport Rp. 100000 GB = GP + TK + TT ----------------- + Gaji Bersih Rp. 2300000 Output yang diingikan Æ
5. Besar uang kuliah mahasiswa per semester ditentukan oleh tahun angkatan dan jumlah sks yang diambilnya. Mahasiswa: angkatan 2009 Biaya Administrasi Rp. 500.000,angkatan 2010 Biaya Administrasi Rp. 600.000,angkatan 2011 Biaya Administrasi Rp. 700.000,angkatan 2012 Biaya Administrasi Rp. 700.000,-
STMIK Indonesia Telp 0751 7058325
Algorithma dan Pemrograman
Nama : Q. Syfa No. BP : 101100052 Jumlah sks : 21 -----------------------------
Biaya Adm Rp. 600.000 Biaya SKS Rp. 2.310.000 -------------------- + Uang Kuliah Rp. 2.910.000
Ir. M. Amrin Lubis, M,Sc
3
Biaya sks per matakuliah sebesar Rp. 110.000,Buatlah program untuk menghitung biaya kuliah jika seorang mahasiswa angkatan 2010 mengambil 21 sks. UangKuliah = BiayaAdm + BiayaSks Berapa Biaya Kuliah mahasiswa angkatan 2012 dengan jumlah 22 sks ? 6. Rumus untukmenghitung ukuran badan Ideal adalah Tinggi Badan kurang 100 kurang 10%. Cetaklah keterangan untuk berat badan“Ideal“, “Kurus“, atau “Gendut“
Tinggi Badan (cm) Berat badan (kg) Keterangan Kurus
: 160 : 52
7. Input nilai MID semester dan nilai UAS. Hitung totalnya. Jika Rata2 nilai melebihi 65 maka dinyatakan LULUS, sebaliknya GAGAL MID : UAS :
66 69
KETERANGAN: LULUS
8. Selesaikan persoalan programming dibawah ini ! Buat Program Flowchart. Cetaklah Slip Pembayaran Rekening Tagihan PDAM seperti output dibawah ini ! Diketahui biaya pemakaian per meter kubik air (HPKA) yaitu Rp. 2000. Besarnya Pemakaian air per bulan dihitung dengan rumus : PemakaianAir = Meteran Bulan Ini – Meteran Bulan Lalu Sedangkan besarnya pembayaran rekenign tagiha PDAM meggunakan rumus:
TAGIHAN REKENING PDAM Pelanggan : Qathrunnada Syfa Biaya Per m3 : Rp. 2000 Meteran Bulan Ini (m3) : 140 Meteran Bulan Lalu (m3) : 120 -------------------------------------------------Pemakaian (m3) 20 Tagihan Rekening : Rp. 40.000,-
TagihanRekening = PemakaianAir * HPKA
STMIK Indonesia Telp 0751 7058325
Algorithma dan Pemrograman
Ir. M. Amrin Lubis, M,Sc
4
9. Selesaikan persoalan programming dibawah ini ! Buat Program Flowchart. Cetaklah Slip Pembayaran Rekening Tagihan PDAM seperti output dibawah ini ! Diketahui biaya pemakaian per meter kubik air (HPKA) yaitu Rp. 2000. Jawab menggunakan FUNCTION. Besarnya Pemakaian air per bulan dihitung dengan rumus : PemakaianAir = Meteran Bulan Ini – Meteran Bulan Lalu Setiap Pelanggan dikenakan biaya Administrasi (byadm) menurut kelompok pelanggan sebagai berikut: Kelompok Pelanggal RT byAdm Rp. 20.000,0 Kelompok Pelanggal IP byAdm Rp. 30.000,0 Kelompok Pelanggal ID byAdm Rp. 40.000,0
TAGIHAN REKENING PDAM Pelanggan : Qathrunnada Syfa Biaya Per m3 Rp. 2000 Meteran Bulan Ini (m3) : 140 Meteran Bulan Lalu (m3) : 120 Kelompok Pelanggan : RT ------------------------------------------------Pemakaian (m3) 20 Biaya Administrasi : Rp. 20.000,Rekening : Rp. 40.000,-------------------- + Tagihan Rekening : Rp. 60.000,-
Sedangkan besarnya pembayaran rekenign tagiha PDAM meggunakan rumus: Rekening = PemakaianAir * HPKA sedangkan TagihanRekening = Rekening * byAdm Note: rt=rumah tangga, ip=instansi pemerintah, id=industri 10. Buatlah program Flowchart untuk konversi dari nilai angka ke nilai Huruf dengan ketentuan seperti dibawah ini (lihat output disebelah kanan) : KONVERSI NILAI Jika nilaAngka 0 s/d 54 maka nilai Huruf E Jika nilaAngka 55 s/d 69 maka nilai Huruf C Jika nilaAngka 70 s/d 82 maka nilai Huruf B Nilai Angka : 91 Jika nilaAngka 83 s/d 100 maka nilai Huruf A Nilai angka diluar range diatas maka cetak lambang “-“ Nilai HURUF :A 11. Soal diatas kemudian dikembangkan. Buatlah program Flowchart ke nilai Huruf dengan ketentuan seperti dibawah ini (lihat output disebelah kanan) : Jika nilaAngka 0 s/d 54 maka nilai Huruf E, dan mutu 0 Jika nilaAngka 55 s/d 69 maka nilai Huruf C, dan mutu 2 Jika nilaAngka 70 s/d 82 maka nilai Huruf B, dan mutu 3 Jika nilaAngka 83 s/d 100 maka nilai Huruf A, dan mutu 4 Nilai angka diluar range diatas maka cetak lambang “-“.
untuk konversi dari nilai angka
KONVERSI NILAI Nilai Angka
: 91
Nilai HURUF Mutu
:A :4
12. Buatlah Program Flowchart untuk menghitung total pembayaran karcis Mifan dari soal berikut. Setiap pengunjung input data: nokarcis, nama, fasilitas dan jumlah karcis. Didalam Mifan terdapat 3 Fasilitas dengan tariff yang berbeda. Lihat output sebelah kanan !
KARCIS MIFAN Jika Fasilitas menggunakan Perahu Arung Jeram (PAJ), maka: Tariff Rp. 50.000, PPN = 3 % x Tariff Diskon 5 % x Tariff Total Pembayaran = Jumlah x Tariff + PPN - Diskon
STMIK Indonesia Telp 0751 7058325
Algorithma dan Pemrograman
No Karcis : 5312 Nama : Mutiara Fasilitas : Perahu Arung Jeram Jumlah Karcis : 2 -----------------------------------------Tarif Rp. : 50000 PPN Rp. : 1500 Diskon : ( 2500 ) Ir. M. Amrin Lubis, M,Sc 5 ----------------+ Total Pembayaran Rp. 99000
Jika Fasilitas menggunakan Baju Renang (BJR), maka Tariff Rp. 30.000, PPN = 2 % x Tariff Diskon 3 % x Tariff Total Pembayaran = Jumlah x Tariff + PPN – Diskon Jika Fasilitas menggunakan Pelampung (PLP), maka Tariff Rp. 20.000, PPN = 1.5 % x Tariff Diskon 2 % x Tariff Total Pembayaran = Jumlah x Tariff + PPN – Diskon
13. Buatlah program untuk menghitunglah Biaya Pajak Kenderaan Bermotor. Besarnya biaya pajak dan biaya administrasi (Adm) ditentukan berdasarkan engine dari kenderaan. Biaya Adm ditetapkan sebesar 10% dari biaya Pajak. Kemudian tampilkan juga daerah asalnya berdasarkan nomor polisi yang ada. Lihat Lat out dibawah ini. Lihat Tabel dibawah ini. Kerjakan menggunakan FUNCTION
Seri No. Polisi didepan menunjukkan provinsi BA Æ Sumatera Barat BM Æ Riau BB Æ Tapanuli B Æ DKI
Seri No. Polisi menunjukkan kota/ kabupaten WT, Ak Æ Kota Padang MK Æ Payakumbuh SJ Æ Bukittinggi
SLIP PAJAK KENDERAN BERMOTOR
Table Pajak NO 1 2. 3
Engine (cc) 80 – 110 111 – 150 151 – 200
Pajak Rp. 125.000 175.000 250.000
No Polisi : BA 64 AK Pemilik : Mutiara Engine (cc) : 98 -----------------------------------------Provinsi : Sumatera Barat Kab/Kota : Padang Biaya Pajak Rp. : 125.000 Biaya Adm Rp. 12.500 ----------------- + Total Pajak Rp. 1.37.500
Jawaban lihat dibagian bawah! Looping For .. Next 1. Cetaklah teks STMIK Indonesia sebanyak 3 kali seperti output ini !
STMIK Indonesia STMIK Indonesia STMIK Indonesia
1 2 3 4 5 2. Cetaklah angka 1 sampai dengan 5 seperti output dibawah ini
STMIK Indonesia Telp 0751 7058325
Algorithma dan Pemrograman
Ir. M. Amrin Lubis, M,Sc
6
3. Cetaklah semua bilangan genap dari 1 sampai dengan 10 2 4 6 8 10
4. Buatlah program flowchart perkalian 2 mulai dari 1 sampai dengan 10
1x2=2 2x2=4 3x2=6 .. .. 10 x 2 = 20
5. Buatlah program flowchart untuk menampilkan Bilangan Prima bilangan prima mulai dari 2 sampai dengan 20. Dalam matematika, bilangan prima adalah 1 2 3 5 7 11 13 17 19 bilangan asli yang lebih besar dari 1, yang faktor pembaginya adalah 1 dan bilangan itu sendiri. 2 dan 3 adalah bilangan prima. 4 bukan bilangan prima karena 4 bisa dibagi 2. Sepuluh bilangan prima yang pertama adalah 2, 3, 5, 7, 11, 13, 17, 19, 23 dan 29 (http://id.wikipedia.org/wiki/Bilangan_prima)
Nested For
Looping disebut perulangan, sedangkan Nested adalah bersarang. Nested For adalah perulangan For didalam perulangan For atau disebut perulangan bersarang untuk For. Nested dapat menggunakan for, while dan do while. Kapan dipakai Nested dalam pemrograman ? apabila ada ditemukan kemiripan penyelesaian masalah prgoramming pada tahap pertama, tahap kedua, data tahap seterusnya atau persis. Lalu berapa banya boleh Perulangan dalam sebuah progam aplikasi ? Tidak ada jumlah yang pasti, pakailah Nested dalam program sebanyak yang diperlukan ! 6. Gunankan Nested For atau While. Buatlah pola seperti gambar berikut ini, lima baris dan lima kolom : 6a, 6b, 6c, 6d
6a ***** ***** ***** ***** *****
6b * ** *** **** *****
6c ***** **** *** ** *
6d 1 22 333 4444 55555
7. Buat juga dalam bentuk huruf 7a, 7b, 7c
7a ***** * ***** * *****
STMIK Indonesia Telp 0751 7058325
7b
***** * * * *
7c 1
1
2 2 33333 4 4 5 5
Algorithma dan Pemrograman
Ir. M. Amrin Lubis, M,Sc
7
Aplikasi Soal Latihan Matakuliah Algoritham dan Pemrogaman Buatlah Program Flochart dan C Programming dari persoalan dibawah ini ! Beban SKS matakuliah Java Programming sebesar 3. Hasil test matakuliah Java Programming diperoleh nilai angka 0 s.d 100. Nilai angka kemudian dikonversi menjadi nilai huruf sebagai berikut a. Jika Nilai angka 0 s.d 44 maka nila huruf E, Mutu 0 b. Jika Nilai angka 45 s.d 55 maka nila huruf D, Mutu 1 c. Jika Nilai angka 56 s.d 65 maka nila huruf C, Mutu 2 d. Jika Nilai angka 66 s.d 80 maka nila huruf B, Mutu 3 e. Jika Nilai angka 81 s.d 100 maka nila huruf A, Mutu 4 Kemudian hitung BOBOT = sks * Mutu Tampilan yang diinginkan seperti dibawah ini
NOBP : 060011 Nama : Siraj Syafiq Matakuliah : Java Programming No. 5: Program SKS : 3 Flowchart NiMencari lai angka : 83 kelulusan predikat -----------------------------------------------Nilai Huruf :A Nilai Mutu Start: 4 Bobot : 12 MID=0, UAS=0, RATA2=0
Jawaban soal no. 5
input MID, UAS
/* Menggunakan Java Programming * To change this template, choose Tools | Templates * and open the template in the editor. */
RATA2=(MID + UAS) / 2
False
package contohsoal; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; /** *
STMIK Indonesia Telp 0751 7058325
Algorithma dan Pemrograman
RATA2 > 65
True print("LULUS")
Ir. M. Amrin Lubis, M,Sc
Stop
print("GAGAL")
8
* @author Compaq */ public class Main { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here BufferedReader dataIn=new BufferedReader(new InputStreamReader(System.in)); String sMID=""; String sUAS=""; int nMID=0; int nUAS=0; int nTOTAL=0; double Rata2=0; try { System.out.print("NILAI MID SEMESTER : "); sMID=dataIn.readLine(); System.out.print("NILAI UAS : "); sUAS=dataIn.readLine(); }catch (IOException e){ System.out.println("Error : " + e.toString());} // meng-konversi nilai dari // type data string menjadi numeric(int) nMID=Integer.parseInt(sMID); nUAS=Integer.parseInt(sUAS); nTOTAL=nMID + nUAS; Rata2=nTOTAL/2; if (Rata2>65){ System.out.println(Rata2 + " LULUS"); } else { System.out.println(Rata2 +" GAGAL"); } } }
Jawaban soal no. 5, menggunakan C Programming /*
Author I
: M. Amrin Lubis, M.Sc Date-Written : Oct 22, 2008 nstallation : Labor Komp STMIK Indonesia
*/
STMIK Indonesia Telp 0751 7058325
Algorithma dan Pemrograman
Ir. M. Amrin Lubis, M,Sc
9
#include <stdio.h> #include
main() { //persiapan penggunakan variable, dan nilai awalnya int nMID=0, // int adalah type data bilangan bulat nUAS=0; float nRata2=0; // float adalah type data bilangan // desimal contoh 4,312
43
// input data MID dan UAS printf("Input Nilai MID = "); scanf("%d", &nMID); // menerima input data dari keyboard printf("Input Nilai UAS = "); scanf("%d", &nUAS); // %d dibaca format data bilangan bulat // proses nRata2= (float)(nMID + nUAS) /2 ; // cetak output if (nRata2 > 65 ) { printf("\nNIlai = %f LULUS",nRata2); // %d dibaca format data bilangan desimal } else { printf("\nNIlai = %f GAGAL",nRata2); } return 0; }
Array. 1. Buat program java menggunakan array untuk menampilkan nama-nama hari dalam seminggu ! lihat output yang diiinginkan ! Output Nama-nama hari senin
selasa
rabu
kamis
jumat
sabtu
minggu 2. Tampil
kan Kalender bulan Mei 2010 Sen
Sel
Rab
3 10 17 24 31
4 11 18 25
5 12 19 26
STMIK Indonesia Telp 0751 7058325
Mei 2010 Kam Jum 6 13 20 27
7 14 21 28
Algorithma dan Pemrograman
Sab 1 8 15 22 29
Min 2 9 16 23 30
Ir. M. Amrin Lubis, M,Sc
10
3. Kwitansi. Buatlah aplikasi untuk kwitansi, ketika anda ketik angka
maka otomatis muncul
terbilang seperti lay-out dibawah ini maksimal 3 digit Kwitansi Sudah terima dari Tn. Rahman Sebesar Rp. 9,Terbilang: Sembilan rupiah
Jawab soal-soal Sequence Structure
No. 1: Program Flowchart luas bangun segi tiga Start
A=0, T=0, LUASGT=0
No. 2: Program Flowchart luas bangun empat persegi panjang Start
PJ=0, LB=0, LUASPPJ=0
input PJ, LB input A,T
LUASPPJ = PJ * LB LUASGT = 0.5 *A*T
print LUASGT
T print LULUSPPJ
Stop Stop
Setelah disusun logika penyelesaikan masalah pada bagian soal-soal Sequence Structure seperti pada program flowchart diatas, kegiatan selanjutnya programmer menulis pemrograman seperti C++ programming. // program: luaSGT.cpp // Author : M. Amrin Lubis, Ir. M.Sc #include <stdio.h> #include main(){ int A=0,T=0; float L=0; printf("Panjang SISI ALAS "); scanf("%d", &A); printf("Panjang SISI TINGGI "); scanf("%d", &T); L=0.5 * A * T; STMIK Indonesia Telp 0751 7058325
Algorithma dan Pemrograman
Ir. M. Amrin Lubis, M,Sc
printf("LUAS BANGUN SEGI TIGA = %f", L);
return 0;
11
// program: luasPP.cpp // Author : M. Amrin Lubis, Ir. M.Sc #include <stdio.h> //1 #include main(){ int pj=0; // 2 int lb=0; int LUAS=0; printf("PANJANG SISI = “);//3 scanf("%d", &pj); printf("LEBAR SISI = “); scanf("%d", &lb); LUAS = pj * lb;
// 4
printf("LUAS EMPAT PERSEGI return 0;
PANJANG = %d \n", LUAS );
//5
// 6
}
Hal-hal yang perlu diperhatikan dalam menulis C++ programming, konsistensi dalam penulisan variabel dan pemakainnya karena pemrograman ini case sensitive yaitu membedakan penggunaan huruf kecil dan besar, cermati penggunaan tanda baca, dan susun logika program dengan sequence dan logis. Setelah program selesai ditulis, simpan, kemudian compile. Jika tidak terjadi error langsung ketahap berikutnya yakni run. Compile adalah proses menterjemahkan bahasa pemrograman kedalam bahasa mesin agar komputer dapat merespon perintah yang dibuat dalam program. Pada tahap ini hasil compile akan diperoleh file dengan ekstensi obj. Bila waktu meng-compile program tidak terjadi error maka akan di dapat file dengan ekstensi executable (exe). Sebaliknya program yang masih error silahkan diperbaiki sampai pada kondisi no error. Ketika meng-compile program adakalanya hasilnya pada kondisi program no error tetapi mengadung warning, artinya masih ada timbul kesalahan namun dalam batas toleransi, jika sejumlah
STMIK Indonesia Telp 0751 7058325
Algorithma dan Pemrograman
Ir. M. Amrin Lubis, M,Sc
12
data tertentu diinput untuk menguji program kadang timbul error. Compiler yang dipakai dalam module ini adalah Visual C++, namun anda boleh menggunakan compiler yang lain seperti Borland C++, dll. Run merupakan proses menjalankan program, tahapan ini baru dapat dilakukan jika program yang telah di Compile sudah tidak mengandung error. Programmer dapat menginput data, menguji program yang dibuat, dan perhatikan output yang ditampilkan apakah sesuai dengan yang diminta dalam soal. Amatilah seteiap respon yang ditampilkan komputer saat anda mengujinya.
STMIK Indonesia Telp 0751 7058325
Algorithma dan Pemrograman
Ir. M. Amrin Lubis, M,Sc
13