Senin, 28 Oktober 2013

modul2 daspro

PRAKTIKUM DASAR PEMROGRAMAN TUGAS MODUL 2 Oleh : RULI DIMAS PRAKOSO NIM : 135623015 PROGRAM STUDI D3 MANAJEMEN INFORMATIKA JURUSAN TEKNIK ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS NEGERI SURABAYA 2013 DASAR TEORI Netbeans Salah satu editor dalam java adalah NetBeans. Editor ini luar biasa untuk membuat aplikasi java, karena didukung dengan fasilitas drag and drop komponen, yaitu dukungan Rapid Aplication Development (pemrograman berbasis visual dan template). Satu hal lagi yang paling penting adalah produk ini free, yang dibuat oleh Sun Microsystem. NetBeans juga memiliki IDE (Integrated Development Environment), ada juga yang bilang Integrated Design Environment dan Integrated Debugging Environment, yakni sebuah program/alat bantu yang terdiri atas Editor, Compiler, Debugger dan Design yang terintegrasi dalam satu aplikasi. Keunggulan Netbeans NetBeans GUI Builder GRATIS dengan ribuan plug In yang bisa kita download langsung di website resminya, maupun dari pihak ketiga. NetBeans GUI Builder sangat kompetebel dengan Swing karena memang langsung dikembangkan oleh Sun Microsystem yang notabenenya sebagai pengembang Swing. Netbeans tidak hanya dapat digunakan buat java saja, karena Netbeans dapat di gunakan untuk bahasa pemograman lain seperti C/C++, Ruby, dan PHP. NetBeans GUI Builder sangat cocok untuk digunakan dalam pengembangan sistem berskala Enterprise. Pada paket tertentu, Netbeans juga menyertakan GlassFish V2 UR2 dan Apache Tomcat 6.0.16 Kelemahan Netbeans NetBeans hanya mensupport satu pengembangan Java GUI, yaitu Swing, yang padahal ada Java GUI yang dikembangkan oleh eclipse yang bernama SWT dan JFace yang sudah cukup popular NetBeans mempatenkan source untuk Java GUI yang sedang dikerjakan dalam sebuah Generated Code, sehingga programmer tak dapat mengeditnya secara manual. Dari segi sumber daya, Netbeans memerlukan sumber daya yang besar, seperti Memory dan ruang hard disk. Netbeans memerlukan dukungan prosesor yang cukup handal untuk mendapatkan performa maksimalnya. Eclipse Menurut Nasruddin Safaat h (Pemrograman aplikasi mobeli smartphone dan tablet PC berbasis android 2012:16) Eclipse adalah sebuah IDE (Integrated Development Environment) untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform (platform-independent). Berikut ini adalah sifat dari Eclipse: Multi-platform: Target sistem operasi Eclipse adalah Microsoft Windows, Linux, Solaris, AIX, HP-UX dan Mac OS X. Mulit-language: Eclipse dikembangkan dengan bahasa pemrograman Java, akan tetapi Eclipse mendukung pengembangan aplikasi berbasis bahasa pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP, dan lain sebagainya. Multi-role: Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun bisa digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak, seperti dokumentasi, test perangkat lunak, pengembangan web, dan lain sebagainya. Eclipse pada saat ini merupakan salah satu IDE favorit dikarenakan gratis dan open source, yang berarti setiap orang boleh melihat kode pemrograman perangkat lunak ini. Selain itu, kelebihan dari Eclipse yang membuatnya populer adalah kemampuannya untuk dapat dikembangkan oleh pengguna dengan komponen yang dinamakan plug-in. Eclipse dibuat dari kerja sama antara perusahaan-perusahaan anggota 'Eclipse Foundation' (beserta individu-individu lain). Banyak nama besar yang ikut dalam 'Eclipse Foundation', termasuk IBM, BEA, Intel, Nokia, Borland. Eclipse bersaing langsung dengan Netbeans IDE. Plugin tambahan pada Eclipse jauh lebih banyak dan bervariasi dibandingkan IDE lainnya. IntelliJ IDEA (commercial, free 30-day trial) Oracle JDeveloper (free) Xinox JCreator (ada versi berbayar maupun free) Eclipse awalnya dikembangkan oleh IBM untuk menggantikan perangkat lunak IBM Visual Age for Java 4.0. Produk ini diluncurkan oleh IBM pada tanggal 5 November 2001, yang menginvestasikan sebanyak US$ 40 juta untuk pengembangannya. Semenjak itu konsursium Eclipse Foundation mengambil alih untuk pengembangan Eclipse lebih lanjut dan pengaturan organisasinya. Sejak versi 3.0, Eclipse pada dasarnya merupakan sebuah kernel, yang mengangkat plug-in. Apa yang dapat digunakan di dalam Eclipse sebenarnya adalah fungsi dari plug-in yang sudah diinstal. Ini merupakan basis dari Eclipse yang dinamakan Rich Client Platform (RCP). Berikut ini adalah komponen yang membentuk RCP: Core platform OSGi SWT (Standard Widget Toolkit) JFace Eclipse Workbench Secara standar Eclipse selalu dilengkapi dengan JDT (Java Development Tools), plug-in yang membuat Eclipse kompatibel untuk mengembangkan program Java, dan PDE (Plug-in Development Environment) untuk mengembangkan plug-in baru. Eclipse beserta plug-in-nya diimplementasikan dalam bahasa pemrograman Java. Konsep Eclipse adalah IDE yang terbuka (open), mudah diperluas (extensible) untuk apa saja, dan tidak untuk sesuatu yang spesifik. Jadi, Eclipse tidak saja untuk mengembangkan program Java, akan tetapi dapat digunakan untuk berbagai macam keperluan, cukup dengan menginstal plug-in yang dibutuhkan. Apabila ingin mengembangkan program C/C++ terdapat plug-in CDT (C/C++ Development Tools). Selain itu, pengembangan secara visual bukan hal yang tidak mungkin oleh Eclipse, plug-in UML2 tersedia untuk membuat Diagram UML. Dengan menggunakan PDE setiap orang bisa membuat plug-in sesuai dengan keinginannya. Salah satu situs yang menawarkan plug-in secara gratis seperti Eclipse downloads by project. Sejak tahun 2006, Eclipse Foundation mengkoordinasikan peluncuran Eclipse secara rutin dan simultan yang dikenal dengan nama Simultaneous Release. Setiap versi peluncuran terdiri dari Eclipse Platform dan juga sejUMLah proyek yang terlibat dalam proyek Eclipse. Tujuan dari sistem ini adalah untuk menyediakan distribusi Eclipse dengan fitur-fitur dan versi yang terstandarisasi. Hal ini juga dimaksudkan untuk mempermudah Deployment dan maintenance untuk sistem enterprise, serta untuk kenyamanan.Peluncuran simultan dijadwalkan pada bulan Juni setiap tahunnya. Penulisan Program Di Java,Input & Output Pada NetBeans membuat kode dasar untuk program Java Anda. Anda dapat menambah pernyataan-pernyataan Anda pada kode yang telah di-generate. Pada sisi kiri jendela, Anda dapat melihat daftar folder dan filefile yang dihasilkan NetBeans setelah membuat sebuah project. Semua ini dapat Anda temukan dalam folder MYJAVAPROGRAMS Anda, dimana Anda menetapkan lokasi project tersebut. Sekarang, cobalah memodifikasi kode yang dihasilkan oleh NetBeans. Untuk saat ini abaikan bagian-bagian lain dari program, detail dari kode tersebut akan dijelaskan pada bagian berikutnya. Masukkan kode : System.out.println("Hello world!"); Setelah pernyataan, //TODO code application logic here. Untuk menjalankan program Anda, klik pada Run->Run Main Project. Atau Anda juga dapat menggunakan tombol shortcut untuk menjalankan program Anda. Hasil dari program Anda ditampilkan pada jendela. Operator Operator merupakan sebuah karakter khusus yang digunakan untuk menghasilkan suatu nilai. Operator Assigment ( Penugasan ) Operator assignment dalam Java digunakan untuk memberikan sebuah nilai ke sebuah variabel. Operator assignment hanya berupa ‘=’, namun selain itu dalam Java dikenal beberapa shortcut assignment operator yang penting, yang digambarkan dalam tabel berikut : Contoh: int a = 10; a += 5; System.out.println(a); Hasil dari operasi += tersebut adalah 15. Hal ini dikarenakan a += 5 sama dengan a = a + 5, dikarenakan a sebelumnya adalah 10, maka itu berarti a = 10 + 5. Jika akan melakukan penambahan atau pengurangan dengan nilai 1, maka dapat dengan mudah menggunakan karakter ++ untuk penambahan atau -- untuk pengurangan, misal : int a = 10; a--; System.out.println(a); Maka hasilnya adalah 9. Operator Matematika Sama halnya dengan semua bahasa pemrograman, Java menyediakan operator-operator aritmatika atau matematika untuk manipulasi variabel data numerik. Operator-operator tersebut antara lain : Contoh : int a = 10; int b = 3; int c = a / b; System.out.println(c); Hasil dari kode program diatas adalah 3 bukan 3.333. Hal ini dikarenakan dalam Java jika kita melakukan operasi pembagian dengan tipe data integer, maka hasilnyapun akan integer, dan integer tidak dapat mengandung nilai koma dalam Java, sehingga jika akan melakukan perkalian yang menghasilkan nilai koma, maka harus menggunakan tipe data double atau float. Operator pembanding Operator relasi dalam Java digunakan untuk menghasilkan nilai boolean yang sering digunakan untuk mengatur alur jalannya sebuah program. Hasil dari operasi pembanding adalah boolean. True jika operasi pembanding tersebut benar, dan false jika operasi pembanding tersebut salah. Contoh : boolean a = 10 == 100; System.out.println(a); Hasil dari program diatas adalah false, karena memang 10 tidak sama dengan 100. Operator Logika Operator ini digunakan untuk ekspresi logik yang menghasilkan nilai boolean. Operator-operator yang digunakan adalah AND ( && ), OR ( ¦ ¦ ) dan NOT ( ! ). Operator logika digunakan untuk membentuk suatu keadaan dari dua atau lebih kondisi tertentu, operator logika biasanya digabungkan dengan operator pembanding. Hasil dari operator logika adalah boolean. Hasil operasi logika dengan menggunakan && adalah sebagai berikut. Hasil operasi logika dengan menggunakan || adalah sebagai berikut. Contoh. boolean hasil = 10 == 100 || 100 == 100; System.out.println(hasil); Maka hasilnya adalah true. Tingkatan Operator Java mempunyai aturan untuk menentukan urutan dimana operator di dalam ekspresi dievaluasi ketika suatu ekspresi mempunyai beberapa operator (disebut dengan operator precedence). Operator precedence adalah urutan evaluasi dimana operator yang ada di suatu ekspresi akan dievaluasi berdasarkan aturan prioritas yang ditentukan. Operator dengan prioritas lebih tinggi akan dievaluasi terlebih dahulu dibandingkan dengan operator yang mempunyai prioritas lebih rendah. Apabila beberapa operator di dalam ekspresi mempunyai prioritas yang sama, maka operator akan dievaluasi berdasarkan asosiasi dari operator tersebut (operator association). Berikut ini adalah tabel operator di Java dengan tingkatan prioritas: Perhatikan contoh ekspresi numerik Java di bawah ini. 5 + 20 * 2 – 20 / 2 + (10 - 2); Java akan mengevaluasi ekspresi numerik tersebut dengan urutan sebagai berikut: Ekspresi numerik yang terdapat di dalam kurung buka tutup akan dievaluasi pertama kali karena mempunyai prioritas paling tinggi dibandingkan dengan operator perkalian (*), pembagian (/), penjumlahan (+) dan pengurangan (-) sehingga ekspresi numerik akan menjadi 5 + 20 * 2 – 20 / 2 + 8. Operator perkalian (*) dan pembagian (/) akan dievaluasi berikutnya mulai dari kiri ke kanan karena memiliki prioritas yang sama dan lebih tinggi dari operator penjumlahan (+) dan pengurangan (-) sehingga ekspresi numerik menjadi 5 + 40 – 10 + 8. Operator penambahan dan pengurangan mempunyai prioritas yang sama dan akan dievaluasi terakhir mulai dari kiri ke kanan sehingga menghasilkan nilai 43. Percabangan (if, if....else, if...elseif...., switch) Percabangan adalah suatu pilihan atau opsi dengan kondisi tertentu. Jika kondisi yang menjadi syarat terpenuhi, maka opsi atau pilihan dijalankan, jika tidak maka sebaliknya. Dalam java terdapat 4 macam jenis percabangan, if, if-else, if-else-if, dan juga switch. Keempat jenis ini memiliki penggunaan masing-masing. Berikut penjelasan mengenai penggunaan tiap-tiap percabangan : If Pernyataan if merupakan salah satu bentuk pernyataan yang berguna untuk mengambil keputusan terhadap sebuah kemungkinan. Bentuk pernyataan if berupa : if(kondisi){ // yang akan dijalankan } Contoh int nilai = 10; if(nilai == 10){ System.out.println("Sepuluh"); } Jika program diatas dijalankan, maka hasilnya adalah tulisan “Sepuluh” karena kondisi pada if bernilai true, jika kondisi bernilai salah, misal nilai == 100, maka program tidak akan menghasilkan tulisan apa-apa. If-Else Percabangan if-else merupakan percabangan yang sama dengan percabangan if namun memiliki kondisi false, artinya jika kondisi pada if tidak terpenuhi maka perintah pada else akan dijalankan. Bentuk pernyataan if-else berupa : if(kondisi){ // jalankan jika kondisi true }else{ // jalankan jika kondisi false } Misal int nilai = 8; if(nilai == 10){ System.out.println("Sepuluh"); }else{ System.out.println("Bukan Sepuluh"); } Jika program diatas dijalankan, maka hasilnya adalah tulisan “Bukan Sepuluh”, hal ini dikarenakan nilai bernilai 8, bukan 10. If – Else – If Percabangan if bersarang merupakan gabungan beberapa if dan dapat pula digabung dengan if-else. Bentuk pernyataan if bersarang adalah sebagai berikut : if(kondisi1){ // perintah kondisi1 }else if(kondisi2){ // perintah kondisi2 }else if(kondisi3){ // perintah kondisi3 }else{ // perintah jika semua kondisi tidak ada yang benar } Contoh int nilai = 6; char index; if(nilai >= 8){ index = 'A'; }else if(nilai >= 7){ index = 'B'; }else if(nilai >= 6){ index = 'C'; }else if(nilai >= 5){ index = 'D'; }else{ index = 'E'; } System.out.println(index); Jika program diatas dijalankan, maka hasilnya adalah ‘C’.   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, c= √(a^2+b^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 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 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 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 Total Rp. 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.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. JAWABAN ALGORITMA 1. Algoritmanya : 1. Baca nilai sisi A 2. Baca nilai sisi B 3. Sisi C = Sqrt(A^2+B^2) Tampilkan nilai sisi A, Sisi B, Sisi C. Misalkan akan dilakukan pertukaran isi nilai A dan nilai B. Jika sebelum pertukaran nilai A = 8 dan nilai B = 10, maka setelah pertukaran, nilai A = 10 dan nilai B = 8. Penyelesaian permasalahan diatas adalah melakukan langkah sebagai berikut : Isikan nilai A ke B (B←A) Isikan nilai B ke A (A←B) Langkah-langkah diatas tidak akan menghasilkan pertukaran yang benar, karena akan dihasilkan nilai B = 8 dan nilai A = 8. Sehingga langkah-langkah diatas adalah salah, dalam hal ini tidak menyelesaikan permasalahan. Untuk mempertukarkan kedua nilai, diperlukan sebuah peubah pembantu sebagai tempat penampungan sementara. Sehingga langkah-langkah pertukaran adalah sebagai berikut : 1. Simpan nilai A di tempat penampungan C (C←A) 2. Isikan nilai B ke nilai A (A←B) Isikan nilai C ke nilai B (B←C) 2. Algoritmanya : 1. Masukkan jumlah uang yang mau dihitung 2. Periksa jumlah uang yang dimasukkan. 3. Inisialisasi jumlah uang. 4. Lakukan perulangan dan pengkondisian sesuai dengan banyak pecahan yang ingin di keluarkan. 5. Lalu output dapat dikeluarkan sesuai kebutuhan. 3. Algoritmanya : 1. Mulai 2. Baca desimal 3. Desimal=desimal div 2 4. Sisa= desimal mod 2 5. d= d*2 6. biner= biner + sisa * d sebelumnya 7. jika desimal 0 pergi ke 9 8. pergi ke 3 9. cetak biner 10.selesai 4. Algoritmanya : 1. Input 4 data : nama, status kerja, masa kerja, usia. 2. Jika pilhan Status kerjanya Staff, masa kerja lebih dari 5 tahun dan umur diatas 50 tahun maka mendapatkan bonus sebesar 1.000.000. 3. Selain umur kurang dari 50 tahun dan statusnya Staff maka mendapatkan bonus 300.000 3. Dan jika staf bekerja kurang dari 5 tahun dan berapapun umurnya mendapatkan bonus 500.000 4. Cek status non staff 5. Jika masa kerja lebih dari 5 tahun dan umur lebih dari 50 tahun maka mendapatkan bonus sebesar 400.000 6. Selain non staf berumur kurang dari 50 tahun mendapatkan bonus 250.000 5. Algoritmanya : 1. Masukkan Hari dan jumlah baris 2. Jika Hari minggu, senin, selasa,rabu,kamis, jumat 3. Maka total biayanya, jumlah baris dikalikan 33.000 3. Dan jika hari sabtu 4. Maka total biayanya, jumlah baris dikalikan 40.000 5. Output :Total biaya iklan 6. Algoritmanya : 1. Masukkan data hari dan jumlah tiket. 2. Jika hari = Senin, Selasa, Rabu, Kamis. 3. Maka Total Biaya Tiket = jumlah tiket * 15000 5. Jika hari = Jumat, Sabtu, Minggu dan Libur. 6. Maka Total Biaya Tiket = jumlah tiket * 35000 5. Output Total biaya tiket. 7. Algoritmanya : 1. Masukkan total belanja. 2. Periksa jumlah total belanja. 3. Jika total belanja : a. Rp 150.000 maka diskon 10% b. Rp 275.000 maka diskon 15% c. Rp 300.000 maka diskon 20% d. Rp 400.000 maka diskon 25% 4. Hitung nilai diskon = total belanja * diskon 5. Hitung nilai yang harus dibayar = nilai total belanja - nilai diskon. 6. Output: Nilai diskon dan nilai yg harus dibayar. 8. Algoritmanya : 1. Masukkan 5 nilai (nilai tugas1,tugas2,tugas3,UTC,UAC) 2. Hitung nilai rata - rata tugas = nilai tugas1+tugas2+tugas3 / 3. 3. Lalu hitung semua nilai : Nilai=((rata-rata tugas*30%)+(UTC*30%)+(UAC*40%)) 4. Seleksi nilai akhir. 5. 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 Output : hasil nilai akhir dan hasil seleksi nilai huruf 9. Algoritmanya : 1. Masukkan Jumlah Pemakaian Air. 2. 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)) 3. Output :Biaya Total 10. Algoritmanya : Inisialisasi variabel string pemakaian •Inisialisasi variabel integer pemakaian1=0 •Inisialisasi variabel integer pemakaian2=0 •Inisialisasi variabel integer pemakaian3=0 •Inisialisasi variabel integer pemakaian4=0 •Inisialisasi variabel integer cash_back_total=0 •Ambil input user untuk memasukkan jumlah pemakaian Kartu Kredit •Masukkan ke variabel string pemakaian •Jika panjang inputan string pemakaian lebih dari 0, atau dengan kata lain user telah menginputkan value - Ubah input string pemakaian menjadi bilangan dengan nama variabel int jml_pemakaian - Memberikan nilai default pada variabel pemakaian1 dengan, pemakaian1= 1000.000 - Jika nilai pada variabel jml_pemakaian <= 1.000.000 Memberikan nilai pada variabel pemakaian1 dengan, pemakaian1= jml_pemakaian - Atau jika nilai pada variabel jml_pemakaian > 1.000.000, dan nilai pada variabel jml_pemakaian <= 10.000.000 Memberikan nilai pada variabel pemakaian1 dengan, pemakaian1= 1.000.000 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 Memberikan nilai pada variabel pemakaian2 dengan, pemakaian2= 10.000.000 Memberikan nilai pada variabel pemakaian3 dengan, pemakaian3= jml_pemakaian – 25.000.000 - Atau jika nilai pada variabel jml_pemakaian > 25.000.000 Memberikan nilai pada variabel pemakaian2 dengan, pemakaian2= 10.000.000 Memberikan nilai pada variabel pemakaian3 dengan, pemakaian3= 25.000.000 Memberikan nilai pada variabel pemakaian4 dengan, pemakaian4= jml_pemakaian – 25.000.000 - Memberikan nilai pada variabel cash_back_total dengan, cash_back_total= (pemakaian1*5/100)+(pemakaian2*6/100)+(pemakaian3*7/100)+(pe makaian4*8/100) - Cetak output dengan format, "Seorang nasabah yang total selama sebulan "+jml_pemakaian+", maka total cash backnya= "+cash_back_total •Atau Jika panjang inputan tidak lebih dari 0, atau dengan kata lain user belum menginputkan value - Cetak output “Ada salah satu masukan yang kosong” - Stop proses FLOWCHART Flowchart untuk mencari sisi miring dari suatu segitiga siku-siku Flowchart untuk menampilkan banyaknya pecahan uang paling efisien dari sejumlah uang yang di inputkan oleh pengguna. Flowchart untuk mengkonversi bilangan dalam format desimal menjadi biner. 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. Flowchartnya Adalah? Flowchart untuk menghitung total biaya iklan baris yang harus dibayar oleh pengiklan.   Flowchart untuk menghitung total biaya tiket Buatlah algoritma untuk menghitung berapa nilai yang harus dibayar oleh pelanggan dengan total nilai belanja tertentu bila disertakan pula perhitungan diskonnya.   Flowchart untuk menghitung nilai, dan konversi menjadi nilai huruf Flowchart untuk menghitung Tarif PDAM Surabaya   Flowchart menghitung cash back yang diterima nasabah berdasarkan nilai pemakaian kartu kredit. SOURCE CODE & OUTPUT Output dari Source Code Diatas Adalah   Output Program : Result: RESULT:   RESULT :   RESULT :   RESULT:     RESULT :   RESULT :   REFERENSI Nazruddin Safaat H. 2011. Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android. Informatika. Bandung Avestro, Joyce. (2007). Pengembangan Perangkat Mobile : Java Education Network Indonesia (JENI) Bambang Hariyanto, “Esensi-esensi Bahasa Pemrograman Java”, Informatika, Bandung, 2005. Sinaga B.L, “Pemrograman Berorientasi Objek dengan Java”, Gava Media, Yogyakarta, 2004. Rangsang Purnama, “Tuntunan Pemrograman Java Jilid 3”, Prestasi Pustaka, Jakarta, 2005. Prasetyo D.D, “Solusi Membuat Aplikasi Java dengan Java Studio”, Elex Media Komputindo, Jakarta, 2004. Ian Leonardo, “Pemrograman Database dengan Java”, Elex Media Komputindo, Jakarta, 2004.

