LAPORAN TUGAS 2 PRAKTIKUM DASAR PEMROGRAMAN
Disusun Oleh : Aprivivianti Cahyaningrum (105623292)
D3 MANAJEMEN INFORMATIKA TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS NEGERI SURABAYA 2013
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
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
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 .
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:
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
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 incrementdecrement 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
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
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
1. Tuliskan algoritma untuk mencari sisi miring dari suatu segitiga siku-siku jika diketahui diketahui panjang dua sisi yang membentuk sudut siku-siku. Petunjuk: sisi miring segitiga siku-siku dapat dihitung dengan rumus pythagoras, √ 2. Tuliskan algoritma untuk menampilkan banyaknya pecahan uang paling efisien dari sejumlah uang yang di inputkan oleh pengguna. Pecahan uang yang digunakan: 100.000, 50.000, 20.000, 10.000, 5.000, 2.000, 1.000, 500, 200, dan 100. Contoh, untuk uang Rp 12.500, diperlukan 1 lembar 10.000, 1 lembar 2.000, dan 1 koin 500. Input : jumlah uang Output : banyaknya pecahan uang 3. Buat algoritma untuk mengkonversi bilangan dalam format desimal menjadi biner. Input : bilangan desimal Output : bilangan biner Ilustrasi:
4. Untuk menentukan bonus pegawai, berdasarkan ketentuan yang diberikan oleh bagian personalia dan keuangan sebagai berikut : Pegawai perusahaan digolongkan menjadi dua golongan, yaitu staf dan non staf. Staf akan mendapatkan bonus sebesar 1 juta rupiah dengan
syarat bahwa ia telah bekerja paling tidak 5 tahun dan umurnya sudah mencapai 50 tahun; staf yang bekerja kurang dari 5 tahun dan berapapun umurnya, hanya mendapat bonus sebesar Rp. 500.000. Pegawai non staf yang telah bekerja lebih dari 5 tahun akan mendapat bonus sebesar Rp. 400.000 jika berumur lebih dari 50 tahun sedangkan pegawai non staf yang berumur kurang dari 50 tahun hanya mendapat bonus Rp. 250.000. Pegawai staf yang umurnya kurang dari 50 tahun akan mendapat bonus Rp. 300.000. Buat algoritmanya? 5. Tarif pemasangan iklan baris di sebuah Surat Kabar ditentukan sebagai berikut : - Hari : Minggu, Senin, Selasa, Rabu, Kamis dan Jumat, per baris Rp. 33.000,- Hari : Sabtu, per baris Rp. 40.000,Buatlah algoritma untuk menghitung total biaya iklan baris yang harus dibayar oleh pengiklan. Input
: - Hari (Minggu, Senin, Selasa, Rabu, Kamis, Jumat atau Sabtu) - Jumlah baris yang dipakai Output : Total biaya iklan yang harus dibayar pengiklan Tuliskan algoritma untuk kasus diatas dalam bentuk flowchart. 6. Info Harga Tiket Masuk bioskop Surabaya City adalah sebagai berikut : - Senin – Kamis : Rp 15.000,- Jumat s/d Minggu : Rp 35.000,- Hari Libur : Rp 35.000,Input : - Hari (Minggu, Senin, Selasa, Rabu, Kamis, Jumat atau Sabtu) - Libur atau Tidak Libur - Jumlah tiket yang dibeli Output : Total biaya tiket Pertanyaan: Buat algoritma untuk menghitung total biaya tiket . 7. Di sebuah perbelanjaan di Surabaya diadakan Pekan Diskon, dimana perhitungan bonus dihitung bertingkat untuk total belanja senilai : - Rp. 150.000,diskonnya : 10% - Rp. 275.000,diskonnya : 15% - Rp. 300.000,diskonnya : 20% - Rp. 400.000,- ke atas diskonnya : 25% Diskon tidak dihitung sebagai akumulasi dari diskon nilai belanja dibawahnya. Buatlah algoritma untuk menghitung berapa nilai yang harus dibayar oleh pelanggan dengan total nilai belanja tertentu bila disertakan pula perhitungan diskonnya. Input Output
: Total nilai belanja. : 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’ ‘AB’ ‘B’ ‘BC’ ‘C’ ’D’ ’E’
jika nilai > 80 dan nilai <= 100 jika nilai > 70 dan nilai <= 80 jika nilai > 65 dan nilai <= 70 jika nilai > 60 dan nilai <= 65 jika nilai > 55 dan nilai <= 60 jika nilai > 40 dan nilai <= 55 jika nilai > 0 dan nilai <= 40
9. Berikut ini adalah tarif pemakaian Air PDAM Kota Surabaya Jumlah Pemakaian (m3) Harga/m3 Pemakaian I ( < 50 m3) Rp. 200,Pemakaian II ( 51 – 150 ) Rp. 500,Pemakaian III ( 151 – 300 ) Rp. 1.000,3 Pemakaian I V ( > 300 m ) Rp. 1.500,Input : Jumlah Pemakaian Output : Besar biaya yang harus dibayar Jumlah Pemakaian = 500 m3 Pemakaian I ( s/d 50 m3) Pemakaian II ( 51 – 150 ) Pemakaian III ( 151 – 300 ) Pemakaian IV ( > 300 m3 ) Biaya Total
Rp. 200,- * Rp. 500,- * Rp. 1.000,- * Rp. 1.500,- *
50 100 150 200
= = = =
Rp. 10.000,Rp. 50.000,Rp. 150.000,Rp. 300.000,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 hasil Output(hasil) End.
b. Soal 2 Pecahan Uang Deskripsi seratusribu, limapuluhribu, duapuluhribu, sepuluhribu, limaribu, duaribu, seribu, limaratus, duaratus, seratus, inputuang, sisa : Integer Implementasi seratusribu inputuang/100000; sisa inputuang - (seratusribu*100000); limapuluhribu sisa / 50000; sisa sisa - (limapuluhribu * 50000); duapuluhribu sisa / 20000; sisa sisa - (duapuluhribu * 20000); sepuluhribu sisa / 10000; sisa sisa - (sepuluhribu * 10000); limaribu sisa / 5000; sisa sisa - (limaribu * 5000); duaribu sisa / 2000; sisa sisa - (duaribu * 2000); seribu sisa / 1000; sisa sisa - (seribu * 1000); limaratus sisa / 500; sisa sisa - (limaratus * 500); seratus sisa / 100; sisa sisa - (seratus * 100); if inputuang >= 100000 then if seratusribu == 0 then Output (“ ”) else
Output (seratusribu) endif endif if inputuang >= 50000 then if limapuluhribu == 0 then Output (“ ”) else Output (limapuluhribu) endif endif if inputuang >= 20000 then if duapuluhribu == 0 then Output (“ ”) else Output (duapuluhribu) endif endif if inputuang >= 10000 then if sepuluhribu == 0 then Output (“ ”) else Output (sepuluhribu) endif endif if inputuang >= 5000 then if limaribu == 0 then Output (“ ”) else Output (limaribu) endif endif if inputuang >= 2000 then if duaribu == 0 then Output (“ ”) else Output (duaribu) endif
endif if inputuang >= 1000 then if seribu == 0 then Output (“ ”) else Output (seribu) endif endif if inputuang >= 500 then if limaratus == 0 then Output (“ ”) else Output (limaratus) endif endif if inputuang >= 100 then if seratus == 0 then Output (“ ”) else Output (seratus) endif endif if inputuang >= 0 then Output (sisa) End if End. 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.
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.
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 total * 0% bayar total - diskon Output (diskon) Output (bayar) Else if total < 275000 then diskon total * 10% bayar total - diskon Output (diskon) Output (bayar) Else if total < 300000 then diskon total * 15% bayar total - diskon Output (diskon) Output (bayar)
Else if total < 400000 then diskon total * 20% bayar total - diskon Output (diskon) Output (bayar) Else diskon total * 25% bayar total - diskon Output (diskon) Output (bayar) End. 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”)
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 pemakaian1 0 : Integer pemakaian2 0 : Integer pemakaian3 0 : Integer pemakaian4 0 : Integer cash_back_total 0 : Integer jml_pemakaian : Integer Implementasi pemakaian11000000 if jml_pemakaian<=1000000 then pemakaian1 jml_pemakaian Else if jml_pemakaian > 1000000 And jml_pemakaian <= 10000000 then pemakaian1 10000000 pemakaian2 jml_pemakaian – 1000000 Else if jml_pemakaian > 10000000 And jml_pemakaian <= 25000000 then pemakaian2 10000000
pemakaian3 jml_pemakaian-25000000
Else if jml_pemakaian > 25000000 then pemakaian2 10000000 pemakaian3 25000000 pemakaian4 jml_pemakaian – 25000000 cash_back_total=(pemakaian1*5%)+(pemakaian2*6%)+(pemakaian3*7%)+(pemakaian4*8%) Output (jml_pemakaian , cash_back_total) End.
IV . Kode Sumber (Source Code) beserta Outputnya Soal 1 Pythagoras Source Code :
Output :
b. Soal 2 Pecahan Uang
Source Code :
Soal 3 Bilangan Desimal ke Biner Source Code :
d. Soal 4 Bonus Pegawai Source Code :
Output :
e . Soal 5 Tarif Iklan Source Code :
Output :
f. Soal 6 Harga Tiket Source Code :
Output :
g. Soal 7 Diskon Belanja Source Code :
Output :
h. Soal 8 Nilai Huruf Source Code :
Output :
Soal 9 Tarif PDAM Source Code :
]
j. Soal 10 Cash Back Source Code :
E. REFERENSI
http://lecturer.eepis-its.edu/~mieke/Dasar%20Pemrograman%202/praktjava/p1dasar%20pemrograman%20java.pdf http://lecturer.eepisits.edu/~zai/Praktikum%20Dasar%20Pemrograman%202/Praktikum%207%20Dasar%20IO.pdf
http://blog.binadarma.ac.id/yantox_ska/wp-content/uploads/2012/10/ModulAlgoC03-IPO.pdf