Translate

Kamis, 07 November 2013

Modul 2 ~ Praktikum Dasar Pemrograman



MODUL 2
PRAKTIKUM DASAR PEMROGRAMAN










Oleh
Restu Isworo
135623074
MANAGEMENT INFORMATIC – C


1.   Dasar Teori
1.1       Pengertian Neatbeans
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 desktop dan Platform NetBeans juga menawarkan layanan-layanan yang umum bagi aplikasi desktop, mengijinkan pengembang untuk fokus ke logika yang spesifik terhadap aplikasi.
1.2       Eclipse (perangkat lunak)
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 :
v Multi-platform : Target sistem operasi Eclipse adalah Microsoft Windows, Linux, Solaris, AIX, HP-UX dan Mac OS X.
v 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.
v 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.
1.3       Penulisan Program di Java, Input, Output

File Kode Sumber

File kode sumber program Java, merupakan tempat di mana kode-kode yang membangun program ditulis. Terdapat pernyataan (statement), blok (block) dan komentar (comment) di dalamnya. Aturan untuk menulis kode program Java yaitu :
  • Nama file dapat dibuat apa saja, kecuali jika terdapat public class dalam kode program, maka nama file harus sama dengan nama public class tersebut, kemudian harus berakhiran atau memiliki ekstensi .java, contoh.
1
2
3
) ProgamKu.java
) Kalkulator.java
) Hello.java
  • File kode sumber yang kosong dapat di-compile tanpa pesan error.
  • Bentuk atau struktur penulisan kode sumber program Java ditulis secara berurutan yaitu :
1.   Diawali dengan penulisan package, setidaknya ada 0 atau 1 package, harus ditulis sebagai pernyataan pertama. Package merupakan pemaketan atau pengorganisasian kode program beserta sumber daya (resource) program lainnya, sehingga membuat program lebih ter-organisir dan ter-proteksi.
2.   Selanjutnya, import, setidaknya ada 0 atau lebih pernyataan import, harus ditulis sebelum mendeklarasikan class. Import menyatakan library atau class apa saja yang dibutuhkan dan digunakan dalam program.
3.   Kemudian, class, setidaknya ada 0 atau lebih deklarasi class, sedangkan public class hanya diperbolehkan 1 dalam satu file. Berikut strukturnya.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package nama.paket;

import kelas.kelas.yang.digunakan.dalam.Program;
import kelas.kelas.lain.yang.Digunakan;
import kelas.kelas.Lainnya;
// Statement import lainya.

public class NamaClassPublic {
    // Deklarasi isi class, dapat berisi class, variabel, method dan blok lain.
}

class NamaClass {
        // Deklarasi isi class.
}

class NamaClassLainnya {
    // Deklarasi isi class.
}

// Deklarasi class lainnya
Jadi, dalam sebuah kode program Java, memiliki bagian utama berupa class, import merupakan bagian deklarasi library yang digunakan sedangkan bagian package untuk pemaketan program.

Pernyataan

Sebuah pernyataan diakhiri dengan tanda semicolon atau titik koma ( ; ), contoh :
1
2
3
import java.util.Date;
System.out.println(“Sebuah pernyataan”);
int x;

Blok

