Tgs Modul 2 Nisa

35
LAPORAN TUGAS 2 PRAKTIKUM DASAR PEMROGRAMAN Disusun Oleh : Khusnunnisa Karima (105623298) D3 MANAJEMEN INFORMATIKA TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS NEGERI SURABAYA 2013

Transcript of Tgs Modul 2 Nisa

Page 1: Tgs Modul 2 Nisa

LAPORAN

TUGAS 2 PRAKTIKUM DASAR PEMROGRAMAN

Disusun Oleh :

Khusnunnisa Karima

(105623298)

D3 MANAJEMEN INFORMATIKA

TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS NEGERI SURABAYA

2013

Page 2: Tgs Modul 2 Nisa

I. Dasar Teori

A. Netbeans dan Eclipse

Bahasa pemrograman Java lahir pertama kali dari The Green Project (James Gosling

dkk dari sun microsystems) pada tahun 1991 : Teknologi “*7”(Star Seven). Mula-mula

James Gosling menyebut bahasa pemrograman yang dihasilkannya dengan OAK: Sun

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++] sehingga

menarik banyak pemrogram C++ untuk pindah ke Java.

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)

Netbeans : salah satu editor yang dilengkapi dengan pelacakan baris program

yang menyebabkan error kompilasi

Editor-editor lain: Eclipse, Gel, JBuilder, Jcreator dll

Page 3: Tgs Modul 2 Nisa

B. Penulisan Program di Java, Input, Output

Pada program-program yang membutuhkan data-data eksternal, maka

diperlukan suatu proses input dan ouput (I/O), dimana pada Java dukungan proses I/O

ini sudah disediakan dalam paket java.io. Di dalam paket tersebut tersimpan banyak

kelas dan interface siap pakai yang akan memudahkan programmer dalam

pengambilan dan penyimpanan informasi dari/ke media lain (misalnya file).

Program Java melakukan proses I/O melalui stream, yaitu sebuah abstraksi

yang dapat memberikan atau mendapatkan informasi. Stream dapat dihubungkan

dengan peralatan fisik yang terdapat dalam sistem I/O Java, seperti keyboard, file,

layar console, soket jaringan, dan lainnya. Walaupun dihubungkan dengan peralatan

fisik yang berbeda, cara kerja stream selalu sama, sehingga kode program yang ditulis

juga sama untuk masing-masing peralatan fisik. Misalnya, untuk melakukan

penulisan sebuah teks ke layar console maupun ke dalam file, maka dapat digunakan

kelas dan method yang sama.

Stream ada dua jenis, yaitu stream byte dan stream karakter. Stream byte

digunakan untuk memberikan atau menyimpan informasi data dalam bentuk byte,

misalnya untuk menulis dan membaca file biner. Sedangkan stream karakter pada

proses I/O yang melibatkan data-data berbentuk karakter, misalnya proses baca/tulis

ke suatu file teks, dengan menggunakan karakter Unicode.

Pendefinisian stream dilakukan dengan menggunakan empat kelas abstrak,

yaitu InputStream dan OutputStream, sebagai superclass untuk kelas-kelas dalam

kategori stream byte, dan kelas abstrak Reader dan Writer untuk kategori stream

Semua program Java otomatis akan mengimpor paket java.lang yang

mendefinisikan sebuah kelas bernama System yang berkaitan dengan lingkungan

runtime. Kelas System juga mendefinisikan tiga variabel stream, yaitu in, out, dan

err, dimana data-datanya dideklarasikan sebagai public atau static. Dengan demikian

variabel-variabel tersebut dapat digunakan tanpa harus membentuk objek dari kelas

System terlebih dahulu. System.out adalah stream output standar dengan default

layar console. System.in adalah objek dari tipe PrintStream, defaultnya berupa

keyboard dan mengacu pada stream input standar. Sedangkan pada stream error

standar terdapat System.err yang secara default berupa layar console. System.out dan

