Selasa, 29 Oktober 2013

modul 2 daspro



TUGAS DASAR PEMROGRAMAN



NAMA : BAYU ROBBY SAGITA
KELAS : MI B
NIM : 135623031

UNIVERSITAS NEGERI SURABAYA
1 Dasar Teori
1.1 Netbeans dan Eclipse
a.Netbeans
NetBeans adalah suatu tool untuk membuat program dengan menggunakan bahasa pemrograman Java berbasis grafis. Cara membuat program dengan Merancang tampilan menggunakan komponent visual dan proses diletakan pada event driven. Netbeans menyediakan sekumpulan perangkat lunak modular yang disebut modul yang dipakai untuk membangun suatu aplikasi. Sebuah modul adalah merupakan arsip Java(Java Archive) yang memuat kelas-kelas Java yang berinteraksi dengan NetBeans OpenAPI . Kemudian rancangan tampilan yang dibuat menggunakan NetBens programnyasecara otomatis akan digenerate menjadi kode.
b.Eclipse
Eclipse adalah sebuah IDE untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform (platform-independent). Berikut ini adalah sifat dari Eclipse:
1) Multi-platform: Target sistem operasi Eclipse adalah MicrosoftWindows, Linux, Solaris, AIX, HP-UX dan Mac OS X.
2) Multi-language: Eclipse dikembangkan dengan bahasa pemrogramanJava, akan tetapi Eclipse mendukung pengembangan aplikasi berbasisbahasa pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP,dan lain sebagainya.
3) Multi-role: Selain sebagai IDE untuk pengembangan aplikasi, Eclipsepun bisa digunakan untuk aktivitas dalam siklus pengembanganperangkat lunak, seperti dokumentasi, test perangkat lunak,pengembangan web, dan lain sebagainya.
Eclipse pada saat ini merupakan salah satu IDE favorit dikarenakangratis 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 dikembangkanoleh pengguna dengan komponen yang dinamakan plug-in.

1.2 Penulisan Program di Java, Input, Output.

Gambar dibawah ini menjelaskan aliran proses kompilasi dan eksekusi sebuah program Java :

Langkah pertama dalam pembuatan sebuah program berbasis Java adalah menuliskan kode program pada text editor. Contoh text editor yang dapat digunakan antara lain : notepad, vi, emacs dan lain sebagainya. Kode program yang dibuat kemudian tersimpan dalam sebuah berkas berekstensi .java.
Setelah membuat dan menyimpan kode program, kompilasi file yang berisi kode program tersebut dengan menggunakan Java Compiler. Hasil dari kompilasi berupa berkas bytecode dengan ekstensi .class.
Berkas yang mengandung bytecode tersebut kemudian akan dikonversikan oleh Java Interpreter menjadi bahasa mesin sesuai dengan jenis dan platform yang digunakan.

1.3 Operator: Assigment, Matematika, Perbandingan, Logika
1. Assignment
Adalah operator yang menggunakan tanda sama dengan (=) untuk mengisi sebuah nilai dalam suatu variable.

2. Matematika
Adalah operator yang digunakan untuk melaksanakan operasi aritmatika. Beberapa operator aritmatika antara lain:
* : untuk perkalian
+ : untuk penjumlahan
- : untuk pengurangan
/ : untuk pembagian
% : untuk sisa pembagian (modulus).

3. Perbandingan
Adalah operator yang digunakan untuk membandingkan dua buah nilai atau operand. Operator perbandingan ini antara lain:
< : untuk kurang dari
> : untuk lebih dari
<= : untuk kurang dari atau sama dengan
>= : untuk lebiih dari atau sama dengan
== : untuk sama dengan
!= : untuk tidak sama dengan
<> : untuk tidak sama dengan

4. Logika
Adalah operator yang digunakan untuk melakukan operasi logika yaituoperator yang menghasilkan nilai TRUE (benar) atau FALSE (salah). Bebarapa macam operator logika antara lain:
and : menghasilkan nilai TRUE jika kedua operand bernilai TRUE
or : menghasilkan nilai TRUE jika salah satu operand bernilai TRUE
xor : menghasilkan nilai TRUE jika salah satu operand bernilai TRUE tetapi bukan kedua duanya bernilai TRUE
! : menghasilkan nilai tidak TRUE
&& : menghasilkan nilai TRUE jika kedua operand bernilai TRUE
|| : menghasilkan nilai TRUE jika salah satu operand bernilai TRUE

1.4 Tingkatan Operator
Java memiliki 44 operator, yang terbagi dalam 4 jenis dasar, yaitu operator aritmatik, bitwise, relasi, dan logika.

