Minggu, 03 November 2013


DASAR PEMROGRAMAN - PERCABANGAN




LAPORAN
TUGAS MODUL 2
PRAKTIKUM DASAR PEMROGRAMAN

unesa-logo.png

AHMAD SHOLEHUDIN
135623025

MANAJEMEN INFORMATIKA A
UNIVERSITAS NEGERI SURABAYA



DAFTAR ISI
1.    DASAR TEORI
1.1  Netbeans dan Eclipse
1.2  Penulisan Program di Java, Input, Output
1.3  Operator: Assigment, Matematika, Perbandingan, Logika
1.4  Tingkatan Operator
1.5  Percabangan (if, if....else, if...elseif...., switch)
2.    SOAL PRAKTIKUM
2.1  Algoritma untuk mencari sisi miring dari suatu segitiga siku-siku
2.2  Algoritma untuk menampilkan banyaknya pecahan uang paling efisien
2.3  Algoritma untuk mengkonversi bilangan dalam format desimal menjadi biner
2.4  Algoritma untuk bonus pegawai
2.5  Algoritma untuk menghitung total biaya iklan baris yang harus dibayar oleh pengiklan
2.6  Algoritma untuk menghitung total biaya tiket .
2.7  Algoritma untuk menghitung berapa nilai yang harus dibayar oleh pelanggan dengan total nilai belanja tertentu bila disertakan pula perhitungan diskonnya.
2.8  Algoritma nilai
2.9  Algoritma tarif pemakaian Air PDAM Kota Surabaya
2.10                      Algoritma untuk menghitung cash back yang diterima nasabah berdasarkan nilai pemakaian kartu kredit.

3.    FLOWCHART ATAU PSOUDOCODE DARI MASING-MASING SOAL
3.1  Flowchart untuk mencari sisi miring dari suatu segitiga siku-siku
3.2  Flowchart untuk menampilkan banyaknya pecahan uang paling efisien
3.3  Flowchart untuk mengkonversi bilangan dalam format desimal menjadi biner
3.4  Flowchart untuk bonus pegawai
3.5  Flowchart untuk menghitung total biaya iklan baris yang harus dibayar oleh pengiklan
3.6  Flowchart untuk menghitung total biaya tiket .
3.7  Flowchart untuk menghitung berapa nilai yang harus dibayar oleh pelanggan dengan total nilai belanja tertentu bila disertakan pula perhitungan diskonnya.
3.8  Algoritma nilai
3.9  Algoritma tarif pemakaian Air PDAM Kota Surabaya
3.10                      Algoritma untuk menghitung cash back yang diterima nasabah berdasarkan nilai pemakaian kartu kredit.
4.      KODE SUMBER (SOURCE CODE) BESERTA OUTPUTNYA
5.      REFERENSI
























1.      DASAR TEORI
1.1  NETBEANS DAN ECLIPSE
Netbeans. Bahasa pemrograman Java lahir pertama kali dari The Green Project (James Gosling dkk dari sun microsystems) pada tahun 1991Teknologi “*7”(Star Seven). Mula-mula James Gosling menyebut bahasa pemrograman yang dihasilkannya dengan OAKSun mengubahnya menjadi Java.Sun merilis versi awal java secara resmi pada awal 1996 yg kemudian terus berkembang hingga muncul JDK 1.1 kmd JDK 1.2 shg mulai versi ini java disebut java 2. Pada tahun 1998-1999 lahirlah teknologi J2EE(Java 2 Enterprise Edition). Terakhir Teknologi Java melahirkan J2ME(Java 2 Micro Edition) yang sudah diadopsi oleh Nokia, Siemens, SonyEricsson, Motorola untuk menghasilkan aplikasi mobile baik games maupun software lainnya yang dpat dijalankan diperalatan mobile seperti handphone.
Ø  Kelebihan java:
ü  Multiplatform, dapat dijalankan di beberapa platform / sistem operasi komputer
ü  OOP (Object Oriented Programming) semua aspek yang terdapat di Java adalah Objek
ü  Perpustakaan Kelas yang lengkap Java terkenal dengan kelengkapan library/ perpustakaan (kumpulan program yang disertakan dalam pemrograman java) yang sangat memudahkan dalam penggunaan oleh para pemrogram untuk membangun aplikasinya.
ü  Bergaya C++ memiliki sintaks seperti bahasa pemrograman [C++] sehinggamenarik banyak pemrogram C++ untuk pindah ke Java.
J2SDK adalah seperangkat tool (kit) yang berisi kompiler dan interpreter java yang direlease oleh sun dan bersifat free.

