Senin, 28 Oktober 2013

Modul 2 Praktikum Dasar Pemograman

LAPORAN
MODUL 2PRAKTIKUM DASAR PEMOGRAMAN


Disusun oleh :
Mar’atul Farikhah
135623037

FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PROGRAM STUDI D3 MANAJEMEN INFORMATIKA B
UNIVERSITAS NEGERI SURABAYA
2013
A.  Dasar Teori
-         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.
Netbeans juga digunakan oleh sang programmer untuk menulis, meng-compile, mencari kesalahan dan menyebarkan program netbeans yang ditulis dalam bahasa pemrograman java namun selain itu dapat juga mendukung bahasa pemrograman lainnya dan program ini pun bebas untuk digunakan dan untuk membuat professional desktop, enterprise, web, and mobile applications dengan Java language, C/C++, dan bahkan dynamic languages seperti PHP, JavaScript, Groovy, dan Ruby.
NetBeans merupakan sebuah proyek kode terbuka yang sukses dengan pengguna yang sangat luas, komunitas yang terus tumbuh, dan memiliki hampir 100 mitra (dan terus bertambah!). Sun Microsystems mendirikan proyek kode terbuka NetBeans pada bulan Juni 2000 dan terus menjadi sponsor utama. Dan saat ini pun netbeans memiliki 2 produk yaitu Platform Netbeans dan Netbeans IDE. Platform Netbeans merupakan framework yang dapat digunakan kembali (reusable) untuk menyederhanakan pengembangan aplikasi deskto dan Platform NetBeans juga menawarkan layanan-layanan yang umum bagi aplikasi desktop, mengijinkan pengembang untuk fokus ke logika yang spesifik terhadap aplikasi.

Fitur-fitur dari Platform Netbeans antara lain:
* Manajemen antarmuka (misal: menu & toolbar)
* Manajemen pengaturan pengguna
* Manajemen penyimpanan (menyimpan dan membuka berbagai macam data)
* Manajemen jendela
* Wizard framework (mendukung dialog langkah demi langkah)

Netbeans IDE merupakan sebuah IDE open source yang ditulis sepenuhnya dengan bahasa pemrograman java menggunakan platform netbeans. NetBeans IDE mendukung pengembangan semua tipe aplikasi Java (J2SE, web, EJB, dan aplikasi mobile). Fitur lainnya adalah sistem proyek berbasis Ant, kontrol versi, dan refactoring

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.


-         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.
            Eclipse pada saat ini merupakan salah satu IDE favorit dikarenakan gratis dan open source, yang berarti setiap orang boleh melihat kode pemrograman perangkat lunak ini. Selain itu, kelebihan dari Eclipse yang membuatnya populer adalah kemampuannya untuk dapat dikembangkan oleh pengguna dengan komponen yang dinamakan plug-in.


-         Penulisan Program di Java, Input, Output
Adapun cara penulisan program dalam java diantaranya adalah:
1.  Harus disimpan berekstensi *.java
2.  Nama file harus sama dengan nama class public, misalnya nama filenya myHello.java, maka  nama  class public juga harus myHello
Contoh:
public class myHello     {
 //harus sama dengan nama file (myHello.java)
     }
3.  Comment sebaiknya sebaiknya ditulis untuk menjelaskan sebuah class atau method. Comment ditulis  untuk tujuan dokumentasi.
Contoh:
public static void main(String[]args){
//untuk menampilkan kata myfirs java
System.out.println(“Hello this is my first java”);
}
4. Java statement adalah suatu baris yang diakhiri dengan titik koma.
Contoh:
System.out.println(“Hello this is my first java”);      
5.  Block adalah satu atau beberapa statement yang berada diantara tanda kurung kurawal { dan diakhiri dengan kurung kurawal }.
Contoh:
public static void main(String[]args){
System.out.println(“Hello this is my first java”);
System.out.println(“Java is very good”);
}

-         Operator: Assigment, Matematika, Perbandingan, Logika
a.           OPERATOR ASSIGNMENT
Yang termasuk operator assignment (pemberian nilai) adalah operator =.

Contoh :
my_var  =  1234;
my_var            :  nama dari suatu variabel
1234                :  merupakan nilai yang akan diberikan ke variabel di sebelah kiri tandatidak dibaca bahwa my_var sama dengan 1234, tetapi nilai 1234 diberikan ke variabel dengan nama my_varuntuk operator ini, operasi dikerjakan dari arah kanan ke kirioperasi assignment ganda (multi-assignment) dapat terjadi pada bahasa C, dan dikerjakan dari arah kanan ke arah kiri.

