Sabtu, 02 November 2013

MODUL 2 _ DASPROG

TUGAS MODUL II
DASAR PEMROGRAMAN







   


    








Di Susun Oleh :
Nur Arindah .R. Tyas
NIM : 135623078



D3 MANAJEMEN INFORMATIKA
TEKNIK ELEKTRO – FAKULTAS TEKNIK
UNIVERSITAS NEGERI SURABAYA
2013

A.   NETBEANS dan ECLIPSE
Netbeans
            Netbeans merupakan sebuah aplikasi Integrated Development Environment (IDE) yang berbasiskan Java dari Sun Microsystems yang berjalan di atas swing. 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 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.

Sejarah

Eclipse awalnya dikembangkan oleh IBM untuk menggantikan perangkat lunak IBM Visual Age for Java 4.0. Produk ini diluncurkan oleh IBM pada tanggal 5 November 2001, yang menginvestasikan sebanyak US$ 40 juta[1] untuk pengembangannya. Semenjak itu konsursium Eclipse Foundation mengambil alih untuk pengembangan Eclipse lebih lanjut dan pengaturan organisasinya.

Arsitektur

Sejak versi 3.0, Eclipse pada dasarnya merupakan sebuah kernel, yang mengangkat plug-in. Apa yang dapat digunakan di dalam Eclipse sebenarnya adalah fungsi dari plug-in yang sudah diinstal. Ini merupakan basis dari Eclipse yang dinamakan Rich Client Platform (RCP). Berikut ini adalah komponen yang membentuk RCP:
·         Core platform
·         OSGi
·         SWT (Standard Widget Toolkit)
·         JFace
·         Eclipse Workbench
Secara standar Eclipse selalu dilengkapi dengan JDT (Java Development Tools), plug-in yang membuat Eclipse kompatibel untuk mengembangkan program Java, dan PDE (Plug-in Development Environment) untuk mengembangkan plug-in baru. Eclipse beserta plug-in-nya diimplementasikan dalam bahasa pemrograman Java.
Konsep Eclipse adalah IDE yang terbuka (open), mudah diperluas (extensible) untuk apa saja, dan tidak untuk sesuatu yang spesifik[2]. Jadi, Eclipse tidak saja untuk mengembangkan program Java, akan tetapi dapat digunakan untuk berbagai macam keperluan, cukup dengan menginstal plug-in yang dibutuhkan. Apabila ingin mengembangkan program C/C++ terdapat plug-in CDT(C/C++ Development Tools). Selain itu, pengembangan secara visual bukan hal yang tidak mungkin oleh Eclipse, plug-in UML2 tersedia untuk membuat diagram UML. Dengan menggunakan PDE setiap orang bisa membuat plug-in sesuai dengan keinginannya. Salah satu situs yang menawarkan plug-in secara gratis seperti Eclipse downloads by project

B.   PENULISAN PROGRAM di JAVA , INPUT, dan OUTPUT

Menulis File java
import java.io.*;
class MenulisFile {
public static void main(String[] args){
if(args.length==0) {
System.out.println("Anda harus memasukkan nama file sebagai parameternya.");
return; }
String data;
FileWriter fout=null;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in))
try{
fout = new FileWriter(args[0]);
System.out.println("Ketik data yang ingin Anda tulis ke file.");
System.out.println("Ketik BERHENTI jika Anda ingin berhenti.");
data = br.readLine();
while(!data.equals("BERHENTI")){ // \r\n digunakan untuk pindah baris
fout.write(data + "\r\n");
data = br.readLine();
}
}catch(FileNotFoundException e) {
System.out.println("File : " + args[0] + " tidak dapat dibuka atau dibuat.");
}catch(IOException e) {
System.out.println("Eksepsi tidak diketahui : " + e);
}finally //tutup file
if(fout!=null) {
try{
fout.close();
}catch(IOException err) {
System.out.println("Eksepsi tidak diketahui : " + err);
}
}
}
}
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]); }
}
}
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 }
}
C.   Operator: Assignment, Matematika, Perbandingan, Logika

Dalam Java, ada beberapa tipe operator. Ada operator aritmatika, operator relasi,
operator logika, dan operator kondisi. Operator ini mengikuti bermacam-macam
prioritas yang pasti sehingga compilernya akan tahu yang mana operator untuk
dijalankan lebih dulu dalam kasus beberapa operator yang dipakai bersama-sama
dalam satu pernyataan.

Operator
Operator adalah sebuah simbol yang memerintahkan komputer untuk melakukan suatu operasi / aksi terhadap satu atau lebih operand. 
Operand adalah sesuatu yang dioperasikan atau operator. Untu mudahnya, mari kita lihat contoh 2 + 3. Simbol / tanda + adalah operator, sedangkan 2 dan 3 adalah operand. 
Operator + akan memerintahkan komputer untuk melakukan operasi penambahan pada 2 dan 3. 
Di dalam bahasa pemrograman terdapat beberapa macam operator yang akan sering kalian gunakan, yaitu:
·                     Assignment Operator
·                     Mathematical Operator ( Unary & Binary )
·                     Relational Operator
·                     Logical Operator
·                     Assignment Operator ( = )
Bahasa Indonesia dari assignment adalah “ penugasan “. Tapi, saya rasa arti kata ini akan membingungkan kalian. Oleh karena itu, saya akan memberikan arti yang lainnya yang lebih cocok dengan apa yang di lakukan oleh operato ini. Assignment operator (=) dapat di artikan dengan kata “diisi”. Mari kita lihat contoh di bawah ini.
A=7; = Variable A diisi dengan 7
B=1+1; = Variable B diisi dengan hasil dari 1 + 1 yaitu 2
C = A + 1; = Variable C akan diisi dengan hasil dari isi variable A ditambah I. jadi, jika variable
variable C akan diisi dengan hasil dari isi variable A ditambah I. jadi, jika variable A adalah 7, maka C akan diisi dengan B.