Nama Program
Keterangan
javac
Kompiler
java
Interpreter
jdb
Debugger
javap
Disasembler
appletviewer

Penampil applet
javadoc
Pembangkit dokumentasi
javah C
Pembangkit berkas header
Ø  Beberapa editor yang bisa digunakan untuk pemrograman java adalah:
ü  Notepad, editor standard yang disediakan oleh windows. Tidak dilengkapi dengan utilitas jumlah baris (berpengaruh pada pelacakan baris program yang menyebabkan error kompilasi)
ü  Netbean, salah satu editor yang dilengkapi dengan pelacakan baris program yang menyebabkan error kompilasi
ü  Editor-editor lain: Eclipse, Gel, JBuilder, Jcreator dll

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.


1.2  PENULISAN PROGRAM DI JAVA, INPUT, OUTPUT
Proses penulisan dan pembacaan data sering kita sebut dengan proses input dan output, dimana penulisan data berarti mengalirkan data ke output dan menerima atau mendapatkan data dari input.


A. Stream
Stream merupakan dasar operasi input-output ( I/O ) dalam Java yang menggunakan package java.io sebagai package utama. Stream adalah representasi abstrak dari input dan output device, dimana aliran bytes akan ditransfer seperti file dalam harddisk, file pada sistem remote atau printer. Kita dapat membaca data dari input stream, yang dapat berupa file, keyboard atau komputer remote. Sedangkan untuk operasi penulisan berarti menulis data pada output stream. Package java.io mendukung dua tipe stream, yaitu binari dan karakter stream. Binari merupakan data berupa bit atau data binari, sedangkan karakter adalah tipe khusus untuk pembacaan dan penulisan teks/karakter.

B. Input Stream
Ø  Subclass-subclass dari inputStream adalah :

·         AudioInputStream,
·         ByteArrayInputStream,
·         FileInputStream,
·         FilterInputStream,
·         PipedInputStream,
·         SequenceInputStream, dan
·         StringBufferInputStream.

Ø  Dua method utama dari InputStream adalah :
·         Read. Method ini digunakan untuk membaca stream.
·         Close. Method ini digunakan untuk menutup koneksi input stream.
Ø  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]); }
C. Output Stream
Ø  Subclass-subclass dari outputStream adalah :
·         ByteArrayOutputStream : digunakan untuk menuliskan stream menjadi byte array.
·         FileOutputStream : digunakan untuk menulis pada file
·         FilterOutputStream : merupakan superclass dari subclass-subclass seperti DataOutputStream, BufferOutputStream, PrintStream, CheckedOutputStream
·         ObjectOutputStream : digunakan untuk menuliskan objek pada OutputStream.
·         PipedOutputStream : digunakan untuk menjadi output dari PipedInputStream.
Ø  Sebagian method-method OutputStream adalah :
·         Voidclose()
·         Menutup output stream yang aktif dan melepaskan sumber daya terkait dengan
·         stream tersebut
·         Void flush()
·         Melakukan flush output stream dan memaksa semua byte buffer untuk dituliskan
·         keluar
·         Void write(byte[] b)
·         Menulis sebanyak b.length dari byte array ke output stream
·         Void write(byte[] b, int off, int len)
·         Menuliskan sebanyak len byte dari byte array b dimulai dari index off

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 }
}

D. DataOutputStream
·         DataOutputStream merupakan class yang menyediakan cara praktis untuk menuliskan
·         tipe data primitif ke output stream. Sebagian method DataOutputStream adalah :
·         writeDouble : berfungsi menuliskan data bertipe double ke output stream
·         writeInt : berfungsi menuliskan data bertipe integer ke output stream
·         writeBoolean : berfungsi menuliskan data boolean ke output stream
·         writeUTF : berfungsi menuliskan data string menggunakan encoding UTF-8 yang
·         tidak tergantung pada mesin.

