Praktikum Modul Praktikum ke Judul Materi Tujuan / Sasaran
: Algoritma dan Pemrograman I : 02 : Pemilihan I / Selection I : Mahasiswa dapat membuat pseudocode, algoritma dan flowchart serta mempraktekkan perintah selection/ pemilihan (If ; If … Else) : 3 Jam : C++
Waktu (lama) Aplikasi yang digunakan
I.
Selection (Pemilihan)
Statemen ini digunakan untuk memilih bagian program yang akan dikerjakan sesuai dengan kondisi yang diberikan. Macam-macam statemen pencabangan : -
If … …
……….
……
-
Perintah IF memiliki bentuk umum sebagai berikut : if (kondisi) pernyataan
Bentuk diatas mempunyai arti jika kondisi bernilai benar maka pernyataan dibawahnya akan dikerjakan. Jadi perintah IF merupakan perintah yang menentukan pengambilan keputusan bahwa pernyataan itu akan dikerjakan atau tidak
Dibawah ini contoh flowchart, algoritma dan program Pemilihan/Selection, apabila bilangan N habis dibagi P maka berkomentar Benar ALGORITMA : Flowchart
Pseudocode
START
Program N bagi P; Kamus N, P : Integer
N, P
Deskripsi Input(N, P)
N mod P = 0
F
If (N mod P = 0) then Print(’BENAR’) Endif
T ‘BENAR’
END
Algoritma dan Pemrograman I
Hal : 1
{Nama file : IF01.cpp}
- If … Else …
……
……….
………. -
Perintah IF …. ELSE memiliki bentuk umum sebagai berikut : if (kondisi) pernyataan1 else pernyataan2 Bentuk diatas mempunyai arti jika kondisi benar maka pernyataan1 akan dikerjakan dan jika kondisi salah maka pernyataan2 yang dikerjakan.
-
Seperti pada perintah IF, maka perintah IF …. ELSE juga dapat diikuti pernyataan majemuk. Bentuk umum sebagai berikut :
Algoritma dan Pemrograman I
Hal : 2
if (kondisi) { pernyataan1 pernyataan2 ............... ............... pernyataan_s } else { pernyataan6 pernyataan7 ................. ................ pernyataan_r } Dibawah ini contoh flowchart, algoritma dan program Pemilihan/Selection, apabila bilangan N habis dibagi P maka berkomentar “BENAR” kalau tidak habis dibagi P berkomentar “SALAH” ALGORITMA : Flowchart
Pseudocode
START
Program N bagi P; Kamus
N, P
N, P : Integer Deskripsi
N mod P = 0
F
Input(N, P) If (N mod P = 0) then Print(’BENAR’)
T ‘BENAR’
‘SALAH’
Else Print(’SALAH’)
END
Algoritma dan Pemrograman I
Hal : 3
{Nama file : IF02.cpp}
II.
Soal praktikum / latihan
Buat Pseudecode, Flowchart dan Programnya Perintah IF 1. Jika seseorang memiliki gaji >5.000.000 maka dikategorikan orang kaya (nama file : Prak2-01.cpp) 2. Jika seseorang memiliki tinggi berat badan badan <70 maka di kategorikan sebagai orang besar (nama file : Prak2-02.cpp) 3. Andi mejual bolpoint di tokonya dengan harga Rp 1.000,- per biji . dengan ketentuan akan memberi diskon 20% setiap membeli seharga Rp50.000,00. Tampilkan total yang harus dibayar seoraang pembeli sesudah dikurangi harga diskon (nama file : Prak2-03.cpp)
Algoritma dan Pemrograman I
Hal : 4
4. Tampilkan sebuah kondisi jika berat badan lebih dari 70 kg maka akan menampilkan “Kamu Gendut”.(tanpa inputan) (nama file : Prak2-04.cpp) 5. Input nilai1 s.d nilai 5 , jika rata-rata nilai lebih dari 70 maka dinyatakan lulus (nama file : Prak2-05.cpp) 6. Diketahui : UAS = 90 UTS = 89 Tugas = 60 Hasil=(UAS x 5%)+(UTS x 3%)+ (Tugas x 2%). Jika hasil > 75 maka di nyatakan “LULUS” (nama file : Prak2-06.cpp) 7. Tampilkan soal 6 dengan menggunakan inputan (nama file : Prak2-07.cpp) 8. Lakukan dengan inputan, jika angka > 8 , maka Y = angka * 30/ 5 (nama file : Prak2-08.cpp) 9. Jika seorang memiliki gaji < 5.000.000 dikategorikan orang kurang mampu (nama file : Prak2-09.cpp) 10. Karyawan di PT sejahtera dihitung perjam sebesar Rp,3500/jam. Jika jam kerja lebih dari 48 jam maka dihitung lembur. Gaji jam untuk lembur adalah Rp, 4000/jam Hitung jumlah yang harus di dapat jika dia bekerja selama seminggu (nama file : Prak2-10.cpp) 11. Apabila Nilai Akhir < 60, maka “Tidak Lulus” [Nilai Akhir = 40%*UAS+ 30%*UTS+20%*Tugas+10%*Absen] (nama file : Prak2-11.cpp) 12. Apabila Total Belanja > 100jt, mendapatkan “Sepeda Motor“ (nama file : Prak212.cpp) 13. Menentukan apakah sebuah bilangan benilai Negatif (nama file : Prak2-13.cpp) 14. Jika seseorang memiliki tensi darah < 90 maka dia dikategorikan seseorang yang hipotensi (nama file : Prak2-14.cpp) 15. Jika seseorang memiliki tensi darah > 120maka dia dikategorikan seseorang memiliki kelainan hipertensi (nama file : Prak2-15.cpp) 16. Jika membeli barang di toko bunda akan mendapatkan diskon 50% dengan ketentuan belanja seharga >100.000 (nama file : Prak2-16.cpp) 17. Jika seseorang belanja dengan total > 200.000 maka akan mendapatkan voucher pulsa (nama file : Prak2-17.cpp) 18. Budi sedang berbelanja di Indomaret dengan barang yang dibelinya Susu Formula seharga 10.000, Kopi 1kg bubuk seharga 15.000 dan pampers bayi seharga 7.000 . Jika budi membeli : Susu Formula sebanyak 3 buah, Kopi 1kg bubuk 2buah, dan pamper bayi 2 buah. Hitung dan tampilkan Jumlah total belanja sebelum diskon, dan total yang harus dibayar setelah diskon. Jika total belanjanya lebih dari 50.000 maka mendapatkan diskon 10% (nama file : Prak218.cpp)
Algoritma dan Pemrograman I
Hal : 5
19. Apabila nilai ujian < 60 maka “Tidak lulus” (nama file : Prak2-19.cpp) 20. Apabila Nilai Akhir > 60, maka “LULUS” [Nilai Akhir = 30%*UTS+20%*Tugas+10%*Absen] (nama file : Prak2-20.cpp)
40%*UAS+
21. Jika Total Belanja < 5jt, maka mendapat diskon = 0 (nama file : Prak2-21.cpp) 22. Dibaca dua buah bilangan yang membedakan apakah A > B, apabila lebih besar maka berkomentar “Benar” (nama file : Prak2-22.cpp) 23. Dibaca dua buah bilangan yang membedakan apakah A < B, apabila lebih kecil maka berkomentar “Salah” (nama file : Prak2-23.cpp) 24. Apabila tinggi seseorang > 160cm, dikategorikan “Manusia Melar” (nama file : Prak2-24.cpp) 25. Apabila yang dimasukkan angka > 5, maka Y = angka*10+100 (nama file : Prak225.cpp) 26. Apabila nilai ujian < 60, maka “Tidak Lulus” (nama file : Prak2-26.cpp) 27. Jika Total Belanja > 5jt, maka mendapat diskon 5% dari total belanja (nama file : Prak2-27.cpp) 28. Menentukan bilangan yang dimasukkan adalah bilangan ganjil (nama file : Prak228.cpp) 29. Apabila Total Belanja < 100.000, maka “Tidak Mendapatkan Diskon”. [Total Belanja = Quantity Barang*Harga Brg] (nama file : Prak2-29.cpp) 30. Menentukan tahun yang dimasukkan adalah tahun kabisat (nama file : Prak230.cpp) Perintah IF ...... Else 31. Dibaca dua buah bilangan yang membedakan apakah A > B, apabila lebih besar maka berkomentar “Benar” tetapi kalau tidak akan berkomentar “Salah” (nama file : Prak2-31.cpp) 32. Dibaca dua buah bilangan yang membedakan apakah A < B, apabila lebih kecil maka berkomentar “Salah” tetapi kalau tidak akan berkomentar “Benar” (nama file : Prak2-32.cpp) 33. Apabila tinggi seseorang > 160cm, dikategorikan “Manusia Melar” tetapi kalau tidak akan berkomentar “Manusia Semampai” (nama file : Prak2-33.cpp) 34. Apabila yang dimasukkan angka > 5, maka Y = angka*10+100 tetapi kalau tidak Y=0 (nama file : Prak2-34.cpp) 35. Apabila nilai ujian < 60, maka “Tidak Lulus” tetapi kalau tidak akan berkomentar “Lulus” (nama file : Prak2-35.cpp) 36. Jika Total Belanja > 5jt, maka mendapat diskon 5% dari total belanja tetapi kalau diskon=0 (nama file : Prak2-36.cpp) Algoritma dan Pemrograman I
Hal : 6
37. Menentukan bilangan yang dimasukkan adalah bilangan genap dan bilangan ganjil (nama file : Prak2-37.cpp) 38. Apabila Total Belanja < 100.000, maka “Tidak Mendapatkan Diskon”. [Total Belanja = Quantity Barang*Harga Brg] tetapi jika tidak akan berkomentar “Mendapat Diskon” (nama file : Prak2-38.cpp) 39. Bu Novita menjual mangga golek dengan harga Rp. 1.100,- per buah. Seorang pembeli akan mendapat diskon sebesar 10% jika total pembelian di atas Rp. 100.000,- Tampilkan total yang harus dibayar seorang pembeli, besarnya diskon yang didapat dan total yang harus dibayarkan sesudah dikurangi dengan diskon. (nama file : Prak2-39.cpp) 40. Sebuah perusahaan akan mengadakan test penerimaan karyawan baru. Setiap pelamar akan dipanggil untuk mengikuti test jika pelamar tersebut berumur antara 20 tahun s.d. 30 tahun. Buatlah program dengan C++ yang akan memberikan keterangan apakah seseorang akan dipanggil atau tidak. Kalau usianya < 20 maka tidak dipanggil (nama file : Prak2-40.cpp) 41. Jika pengguna memasukkan 0, program menampilkan “Minggu”; Jika pengguna memasukkan nilai diluar jangkauan 0, program menampilkan “Hari tidak valid” (nama file : Prak2-41.cpp) 42. Untuk memilih huruf vokal, dari masukan karakter yang diberikan. Huruf vokal adalah e. Beri komentar jika salah (nama file : Prak2-42.cpp) 43. Dalam acara orientasi studi, seorang peserta harus mencari tandatangan. Tandatangan dosen dinilai 3, tandatangan mahasiswa senior yang panitia dinilai 2, tandatangan karyawan dan mahasiswa senior lain 1. Peserta dinyatakan lulus bila berhasil mendapatkan nilai 80 atau lebih, mendapat hukuman ringan bila < 80. (nama file : Prak2-43.cpp) 44. Hotel Merah Delima mempunyai sistem informasi tentang pembayaran penginapan, dengan masukan input : lama menginap dan harga kamar. Jumlah bayar dihitung dari lama menginap dikali dengan harga kamar/hari. Jika jumlah bayar diatas 700.000 mendapat discount 30%, jika jumlah bayar kurang dari 700.000 mendapat discount 20%. Total bayar akhir dihitung dari jumlah bayar dikurangi discount (nama file : Prak2-44.cpp) 45. Tampilkan nilai bangun ruang yang dipilih dengan inputan, jika anda memasukan 1 makan akan menghitung keliling dan luas segitiga, jika anda memilih 2 makan akan menghitung keliling dan luas persegi. Jika anda memilih 3 ( “Tidak tersedia”) (nama file : Prak2-45.cpp) 46. Apabila tinggi seseorang > 170cm dikatagorikan “Manusia melar” tetapi kalau kurang < 170cm disebut “Manusia Semampai” (nama file : Prak2-46.cpp) 47. Lakukan dengan inputan, menghitung penghasilan Steam mobil dihari ke-1 dan ke-2. Jumlah pengunjung dihari pertama 7 mobil, jumlah pengunjung dihari ke 2 15 mobil. Harga untuk Steam mobil Rp. 15.000/mobil. Jika penghasilan dihari kedua > penghasilan dihari pertama mencetak “Lebih untung” jika tidak “Kurang untung” (nama file : Prak2-46.cpp)
Algoritma dan Pemrograman I
Hal : 7
48. Menentukan bilangan yang dimasukan apakah bilangan ganjil atau genap (nama file : Prak2-48.cpp) 49. Sebuah hotel X menawarkan diskon kepada pelanggannya. Dengan ketentuan total bayar lebih dari 500.000 maka akan mendapatkan diskon 10% jika tidak maka tidak akan mendapat diskon. 1 hari menginap = Rp.275.000 terhitung kelipatannya. Jika Sari menginap di hotel tersebut selama 3 hari berapa total bayar sebelum diskon dan sesudah diskon (nama file : Prak2-49.cpp) 50. Buat suatu kondisi jika x=1 maka akan menghitung luas segitiga, dan jika x=2 maka akan menghitung luas persegi, jika diketahui bahwa si A ingin menghitung luas segitiga bagaimana programnnya (tanpa inputan).(alas =12 tinggi= 20 sisi=40) (nama file : Prak2-50.cpp) 51. Buat suatu kondisi jika x=1 maka akan menghitung luas segitiga, dan jika x=2 maka akan menghitung luas persegi.dengan menggunakan inputan.(menginput nilai x,alas,tinggi ,dan sisi) (nama file : Prak2-51.cpp) 52. Tampilkan sebuah kondisi jika berat badan lebih dari 70 kg maka akan
menampilkan “Kamu Gendut” jika tidak maka akan menampilkan “Berat Kamu Normal”(tanpa input) (nama file : Prak2-52.cpp) 53.
III.
Seorang pegawai yang bekerja di perusahaan Y memperoleh gaji berbeda beda sesuai dengan golongannya. untuk pegawai yang bergolongan A mendapatkan gaji Rp.4000.000 per bulan di tambah dengan uang lembur 50.000 per jam dan yang lain tidak mendapat uang lembur. Jika Pak Anto pegawai bergolongan A . berapa gaji yang di terima pak Anto jika selama 1 bulan dia bekerja lembur selama 5 jam (nama file : Prak2-53.cpp)
Referensi -
Munir, Rinaldi, Algoritma & Pemrograman 1 & 2, Penerbit Informatika, Jakarta, 2003 Brookshear, Glenn, Computer Science, Penerbit Erlangga, Jakarta, 2004 Suryadi, Pengantar Algortima dan Pemrograman Yatini B, Indra, Pemrograman Terstruktur, J&J Learning Yogyakarta, 2001 Limanto, Susana, Algoritma dan pemrograman, Dinastindo Jakarta, 2002 Paul Tremblay, Jean, An Introduction to Computer Science an algorithmic Approach, McGraw-Hill, 1981 Wirth, Niklaus, Algorithmic + Data Structures = Programs, PrenticeHall, 1976 Jogiyanto H.M, Kosep Dasar Pemrograman Bahasa C, Andi Offset Yogyakarta, 1993 Munir, Rinaldi, Algoritma dan Pemrograman Dalam Bahasa Pascal dan C, Informatika Bandung, 2001 Pranata, Antony, Algoritma dan Pemprograman, J&J Learning Yogyakarta, 2000 Andri Kristanto, Algoritma dan Pemrograman dengan C++, Graha Ilmu, 2003 Thompson Susabda Ngoen , Algoritma dan Struktur Data Bahasa C, Mitra Wacana Media, 2009
Algoritma dan Pemrograman I
Hal : 8
Algoritma dan Pemrograman I
Hal : 9