Operator Assignment
Operator Assignation digunakan untuk memberikan nilai ke suatu variabel.
contohnya :
a=5
Pernyataan di atas berarti kita memberikan nilai integer 5 ke variabel a. Sisi kiri
operator disebut lvalue (left value) dan sisi kanan disebut rvalue (right value).
lvalue harus selalu berupa variabel dan rvalue atau sisi kanan dapat berupa
konstanta, variabel, hasil dari suatu operasi atau kombinasi dari semuanya.
Aturan yang paling penting pada assigning (operasi sama dengan) adalah aturan
kanan-ke-kiri: Operasi assignment selalu terjadi dari kanan ke kiri, dan tidak
pernah sebaliknya.
a = b
Pernyataan ini memberikan arti variabel a (lvalue) di beri harga b (rvalue).
Contoh penerapannya adalah:
a = 10; //berarti a bernilai 10
b = 4; //berarti a bernilai 10 dan b bernilai 4
a = b; //berarti a bernilai 4 dan b bernilai 4. Ingat aturannya,
Kanan ke Kiri.
b = 7; //berarti a bernilai 4 dan b bernilai 7.
Operator Perbandingan 
Operator ini membuat anda bisa melakukan pembandingan apakah beberapa elemen sama, identik, kurang dari atau lebih besar dari yang lain.
Contoh
Name
Result
$a == $b
Sama dengan
BENAR jika $ a sama dengan $b.
$a === $b
Identik
BENAR jika $a sama dengan $b, dan keduanya memiliki tipe yang sama.
$a != $b
Tidak sama dengan
BENAR jika $a tidak sama dengan $b.
$a <> $b
Tidak sama dengan
BENAR jika $a tidak sama dengan $b.
$a !== $b
Tidak identik
BENAR jika $a tidak sama dengan $b, 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 saya lakukan adalah menggunakan operator assignment (“=”) untuk membandingkan, sehingga untuk mambandingkan apakah 2 variabel sama atau tidak dalam sebuah percabangan saya tuliskan:

If ($a = $b)

Yang seharusnya

If ($a == $b)

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
Try This: 4 Langkah Mudah Belajar Cara Membuat Website, Langsung Praktek!KLIK DI SINI!.
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.

Operator Aritmatika
          Persis seperti namanya, operator ini melakukan matematika dasar (artinya, kalau anda menginginkan operasi matematika lainnya misalnya integral atau differensial ya harus bikin sendiri, lagian siapa yang mau pake ya?)

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.

D.    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.

E.     Percabangan Java if, else-if, if-else, switch

Percabangan adalah suatu pilihan atau opsi dengan kondisi tertentu. Jika kondisi yang menjadi syarat terpenuhi, maka opsi atau pilihan dijalankan, jika tidak maka sebaliknya. Dalam java terdapat 4 macam jenis percabangan, if, if-else, else-if, dan juga switch. Keempat jenis ini memiliki penggunaan masing-masing. Berikut penjelasan mengenai penggunaan tiap-tiap percabangan :
·                     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. 
·                     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.

·                      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.
·                      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.
MODUL 2
PRAKTIKUM DASAR PEMROGRAMAN


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

Pertanyaan: 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/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.

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.

JAWABAN

PSOUDOCODE
1.     Pythagoras
Psoudocode
a.       input (a,b)
b.       c
c.        output ( c )
Algoritma
a.       tentukan nilai a,b
b.       hitung c =
c.        tampilkan c



2.      Pecahan Uang
Deskripsi
seratusribu, limapuluhribu, duapuluhribu, sepuluhribu, limaribu, duaribu, seribu, limaratus, duaratus, seratus, inputuang, sisa : Integer
Algoritma
seratusribu ÃŸ inputuang/100000;
sisa ÃŸinputuang - (seratusribu*100000);
limapuluhribu ÃŸsisa / 50000;
sisa ÃŸsisa - (limapuluhribu * 50000);
duapuluhribu ÃŸsisa / 20000;
sisa ÃŸsisa - (duapuluhribu * 20000);
sepuluhribu ÃŸsisa / 10000;
sisa ÃŸsisa - (sepuluhribu * 10000);
limaribu ÃŸsisa / 5000;
sisa ÃŸsisa - (limaribu * 5000);
duaribu ÃŸsisa / 2000;
sisa ÃŸsisa - (duaribu * 2000);
seribu ÃŸsisa / 1000;
sisa ÃŸsisa - (seribu * 1000);
limaratus ÃŸsisa / 500;
sisa ÃŸsisa - (limaratus * 500);
seratus ÃŸsisa / 100;
sisa ÃŸsisa - (seratus * 100);

if inputuang >= 100000 then
            if seratusribu == 0 then
                        Output (“ ”)
else
            Output (seratusribu)
endif
endif
if inputuang >= 50000 then
            if limapuluhribu == 0 then
                        Output (“ ”)
else
            Output (limapuluhribu)
endif
endif
if inputuang >= 20000 then
            if duapuluhribu == 0 then
                        Output (“ ”)
else
            Output (duapuluhribu)
endif
endif
if inputuang >= 10000 then
            if sepuluhribu == 0 then
                        Output (“ ”)
else
            Output (sepuluhribu)
endif
endif
if inputuang >= 5000 then
            if limaribu == 0 then
                        Output (“ ”)
else
            Output (limaribu)
endif
endif
if inputuang >= 2000 then
            if duaribu == 0 then
                        Output (“ ”)
else
            Output (duaribu)
endif
endif
if inputuang >= 1000 then
            if seribu == 0 then
                        Output (“ ”)
else
            Output (seribu)
endif
endif
if inputuang >= 500 then
            if limaratus == 0 then
                        Output (“ ”)
else
            Output (limaratus)
endif
endif
if inputuang >= 100 then
            if seratus == 0 then
                        Output (“ ”)
else
            Output (seratus)
endif
endif
if inputuang >= 0 then
             Output (sisa)