Blok merupakan bagian yang terdiri dari kumpulan statement atau blok lainnya, yang diapit oleh tanda kurung kurawal ( { //isi blok } ), dan tidak diakhiri dengan semicolon.
Contoh 1.
1
2
3
4
5
public static void main(String[] agrs) {
    // Contoh komentar satu baris.
    int x = 100; // Variabel x.
    System.out.println(“Nilai x adalah”+x);
}
Contoh 2.
1
2
3
4
5
6
7
8
/* Contoh komentar yang lebih dari satu baris.
   Jika nilai lebih dari 80,
   nilai diberi A dan dinyatakan Lulus
*/
if (x>80) {
    nilai = 'A';
    keterangan = “LULUS”;
}
Contoh 3.
1
2
3
4
5
6
7
8
9
10
11
12
13
public class Halo {
    boolean tampil;

    public static void main(String[] args) {
        Halo h = new Halo();
        h.tampil = true;

        // h.tampil bernilai benar tampilkan tulisan Halo.
        if (h.tampil) {
            System.out.println(“Halo”);
        }
    }
}

Komentar

Komentar dapat ditulis di bagian mana saja pada kode program. Komentar berguna untuk memberi keterangan dan sebagai dokumentasi untuk kode program, sehingga kode mudah untuk dibaca (readable) baik untuk programer itu sendiri, juga untuk orang lain, komentar tidak akan dibaca sebagai pernyataan. Ada tiga bentuk komentar yaitu.
1.   Komentar satu baris, komentar dapat ditulis dengan memberi tanda dua kali garis miring ( // ) sebelum komentar. (Bisa dilihat pada contoh sebelumnya).
2.   Komentar lebih dari satu baris, diawali tanda garis miring dan bintang ( /* ) dan ditutup dengan tanda bintang dan garis miring ( */ ), (Bisa dilihat pada contoh sebelumnya).
3.   Terdapat komentar khusus yang disebut javadoc, dengan penulisan diawali tanda garis miring dan dua tanda bintang ( /** ), dan diakhiri dengan tanda bintang dan garis miring ( */ ). Dalam komentar ini dapat digunakan tag yang menjelaskan author, version, return, throws dan beberapa tag lain, juga dapat ditambahkan tag HTML untuk menformat teks. Komentar ini dapat di generate ke bentuk halaman HTML sebagai dokumentasi program, menggunakan tool atau perintah javadoc, contoh.
1
2
3
4
5
6
7
8
9
/**
 * Mencari kata berdasarkan kecocokan kandungan kata.
 * @param kandunganKata kandungan dalam kata.
 * @return ArrayList Mengembalikan kata yang ditemukan dalam bentuk list array.
 */
public ArrayList cariMengandung(String kandunganKata)
{
 // Isi program.
}

Gaya penulisan

Gaya penulisan kode ini menentukan seberapa baik kode program dapat dibaca (readable) oleh programer nya atau orang lain. Kode program bisa saja ditulis seperti kode dibawah.
1
public class Halo { public static void main(String[] args) { System.out.println(“Halo, selamat datang di Java.”); } }
Kode di atas dapat di compile dan dijalankan tanpa error, namun sangat sulit membaca dan memahami kode dengan bentuk tersebut, kita bisa menulis masing-masing pernyataan dalam satu baris, menambahkan penjorokan (indent) menggunakan tombol tab, jika bagian tersebut merupakan isi dari blok di atasnya dan menambahkan komentar pada beberapa bagian kode program, contoh.
1
2
3
4
5
6
public class Halo {
    public static void main(String[] args) {
        // Menampilkan tulisan ke layar.
        System.out.println(“Halo, selamat datang di Java”);
    }
}
1.4       Operator Assignment
Operator assignment digunakan untuk melakukan pemberian nilai terhadap suatu variabel sehingga operator ini juga sering dikenal dengan operator penugasan. Dalam bahasa Pascal operator yang digunakan untuk melakukan hal ini adalah operator : =. Berikut ini bentuk umum untuk melakukan pemberian nilai terhadap suatu variabel.
NamaVariabel : = nilai_yang_akan_dimasukkan;
Contoh:
Var
  x: integer;
   y: real;
   str: string;

Begin
  x := 123;
  y := 56.04;
  str := ‘Mencoba memasukkan nilai ke dalam variabel’;
  ....
End.

1.5       Operator Matematika
Bahasa Pascal menyediakan beberapa operator yang dapat digunakan dalam operasi aritmatika, seperti penjumlahan, pengurangan, perkalian, pembagian dan penentuan sisa bagi.
Operator
Jenis Operasi
Tipe Operasi
Tipe Hasil
Contoh
+
Penjumlahan
Integer, real
Integer, real
a+b
-
Pengurangan
Integer, real
Integer, real
x-1
*
Perkalian
Integer, real
Integer, real
a*b
/
Pembagian untuk bilangan riil
Integer, real
real
5/3
div
Pembagian untuk bilangan bulat
Integer
Integer
10 div 4
mod
Sisa bagi
Integer
Integer
10 mod 3
1.6       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)
1.7       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.
1.8       Tingkatan Operator
Java memiliki 44 operator, yang terbagi dalam 4 jenis dasar, yaitu operator aritmatik, bitwise, relasi, dan logika.


1.9       Percabangan
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.
2.   Soal 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.

3. Flowchart atau Pseudocode

Soal no. 1
Algoritma :
Tentukan nilai a, b
Hitung C =
Tampilkan C
Psoudocode :
Input (a,b)
C ß
Output (c)
Flowchart

Soal no. 2
Algoritma
Tentukan uang
Hitung p100r = uang/100000
Hitung sp100r = uang – p100r*100000
Hitung p50r = sp100r/50000
Hitung sp50r = sp100r – p50r*50000
Hitung p20r = sp50r/20000
Hitung sp20r = sp50r – p20r*20000
Hitung p10r = sp20r/10000                                                                                                              
Hitung sp10r = sp20r – p10r*10000
Hitung p5r = sp10r/5000
Hitung sp5r = sp10r – p5r*5000
Hitung p1r = sp5r/1000
Hitung sp1r = sp5r – p1r*1000
Hitung p0,5r = sp1r/500
Hitung sp0,5r = sp1r – p0,5r*500
Hitung p0,1r = sp0,5r/100
Hitung sp0,1r = sp0,5r – p0,1r*100
Tampilkan p100r, p50r, p20r, p10r, p5r, p1r, p0,5r, p0,1r

Pseudocode
Input (uang)
p100r ß uang/100000
sp100r ß uang – p100r*100000
p50r ß sp100r/50000
sp50r ß sp100r – p50r*50000
p20r ß sp50r/20000
sp20r ß sp50r – p20r*20000
p10r ß sp20r/10000
sp10r ß sp20r – p10r*10000
p5r ß sp10r/5000
sp5r ß sp10r – p5r*5000
p1r ß sp5r/1000
sp1r ß sp5r – p1r*1000
p0,5r ß sp1r/500
sp0,5r ß sp1r – p0,5r*500
p0,1r ß sp0,5r/100
sp0,1 ß sp0,5r – p0,1r*100
output (p100r, p50r, p20r, p10r, p5r, p1r, p0,5r, p0,1r)
flowchart

Soal no. 3
Algoritma
Baca des
1. Desimal=des/2
2. Sisa= desimal%2
3. d= d*2
4. biner= biner + sisa * d
5. jika desimal 0 pergi ke c
6. pergi ke 1
cetak desimal
Pseudocode
input (des)
Desimal ß des/2
Sisa ß desimal%2
D= d*2
Biner ß biner+sisa*d
If desimal == 0 output (desimal)
Else kembali ke b

Soal no. 4
Algoritma
Tentukan l,u,s,ns
Bonus =
1. Jika ns
2. Jika l <= 5 & u <=50
3. cetak bonus 400
4. jika l>= 5
5. cetak bonus 250
6. jika s
7. Jika l <= 5 & u <=50
8. Cetak bonus 1jt
9. jika l<= 5 & u >= 50
10. cetak bonus 500
11. else s u>=50
12. cetak bonus 300
c. tampilkan bonus

pseudocode
Input (l,u,s,ns)
Bonus =
1. Jika ns
2. Jika l <= 5 & u <=50
3. cetak bonus 400
4. jika l>= 5
5. cetak bonus 250
6. jika s
7. Jika l <= 5 & u <=50
8. Cetak bonus 1jt
9. jika l<= 5 & u >= 50
10. cetak bonus 500
11. else s u>=50
12. cetak bonus 300
Output (bonus)
Flowchart

Soal no. 5
Algoritma
Tentukan hari, jml
Jika hari minggu- jum’at
Cetak hrg hari = 33000
Total = jml*hrghari
Jika tidak
Cetak hrghari 40000
Total = jml*hrghari



Pseudocode
Input (hari,jml)
Jika hari = minggu, senin, selasa, rabu, kamis, jum’at
Hrghari = 33000
Jika tidak
Hrghari = 40000
Total ßjml*hrghari
Output (total)
Flowchart

Soal no. 6
Algoritma
Tentukan hari,jml,libur, tidak libur
Jika hari = senin, selasa, rabu,kamis, jum’at
Jika libur harga = 35.000
Jika tidak harga = 15.000
Jika hari = sabtu& minggu
Harga = 35.000
Total = jml*harga
Tampilkan total
Pseudocode
Input (hari, jml, libur, tidak libur)
Jika hari = senin, selasa, rabu, kamis, jum’at
Jika libur harga = 35.000
Jika tidak harga = 15.000
Jika hari = sabtu& minggu
Harga = 35.000
Total ß jml*harga
Output(total)
Flowchart

Soal no. 7
Algoritma
Tentukan harga
Jika harga<=400000
Hitung disc = harga*25/100
Jika harga <=300000
Hitung disc = harga*20/100
Jika harga <= 275000
Hitung disc = harga*15/100
Hitung disc harga<= 150000*10/100
Tampilkan disc

Pseudocode
Input (harga)
Jika harga<=400000
disc ß harga*25/100
Jika harga <=300000
disc ß harga*20/100
Jika harga <= 275000
disc ß harga*15/100
disc ß harga<= 150000*10/100
output (disc)

Soal no. 8
Algoritma
a. Masukkan 5 nilai (nilai tugas1, tugas2, tugas3, UTC, UAC)
b. Hitung nilai rata - rata tugas =
nilai tugas1+tugas2+tugas3 / 3.
c. Lalu hitung semua nilai :
Nilai=((rata-rata tugas*30%)+(UTC*30%)+(UAC*40%))
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
Psoudecode



Soal no.9
Algoritma
a. Masukkan Jumlah Pemakaian Air.
b. Hitung jumlah nilai/pemakaian yang dimasukkan :
1) Seleksi jika pemakaian <0, maka
Biaya total = Jumlah * 0.
2) Seleksi jika pemakaian <= 50, maka
Biaya total = Jumlah * 200
3) Seleksi jika pemakaian <= 150, maka
Biaya total = ((50 * 200) + ((jumlah - 50) * 500))
4) Seleksi jika pemakaian <= 300, maka
Biaya Total = ((50 * 200) + (100 * 500) + ((jumlah - 150) * 1000)).
5)Seleksi jika pemakaian > 300, maka
Biaya Total = ((50 * 200) + (100 * 500) + (150 * 1000) + ((jumlah - 300) * 1500))
c. Output : Biaya Total