E. DataInputStream
·         DataInputStream berfungsi untuk saling melengkapi dengan DataOutputStream, yaitu
·         untuk mendapatkan data yang ditulis dengan DataOutputStream. Sebagian method
·         DataInputStream adalah :
·         ReadDouble() : membaca data bertipe double
·         readInt() : membaca data bertipe integer
·         readBoolean() : membaca data Boolean
·         readUTF() : membaca data dengan encoding UTF-8
F.      Statement Masukan (Input)
Untuk meng-input sebuah nilai ke variabel di java menggunakan kelas Scanner. kelas ini sudah disediakan mulai dari JAVA versi 1.5
contoh cari menggunakan kelas Scanner :
import java.util.Scanner;
public class Masukan
{
public static void main (String args[])
{
Scanner input = new Scanner(System.in);
int a;
System.out.print(“Masukkan Angka : “);
a=input.nextInt();
System.out.println(“Hasil :”+a);
}
}
G.    Statement Keluaran (Output)
Statement keluaran pada JAVA menggunakan :
” System.out.print”
catatan : untuk menampilkan kelayar setelah selesai tidak akan berpindah baris, akibatnya perintah keluaran akan ditampilkan pada baris yang sama.
“System.out.println”
catatan : untuk menampilkan kelayar juga fungsinya hanya perintah keluarannya saja saat ditampilkan , akan ditampilakn pada baris berikutnya.


1.3  OPERATOR: ASSIGMENT, MATEMATIKA, PERBANDINGAN, LOGIKA

A.                Assignment Operator.

Assignment operator merupakan operator  yang digunakan untuk memberi nilai ke suatu variabel atau variabel ke variabellain.menggunakan simbol titik dua diikuti oleh tanda sama dengan (:=).

 

 

 

B.     Operator Aritmatika
Operator Matematika yaitu operator yang digunakan untuk operasi matematis terhadap suatu nilai data. Ada beberapa operator aritmatika yang dapat digunakan dalam pemrograman antara lain :
a)      Pangkat ( Eksponen) Pemangkatan atau eksponen banyak digunakan dalam operasi komputer, eksponen mempunyai operator carret(^) dan sintaksnya adalah sebagai berikut :
Eksponen = bilanngan1^bilangan2
Contoh :
Eksponen = 5^2 hasilnya = 25
Eksponen = 3^2 hasilnya = 9
Eksponen = 2^-2 hasilnya = 0,25
b)      Perkalian. Perkalian digunakan untuk mengalikan dua buah bilangan atau lebih, simbolnya (*) dan sintaksnya dalam pemrograman adalah :
Perkalian = bilangan1 * bilangan2
Contoh :
Perkalian = 2 * 2 hasilnya = 4
Perkalian = 5 * 5 hasilnya = 25
c)      Pembagian. Pembagian digunakan untuk melakukan operasi pembagian terhadap bilangan, simbolnya (/) dan sintaksnya :
Pembagian = bilangan1 / bilangan2
Contoh :
Pembagian = 4 / 2 hasilnya = 2
Pembagian = 5 / 2 hasilnya = 2,5
d)     Pembagian Integer. Pembagian Integer pada dasarnya sama dengan pembagian biasa, tetapi hasil yang diperoleh adalah bilangan integer atau bilangan bulat. Simbolnya (\) dan sintksnya :
PembagianInt = bilangan1 \ bilangan2
Contoh :
PembagianInt = 4 \ 2 hasilnya = 2
PembagianInt = 5 \ 2 hasilnya = 2
e)      Sisa Bagi (Modulus). Sisa bagi (Mod) digunakan untuk mendapatkan sisa dari pembagian dua buah bilangan, sintaksnya :
Sisa = bilangan1 Mod bilangan2
Contoh :
Sisa = 4 Mod 2 hasilnya = 0
Sisa = 5 Mod 2 hasilnya = 1
f)       Penjumlahan. Penjumlahan (+) digunakan untuk melakukan operasi penjumlahan pada bilangan, sintaksnya :
Penjumlahan = bilangan1 + bilangan2
Contoh :
Penjumlahan = 4 + 2 hasilnya = 6
Penjumlahan = 5 + 5 hasilnya = 10
g)      Pengurangan. Pengurangan (-) digunakan untuk melakukan operasi pengurangan terhadap bilangan, sintaksnya :
Pengurangan = bilangan1 – bilangan2
Contoh :
Pengurangan = 4 – 2 hasilnya = 2
Pengurangan = 5 – 2 hasilnya = 3
h)      Penggabungan String ( Concat ). Penggabungan string, simbolnya (&) digunakan untuk menggabungkan dua buah string. sintaksnya :
String = string1 & string2
Contoh :
String = harry & potter hasilnya = harrypotter
String = 5 & 6 hasilnya = 56
C.     OPERATOR PERBANDINGAN
Operator perbandingan berguna untuk membandingkan dua nilai atau lebih, atau bisa juga digunakan untuk membandingkan nilai antar variabel, dimana hasil perbandingan tersebut akan menghasilkan nilai true atau false. Nilai variabel atau nilai yang dibandingkan pada kondisi if atau statement condition ini disebut dengan operand. Supaya lebih jelas saya akan memberikan contoh.
<?php
$a = 10;
$b = 5;
if ($a > $b)
{
……
}
?>
Yang dimaksud dengan operand adalah $a dan $b. Kedua variabel tersebut disebut operand karena kedua variabel tersebut digunakan untuk melakukan perbandingan. Perintah if tersebut dapat dibaca apakah variabel $a lebih besar dari variabel $b ?. Jika iya maka jalankan perintah dibawah perintah if. Nach gimana udah jelas kan mengenai apa yang dimaksud dengan operand.
Berikutnya saya akan menjelaskan operator apa saja yang dapat digunakan untuk melakukan perbandingan pada perintah if di php. Sebenarnya operator perbandingan ini tidak saja dapat digunakan untuk melakukan perbandingan pada perintah if di php. Operator perbandingan ini juga dapat digunakan pada perintah perulangan pada php. Namun untuk lebih mudahnya kita pelajari dulu penerapan operator ini pada perintah if di php. Berikut ini merupakan operator perbandingan yang dapat digunakan di php
Operator
Deskripsi
Contoh
Keterangan
==