End if
                        End.
3.      Bilangan Desimal ke Biner
Deskripsi
bilangan , hasil=0 , i=0 : Integer
Algoritma
            While bilangan>0 Repeat
hasil+=bilangan mod 2 * (int) Math.pow(10, i);
bilangan/=2;
i++;
Output (hasil)
End.

4.      Bonus Pegawai
Deskripsi
nama, pegawai : String
            masakerja, umur : Integer
Algoritma
            If pegawai  = staf then
                        If masakerja >=5 and umur >=50 then
                                    Output (bonus)
                        Else if masakerja < 5 And umur = umur then
                                    Output (bonus)
                        Else if masakerka = masakerja And umur < 50 then
                                    Output (bonus)
                        End if
            Else If pegawai = nonstaf then
                        If masakerja >= 5 And umur >=50 then
                                    Output (bonus)
                        Else
                                    Output (bonus)
                        End if
            Else
                        Output (Pesan Error)
End.

5.     Tarif Iklan
Deskripsi
hari : String
baris : Double
Algoritma
            If hari = minggu Or hari = senin Or hari = selasa Or hari = rabu Or hari = kamis Or hari = jumat then
                        Output (baris * 33000)
            Else if hari = sabtu then
                        Output (baris * 40000)
            Else
                        Output (Pesan Error)
End.

6.      Harga Tiket
Deskripsi
hari, jenis : String
tiket : Integer
Algoritma
            If hari = senin Or hari = selasa Or hari = rabu Or hari = kamis then
                        If jenis = tidak then
                                    Output (tiket*15000)
                        Else
                                    Output (tiket*35000)
            Else if hari = jumat Or hari = sabtu Or hari = minggu
                        If jenis = tidak then
                                    Output (tiket*35000)
                        Else
                                    Output (tiket*35000)
            Else
                        Output (Pesan Error)
End.
7.      Diskon Belanja
Deskripsi
total, diskon, bayar : Double
Algoritma
            if total < 150000 then
                        diskon ÃŸ total * 0%
bayar ÃŸ total - diskon
                        Output (diskon)
                        Output (bayar)
            Else if total < 275000 then
diskon ÃŸ total * 10%
bayar ÃŸ total - diskon
                        Output (diskon)
                        Output (bayar)
Else if total < 300000 then
diskon ÃŸ total * 15%
bayar ÃŸ total - diskon
                        Output (diskon)
                        Output (bayar)
Else if total < 400000 then
diskon ÃŸ total * 20%
bayar ÃŸ total - diskon
                        Output (diskon)
                        Output (bayar)
Else
diskon ÃŸ total * 25%
bayar ÃŸ total - diskon
                        Output (diskon)
                        Output (bayar)
End.

8.      Nilai Huruf
Deskripsi
Nama : String
            tugas1,tugas2,tugas3,UTS,UAS, rata2, total : Double
Algoritma
            rata2 = (tugas1+tugas2+tugas3)/3;
            total = (rata2*(30%))+(UTS*(30%))+(UAS*(40%));
                                    if total > 0 And total <= 40 then
                                                Output (total)
                                                Output (“E”)
                                    else if total > 40 And total <= 55
                                                Output (total)
                                                Output (“D”)
else if total > 55 And total <= 60
                                                Output (total)
                                                Output (“C”)
                                    else if total > 60 And total <= 65
                                                Output (total)
                                                Output (“BC”)
                                    else if total > 65 And total <= 70
                                                Output (total)
                                                Output (“B”)
                                    else if total > 70 And total <= 80
                                                Output (total)
                                                Output (“AB”)
                                    else if total > 80 And total <= 100
                                                Output (total)
                                                Output (“A”)
End.
9.      Tarif PDAM
Deskripsi
Pemakaian : Double
Algoritma
            If pemakaian <= 0 then
                        Output ( pemakaian*0 )
            Else if pemakaian <= 50 then
                        Output ( pemakaian*200)
            Else if pemakain <=150 then
                        Output ((50*200)+((pemakaian - 100) * 500))
            Else if pemakaian <= 300 then
                        Output ((50 * 200) + (100 * 500) + ((pemakaian - 150) * 1000))
            Else
                        Output ((50 * 200) + (100 * 500) + (150 * 1000) + ((pemakaian - 300) * 1500))
End.
10.   Cash Back
Deskripsi
pemakaian1 ÃŸ 0 : Integer
            pemakaian2 ÃŸ 0 : Integer
            pemakaian3 ÃŸ 0 : Integer
            pemakaian4 ÃŸ 0 : Integer
cash_back_total ÃŸ 0 : Integer
jml_pemakaian : Integer
Implementasi
            pemakaian1ß1000000
            if jml_pemakaian<=1000000 then
pemakaian1 ÃŸ jml_pemakaian
Else if jml_pemakaian > 1000000 And jml_pemakaian <= 10000000 then
                        pemakaian1 ÃŸ 10000000
                        pemakaian2 ÃŸ jml_pemakaian – 1000000
            Else if jml_pemakaian > 10000000 And jml_pemakaian <= 25000000 then
                        pemakaian2 ÃŸ 10000000
                        pemakaian3 ÃŸ jml_pemakaian-25000000
           
Else if jml_pemakaian > 25000000 then
                        pemakaian2 ÃŸ 10000000
                        pemakaian3 ÃŸ 25000000
pemakaian4 ÃŸ jml_pemakaian – 25000000
cash_back_total=(pemakaian1*5%)+(pemakaian2*6%)+(pemakaian3*7%)+(pemakaian4*8%)
Output (jml_pemakaian , cash_back_total)
End.