1.5 Percabangan (if, if....else, if...elseif...., switch)
a. IF
IF sederhana merupakan kombinasi antara IF – THEN, hanya mengakomodasi alternative kondisi bernilai TRUE saja.
Syntax dari IF sederhana:
IF kondisi THEN statement_true;
IF kondisi THEN
BEGIN
Statement1_true;
Statement2_true;
END;

b. IF Else
Jika pada IF sederhana, kondisi salah tidak akan melaksanakan apapun maka pada IF dengan alternatif – yang merupakan kombinasi IF – THEN – ELSE – kondisi salah akan mempunyai statement yang dilaksanakan. Sebagai ilustrasi, perhatikan kembali Listing Program 3 – 1, ada kondisi yang merupakan kebalikan yaitu:
a bernilai TRUE dan not a bernilai FALSE
Pada saat dilaksanakan sebenarnya statement setelah IF not a THEN ..., tidak akan dilaksanakan, karena nilai a:=TRUE. Cobalah untuk mengganti a:=FALSE, maka statement setelah IF a THEN … -lah yang tidak akan dilaksanakan. Sebenarnya kedua IF sederhana tersebut dapat diringkas dengan IF – THEN – ELSE yang syntaxnya:

IF kondisi THEN statement_true
ELSE statement_false;
IF kondisi THEN
BEGIN
END
ELSE
statement1_true;
Statement2_true;
BEGIN
Statement1_false;
Statement2_false;
END;

3. IF Else if
IF kompleks disebabkan adanya kondisi yang mempunyai lebih dari dua alternativejawaban. Syntaxnya adalah
IF kondisi1 THEN statement_kondisi1_true
ELSE IF kondisi2
THEN statement_kondisi1_false_kondisi2_true;
ELSE statement_ kondisi1_false_kondisi2_false;
IF kondisi1 THEN
BEGIN
statement1_kondisi1_true;
Statement2_kondisi1_true;
END

ELSE IF kondisi2 THEN
BEGIN
Statement1_kondisi1_false_kondisi2_true;
Statement2_kondisi1_false_kondisi2_true;
END
ELSE statement_kondisi1_false_kondisi2_false;

4.Switch
Dipakai pada saat kita ingin memberikan kondisi dengan beberapa syarat yang identik yang masing-masing mempunyai pernyataan yang berbeda-beda. Pada Java, nilai yang dilewatkan pada switch harus bertipe int, short, byte atau char. Sintaks dari switch adalah sebagai berikut:
switch (ekspresi) {
case nilai1: Pernyataan1;
break;
case nilai2: Pernyataan2;
break;
default: Pernyataan3;
}
Ketika ekspresi bernilai nilai1, maka alur program akan mengeksekusi pernyataan1. Selanjutnya break menyebabkan alur program keluar dari daerah switch. Kalau ekspresi bernilai nilai2, maka alur program akan mengeksekusi Pernyataan2. Apabila ekspresi mempunya nilai yang tidak sama dengan nilai1 dan nilai2, maka alur program akan menuju ke bagian default dan kemudian mengeksekusi Pernyataan3.

II. Soal Praktikum
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,

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

Buat algoritma untuk mengkonversi bilangan dalam format desimal menjadi biner.
Input: bilangan desimal
Output: bilangan biner
Ilustrasi:

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?

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.

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 .

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 atasdiskonnya : 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

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

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 TotalRp. 510.000,-

Pertanyaan: Buat algoritma untuk kasus diatas.

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.0005%
1.000.000 – 10.000.0006%
1 0.000.000 – 25.000.0007%
Diatas 25.000.0008%

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.

III. FLOWCHART ATAU PSOUDOCODE
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*hrghar

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