===







! =








> 






< 






> =






<=
sama dengan







adalah persis sama dengan (nilai dan jenis)






tidak sama








lebih besar dari






kurang dari






lebih besar dari atau sama dengan





kurang dari atau sama dengan
x == 8 adalah palsu
x   == 5 adalah benar






=== x 5 adalah benar
x === “5″ adalah palsu





x! = 8 adalah benar








x> 8 adalah palsu






x <8 adalah benar






x> = 8 adalah palsu






x <= 8 adalah benar
disebut juga sebagai operator Equality. Perbandingan menggunakan operator ini akan mengembalikan nilai true jika kedua operand memiliki nilai sama, apabila tidak maka akan mengembalikan nilai false.

disebut juga sebagai operator Identical. Operator ini digunakan untuk membandingkan apakah kedua operand identik. Yang dimaksud dengan identik disini adalah kedua operand memiliki nilai dan tipe data yang sama.
disebut juga sebagai operator Inequality. Perbandingan menggunakan operator ini akan mengembalikan nilai true jika kedua operand memiliki nilai berbeda, apabila tidak maka akan mengembalikan nilai false.

Operator ini digunakan untuk membandingkan apakah operand yang berada disebelah kiri memiliki nilai lebih besar daripada operand yang disebelah kanan.

Operator ini digunakan untuk membandingkan apakah operand yang berada disebelah kiri memiliki nilai lebih kecil daripada operand yang disebelah kanan.

Operator ini digunakan untuk membandingkan apakah operand yang berada disebelah kiri memiliki nilai lebih besar sama atau sama dengan operand yang disebelah kanan.

Operator ini digunakan untuk membandingkan apakah operand yang berada disebelah kiri memiliki nilai lebih besar atau sama dengan operand yang disebelah kanan.

D.    OPERATOR LOGIKA
Operator logika digunakan untuk menentukan logika antara variabel atau nilai.Mengingat bahwa x = 6 dan y = 3, tabel di bawah ini menjelaskan operator logika:
Operator
Deskripsi
Contoh
&&
||
!
And
Or
Not
(x < 10 && y > 1) is true
(x==5 || y==5) is false
!(x==y) is true



1.4  TINGKATAN OPERATOR
Tabel pada halaman berikut akan memperlihatkan kedudukan dari setiap operator terhadap operator lainnya, dan bagaimana arah pengeksekusian dari suatu pernyataan yang mengandung operator tersebut
Operator
Evaluasi
( ) [ ]   .
kiri ke kanan
!  ~  ++  --  +  -  *  &  (type)  sizeof
kanan ke kiri
*  /  %
kiri ke kanan
+  -
kiri ke kanan
<<  >>
kiri ke kanan
<  <=  >  >=
kiri ke kanan
==  !=
kiri ke kanan
&
kiri ke kanan
^
kiri ke kanan
|
kiri ke kanan
&&
kiri ke kanan
||
kiri ke kanan
? :
kanan ke kiri
=  +=  -=  *=  /=  %=  &=  ^=  |=  <<=  >>=
kanan ke kiri
,
kiri ke kanan
Sebagai contoh, operator binary + dan - mempunyai kedudukan yang lebih tinggi dibandingkan dengan operator !=, dan operator & mempunyai kedudukan yang lebih tinggi dibandingkan dengan operator &&.
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.