System.err adalah objek dari tipe PrintStream dan mempunyai cara kerja yang

sama, yaitu mengeluarkan pesan kesalahan ke layar console.

Node Stream

Page 4: Tgs Modul 2 Nisa

Terdapat tiga tipe dasar node, yaitu:

• File

• Memori (misalnya objek array atau String)

• Pipe (suatu kanal dari satu proses)

Melakukan Input

Dalam Java, input console dilakukan melalui pembacaan terhadap stream

System.in. Untuk mendapatkan karakter-karakter yang dimasukkan melalui keyboard

ke dalam layer console, diperlukan membungkus System.in di dalam objek

BufferedReader. Hal ini dilakukan untuk membentuk stream karakter karena

System.in sebenarnya merupakan stream bute. Adapun bentuk constructor dari

BufferedReader sebagai berikut,

BufferedReader(Reader inputReader)

inputReader adalah stream yang akan dihubungkan dengan instance atau objek dari

kelas BufferedReader yang dibuat. Karena Reader merupakan kelas abstrak, maka

perlu dicari kelas turunannya yang berupa kelas konkrit. Salah satunya adalah kelas

InputStreamReader, yang dapat mengonversi byte ke karakter. Sedangkan agar

objek dari InputStreamReader dapat dihubungkan dengan System.in, perlu

digunakan bentuk constructor seperti berikut,

InputStreamReader(InputStream inputStream)

Dalam hal ini, inputStream dapat diisi dengan System.in. Sehingga untuk membuat

objek BufferedReader yang dapat terhubung dengan keyboard, perlu digunakan

kode berikut:

BufferedReader br = new BufferedReader (new InputStreamReader (System.in));

Atau bisa juga ditulis:

InputStreamReader isr = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(isr);

Pada tahap ini objek br sudah siap digunakan untuk melakukan proses input, yaitu

dengan melakukan pemanggilan terhadap method read() maupun readline().

Membaca Input Data Karakter

Untuk membaca input berupa karakter, digunakan method read() yang terdapat

pada kelas BufferedReader, dengan pendeklarasian sebagai berikut:

int read() throws IOException .

Page 5: Tgs Modul 2 Nisa

Membaca Input Data String

Untuk melakukan input berupa string harus digunakan method readLine(), bukan

read(), dengan deklarasi method sebagai berikut:

String readLine() throws IOException

Proses input data string di dalam Java juga berlaku untuk karakter spasi.

Membaca Input Data Numerik

Untuk input berupa data numerik, maka caranya sama dengan melakukan input

terhadap data string. Selanjutnya string hasil input tersebut dikonversi ke tipe

numerik dengan memanggil method parseInt() yang terdapat pada kelas Integer

untuk bilangan bulat, atau parseDouble() yang terdapat pada kelas Double untuk

bilangan riil. Parameter yang dilewatkan ke dalam method tersebut harus bertipe

string. Sebaiknya proses konversi berada di dalam blok try-catch untuk menghindari

masukan string yang tidak dapat dikonversi ke bilangan bulat, misalnya string “abc”.

Menampilkan Output

Untuk menampilkan output ke layar console, dapat dengan mudah dilakukan

melalui method print() maupun println(). Untuk media output lainnya (misalnya: file),

method yang digunakan untuk melakukan proses ini adalah write().

Selain menggunakan System.out untuk menulis ke layar console, Java juga

menyediakan kelas PrintWriter untuk keperluan yang sama. PrintWriter adalah salah

satu kelas stream yang berbasis pada data karakter (character-based). Bentuk

constructor dari kelas PrintWriter adalah sebagai berikut:

PrintWriter(OutputStream outputStream, Boolean flushOnNewLine)

Dimana outputStream adalah objek dari OutputStream dan flushOnNewLine

adalah parameter Boolean yang menyatakan apakah stream output akan dibuang atau