Contoh:
   spock  =  ryker  =  kirk  =  24;
Mula-mula kirkakan mendapat nilai 24, kemudian ryker akan mendapat nilai dari kirk, dan terakhir spock akan mendapat nilai dari ryker.

b.           OPERATOR ARITMATIKA
Yang termasuk operator aritmatika adalah   *, /, %, +, dan -.
Operasi pembagian pada bilangan integer akan membulatkan pecahan pada hasilnya.
Operasi  x % y akan menghasilkan sisa bila x tidak habis dibagi dengan y, dan akan menghasilkan 0 bila x habis dibagi dengan y.
Operator % tidak dapat digunakan pada tipe data float atau double.
Kedudukan operator binary+ dan - lebih rendah bila dibandingkan dengan operator *, /, dan %.
1)      OPERATOR PENAMBAHAN +
   Akan menjumlahkan nilai-nilai di sebelah kanan ke sebelah kiri dari tanda =.
Contoh :
            x = 20 + 4;
            income = salary + tax + bribes;
            20, 4, salary, tax, dan bribes merupakan operand darioperator + di atas.
        Operator ini merupakan operator binary, karena memerlukan 2 buah operand agar dapat menghasilkan suatu nilai.

2)      OPERATOR PENGURANGAN -
          Akan mengurangkan nilai-nilai di sebelah kanan ke sebelah kiri dari tanda =.
Contoh :
            good = whole - bad;
            z = 100 - 45 -30;
                     Operasi ini akan dijalankan dari kiri ke kanan, sehingga urutannya :
                        z = (100 - 45) - 30;
                        z =       55       - 30;
                        z = 25;
        Merupakan operator binary.

3)      OPERATOR TANDA -
            Operator tanda - digunakan untuk mengubah tanda / nilai aljabar dari suatu nilai.  Operator ini merupakan operator unary, karena hanya memerlukan sebuah operand.
Contoh :
            a = -4;
            b = -a;

4)      OPERATOR PERKALIAN *
            Operator ini akan mengalikan nilai-nilai di sebelah kananke sebelah kiri dari tanda =.
Operator ini merupakan operator binary.
Contoh :
            x = 20 * 5;
            y = 3 * x;

5)      OPERATOR PEMBAGIAN /
            Operator ini akan membagi nilai di sebelah kiri tanda / dengan nilai disebelah tanda / tersebut.
        Pembagian dengan tipe floating-point akan menghasilkan jawaban bertipe floating-point.
            Contoh :
                        x = 20.0 / 4;                 (x sama dengan 5.0)
                        y = 100 / 5.0;               (y sama dengan 20.0);
                        z = 6.25e2 / 5;              (z sama dengan 125.0);
        Pembagian dengan tipe integerakan menghasilkan jawaban bertipe integer karena hasil fraksionalnya dibuang, proses ini disebut truncation.
            Contoh :
                        5 / 4 akan menghasilkan jawaban 1
                        100 / 30 akan menghasilkan jawaban 3