1.5  PERCABANGAN (IF, IF....ELSE, IF...ELSEIF...., SWITCH)
Struktur Selection / Percabangan adalah struktur yang dihadapkan pada proses pemilihan untuk menentukan instruksi berdasarkan syarat atau kondisi tertentu .  Struktur Selection  merupakan penguji yang dilakukan untuk memilih salah satu atau beberapa alternative yang tersedia . Struktur Selection dua buah kondisi yaitu benar ( True ) dan salah ( False) . Struktur Selection mempunyai 4 perintah percabangan , yaitu : if , if…..else , if…else if, dan switch. Untuk lebih jelasnya silakan lihat penjabaran masing – masing perintah percabangan dibawah ini :
Ø  Perintah if :
Perintah if digunakan untuk menjalankan satu atau lebih perintah berdasarkan suatu kondisi. Contoh penulisan:
if (kondisi)
{
            Statement;
}

Ø  Perintah if….else  :
Perintah if…else digunakan  untuk memilih salah satu dari 2 pernyataan yang ditentukan . Perintah ini akan menjalankan perintah tertentu jika TRUE dan akan menjalankan perintah tertentu jika FALSE .Contoh penulisan :
if (kondisi)
{
            Statement_1;
}
else
{
            Statement_2;
}


Ø  Perintah if ….else if:
Perintah else if digunakan untuk menjalankan suatu pernyataan dengan melibatkan lebih dari satu kondisi ( banyak kondisi)
Contoh penulisan :

if (kondisi_1)
{
            Statement_1;
}
else if (kondisi_2)
{
            Statement_2;
}
else
{
            Statement_3;
}



Ø  Perintah switch :

Perintah switch digunakan sebagai alternative lpengganti dari perintah if…else if . perintah switch akan menyeleksi kondisi yang diberikan dan membandingkan hasilnya dengan konstanta – konstanta yang ada pada case . Jika case sama dengan kondisi , maka system akan menjalankan perintah tersebut dan akan berhenti pada perintah break.
Contoh penulisan :

switch (kondisi)
{
            case konstanta_1:
                        statement_1;
            break;
           case konstanta_2:
                        statement_2;
           break;
           default:
                                                statement_3;
}



















1.      Algoritma:
a.       Tentukan nilai a, b
b.      Hitung C = 
c.       Tampilkan C
       Psuodocode
a.       Input (a,b)
b.      C ß
c.       Output (c)
       Flowchart
2.       Algoritma
a.       Tentukan uang
b.      Hitung p100r = uang/100000
Hitung sp100r = uang – p100r*100000
Hitung p50r = sp100r/50000
Hitung sp50r = sp100r – p50r*50000
Hitung p20r = sp50r/20000
Hitung sp20r = sp50r – p20r*20000
Hitung p10r = sp20r/10000
Hitung sp10r = sp20r – p10r*10000
Hitung p5r = sp10r/5000
Hitung sp5r = sp10r – p5r*5000
Hitung p1r = sp5r/1000
Hitung sp1r = sp5r – p1r*1000
Hitung p0,5r = sp1r/500
Hitung sp0,5r = sp1r – p0,5r*500
Hitung p0,1r = sp0,5r/100
Hitung sp0,1r = sp0,5r – p0,1r*100
c.       Tampilkan p100r, p50r, p20r, p10r, p5r, p1r, p0,5r, p0,1r

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




flowchart


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












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



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

Flowchart









5.      Algoritma
a.      Tentukan hari, jml
b.      Jika hari minggu- jum’at
c.       Cetak hrg hari = 33000
d.      Total = jml*hrghari
e.      Jika tidak
f.        Cetak hrghari 40000
g.      Total = jml*hrghar

Pseudocode
a.      Input (hari,jml)
b.      Jika  hari = minggu, senin, selasa, rabu, kamis, jum’at
c.       Hrghari = 33000
d.      Jika tidak
e.      Hrghari = 40000
f.        Total ßjml*hrghari
g.      Output (total)












Flowchart
6.      Algoritma
a.      Tentukan hari,jml,libur, tidak libur
b.      Jika hari = senin, selasa, rabu,kamis, jum’at
c.       Jika libur harga = 35.000
d.      Jika tidak harga = 15.000
e.      Jika hari = sabtu& minggu
f.        Harga = 35.000
g.      Total = jml*harga
h.      Tampilkan total

