MODUL 2
PRAKTIKUM DASAR PEMROGRAMAN
ELIN DAMAYANTI
135623066
JURUSAN TEKNIK ELEKTRO
PRODI D3 MANAJEMEN INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS NEGERI SURABAYA
DASAR TEORI
1. Netbeans dan Eclipse
a. Netbeans
Netbeans merupakan sebuah aplikasi Integrated Development Environment
(IDE) yang berbasiskan Java dari Sun Microsystems yang berjalan di atas swing.
Swing merupakan sebuah teknologi Java untuk pengembangan aplikasi desktop
yang dapat berjalan pada berbagai macam platform seperti windows, linux, Mac
OS X dan Solaris. Sebuah IDE merupakan lingkup pemrograman yang di
integrasikan ke dalam suatu aplikasi perangkat lunak yang menyediakan Graphic
User Interface (GUI), suatu kode editor atau text, suatu compiler dan suatu
debugger.
Fitur fitur yang terdapat dalam netbeans antara lain:
1. Smart Code Completion: untuk mengusulkan nama variabel dari suatu tipe,
melengkapi keyword dan mengusulkan tipe parameter dari sebuah method.
2. Bookmarking: fitur yang digunakan untuk menandai baris yang suatu saat
hendak kita modifikasi.
3. Go to commands: fitur yang digunakan untuk jump ke deklarasi variabel,
source code atau file yang ada pada project yang sama.
4. Code generator: jika kita menggunakan fitur ini kita dapat meng-generate
constructor, setter and getter method dan yang lainnya.
5. Error stripe: fitur yang akan menandai baris yang eror dengan memberi
highlight merah.
Kelebihan NetBeand GUI Builder :
Salah satu yang menjadi kelebihan NetBeans GUI Builder adalah yang telah
disebutkan diatas, yaitu GRATIS. Selain itu NetBeans GUI Builder sangat
kompetebel dengan Swing karena memang langsung dikembangkan oleh Sun
yang notabenenya sebagai pengembang Swing.
Kekurangan NetBeans GUI Builder :
NetBeans hanya mensupport 1 pengembangan Java GUI, yaitu Swing, yang
padahal ada Java GUI yang dikembangkan oleh eclipse yang bernama SWT dan
JFace yang sudah cukup populer.
b. Eclipse
Eclipse adalah sebuah IDE (Integrated Development Environment) untuk
mengembangkan perangkat lunak dan dapat dijalankan di semua platform
(platform-independent).
Berikut ini adalah sifat dari Eclipse:
Multi-platform: Target sistem operasi Eclipse adalah Microsoft
Windows, Linux, Solaris, AIX, HP-UX dan Mac OS X.
Mulit-language: Eclipse dikembangkan dengan bahasa pemrograman
Java, akan tetapi Eclipse mendukung pengembangan aplikasi berbasis
bahasa pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP,
dan lain sebagainya.
Multi-role: Selain sebagai IDE untuk pengembangan aplikasi, Eclipse
pun bisa digunakan untuk aktivitas dalam siklus pengembangan perangkat
lunak, seperti dokumentasi, test perangkat lunak, pengembangan web, dan
lain sebagainya
2. Penulisan Program di Java, Input, Output
a. InputStream.java import java.io.*;
class InputStream {
public static void main(String[] args) throws
IOException {
byte[] data = new byte[10];
System.out.print("Ketik 10 buah karakter :");
System.in.read(data);
System.out.print("Karakter yang Anda ketik yaitu : ");
for(int i=0;i<data.length;i++) {
System.out.print((char)data[i]); }
}
}
b. OutputStream.java import java.io.*;
class OutputStream {
public static void main(String[] args) throws
IOException {
byte[] data = {'a','b','c','d','e','f','g'};
System.out.write(data,3,4);
System.out.write('\n'); //pindah baris
System.out.write(data); //tulis semua isi array data }
}
3. Operator: Assigment, Matematika, Perbandingan, Logika
a. Operator Assigment
Operator assignment dalam Java digunakan untuk memberikan sebuah nilai ke
sebuah variabel. Operator assignment hanya berupa ‘=’, namun selain itu dalam
Java dikenal beberapa shortcut assignment operator yang penting, yang
digambarkan dalam tabel berikut :
b. Operator Matematika / Aritmatika
Operator ini digunakan untuk melakukan matematika dasar.
Contoh Nama Hasil
$a + $b Penjumlahan Jumlah $a dan $b.
$a – $b Pengurangan Selisih $a dan $b.
$a * $b Perkalian Perkalian $a dan $b.
$a / $b Pembagian Pembagian $a dan $b.
$a % $b Modulus Sisa $a dibagi $b.
c. Operator Perbandingan Operator ini digunakan untuk melakukan pembandingan apakah beberapa elemen
sama, identik, kurang dari atau lebih besar dari yang lain.
Contoh Nama Hasil
$x == $y Sama dengan BENAR jika $x sama dengan $y.
$x === $y Identik BENAR jika $x sama dengan $y, dan keduanya memiliki
tipe yang sama.
$x != $y Tidak sama
dengan BENAR jika $x tidak sama dengan $y.
$x <> $y Tidak sama
dengan BENAR jika $x tidak sama dengan $y.
$x !== $y Tidak identik BENAR jika $x tidak sama dengan $y, atau tidak memiliki
tipe yang sama.
$a < $b Kurang dari BENAR jika $a kurang dari $b.
$a > $b Lebih besar dari BENAR jika $a lebih besar dari $b.
$a <= $b Kurang dari atau
sama dengan BENAR jika $a kurang dari atau sama dengan $b.
$a >= $b Lebih besar dari
atau sama dengan BENAR jika $a lebih besar dari atau sama dengan $b.
Kesalahan yang cukup sering orang lakukan adalah menggunakan operator
assignment (“=”) untuk membandingkan, sehingga untuk mambandingkan apakah 2
variabel sama atau tidak dalam sebuah percabangan menuliskan:
If ($x = $y)
seharusnya
If ($x == $y)
d. Operator Logika
Di sini anda dapat membandingkan elemen-elemen menggunakan pembandingan
logika and dan or.
Contoh Nama Hasil
$a and $b And BENAR jika baik $a dan $b keduanya BENAR.
$a or $b Or BENAR jika salah satu dari $a atau $b BENAR.
$a xor $b Xor BENAR jika salah satu dari $a atau $b BENAR, tetapi tidak
keduanya.
! $a Not BENAR jika $a tidak BENAR.
$a && $b And BENAR jika baik $a dan $b keduanya BENAR.
$a || $b Or BENAR jika salah satu dari $a atau $b BENAR.
4. Tingkatan Operator
Tabel pada halaman berikut akan memperlihatkan kedudukan dari setiap
operator terhadap operator lainnya, dan bagaimana arah pengeksekusian dari suatu
pernyataan yang mengandung operator tersebut
Operator Evaluasi
( ) [ ] . kiri ke kanan
! ~ ++ -- + - * & (type) sizeof kanan ke kiri
* / % kiri ke kanan
+ - kiri ke kanan
<< >> kiri ke kanan
< <= > >= kiri ke kanan
== != kiri ke kanan
& kiri ke kanan
^ kiri ke kanan
| kiri ke kanan
&& kiri ke kanan
|| kiri ke kanan
? : kanan ke kiri
= += -= *= /= %= &= ^= |= <<= >>= kanan ke kiri
, kiri ke kanan
Sebagai contoh, operator binary + dan - mempunyai kedudukan yang lebih
tinggi dibandingkan dengan operator !=, dan operator & mempunyai kedudukan yang
lebih tinggi dibandingkan dengan operator &&.
5. Percabangan (if, if....else, if...elseif...., switch)
a. if Percabangan if ini digunakan jika kita hanya memiliki satu pernyaatan
yang akan dijalankan dengan syarat tertentu. Sintaks if seperti berikut :
if(kondisi){
pernyataan
}
Jika kondisi benar, maka pernyataan akan dijalankan.
Contoh :
public class coba{
public static void main (String [] args){
int a=0;
if (a==0)
System.out.println("Nilai a = 0");
if (a==1)
System.out.println("Nilai a = 1");
}
}
Output : Program akan menampilkan nilai a = 0 saja, karena pada if yang kedua,
kondisi tidak memenuhi atau salah.
b. if else Percabangan if else digunakan saat kita memiliki dua
pernyataan dengan syarat tertentu. Sintaks if-else seperti berikut :
if(kondisi){
pernyataan1
}else{
pernyataan2
}
Jika hasil dari if benar, maka pernyataan1 yang dijalankan, sedangkan jika salah,
pernyataan dua yang akan dijalankan.
Contoh :
public class coba{
public static void main (String [] args){
int a=0;
if (a==0)
System.out.println("Nilai a = 0");
else
System.out.println("Nilai a = 1");
}
}
Output : program akan menampilkan nilai a = 0, karena kondisi if bernilai benar,
jika pada inisialisasi nilai a tidak bernilai 0, maka program akan menampilkan
nilai a = 1.
c. else -if percabangan yang digunakan saat kita memiliki banyak kondisi (lebih
dari 2) dan banyak pernyataan (lebih dari 2). Sintaks dari else-if seperti berikut :
if(kondisi){
pernyataan1
}elseif(kondisi2){
pernyataan2
}else(kondisi3){
pernyataan3
}
else {
penyataan4
}
jika kondisi1 benar, maka pernyataan1 akan dijalankan, jika kondisi2 benar, maka
penyataan2 akan dijalankan, jika semua kondisi salah, maka penyataan4 yang
akan dijalankan saja.
Contoh :
public class coba{
public static void main (String [] args){
int a=2;
if (a==0)
System.out.println("Nilai a = 0");
else if(a==1)
System.out.println("Nilai a = 1");
else if(a==2)
System.out.println("Nilai a = 2");
}
}
Output : Program akan menampilkan nilai a = 2 saja, karena pada else-if yang
ketiga atau dengan pernyataan a==2 bernilai benar, sedangkan pernyataan yang
lain tidak dijalankan karena kondisi tidak memenuhi.
d. switch-case percabangan yang digunakan saat kita memiliki banyak kondisi
(lebih dari 2) dan banyak pernyataan (ledbih dari 2). Sebenarnya switch-case ini
hampir sama dengan else if, hanya saja sintaksnya yang berbeda. Sintaks dari
switch-case seperti berikut :
switch (variabel) {
case nilai1: pernyataan1;
break; case nilai2: pernyataan2;
break; default: pernyataan3;
}
Jika nilai variabel yang ditunjuk bernilai sesuai nilai1, maka pernyataan1 akan
dijalankan, jika nilai variabel yang ditunjuk bernilai sesuai nilai2, pernyataan2
dijalankan, jika tidak ,maka pernyataan3 yang akan dijalankan.
public class coba{
public static void main (String [] args){
int a=3;
switch (a) {
case 1:
System.out.println("Nilai a=1");break;
case 2:
System.out.println("Nilai a=2"); break;
case 3:
System.out.println("Nilai a=3");break;
default:
System.out.println("Nilai a=4"); break
}
}
}
Output : Program akan menampilkan nilai a = 2 saja, karena kondisi bernilai
benar, perhatika break dibelakang pernyataan, jika break ini dihapus, maka semua
pernyataan akan dijalankan. Break digunakan untuk keluar dari switch-case saat 1
pernyataan sudah dijalankan.
SOAL PRAKTIKUM
1. Tuliskan algoritma untuk mencari sisi miring dari suatu segitiga siku-siku jika
diketahui diketahui panjang dua sisi yang membentuk sudut siku-siku.
Petunjuk : sisi miring segitiga siku-siku dapat dihitung dengan rumus pythagoras,
2. Tuliskan algoritma untuk menampilkan banyaknya pecahan uang paling efisien dari
sejumlah uang yang di inputkan oleh pengguna.
Pecahan uang yang digunakan: 100.000, 50.000, 20.000, 10.000, 5.000, 2.000, 1.000,
500, 200, dan 100.
Contoh : untuk uang Rp 12.500, diperlukan 1 lembar 10.000, 1 lembar 2.000, dan 1
koin 500.
Input : jumlah uang
Output : banyaknya pecahan uang
3. Buat algoritma untuk mengkonversi bilangan dalam format desimal menjadi biner.
Input : bilangan desimal
Output : bilangan biner
Ilustrasi :
4. Untuk menentukan bonus pegawai, berdasarkan ketentuan yang diberikan oleh bagian
personalia dan keuangan sebagai berikut : Pegawai perusahaan digolongkan menjadi
dua golongan, yaitu staf dan non staf. Staf akan mendapatkan bonus sebesar 1 juta
rupiah dengan syarat bahwa ia telah bekerja paling tidak 5 tahun dan umurnya sudah
mencapai 50 tahun; staf yang bekerja kurang dari 5 tahun dan berapapun umurnya,
hanya mendapat bonus sebesar Rp. 500.000. Pegawai non staf yang telah bekerja
lebih dari 5 tahun akan mendapat bonus sebesar Rp. 400.000 jika berumur lebih dari
50 tahun sedangkan pegawai non staf yang berumur kurang dari 50 tahun hanya
mendapat bonus Rp. 250.000. Pegawai staf yang umurnya kurang dari 50 tahun akan
mendapat bonus Rp. 300.000.
Buat algoritmanya !
5. Tarif pemasangan iklan baris di sebuah Surat Kabar ditentukan sebagai berikut :
Hari : Minggu, Senin, Selasa, Rabu, Kamis dan Jumat, per baris Rp.
33.000,-
Hari : Sabtu, per baris Rp. 40.000,-
Buatlah algoritma untuk menghitung total biaya iklan baris yang harus dibayar oleh
pengiklan.
Input : - Hari (Minggu, Senin, Selasa, Rabu, Kamis, Jumat atau Sabtu)
- Jumlah baris yang dipakai
Output : Total biaya iklan yang harus dibayar pengiklan
Tuliskan algoritma untuk kasus diatas dalam bentuk flowchart !
6. Info Harga Tiket Masuk bioskop Surabaya City adalah sebagai berikut :
Senin – Kamis : Rp 15.000,-
Jumat s/d Minggu : Rp 35.000,-
Hari Libur : Rp 35.000,-
Input : - Hari (Minggu, Senin, Selasa, Rabu, Kamis, Jumat atau Sabtu)
- Libur atau Tidak Libur
- Jumlah tiket yang dibeli
Output : Total biaya tiket
Buat algoritma untuk menghitung total biaya tiket !
7. Di sebuah perbelanjaan di Surabaya diadakan Pekan Diskon, dimana perhitungan
bonus dihitung bertingkat untuk total belanja senilai :
Rp. 150.000,- diskonnya : 10%
Rp. 275.000,- diskonnya : 15%
Rp. 300.000,- diskonnya : 20%
Rp. 400.000,- ke atas diskonnya : 25% Diskon tidak dihitung sebagai akumulasi dari diskon nilai belanja dibawahnya.
Buatlah algoritma untuk menghitung berapa nilai yang harus dibayar oleh
pelanggan dengan total nilai belanja tertentu bila disertakan pula perhitungan
diskonnya !
Input : Total nilai belanja.
Output : Nilai Diskon (dalam rupiah/bukan persen), Nilai yang harus dibayar
8. Berikut ini adalah ketentuan untuk menghitung nilai, dan konversi menjadi nilai
huruf.
Ketentuannya:
Nilai=((rata-rata tugas*30%)+(UTC*30%)+(UAC*40%))
Input = tugas1,tugas2,tugas3,UTC,UAC
Output = Nilai Akhir dan Nilai Huruf.
‘A’ jika nilai > 80 dan nilai <= 100
‘AB’ jika nilai > 70 dan nilai <= 80
‘B’ jika nilai > 65 dan nilai <= 70
‘BC’ jika nilai > 60 dan nilai <= 65
‘C’ jika nilai > 55 dan nilai <= 60
’D’ jika nilai > 40 dan nilai <= 55
’E’ jika nilai > 0 dan nilai <= 40
9. Berikut ini adalah tarif pemakaian Air PDAM Kota Surabaya
Jumlah Pemakaian (m3) Harga/m
3
Pemakaian I ( < 50 m3) Rp. 200,-
Pemakaian II ( 51 – 150 ) Rp. 500,-
Pemakaian III ( 151 – 300 ) Rp. 1.000,-
Pemakaian I V ( > 300 m3 ) Rp.1.500,-
Input : Jumlah Pemakaian
Output : Besar biaya yang harus dibayar
Jumlah Pemakaian = 500 m3
Pemakaian I ( s/d 50 m3) Rp. 200,- * 50 = Rp. 10.000,-
Pemakaian II ( 51 – 150 ) Rp. 500,- * 100 = Rp. 50.000,-
Pemakaian III ( 151 – 300 ) Rp. 1.000,- * 150 = Rp. 150.000,-
Pemakaian IV ( > 300 m3 ) Rp.1.500,- * 200 = Rp. 300.000,-
Biaya Total Rp. 510.000,-
Buat algoritma untuk kasus diatas !
10. Sebuah perusahaan kartu kredit memberikan cash back kepada nasabahnya
berdasarkan jumlah nilai pemakaian kartu kredit selama sebulan.
Nilai pemakaian cash back
--------------------- ----------
s.d 1.000.000 5%
1.000.000 – 10.000.000 6%
10.000.000 – 25.000.000 7%
Diatas 25.000.000 8%
Ilustrasi : seorang nasabah yang total pemakaian selama sebulan 18.000.000, maka
cash backnya= 5%x1.000.000+6%x9.000.000+7%x8.000.000 = 160.000
Buat algoritma untuk menghitung cash back yang diterima nasabah
berdasarkan nilai pemakaian kartu kredit !
FLOWCHART ATAU PSOUDOCODE
SOAL NO.1
Algoritma : Flowchart : a. Tentukan nilai a, b
b. Hitung C =
c. Tampilkan C
Psoudocode :
a. Input (a,b)
b. C
c. Output (c)
SOAL NO.2
Algoritma :
a. Tentukan uang
b. Hitung p100r = uang/100000
Hitung sp100r = uang – p100r*100000
Hitung p50r = sp100r/50000
Hitung sp50r = sp100r – p50r*50000
Hitung p20r = sp50r/20000
Hitung sp20r = sp50r – p20r*20000
Hitung p10r = sp20r/10000
Hitung sp10r = sp20r – p10r*10000
Hitung p5r = sp10r/5000
Hitung sp5r = sp10r – p5r*5000
Hitung p1r = sp5r/1000
Hitung sp1r = sp5r – p1r*1000
Hitung p0,5r = sp1r/500
Hitung sp0,5r = sp1r – p0,5r*500
Hitung p0,1r = sp0,5r/100
Hitung sp0,1r = sp0,5r – p0,1r*100
c. Tampilkan p100r, p50r, p20r, p10r, p5r, p1r, p0,5r, p0,1r
Pseudocode :
a. Input (uang)
b. p100r uang/100000
sp100r uang – p100r*100000
p50r sp100r/50000
sp50r sp100r – p50r*50000
p20r sp50r/20000
sp20r sp50r – p20r*20000
p10r sp20r/10000
sp10r sp20r – p10r*10000
p5r sp10r/5000
sp5r sp10r – p5r*5000
p1r sp5r/1000
sp1r sp5r – p1r*1000
p0,5r sp1r/500
sp0,5r sp1r – p0,5r*500
p0,1r sp0,5r/100
sp0,1 sp0,5r – p0,1r*100
c. output (p100r, p50r, p20r, p10r, p5r, p1r, p0,5r, p0,1r)
flowchart :
SOAL NO.3
Algoritma :
a. Baca des
b. 1. Desimal=des/2
2. Sisa= desimal%2
3. d= d*2
4. biner= biner + sisa * d
5. jika desimal 0 pergi ke c
6. pergi ke 1
c. cetak desimal
Pseudocode :
a. input (des)
b. Desimal des/2
c. Sisa desimal%2
d. D= d*2
e. Biner biner+sisa*d
f. If desimal == 0 output (desimal)
g. Else kembali ke b
flowchart :
SOAL NO.4
Algoritma :
a. Tentukan l,u,s,ns
b. Bonus =
1. Jika ns
2. Jika l <= 5 & u <=50
3. cetak bonus 400
4. jika l>= 5
5. cetak bonus 250
6. jika s
7. Jika l <= 5 & u <=50
8. Cetak bonus 1jt
9. jika l<= 5 & u >= 50
10. cetak bonus 500
11. else s u>=50
12. cetak bonus 300
c. Tampilkan bonus
Pseudocode :
a. Input (l,u,s,ns)
b. Bonus =
1. Jika ns
2. Jika l <= 5 & u <=50
3. Cetak bonus 400
4. Jika l>= 5
5. Cetak bonus 250
6. Jika s
7. Jika l <= 5 & u <=50
8. Cetak bonus 1jt
9. Jika l<= 5 & u >= 50
10. Cetak bonus 500
11. Else s u>=50
12. Cetak bonus 300
c. Output (bonus)
Flowchart :
SOAL NO.5
Algoritma :
a. Tentukan hari, jml
b. Jika hari minggu- jum’at
c. Cetak hrg hari = 33000
d. Total = jml*hrghari
e. Jika tidak
f. Cetak hrghari 40000
g. Total = jml*hrghar
Pseudocode :
a. Input (hari,jml)
b. Jika hari = minggu, senin, selasa, rabu, kamis, jum’at
c. Hrghari = 33000
d. Jika tidak
e. Hrghari = 40000
f. Total jml*hrghari
g. Output (total)
Flowchart :
SOAL NO.6
Algoritma :
a. Tentukan hari,jml,libur, tidak libur
b. Jika hari = senin, selasa, rabu,kamis, jum’at
c. Jika libur harga = 35.000
d. Jika tidak harga = 15.000
e. Jika hari = sabtu& minggu
f. Harga = 35.000
g. Total = jml*harga
h. Tampilkan total
Pseudocode :
a. Input (hari,jml,libur, tidak libur)
b. Jika hari = senin, selasa, rabu,kamis, jum’at
c. Jika libur harga = 35.000
d. Jika tidak harga = 15.000
e. Jika hari = sabtu& minggu
f. Harga = 35.000
g. Total jml*harga
h. Output(total)
Flowchart :
SOAL NO.7
Algoritma :
a. Tentukan harga
b. Jika harga<=400000
c. Hitung disc = harga*25/100
d. Jika harga <=300000
e. Hitung disc = harga*20/100
f. Jika harga <= 275000
g. Hitung disc = harga*15/100
h. Hitung disc harga<= 150000*10/100
i. Tampilkan disc
Pseudocode :
a. Input (harga)
b. Jika harga<=400000
c. disc harga*25/100
d. Jika harga <=300000
e. disc harga*20/100
f. Jika harga <= 275000
g. disc harga*15/100
h. disc harga<= 150000*10/100
i. output (disc)
Flowchart :
SOAL NO.8
Algoritma :
a. Masukkan 5 nilai (nilai tugas1,tugas2,tugas3,UTC,UAC)
b. Hitung nilai rata - rata tugas =
nilai tugas1+tugas2+tugas3 / 3.
c. Lalu hitung semua nilai :
Nilai=((rata-rata tugas*30%)+(UTC*30%)+(UAC*40%))
a. Jika nilai akhir :
> 80 dan <=100
maka nilai huruf = A
> 70 dan <=80
maka nilai huruf = AB
> 65 dan <=70
maka nilai huruf = B
> 60 dan <=65
maka nilai huruf = BC
> 55 dan <=60
maka nilai huruf = C
> 40 dan <=55
maka nilai huruf = D
> 0 dan <=40
maka nilai huruf = E
d. Seleksi nilai akhir.
e. Output : hasil nilai akhir dan hasil seleksi nilai huruf
Psoudecode :
b. Input (5 nilai)
c. Jika nilai akhir > 80 dan <=100
maka nilai huruf A
Jika nilai akhir > 70 dan <=80
maka nilai huruf AB
Jika nilai akhir > 65 dan <=70
maka nilai huruf B
Jika nilai akhir > 60 dan <=65
maka nilai huruf BC
Jika nilai akhir > 55 dan <=60
maka nilai huruf C
Jika nilai akhir > 40 dan <=55
maka nilai huruf D
Jika nilai akhir > 0 dan <=40
maka nilai huruf E
d. Output (hasil nilai akhir dan hasil seleksi nilai huruf)
Flowchart :
SOAL NO.9
Algoritma :
a. Masukkan Jumlah Pemakaian Air.
b. Hitung jumlah nilai/pemakaian yang dimasukkan :
1. Seleksi jika pemakaian <0, maka
Biaya total = Jumlah * 0.
2. Seleksi jika pemakaian <= 50, maka
Biaya total = Jumlah * 200
3. Seleksi jika pemakaian <= 150, maka
Biaya total = ((50 * 200) + ((jumlah - 50) * 500))
4. Seleksi jika pemakaian <= 300, maka
Biaya Total = ((50 * 200) + (100 * 500) + ((jumlah - 150) * 1000)).
5. Seleksi jika pemakaian > 300, maka
6. Biaya Total = ((50 * 200) + (100 * 500) + (150 * 1000) + ((jumlah - 300) *
1500))
c. Output : Biaya Total
Flowchart :
SOAL NO.10
Algoritma :
a. Ambil input user untuk memasukkan jumlah pemakaian Kartu Kredit
1. Masukkan ke variabel string pemakaian
2. Jika panjang inputan string pemakaian lebih dari 0, atau dengan kata lain
b. User telah menginputkan value,ubah input string pemakaian menjadi bilangan
dengan nama variable
c. Int jml_pemakaian,memberikan nilai default pada variabel pemakaian1 dengan,
d. Pemakaian1= 1000.000.Jika nilai pada variabel jml_pemakaian <= 1.000.000
Memberikan nilai pada variabel pemakaian1 dengan,pemakaian1
e. Jumlah pemakaian.Atau jika nilai pada variabel jml_pemakaian > 1.000.000, dan
nilai pada variabel jml_pemakaian <= 10.000.000
f. Memberikan nilai pada variabel pemakaian1 dengan,pemakaian1= 1.000.000
g. Memberikan nilai pada variabel pemakaian2 dengan,pemakaian2=
jml_pemakaian– 1.000.000 atau jika nilai pada variabel jml_pemakaian >
10.000.000, dan nilaipada variabel jml_pemakaian <= 25.000.000
h. Memberikan nilai pada variabel pemakaian2 dengan,pemakaian2= 10.000.000
i. Memberikan nilai pada variabel pemakaian3 dengan,pemakaian3=
jml_pemakaian - 25.000.000.Atau jika nilai pada variabel jml_pemakaian >
25.000.000
j. Memberikan nilai pada variabel pemakaian2 dengan,pemakaian2= 10.000.000
k. Memberikan nilai pada variabel pemakaian3 dengan,pemakaian3= 25.000.000
l. Memberikan nilai pada variabel pemakaian4 dengan,pemakaian4=
jml_pemakaian – 25.000.000Memberikan nilai pada variabel cash_back_total.
m. Dengan,cash_back_total=(pemakaian1*5/100)+(pemakaian2*6/100)+(pemakaian
3*7/100)+(pemakaian4*8/10)Cetak output dengan format, "Seorang nasabah
yang total.
n. Selama sebulan "+jml_pemakaian+", maka total cash
backnya="+cash_back_total.Atau Jika panjang inputan tidak lebih dari 0, atau
dengan kata lain userbelum menginputkan value
o. Cetak output “Ada salah satu masukan yang kosong”
p. Stop pros
Flowchart :
SOURCE CODE & OUTPUT PROGRAM
SOAL NO.1
Source Code :
package dasprogg;
import java.util.*;
/**
* * @author hendrys
*/
public class segitiga1 {
public static void main(String[] args) {
// TODO code application logic here Scanner masuk = new Scanner(System.in);
int sisi1,sisi2,c;
System.out.println("Mengitung Panjang sisi miring Segitiga siku-siku");
System.out.print("Masukan Nilai Sisi 1 : "); sisi1 = masuk.nextInt();
System.out.print("Masukan Nilai Sisi 2 : ");
sisi2 = masuk.nextInt();
c=((sisi1*sisi1)+(sisi2*sisi2)); System.out.println("Panjang sisi miring segitiga siku-siku adalah = "+(Math.sqrt(c)));
}
}
Output :
SOAL NO.2
Source Code :
package dasprogg;
import java.util.*;
/**
*
* @author hendrys
*/
public class pecahan2 {
public static void main(String[] args) {
long bil1, uang;
do
{
//inputan dari keyboard
System.out.print("Jumlah uang = ");
Scanner obj = new Scanner(System.in);
uang = obj.nextLong();
if (uang<100)
{
System.out.println("Maaf, tidak ada nominal uang "+
"sebesar "+uang+" rupiah");
continue;
}
else
{
// besar 100000
if (uang >= 100000)
{
bil1 = uang / 100000;
System.out.println("Diperlukan " + bil1 +" lembar 100000");
}
// antara 50000-100000
uang = uang % 100000;
if ((uang >= 50000) && (uang <100000))
{
bil1 = uang / 50000;
System.out.println("Diperlukan " + bil1 +" lembar 50000");
}
// antara 20000-50000
uang = uang % 50000;
if ((uang >= 20000) && (uang <50000))
{
bil1 = uang / 20000;
System.out.println("Diperlukan " + bil1 +" lembar 20000");
}
// antara 10000-20000
uang = uang % 20000;
if ((uang >= 10000) && (uang <20000))
{
bil1 = uang / 10000;
System.out.println("Diperlukan " + bil1 +" lembar 10000");
}
// antara 5000-10000
uang = uang % 10000;
if ((uang >= 5000) && (uang <10000))
{
bil1 = uang / 5000;
System.out.println("Diperlukan " + bil1 +" lembar 5000");
}
// antara 2000-5000
uang = uang % 5000;
if ((uang >= 2000) && (uang <5000))
{
bil1 = uang / 2000;
System.out.println("Diperlukan " + bil1 +" lembar 2000");
}
// antara 1000-2000
uang = uang % 2000;
if ((uang >= 1000) && (uang <2000))
{
bil1 = uang / 1000;
System.out.println("Diperlukan " + bil1 +" lembar 1000");
}
// antara 500-1000
uang = uang % 1000;
if ((uang >= 500) && (uang <1000))
{
bil1 = uang / 500;
System.out.println("Diperlukan " + bil1 +" koin 500");
}
// antara 200-500
uang = uang % 500;
if ((uang >= 200) && (uang <500))
{
bil1 = uang / 200;
System.out.println ("Diperlukan " + bil1 +" koin 200");
}
// antara 100-200
uang = uang % 200;
if ((uang >= 100) && (uang <200))
{
bil1 = uang / 100;
System.out.println ("Diperlukan " + bil1 +" koin 200");
}
}
}while(uang!=0);
}
}
Output :
SOAL NO.3
Source Code :
package dasprogg; import java.util.*;
import java.io.*;
/** *
* @author hendrys
*/
public class desimal3 {
public static void main(String[] args) {
int angka; Scanner obj = new Scanner(System.in);
System.out.print('\n'+"Masukkan Bilangan Desimal: ");
angka = obj.nextInt();
DesToBin(angka); }
static void DesToBin(int bil){ int mod=0,sisa=0, i=0; boolean loop=true; int[] zz = new int[1000];
sisa=bil;
while (loop==true){ sisa = bil%2; bil= bil/2; zz[i]=sisa; i++;
if((bil==0)||(bil==1)){ loop=false; zz[i]=bil; }
} //Cetak Bilangan Biner
System.out.print("Dikonversi ke Bilangan Biner : "); for (int a=i; a>=0;a--){ System.out.print(zz[a]);
} System.out.print('\n');
} }
Output :
SOAL NO.4 Source Code :
package dasprogg;
import java.io. *;
import java.util.*;
/** *
* @author hendrys
*/ public class pegawai4 {
public static void main(String[] args) {
BufferedReader dataIn = new BufferedReader(new InputStreamReader( System.in) );
String kerja= "";
String usia= "";
String pegawai= ""; try{
System.out.print("Masukkan Lama Kerja : ");
kerja = dataIn.readLine(); System.out.print("Masukkan Usia : ");
usia = dataIn.readLine();
System.out.print("staff atau non staff : ");
pegawai = dataIn.readLine(); }
catch( IOException e ){ System.out.println("Error!");
}
int massa = Integer.parseInt(kerja);
int umur = Integer.parseInt(usia);
if ("staff".equals(pegawai) && (massa>=5) && (umur>=50)){ System.out.println("Bonus anda Rp. 1.000.000");
}
else if ("staff".equals(pegawai) && (massa<5)){ System.out.println("Bonus anda Rp. 500.000");
}
else if ("staff".equals(pegawai) && (umur < 50)){ System.out.println("Bonus anda Rp. 300.000");
}
else if ("non staff".equals(pegawai) && (massa>5) && (umur>50)){
System.out.println("Bonus anda Rp. 400.000"); }
else if ("non staff".equals(pegawai) && (massa<5)){
System.out.println("Bonus anda Rp. 250.000"); }
else if ("non staff".equals(pegawai) && (umur<50)){
System.out.println("Bonus anda Rp. 250.000");
} else {
System.out.println("Maaf, format status pegawai anda salah. Contoh = staff / non staff");
}
}
}
Output :
SOAL NO.5 Source Code :
package dasprogg;
import java.io.*; /**
*
* @author hendrys */
public class iklan5 {
public static void main(String[] args) {
BufferedReader dataIn = new BufferedReader(new
InputStreamReader( System.in) );
String hari= ""; String baris= "";
try{
System.out.print("Masukkan Hari : ");
hari = dataIn.readLine(); System.out.print("Masukkan Jumlah Baris : ");
baris = dataIn.readLine();
} catch( IOException e ){
System.out.println("Error!");
}
int total = Integer.parseInt(baris);
if("Minggu".equals(hari) || "Senin".equals(hari) ||
"Selasa".equals(hari) || "Rabu".equals(hari) || "Kamis".equals(hari) || "Jumat".equals(hari))
{
System.out.println("Total Biaya = "+total * 33000); }
else if("Sabtu".equals(hari)){
System.out.println("Total Biaya = "+total * 40000); }
else {
System.out.println("Maaf, format hari anda salah. Awali huruf kapital. Contoh =
Senin "); }
}
}
Output :
SOAL NO.6 Source Code :
package dasprogg; import java.util.*;
/**
* * @author hendrys
*/
public class bioskop6 {
public static void main(String[] args) {
Scanner dino = new Scanner(System.in);
Scanner jumlah = new Scanner(System.in); Scanner libur = new Scanner(System.in);
int tiket,hari,lib,a,b,c; System.out.println("Harga tiket bioskop di Surabaya City");
System.out.println("- Senin – Kamis : Rp 15.000,-");
System.out.println("- Jumat s/d Minggu : Rp 35.000,-");
System.out.println("- Hari Libur : Rp 35.000,-"); System.out.println("\nINPUT"); System.out.println("1 = Senin | 2 = Selasa | 3 = Rabu");
System.out.println("4 = Kamis | 5 = Jumat | 6 = Sabtu | 7 = Minggu ");
System.out.println("8 = Hari Libur | 9 = Bukan Hari Libur"); System.out.print("\nMasukan Hari = ");
hari = dino.nextInt();
System.out.print("Jumlah Tiket = ");
tiket = jumlah.nextInt(); System.out.print("Apakah hari libur = ");
lib = libur.nextInt();
a = tiket * 15000; b = tiket * 35000;
if (hari == 1 && lib != 8 || hari == 2 && lib != 8 || hari == 3 && lib != 8 || hari == 4 &&
lib != 8 ) {
System.out.println("Total yang harus dibayar adalah = "+a);
}
else if (hari == 1 && lib == 8 || hari == 2 && lib == 8 || hari == 3 && lib == 8 || hari == 4 && lib == 8){
System.out.println("Total yang harus dibayar adalah = "+b);
} else if (hari == 5 || hari == 6 || hari == 7)
{
System.out.println("Total yang harus dibayar adalah = "+b); }
}
}
Output :
SOAL NO.7 Source Code :
package dasprogg; import java.util.*;
/**
* * @author hendrys
*/
public class belanja7 { public static void main(String[] args) {
Scanner belanja = new Scanner(System.in);
double total,diskon,bayar;
System.out.print("Total Belanja : "); total = belanja.nextInt();
if(total<150000){
diskon= total * 0; bayar=total-diskon;
System.out.print("Diskon = "+diskon);
System.out.print("\nYang harus dibayar = "+bayar); System.out.print("\n");
}
else if(total<275000){
diskon= total * 0.1;
bayar=total-diskon;
System.out.print("Diskon = "+diskon); System.out.print("\nYang harus dibayar = "+bayar);
System.out.print("\n");
}
else if(total<300000){
diskon= total * 0.15;
bayar=total-diskon;
System.out.print("Diskon = "+diskon);
System.out.print("\nYang harus dibayar = "+bayar); System.out.print("\n");
}
else if(total<400000){
diskon= total * 0.20;
bayar=total-diskon;
System.out.print("Diskon = "+diskon); System.out.print("\nYang harus dibayar = "+bayar);
System.out.print("\n");
}
else {
diskon= total * 0.25;
bayar=total-diskon; System.out.print("Diskon = "+diskon);
System.out.print("\nYang harus dibayar = "+bayar);
System.out.print("\n"); }
}
}
Output :
SOAL NO.8 Source Code :
package dasprogg;
import java.util.*; /**
*
* @author hendrys */
public class tugas8 {
public static void main(String[] args) {
Scanner tugas1 = new Scanner(System.in);
Scanner tugas2 = new Scanner(System.in);
Scanner tugas3 = new Scanner(System.in); Scanner yutc = new Scanner(System.in);
Scanner yuac = new Scanner(System.in);
int tgs1,tgs2,tgs3,utc,uac,rata;
double nilai;
System.out.print("\nMasukkan Nilai Tugas 1 = "); tgs1 = tugas1.nextInt();
System.out.print("Masukkan Nilai Tugas 2 = ");
tgs2 = tugas2.nextInt(); System.out.print("Masukkan Nilai Tugas 3 = ");
tgs3 = tugas3.nextInt();
System.out.print("Masukkan Nilai UTC = ");
utc = yutc.nextInt(); System.out.print("Masukkan Nilai UAC = ");
uac = yuac.nextInt();
rata = (tgs1+tgs2+tgs3)/3;
nilai=((rata*0.3)+(utc*0.3)+(uac*0.4));
if (nilai > 80 && nilai <=100){ System.out.println("Nilai anda adalah A");
}
else if (nilai > 70 && nilai <=80){ System.out.println("Nilai anda adalah AB");
}
else if (nilai > 65 && nilai <=70){ System.out.println("Nilai anda adalah B");
}
else if (nilai > 60 && nilai <=65){
System.out.println("Nilai anda adalah BC"); }
else if (nilai > 55 && nilai <=60){
System.out.println("Nilai anda adalah C"); }
else if (nilai > 40 && nilai <=50){
System.out.println("Nilai anda adalah D"); }
else if (nilai > 0 && nilai <=40){
System.out.println("Nilai anda adalah E");
} }
}
Output :
SOAL NO.9 Source Code :
package dasprogg;
import java.util.*;
/** *
* @author hendrys
*/ public class air9 {
public static void main(String[] args) {
Scanner pemakaian = new Scanner(System.in);
double air;
System.out.print("Jumlah Pemakaian : ");
air = pemakaian.nextInt();
if (air < 0){
System.out.print("Biaya total : "+air*0+"\n"); }
else if (air <= 50){
System.out.print("Biaya total : "+air*200+"\n"); }
else if (air <= 150){
System.out.print("Biaya total : "+((50*200)+((air-50)*500))+"\n"); }
else if (air <= 300){
System.out.print("Biaya total : "+((50*200)+(100*500)+((air-150)*1000))+"\n");
} else {
System.out.print("Biaya total : "+((50*200)+(100*500)+(150 * 1000)+((air-
300)*1500))+"\n"); }
}
}
Output :
SOAL NO.10 Source Code :
package dasprogg;
import java.io.*;
import java.text.*; /**
*
* @author hendrys */
public class kredit10 {
public static void main(String[] args) {
String str_pemakaian ="";
int pemakaian1=0; int pemakaian2=0;
int pemakaian3=0;
int pemakaian4=0;
int cash_back_total=0;
BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in) );
System.out.print("Masukkan jumlah pemakaian Kartu Kredit : "+str_pemakaian+""); try{
str_pemakaian = dataIn.readLine();
}
catch( IOException e ){ System.out.println("Error!");
}
if(str_pemakaian.length()>0){
int jml_pemakaian = Integer.parseInt(str_pemakaian);
pemakaian1=1000000; if(jml_pemakaian<=1000000){
pemakaian1=jml_pemakaian;
} else if(jml_pemakaian>1000000 && jml_pemakaian<=10000000){
pemakaian1=1000000;
pemakaian2=jml_pemakaian-1000000; }
else if(jml_pemakaian>10000000 && jml_pemakaian<=25000000){ pemakaian2=10000000;
pemakaian3=jml_pemakaian-25000000;
}
else if(jml_pemakaian>25000000){
pemakaian2=10000000;
pemakaian3=25000000; pemakaian4=jml_pemakaian-25000000;
}
cash_back_total = (pemakaian1*5/100)+(pemakaian2*6/100)+(pemakaian3*7/100)+(pemakaian4*8/100);Deci
malFormat df = (DecimalFormat) DecimalFormat.getCurrencyInstance();
DecimalFormatSymbols dfs = new DecimalFormatSymbols(); dfs.setCurrencySymbol("");
dfs.setMonetaryDecimalSeparator(',');
dfs.setGroupingSeparator('.'); df.setDecimalFormatSymbols(dfs);
String jumlah_pemakaian = "Rp. " + df.format(jml_pemakaian);
String hsl_biaya_total = "Rp. " + df.format(cash_back_total);
System.out.println("Seorang nasabah yang total pemakaian selama sebulan "+jumlah_pemakaian+", "
+ "\n\nMaka total cash backnya= "+hsl_biaya_total);
}
else{
System.out.println("\nAda salah satu masukan yang kosong!"); return;
}
} }
Output :
RESENSI https://www.google.co.id/search?output=search&sclient=psy-ab&q=-
%09Dasar+Teori+tentang+algoritma+dan+pemrograman&btnG=#q=-
%09Flowchart
http://blog.greyterminal.net/2010/04/program-java-input-output-if-equals.html
http://en.wikipedia.org/wiki/NetBeans
http://en.wikipedia.org/wiki/Eclipse_%28software%29
http://zuriatiskom.tripod.com/operator.html