Kode Sumber (Source Code) beserta Outputnya
1      1 .      Source Code & Output
1 package Dasprog_Prak2;
2
3 /*
4 * To change this template, choose Tools | Templates
5 * and open the template in the editor.
6 */
7
8 /**
9 *
10 *
11 */
12 public class Nomer1 {
13
14 /**
15 * @param args the command line arguments
16 */
17 public static void main(String[] args) {
18 // TODO code application logic here
19 int alas=3;
20 int tinggi=5;
21 double sisi_miring=Math.sqrt(Math.pow(alas,
2)+Math.pow(tinggi, 2));
22
23 System.out.println("Sisi miring dari segitiga dengan alas =
"+alas+"cm, dan tinggi = "+tinggi+"cm adalah "+sisi_miring+"cm");
24
25
26 }
27 }
28

2 2 .     Source Code & Output
3.     1 package Dasprog_Prak2;
4.     2
5.     3 import java.io.BufferedReader;
6.     4 import java.io.IOException;
7.     5 import java.io.InputStreamReader;
8.     6
9.     7 /*
10. 8 * To change this template, choose Tools | Templates
11. 9 * and open the template in the editor.
12. 10 */
13. 11
14. 12 /**
15. 13 *
16. 14 *
17. 15 */
18. 16 public class Nomer2 {
19. 17
20. 18 /**
21. 19 * @param args the command line arguments
22. 20 */
23. 21 public static void main(String[] args) {
24. 22 // TODO code application logic here
25. 23 BufferedReader dataIn = new BufferedReader(new
26. InputStreamReader(System.in) );
27. 24 String uang_inputan = "";
28. 25 int hasil=0;
29. 26 int sisa=0;
30. 27
31. 28 System.out.print("Masukkan input jumlah uang anda : ");
32. 29 try{
33. 30 uang_inputan = dataIn.readLine();
34. 31 }catch( IOException e ){
35. 32 System.out.println("Error!");
36. 33 }
37. 37 if(uang_inputan.length()>0){
38. 38
39. 39 System.out.print("Untuk uang Rp "+uang_inputan+", diperlukan ");
40. 40
41. 41 if (Integer.parseInt(uang_inputan)>=100000){
42. 42 hasil = Integer.parseInt(uang_inputan)/100000;
43. 43 sisa = Integer.parseInt(uang_inputan)%100000;
44. 44
45. 45 System.out.print(""+hasil+" lembar 100.000, ");
46. 46 }
47. 47 else if (Integer.parseInt(uang_inputan)<100000){
48. 48 hasil = Integer.parseInt(uang_inputan)/100000;
49. 49 sisa = Integer.parseInt(uang_inputan)%100000;
50. 50 }
51. 51
52. 52
53. 53 if (sisa>=50000){
54. 54 hasil = sisa/50000;
55. 55 sisa = sisa %50000;
56. 56 System.out.print(""+hasil+" lembar 50.000, ");
57. 57 }
58. 58 if (sisa>=20000){
59. 59 hasil = sisa/20000;
60. 60 sisa = sisa %20000;
61. 61 System.out.print(""+hasil+" lembar 20.000, ");
62. 62 }
63. 63 if (sisa>=10000){
64. 64 hasil = sisa/10000;
65. 65 sisa = sisa %10000;
66. 66 System.out.print(""+hasil+" lembar 10.000, ");
67. 67 }
68. 68 if (sisa>=5000){
69. 69 hasil = sisa/5000;
70. 70 sisa = sisa %5000;
71. 71 System.out.print(""+hasil+" lembar 5.000, ");
72. 72 }
73. 73 if (sisa>=2000){
74. 74 hasil = sisa/2000;
75. 75 sisa = sisa %2000;
76. 76 System.out.print(""+hasil+" lembar 2.000, ");
77. 77 }
78. 78 if (sisa>=1000){
79. 79 hasil = sisa/1000;
80. 80 sisa = sisa %1000;
81. 81 System.out.print(""+hasil+" lembar 1.000, ");
82. 82 }
83. 83 if (sisa>=500){
84. 84 hasil = sisa/500;
85. 85 sisa = sisa %500;
86. 86 System.out.print(""+hasil+" koin 500, ");
87. 87 }
88. 88 if (sisa>=100){
89. 89 hasil = sisa/100;
90. 90 sisa = sisa %100;
91. 91 System.out.print(""+hasil+" koin 100, ");
92. 92 }
93. 93 if (sisa>0){
94. 94 System.out.println("Sisa "+sisa+" Rupiah diikhlaskan saja.");
95. 95 }
96. 96 }
97. 97 else{
98. 98 System.out.println("\nAda salah satu masukan yang kosong!");
99. 99 return;
100.                    100 }
101.                    101 }
102.                   102 }


3 3 .      Source Code & Output
4.      1 /*
5.      2 * To change this template, choose Tools | Templates
6.      3 * and open the template in the editor.
7.      4 */
8.      5 package Dasprog_Prak2;
9.      6
10.  7 import java.io.BufferedReader;
11.  8 import java.io.IOException;
12.  9 import java.io.InputStreamReader;
13.  10
14.  11 /**
15.  12 *
16.  13 *
17.  14 */
18.  15
19.  16 public class Nomer3 {
20.  17
21.  18 /**
22.  19 * @param args the command line arguments
23.  20 */
24.  21 public static void main(String[] args) {
25.  22 // TODO code application logic here
26.  23 BufferedReader dataIn = new BufferedReader(new
27.  InputStreamReader(System.in) );
28.  24 String str_bil_desimal="";
29.  25 String str_bil_biner="";
30.  26
31.  27 System.out.print("Masukkan bilangan desimal : "+str_bil_desimal+"");
32.  28 try{
33.  29 str_bil_desimal = dataIn.readLine();
34.  30 }catch( IOException e ){
35.  31 System.out.println("Error!");
36.  32 }
37.  33 if(str_bil_desimal.length()>0){
38.  34 int bil_desimal = Integer.parseInt(str_bil_desimal);
39.  35 while(bil_desimal!=0){
40.  36 if(bil_desimal%2==0){
41.  37 str_bil_biner="0"+str_bil_biner;
42.  38 }
43.  39 else{
44.  40 str_bil_biner="1"+str_bil_biner;
45.  41 }
46.  42 bil_desimal= bil_desimal/2;
47.  43 }
48.  44 System.out.print("Bilangan biner: "+str_bil_biner);
49.  45 System.out.println("");
50.  46 }
51.  47 else{
52.  48 System.out.println("\nAda salah satu masukan yang kosong!");
53.  49 return;
54.  50 }
55.  51
56.  52
57.  53 }
58.  54 }
59.  55


4.      Source Code dan Input
5.      1 /*
6.      2 * To change this template, choose Tools | Templates
7.      3 * and open the template in the editor.
8.      4 */
9.      5 package Dasprog_Prak2;
10.  6 import java.text.DecimalFormat;
11.  7 import java.text.DecimalFormatSymbols;
12.  8 /**
13.  9 *
14.  10 *
15.  11 */
16.  12 public class Nomer4 {
17.  13
18.  14 /**
19.  15 * @param args the command line arguments
20.  16 */
21.  17 public static void main(String[] args) {
22.  18 // TODO code application logic here
23.  19 String nama="tyan wisesa";
24.  20 String jenis_pegawai="Staff";
25.  21 int umur=30;
26.  22 int lama_tahun_bekerja=3;
27.  23 int bonus_gaji=0;
28.  24
29.  25 if(jenis_pegawai=="Staff"){
30.  26 if(lama_tahun_bekerja>=5 && umur>=50){
31.  27 bonus_gaji=1000000;
32.  28 }
33.  29 else if(lama_tahun_bekerja<5){
34.  30 bonus_gaji=500000;
35.  31 }
36.  32 else if(umur<50){
37.  33 bonus_gaji=300000;
38.  34 }
39.  35
40.  36 }
41.  37 else if(jenis_pegawai=="Non-Staff"){
42.  38 if(lama_tahun_bekerja>5 && umur>=50){
43.  39 bonus_gaji=400000;
44.  40 }
45.  41 else if(umur<50){
46.  42 bonus_gaji=250000;
47.  43 }
48.  44 }
49.  45
50.  46 DecimalFormat df = (DecimalFormat) DecimalFormat.getCurrencyInstance();
51.  47 DecimalFormatSymbols dfs = new DecimalFormatSymbols();
52.  48 dfs.setCurrencySymbol("");
53.  49 dfs.setMonetaryDecimalSeparator(',');
54.  50 dfs.setGroupingSeparator('.');
55.  51 df.setDecimalFormatSymbols(dfs);
56.  52 String hsl = "Rp " + df.format(bonus_gaji);
57.  53
58.  54 System.out.println("Detil pegawai: ");
59.  55 System.out.println("Nama Pegawai: "+nama);
60.  56 System.out.println("Golongan pegawai: "+jenis_pegawai);
61.  57 System.out.println("Umur pegawai: "+umur);
62.  58 System.out.println("Lama tahun bekerja: "+lama_tahun_bekerja);
63.  59 System.out.println("\nBonus yang anda dapat adalah: "+hsl);
64.  60
65.  61 }
66.  62 }

55 .       Source Code dan Output
6.      1 /*
7.      2 * To change this template, choose Tools | Templates
8.      3 * and open the template in the editor.
9.      4 */
10.  5 package Dasprog_Prak2;
11.  6
12.  7 import java.io.BufferedReader;
13.  8 import java.io.IOException;
14.  9 import java.io.InputStreamReader;
15.  10 import java.text.DecimalFormat;
16.  11 import java.text.DecimalFormatSymbols;
17.  12
18.  13 /**
19.  14 *
20.  15 *
21.  16 */
22.  17 public class Nomer5 {
23.  18
24.  19 /**
25.  20 * @param args the command line arguments
26.  21 */
27.  22 public static void main(String[] args) {
28.  23 // TODO code application logic here
29.  24
30.  25 BufferedReader dataIn = new BufferedReader(new
31.  InputStreamReader(System.in) );
32.  26
33.  27 String hari="";
34.  28 String jumlah_baris="";
35.  29 int per_baris=0;
36.  30 int total_harga=0;
37.  31
38.  32 System.out.println("(Minggu, Senin, Selasa, Rabu, Kamis, Jumat atau Sabtu)");
39.  33 System.out.print("Hari pemasangan iklan : ");
40.  34 try{
41.  35 hari = dataIn.readLine();
42.  36 }catch( IOException e ){
43.  37 System.out.println("Error!");
44.  38 }
45.  40 System.out.print("Jumlah baris dipakai : ");
46.  41 try{
47.  42 jumlah_baris = dataIn.readLine();
48.  43 }catch( IOException e ){
49.  44 System.out.println("Error!");
50.  45 }
51.  46
52.  47 if(hari.length()>0 && jumlah_baris.length()>0){
53.  48 if("Minggu".equalsIgnoreCase(hari) || "Senin".equalsIgnoreCase(hari) ||
54.  "Selasa".equalsIgnoreCase(hari) || "Rabu".equalsIgnoreCase(hari) ||
55.  "Kamis".equalsIgnoreCase(hari) || "Jumat".equalsIgnoreCase(hari))
56.  49 {
57.  50 per_baris=33000;
58.  51 total_harga= Integer.parseInt(jumlah_baris) * per_baris;
59.  52
60.  53 }
61.  54 else if("Sabtu".equals(hari)){
62.  55 per_baris=40000;
63.  56 total_harga= Integer.parseInt(jumlah_baris) * per_baris;
64.  57 }
65.  58
66.  59 DecimalFormat df = (DecimalFormat)
67.  DecimalFormat.getCurrencyInstance();
68.  60 DecimalFormatSymbols dfs = new DecimalFormatSymbols();
69.  61 dfs.setCurrencySymbol("");
70.  62 dfs.setMonetaryDecimalSeparator(',');
71.  63 dfs.setGroupingSeparator('.');
72.  64 df.setDecimalFormatSymbols(dfs);
73.  65 String hsl = "Rp " + df.format(total_harga);
74.  66
75.  67 System.out.println("\nTotal biaya iklan yang harus dibayar: "+hsl);
76.  68 }
77.  69 else{
78.  70 System.out.println("\nAda salah satu masukan yang kosong!");
79.  71 return;
80.  72 }
81.  73 }
82.  74 }


66 .      Source Code dan Output
7.     package Dasprog_Prak2;
8.     6
9.     7 import java.io.BufferedReader;
10. 8 import java.io.IOException;
11. 9 import java.io.InputStreamReader;
12. 10 import java.text.DecimalFormat;
13. 11 import java.text.DecimalFormatSymbols;
14. 12
15. 13 /**
16. 14 *
17. 15 *
18. 16 */
19. 17 public class Nomer6 {
20. 18
21. 19 /**
22. 20 * @param args the command line arguments
23. 21 */
24. 22 public static void main(String[] args) {
25. 23 // TODO code application logic here
26. 24 BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in)
27. );
28. 25
29. 26 String hari="";
30. 27 String hari_libur="";
31. 28 String jml_tiket="";
32. 29
33. 30 int htm=0;
34. 31 int total_harga=0;
35. 32
36. 33 System.out.println("(Minggu, Senin, Selasa, Rabu, Kamis, Jumat atau Sabtu)");
37. 34 System.out.print("Hari pemesanan tiket: ");
38. 35 try{
39. 36 hari = dataIn.readLine();
40. 37 }catch( IOException e ){
41. 38 System.out.println("Error!");
42. 39 }
43. 41 System.out.print("Hari Libur? (Y/T): ");
44. 42 try{
45. 43 hari_libur = dataIn.readLine();
46. 44 }
47. 45 catch( IOException e ){
48. 46 System.out.println("Error!");
49. 47 }
50. 48
51. 49 System.out.print("Jumlah tiket dibeli: ");
52. 50 try{
53. 51 jml_tiket = dataIn.readLine();
54. 52 }catch( IOException e ){
55. 53 System.out.println("Error!");
56. 54 }
57. 55 if(hari.length()>0 && hari_libur.length()>0 && jml_tiket.length()>0){
58. 56 if("Senin".equalsIgnoreCase(hari) || "Selasa".equalsIgnoreCase(hari) ||
59. "Rabu".equalsIgnoreCase(hari) || "Kamis".equalsIgnoreCase(hari)){
60. 57
61. 58 if("Y".equalsIgnoreCase(hari_libur)){
62. 59 htm = 35000;
63. 60 total_harga= Integer.parseInt(jml_tiket) * htm;
64. 61 }
65. 62 else if("T".equalsIgnoreCase(hari_libur)){
66. 63 htm = 15000;
67. 64 total_harga= Integer.parseInt(jml_tiket) * htm;
68. 65 }
69. 66 else{
70. 67 System.out.println("\nMasukan Hari Libur tidak benar!");
71. 68 return;
72. 69 }
73. 70
74. 71 }
75. 72 else if("Jumat".equalsIgnoreCase(hari) || "Sabtu".equalsIgnoreCase(hari)
76. || "Minggu".equalsIgnoreCase(hari)){
77. 73 htm = 35000;
78. 74 total_harga= Integer.parseInt(jml_tiket) * htm;
79. 75 }
80. 76
81. 77 else{
82. 78 System.out.println("\nMasukan hari tidak benar!");
83. 79 return;
84. 80 }
85. 81
86. 82 DecimalFormat df = (DecimalFormat)
87. DecimalFormat.getCurrencyInstance();
88. 83 DecimalFormatSymbols dfs = new DecimalFormatSymbols();
89. 84 dfs.setCurrencySymbol("");
90. 85 dfs.setMonetaryDecimalSeparator(',');
91. 86 dfs.setGroupingSeparator('.');
92. 87 df.setDecimalFormatSymbols(dfs);
93. 88 String hsl = "Rp. " + df.format(total_harga);
94. 89
95. 90 System.out.println("\nTotal biaya tiket yang harus dibayar: "+hsl);
96. 91 }
97. 92 else{
98. 93 System.out.println("\nAda salah satu masukan yang kosong!");
99. 94 return;
100.                    95 }
101.                    96 }
102.                   97 }