c.           OPERATOR RELASI DAN LOGIKA
Yang termasuk operator relasiadalah  >, >=, <, dan <=.
Operator-operator di atas mempunyai kedudukan yang sama, artinya operator yang ditemukan pertama kali akan dikerjakan lebih dahulu.
Selain operator relasi, ada pula operator kesamaanyang kedudukannya lebih rendah dibandingkan dengan operator relasi.
Operator kesamaan tersebut adalah == dan !=.
Operator relasi dan operator kesamaan mempunyai kedudukan yang lebih rendah bila dibandingkan dengan operator aritmatika.
Dengan demikian, ekspresi i < limit - 1akan dianggap sebagai i < (limit - 1).
Yang termasuk operator logika adalah operator && (AND) dan || (OR).  Ekspresi yang dihubungkan dengan operator logika && dan || akan dikerjakan dari arah kiri ke kanan, dan proses evaluasi akan segera berhenti pada saat nilai true atau false dari ekspresi tersebut diketahui.
Kedudukan operator && lebih tinggi daripada operator ||, dan kedua operator logika tersebut kedudukannya lebih rendah dibandingkan dengan operator relasi dan operator kesamaan.
Contoh :
Pada ekspresi i < limit - 1 && (c = getchar()) != '\n' && c != EOF  tidak diperlukan lagi adanya kurung tambahan, karena akan dianggap sebagai    ( i < (limit - 1) ) && ( (c = getchar()) != '\n' ) && ( c != EOF )Tanda kurung hanya diperlukan pada (c = getchar()) != '\n', karena kedudukan operator kesamaan != lebih tinggi dibandingkan dengan operator assignment =. Bila pada ekspresi tersebut, nilai i tidak lebih kecil dari limit - 1, maka dua buah kondisi berikutnya, yaitu (c = getchar()) != '\n' dan c != EOF tidak akan pernah dikerjakan, karena nilai kondisi pertama sudah false, sehingga nilai ekspresi keseluruhan sudah dapat diketahui.  (catatan : untuk menghasilkan true dari suatu ekspresi yang dihubungkan dengan operator AND (&&), maka semua kondisi harus bernilai true pula).
Suatu ekspresi yang bernilai trueakan diberi nilai numerik 1, dan ekspresi yang bernilai false akan diberi numerik 0.

Operator negasi !akan mengubah nilai dari operand yang bukan nol menjadi nol, dan nilai operand nol menjadi 1.
Contoh penggunaan operator negasi yang bersifat unary ini adalah :
if ( !valid )
Bentuk di atas lebih umum digunakan oleh programmer bahasa C bila dibandingkan dengan bentuk   if ( valid == 0 )

 Tabel operator logika :
Operator
Fungsi
Keterangan
!
NOT
Pembalik / inverter
&&
AND
Salah satu salah semua salah
||
OR
Salah satu benar semua benar



-         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 &&.
Catatan :
       Operator unary +, -, dan * mempunyai kedudukan yang lebih tinggi dibandingkan dengan bentuk binary-nya.
        Kedudukan operator bitwise &, ^, dan | lebih rendah dibandingkan dengan operator == dan !=.  Dengan demikian, pernyataan seperti :
                    if ( (x & MASK) == 0 )  ......
        harus menggunakan tanda kurung seperti pada bentuk di atas agar memperoleh hasil yang diinginkan.




-         Percabangan (if, if....else, if...elseif...., switch)
Percabangan, atau sering disebut juga dengan istilah decision–making, memungkinkan aplikasi untuk memeriksa isi suatu variabel atau hasil perhitungan ekspresi dan mengambil tindakan yang sesuai. Ada dua jenis percabangan, dipilih berdasarkan kriteria pemeriksaan dan jumlah pilihan yang tersedia.
if – else
Konstruksi if – else dapat dijelaskan sebagai berikut :
if(condition){
        // statement 1 goes here
}else{
        // statemant 2 goes here
}
// statement 3 goes here
Aliran program pada contoh diatas :
  1. Condition akan diperiksa
  2. Bila bernilai true, statement 1 akan dijalankan
  3. Bila bernilai false, statement 2 akan dijalankan
  4. Statement 3 dijalankan
if – elseif – else
Untuk pilihan yang lebih dari dua, PHP menyediakan konstruksi if – elseif – else.
if(condition1){
        // statement 1
}elseif(condition2){
        // statement 2
}else{
        // statement 3
}
// statement 4
Ada 3 kemungkinan aliran program pada contoh diatas :
Apabila condition 1 bernilai true
  1. Statement 1 dijalankan
  2. Statement 4 dijalankan
Apabila condition 1 bernilai false, dan condition 2 bernilai true :
  1. Statement 2 dijalankan
  2. Statement 4 dijalankan
Apabila condition 1 dan condition 2 bernilai false :
  1. Statement 3 dijalankan
  2. Statement 4 dijalankan