tidak setiap kali method println() dipanggil.

Seperti halnya System.out, PrintWriter juga mendukung method print() dan

println() untuk semua tipe data, termasuk yang berjenis objek; cara kerjanya pun

sama seperti pada saat menggunakan System.out. Apabila argumen yang dilewatkan

berupa objek, maka PrintWriter akan memanggil method toString() dari objek

bersangkutan, kemudian menampilkan hasilnya. Cara pembentukan objek PrintWriter

untuk menampilkan output adalah sebagai berikut:

Page 6: Tgs Modul 2 Nisa

PrintWriter pw = new PrintWriter(System.out, true);

C. Operator: Assigment, Matematika, Perbandingan, Logika

1) Assignment

Adalah operator yang menggunakan tanda sama dengan (=) untuk mengisi sebuah

nilai dalam suatu variabel.

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

Page 7: Tgs Modul 2 Nisa

D. Tingkatan Operator

Operator dapat diklasifikasikan menjadi 2 bentuk, yaitu unary operator dan

binary operator. Unary operator adalah operator yang hanya melibatkan 1 operan.

Sedangkan binary operator adalah operator yang melibatkan 2 operan. Java mempunyai

berbagai macam jenis operator yang dapat digolongkan menjadi operator aritmatika,

increment-decrement, bitwise, boolean, logik, shift (geser), penugasan, kombinasi dan

kondisi.

Arithmatic operator (operator aritmatika) adalah operator yang berfungsi untuk

operasi aritmatika. Yang termasuk dalam arithmatic operator bisa dilihat pada Tabel 3.1.

Tabel 3.1. Arithmatic operator

Arithmatic Operator Keterangan

+ Operasi penambahan

- Operasi pengurangan

* Operasi perkalian

/ Operasi pembagian

% Operasi modulus

Increment – decrement operator adalah operator yang berguna untuk menaikkan

1 nilai (increment) dan menurunkan 1 nilai (decrement). Yang termasuk increment-

decrement operator bisa dilihat pad a Tabel 3.2. Berdasarkan urutan eksekusi penaikkan

dan penurunan nilainya, increment-decrement operator ini dapat diklasifikasikan

menjadi 2 macam, yaitu pre-increment/decrement dan post-increment/decrement.

Tabel 3.2. Arithmatic operator

Increment-Decrement Operator Keterangan

++ increment

-- decrement

Bitwise operator adalah operator yang dipakai untuk operasi bit pada nilai

operan. Yang termasuk bitwise operator bisa dilihat pada Tabel 3.3.

Tabel 3.3. Bitwise Operator

Page 8: Tgs Modul 2 Nisa

Bitwise Operator Keterangan

~ Operasi complement

& Operasi AND

| Operasi OR

^ Operasi XOR

E. Percabangan (if, if....else, if...elseif...., switch)

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

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

Page 9: Tgs Modul 2 Nisa

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;

Page 10: Tgs Modul 2 Nisa

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

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

Page 11: Tgs Modul 2 Nisa

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

Page 12: Tgs Modul 2 Nisa

‟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/m

3

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.

III. PSOUDOCODE

a. Soal 1 Pythagoras

Deskripsi hasil , sisi1, sisi2 : Double

Implementasi

Output(hasil)

End.

b. Soal 2 Pecahan Uang

Deskripsi seratusribu, limapuluhribu, duapuluhribu, sepuluhribu, limaribu, duaribu, seribu, limaratus, duaratus,

seratus, inputuang, sisa : Integer

Implementasi

Page 13: Tgs Modul 2 Nisa

sisa - (seratusribu*100000);

- (limapuluhribu * 50000);

- (duapuluhribu * 20000);

- (sepuluhribu * 10000);

00;

- (limaribu * 5000);

- (duaribu * 2000);

- (seribu * 1000);

- (limaratus * 500);

- (seratus * 100);

if inputuang >= 100000 then