7. Source Code dan Output
5 package Dasprog_Prak2;
6
7 import java.io.BufferedReader;
8 import java.io.IOException;
9 import java.io.InputStreamReader;
10 import java.text.DecimalFormat;
11 import java.text.DecimalFormatSymbols;
12
13 /**
14 *
15 *
16 */
17 public class Nomer7 {
18
19 /**
20 * @param args the command line arguments
21 */
22 public static void main(String[] args) {
23 // TODO code application logic here
24 BufferedReader dataIn = new BufferedReader(new
InputStreamReader(System.in) );
25
26 String str_total_belanja="";
27 int diskon=0;
28 String besaran_diskon="";
29 int total_belanja_sesudah=0;
30
31 System.out.print("Masukkan total belanja: ");
32 try{
33 str_total_belanja = dataIn.readLine();
34 }catch( IOException e ){
35 System.out.println("Error!");
36 }
38 if(str_total_belanja.length()>0){
39 int total_belanja_sebelum = Integer.parseInt(str_total_belanja);
40
41 if(total_belanja_sebelum>=150000 && total_belanja_sebelum<275000){
42 besaran_diskon="10%";
43 diskon = total_belanja_sebelum*10/100;
44 total_belanja_sesudah = total_belanja_sebelum-diskon;
45 }
46 else if(total_belanja_sebelum>=275000 &&
total_belanja_sebelum<300000){
47 besaran_diskon="15%";
48 diskon = total_belanja_sebelum*15/100;
49 total_belanja_sesudah = total_belanja_sebelum-diskon;
50 }
51 else if(total_belanja_sebelum>=300000 &&
total_belanja_sebelum<400000){
52 besaran_diskon="20%";
53 diskon = total_belanja_sebelum*20/100;
54 total_belanja_sesudah = total_belanja_sebelum-diskon;
55 }
56 else if(total_belanja_sebelum>=400000){
57 besaran_diskon="25%";
58 diskon = total_belanja_sebelum*25/100;
59 total_belanja_sesudah = total_belanja_sebelum-diskon;
60 }
61 else{
62 total_belanja_sesudah = total_belanja_sebelum;
63 }
65 DecimalFormat df = (DecimalFormat) DecimalFormat.getCurrencyInstance();
66 DecimalFormatSymbols dfs = new DecimalFormatSymbols();
67 dfs.setCurrencySymbol("");
68 dfs.setMonetaryDecimalSeparator(',');
69 dfs.setGroupingSeparator('.');
70 df.setDecimalFormatSymbols(dfs);
71 String hsl_diskon = "Rp. " + df.format(diskon);
72 String hsl = "Rp. " + df.format(total_belanja_sesudah);
74 System.out.println("\nNilai Diskon ("+besaran_diskon+"): "+hsl_diskon);
75 System.out.println("Nilai yang harus dibayar: "+hsl);
77 }
78 else{
79 System.out.println("\nAda salah satu masukan yang kosong!");
80 return;
81 }}}