Soal no. 10
Algoritma
a. Ambil input user untuk memasukkan jumlah pemakaian Kartu Kredit
1) Masukkan ke variabel string pemakaian
2) Jika panjang inputan string pemakaian lebih dari 0, atau dengan kata lain
b. user telah menginputkan value,ubah input string pemakaian menjadi bilangan dengan nama    variabel
c. int jml_pemakaian,memberikan nilai default pada variabel pemakaian1 dengan,
d. pemakaian1= 1000.000.Jika nilai pada variabel jml_pemakaian <= 1.000.000
Memberikan nilai pada variabel pemakaian1 dengan,pemakaian1
e.jml_pemakaian.Atau jika nilai pada variabel jml_pemakaian > 1.000.000, dan nilai
pada variabel jml_pemakaian <= 10.000.000
f. Memberikan nilai pada variabel pemakaian1 dengan,pemakaian1= 1.000.000
g. Memberikan nilai pada variabel pemakaian2 dengan,pemakaian2= jml_pemakaian– 1.000.000 atau jika nilai pada variabel jml_pemakaian > 10.000.000, dan 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 Memberikan nilai pada variabel cash_back_total m.Dengan,cash_back_total=(pemakaian1*5/100)+(pemakaian2*6/100)+(pemakaian3*7/100)+(pemakaian4*8/10)Cetak output dengan format, "Seorang nasabah yang total.
n.Selamasebulan "+jml_pemakaian+", maka total cash backnya="+cash_back_total.Atau Jika panjang inputan tidak lebih dari 0, atau dengan kata lain userbelum menginputkan value
o. Cetak output “Ada salah satu masukan yang kosong”
p. Stop proses