if seratusribu == 0 then

Output (“ ”)

else

Page 14: Tgs Modul 2 Nisa

Output (seratusribu)

endif

endif

if inputuang >= 50000 then

if limapuluhribu == 0 then

Output (“ ”)

else

Output (limapuluhribu)

endif

endif

if inputuang >= 20000 then

if duapuluhribu == 0 then

Output (“ ”)

else

Output (duapuluhribu)

endif

endif

if inputuang >= 10000 then

if sepuluhribu == 0 then

Output (“ ”)

else

Output (sepuluhribu)

endif

endif

if inputuang >= 5000 then

if limaribu == 0 then

Output (“ ”)

else

Output (limaribu)

endif

endif

if inputuang >= 2000 then

if duaribu == 0 then

Output (“ ”)

else

Output (duaribu)

endif

Page 15: Tgs Modul 2 Nisa

endif

if inputuang >= 1000 then

if seribu == 0 then

Output (“ ”)

else

Output (seribu)

endif

endif

if inputuang >= 500 then

if limaratus == 0 then

Output (“ ”)

else

Output (limaratus)

endif

endif

if inputuang >= 100 then

if seratus == 0 then

Output (“ ”)

else

Output (seratus)

endif

endif

if inputuang >= 0 then

Output (sisa)

End if

End.

c. Soal 3 Bilangan Desimal ke Biner

Deskripsi bilangan , hasil=0 , i=0 : Integer

Implementasi While bilangan>0 Repeat

hasil+=bilangan mod 2 * (int) Math.pow(10, i);

bilangan/=2;

i++;

Output (hasil)

End.

Page 16: Tgs Modul 2 Nisa

d. Soal 4 Bonus Pegawai

Deskripsi nama, pegawai : String

masakerja, umur : Integer

Implementasi If pegawai = staf then

If masakerja >=5 and umur >=50 then

Output (bonus)

Else if masakerja < 5 And umur = umur then

Output (bonus)

Else if masakerka = masakerja And umur < 50 then

Output (bonus)

End if

Else If pegawai = nonstaf then

If masakerja >= 5 And umur >=50 then

Output (bonus)

Else

Output (bonus)

End if

Else

Output (Pesan Error)

End.

e. Soal 5 Tarif Iklan

Deskripsi hari : String

baris : Double

Implementasi If hari = minggu Or hari = senin Or hari = selasa Or hari = rabu Or hari = kamis Or hari = jumat then

Output (baris * 33000)

Else if hari = sabtu then

Output (baris * 40000)

Else

Output (Pesan Error)

End.

Page 17: Tgs Modul 2 Nisa

f. Soal 6 Harga Tiket

Deskripsi hari, jenis : String

tiket : Integer

Implementasi If hari = senin Or hari = selasa Or hari = rabu Or hari = kamis then

If jenis = tidak then

Output (tiket*15000)

Else

Output (tiket*35000)

Else if hari = jumat Or hari = sabtu Or hari = minggu

If jenis = tidak then

Output (tiket*35000)

Else

Output (tiket*35000)

Else

Output (Pesan Error)

End.

g. Soal 7 Diskon Belanja

Deskripsi total, diskon, bayar : Double

Implementasi if total < 150000 then

- diskon

Output (diskon)

Output (bayar)

Else if total < 275000 then

- diskon

Output (diskon)

Output (bayar)

Else if total < 300000 then

- diskon

Output (diskon)

Output (bayar)

Page 18: Tgs Modul 2 Nisa

Else if total < 400000 then

- diskon

Output (diskon)

Output (bayar)

Else

- diskon

Output (diskon)

Output (bayar)

End.

h. Soal 8 Nilai Huruf

Deskripsi Nama : String

tugas1,tugas2,tugas3,UTS,UAS, rata2, total : Double

Implementasi rata2 = (tugas1+tugas2+tugas3)/3;