8.  Source Code dan Output
5 package Dasprog_Prak2;
6
7 import java.io.BufferedReader;
8 import java.io.IOException;
9 import java.io.InputStreamReader;
10
11 /**
12 *
13 *
14 */
15 public class Nomer8 {
16
17 /**
18 * @param args the command line arguments
19 */
20 public static void main(String[] args) {
21 // TODO code application logic here
22 String tugas1 ="";
23 String tugas2="";
24 String tugas3="";
25 String utc="";
26 String uac="";
27
28 double rata_rata_tugas=0;
29 double nilai_akhir=0;
30 String nilai_huruf="";
31
32 int jumlah_data=0;
33
34 BufferedReader dataIn = new BufferedReader(new
InputStreamReader(System.in) );
35
36 System.out.print("Masukkan nilai tugas 1 : "+tugas1);
37 try{
38 tugas1 = dataIn.readLine();
39 jumlah_data+=1;
40 }catch( IOException e ){
41 System.out.println("Error!");
42 }
44 System.out.print("Masukkan nilai tugas 2 : "+tugas2);
45 try{
46 tugas2 = dataIn.readLine();
47 jumlah_data+=1;
48 }catch( IOException e ){
49 System.out.println("Error!");
50 }
51
52 System.out.print("Masukkan nilai tugas 3 : "+tugas3);
53 try{
54 tugas3 = dataIn.readLine();
55 jumlah_data+=1;
56 }catch( IOException e ){
57 System.out.println("Error!");
58 }
59
60 System.out.print("Masukkan nilai UTC : "+utc);
61 try{
62 utc = dataIn.readLine();
63 }catch( IOException e ){
64 System.out.println("Error!");
65 }
66
67 System.out.print("Masukkan nilai UAC : "+uac);
68 try{
69 uac = dataIn.readLine();
70 }catch( IOException e ){
71 System.out.println("Error!");
72 }
73
74 if(tugas1.length()>0 && tugas2.length()>0 && tugas3.length()>0 &&
utc.length()>0 && uac.length()>0){
75
76 rata_rata_tugas =
(Integer.parseInt(tugas1)+Integer.parseInt(tugas2)+Integer.parseInt(tugas3))/jumlah_d
ata;
77
78
nilai_akhir=((rata_rata_tugas*30/100)+(Integer.parseInt(utc)*30/100)+(Integer.parseI
nt(uac)*40/100));
79
80 if(nilai_akhir>80 && nilai_akhir<=100){
81 nilai_huruf="A";
82 }
83 else if(nilai_akhir>70 && nilai_akhir<=80){
84 nilai_huruf="AB";
85 }
86 else if(nilai_akhir>65 && nilai_akhir<=70){
87 nilai_huruf="B";
88 }
89 else if(nilai_akhir>60 && nilai_akhir<=65){
90 nilai_huruf="BC";
91 }
92 else if(nilai_akhir>55 && nilai_akhir<=60){
93 nilai_huruf="C";
94 }
95 else if(nilai_akhir>40 && nilai_akhir<=55){
96 nilai_huruf="D";
97 }
98 else if(nilai_akhir>0 && nilai_akhir<=40){
99 nilai_huruf="E";
100 }
101
102 System.out.println("\nNilai Akhir anda adalah: "+nilai_akhir);
103 System.out.println("Nilai Huruf anda adalah: "+nilai_huruf);
104 }
105 else{
106 System.out.println("\nAda salah satu masukan yang kosong!");
107 return;
108 }
109 }
110 }