IV. SOURCE CODE & OUTPUT PROGRAM
SOAL NO.1
package tgas2;
import java.util.*;
/**
*
* @author Jauhar
*/
public class num1 {
public static void main(String[] args) {
// TODO code application logic here
Scanner masuk = new Scanner(System.in);
int sisi1,sisi2,c;
System.out.println("Mengitung Panjang sisi miring Segitiga siku-
siku");
System.out.print("Masukan Nilai Sisi 1 : ");
sisi1 = masuk.nextInt();
System.out.print("Masukan Nilai Sisi 2 : ");
sisi2 = masuk.nextInt();
c=((sisi1*sisi1)+(sisi2*sisi2));
System.out.println("Panjang sisi miring segitiga siku-siku adalah
= "+(Math.sqrt(c)));
}
}
Output
Menghitung panjang sisi miring segitiga siku-siku
Masukan nilai sisi 1 = 3
Masukan nilai sisi 2 = 4
Panjang sisi miring segitiga siku-siku adalah 5,0

SOAL NO.2
package tgas2;

import java.util.*;
/**
*
* @author Jauhar
*/
public class num2 {
public static void main(String[] args) {
// TODO code application logic here
long bil1, uang;
do
{
//inputan dari keyboard
System.out.print("masukkan Jumlah uang = ");
Scanner obj = new Scanner(System.in);
uang = obj.nextLong();
if (uang<100)
{
System.out.println("Maaf, tidak ada nominal uang "+
"sebesar "+uang+" rupiah");
continue;
}
else {
if (uang >= 100000) {
bil1 = uang / 100000;
System.out.println("Diperlukan " + bil1 +" lembar 100000");
}
uang = uang % 100000;
if ((uang >= 50000) && (uang <100000))
{
bil1 = uang / 50000;
System.out.println("Diperlukan " + bil1 +" lembar 50000");
}
// antara 20000-50000
System.out.println("Diperlukan " + bil1 +" lembar 50000");
uang = uang % 50000;
if ((uang >= 20000) && (uang <50000))
{
bil1 = uang / 20000;
System.out.println("Diperlukan " + bil1 +" lembar 20000");
}
uang = uang % 20000;
if ((uang >= 10000) && (uang <20000))
{
bil1 = uang / 10000;
System.out.println("Diperlukan " + bil1 +" lembar 10000");
}
// antara 5000-10000
uang = uang % 10000;
if ((uang >= 5000) && (uang <10000))
{
bil1 = uang / 5000;
System.out.println("Diperlukan " + bil1 +" lembar 5000");
}
// antara 2000-5000
uang = uang % 5000;
if ((uang >= 2000) && (uang <5000))
{
bil1 = uang / 2000;
System.out.println("Diperlukan " + bil1 +" lembar 2000");
}
if ((uang >= 1000) && (uang <2000))
bil1 = uang / 1000;
System.out.println("Diperlukan " + bil1 +" lembar 1000");
uang = uang % 2000;
if ((uang >= 1000) && (uang <2000))
{
bil1 = uang / 1000;
System.out.println("Diperlukan " + bil1 +" lembar 1000");

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

SOAL NO.3
import java.util.*;

import java.io.*;

/**

*

* @author Jauhar

public class num3 {

*/

public class num3 {

public static void main(String[] args) {

int angka;

Scanner obj = new Scanner(System.in);

System.out.print('\n'+"Masukkan Bil Desimal: ");

angka = obj.nextInt();

DesToBin(angka);

}

static void DesToBin(int bil){

int mod=0,sisa=0, i=0; boolean loop=true; int[] zz = new int[1000];

sisa=bil;

while (loop==true){ sisa = bil%2; bil= bil/2;

zz[i]=sisa; i++;

if((bil==0)||(bil==1)){ loop=false; zz[i]=bil; }

} //Cetak Bilangan Biner

System.out.print("konversinya ke bil.Biner adalah "); for (int a=i; a>=0;a--){

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

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

}

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

SOAL NO.4
import java.io.*;

/**

*

* @author jauhar

*/

public class num4 {

public static void main(String[] args) {

BufferedReader dataIn = new BufferedReader(new

InputStreamReader( System.in) );

String kerja= "";

String usia= "";

String pegawai= "";

try{

System.out.print("Masukkan Lama Kerja : ");

kerja = dataIn.readLine();

System.out.print("Masukkan Usia : ");

usia = dataIn.readLine();

System.out.print("staff atau non staff : ");

pegawai = dataIn.readLine();

}catch( IOException e ){

System.out.println("Error!");

}

int massa = Integer.parseInt(kerja);

int umur = Integer.parseInt(usia);

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

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

}

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

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

}

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

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

}

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

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

}

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

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

}

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

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

}

else {

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

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

}

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

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

}

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

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

}

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

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

}

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

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

}

else {

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

= staff / non staff");

}

}

}

SOAL NO.5
package tgas2;

import java.io.*;

/**

*

* @author jauhar

*/