total = (rata2*(30%))+(UTS*(30%))+(UAS*(40%));

if total > 0 And total <= 40 then

Output (total)

Output (“E”)

else if total > 40 And total <= 55

Output (total)

Output (“D”)

else if total > 55 And total <= 60

Output (total)

Output (“C”)

else if total > 60 And total <= 65

Output (total)

Output (“BC”)

else if total > 65 And total <= 70

Output (total)

Output (“B”)

else if total > 70 And total <= 80

Output (total)

Output (“AB”)

Page 19: Tgs Modul 2 Nisa

else if total > 80 And total <= 100

Output (total)

Output (“A”)

End.

i. Soal 9 Tarif PDAM

Deskripsi Pemakaian : Double

Implementasi If pemakaian <= 0 then

Output ( pemakaian*0 )

Else if pemakaian <= 50 then

Output ( pemakaian*200)

Else if pemakain <=150 then

Output ((50*200)+((pemakaian - 100) * 500))

Else if pemakaian <= 300 then

Output ((50 * 200) + (100 * 500) + ((pemakaian - 150) * 1000))

Else

Output ((50 * 200) + (100 * 500) + (150 * 1000) + ((pemakaian - 300) * 1500))

End.

j. Soal 10 Cash Back

Deskripsi

jml_pemakaian : Integer

Implementasi pemakai

if jml_pemakaian<=1000000 then

Else if jml_pemakaian > 1000000 And jml_pemakaian <= 10000000 then

– 1000000

Else if jml_pemakaian > 10000000 And jml_pemakaian <= 25000000 then

Page 20: Tgs Modul 2 Nisa

-25000000

Page 21: Tgs Modul 2 Nisa

Else if jml_pemakaian > 25000000 then

– 25000000

cash_back_total=(pemakaian1*5%)+(pemakaian2*6%)+(pemakaian3*7%)+(pemakaian4*8%)

Output (jml_pemakaian , cash_back_total)

End.

IV . Kode Sumber (Source Code) beserta Outputnya

Jawaban Tugas:

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,

Jawab:

1.) Pythagoras

A. Source Code

B. Output

Page 22: Tgs Modul 2 Nisa

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

Jawab:

2.) Pecahan Uang

a. Source Code

Page 23: Tgs Modul 2 Nisa
Page 24: Tgs Modul 2 Nisa

b. Output

3. Buat algoritma untuk mengkonversi bilangan dalam format desimal menjadi biner.

Input : bilangan desimal

Output : bilangan biner

Ilustrasi:

Jawab:

3.) Konversi Bilangan Desimal

A. Source Code

Page 25: Tgs Modul 2 Nisa

B. Output

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?

Jawab:

4.) Bonus Pegawai

A. Source Code

Page 26: Tgs Modul 2 Nisa

B. Output

Page 27: Tgs Modul 2 Nisa

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.

Jawab:

5.) Tarif Iklan

A. Source Code

B. Output

Page 28: Tgs Modul 2 Nisa

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 .

Jawab:

6.) Harga Tiket Bioskop

A. Source Code

Page 29: Tgs Modul 2 Nisa

B. Output

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.

Jawab:

7.) Harga Tiket Bioskop

A. Source Code

Page 30: Tgs Modul 2 Nisa

B. Output

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.

Page 31: Tgs Modul 2 Nisa

„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

Jawab:

8.) Harga Tiket Bioskop

A. Source Code

Page 32: Tgs Modul 2 Nisa

B. Output

9. Berikut ini adalah tarif pemakaian Air PDAM Kota Surabaya

Jumlah Pemakaian (m3) Harga/m

3

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.

Jawab:

9.) Tarif PDAM

Page 33: Tgs Modul 2 Nisa

A. Source Code

C. Output

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%

Page 34: Tgs Modul 2 Nisa

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.

Jawab:

10.) Cash Back

B. Source Code

Page 35: Tgs Modul 2 Nisa

D. Output