9.  Source Code dan Output
5 package Dasprog_Prak2;
6
7 import java.io.BufferedReader;
8 import java.io.IOException;
9 import java.io.InputStreamReader;
10 import java.text.DecimalFormat;
11 import java.text.DecimalFormatSymbols;
12
13 /**
14 *
15 *
16 */
17 public class Nomer9 {
18
19 /**
20 * @param args the command line arguments
21 */
22 public static void main(String[] args) {
23 // TODO code application logic here
24 String str_pemakaian ="";
25 //int pemakaian = Integer.parseInt(str_pemakaian);
26 int pemakaian1=0;
27 int pemakaian2=0;
28 int pemakaian3=0;
29 int pemakaian4=0;
31 int biaya1=0;
32 int biaya2=0;
33 int biaya3=0;
34 int biaya4=0;
35 int biaya_total=0;
37 BufferedReader dataIn = new BufferedReader(new
InputStreamReader(System.in) );
38
39 System.out.print("Masukkan jumlah pemakaian Air PDAM (m³) :
"+str_pemakaian+"");
40 try{
41 str_pemakaian = dataIn.readLine();
42 }catch( IOException e ){
43 System.out.println("Error!");
44 }
45
46 if(str_pemakaian.length()>0){
47 int jml_pemakaian = Integer.parseInt(str_pemakaian);
48
49
50 pemakaian1=50;
51
52 if(jml_pemakaian<=50){
53 pemakaian1=jml_pemakaian;
54 biaya1=pemakaian1*200;
55 }
56 else if(jml_pemakaian>50 && jml_pemakaian<=150){
57 pemakaian1=50;
58 pemakaian2=jml_pemakaian-50;
59 biaya1=pemakaian1*200;
60 biaya2=pemakaian2*500;
61 }
62 else if(jml_pemakaian>150 && jml_pemakaian<=300){
63 pemakaian2=100;
64 pemakaian3=jml_pemakaian-150;
65 biaya1=pemakaian1*200;
66 biaya2=pemakaian2*500;
67 biaya3=pemakaian3*1000;
68 }
69 else if(jml_pemakaian>300){
70 pemakaian2=100;
71 pemakaian3=150;
72 pemakaian4=jml_pemakaian-300;
73 biaya1=pemakaian1*200;
74 biaya2=pemakaian2*500;
75 biaya3=pemakaian3*1000;
76 biaya4=pemakaian4*1500;
77 }
78 biaya_total = biaya1+biaya2+biaya3+biaya4;
79
80 DecimalFormat df = (DecimalFormat)
DecimalFormat.getCurrencyInstance();
81 DecimalFormatSymbols dfs = new DecimalFormatSymbols();
82 dfs.setCurrencySymbol("");
83 dfs.setMonetaryDecimalSeparator(',');
84 dfs.setGroupingSeparator('.');
85 df.setDecimalFormatSymbols(dfs);
86 String hsl_biaya1 = "Rp. " + df.format(biaya1);
87 String hsl_biaya2 = "Rp. " + df.format(biaya2);
88 String hsl_biaya3 = "Rp. " + df.format(biaya3);
89 String hsl_biaya4 = "Rp. " + df.format(biaya4);
90 String hsl_biaya_total = "Rp. " + df.format(biaya_total);
91
94 System.out.println("\nJumlah Pemakaian = "+jml_pemakaian+"m³");
95 System.out.println("Pemakaian I ( s/d 50 m³) Rp. 200,- *
"+pemakaian1+" = Rp "+hsl_biaya1);
96 if(jml_pemakaian>50){
97 System.out.println("Pemakaian II ( 51 – 150 ) Rp. 500,- *
"+pemakaian2+" = Rp "+hsl_biaya2);
98 }
99 if(jml_pemakaian>150){
100 System.out.println("Pemakaian III ( 151 – 300 ) Rp. 1000,- *
"+pemakaian3+" = Rp "+hsl_biaya3);
101 }
102 if(jml_pemakaian>300){
103 System.out.println("Pemakaian IV ( >300 m³) Rp. 1500,- *
"+pemakaian4+" = Rp "+hsl_biaya4);
104 }
105
106 System.out.println("Biaya Total: Rp
"+hsl_biaya_total);
107 }
108 else{
109 System.out.println("\nAda salah satu masukan yang kosong!");
110return;
111}

10.  Source Code dan Output
5 package Dasprog_Prak2;
6
7 import java.io.BufferedReader;
8 import java.io.IOException;
9 import java.io.InputStreamReader;
10 import java.text.DecimalFormat;
11 import java.text.DecimalFormatSymbols;
12
13 /**
14 *
15 *
16 */
17 public class Nomer10 {
18
22 public static void main(String[] args) {
23 // TODO code application logic here
24 String str_pemakaian ="";
25 //int pemakaian = Integer.parseInt(str_pemakaian);
26 int pemakaian1=0;
27 int pemakaian2=0;
28 int pemakaian3=0;
29 int pemakaian4=0;
30
31 int cash_back_total=0;
32
33 BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in) );
34
35 System.out.print("Masukkan jumlah pemakaian Kartu Kredit : "+str_pemakaian+"");
36 try{
37 str_pemakaian = dataIn.readLine();
38 }catch( IOException e ){
39 System.out.println("Error!");
40 }
41
42 if(str_pemakaian.length()>0){
43 int jml_pemakaian = Integer.parseInt(str_pemakaian);
44
46 pemakaian1=1000000;
48 if(jml_pemakaian<=1000000){
49 pemakaian1=jml_pemakaian;
50 }
51 else if(jml_pemakaian>1000000 && jml_pemakaian<=10000000){
52 pemakaian1=1000000;
53 pemakaian2=jml_pemakaian-1000000;
54 }
55 else if(jml_pemakaian>10000000 && jml_pemakaian<=25000000){
56 pemakaian2=10000000;
57 pemakaian3=jml_pemakaian-25000000;
58 }
59 else if(jml_pemakaian>25000000){
60 pemakaian2=10000000;
61 pemakaian3=25000000;
62 pemakaian4=jml_pemakaian-25000000;
63 }
64
65 cash_back_total =
(pemakaian1*5/100)+(pemakaian2*6/100)+(pemakaian3*7/100)+(pemakaian4*8/100);
66
67 DecimalFormat df = (DecimalFormat) DecimalFormat.getCurrencyInstance();
68 DecimalFormatSymbols dfs = new DecimalFormatSymbols();
69 dfs.setCurrencySymbol("");
70 dfs.setMonetaryDecimalSeparator(',');
71 dfs.setGroupingSeparator('.');
72 df.setDecimalFormatSymbols(dfs);
73 String jumlah_pemakaian = "Rp. " + df.format(jml_pemakaian);
74 String hsl_biaya_total = "Rp. " + df.format(cash_back_total);
75
78 System.out.println("Seorang nasabah yang total selama sebulan
"+jumlah_pemakaian+", maka total cash backnya= "+hsl_biaya_total);
79 }
80 else{
81 System.out.println("\nAda salah satu masukan yang kosong!");
82 return;
83 }
84 }}




REFERENSI