4. Source Code & Output Program

Soal no.1
package modul.pkg2;
import java.util.Scanner;
/**
*
* @author windows7
*/
public class modul2 {
/**
*  @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner input = new Scanner(System.in);
int sisi1,sisi2,c;
System.out.print("Mengitung Panjang sisi miring Segitiga siku-siku");
System.out.print("Masukan Nilai Sisi 1 : ");
sisi1 = input.nextInt();
System.out.print("Masukan Nilai Sisi 2 : ");
sisi2 = input.nextInt();
c=((sisi1*sisi1)+(sisi2*sisi2));
System.out.printIn("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,0


Soal no. 2
package modul.pkg2 ;

import java.util.*;
/**
*
* @author windows7
*/
public class num2{
/**
*  @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
int bil1, uang;
System.out.print("masukkan Jumlah uang = ");
Scanner obj = new Scanner(System.in);
uang = obj.nextInt();
if (uang<100)
System.out.println("Maaf, tidak ada nominal uang "+ "sebesar "+uang+" rupiah");

else {
if (uang >= 100000) {
bil1 = uang / 100000;
System.out.print("Diperlukan " + bil1 +" lembar 100000");
uang = uang % 100000;
if ((uang >= 50000) && (uang <100000))
bil1 = uang / 50000;
System.out.print("Diperlukan " + bil1 +" lembar 50000");
// antara 20000-50000
System.out.print("Diperlukan " + bil1 +" lembar 50000");
uang = uang % 50000;
if ((uang >= 20000) && (uang <50000))
bil1 = uang / 20000;
System.out.print("Diperlukan " + bil1 +" lembar 20000");
uang = uang % 20000;
if ((uang >= 10000) && (uang <20000))
bil1 = uang / 10000;
System.out.print("Diperlukan " + bil1 +" lembar 10000");
 // antara 5000-10000
uang = uang % 10000;
if ((uang >= 5000) && (uang <10000))
bil1 = uang / 5000;
System.out.print("Diperlukan " + bil1 +" lembar 5000");
// antara 2000-5000
uang = uang % 5000;
if ((uang >= 2000) && (uang <5000))
bil1 = uang / 2000;
System.out.print("Diperlukan " + bil1 +" lembar 2000");
if ((uang >= 1000) && (uang <2000))
bil1 = uang / 1000;
System.out.print("Diperlukan " + bil1 +" lembar 1000");
uang = uang % 2000;
if ((uang >= 1000) && (uang <2000))
bil1 = uang / 1000;
System.out.print("Diperlukan " + bil1 +" lembar 1000");
uang = uang % 1000;
if ((uang >= 500) && (uang <1000))
bil1 = uang / 500;
System.out.print("Diperlukan " + bil1 +" koin 500");
uang = uang % 500;
if ((uang >= 200) && (uang <500))
bil1 = uang / 200;
System.out.print("Diperlukan " + bil1 +" koin 200");
uang = uang % 200
if ((uang >= 100) && (uang <200))
bil1 = uang / 100;
System.out.print("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 windows7

public class numb3 {


*/

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 windows7

*/

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 modul.pkg2;

import java.io.*;

/**

*

* @author windows7

*/

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 modul.pkg2;

import java.util.*;

/**

*

* @author windows7

*/

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 modul.pkg2;

import java.util.*;

/**

*

* @author windows7

*/

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. 9
package modul.pkg2;

import java.util.*;

* @author windows7
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 modul.pkg2;

import java.util.*;

* @author windows7

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 modul.pkg2;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.text.DecimalFormat;

import java.text.DecimalFormatSymbols;
/**

*

* @author windows7

*/

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;

}

}

}


5. Referensi