Berikut ini adalah Contoh penggunaan if–else. Silahkan membuat dua file, control_flow.html dan condition.php, control_flow.html mempunyai tampilan sebagai berikut :
condition.php berisi listing kode sebagai berikut :
<?
$kelabu = "#303030";
$putih = "#FFFFFF";
if($kelamin1 == "Pria"){
    $background1 = $kelabu;
}else{
        $background1 = $putih;
}
if($kelamin2 == "Pria"){
        $background2 = $kelabu;
}else{
$background2 = $putih;
}
if($kelamin3 == "Pria"){
    $background3 = $kelabu;
}else{
    $background3 = $putih;
}
if($kelamin4 == "Pria"){
    $background4 = $kelabu;
}else{
    $background4 = $putih;
}
$output = "
<table border=1>
<tr>
<td background=$background1>$nama1</td>
</tr>
<tr>
<td background=$background2>$nama2</td>
</tr>
<tr>
<td background=$background3>$nama3</td>
</tr>
<tr>
<td background=$background4>$nama4</td>
</tr>
</table>
";
echo($output);
?>
switch – case
konstruksi untuk modul switch–case dapat dilihat pada kode sebagai berikut :
switch(a){
    case 1;
            // statement 1 goes here
    break;
    case 2;
        // statement 2 goes here
    break;
    case 3;
        // statement 3 goes here
    break;
    default;
        // statement 4 goes here

    break;
}
// statement 5 goes here
Aliran program dari kode switch – case diatas adalah sebagai berikut:
  1. Variabel a diperiksa
  2. Statement dieksekusi
    • Apabila a == 1, statement 1 dijalankan
    • Apabila a == 2, statement 2 dijalankan
    • Apabila a == 3, statement 3 dijalankan
    • Apabila a tidak memenuhi 2a – 2c, statement 4 dijalankan
  3. Statement 5 dijalankan
Keyword break memegang peranan penting di sini. Fungsinya adalah mencegah fall–through, bandingkan dengan program berikut (break di case ke 1 dihilangkan)
switch(a){
    case 1;
        // statement 1 goes here
    case 2;
        // statement 2 goes here
    break;
    case 3;
        // statement 3 goes here
    break;
    default;
        // statement 4 goes here
    break;
}
Aliran program untuk script di atas adalah sebagai berikut
  1. variabel a diperiksa
  2. Selanjutanya PHP akan mengeksekusi case 1 dan 2, karena pada case 1 break di hilangkan
    • Apabila a == 1, statement 1 dijalankan, kemudian menjalankan statement 2.
    • Apabila a == 2, statement 2 dijalankan
    • Apabila a == 3, statement 3 dijalankan
    • Apabila a tidak memenuhi 2a – 2c, statement 4 dijalankan
  3. Statement 5 dijalankan
Untuk melihat contoh penggunaan switch – case, tambahkan tampilan pada control_flow.htm menjadi seperti gambar di bawah.
<?
switch($bulan){
    case 1 :
    case 3 :
    case 5 :
    case 7 :
    case 8 :
    case 10 :
    case 12 :
        $hari = 31;
        break;
    case 4 :
    case 6 :
    case 8 :
    case 11 :
        $hari = 30;
        break;
    case 2 :
        if(($tahun%4) == 0){
            $hari = 29;
        }else{
            $hari = 28;
        }
}
echo("<h2> Jumlah hari pada bulan $bulan tahun $tahun = $hari hari</h2>");
?>





B.  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, 


1.1  Algoritma untuk mencari sisi miring dari suatu segitiga siku-siku
Algoritma        :
a)      Input a, dimisalkan 2
b)      Input b, dimisalkan 3
c)      Proses
d)     Tampilkan hasil (c)
e)      Print
f)       Selesai


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


1.2  Algoritma untuk menampilkan banyaknya pecahan uang paling efisien
Algoritma        :
a)      menentukan input (uang), dimisalkan uang berjumlah Rp 125.500
b)      hitung pecahan 100.000    :              =1
c)      hitung pecahan 50.000      : =0
d)     hitung pecahan 20.000      :               =1
e)      hitung pecahan 10.000      :                 =0
f)       hitung pecahan 5.000        :                   =1
g)      hitung pecahan 2.000        :           =0
h)      hitung pecahan 1.000        :=0
i)        hitung pecahan 500           :=1
j)        hitung pecahan 200           :=0
k)      hitung pecahan 100           :=0
l)        Tampilkan hasil (1010100100)
m)    Print
n)      Selesai


3.      Buat algoritma untuk mengkonversi bilangan dalam format desimal menjadi biner.
Input         : bilangan desimal
Output       : bilangan biner
Ilustrasi:
http://pad3.whstatic.com/images/thumb/d/d1/Convert-from-Decimal-to-Binary-Step-14.jpg/550px-Convert-from-Decimal-to-Binary-Step-14.jpg