Pseudocode
a.      Input (hari,jml,libur, tidak libur)
b.      Jika hari = senin, selasa, rabu,kamis, jum’at
c.       Jika libur harga = 35.000
d.      Jika tidak harga = 15.000
e.      Jika hari = sabtu& minggu
f.        Harga = 35.000
g.      Total ß jml*harga
h.      Output(total)


















Flowchart





7.      Algoritma
a.      Tentukan harga
b.      Jika harga<=400000
c.       Hitung disc = harga*25/100
d.      Jika harga <=300000
e.      Hitung disc = harga*20/100
f.        Jika harga <= 275000
g.      Hitung disc = harga*15/100
h.      Hitung disc harga<= 150000*10/100
i.        Tampilkan disc

            Pseudocode
a.      Input (harga)
b.      Jika harga<=400000
c.       disc ß harga*25/100
d.      Jika harga <=300000
e.      disc ß harga*20/100
f.        Jika harga <= 275000
g.      disc ß harga*15/100
h.      disc ß harga<= 150000*10/100
i.        output (disc)









            flowchart



8.      algoritma
a.      tentukan tugas1,tugas2,tugas3,UTC,UAC
b.      hitung nilai = ((tugas1+tugas2+tugas3)/3*30/100) +(UTC*30/100)+(UAC*40/100)
c.       jika nilai > 80 dan nilai <= 100
d.      cetak A
e.      jika nilai > 70 dan nilai <= 80
f.        cetak AB
g.      jika nilai > 65 dan nilai <= 70
h.      cetak B
i.        jika nilai > 60 dan nilai <= 65
j.        cetak BC
k.       jika nilai > 55 dan nilai <= 60
l.        cetak C
m.    jika nilai > 40 dan nilai <= 55
n.      cetak D
o.      Cetak E
Pseudocode
a.      Input (tugas1,tugas2,tugas3,UTC,UAC)
b.      nilai ß (((tugas1+tugas2+tugas3)/3*30/100) +(UTC*30/100)+(UAC*40/100)
c.       jika nilai > 80 dan nilai <= 100
d.      output (A)
e.      jika nilai > 70 dan nilai <= 80
f.        output (AB)
g.      jika nilai > 65 dan nilai <= 70
h.      output (B)
i.        jika nilai > 60 dan nilai <= 65
j.        output (BC)
k.       jika nilai > 55 dan nilai <= 60
l.        output  (C)
m.    jika nilai > 40 dan nilai <= 55
n.      output (D)
o.      output (E)



flowchart






9.      algoritma
a.      tentukan pemakaian air
b.      jika pemakaian air <=50
c.       hitung biaya = 200* pemakaian air
d.      jika pemakaian air <50 dan pemakaian air >=150
e.      hitung biaya = 50*200 + (pemakaian air-50)*500
f.        jika pemakaian air <150 dan pemakaian air >= 300
g.      hitung biaya = 50*200 + 100*500+(pemakaian air-150)*1000
h.      hitung biaya = 50*200+100*500+150*100(pemakaian air-300)*1500
i.        tampilkan biaya
pseudocode
a.      input (pa)
b.      jika pa<= 50
c.       biaya ß 200* pa
d.      jika pa <50 dan pa >=150
e.      biayaß 50*200 + (pa-50)*500
f.        jika pa <150 dan pa >= 300
g.      biaya ß 50*200 + 100*500+(pa-150)*1000
h.      biayaß 50*200+100*500+150*100(pa-300)*1500
i.        output(biaya)










flowchart




10.  algoritma
a.      tentukan total
b.      jika total >= 1000000
c.       hitung cb = 5/100*total
d.      jika total <1000000 dan total >= 10000000
e.      hitung cb = 5/100*1000000 + 6/100* (total-1000000)
f.        jika total < 10000000 dan total >= 25000000
g.      hitung cb = 5/100*1000000 + 6/100*9.000.000+7/100*(total-10000000)
h.      hitung cb =5/100*1000000 + 6/100*9.000.000+7/100*10000000+8/100*(total-20000000)
i.        tampilkan cb
pseudocode
a.      input (total)
b.      jika total >= 1000000
c.       cb ß 5/100*total
d.      jika total <1000000 dan total >= 10000000
e.      cbß 5/100*1000000 + 6/100* (total-1000000)
f.        jika total < 10000000 dan total >= 25000000
g.      cb ß 5/100*1000000 + 6/100*9.000.000+7/100*(total-10000000)
h.      cb ß5/100*1000000 + 6/100*9.000.000+7/100*10000000+8/100*(total-20000000)
i.        output(cb)










flowchart