moduL 2

PRAKTIKUM DASAR PEMROGRAMAN TUGAS MODUL 2 Oleh : RULI DIMAS PRAKOSO NIM : 135623015 PROGRAM STUDI D3 MANAJEMEN INFORMATIKA JURUSAN TEKNIK ELEKTRO – FAKULTAS TEKNIK UNIVERSITAS NEGERI SURABAYA 2013 DASAR TEORI Netbeans Salah satu editor dalam java adalah NetBeans. Editor ini luar biasa untuk membuat aplikasi java, karena didukung dengan fasilitas drag and drop komponen, yaitu dukungan Rapid Aplication Development (pemrograman berbasis visual dan template). Satu hal lagi yang paling penting adalah produk ini free, yang dibuat oleh Sun Microsystem. NetBeans juga memiliki IDE (Integrated Development Environment), ada juga yang bilang Integrated Design Environment dan Integrated Debugging Environment, yakni sebuah program/alat bantu yang terdiri atas Editor, Compiler, Debugger dan Design yang terintegrasi dalam satu aplikasi. Keunggulan Netbeans NetBeans GUI Builder GRATIS dengan ribuan plug In yang bisa kita download langsung di website resminya, maupun dari pihak ketiga. NetBeans GUI Builder sangat kompetebel dengan Swing karena memang langsung dikembangkan oleh Sun Microsystem yang notabenenya sebagai pengembang Swing. Netbeans tidak hanya dapat digunakan buat java saja, karena Netbeans dapat di gunakan untuk bahasa pemograman lain seperti C/C++, Ruby, dan PHP. NetBeans GUI Builder sangat cocok untuk digunakan dalam pengembangan sistem berskala Enterprise. Pada paket tertentu, Netbeans juga menyertakan GlassFish V2 UR2 dan Apache Tomcat 6.0.16 Kelemahan Netbeans NetBeans hanya mensupport satu pengembangan Java GUI, yaitu Swing, yang padahal ada Java GUI yang dikembangkan oleh eclipse yang bernama SWT dan JFace yang sudah cukup popular NetBeans mempatenkan source untuk Java GUI yang sedang dikerjakan dalam sebuah Generated Code, sehingga programmer tak dapat mengeditnya secara manual. Dari segi sumber daya, Netbeans memerlukan sumber daya yang besar, seperti Memory dan ruang hard disk. Netbeans memerlukan dukungan prosesor yang cukup handal untuk mendapatkan performa maksimalnya. Eclipse Menurut Nasruddin Safaat h (Pemrograman aplikasi mobeli smartphone dan tablet PC berbasis android 2012:16) Eclipse adalah sebuah IDE (Integrated Development Environment) untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform (platform-independent). Berikut ini adalah sifat dari Eclipse: Multi-platform: Target sistem operasi Eclipse adalah Microsoft Windows, Linux, Solaris, AIX, HP-UX dan Mac OS X. Mulit-language: Eclipse dikembangkan dengan bahasa pemrograman Java, akan tetapi Eclipse mendukung pengembangan aplikasi berbasis bahasa pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP, dan lain sebagainya. Multi-role: Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun bisa digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak, seperti dokumentasi, test perangkat lunak, pengembangan web, dan lain sebagainya. Eclipse pada saat ini merupakan salah satu IDE favorit dikarenakan gratis dan open source, yang berarti setiap orang boleh melihat kode pemrograman perangkat lunak ini. Selain itu, kelebihan dari Eclipse yang membuatnya populer adalah kemampuannya untuk dapat dikembangkan oleh pengguna dengan komponen yang dinamakan plug-in. Eclipse dibuat dari kerja sama antara perusahaan-perusahaan anggota 'Eclipse Foundation' (beserta individu-individu lain). Banyak nama besar yang ikut dalam 'Eclipse Foundation', termasuk IBM, BEA, Intel, Nokia, Borland. Eclipse bersaing langsung dengan Netbeans IDE. Plugin tambahan pada Eclipse jauh lebih banyak dan bervariasi dibandingkan IDE lainnya. IntelliJ IDEA (commercial, free 30-day trial) Oracle JDeveloper (free) Xinox JCreator (ada versi berbayar maupun free) Eclipse awalnya dikembangkan oleh IBM untuk menggantikan perangkat lunak IBM Visual Age for Java 4.0. Produk ini diluncurkan oleh IBM pada tanggal 5 November 2001, yang menginvestasikan sebanyak US$ 40 juta untuk pengembangannya. Semenjak itu konsursium Eclipse Foundation mengambil alih untuk pengembangan Eclipse lebih lanjut dan pengaturan organisasinya. Sejak versi 3.0, Eclipse pada dasarnya merupakan sebuah kernel, yang mengangkat plug-in. Apa yang dapat digunakan di dalam Eclipse sebenarnya adalah fungsi dari plug-in yang sudah diinstal. Ini merupakan basis dari Eclipse yang dinamakan Rich Client Platform (RCP). Berikut ini adalah komponen yang membentuk RCP: Core platform OSGi SWT (Standard Widget Toolkit) JFace Eclipse Workbench Secara standar Eclipse selalu dilengkapi dengan JDT (Java Development Tools), plug-in yang membuat Eclipse kompatibel untuk mengembangkan program Java, dan PDE (Plug-in Development Environment) untuk mengembangkan plug-in baru. Eclipse beserta plug-in-nya diimplementasikan dalam bahasa pemrograman Java. Konsep Eclipse adalah IDE yang terbuka (open), mudah diperluas (extensible) untuk apa saja, dan tidak untuk sesuatu yang spesifik. Jadi, Eclipse tidak saja untuk mengembangkan program Java, akan tetapi dapat digunakan untuk berbagai macam keperluan, cukup dengan menginstal plug-in yang dibutuhkan. Apabila ingin mengembangkan program C/C++ terdapat plug-in CDT (C/C++ Development Tools). Selain itu, pengembangan secara visual bukan hal yang tidak mungkin oleh Eclipse, plug-in UML2 tersedia untuk membuat Diagram UML. Dengan menggunakan PDE setiap orang bisa membuat plug-in sesuai dengan keinginannya. Salah satu situs yang menawarkan plug-in secara gratis seperti Eclipse downloads by project. Sejak tahun 2006, Eclipse Foundation mengkoordinasikan peluncuran Eclipse secara rutin dan simultan yang dikenal dengan nama Simultaneous Release. Setiap versi peluncuran terdiri dari Eclipse Platform dan juga sejUMLah proyek yang terlibat dalam proyek Eclipse. Tujuan dari sistem ini adalah untuk menyediakan distribusi Eclipse dengan fitur-fitur dan versi yang terstandarisasi. Hal ini juga dimaksudkan untuk mempermudah Deployment dan maintenance untuk sistem enterprise, serta untuk kenyamanan.Peluncuran simultan dijadwalkan pada bulan Juni setiap tahunnya. Penulisan Program Di Java,Input & Output Pada NetBeans membuat kode dasar untuk program Java Anda. Anda dapat menambah pernyataan-pernyataan Anda pada kode yang telah di-generate. Pada sisi kiri jendela, Anda dapat melihat daftar folder dan filefile yang dihasilkan NetBeans setelah membuat sebuah project. Semua ini dapat Anda temukan dalam folder MYJAVAPROGRAMS Anda, dimana Anda menetapkan lokasi project tersebut. Sekarang, cobalah memodifikasi kode yang dihasilkan oleh NetBeans. Untuk saat ini abaikan bagian-bagian lain dari program, detail dari kode tersebut akan dijelaskan pada bagian berikutnya. Masukkan kode : System.out.println("Hello world!"); Setelah pernyataan, //TODO code application logic here. Untuk menjalankan program Anda, klik pada Run->Run Main Project. Atau Anda juga dapat menggunakan tombol shortcut untuk menjalankan program Anda. Hasil dari program Anda ditampilkan pada jendela. Operator Operator merupakan sebuah karakter khusus yang digunakan untuk menghasilkan suatu nilai. Operator Assigment ( Penugasan ) Operator assignment dalam Java digunakan untuk memberikan sebuah nilai ke sebuah variabel. Operator assignment hanya berupa ‘=’, namun selain itu dalam Java dikenal beberapa shortcut assignment operator yang penting, yang digambarkan dalam tabel berikut : Contoh: int a = 10; a += 5; System.out.println(a); Hasil dari operasi += tersebut adalah 15. Hal ini dikarenakan a += 5 sama dengan a = a + 5, dikarenakan a sebelumnya adalah 10, maka itu berarti a = 10 + 5. Jika akan melakukan penambahan atau pengurangan dengan nilai 1, maka dapat dengan mudah menggunakan karakter ++ untuk penambahan atau -- untuk pengurangan, misal : int a = 10; a--; System.out.println(a); Maka hasilnya adalah 9. Operator Matematika Sama halnya dengan semua bahasa pemrograman, Java menyediakan operator-operator aritmatika atau matematika untuk manipulasi variabel data numerik. Operator-operator tersebut antara lain : Contoh : int a = 10; int b = 3; int c = a / b; System.out.println(c); Hasil dari kode program diatas adalah 3 bukan 3.333. Hal ini dikarenakan dalam Java jika kita melakukan operasi pembagian dengan tipe data integer, maka hasilnyapun akan integer, dan integer tidak dapat mengandung nilai koma dalam Java, sehingga jika akan melakukan perkalian yang menghasilkan nilai koma, maka harus menggunakan tipe data double atau float. Operator pembanding Operator relasi dalam Java digunakan untuk menghasilkan nilai boolean yang sering digunakan untuk mengatur alur jalannya sebuah program. Hasil dari operasi pembanding adalah boolean. True jika operasi pembanding tersebut benar, dan false jika operasi pembanding tersebut salah. Contoh : boolean a = 10 == 100; System.out.println(a); Hasil dari program diatas adalah false, karena memang 10 tidak sama dengan 100. Operator Logika Operator ini digunakan untuk ekspresi logik yang menghasilkan nilai boolean. Operator-operator yang digunakan adalah AND ( && ), OR ( ¦ ¦ ) dan NOT ( ! ). Operator logika digunakan untuk membentuk suatu keadaan dari dua atau lebih kondisi tertentu, operator logika biasanya digabungkan dengan operator pembanding. Hasil dari operator logika adalah boolean. Hasil operasi logika dengan menggunakan && adalah sebagai berikut. Hasil operasi logika dengan menggunakan || adalah sebagai berikut. Contoh. boolean hasil = 10 == 100 || 100 == 100; System.out.println(hasil); Maka hasilnya adalah true. Tingkatan Operator Java mempunyai aturan untuk menentukan urutan dimana operator di dalam ekspresi dievaluasi ketika suatu ekspresi mempunyai beberapa operator (disebut dengan operator precedence). Operator precedence adalah urutan evaluasi dimana operator yang ada di suatu ekspresi akan dievaluasi berdasarkan aturan prioritas yang ditentukan. Operator dengan prioritas lebih tinggi akan dievaluasi terlebih dahulu dibandingkan dengan operator yang mempunyai prioritas lebih rendah. Apabila beberapa operator di dalam ekspresi mempunyai prioritas yang sama, maka operator akan dievaluasi berdasarkan asosiasi dari operator tersebut (operator association). Berikut ini adalah tabel operator di Java dengan tingkatan prioritas: Perhatikan contoh ekspresi numerik Java di bawah ini. 5 + 20 * 2 – 20 / 2 + (10 - 2); Java akan mengevaluasi ekspresi numerik tersebut dengan urutan sebagai berikut: Ekspresi numerik yang terdapat di dalam kurung buka tutup akan dievaluasi pertama kali karena mempunyai prioritas paling tinggi dibandingkan dengan operator perkalian (*), pembagian (/), penjumlahan (+) dan pengurangan (-) sehingga ekspresi numerik akan menjadi 5 + 20 * 2 – 20 / 2 + 8. Operator perkalian (*) dan pembagian (/) akan dievaluasi berikutnya mulai dari kiri ke kanan karena memiliki prioritas yang sama dan lebih tinggi dari operator penjumlahan (+) dan pengurangan (-) sehingga ekspresi numerik menjadi 5 + 40 – 10 + 8. Operator penambahan dan pengurangan mempunyai prioritas yang sama dan akan dievaluasi terakhir mulai dari kiri ke kanan sehingga menghasilkan nilai 43. Percabangan (if, if....else, if...elseif...., switch) Percabangan adalah suatu pilihan atau opsi dengan kondisi tertentu. Jika kondisi yang menjadi syarat terpenuhi, maka opsi atau pilihan dijalankan, jika tidak maka sebaliknya. Dalam java terdapat 4 macam jenis percabangan, if, if-else, if-else-if, dan juga switch. Keempat jenis ini memiliki penggunaan masing-masing. Berikut penjelasan mengenai penggunaan tiap-tiap percabangan : If Pernyataan if merupakan salah satu bentuk pernyataan yang berguna untuk mengambil keputusan terhadap sebuah kemungkinan. Bentuk pernyataan if berupa : if(kondisi){ // yang akan dijalankan } Contoh int nilai = 10; if(nilai == 10){ System.out.println("Sepuluh"); } Jika program diatas dijalankan, maka hasilnya adalah tulisan “Sepuluh” karena kondisi pada if bernilai true, jika kondisi bernilai salah, misal nilai == 100, maka program tidak akan menghasilkan tulisan apa-apa. If-Else Percabangan if-else merupakan percabangan yang sama dengan percabangan if namun memiliki kondisi false, artinya jika kondisi pada if tidak terpenuhi maka perintah pada else akan dijalankan. Bentuk pernyataan if-else berupa : if(kondisi){ // jalankan jika kondisi true }else{ // jalankan jika kondisi false } Misal int nilai = 8; if(nilai == 10){ System.out.println("Sepuluh"); }else{ System.out.println("Bukan Sepuluh"); } Jika program diatas dijalankan, maka hasilnya adalah tulisan “Bukan Sepuluh”, hal ini dikarenakan nilai bernilai 8, bukan 10. If – Else – If Percabangan if bersarang merupakan gabungan beberapa if dan dapat pula digabung dengan if-else. Bentuk pernyataan if bersarang adalah sebagai berikut : if(kondisi1){ // perintah kondisi1 }else if(kondisi2){ // perintah kondisi2 }else if(kondisi3){ // perintah kondisi3 }else{ // perintah jika semua kondisi tidak ada yang benar } Contoh int nilai = 6; char index; if(nilai >= 8){ index = 'A'; }else if(nilai >= 7){ index = 'B'; }else if(nilai >= 6){ index = 'C'; }else if(nilai >= 5){ index = 'D'; }else{ index = 'E'; } System.out.println(index); Jika program diatas dijalankan, maka hasilnya adalah ‘C’.   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, c= √(a^2+b^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 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 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 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 Total Rp. 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.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. JAWABAN ALGORITMA 1. Algoritmanya : 1. Baca nilai sisi A 2. Baca nilai sisi B 3. Sisi C = Sqrt(A^2+B^2) Tampilkan nilai sisi A, Sisi B, Sisi C. Misalkan akan dilakukan pertukaran isi nilai A dan nilai B. Jika sebelum pertukaran nilai A = 8 dan nilai B = 10, maka setelah pertukaran, nilai A = 10 dan nilai B = 8. Penyelesaian permasalahan diatas adalah melakukan langkah sebagai berikut : Isikan nilai A ke B (B←A) Isikan nilai B ke A (A←B) Langkah-langkah diatas tidak akan menghasilkan pertukaran yang benar, karena akan dihasilkan nilai B = 8 dan nilai A = 8. Sehingga langkah-langkah diatas adalah salah, dalam hal ini tidak menyelesaikan permasalahan. Untuk mempertukarkan kedua nilai, diperlukan sebuah peubah pembantu sebagai tempat penampungan sementara. Sehingga langkah-langkah pertukaran adalah sebagai berikut : 1. Simpan nilai A di tempat penampungan C (C←A) 2. Isikan nilai B ke nilai A (A←B) Isikan nilai C ke nilai B (B←C) 2. Algoritmanya : 1. Masukkan jumlah uang yang mau dihitung 2. Periksa jumlah uang yang dimasukkan. 3. Inisialisasi jumlah uang. 4. Lakukan perulangan dan pengkondisian sesuai dengan banyak pecahan yang ingin di keluarkan. 5. Lalu output dapat dikeluarkan sesuai kebutuhan. 3. Algoritmanya : 1. Mulai 2. Baca desimal 3. Desimal=desimal div 2 4. Sisa= desimal mod 2 5. d= d*2 6. biner= biner + sisa * d sebelumnya 7. jika desimal 0 pergi ke 9 8. pergi ke 3 9. cetak biner 10.selesai 4. Algoritmanya : 1. Input 4 data : nama, status kerja, masa kerja, usia. 2. Jika pilhan Status kerjanya Staff, masa kerja lebih dari 5 tahun dan umur diatas 50 tahun maka mendapatkan bonus sebesar 1.000.000. 3. Selain umur kurang dari 50 tahun dan statusnya Staff maka mendapatkan bonus 300.000 3. Dan jika staf bekerja kurang dari 5 tahun dan berapapun umurnya mendapatkan bonus 500.000 4. Cek status non staff 5. Jika masa kerja lebih dari 5 tahun dan umur lebih dari 50 tahun maka mendapatkan bonus sebesar 400.000 6. Selain non staf berumur kurang dari 50 tahun mendapatkan bonus 250.000 5. Algoritmanya : 1. Masukkan Hari dan jumlah baris 2. Jika Hari minggu, senin, selasa,rabu,kamis, jumat 3. Maka total biayanya, jumlah baris dikalikan 33.000 3. Dan jika hari sabtu 4. Maka total biayanya, jumlah baris dikalikan 40.000 5. Output :Total biaya iklan 6. Algoritmanya : 1. Masukkan data hari dan jumlah tiket. 2. Jika hari = Senin, Selasa, Rabu, Kamis. 3. Maka Total Biaya Tiket = jumlah tiket * 15000 5. Jika hari = Jumat, Sabtu, Minggu dan Libur. 6. Maka Total Biaya Tiket = jumlah tiket * 35000 5. Output Total biaya tiket. 7. Algoritmanya : 1. Masukkan total belanja. 2. Periksa jumlah total belanja. 3. Jika total belanja : a. Rp 150.000 maka diskon 10% b. Rp 275.000 maka diskon 15% c. Rp 300.000 maka diskon 20% d. Rp 400.000 maka diskon 25% 4. Hitung nilai diskon = total belanja * diskon 5. Hitung nilai yang harus dibayar = nilai total belanja - nilai diskon. 6. Output: Nilai diskon dan nilai yg harus dibayar. 8. Algoritmanya : 1. Masukkan 5 nilai (nilai tugas1,tugas2,tugas3,UTC,UAC) 2. Hitung nilai rata - rata tugas = nilai tugas1+tugas2+tugas3 / 3. 3. Lalu hitung semua nilai : Nilai=((rata-rata tugas*30%)+(UTC*30%)+(UAC*40%)) 4. Seleksi nilai akhir. 5. 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 Output : hasil nilai akhir dan hasil seleksi nilai huruf 9. Algoritmanya : 1. Masukkan Jumlah Pemakaian Air. 2. 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)) 3. Output :Biaya Total 10. Algoritmanya : Inisialisasi variabel string pemakaian •Inisialisasi variabel integer pemakaian1=0 •Inisialisasi variabel integer pemakaian2=0 •Inisialisasi variabel integer pemakaian3=0 •Inisialisasi variabel integer pemakaian4=0 •Inisialisasi variabel integer cash_back_total=0 •Ambil input user untuk memasukkan jumlah pemakaian Kartu Kredit •Masukkan ke variabel string pemakaian •Jika panjang inputan string pemakaian lebih dari 0, atau dengan kata lain user telah menginputkan value - Ubah input string pemakaian menjadi bilangan dengan nama variabel int jml_pemakaian - Memberikan nilai default pada variabel pemakaian1 dengan, pemakaian1= 1000.000 - Jika nilai pada variabel jml_pemakaian <= 1.000.000 Memberikan nilai pada variabel pemakaian1 dengan, pemakaian1= jml_pemakaian - Atau jika nilai pada variabel jml_pemakaian > 1.000.000, dan nilai pada variabel jml_pemakaian <= 10.000.000 Memberikan nilai pada variabel pemakaian1 dengan, pemakaian1= 1.000.000 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 Memberikan nilai pada variabel pemakaian2 dengan, pemakaian2= 10.000.000 Memberikan nilai pada variabel pemakaian3 dengan, pemakaian3= jml_pemakaian – 25.000.000 - Atau jika nilai pada variabel jml_pemakaian > 25.000.000 Memberikan nilai pada variabel pemakaian2 dengan, pemakaian2= 10.000.000 Memberikan nilai pada variabel pemakaian3 dengan, pemakaian3= 25.000.000 Memberikan nilai pada variabel pemakaian4 dengan, pemakaian4= jml_pemakaian – 25.000.000 - Memberikan nilai pada variabel cash_back_total dengan, cash_back_total= (pemakaian1*5/100)+(pemakaian2*6/100)+(pemakaian3*7/100)+(pe makaian4*8/100) - Cetak output dengan format, "Seorang nasabah yang total selama sebulan "+jml_pemakaian+", maka total cash backnya= "+cash_back_total •Atau Jika panjang inputan tidak lebih dari 0, atau dengan kata lain user belum menginputkan value - Cetak output “Ada salah satu masukan yang kosong” - Stop proses FLOWCHART Flowchart untuk mencari sisi miring dari suatu segitiga siku-siku Flowchart untuk menampilkan banyaknya pecahan uang paling efisien dari sejumlah uang yang di inputkan oleh pengguna. Flowchart untuk mengkonversi bilangan dalam format desimal menjadi biner. 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. Flowchartnya Adalah? Flowchart untuk menghitung total biaya iklan baris yang harus dibayar oleh pengiklan.   Flowchart untuk menghitung total biaya tiket Buatlah algoritma untuk menghitung berapa nilai yang harus dibayar oleh pelanggan dengan total nilai belanja tertentu bila disertakan pula perhitungan diskonnya.   Flowchart untuk menghitung nilai, dan konversi menjadi nilai huruf Flowchart untuk menghitung Tarif PDAM Surabaya   Flowchart menghitung cash back yang diterima nasabah berdasarkan nilai pemakaian kartu kredit. SOURCE CODE & OUTPUT Output dari Source Code Diatas Adalah   Output Program : Result: RESULT:   RESULT :   RESULT :   RESULT:     RESULT :   RESULT :   REFERENSI Nazruddin Safaat H. 2011. Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android. Informatika. Bandung Avestro, Joyce. (2007). Pengembangan Perangkat Mobile : Java Education Network Indonesia (JENI) Bambang Hariyanto, “Esensi-esensi Bahasa Pemrograman Java”, Informatika, Bandung, 2005. Sinaga B.L, “Pemrograman Berorientasi Objek dengan Java”, Gava Media, Yogyakarta, 2004. Rangsang Purnama, “Tuntunan Pemrograman Java Jilid 3”, Prestasi Pustaka, Jakarta, 2005. Prasetyo D.D, “Solusi Membuat Aplikasi Java dengan Java Studio”, Elex Media Komputindo, Jakarta, 2004. Ian Leonardo, “Pemrograman Database dengan Java”, Elex Media Komputindo, Jakarta, 2004.