1.3  Algoritma untuk mengkonversi bilangan dalam format desimal menjadi biner
Algoritma        :
a)      input desimal, dimisalkan desimal 4510
b)      Proses bagi dua ambil sisa pembagian
45 10    =
45 : 2  = 22 + sisa    1
22 : 2  = 11 + sisa    0
11 : 2 = 5    + sisa    1
5 : 2     = 2  + sisa    1
2 : 2     = 1  + sisa    0
c)      Tampilkan hasil  011012 (ditulis dr bawah ke atas)
d)     Print
e)      Selesai


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?


1.4  Algoritma untuk bonus pegawai
Algoritma  :
a)      Input Select Case StatusPegawai
b)      Input Case StatusStaff
c)      If MasaKerja >= 5 Then
d)     If Umur >= 50 Then
e)      Bonus = 1000000
f)       Else
g)      Bonus = 300000
h)      End If
i)        Else
j)        Bonus = 500000
k)      End IF
l)        Case Else
m)    If MasaKerja >= 5 Then
n)      If Umur >= 50 Then
o)      Bonus = 400000
p)      Else
q)      Bonus = 250000
r)       End If
s)       Else
t)       Bonus = 250000
u)      End IF
v)      End Select


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.

1.5  Algoritma untuk menghitung total biaya iklan baris yang harus dibayar oleh pengiklan
Algoritma  :
a)      Input Hari Minggu, Senin, Selasa, Rabu, Kamis, Jumat Rp 33.000/ baris
b)      Input Hari Sabtu Rp 40.000/ baris
c)      Input jml baris minggu s/d jum’at = 50
Input jml baris, Hari Sabtu =12
d)     Proses, Jika Hari Minggu, Senin, Selasa, Rabu, Kamis, Jumat Rp 33.000/ baris
 Jika Hari Sabtu Rp 40.000/ baris
e)      Harga*jml baris
f)       Tampilkan hasil
g)      Print
h)      Selesai



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

Pertanyaan: Buat algoritma untuk menghitung total biaya tiket .


1.6  Algoritma untuk menghitung total biaya tiket .
a)      Input Hari Senin, Selasa, Rabu, Kamis Rp 15.000
b)      Input Hari Jum’at, sabtu, mingggu, Libur Rp 35.000
c)      Input Jumlah tiket yang dibeli,
Dimisalkan juml.tiket Hari Senin, Selasa, Rabu, Kamis = 20
Dimisalkan juml.tiket Hari Jum’at, sabtu, mingggu, Libur = 15
d)     Proses, jika Hari Senin, Selasa, Rabu, Kamis Rp 15.000* juml.tiket Hari Senin, Selasa, Rabu, Kamis (20)
Jika Hari Jum’at, sabtu, mingggu, Libur Rp 35.000* juml.tiket Hari Jum’at, sabtu, mingggu, Libur = 15
e)      Tampilkan hasil (1125000)
f)       Print
g)      Selesai


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


1.7  Algoritma untuk menghitung berapa nilai yang harus dibayar oleh pelanggan dengan total nilai belanja tertentu bila disertakan pula perhitungan diskonnya. Ketentuan : Diskon tidak dihitung sebagai akumulasi dari diskon nilai belanja dibawahnya.
Algoritma        :
a)      Input Total nilai belanja
b)      Subtotal, jml* harga barang
c)      Proses, Jika Rp. 150.000,- ke atas diskonnya : 10%,
Jika Rp. 275.000,- ke atas diskonnya : 15%,
Jika Rp. 300.000,- ke atas diskonnya : 20%,
Jika Rp. 400.000,-  ke atas diskonnya : 25%
d)     Hitung total bayar subtotal- potongan
e)      Tampilkan total bayar
f)       Print
g)      Selesai



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

1.8  Algoritma nilai
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%))
d)     Seleksi nilai akhir.
e)      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
f)       Output : hasil nilai akhir dan hasil seleksi nilai huruf



9.      Berikut ini adalah tarif pemakaian Air PDAM Kota Surabaya
Jumlah Pemakaian (m3)           Harga/m3
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,-

Pertanyaan: Buat algoritma untuk kasus diatas.


1.9  Algoritma tarif pemakaian Air PDAM Kota Surabaya
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 Biaya Total = ((50 * 200) + (100 * 500) + (150 * 1000) + ((jumlah - 300) * 1500))
c. Output : Biaya Total


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.