public class num5 {

public static void main(String[] args) {

BufferedReader dataIn = new BufferedReader(new

InputStreamReader( System.in) );

String hari= "";

String baris= "";

try{

System.out.print("Masukkan Hari : ");

hari = dataIn.readLine();

System.out.print("Masukkan jumlah baris : ");

baris = dataIn.readLine();

}catch( IOException e ){

System.out.println("Error!");

}

int total = Integer.parseInt(baris);

if("Minggu".equals(hari) || "Senin".equals(hari) || "Selasa".equals(hari)

|| "Rabu".equals(hari) || "Kamis".equals(hari) || "Jumat".equals(hari)){

System.out.println("Total Biaya = "+total * 33000);

}

else if("Sabtu".equals(hari)){

System.out.println("Total Biaya = "+total * 40000);

}

else {

System.out.println("Maaf, format hari anda salah. Awali huruf kapital. Contoh

= Senin ");

}

}

}

SOAL NO.6
package tgas2;

import java.util.*;

/**

*

* @author jauhar

*/

public class num6 {

public static void main(String[] args) {

Scanner dino = new Scanner(System.in);

Scanner jumlah = new Scanner(System.in);

Scanner libur = new Scanner(System.in);

int tiket,hari,lib,a,b,c;

System.out.println("Harga tiket bioskop di Surabaya City");

System.out.println("- Senin – Kamis : Rp 15.000,-");

System.out.println("- Jumat s/d Minggu : Rp 35.000,-");

System.out.println("- Hari Libur : Rp 35.000,-");

System.out.println("\nINPUT");

System.out.println("1 = Senin | 2 = Selasa | 3 = Rabu");

System.out.println("4 = Kamis | 5 = Jumat | 6 = Sabtu | 7 = Minggu ");

System.out.println("8 = Hari Libur | 9 = Bukan Hari Libur");

System.out.print("\nMasukan Hari = ");

hari = dino.nextInt();

System.out.print("Jumlah Tiket = ");

tiket = jumlah.nextInt();

System.out.print("Apakah hari libur = ");

lib = libur.nextInt();

a = tiket * 15000;

b = tiket * 35000;

if (hari == 1 && lib != 8 || hari == 2 && lib != 8 || hari == 3 &&

lib != 8 || hari == 4 && lib != 8 )

{

System.out.println("Total yang harus dibayar adalah = "+a);

}

else if (hari == 1 && lib == 8 || hari == 2 && lib == 8 || hari == 3 &&

lib == 8 || hari == 4 && lib == 8){

System.out.println("Total yang harus dibayar adalah = "+b);

}

else if (hari == 5 || hari == 6 || hari == 7)

{

System.out.println("Total yang harus dibayar adalah = "+b);

}

}

}

SOAL NO.7
package tgas2;

import java.util.*;

/**

*

* @author jauhar

*/

public class NUM7 {

public static void main(String[] args) {

Scanner belanja = new Scanner(System.in);

double total,diskon,bayar;

System.out.print("Total Belanja : ");

total = belanja.nextInt();

if(total<150000){

diskon= total * 0;

bayar=total-diskon;

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

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

}

else if(total<275000){

diskon= total * 0.20;

bayar=total-diskon;

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

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

diskon= total * 0.20;

bayar=total-diskon;

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

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

}

else {

diskon= total * 0.25;

bayar=total-diskon;

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

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

}

}

}

SOAL NO.8
package tgas2;

import java.util.*;

* @author jauhar

public class NUM8 {

public static void main(String[] args) {

Scanner tugas1 = new Scanner(System.in);

Scanner tugas2 = new Scanner(System.in);

Scanner tugas3 = new Scanner(System.in);

Scanner yutc = new Scanner(System.in);

Scanner yuac = new Scanner(System.in);

int tgs1,tgs2,tgs3,utc,uac,rata;

double nilai;

System.out.print("\nMasukkan Nilai Tugas 1 = ");

tgs1 = tugas1.nextInt();

System.out.print("Masukkan Nilai Tugas 2 = ");

tgs2 = tugas2.nextInt();

System.out.print("Masukkan Nilai Tugas 3 = ");

tgs3 = tugas3.nextInt();

System.out.print("Masukkan Nilai UTC = ");

utc = yutc.nextInt();

System.out.print("Masukkan Nilai UAC = ");

uac = yuac.nextInt();

rata = (tgs1+tgs2+tgs3)/3;

nilai=((rata*0.3)+(utc*0.3)+(uac*0.4));

if (nilai > 80 && nilai <=100){

System.out.println("Nilai anda adalah A");

else if (nilai > 70 && nilai <=80){

System.out.println("Nilai anda adalah AB");

}

else if (nilai > 65 && nilai <=70){

System.out.println("Nilai anda adalah B");

}

else if (nilai > 60 && nilai <=65){

System.out.println("Nilai anda adalah BC");

}

else if (nilai > 55 && nilai <=60){

System.out.println("Nilai anda adalah C");

}

else if (nilai > 60 && nilai <=65){

System.out.println("Nilai anda adalah BC");

}

else if (nilai > 55 && nilai <=60){

System.out.println("Nilai anda adalah C");

}

else if (nilai > 40 && nilai <=50){

System.out.println("Nilai anda adalah D");

}

else if (nilai > 0 && nilai <=40){

System.out.println("Nilai anda adalah E");

}

SOAL NO.9
package tgas2;

import java.util.*;

* @author jauhar

public class NUM8 {

public static void main(String[] args) {

Scanner tugas1 = new Scanner(System.in);

Scanner tugas2 = new Scanner(System.in);

Scanner tugas3 = new Scanner(System.in);

Scanner yutc = new Scanner(System.in);

Scanner yuac = new Scanner(System.in);

int tgs1,tgs2,tgs3,utc,uac,rata;

double nilai;

System.out.print("\nMasukkan Nilai Tugas 1 = ");

tgs1 = tugas1.nextInt();

System.out.print("Masukkan Nilai Tugas 2 = ");

tgs2 = tugas2.nextInt();

System.out.print("Masukkan Nilai Tugas 3 = ");

tgs3 = tugas3.nextInt();

System.out.print("Masukkan Nilai UTC = ");

utc = yutc.nextInt();

System.out.print("Masukkan Nilai UAC = ");

uac = yuac.nextInt();

rata = (tgs1+tgs2+tgs3)/3;

nilai=((rata*0.3)+(utc*0.3)+(uac*0.4));

if (nilai > 80 && nilai <=100){

System.out.println("Nilai anda adalah A");

else if (nilai > 70 && nilai <=80){

System.out.println("Nilai anda adalah AB");

}

else if (nilai > 65 && nilai <=70){

System.out.println("Nilai anda adalah B");

}

else if (nilai > 60 && nilai <=65){

System.out.println("Nilai anda adalah BC");

}

else if (nilai > 55 && nilai <=60){

System.out.println("Nilai anda adalah C");

}

else if (nilai > 60 && nilai <=65){

System.out.println("Nilai anda adalah BC");

}

else if (nilai > 55 && nilai <=60){

System.out.println("Nilai anda adalah C");

}

else if (nilai > 40 && nilai <=50){

System.out.println("Nilai anda adalah D");

}

else if (nilai > 0 && nilai <=40){

System.out.println("Nilai anda adalah E");

}

SOAL NO.10
package tgas2;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.text.DecimalFormat;

import java.text.DecimalFormatSymbols;

/**

*

* @author jauhar

*/

public class NUM10 {

public static void main(String[] args) {

// TODO code application logic here

String str_pemakaian ="";

//int pemakaian = Integer.parseInt(str_pemakaian);

int pemakaian1=0;

int pemakaian2=0;

int pemakaian3=0;

int pemakaian4=0;

int cash_back_total=0;

BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in)

);

System.out.print("Masukkan jumlah pemakaian Kartu

Kredit : "+str_pemakaian+"");

try{

str_pemakaian = dataIn.readLine();

}catch( IOException e ){

System.out.println("Error!");

}

if(str_pemakaian.length()>0){

int jml_pemakaian = Integer.parseInt(str_pemakaian);

pemakaian1=1000000;

if(jml_pemakaian<=1000000){

pemakaian1=jml_pemakaian;

}

else if(jml_pemakaian>1000000 && jml_pemakaian<=10000000){

pemakaian1=1000000;

pemakaian2=jml_pemakaian-1000000;

}

else if(jml_pemakaian>10000000 && jml_pemakaian<=25000000){

pemakaian2=10000000;

}

else if(jml_pemakaian>1000000 && jml_pemakaian<=10000000){

pemakaian1=1000000;

pemakaian2=jml_pemakaian-1000000;

}

else if(jml_pemakaian>10000000 && jml_pemakaian<=25000000){

pemakaian2=10000000;

pemakaian3=jml_pemakaian-25000000;

}

else if(jml_pemakaian>25000000){

pemakaian2=10000000;

pemakaian3=25000000;

pemakaian4=jml_pemakaian-25000000;

}

cash_back_total = (pemakaian1*5/100)+(pemakaian2*6/100)+(pemakaian3*7/

100)+(pemakaian4*8/100);DecimalFormat df = (DecimalFormat)

DecimalFormat.getCurrencyInstance();

DecimalFormatSymbols dfs = new DecimalFormatSymbols();

dfs.setCurrencySymbol("");

dfs.setMonetaryDecimalSeparator(',');

dfs.setGroupingSeparator('.');

df.setDecimalFormatSymbols(dfs);

String jumlah_pemakaian = "Rp. " + df.format(jml_pemakaian);

String hsl_biaya_total = "Rp. " + df.format(cash_back_total);

System.out.println("Seorang nasabah yang total selama

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

}

else{

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

return;

}

}

}

V. Referensi
http://ronzidryha.blogspot.com/2013/10/laporan-dasar-pemrograman-praktikum-2.html

Sabtu, 21 September 2013

Bayu Robby Dasar Pemrograman.doc



Dasar teori
1.   Algoritma
Menurut  Donald  E.  Knuth  (1973,p4),  algoritma  dalam  pengertian  modern mempunyai kemiripan dengan istilah  resep ,  proses, metode, teknik, prosedur, rutin . Algoritma  adalah  sekumpulan  aturan-aturan  berhingga  yang  memberikan  sederetan operasi-operasi untuk menyelesaikan suatu jenis masalah yang khusus. Menurut  Rinaldi  Munir,  algoritma  adalah  urutan  langkah-langkah  logis penyelesaian masalah yang disusun secara sistematis. Berdasarkan dua pengertian algoritma di atas, dapat disimpulkan bahwa algoritma merupakan suatu istilah yang luas,  yang tidak hanya berkaitan dengan dunia komputer
.
2.   Pemrograman
Pemrograman berasal dar i kata  program  yang diberi awalan pe– dan akhiran –an. Dalam buku ini, program berarti program komputer. Pengertian   program   computer menurut John M. Zelle,  Ph.D.  dalam bukunya  yang  berjudul “Python  Programming: An  Introduction to  Computer  Science”  (2002,  p1)  adalah  sekumpulan  instruksi langkah perlangkah yang memberitahukan mengenai yang harus dilakukan computer secara  tepat.   Pemrograman   adalah  segala  kegiatan  pembuatan  program  computer.
Kemudian  terdapat  pula  istilah   bahasa  pemrograman   yang  berarti  bahasa  yang digunakan dalam pembuatan program komputer. Berdasarkan  pengertian  algoritma  dan  pemrograman,  maka  dapat  dikatakan bahwa  program  merupakan  hasil  penerapan  dari  algoritma- algoritma.  Akan  tetapi, dalam  buku  ini  tidak dibahas  materi  mengenai  pembuatan  program  komputer.  Buku ini  memfokuskan teknik-teknik pembuatan  algoritma  itu  sendiri.  Nama  mata  kuliah Algoritma dan Pemrograman dalam hal ini berarti mempelajari pembuatan algoritma- algoritma yang dapat diterapkan dalam pemrograman.

3.   KARAKTERISTIK ALGORITMA
Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. Sebagai contoh, dalam algoritma Euclidean, pada langkah 1, jika n = 0, algoritma berhenti, jika n tidak = 0 maka nilai n selalu berkurang sebagai akibat dari langkah 2 dan 3, dan pada akhirnya nilai n = 0. Program yang tidak pernah berhenti mengindikasikan bahwa program tersebut berisi algoritma yang salah.
Setiap langkah harus di defenisikan dengan tepat dan tidak berarti dua (ambiguous). Pembaca harus mengerti apa yang di maksud dengan “m” dan “n” adalah bilangan bulat tak negatif (-). Contoh lainnya pernyataan ” bagilah p dengan beberapa sejumlah bilangan bulat positif” dapat bermakna ganda. Berapakah yang di maksud dengan “berapa” ? Algoritma menjadi jelas jika langkah tersebut di tulis “bagilah p dengan 10 buah bilangan bulat positif”
Algoritma memiliki nol atau lebih masukan (input). Masukan ialah besaran yang diberikan kepada algoritma untuk di proses. Algoritma Euclidean mempunyai dua buah masukan, yaitu m dan.
Algoritma mempunya nol atau lebih keluaran (output). Keluaran dapat berupa pesan atau besaran yang memiliki hubungan dengan masukan. Algoritma Euclidean mempunyai 1 keluaran, yaitu m pada langkah 1, yang merupakan pembagi bersama terbesar dari kedua bilangan.
Algoritma harus sangkil (effective). Setiap langkah harus sederhana sehingga dapat di kerjakan dalam sejumlah waktu yang masuk akal.

4.   FLOWCHART
Tujuan utama penggunaan flowchart adalah untuk menyederhanakan rangkaian proses atau prosedur untuk memudahkan pemahaman pengguna terhadap informasi tersebut. Oleh karena itu, design sebuah flowchart harus ringkas, jelas, dan logis.
Flowchart atau diagram alir merupakan sebuah diagram dengan simbol-simbol grafis yang menyatakan aliran algoritma atau proses yang menampilkan langkah-langkah yang disimbolkan dalam bentuk kotak, beserta urutannya dengan menghubungkan masing masing langkah tersebut menggunakan tanda panah. Diagram ini bisa memberi solusi selangkah demi selangkah untuk penyelesaian masalah yang ada di dalam proses atau algoritma tersebut. 

v  Tujuan Flowchart



v  Simbol-Simbol

Gambar berikut adalah simbol flowchart yang umum digunakan.

Gambar
Simbol untuk
Keterangan

Proses / Langkah
Menyatakan kegiatan yang akan ditampilkan dalam diagram alir.

Titik Keputusan
Proses / Langkah dimana perlu adanya keputusan atau adanya kondisi tertentu. Di titik ini selalu ada dua keluaran untuk melanjutkan aliran kondisi yang berbeda.

Masukan / Keluaran Data
Digunakan untuk mewakili data masuk, atau data keluar.

Terminasi
Menunjukkan awal atau akhir sebuah proses.

Garis alir
Menunjukkan arah aliran proses atau algoritma.

Kontrol / Inspeksi
Menunjukkan proses / langkah dimana ada inspeksi atau pengontrolan.


v  Jenis-Jenis Diagram Alir


Sterneckert (2003) menyarankan untuk membuat model diagram alir yang berbeda sesuai dengan perspektif pemakai (managers, system analysts and clerks) sehingga dikenal ada 4 jenis diagram alir secara umum:

§  Diagram Alir Dokumen, menunjukkan kontrol dari sebuah sistem aliran dokumen.
§  Diagram Alir Data, menunjukkan kontrol dari sebuah sistem aliran data.
§  Diagram Alir Sistem, menunjukkan kontrol dari sebuah sistem aliran secara fisik.
§  Diagram Alir Program, menunjukkan kontrol dari sebuah program dalam sebuah sistem.

5.   PSOUDECODE
Kode-palsu atau dalam bahasa inggris lebih dikenal sebagai pseudo-code merupakan deskripsi tingkat tinggi informal dan ringkas atas algoritma pemrograman komputer yang menggunakan konvensi struktural atas suatu bahasa pemrograman, dan ditujukan untuk dibaca oleh manusia dan bukan oleh mesin. Kode palsu biasanya tidak menggunakan elemen detail yang tidak diperlukan untuk kebutuhan pemahaman manusia atas suatu algoritma, seperti deklarasi variabel, kode ataupun subrutin untuk sistem yang bersifat spesifik. Bahasa pemrograman yang digunakan lebih diperbanyak dengan deskripsi dalam bahasa natural atas sesuatu hal yang bersifat detail, atau dengan menggunakan notasi matematis. Tujuan dari penggunaan kode-palsu adalah untuk mempermudah manusia dalam pemahaman dibandingkan menggunakan bahasa pemrograman yang umum digunakan, terlebih aspeknya yang ringkas serta tidak bergantung pada suatu sistem tertentu merupakan prinsip utama dalam suatu algoritma. Kode-palsu umumnya digunakan dalam buku-buku ataupun publikasi karya ilmiah yang mendokumentasikan suatu algortima, dan juga dalam perencanaan pengembangan program komputer, untuk membuat sketsa atas struktur sebuah program sebelum program yang sesungguhnya ditulis.
Tidak ada satu pun standar yang berlaku atas kode-palsu, sebuah program yang masih berupa kode-palsu tidak dapat dijalankan. Kode-palsu menyerupai pula kerangka program (skeleton programs), termasuk dummy code, yang bisa dikompilasi tanpa kesalahan. Diagram alur dapat pula dimasukkan sebagai alternatif berbasis grafis sebuah kode-palsu.

6.   BAHASA PEMROGRAMAN
Bahasa pemrograman, atau sering diistilahkan juga dengan bahasa komputer, adalah teknik komando/instruksi standar untuk memerintah komputer. Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi.
Menurut tingkat kedekatannya dengan mesin komputer, bahasa pemrograman terdiri dari:
  1. Bahasa Mesin, yaitu memberikan perintah kepada komputer dengan memakai kode bahasa biner, contohnya 01100101100110
  2. Bahasa Tingkat Rendah, atau dikenal dengan istilah bahasa rakitan (bah.Inggris Assembly), yaitu memberikan perintah kepada komputer dengan memakai kode-kode singkat (kode mnemonic), contohnya MOV, SUB, CMP, JMP, JGE, JL, LOOP, dsb.
  3. Bahasa Tingkat Menengah, yaitu bahasa komputer yang memakai campuran instruksi dalam kata-kata bahasa manusia (lihat contoh Bahasa Tingkat Tinggi di bawah) dan instruksi yang bersifat simbolik, contohnya {, }, ?, <<, >>, &&, ||, dsb.
  4. Bahasa Tingkat Tinggi, yaitu bahasa komputer yang memakai instruksi berasal dari unsur kata-kata bahasa manusia, contohnya begin, end, if, for, while, and, or, dsb.
Sebagian besar bahasa pemrograman digolongkan sebagai Bahasa Tingkat Tinggi, hanya bahasa C yang digolongkan sebagai Bahasa Tingkat Menengah dan Assembly yang merupakan Bahasa Tingkat Rendah.
LANGKAH - LANGKAH PEMECAHAN MASALAH
Hasil laporan :
1.   Memindah air

a.       Mengambil sebuah gelas kosong diberi label C
b.      Tuangkan air di gelas B kegelas C
c.       Pindahkan air pada gelas A ke gelas B
d.      Pindahkan air B pada gelas C ke gelas A
2.   Game logika
Mendapatkan air 4 liter dari dua buah ember bervolume 5 dan 3 liter
- Isi penuh ember 3 liter dengan air (ember 3 liter berisi 3 liter air)
- Tuangkan air dari ember 3 liter ke dalam ember air 5 liter (ember 5 liter,sekarang berisi 3 liter air)
- Isi penuh kembali ember ember 3 liter dengan air (ember 3 liter berisi 3 liter air)
tuangkan air dari ember 3 liter kedalam ember 5 liter hingga penuh (di dalam ember 3 liter sekarang tersisa 1 liter air)
- Buang seluruh air dari ember 5 liter air (ember 5 liter kosong)
tuangkan air dari ember 3 liter(yang tersisa 1 liter tadi) kedalam ember 5 liter (ember 5 liter sekarang berisi 1 liter air, ember 3 liter kosong)
- Isi penuh ember 3 liter dengan air (ember 3 liter berisi air 3 liter)
- Tuangkan air dari ember 3 liter ke dalam ember 5 liter (ember 5 liter sekarang berisi 1 + 3 = 4 liter air)

3.Family crisis

a.       Permisalan, untuk orang yang berjalan 1 detik berarti nomor satu, untuk orang yang berjalan 6 detik berarti nomor 6, dan lain sebagainya. Sedangkan sisi 1 untuk tepi awal berangkat dan sisi 2 untuk tepi tujuan
b.      Gunakan orang nomor 3 dan nomor 1 menuju sisi 2, dan orang nomor 3 tinggal di sisi 2 sedangkan orang nomor 1 kembali kesisi 1
c.       Gunakan orang nomor 6 dannomor 1 menuju sisi 2, dan orang nomor 1 dan nomor 6 tinggal di sisi 2 sedangkan orang nomor 3 kembalike sisi 1
d.      Di sisi 1 ada orang nomor 8, nomor 12, dan nomor 3 yang baru saja kembali dari sisi 2
e.       Gunakan orang nomor 8 dan nomor 12 menuju sisi 2, dan lalu gunakan orang nomor 1 untuk menjemput orang nomor 3
f.       Gunakan orang nomor 1 dan nomor 3 menuju sisi 2.

3.   Cannibals and missionaries

a.       Permisalan, untuk kanibal adalah K1, K2, dan K3 dan untuk rahib R1, R2, dan R3 dan tepi pertama sebagai tepi A dan tepi kedua sebagai tepi B
b.      K1 dan R1 berangkat lebih dulu ketepi B, dan K1 tinggal di tepi B sedangkan R1 kembali ke tepi A
c.       R1 turun dari perahu, digantikan oleh K2 dan K3 menuju tepi B, dan K2 tinggal di tepi B sedangkan K3 kembaliketepi A
d.      K3turundariperahu, digantikan R1 dan R2 menujutepi B, dan R1 dan R2 tinggal di tepi B sedangkan K1 kembali ke tepi A
e.       K1 dan K2 naik perahu menuju tepi B, dan K2 tinggal di tepi B sedangkan K1 kembali ketepi A
f.       K1 dan K3 naik perahu menuju tepi B, lalu K1 dan K3 sama-sama turun di tepi B.

4.   Wolf game

a.       Jika membawa anjing terlebih dulu, maka kambing akan memakan rumput, jika membawa rumput terlebih
b.      dulu, anjing akan memakan kambing
c.       Satu-satunya cara untuk membawa satu per satu adalah dengan membawa kambing lebih dulu, karena anjing tidak memakan rumput
d.      Setelah itu membawa anjing dan kambing secara bergantian




REFERENSI
                http://sindarku.wordpress.com/2009/06/24/karakteristik-algoritma/
http://tugas2kuliah.wordpress.com/2011/11/29/pengertian-algoritma-dan-pemograman/
SEVOCAB: Software and Systems Engineering Vocabulary. Term: Flow chart. Retrieved 31 July 2008.
Alan B. Sterneckert (2003)Critical Incident Management. p. 126
http://tri0002.blogspot.com/2013/02/pengertian-pseudocode-dalam-algoritma.html
http://id.wikipedia.org/wiki/Bahasa_pemrograman


Nama : Bayu Robby Sagita
NIM : 135623031
Prodi : D3 Manajemen Informatika