Modul Logika & Algoritma
Modul Logika & Algoritma
KATA PENGANTAR
Puji syukur ke hadirat Tuhan Yang Maha Kuasa, yang telah memberikan rahmatNya sehingga Modul Praktikum Logika & Algoritma untuk mahasiswa/i Jurusan Manajemen (MI) Informatika dan Komputer akuntansi (KA) diselesaikan dengan sebaik-baiknya. Stmik Kharisma Karawang ini dapat
Modul praktikum ini dibuat sebagai pedoman dalam melakukan kegiatan praktikum Logika & Algoritma yang merupakan kegiatan penunjang mata kuliah Logika & Algoritma pada Jurusan MI & KA. Modul praktikum ini diharapkan dapat membantu mahasiswa/i dalam mempersiapkan dan melaksanakan praktikum dengan lebih baik, terarah, dan terencana. Pada setiap topik telah ditetapkan tujuan pelaksanaan praktikum dan semua kegiatan yang harus dilakukan oleh mahasiswa/i serta teori singkat untuk memperdalam pemahaman mahasiswa/i mengenai materi yang dibahas.
Penyusun menyakini bahwa dalam pembuatan Modul Praktikum Logika & Algoritma ini masih jauh dari sempurna. Oleh karena itu penyusun mengharapkan kritik dan saran yang membangun guna penyempurnaan modul praktikum ini dimasa yang akan datang. Akhir kata, penyusun mengucapkan banyak terima kasih kepada semua pihak yang telah membantu baik secara langsung maupun tidak langsung.
Dedih, M. Kom
DAFTAR ISI
Judul Kata Pengantar Daftar Isi Modul 1 Modul 2 Modul 3 Modul 4 Modul 5 Modul 6 Modul 7 Modul 8 Modul 9 Modul 10 Modul 11 Modul 12 Modul 13 Modul 14 Pengenalan Algoritma dan Java dengan NetBeans Tipe Data dan Variabel Operator Statemen If Statemen Switch Statemen Perulangan Statemen Peloncatan Method Tanpa Parameter Method dengan Parameter Array / Larik Array / Larik Multidimensi Kelas dan Obyek Rekursi Input Data Melalui Keyboard
i ii iii 1 11 20 24 27 31 35 39 43 48 53 57 60 64
1.1
TUJUAN Mahasiswa memahami tentang dasar-dasar Algoritma pemrograman dan mengimplementasikan program sederhana dengan NetBeans 6.5
1.2
Teori Singkat
1. 2.1 Algoritma Algoritma adalah urutan aksi-aksi yang dinyatakan dengan jelas dan tidak rancu untuk memecahkan suatu masalah dalam rentang waktu tertentu. Setiap aksi harus dapat dikerjakan dan mempunyai efek tertentu. Algoritma dapat dituliskan dengan banyak cara, mulai dari menggunakan bahasa alami yang digunakan sehari-hari, simbol grafik bagan alir, sampai menggunakan bahasa pemograman seperti Java.
1. 2.2 Java Java adalah bahasa pemrograman yang berorientasi objek (OOP) dan dapat dijalankan pada berbagai platform sistem operasi. Perkembangan Java tidak hanya terfokus pada satu sistem operasi, tetapi dikembangkan untuk berbagai system operasi dan bersifat open source. Mulanya bahasa yang diciptakan diberi nama Oak oleh James Gosling yang
mendapat inspirasi dari sebuah pohon yang berada pada seberang kantornya, namun dikarenakan nama Oak sendiri merupakan nama bahasa pemrograman yang telah ada sebelumnya, kemudian SUN menggantinya dengan JAVA. Nama JAVA sendiri terinspirasi pada saat mereka sedang menikmati secangkir kopi di sebuah kedai kopi yang kemudian dengan tidak sengaja salah satu dari mereka menyebutkan kata JAVA yang mengandung arti asal bijih kopi. Akhirnya mereka sepakat untuk memberikan nama bahasa pemrograman tersebut dengan nama Java.
1.2.3 Java Virtual Machine (JVM) JVM adalah sebuah mesin imajiner (maya) yang bekerja dengan menyerupai aplikasi pada sebuah mesin nyata. JVM menyediakan spesifikasi hardware dan platformdimana kompilasi kode Java terjadi. Spesifikasi inilah yang membuat aplikasi berbasis Java menjadi bebas dari platform manapun karena proses kompilasi diselesaikan oleh JVM. Aplikasi program Java diciptakan dengan file teks berekstensi .java. Program ini dikompilasi menghasilkan satu berkas bytecode berekstensi .class atau lebih. Bytecode adalah serangkaian instruksi serupa instruksi kode mesin. Perbedaannya adalah kode mesin harus dijalankan pada sistem komputer dimana kompilasi ditujukan, sementara bytecode berjalan pada java interpreter yang tersedia di semua platform sistem komputer dan sistem operasi.
1.2.4 Garbage Collection Banyak bahasa pemrogaman lain yang mengijinkan seorang programmer
mengalokasikan memori pada saat dijalankan. Namun, setelah menggunakan alokasi memori tersebut, harus terdapat cara untuk menempatkan kembali blok memori tersebut supaya program lain dapat menggunakannya. Dalam C, C++ dan bahasa lainnya, adalah programmer yang mutlak bertanggung jawab akan hal ini. Hal ini dapat menyulitkan bilamana programmer tersebut alpa untuk mengembalikan blok memori sehingga menyebabkan situasi yang dikenal dengan nama memory leaks. Program Java melakukan garbage collection yang berarti program tidak perlu menghapus sendiri objekobjek yang tidak digunakan lagi. Fasilitas ini mengurangi beban pengelolaan memori oleh programmer dan mengurangi atau mengeliminasi sumber kesalahan terbesar yang terdapat pada bahasa yang memungkinkan alokasi dinamis.
1.2.5 Code Security Code Security terimplementasi pada Java melalui penggunaan Java Runtime Environment (JRE). Java menggunakan model pengamanan 3 lapis untuk melindungi sistem dari untrusted Java Code. 1. Pertama, class-loader menangani pemuatan kelas Java ke runtime interpreter. Proses ini menyediakan pengamanan dengan memisahkan kelas kelas yang berasal dari local disk dengan kelaskelas yang diambil dari jaringan. Hal ini membatasi aplikasi Trojan karena kelaskelas yang berasal dari local disk yang dimuat terlebih dahulu.
2. Kedua, bytecode verifier membaca bytecode sebelum dijalankan dan menjamin bytecode memenuhi aturanaturan dasar bahasa Java. 3. Ketiga, manajemen keamanan menangani keamanan tingkat aplikasi dengan mengendalikan apakah program berhak mengakses sumber daya seperti sistem file, port jaringan, proses eksternal dan sistem windowing. Setelah seluruh proses tersebut selesai dijalankan, barulah kode program di eksekusi.
1.2.6 Fase fase Pemrograman JAVA Gambar dibawah ini menjelaskan aliran proses kompilasi dan eksekusi sebuah program Java :
Gambar 2.1: Fase dari sebuah Program Java Langkah pertama dalam pembuatan sebuah program berbasis Java adalah menuliskan kode program pada text editor. Contoh text editor yang dapat digunakan antara lain : notepad, Jcreator, emacs dan lain sebagainya. Kode program yang dibuat kemudian tersimpan dalam sebuah berkas berekstensi .java. Setelah membuat dan menyimpan kode program, kompilasi file yang berisi kode program tersebut dengan menggunakan Java Compiler. Hasil dari kompilasi berupaberkas bytecode dengan ekstensi .class. Berkas yang mengandung bytecode tersebut kemudian akan dikonversikan oleh Java Interpreter menjadi bahasa mesin sesuai dengan jenis dan platform yang digunakan. PROSES Menulis kode program Kompilasi program J Menjalankan programJava TOOL Text editor Java Compiler Berkas Interpreter HASIL Berkas berekstensi .java berekstensi .class (Java Bytecodes) Program Output
1.3. LANGKAH-LANGKAH MENULISKAN PROGRAM JAVA DENGAN NETBEANS IDE 6.5 Langkah Langkah praktikum : 1. Pilih Start Program NetBeans IDE 6.5 2. Anda akan peroleh tampilan awal sebagai berikut :
3. Pilih menu File 4. Pilih sub menu New Project. Akan muncul layar sebagai berikut :
5. Pilih Java lalu Java Application klik Next 6. Ketik Modul_praktikum_logika pada Project Name lalu klik Finish seperti gambar tampilan sbb :
8. Klik Kanan pada Modul_praktikum_logika pilih New lalu pilih Java Class seperti tampilan berikut :
9. Lalu Ketik Hello pada Class Name dan pilih tombol Finish
Diketik
11. Ketiklah kode berikut di bawah public class Hello {: public static void main(String[] args) { System.out.println("Belajar Algoritma"); } 12. Lakukan kompilasi program dengan memilih menu Run> Clean and Build Project (Shift +F11) dan jalankan program dengan memilih menu Run>Run File (Shift +F6). Akan muncul output seperti di bawah ini :
Latihan : Coba Saudara tampilkan Output program seperti dibawah ini dengan nama program mahasiswa.java : Mahasiswa STMIK Kharisma Karawang NPM Nama : isi dengan NPM anda sendiri : isi dengan Nama Anda sendiri
2.1 Tipe Data Java memiliki tipe data yang dapat dikategorikan menjadi dua kelompok, yaitu tipe data primitif dan referensi. 1. Tipe Data Primitif Delapan macam tipe data primitif dalam pemrograman Java, yaitu : a. Integer ( Bilangan Bulat ) Integer merupakan tipe data numerik yang digunakan apabila tidak berurusan dengan pecahan atau bilangan desimal. Tipe data numerik yang termasuk integer adalah sebagai berikut : Tipe Byte Short Int Long Deskripsi Memiliki nilai integer dari -128 sampai +127 dan menempati 1 byte ( 8 bits ) di memori Memiliki nilai integer dari -32768 sampai 32767 dan menempati 2 bytes ( 16 bits ) di memori Memiliki nilai integer dari -2147483648 sampai 2147483647 dan menempati 4 bytes ( 32 bits ) di memori Memiliki nilai dari -9223372036854775808 sampai 9223372036854775807 dan menempati 8 bytes ( 64 bits ) di memori
b. Floating Point ( Bilangan Pecahan ) Floating Point digunakan untuk menangani bilangan decimal atau perhitungan yang lebih detail dibanding integer. Ada dua macam floating point, yaitu : Tipe Float Double Deskripsi memiliki nilai -3.4x108 sampai +3.4x108 dan menempati 4 byte di memori memiliki nilai -1.7x10308 sampai +1.7x10308
c. Char Char adalah karakter tunggal yang didefinisikan dengan diawali dan diakhiri dengan tanda ( petik tunggal ). Char berbeda dengan String, karena String bukan merupakan tipe data
primitif, tetapi sudah merupakan sebuah objek. Tipe char mengikuti aturan unicode, sehingga dapat menggunakan kode /u kemudian diikuti bilangan dari 0 sampai 65535, tetapi yang biasa digunakan adalah bilangan heksadesimal dari 0000 sampai FFFF. Misalnya : \u123 Selain karakter biasa, juga terdapat karakter khusus yang didefinisikan dengan cara mengawalinya menggunakan tanda \ seperti pada tabel berikut : Kode \b \t \n \r \* \ \\ d. Boolean Dalam Java dikenal tipe data boolean yang terdiri dari dua nilai saja, yaitu true dan false. Boolean sangat penting dalam mengevaluasi suatu kondisi, dan sering digunakan untuk menentukan alur program. Nama Backspace tab linefeed Carriage return Double quote Single quote Backslash Nilai Unicode \u0008 \u0009 \u000a \u000d \u0022 \u0027 \u005c
2.2 Variabel Variabel merupakan container yang digunakan untuk menyimpan suatu nilai pada sebuah program dengan tipe tertentu. Untuk mendefinisikan variabel, kita dapat menggunakan identifier untuk menamai variabel tersebut. 2.2.1 Identifier Identifier adalah kumpulan karakter yang dapat digunakan untuk menamai variabel, method, class, interface, dan package. Sebagaimana bahasa pemrograman pada umumnya, Java memiliki peraturan untuk identifier yang valid atau sah. Identifier bisa disebut valid atau sah apabila diawali dengan : Huruf / abjad Karakter mata uang Underscore ( _ ) Identifier dapat terdiri dari : Huruf / abjad Angka Underscore ( _ ) Identifier tidak boleh mengandung @, spasi atau diawali dengan angka. Selain itu, identifier tidak boleh menggunakan keyword atau kata-kata yang memiliki arti atau digunakan dalam pemrograman Java. Daftar Keyword Java : abstract boolean double else int static strictfp super
Extends long switch final native synchronized finally new this float package throw for private throws goto protected transient if public try implements return void import short volatile instanceof interface while
2.2.2 Mendeklarasikan Variabel Sintaks dasar : [tipe data] [nama variabel] Menuliskan tipe data dari variabel, contoh : int bilangan; char karakter; float bildesimal; boolean status; Setelah mendeklarasikan variabel dengan tipe data, selanjutnya memberikan nilai variabel tersebut dengan tanda = . bilangan = 20; karakter = k; bildesimal = 22.2f; status = true;
2.3 Latihan Praktikum : Nama file1 : ContohPerhitungan.java class ContohPerhitungan { public static void main(String[] args) { byte a = 1; short b = 2; int c = 3, d; d = a + b + c; System.out.println("Hasil = " + d); } }
Nama file2 : DemoKarakter1.java class DemoKarakter1 { public static void main(String[] args) { char ch1 = 65; char ch2 = 'B';
Tugas Buatlah program untuk menghitung luas : 1. Segitiga 2. Lingkaran 3. Bujur sangkar 4. Empat Persegi Pajang
MODUL 3 OPERATOR
3.1 Tujuan Mahasiswa memahami tentang operator dan penggunaannya dalam bahasa pemrograman java, mengetahui macam-macam kategori operator dan mengetahui perbedaan operator satu dengan yang lainnya 3.2 Teori Singkat Dalam Java, ada beberapa tipe operator. Ada operator aritmatika, operator relasi, operator logika, dan operator kondisi. Operator ini mengikuti bermacam-macam prioritas yang pasti sehingga Compilernya akan tahu yang mana operator untuk dijalankan lebih dulu dalam kasus beberapa operator yang dipakai bersama-sama dalam satu pernyataan. Operator Java merupakan karakter khusus yang berupa simbol atau tanda yang memerintahkan compiler untuk melakukan berbagai operasi terhadap sejumlah operand. Perintah operasi dispesifikasikan oleh operator, dimana operand-nya adalah variabel, pernyataan, atau besaran literal. Operator yang dibahas pada bagian ini adalah operator aritmatika, increment dan decrement, assignment (penugasan), relasi, logical, dan bitwise. A. Operator Aritmatika Sama halnya dengan semua bahasa pemrograman, Java menyediakan operator-operator aritmatika untuk manipulasi variabel data numerik. Operator-operator tersebut antara lain : Operator + * / % Penggunaan Op1 + Op2 Op1 Op2 Op1 * Op2 Op1 / Op2 Deskripsi Menambahkan Op1 dengan Op2 Mengurangkan Op1 dengan Op2 Mengalikan Op1 dengan Op2 Membagi Op1 dengan Op2
Nama file : Aritmatika.java class Aritmatika{ public static void main(String[] args) { int a = 20; int b = 10; System.out.println("Penggunaan Operator Aritmatika "); System.out.println("Nilai awal a adalah : "+a);
System.out.println("Nilai awal b adalah : "+b); System.out.println("Hasil dari a + b = " +(a + b)); System.out.println("Hasil dari a - b = " +(a - b)); System.out.println("Hasil dari a / b = " +(a / b)); System.out.println("Hasil dari a * b = " +(a * b)); System.out.println("Hasil dari a % b = " +(a % b)); } } B. Operator Increment dan Decrement Operator Increment dan Decrement digunakan untuk menaikan atau menurunkan suatu nilai integer (bilangan bulat) sebanyak satu satuan, dan hanya dapat digunakan pada variabel. Ada dua versi operator increment maupun decrement, yaitu prefix dan postfix. Prefix berarti operator digunakan sebelum variabel atau ekspresi, dan postfix berarti operator digunakan sesudahnya. Penjelasan selengkapnya yaitu: Operator Penggunaan Op++ ++ ++Op Op----Op pada Op Op dinaikkan nilainya 1 sebelum dilakukan operasi pada Op Op diturunkan nilainya 1 setelah dilakukan operasi pada Op Op diturunkan nilainya 1 sebelum dilakukan operasi pada Op Deskripsi Op dinaikkan nilainya 1 setelah dilakukan operasi
Nama file : IncrementDecrement.java class IncrementDecrement{ public static void main (String[] args){ int i = 1; System.out.println("i : " + i); System.out.println("++i : " + ++i); System.out.println("i++ : " + i++); System.out.println("i : " + i); System.out.println("--i : " + --i);
System.out.println("i-- : " + i--); System.out.println("i } } C. Operator Assignment ( 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 : : " + i);
Penggunaan Op1 += Op2 Op1 -= Op2 Op1 *= Op2 Op1 /= Op2 Op1 %= Op2 Op1 &= Op2 Op1 = Op2 Op1 ^= Op2 Op1 <<= Op2 Op1 >>= Op2 Op1 >>>= Op2
Ekuivalen Dengan Op1 = Op1 + Op2 Op1 = Op1 Op2 Op1 = Op1 * Op2 Op1 = Op1 / Op2 Op1 = Op1 % Op2 Op1 = Op1 & Op2 Op1 = Op1 Op2 Op1 = Op1 ^ Op2 Op1 = Op1 << Op2 Op1 = Op1 >> Op2 Op1 = Op1 >>> Op2
Nama file : Assignment.java class Assignment { public static void main(String[] args) { int var = 10; int a,b,c; a = b = c = 100; int d,e,f;
f = 200; e = f;
d = e; System.out.println("Nilai var : " + var); System.out.println("Nilai a : " + a); System.out.println("Nilai b : " + b); System.out.println("Nilai c : " + c); System.out.println("Nilai f : " + f); System.out.println("Nilai e : " + e); System.out.println("Nilai d int z;
char Teks1 = 'a'; // dalam Unicode karakter 'a' direpresentasikan dengan
: " + d);
angka 97 z = Teks1 * 100; // z = 97 * 10; : " + z); System.out.println("Nilai Teks1 : " + Teks1); System.out.println("Nilai z } } D. Operator Relasi Operator relasi dalam Java digunakan untuk menghasilkan nilai boolean yang sering digunakan untuk mengatur alur jalannya sebuah program. Operator Penggunaan > < >= Op1 > Op2 Op1 < Op2 Op1 >= Op2 Deskripsi Menghasilkan true jika Op1 lebih besar dari Op2 Menghasilkan true jika Op1 lebih kecil dari Op2 Menghasilkan true jika Op1 lebih besar atau sama dengan Op2 <= == != Op1 <= Op2 Op1 == Op2 Op1 != Op2 Menghasilkan true jika Op1 lebih kecil atau sama dengan Op2 Menghasilkan true jika Op1 sama dengan Op2 Menghasilkan true jika Op1 tidak sama dengan Op2
Nama file: Relasi.java class Relasi{ public static void main(String[] args) { int x,y,z;
x = 100; y = 99; z = 99;
System.out.println("Nilai x = "+x); System.out.println("Nilai y = "+y); System.out.println("Nilai z = "+z); // operator sama dengan if(y == z ){ System.out.println("y sama dengan z"); }else { System.out.println("y tidak sama dengan z"); } // operator tidak sama dengan if(x != y ){ System.out.println("x tidak sama dengan y"); }else { System.out.println("x sama dengan y"); } // operator lebih besar dari if(x > y ){ System.out.println("x lebih besar dari y"); }else { System.out.println("x lebih kecil dari y"); } // operator lebih kecil dari if(y < x ){ System.out.println("y lebih kecil dari x"); }else { System.out.println("y lebih besar dari x"); } // operator lebih besar dari atau sama dengan if(x >= y ){ System.out.println("x lebih besar dari atau sama dengan y"); }else { System.out.println("x lebih kecil dari atau sama dengany"); } // operator lebih kecil dari atau sama dengan if(y <= x ){
System.out.println("y lebih kecil dari atau sama dengan x"); }else { System.out.println("y lebih besar dari atau sama dengan x"); } } } E. Operator Logical Operator ini digunakan untuk ekspresi logik yang menghasilkan nilai boolean. Operator-operator yang digunakan adalah AND ( && ), OR ( ) dan NOT ( ! ). A True True False False True False True False B True True True False A B A && B True False False False
Nama file : logik.java class logik{ public static void main(String[] args) { boolean Benar = true;
boolean Salah = false; System.out.println("Hubungan OR (||)");
System.out.println("Benar || Benar : " +(Benar||Benar)); System.out.println("Benar || Salah : " +(Benar||Salah)); System.out.println("Salah || Benar : " +(Salah||Benar)); System.out.println("Salah || Salah : " +(Salah||Salah)); System.out.println("Hubungan AND (&&)"); System.out.println("Benar && Benar : " +(Benar&&Benar)); System.out.println("Benar && Salah : " +(Benar&&Salah)); System.out.println("Salah && Benar : " +(Salah&&Benar)); System.out.println("Salah && Salah : " +(Salah&&Salah)); System.out.println("Hubungan NOT (!)"); System.out.println("Kebalikan
(NOT) dari Benar adalah: " +!Benar); System.out.println("Kebalikan (NOT) dari Salah adalah: " +!Salah); } } F. Operator Bitwise Operator ini dalam Java digunakan untuk melakukan manipulasi bit. Operator & ^ ~ << >> >>> Penggunaan Op1 & Op2 Op1 Op2 Op1 ^ Op2 ~Op Op1 << Op2 Op1 >> Op2 Op1 >>> Op2 Bitwise AND Bitwise OR Bitwise XOR Bitwise Complement Menggeser bit Op1 ke kiri sejauh Op2 Menggeser bit Op1 ke kanan sejauh Op2 Geser kanan tanpa mempertahankan sign (dengan nilai 0 sebagai pengisi bit paling kiri) 1. Bitwise AND Bitwise AND akan menghasilkan bit 1, jika kedua operator bernilai bit 1. Operasi bitwise AND dapat digambarkan sebagai berikut : Op1 0 0 1 1 2. Bitwise OR Bitwise OR akan menghasilkan bit 1, jika salah satu operator bernilai bit 1. Operasi bitwise OR dapat digambarkan sebagai baerikut : Op1 0 0 Op2 0 1 Op1 Op2 0 1 Op2 0 1 0 1 Op1 & Op2 0 0 0 1 Deskripsi
0 1
1 1
Bitwise XOR akan menghasilkan bit 1, jika kedua operator memiliki nilai bit yang berbeda. Operasi bitwise XOR dapat digambarkan sebagai berikut : Op1 0 0 1 1 4. Bitwise Complement Bitwise Complement akan menghasilkan bit yang berlawanan dengan bit yang dioperasikan. Operasinya dapat digambarkan sebagai berikut : Op 0 1 Nama file : Bitwise.java class Bitwise{ public static void main(String[] args) { int x,y; x = ~100; System.out.println("Nilai negasi x : "+x); x = 17 & 30; System.out.println("Nilai and : "+x); x = 17 | 30; System.out.println("Nilai or : "+x); x = 17 ^ 30; System.out.println("Nilai xor : "+x); x = 111; y = x >> 1; System.out.println("Nilai geser kanan : "+x); x = -111; y = x >> 1; System.out.println("Nilai geser kanan neg : "+x); x = 111; y = x >>> 1; Op 1 0 Op2 0 1 0 1 Op1 ^ Op2 0 1 1 0
System.out.println("Nilai geser kanan 1 bit 0 : "+x); x = -111; y = x >>> 1; System.out.println("Nilai geser kanan 1 bit 0 neg : "+x); x = 111; y = x << 1; System.out.println("Nilai geser kiri : "+x); x = 1000; y = x << 1; System.out.println("Nilai geser kiri : "+x); } }
MODUL 4 STATEMENT IF 4.1 Tujuan Mahasiswa dapat memahami pernyataan seleksi dalam java dengan menggunakan IF dan dapat menyelesaikan masalah yang berkaitan dengan seleksi IF baik dalam pemrograman maupun dalam algoritma.
4.2 Dasar Teori Struktur kontrol digunakan untuk mengatur jalannya alur program sesuai dengan yang kita inginkan. Statemen kontrol dikategorikan menjadi pemilihan, pengulangan, dan statemen peloncatan. 4.2 Statemen Pemilihan Pemilihan digunakan untuk menentukan statemen mana yang akan dieksekusi tergantung dari ekpresi atau kondisi yang dikondisikan. Java menyediakan dua buah ekpresi untuk pemilihan yaitu if dan switch. Kedua statemen tersebut digunakan untuk mengontrol eksekusi statemen tergantung dari yang ditentukan sebelumnya. 4.2.1 Statemen If Statemen if digunakan untuk menangani pencabangan atau pemilihan statemen yang didasarkan atas satu, dua, atau lebih dari dua kondisi. 4.2.1.1 If dengan Satu Kondisi Dalam java bentuk umum penulisan statemen if untuk satu kondisi sebagai berikut : // apabila hanya terdiri dalam satu statemen If (kondisi) statemen //apabila lebih dari dua statemen If (kondisi) { Statemen Statemen ............. } Berikut ini contoh program : Nama file1 : DemoIfSatuKondisi1.java
class DemoIfSatuKondisi1 { public static void main(String[] args) { int a=1, b=10; if (a < 5) { System.out.println("Nilai a lebih kecil dari 5"); } if (b < 5) { System.out.println("Nilai b lebih kecil dari 5"); } } }
Nama file2 : DemoIfSatuKondisi3.java class DemoIfSatuKondisi3 { public static void main(String[] args) { int tahun = 2008; if ((tahun % 4 == 0) && ((tahun % 100 != 0) || (tahun % 400 == 0))) { System.out.println("Tahun " + tahun + " merupakan tahun kabisat."); } } }
4.2.1.2 If dengan Dua Kondisi Pada bentuk ini program menyediakan kondisi tambahan untuk menangani kejadian yang kondisi pertamanya tidak terpenuhi atau bernilai false. Adapun bentuk umumnya sbb; // Apabila terdiri dari satu statemen If (kondisi) Statemen jika kondisi benar Else Statemen jika kondisi salah // Apabila terdiri dua buah statemen atau lebih If (kondisi) { //Statemen dilakukan jika kondisi benar Statemen
Statemen ............. } Else { //Statemen dilakukan jika kondisi salah Statemen Statemen ............. } Berikut ini contoh program : Nama file1 : DemoIfDuaKondisi2.java class DemoIfDuaKondisi2 { public static void main(String[] args) { char ch = 'B'; if (ch == 'a' || ch == 'A' || ch == 'i' || ch == 'I' || ch == 'u' || ch == 'U' || ch == 'e' || ch == 'E' || ch == 'o' || ch == 'O') { System.out.println(ch + " adalah huruf vokal."); } else { System.out.println(ch + " adalah huruf mati (konsonan)."); } } }
4.2.1.3 If dengan Tiga Kondisi atau Lebih Struktur pemilihan jenis ini merupakan pengembangan dari jenis sebelumnya. Di sini statemen if memiliki lebih dari dua kondisi. Adapun bentuk umumnya sbb : // Apabila terdiri dari satu statemen If (kondisi1) Statemen jika kondisi1 benar Else if (kondisi2) Statemen jika kondisi1 salah Else Statemen jika kondisi1 dan kondisi2 salah // Apabila terdiri dua buah statemen atau lebih If (kondisi1) { //Statemen dilakukan jika kondisi1 benar Statemen1 Statemen2 ............. } Else if(kondisi2) {
//Statemen dilakukan jika kondisi1 salah Statemen1 Statemen2 ............. } Else { //Statemen dilakukan jika kondisi1 dan kondisi2 salah Statemen1 Statemen2 ............. } Berikut ini contoh program : Nama file1 : DemoIfTigaKondisi1.java class DemoIfTigaKondisi1 { public static void main(String[] args) { int bilangan = 4; if (bilangan < 0) { System.out.println(bilangan + " merupakan bilangan NEGATIF."); } else if (bilangan == 0) { System.out.println("Nilai yang dimasukkan adalah NOL"); } else { // (bilangan > 0) System.out.println(bilangan + " merupakan bilangan POSITIF."); } } }
TUGAS
1. Buatlah program yang memberikan grade untuk nilai dengan ketentuan sbb : nilai > 90 grade = A 80 < nilai <= 90 grade = B 70 < nilai <= 80 grade = C 60 < nilai <= 70 grade = D nilai <= 60 grade = E 2. Buatlah program yang dapat menampilkan jumlah hari pada bulan tertentu dan tahun tertentu.
MODUL 5 STATEMENT SWITCH 5.1 Tujuan Mahasiswa dapat menyelesaikan masalah yang berkaitan dengan seleksi, dengan menggunakan pernytaan switch.
5.2 Teori Dasar Statemen switch merupakan statemen alternatif untuk melakukan pemilihan statemen dan digunakan untuk menyederhanakan kekompleksitasan statemen if yang banyak mengandung kondisi. Adapun bentuk umumnya sbb : switch( switch_expression ){ case case_selector1: statement1; // statement2; //block 1 . . . // break; case case_selector2: statement1; // statement2; //block 2 . . . // break; ... default: } statement1; // statement2; //block n . . . // break; switch_expression adalah ekspresi integer atau karakter dan case_selector1, case_selector2 dan seterusnya adalah konstanta unik dari nilai integer atau karakter. Ketika pernyataan switch ditemukan pada potongan kode program, java pertama kali akan memeriksa switch_expression, dan menuju ke case yang akan menyamakan nilai yang dimiliki oleh switch_expression. Selanjutnya program akan mengeksekusi pernyataan pada dari kode setelah case yang ditemukan sampai menemui pernyataan break, selanjutnya akan mengabaikan pernyataan yang lainnya hingga akhir dari struktur dari pernyataan switch. Jika tidak ditemui case yang cocok, maka program akan mengeksekusi blok default.Sebagai catatan, bahwa bagian blok default adalah opsional. Sebuah pernyataan switch bisa jadi tidak memiliki blok kode default. CATATAN: Tidak seperti pada pernyataan if, beberapa pernyataan pada struktur pernyataan switch akan dieksekusi tanpa memerlukan tanda kurung kurawal ({}).
Ketika sebuah case pada pernyataan switch menemui kecocokan, semua pernyataan pada case tersebut akan dieksekusi. Tidak hanya demikian, pernyataan lain yang berada pada case yang sesuai juga akan dieksekusi. Untuk menghindari program mengeksekusi pernyataan pada case berikutnya, kita menggunakan pernyataan break sebagai pernyataan akhir pada setiap blok case.
Berikut ini contoh program : Nama file1 : DemoSwitch3 .java class DemoSwitch3 { public static void main(String[] args) { int a=2; int b; switch(a) { case 1: b = a + 1; case 2: b = a + 2; case 3: b = a + 3; case 4: b = a + 4; case 5: b = a + 5; default: b = 0; } System.out.println("Nilai b: " + b); } }
Nama file2 : DemoSwitch4 .java class DemoSwitch4 { public static void main(String[] args) { int a=2; switch(a) { case 1: System.out.println("Pilihan pertama"); case 2: System.out.println("Pilihan kedua"); case 3: System.out.println("Pilihan ketiga"); case 4: System.out.println("Pilihan keempat"); case 5: System.out.println("Pilihan kelima"); default: System.out.println("Pilihan default"); } } }
Nama file : DemoSwitch5 .java class DemoSwitch5 { public static void main(String[] args) { boolean b = true; switch (b) { case true: System.out.println("Pilihan TRUE"); case false: System.out.println("Pilihan FALSE"); } } }
TUGAS 1. Buatlah program dengan menggunakan pernyataan switch untuk memilih Tunggangan yang akan dipakai ketika berpergian, sbb: - Pilihan 1 Naik Kuda - Pilihan 2 Naik Gerobak Sapi - Pilihan 3 Naik Keledai - Pilihan 4 Naik Onta - Pilihan 5 Naik Gajah Jika tidak ada diantara pilihan 1 5, beri komentar Anda salah Memilih
MODUL 6 STATEMENT PERULANGAN 6.1 Tujuan Mahasiswa dapat menyelesaikan permasalahan dengan menggunakan perulangan, baik for, do..while dan while 6.2 Statemen Pengulangan Pengulangan adalah suatu proses di dalam program yang dapat mengeksekusi satu atau beberapa statemen sama secara berulang sampai ditentukan suatu kondisi untuk berhenti. Dalam java ada tiga jenis struktur pengulangan , yaitu for , while dan do-while. 6.2.1 Struktur For Struktur for pada umumnya digunakan untuk melakukan pengulangan yang banyaknya sudah pasti atau sudah diketahui sebelumnya. Adapun bentuk umumnya sbb : for (InitializationExpression; LoopCondition; StepExpression){ statement1; statement2; ... } Penjelasan : InitializationExpression inisialisasi dari variabel loop. LoopCondition - membandingkan variabel loop pada nilai batas tertentu StepExpression - melakukan update pada variabel loop. Berikut ini adalah contoh dari for loop, int i; for( i = 0; i < 10; i++ ){ System.out.print(i); } Pada contoh ini, pernyataan i=0 merupakan inisialisasi dari variabel. Selanjutnya, kondisi i<10 diperiksa. Jika kondisi bernilai true, pernyataan di dalam for loop dieksekusi. Kemudian, ekspresi i++ dieksekusi, lalu akan kembali pada bagian pemeriksaan terhadap kondisi i<10 lagi. Kondisi ini akan dilakukan berulang-ulang sampai mencapai nilai yang salah (false). Berikut ini contoh program : Nama file1 : DemoFor1 .java class DemoFor1 { public static void main(String[] args) { for (int i=0; i<10; i++) { System.out.println("Kharisma");
} } }
Nama file1 : DemoFor6 .java class DemoFor6 { public static void main(String[] args) { int i,j; for (i=0, j=4; i < 5; i++, j--) { System.out.println("Nilai i: " + i); System.out.println("Nilai j: " + j); System.out.println(); } } }
Tugas
Buatlah Program dengan for dari output dibawah ini : 1. 1. Kharisma 2.Kharisma 3.Kharisma 4.Kharisma 5.Kharisma 4. 1 1 1 2 2 2 3 3 3 3 3 3 2 2 2 1 1 1 2. 5 4 3 2 1 3. 9 6 3 0
5.
1 +2+3+4+5=15
6.2.2 Struktur While Struktur while adalah jenis pengulangan yang mendefenisikan kondisi diawal blok yang berarti apa bila kondisi tidak terpenuhi (bernilai false) maka proses pengulangan pun tidak akan pernah dilakukan . Adapun bentuk umumnya sbb : while( boolean_expression ){ statement1; statement2; ...
} Pernyataan di dalam while loop akan dieksekusi berulang-ulang selama kondisi boolean_expression bernilai benar (true). Contoh, pada kode dibawah ini, class Demowhile{ public static void main(String[] args) { int i = 4; while ( i > 0 ){ System.out.print(i); i--; } Contoh diatas akan mencetak angka 4321 pada layar. Perlu dicatat jika bagian i--; dihilangkan, akan menghasilkan pengulangan yang terus menerus (infinite loop). Sehingga, ketika menggunakan while loop atau bentuk pengulangan yang lain, pastikan Anda memberikan pernyataan yang membuat pengulangan berhenti pada suatu kondisi. Berikut ini contoh program : Nama file : DemoWhile1 .java class DemoWhile1 { public static void main(String[] args) { int i=0; while (i<10) { System.out.println("Java"); i++; } } }
Nama file : DemoWhile3 .java class DemoWhile3 { public static void main(String[] args) { int bilangan=5; // bilangan yang akan dihitung // nilai faktorialnya
int hasil=1; int i=bilangan; System.out.print(bilangan + "! = "); while (i>=1) { System.out.print(i); if (i != 1) {
System.out.print(" x "); } else { System.out.print(" = "); } hasil *= i; // dapat ditulis: hasil = hasil * i; i--; } System.out.println(hasil); } }
Nama file : DemoWhileBersarang .java class DemoWhileBersarang { public static void main(String[] args) { int i=1, j; while (i<=5) { j=1; while (j<=i) { System.out.print(i*j + " "); j++; } System.out.println(); i++; } } }
Tugas
Buatlah Program dengan While dari output dibawah ini : 1. 1. Kharisma 2.Kharisma 3.Kharisma 4.Kharisma 5.Kharisma 4. 1 1 1 2 2 2 3 3 3 3 3 3 2 2 2 1 1 1 2. 5 4 3 2 1 3. 9 6 3 0
5.
1 +2+3+4+5=15
6.2.3 Struktur D0 While Do-while loop mirip dengan while-loop. Pernyataan di dalam do-while loop akan dieksekusi beberapa kali selama kondisi bernilai benar(true). Perbedaan antara while dan do-while loop adalah dimana pernyataan di dalam do-while loop akan dieksekusi sedikitnya satu kali. Bentuk pernyataan do-while, do{ statement1; statement2; ... }while( boolean_expression ); Pernyataan di dalam do-while loop akan dieksekusi pertama kali, dan akan dievaluasi kondisi dari boolean_expression. Jika nilai pada boolean_expression tersebut bernilai true, pernyataan di dalam do-while loop akan dieksekusi lagi. Berikut ini beberapa contoh do-while loop: Nama file : DemodoWhile .java class DemodoWhile{ public static void main(String[] args) {
int x = 0; do { System.out.println(x); x++; }while (x<10); Contoh ini akan memberikan output 0123456789 pada layar.
Nama file1 : ContohDoWhile .java class ContohDoWhile { public static void main(String[] args) { int i=6; do { System.out.println("Saya sedang belajar Java"); i++; } while (i < 5); } }
Nama file : ContohDoWhile .java class DemoDoWhile2 { public static void main(String[] args) { int bilangan=5; // bilangan yang akan dihitung faktorialnya
int hasil=1; System.out.print(bilangan + "! = "); if (bilangan == 0) { System.out.println(hasil); System.exit(1); } int i=bilangan; do { System.out.print(i); if (i != 1) { System.out.print(" x "); } else { System.out.print(" = "); } hasil *= i; // dapat ditulis: hasil = hasil * i; i--; } while (i >= 1); System.out.println(hasil); } }
Nama file : DemoDoWhileBersarang.java class DemoDoWhileBersarang { public static void main(String[] args) { int i=1, j; do { j=1; do { System.out.print(i*j + " "); j++; } while (j<=i); System.out.println(); i++; } while (i<=5); } }
Tugas
Buatlah Program dengan Do - While dari output dibawah ini : 1. 5. Kharisma 4.Kharisma 3.Kharisma 2.Kharisma 1.Kharisma 2. 5 4 3 2 1 3. 9 6 3 0
4. 1 1 1 2 2 2 3 3 3
3 3 3 2 2 2 1 1 1
5.
1 +2+3+4+5=15
7.1 Tujuan Mahasiswa dapat menyelesaikan permasalahan dengan menggunakan peloncatan, baik break, continue dan return. 7.2 Teori Dasar Statemen peloncatan digunakan untuk mengontrol jalannya program, lebih tepatnya untuk memindahkan eksekusi program ke baris kode yang kita kehendaki. Dalam java terdapat 3 buah statemen peloncatan yaitu break, continue dan return. 7.3.1 Menggunakan Break Statemen break memiliki 3 kegunaan yaitu ; 1. Menghentikan runtunan pemilihan pada statemen switch 2. Menghentikan proses pengulangan(keluar dari blok pengulangan) 3. Keluar dari blok label tertentu Nama file : DemoBreak1.java class DemoBreak1 { public static void main(String[] args) { for (int i=0; i<10; i++) { if (i == 5) { break; // keluar dari blok pengulangan } System.out.println("baris ke-" + i); } System.out.println("Statemen setelah blok pengulangan"); } }
7.3.2 Menggunakan Continue Java menyediakan statemen continue untuk memaksa program agar melanjutkan proses pengulangan. Statemen continue merupakan kebalikan dari statemen break. Nama file : DemoContinue.java class DemoContinue { public static void main(String[] args) { for (int i=0; i<10; i++) {
7.3.3 Menggunakan Return Statemen return digunakan untuk keluar dari eksekusi kode program yang terdapat dalam sebuah method. Nama file : DemoReturn.java class DemoReturn { public static void main(String[] args) { int banyak = 0; tulis(banyak); } // Mendefinisikan method tulis() private static void tulis(int n) { if (n < 1) { System.out.println("Nilai i tidak boleh lebih kecil " + "dari 1"); return; // keluar dari method tulis() } // statemen ini tidak akan dilakukan bila n < 1 for (int i=0; i<n; i++) { System.out.println("Baris ke-" + i); } } }
8.1 Tujuan 1. Mahasiswa memahami tentang pengertian sub program 2. Mahasiswa dapat membuat sub program sederhana
8.2 Dasar Teori Method (atau dalam beberapa bahasa pemrograman sering disebut fungsi atau prosedur) adalah sub program yang membiarkan seorang programer untuk membagi program dengan membagi masalah ke dalam beberapa sub masalah yang bisa diselesaikan secara modular. Dengan cara demikian, maka pembuatan program bisa lebih dimanajemen. Kelas (class) adalah program java yang akan dieksekusi. Method ada di dalam kelas. Java mempunyai kumpulan kelas yang sudah dimiliki yang tersimpan di dalam paketpaket. Kumpulan kelas tersebut ada di dalam Java Application Interface (Java API) atau Java class libraries dan beberapa libraries lainnya.
Format Method Secara Umum tipe_return-value nama_method(parameter1, parameter2, , parameterN) { deklarasi dan pernyataan; } Elemen yang diperlukan dari deklarasi method adalah tipe kembalian method, nama, kurung buka dan tutup ( ) dan isi method yang diawali dan diakhiri dengan kurung kurawal buka dan tutup { }. Secara umum, deklarasi method mempunyai 6 komponen, yaitu : 1. Modifier - seperti public, private, dan yang lain yang akan kita pelajari kemudian. 2. Tipe kembalian (return type)tipe data dari nilai yang dikembalikan oleh method, atau void jika method tidak mempunyai nilai kembalian. 3. Nama methodaturan untuk penamaan field diterapkan untuk nama method tetapi kesepakatannya adalah sedikit berbeda.
4. Daftar parameter pemisah antar parameter input adalah koma, diawali oleh tipe datanya, yang diletakkan diantara tkita kurung ( daftar parameter. ). Jika tidak ada parameter, harus menggunakan kurung buka tutup saja ( ). 5. Daftar exceptiontidak akan masuk dalam pembahasan di sini 6. Isi method, diletakkan di antara kurung kurawal buka dan tutup { }kode-kode method, termasuk deklarasi variabel lokal ada di sini.
8.3 PELAKSANAAN PRAKTIKUM Untuk membuat sebuah method, yang pertama kali perlu diperhatikan adalah nama method mempunyai aturan yang sama dengan penamaan variabel. Contoh : Fungsi untuk menampilkan tulisan saja. public class Fungsi1{ public static void garis(){ System.out.println("================"); } public static void main(String args[]){ garis(); } } Keluaran dari program tersebut adalah ================ Method diatas bersifat static dan bertipe void. Method yang bersifat static bisa langsung dipanggil dengan nama methodnya saja. Sebuah method juga bisa dipanggil lebih dari satu kali. 8.4 LATIHAN Tuliskan program berikut : public class Fungsi2 { public static void kalimat() { System.out.println("Di dalam method kalimat"); } public static void main(String args[]) { kalimat(); System.out.println("Di dalam main"); kalimat(); } }
Hasil output Di dalam method kalimat Di dalam main Di dalam method kalimat Program Latihan 2 public class Fungsi3 { public static int jumlah(){ int a = 7, b = 15; return (a + b); } public static void main(String args[]){ System.out.println("Hasil pemanggilan method jumlah"); System.out.println(jumlah()); } } Keluarannya Hasil pemanggilan method jumlah 22 Penggunaan sifat static pada method menyebabkan method tidak perlu dipanggil dengan penciptaan obyeknya. Method main dideklarasikan static agar pada saat penggunaan tidak perlu menciptakan obyeknya. Sebagian method tidak dideklarasikan static. Method yang demikian, bisa dipanggil dengan cara menciptakan obyek class dari method tersebut. public class Fungsi3a{ public int jumlah(){ int a = 7, b = 15; return (a + b); } public static void main(String args[]){ Fungsi3a obyek = new Fungsi3a(); System.out.println("Hasil pemanggilan method jumlah"); System.out.println(obyek.jumlah()); } }
TUGAS Modifikasi program diatas dengan menambahkan 3 fungsi yang lain yaitu kurang, kali dan bagi
MODUL 9 METHOD DENGAN PARAMETER 9.1 Tujuan Mahasiswa memahami tentang pengertian sub program dan dapat membuat sub program sederhana dengan parameter. 9.2 Dasar Teori Method (atau dalam beberapa bahasa pemrograman sering disebut fungsi atau prosedur) adalah sub program yang membiarkan seorang programer untuk membagi program dengan membagi masalah ke dalam beberapa sub masalah yang bisa diselesaikan secara modular. Dengan cara demikian, maka pembuatan program bisa lebih dimanajemen. Contoh : public class FungsiParameter { public static int jumlah(int a){ return a; } public static void main(String args[]){ System.out.println("Hasil pemanggilan methode "); System.out.println(jumlah(5)); } } Hasil Output Hasil pemanggilan method jumlah 5 Press any key to continue . . . Parameter pada baris kedua disebut sebagai parameter formal, dan pada baris ke 8 disebut parameter aktual. Ada 2 buah parameter yaitu parameter formal adalah parameter yang tertulis dalam definisi method Parameter aktual parameter yang berada pada inputan langsung pada saat penggunaan method tersebut.
Parameter bisa lebih dari satu dengan dipisahkan tanda koma,. Yang perlu diperhatikan pada saat pemanggilan method adalah jumlah, urutan dan tipe parameter aktual harus sesuai dengan jumlah urutan dan tipe parameter formal. Pemberian Variabel Dalam Method
Ada dua tipe data variable passing pada method, yaitu pass-by-value dan pass-byreference. Pass-by-value Ketika pass-by-value terjadi, method membuat sebuah salinan dari nilai variable yang dikirimkan ke mthod. Walaupun demikian method tidak dapat secara langsung memodifikasi nilai variable pengirimnya meskipun parameter salinannya sudah dimodifikasi nilainya di dalam method. Pass-by-reference Ketika sebuah pass-by-reference terjadi, alamat memori dari nilai pada sebuah variable dilewatkan pada saat pemanggilan method. Ini tidak seperti pada pass-by-value, method dapat memodifikasi variable asli dengan menggunakan alamat memori tersebut, meskipun berbeda nama variable yang digunakan dalam method dengan variable aslinya, kedua variable ini menunjukkan lokasi dari data yang sama.
9.3 Pelaksanaan Praktikum Tuliskan program berikut : public class Fungsi4a{ public static int jumlah(int a){ return (a + a); } public static void main(String args[]){ System.out.println("Panggil method jumlah dengan parameter 5"); System.out.println(jumlah(5)); System.out.println("Panggil method jumlah dengan parameter 15"); System.out.println(jumlah(15)); } } Hasil Output Panggil method jumlah dengan parameter 5 10 Panggil method jumlah dengan parameter 15 30 Press any key to continue . . . Program dengan pass-by-value public class TestPassByValue { public static void main(String [] args ) { int i =10;
System.out.println(i); test(i); System.out.println(i); } public static void test(int j) { j=33; } } Hasil Output 10 10 Press any key to continue . . . Pada program diatas kita memanggil method tes dan melewatkan nilai variable i sebagai parameter. Nilai pada i disalinkan ke variable j pada method. Pada kondisi ini variable j adalah merupakan variable pengganti pada method test, jika nilai j berubah maka nilai pada variable I yang terletak pada main tidak akan ikut berubah walaupun awalnya variable j merupakan salinan dari variable i. Program dengan pass-by-reference class TestPassByReference { public static void main( String [] args) { //membuat array integer int [] ages ={10,11,12}; //mencetak nilai array for (int i=0; i<ages.length; i++) { System.out.println(ages[i]); } test(ages); for (int i=0; i<ages.length; i++) { System.out.println(ages[i]); } } public static void test(int[] arr) { //merubah nilai array for (int i=0; i<arr.length; i++) { arr[i] = i+50; } }
9.4 Latihan Kerjakan Program berikut : public class Fungsi4c { public float jumlah(int a, float b) //tanpa static { return (a+b); } public static void main(String args[]) { Fungsi4 obyek=new Fungsi4(); System.out.print("panggil method jumlah dengan parameter 5 dan 1.5, hasilnya = "); System.out.println(obyek.jumlah(5, 1.5f)); System.out.print("panggil method jumlah dengan parameter 10 dan 2.2, hasilnya = "); System.out.println(obyek.jumlah(10, 2.2f)); } }
Hasil output panggil method jumlah dengan parameter 5 dan 1.5, hasilnya = 6.5 panggil method jumlah dengan parameter 10 dan 2.2, hasilnya = 12.2 Modifikasi program diatas dengan menambahkan satu parameter lagi. TUGAS 1. Buat sebuah method yang digunakan untuk menghasilkan nilai paling kecil dari 3 bilangan yang dimasukkan sebagai parameter. 2. Tugas dari dosen pengampu
MODUL 10 ARRAY SATU DIMENSI 10.1 Tujuan Mahasiswa memahami tentang pengertian larik serta dapat membuat program dengan menggunakan larik satu dimensi. 10.2 Dasar Teori Array atau larik terdiri atas bagian-bagian komponen yang memiliki tipe data sama. Masing - masing elemen array dapat diakses melalui indeksnya. Dalam java indeks array selalu bertipe integer yang dimulai dari 0. 10.3 Pendeklarasian Array Array harus dideklarasikan seperti layaknya sebuah variabel. Pada saat mendeklarasikan array, anda harus membuat sebuah daftar dari tipe data, yang diikuti oleh sepasang tanda kurung [], lalu diikuti oleh nama identifier-nya. Sebagai contoh, int [] jumlahHari; atau Anda dapat menempatkan sepasang tanda kurung [] sesudah nama identifier. Sebagai contoh; int jumlahHari []; Setelah pendeklarasian array , kita harus membuat array dan menentukan jumlah elemen array Sebagai contoh ;
//deklarasi array 1 dimensi int [] jumlahHari; // deklarasi array 2 dimensi
int[][] duaD
//instantiate obyek atau menentukan jumlahHari = new int[12];
duaD= new int[2][3]; // Array multidimensi adalah array dari array , dengan konsep //pengaksesan [noBaris][noKolom] Pada contoh diatas, pendeklarasian tersebut akan memberitahukan kepada compiler Java, bahwa identifier jumlahHari akan digunakan sebagai nama array yang berisi data bertipe integer, dan dilanjutkan dengan membuat atau meng-instantiate sebuah array baru yang terdiri dari 12 elemen. Selain menggunakan sebuah pernyataan new untuk meng-instantiate array, Anda juga dapat mendeklarasikan, membangun, kemudian memberikan sebuah nilai pada array sekaligus dalam sebuah pernyataan.
10.4 Pengaksesan elemen Array Untuk mengakses sebuah elemen dalam array, atau mengakses sebagian dari array, Anda harus menggunakan sebuah angka atau yang disebut sebagai indeks atau subscript. Pada saat memasukkan nilai ke dalam array, sebuah nomor indeks atau subscript telah diberikan kepada tiap anggota array, sehingga program dan programmer dapat mengakses setiap nilai pada array apabila dibutuhkan. Nilai indeks selalu dalam tipe integer, dimulai dari angka nol dan dilanjutkan ke angka
berikutnya sampai akhir array. Sebagai catatan bahwa indeks didalam array dimulai dari 0 sampai dengan (ukuranArray-1).
// mengisikan nilai dari setiap elemen array yang ada jumlahHari[0] = 31; jumlahHari[1] = 28; // menampilkan salah satu elemen array System.out.println("Bulan Maret memiliki " + jumlahHari[1] + " hari."); Berikut ini beberapa contoh program Array : Nama file : DemoArray1D .java class DemoArray1D { public static void main(String[] args) { // mendeklarasikan variabel bertipe array dengan tipe int int [] jumlahHari; // menentukan jumlah elemen array jumlahHari = new int[12]; // mengisikan nilai dari setiap elemen array yang ada jumlahHari[0] = 31; jumlahHari[1] = 28; jumlahHari[2] = 31; jumlahHari[3] = 30; jumlahHari[4] = 31; jumlahHari[5] = 30; jumlahHari[6] = 31; jumlahHari[7] = 31; jumlahHari[8] = 30; jumlahHari[9] = 31; jumlahHari[10] = 30; jumlahHari[11] = 31; // menampilkan salah satu elemen array System.out.println("Bulan Maret memiliki " + jumlahHari[2] + " hari."); } }
11.1 Tujuan Mahasiswa memahami tentang pengertian larik serta dapat membuat program dengan menggunakan larik multi dimensi.
11.2 Dasar Teori Kita juga bisa membuat variabel larik yang tipe elemennya adalah larik. Dengan cara demikian, kita membuat larik dua dimensi. Dengan larik dua dimensi, maka kita mempunyai elemen yang berindeks tidak hanya satu, tetapi dua. Kita bisa membayangkan larik dua dimensi tersebut seperti sebuah tabel yang berisi baris dan kolom. Penyebutan sel tabel selalu diikuti dengan penyebutan baris berapa dan kolom berapa. Contoh : Diberikan data kelulusan mahasiswa sebuah perguruan tinggi sebagai berikut. Jurusan Teknik Informatika Sistem Informasi int data_lulus [2] [3] TI SI 0 1 0 1 2 56 75 80 2006 110 2007 125 2008 135
2007
11.3 Pelaksanaan Praktikum Tuliskan program berikut : public class ArrayDimensiDua { public static void main(String [] args) { int [][] piksel = new int[2][3]; // mengisi elemen tertentu piksel[0][0] = 70; piksel[0][1] = 18; piksel[0][2] = 45; piksel[1][0] = 75; piksel[1][1] = 66; piksel[1][2] = 89; //menampilkan elemen array int i,j; for(i=0;i<2;i++){ for (j=0; j<3;j++) System.out.print(piksel[i][j] +" "); System.out.println(""); } } } Hasil Output
70 18 45 75 6 89
11.4 Latihan Tuliskan program untuk menampilkan menampilkan matrik yang elemen elemenya dimasukkan melalui keyboard : Program latihan 1 import java.util.Scanner; public class ArrayDimensiDua2{ public static void main(String args[]){ Scanner masuk = new Scanner(System.in); int nilai[][]= new int[2][3]; System.out.println("Masukkan data nilai"); for (int i = 0; i < 2; i++) { for (int j = 0; j < 3; j++){ System.out.print("("+ (i + 1 )+" , "+ (j+1) +")"+ " : "); nilai[i][j]=masuk.nextInt(); } }
System.out.println("Data nilai yang dimasukan"); for (int i = 0; i < 2; i++){ for (int j = 0; j < 3; j++) System.out.print(nilai[i][j]+" "); System.out.println();} } } Program latihan 2 program untuk menjumlahkan matrik : import java.util.Scanner; public class JumlahMatriks{ Scanner masuk = new Scanner(System.in); public void masukData(float data[][]){ for (int i = 0; i < 3; i++){ for (int j = 0; j < 3; j++){ System.out.print( "("+(i + 1 )+" , "+ (j+1)+")" + " : "); data[i][j]=masuk.nextFloat(); } } } public float[][] tambah(float AA[][], float BB[] []){ float hasil[][]= new float[3][3]; for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) hasil[i][j] = AA[i][j] + BB[i][j]; return hasil; } public void tampilData(float data[][], char nama){ for (int i=0;i<3;i++){ for (int j=0;j<3;j++) System.out.print(nama+"["+ (i + 1 ) +"] ["+ (j+1) + "] = " + data[i][j]+" "); System.out.println(); } } public static void main(String args[]){ float A[][] = new float[3][3]; float B[][] = new float[3][3]; float C[][] = new float[3][3]; JumlahMatriks jumlah = new JumlahMatriks(); System.out.println("Masukkan data matriks A"); jumlah.masukData(A); System.out.println("Masukkan data matriks B");
Masukkan data matriks B (1 , 1) : 5 (1 , 2) : 4 (1 , 3) : 3 (2 , 1) : 6 (2 , 2) : 2 (2 , 3) : 3 (3 , 1) : 4 (3 , 2) : 1 (3 , 3) : 3 C[1] [1] = 7.0 C[1] [2] = 7.0 C[1] [3] = 4.0 C[2] [1] = 10.0 C[2] [2] = 4.0 C[2] [3] = 7.0 C[3] [1] = 5.0 C[3] [2] = 3.0 C[3] [3] = 6.0 Press any key to continue . . . 1. TUGAS Buat sebuah program dengan larik untuk menyimpan 10 data mahasiswa yaitu berupa NIM, nama dan jurusan
MODUL 12 KELAS, OBJECT & METHOD 12.1 Tujuan Mahasiswa dapat membuat obyek yang mengacu ke kelas tersebut. 12.2 Dasar Teori Kelas dapat didefinisikan sebagai cetak biru (blueprint) atau kerangka yang mendefenisikan variabel-variabel (data) dan method-method (perilaku) dari sebuah objek tertentu. Kelas adalah pola(template) untuk pembuatan objek dan bersifat abstrak, dan objek adalah wujud nyata (instance) dari sebuah kelas. Sebagai contoh : manusia adalah kelas sedangkan objeknya adalah si Udin , si tono si dewi. 12.2.1 Mendefinisikan kelas Dalam java, kelas didefinisikan dengan menggunkan kata kunci class. Berikut ini bentuk umum nya : Class NamaKelas{ Tipe data1; Tipe data2; .. Tipe dataN; Tipe Method1(daftar parameter) { // kode untuk method1 } Tipe method2(daftar-parameter){ // kode untuk method2 } .. Tipe method(daftar-parameter){ //kode untuk method N } } Data atau variabel yang didefinisikan di dalam sebuah kelas disebut instance variabel. Data akan diakses melalui method method yang ada. Berikut ini adalah contoh program Nama file : DemoKotak1 .java class Kotak { double panjang; double lebar;
double tinggi; }
class DemoKotak1 { public static void main(String[] args) { double volume; Kotak k = new Kotak(); // Mengisikan nilai ke dalam data-data kelas Kotak k.panjang = 4; k.lebar = 3; k.tinggi = 2; // Menghitung isi/volume kotak volume = k.panjang * k.tinggi * k.lebar; // Menampilkan nilai volume ke layar monitor System.out.println(Volume kotak = + volume); } }
12.2.2 Mendefinisikan Method Method adalah implementasi dari bagaimana bekerjanya sebuah class. Dengan Method dapat melakukan Manipulasi data, Perhitungan matematik dan Memonitor kejadian dari suatu event . Adapun bentuk umumnya adalah: Tipe namaMethod(daftar-parameter) { // kode yang akan ditulis } Keterangan : Tipe adalah tipe data yang akan di kembalikan oleh method. Dalam java method terbagi menjadi dua yaitu void dan non void . method void adalah method yang tidak mengembalikan nilai. Sedangkan method non void adalah method yang mengembalikan nilai. Berikut ini adalah contoh programnya ; Nama file : DemoMethod1 .java class Kotak { double panjang; double lebar; double tinggi; // Mendefinisikan method void (tidak mengembalikan nilai)
void cetakVolume() { System.out.println("Volume kotak = " + (panjang * lebar * tinggi)); } } class DemoMethod1 { public static void main(String[] args) { Kotak k1, k2, k3; // instansiasi objek k1 = new Kotak(); k2 = new Kotak(); k3 = new Kotak(); // mengisi data untuk objek k1 k1.panjang = 4; k1.lebar = 3; k1.tinggi = 2; // mengisi data untuk objek k2 k2.panjang = 6; k2.lebar = 5; k2.tinggi = 4; // mengisi data untuk objek k3 k3.panjang = 8; k3.lebar = 7; k3.tinggi = 6; // memanggil method cetakVolume() untuk masing-masing objek k1.cetakVolume(); k2.cetakVolume(); k3.cetakVolume(); } }
Nama file : DemoMethod2 .java class Kotak { double panjang; double lebar; double tinggi; // Mendefinisikan method yang mengembalikan tipe double double hitungVolume() { // menghitung volume double vol = panjang * lebar * tinggi; // mengembalikan nilai
return vol; } } class DemoMethod2 { public static void main(String[] args) { Kotak k1, k2, k3; k1 = new Kotak(); k2 = new Kotak(); k3 = new Kotak(); k1.panjang = 4; k1.lebar = 3; k1.tinggi = 2; k2.panjang = 6; k2.lebar = 5; k2.tinggi = 4; k3.panjang = 8; k3.lebar = 7; k3.tinggi = 6; System.out.println("Volume k1 = " + k1.hitungVolume()); System.out.println("Volume k2 = " + k2.hitungVolume()); System.out.println("Volume k3 = " + k3.hitungVolume()); } }
Nama file : SepedaBeraksi .java class Sepeda{ int kecepatan = 0; int gir = 0; // method void ubahGir(int pertambahanGir) { gir= gir+ pertambahanGir; System.out.println(" Gir:" + gir); } void tambahKecepatan(int pertambahanKecepatan) { kecepatan = kecepatan+ pertambahanKecepatan; System.out.println(" Kecepatan:" + kecepatan); } public class SepedaBeraksi{ public static void main(String[] args) {
// Membuat object Sepeda sepedaku = new Sepeda(); //memanggil atribut dan memberi nilai sepedaku.kecepatan=10; sepedaku.gir=2; // Memanggil method dan menunjuk nilai parameter sepedaku.tambahKecepatan(30); sepedaku.ubahGir(3); }}
Tugas
1. Buat Class bernama Matematika, yang berisi method dengan dua parameter: pertambahan pengurangan perkalian pembagian 2. Buat Class bernama MatematikaBeraksi, yang mengeksekusi method dan menampilkan: Pertambahan: 20 + 20 = 40 Pengurangan: 10-5 = 5 Perkalian: 10x20 = 200 Pembagian: 21/2 = 10.5 (float or double)
MODUL 13 REKURSI 13.1 Tujuan Mahasiswa dapat membuat dan mengerti tentang rekursi di pemograman java. 13.2 Dasar Teori Dalam Java, rekursi adalah proses pemanggilan method oleh dirinya sendiri secara berulang. Rekursi digunakan untuk menyederhanakan algoritma dari suatu proses perulangan tertentu sehingga penulisan kode programnya akan lebih efesien. Sebagai contoh konsep rekursi adalah perhitungan nilai factorial dari bilangan bulat non negative. Proses rekursif dapat kita tuliskan dalam fungsi matematik sbb; f! (n) = n * f(n-1) dengan ketentuan f!(0) = 1. Merupakan suatu tetapan numerik yang tidak dapat diubah. Apabila n berilai 5 maka proses akan dilakukan program sbb : factorial(5) = 5 * factorial(4) factorial(4) = 4 * factorial(3) factorial(3) = 3 * factorial(2) factorial(2) = 2 * factorial(1) factorial(1) = 1 * factorial(0) factorial(0) = 1 factorial(1) = 1*1 factorial(2) = 2*1 factorial(3) = 3*2 factorial(4) = 4*6 factorial(5) = 5*24 = 120
Nama file : DemoRekursi1 .java class Rekursi { int faktorial(int n) { if (n == 0) { return 1; } else { return (n * faktorial(n-1)); } } void cetakFaktorial(int n) { System.out.print(n + "! = "); for (int i=n; i>=1; i--) { if (i != 1) { System.out.print(i + " x "); } else {
System.out.print(i + " = "); } } System.out.println(faktorial(n)); } } class DemoRekursi1 { public static void main(String[] args) { Rekursi obj = new Rekursi(); obj.cetakFaktorial(5); obj.cetakFaktorial(4); obj.cetakFaktorial(3); } }
Nama file : DemoRekursi3 .java Program untuk mengkonversi dari desimal ke biner class Rekursi { void DesimalKeBiner(int n) { if (n > 1) { DesimalKeBiner(n / 2); } System.out.print(n % 2); } } class DemoRekursi3 { public static void main(String[] args) { Rekursi obj = new Rekursi(); System.out.print("Bentuk biner dari 1 : "); obj.DesimalKeBiner(1); System.out.println(); System.out.print("Bentuk biner dari 2 : "); obj.DesimalKeBiner(2); System.out.println(); System.out.print("Bentuk biner dari 4 : "); obj.DesimalKeBiner(4); System.out.println(); System.out.print("Bentuk biner dari 6 : ");
obj.DesimalKeBiner(6); System.out.println(); System.out.print("Bentuk biner dari 8 : "); obj.DesimalKeBiner(8); System.out.println(); System.out.print("Bentuk biner dari 10 : "); obj.DesimalKeBiner(10); System.out.println(); } }
Tugas
1. Buatlah program untuk menentukan nilai perpangkatan (be = b *b e-1 ) 2. Buatlah program untuk konversi bilangan dari decimal ke heksadesimal.
14.1 Tujuan Mahasiswa dapat membuat dan mengerti tentang input data di pemograman java.
14.2 Menginput sebuah karakter Untuk membaca input berupa karakter gunakan method read() yang terdapat kelas BufferedReader. Adapun deklarasi method read() sbb; Int read() throws IOException Berikut ini contoh programnya : Nama file : DemoInputKarakter .java
import java.io.*; class DemoInputKarakter { public static void main(String[] args) throws IOException { System.out.print("Masukkan sembarang karakter: "); char ch; InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); ch = (char) br.read(); System.out.println("Karakter yang dimasukkan adalah \'" + ch + "\'"); } }
14.3 Menginput sebuah String Untuk membaca input string gunakan method readLine() Adapun bentuk umumnya method tersebut adalah : String readLine() throws IOException Berikut ini contoh programnya : Nama file : DemoInputString
import java.io.*; class DemoInputString { public static void main(String[] args) throws IOException { System.out.print("Masukkan nama Anda: "); String nama; InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); nama = br.readLine(); System.out.println("Halo " + nama + ", sudahkah Anda mengerti Java?"); } }
14.4 Menginput Data Numerik Untuk membaca input data numeric sama seperti mengimput data karakter / string, hanya data string hasil input dikonversi ke tipe numeric. Sebagai contoh dapat dilihat dari program sbb; Berikut ini contoh programnya : Nama file : DemoInputNumerik1 import java.io.*; class DemoInputNumerik1 { public static void main(String[] args) throws IOException { System.out.print("Masukkan sebuah bilangan bulat: "); String temp; int bilangan = 0; InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); // input data dianggap sebagai string temp = br.readLine(); try { // konversi dari string ke integer
bilangan = Integer.parseInt(temp); } catch (NumberFormatException nfe) { System.out.println("Data yang dimasukkan " + "bukan bilangan bulat"); System.exit(1); } System.out.println("Bilangan yang dimasukkan " + "adalah " + bilangan); } }
Nama file : DemoInputNumerik2 import java.io.*; class DemoInputNumerik2 { public static void main(String[] args) throws IOException { System.out.print("Masukkan sebuah bilangan riil: "); String temp; double bilangan = 0; InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); // input data dianggap sebagai string temp = br.readLine(); try { // konversi dari string ke floating-point bilangan = Double.parseDouble(temp); } catch (NumberFormatException nfe) { System.out.println("Data yang dimasukkan bukan bilangan"); System.exit(1); } System.out.println("Bilangan yang dimasukkan " + "adalah " + bilangan); } }
DAFTAR PUSTAKA
1. Modul Algoritma dan Pemograman Akakom 2. Buku mudah belajar java penerbit Informatika 3. Buku Bagaimana Berfikir Sebagai Ilmuwan Komputer 4. Modul JENI Ver 2.0 dari Jardiknas