1.10                      Algoritma untuk menghitung cash back yang diterima nasabah berdasarkan nilai pemakaian kartu kredit.
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 variabel
c)      int jml_pemakaian,memberikan nilai default pada variabel pemakaian1 dengan, pemakaian1= 1000.000.Jika nilai pada variabel jml_pemakaian <= 1.000.000.
d)     Memberikan nilai pada variabel pemakaian1 dengan,pemakaian1= e. jml_pemakaian.
e)      Atau jika nilai pada variabel jml_pemakaian > 1.000.000, dan nilaipada 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 nilai pada 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.000
m)    Memberikan nilai pada variabel cash_back_total dengan,cash_back_total=  (pemakaian1*5/100)+(pemakaian2*6/100)+(pemakaian3*7/100)+(pemakaian4*8/10)
n)      Cetak output dengan format, "Seorang nasabah yang total selama sebulan "+jml_pemakaian+", maka total cash backnya="+cash_back_total.Atau Jika panjang inputan tidak lebih dari 0, atau dengan kata lain user belum menginputkan value
o)      Cetak output “Ada salah satu masukan yang kosong”
p)      Stop proses




C.  Flowchart atau psoudocode dari masing-masing soal
a.       Flowchart untuk mencari sisi miring dari suatu segitiga siku-siku


 



















b.      Flowchart untuk menampilkan banyaknya pecahan uang paling efisien


 























c.       Flowchart untuk mengkonversi bilangan dalam format desimal menjadi biner


 























d.      Flowchart untuk bonus pegawai


 
















e.       Flowchart untuk menghitung total biaya iklan baris yang harus dibayar oleh pengiklan

















f.       Flowchart Algoritma untuk menghitung total biaya tiket .
 










g.      Flowchart untuk menghitung berapa nilai yang harus dibayar oleh pelanggan dengan total nilai belanja tertentu bila disertakan pula perhitungan diskonnya.

















Parallelogram: Subtotal, jumlah* harga barang






 






























 









 


h.      Flowchart nilai












 








 








PRINT, END
 

 


i.        Flowchart tarif pemakaian Air PDAM Kota Surabaya


 
































j.        Flowchart untuk menghitung cash back yang diterima nasabah berdasarkan nilai pemakaian kartu kredit.








D.  Kode Sumber (Source Code) beserta Outputnya