Kamis, 19 September 2013

cara menyelesaikan games logika tertentu


Laporan Hasil Praktikum Modul I (Satu)
Hasil laporan modul I Dasar pemrograman
1.  Memindah air
a.   Mengambil sebuah gelas kosong diberi label C
b.  Tuangkan air di gelas B ke gelas C
c.   Pindahkan air pada gelas A ke gelas B
d.  Pindahkan air B pada gelas C ke gelas A

2.  Water jars
a.   Isi penuh ember 3 liter dengan air (ember 3 liter berisi 3 liter air)
  1. Tuangkan air dari ember 3 liter ke dalam ember air 5 liter (ember 5 liter,sekarang berisi 3 liter air)
  2. Isi penuh kembali ember ember 3 liter dengan air (ember 3 liter berisi 3 liter air)
  3. tuangkan air dari ember 3 liter kedalam ember 5 liter hingga penuh (di dalam ember 3 liter sekarang tersisa 1 liter air)
  4. Buang seluruh air dari ember 5 liter air (ember 5 liter kosong)
  5. 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)
  6. Isi penuh ember 3 liter dengan air (ember 3 liter berisi air 3 liter)
  7. 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 ke sisi 1
c.   Gunakan orang nomor 6 dan nomor 1 menuju sisi 2, dan orang nomor 1 dan nomor 6 tinggal di sisi 2 sedangkan orang nomor 3 kembali ke 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

4.  Gunakan orang nomor 1 dan nomor 3 menuju sisi 2 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 ke tepi 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 kembali ke tepi A
d.  K3 turun dari perahu, digantikan R1 dan R2 menuju tepi B, dan R1 dan R2 tinggal di tepi B sedangkan K1 kembali ke tepi A K1 dan K2 naik perahu menuju tepi B, dan K2 tinggal di tepi B sedangkan K1 kembali ke tepi A
e.   K1 dan K3 naik perahu menuju tepi B, lalu K1 dan K3 sama-sama turun di tepi B

5.  Wolf game
a.   Permisalan, tepi asal sebagai tepi A dan tepi tujuan sebagai tepi B
b.  Pertama, pak tani membawa kambing terlebih dahulu dari tepi A ke tepi B
c.   Setelah itu, pak tani membawa rumput dari tepi A ke tepi B, tapi membawa kembali kambing yang di tepi B kembali ke tepi A
d.  Kemudian, pak tani meninggalkan kambing di tepi A dan membawa anjing ke tepi B
e.   Terakhir, pak tani menjemput kambing yang tadi ditinggalkan di tepi A dibawa ke tepi B