SOAL NO.1
package tgas2;
import java.util.*;
/**
*
* @author Jauhar
*/
public class num1 {
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
Menghitung panjang sisi miring segitiga siku-siku
Masukan nilai sisi 1 = 3
Masukan nilai sisi 2 = 4
Panjang sisi miring segitiga siku-siku adalah 5


SOAL NO.2
package tgas2;

import java.util.*;
/**
*
* @author Jauhar
*/
public class num2 {
public static void main(String[] args) {
// TODO code application logic here
long bil1, uang;
do
{
//inputan dari keyboard
System.out.print("masukkan 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 {
if (uang >= 100000) {
bil1 = uang / 100000;
System.out.println("Diperlukan " + bil1 +" lembar 100000");
}
uang = uang % 100000;
if ((uang >= 50000) && (uang <100000))
{
bil1 = uang / 50000;
System.out.println("Diperlukan " + bil1 +" lembar 50000");
}
// antara 20000-50000
System.out.println("Diperlukan " + bil1 +" lembar 50000");
uang = uang % 50000;
if ((uang >= 20000) && (uang <50000))
{
bil1 = uang / 20000;
System.out.println("Diperlukan " + bil1 +" lembar 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");
}
if ((uang >= 1000) && (uang <2000))
bil1 = uang / 1000;
System.out.println("Diperlukan " + bil1 +" lembar 1000");
uang = uang % 2000;
if ((uang >= 1000) && (uang <2000))
{
bil1 = uang / 1000;
System.out.println("Diperlukan " + bil1 +" lembar 1000");

uang = uang % 1000;
if ((uang >= 500) && (uang <1000))
bil1 = uang / 500;
System.out.println("Diperlukan " + bil1 +" koin 500");
uang = uang % 500;
if ((uang >= 200) && (uang <500))
bil1 = uang / 200;
System.out.println ("Diperlukan " + bil1 +" koin 200");
uang = uang % 200
if ((uang >= 100) && (uang <200))
{
bil1 = uang / 100;
System.out.println ("Diperlukan " + bil1 +" koin 200");
while(uang!=0)
output
masukan jumlsh uang = 5000
diperlukan 1 lembar 5000


SOAL NO.3
import java.util.*;

import java.io.*;

/**

*

* @author Jauhar

public class num3 {

*/

public class num3 {

public static void main(String[] args) {

int angka;

Scanner obj = new Scanner(System.in);

System.out.print('\n'+"Masukkan Bil 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("konversinya ke bil.Biner adalah "); for (int a=i; a>=0;a--){

System.out.print(zz[a]);

} System.out.print('\n');

}

}
Output
Masukan bilangan decimal 254
Konverensi bil. Biner adalah 11111110


SOAL NO.4
import java.io.*;

/**

*

* @author jauhar

*/

public class num4 {

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 1.000.000");

}

else if ("staff".equals(pegawai) && (massa<5)){

System.out.println("Bonus anda 500.000");

}

else if ("staff".equals(pegawai) && (umur < 50)){

System.out.println("Bonus anda 300.000");

}

else if ("non staff".equals(pegawai) && (massa>5) && (umur>50)){

System.out.println("Bonus anda 400.000");

}

else if ("non staff".equals(pegawai) && (massa<5)){

System.out.println("Bonus anda 250.000");

}

else if ("non staff".equals(pegawai) && (umur<50)){

System.out.println("Bonus anda 250.000");

}

else {

else if ("staff".equals(pegawai) && (massa<5)){

System.out.println("Bonus anda 500.000");

}

else if ("staff".equals(pegawai) && (umur < 50)){

System.out.println("Bonus anda 300.000");

}

else if ("non staff".equals(pegawai) && (massa>5) && (umur>50)){

System.out.println("Bonus anda 400.000");

}

else if ("non staff".equals(pegawai) && (massa<5)){

System.out.println("Bonus anda 250.000");

}

else if ("non staff".equals(pegawai) && (umur<50)){

System.out.println("Bonus anda 250.000");

}

else {

System.out.println("Maaf, format status pegawai anda salah. Contoh

= staff / non staff");

}

}

}



SOAL NO.5
package tgas2;

import java.io.*;

/**

*

* @author jauhar

*/

public class num5 {

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 ");

}

}

}



SOAL NO.6
package tgas2;

import java.util.*;

/**

*

* @author jauhar

*/

public class num6 {

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);

}

}

}



SOAL NO.7
package tgas2;

import java.util.*;

/**

*

* @author jauhar

*/

public class NUM7 {

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("DisC = "+diskon);

System.out.print("\nYang harus dibayar = "+bayar);

}

else if(total<275000){

diskon= total * 0.20;

bayar=total-diskon;

System.out.print("DisC = "+diskon);

System.out.print("\nYang harus dibayar = "+bayar);

diskon= total * 0.20;

bayar=total-diskon;

System.out.print("DisC = "+diskon);

System.out.print("\nYang harus dibayar = "+bayar);

}

else {

diskon= total * 0.25;

bayar=total-diskon;

System.out.print("DisC = "+diskon);

System.out.print("\nYang harus dibayar = "+bayar);

}

}

}



SOAL NO.8
package tgas2;

import java.util.*;

* @author jauhar

public class NUM8 {

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 > 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");

}



SOAL NO.9
package tgas2;

import java.util.*;

* @author jauhar

public class NUM8 {

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 > 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");

}


SOAL NO.10

package tgas2;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.text.DecimalFormat;

import java.text.DecimalFormatSymbols;

/**

*

* @author jauhar

*/

public class NUM10 {

public static void main(String[] args) {

// TODO code application logic here

String str_pemakaian ="";

//int pemakaian = Integer.parseInt(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;

}

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);DecimalFormat 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 selama

sebulan "+jumlah_pemakaian+", maka total cash backnya= "+hsl_biaya_total);

}

else{

System.out.println("\nAda salah satu masukan yang kosong!");

return;

}

}

}

E.   Referensi
http://Control%20Flow%20dalam%20PHP%20%28if%20-%20else,%20if%20-%20elseif%20-%20else,%20switch%20-%20case,%20for,%20while,%20break,%20continue,%20return,%20exit%29%20_%20W3function.com%20-%20Indonesian%20Web%20Design%20and%20Development%20Studio.htm