Modul Belajar Bahasa Pemrograman Java Untuk Pemula [#BelajarDiRumah]
Assalamu‘alaikum wr. wb.
Hello guys, Kembali lagi bersama Inzaghi's Blog! Pastinya kalian yang ingin jago di bidang IT pastinya ingin mempelajari tentang Bahasa Pemrograman (Programing Languages)? Dan biasanya bagi kalian sebagai Pemula pastinya merasa kesulitan untuk mempelajari Koding (Coding)? Kali ini kita akan membahas tentang Bahasa Pemrograman Java.
Sumber Artikel : Duniailkom.com
Bahasa pemrograman Java bisa jadi merupakan salah satu bahasa pemrograman yang paling banyak digunakan saat ini. Cakupan bahasa Java sangat luas, mulai dari bidang Web (terutama di Server), aplikasi desktop, dan yang sedang booming saat ini adalah Aplikasi Mobile (Android).
Java adalah bahasa “native” atau bahasa asli untuk membuat aplikasi android. Dan saat ini jumlah perangkat mobile sudah jauh melampaui Perangkat Komputer/Laptop.
Selain itu, bahasa Java juga menjadi bahasa pemrograman wajib untuk setiap kampus atau institusi pendidikan komputer, terutama ketika membahas materi pemrograman berbasis object (PBO) atau yang dalam Bahasa Inggris disebut object oriented programming (OOP).
Karena bahasa pemrograman ini terbilang sangat populer dan penggunaannya terus meningkat, Inzaghi's Blog akan menyajikan Seri Tutorial Belajar bahasa pemrograman Java. Semoga sedikit banyak bisa bermanfaat bagi teman-teman semua.
PENGERTIAN BAHASA PEMROGRAMAN JAVA
Bahasa Java merupakan sebuah bahasa pemrograman yang legendaris. Hampir semua mahasiswa IT pernah belajar dan membuat program menggunakan bahasa Java. Jika di kampus terdapat mata kuliah pemrograman berbasis object (PBO), atau dalam bahasa inggris disebut sebagai object oriented programming (OOP), kemungkinan besar yang akan dipakai sebagai bahan praktik adalah bahasa Java.
Selain “diwajibkan” oleh dosen, implementasi bahasa Java sendiri juga sangat beragam. Java bisa dipakai untuk membuat aplikasi desktop, membuat website (server side), hingga yang membuat Java seolah-oleh Reborn adalah penggunaannya di aplikasi Android.
Java adalah bahasa native atau bahasa asli yang dipakai untuk membuat aplikasi android, sehingga jika Anda berencana untuk fokus mempelajari pembuatan aplikasi android, maka belajar Java adalah pilihan yang paling tepat.
A. Pengertian Bahasa Pemrograman Java
Mengutip dari Wikipedia, bahasa pemrograman Java adalah “General-Purpose Computer-Programming Language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible”.
Terjemahan bebasnya, Java adalah “Bahasa Pemrograman Umum (general-purpose) yang konkuren (menjalankan banyak hal secara bersamaan), berbasis class, berorientasi object dan dirancang secara khusus agar tidak bergantung pada sistem tertentu“.
Dari pengertian ini kita bisa melihat fitur-fitur terpenting dalam Bahasa Java :
1. General-purpose Computer-Programming Language
Java dirancang sebagai bahasa pemrograman umum yang bisa dipakai untuk membuat berbagai aplikasi, mulai untuk aplikasi desktop, website, aplikasi mobile, hingga Embedded Device seperti microprocessor atau perangkat pintar.
Ini berbeda dengan bahasa pemrograman yang secara khusus dipakai untuk pembuatan aplikasi tertentu. Sebagai contoh, bahasa pemrograman PHP secara khusus dipakai untuk membuat website saja.
2. Concurrent
Dalam Teori Komputasi, concurrent programming adalah fitur di sebuah bahasa pemrograman yang bisa menjalankan banyak hal dalam satu waktu. Lawan dari kata concurrent adalah sequential programming, dimana alur pemrograman di proses secara berurutan dari awal hingga akhir.
Secara umum, concurrent programming akan meningkatkan performa dari aplikasi yang dibuat.
3. Class-based, Object-oriented
Mungkin inilah fitur paling terkenal di bahasa Java, yakni pemrograman berbasis object. Berbeda dengan kebanyakan bahasa pemrograman yang mendukung pemrograman prosedural dan object sekaligus (Seperti C++, PHP, atau Python), bahasa Java hanya menyediakan konsep object saja.
Fitur pemrograman object ini memang akan memudahkan dalam pembuatan aplikasi yang kompleks, namun di sisi lain ini juga membuat bahasa Java relatif lebih susah dipelajari terutama bagi pemula.
Saya sendiri menyarankan tidak menjadikan bahasa Java sebagai bahasa pemrograman pertama. Konsep pemrograman object baru pas dipelajari jika sebelumnya anda sudah pernah belajar bahasa pemrograman procedural, seperti bahasa Pascal, C, atau C++.
4. Dirancang untuk memiliki ketergantungan implementasi sesedikit mungkin
Bahasa Java memiliki moto “Write once, run anywhere“, yang menekankan bahwa satu kode kode program Java yang kita tulis, bisa langsung berjalan di banyak perangkat dan berbagai sistem informasi, tanpa perlu di-compile ulang.
Untuk mendapatkan fitur seperti ini, bahasa Java menggunakan konsep byte code dan JVM (Java Virtual Machine). Penjelasan lebih lengkap tentang byte code dan JVM ini akan kita bahas dalam tutorial selanjutnya.
B. Sejarah Bahasa Pemrograman Java
Konsep awal bahasa Java dikembangkan pertama kali pada Tahun 1991 oleh perusahaan Sun Microsystems. Beberapa programmer di perusahaan tersebut merasa Bahasa C dan C++ (yang saat itu sedang populer), tidak lagi mencukupi untuk project yang sedang mereka kerjakan.
Sun Microsystems kemudian membuat tim kecil yang bernama Green Project. Tujuannya adalah untuk mengembangkan bahasa pemrograman baru yang lebih baik dari C++. Beberapa anggota penting dari tim tersebut diantaranya James Gosling, Mike Sheridan dan Patrick Naughton. Ketiga programmer inilah yang nantinya dinobatkan sebagai co-founder dari bahasa Java.
Bahasa baru ini pada awalnya bernama bahasa Oak, yang terinspirasi dari pohon Oak yang tumbuh di depan kantor James Gosling. Bahasa Oak ditujukan untuk perangkat televisi interaktif, namun dianggap terlalu canggih untuk teknologi TV kabel pada saat itu. Di tahun 1993, Green Project mengalihkan fokus utama pengembangan bahasa Oak ke teknologi yang disebut dikenal sebagai “internet”.
Akhirnya di tahun 1995, Sun Microsystems secara resmi merilis bahasa pemrograman ini sebagai bahasa “Java“, karena ternyata “Oak” sudah terdaftar sebagai merk dagang di perusahaan lain, yakni “Oak Technologies“.
Pemilihan bahasa “Java” terinspirasi dari “Java coffee“, atau Kopi Jawa. Karena itulah logo bahasa Java berupa gambar secangkir kopi. Konsep dasar dari bahasa Java sendiri banyak terinspirasi dari bahasa C dan C++, sehingga jika anda sudah familiar dengan salah satu bahasa ini, kode program di Java terasa sangat mirip.
Dan sekali lagi, Java disini bukan berarti Jawa. Memang karena dari logonya, ada gambar Kopi khas Jawa. Kalau Bahasa Jawa / Basa Jawa (Javanese Language) itu Bahasa yang dipakai oleh Orang-orang Jawa atau yang ber-Suku/Etnis Jawa. Sedangkan Bahasa Java (Java Language) merupakan Bahasa Pemrograman yang dibuat oleh James Gosling.
Meme Bahasa Pemrograman Java |
[Untuk membaca lebih lanjut tentang Sejarah Bahasa Pemrograman Java, silakan lihat di sini.]
Dalam perjalanannya, perusahaan Sun Microsystem di akuisisi oleh Oracle pada tahun 2010. Sehingga “pemilik” dari bahasa Java saat ini adalah perusahaan Oracle. Meskipun begitu, mayoritas teknologi yang ada di bahasa Java berlisensi open source (GNU General Public License), sehingga bisa dipakai dengan gratis.
Bahasa Java terbagi ke dalam beberapa bidang teknologi sesuai dengan target sistem yang dirancang. Diantaranya :
- Java Micro Edition (Java ME) : ditujukan untuk membuat aplikasi di perangkat kecil (Embedded System) dengan Komputasi yang terbatas, seperti Kalkukator, TV Box, Jam Tangan, dll.
- Java Standard Edition (Java SE) : ditujukan untuk Perangkat Komputer desktop atau server.
- Java Enterprise Edition (Java EE) : ditujukan untuk Perangkat Besar serta Aplikasi Internet.
KONSEP DASAR BAHASA PEMROGRAMAN JAVA
Sumber Artikel : Duniailkom.com (Variabel), Dicoding.com, Duniailkom.com (Operator),
A. Variabel dan Tipe Data
Sama seperti C++, di Java juga memiliki Konsep Dasar jika ingin mempelajarinya. Ketika akan menulis variabel, dalam hampir semua bahasa pemrograman terdapat 2 Langkah : deklarasi dan Inisialisasi.
Deklarasi adalah proses untuk memberitahu compiler bahasa Java bahwa kita akan membuat sebuah variabel. Bahasa Java termasuk bahasa pemrograman yang menggunakan konsep strongly typed programming language, yang artinya untuk setiap variabel harus ditulis akan berisi tipe data apa. Apakah itu angka bulat (integer), angka pecahan (float), huruf (char), atau yang lain.
Pembahasan mengenai tipe data di dalam bahasa Java akan kita bahas dalam tutorial tersendiri, namun berikut tipe data yang sering dipakai :
- Tipe Data Integer, yakni tipe data angka bulat seperti 1, 5 atau 1000. Tipe data integer ditulis dengan keyword int.
- Tipe Data Double, yakni tipe data angka pecahan seperti 1.33, 5.90 atau 1000.99. Tipe data double ditulis dengan keyword double.
- Tipe Data Character, yakni tipe data huruf seperti ‘A’, ‘a’, atau ‘Z’. Tipe data character ditulis dengan keyword char.
- Tipe data String, yakni tipe data untuk menampung kumpulan karakter, seperti “Belajar”, “Inzaghi” atau “Belajar di Inzaghi's Blog”. Tipe data string ditulis dengan keyword String.
1. Bilangan Bulat (Integer)
Tipe bilangan bulat (Integer) adalah tipe data numerik yang biasa digunakan apabila bertemu dengan bilangan bulat, seperti 1, 27, 100, dll. Bilangan ini juga mengenal nilai positif dan negatif (signed number). Tipe data numerik yang termasuk ke dalam bilangan bulat adalah sebagai berikut :
Tipe Data
|
Ukuran
(Bit)
|
Range
|
Byte
|
8
|
-128 s/d 127
|
Short
|
16
|
-32768 s/d
32767
|
Int
|
32
|
-2147483648
s/d 2147483647
|
Long
|
64
|
-9223372036854775808
s/d 9223372036854775807
|
Dari keempat tipe data di atas, yang sering digunakan adalah “int” atau Integer. Tipe “byte” dan “short” hanya digunakan pada aplikasi khusus yang berkaitan dengan memori. Sedangkan tipe “long” sangat jarang digunakan karena dirasa tidak memerlukan bilangan yang berkapasitas besar, seperti kapasitas yang diberikan oleh tipe “long”.
a. Byte
Tipe byte biasa digunakan pada saat kita bekerja dengan data stream pada file maupun jaringan. Tipe ini diperlukan saat kita melakukan proses seperti membaca dan menulis. Selain itu, byte juga digunakan saat kita menggunakan data biner yang tidak kompatibel dengan tipe lainnya pada Program Bahasa Java.
Contoh :
public class Main {public static void main (String [] args)//Deklarasi variabelbyte value = 1;//OutputSystem.out.println("Nilai dari byte = " + value);}
b. Short
Tipe short sangat umum digunakan pada komputer yang berkapasitas 16-bit, sehingga sangat jarang sekali kita temui dengan kapasitas laptop saat ini.
Contoh :
public class Main {public static void main (String [] args)//Deklarasi variabelshort value;//Inisialisasi variabelvalue = 2;//OutputSystem.out.println("Nilai dari short= " + value);}
c. Int
Tipe int termasuk tipe yang sangat sering dipakai saat ini karena merepresentasikan angka dalam pemrograman. Sebab tipe data int dianggap paling efisien daripada tipe bilangan bulat lainnya. Tipe int digunakan pada indeks dalam struktur perulangan maupun dalam array.
Secara teori, setiap ekspresi yang melibatkan tipe integer byte, short, dan long, semuanya harus melalui prosedur int untuk dipromosikan terlebih dahulu sebelum dilakukan perhitungan.
Contoh :
public class Main {public static void main (String [] args)//Deklarasi variabelint value = 20;//OutputSystem.out.println("Nilai dari int = " + value);}
Tipe data integer dapat juga digabungkan melalui beberapa tipe data seperti berikut ini :
Public class Main {public static void main (String []args)//Membuat variabel dengan beberapa tipe data yang berbedabyte value = 1;short anotherValue = 2;int result = 3;int anotherResult;//Menjumlahkan variabel byet, short, dan intanotherResult = value + anotherValue + result;//Mencetak atau menampilkan hasilnyaSystem.out.println("Nilai dari result = " + anotherResult);}
B. Operator
Sumber : Duniailkom.com
Sama seperti C++, di Java juga mempunyai Operator yang hampir sama alias mirip. Sebelum masuk ke jenis-jenis operator di dalam bahasa Java, terdapat istilah operand dan operator. Operand adalah nilai asal yang dipakai dalam sebuah proses operasi. Sedangkan Operator adalah instruksi yang diberikan untuk mendapatkan hasil dari proses tersebut.
Biasanya operator berbentuk karakter matematis atau perintah singkat sederhana. Sebagai contoh, pada operasi: 10 + 2. Angka 10 dan 2 disebut sebagai operand, sedangkan tanda tambah (karakter +) adalah operator.
Operator Unary, Binary dan Ternary
Berdasarkan jumlah operand-nya, operator dibagi menjadi 3 Jenis yaitu Operator Unary, Operator Binary dan Operator Ternary.
- Operator Unary adalah operator yang hanya terdiri dari 1 operand. Contohnya adalah operator Positif (Plus) : +7, +9, +10.111
- Operator Binary adalah operator yang terdiri dari 2 operand. Sebagian besar operator di dalam bahasa Java termasuk ke dalam operator binary. Contohnya seperti operator Aritmatika: 4 + 8, 9 * 2, 8 % 2, dll.
- Operator Ternary adalah operator yang terdiri dari 3 operand. Bahasa Java memiliki 1 operator ternary, yakni ” ? : ” seperti (a == 1) ? 20: 30.
Jenis-jenis Operator dalam Bahasa Pemrograman Java
Berikut jenis-jenis operator dalam Bahasa Pemrograman Java :
- Operator Aritmatika
- Operator Increment dan Decrement
- Operator Perbandingan / Relasional
- Operator Logika / Boolean
- Operator Bitwise
- Operator Assignment
- Operator Type Comparison
- Operator Ternary
Daftar di atas bisa saja berbeda karena cara pengelompokkan yang dipakai, misalnya operator increment atau decrement kadang dimasukkan ke dalam operator aritmatika. Kita akan bahas sekilas tentang pengertian dari operator-operator ini.
1. Operator Aritmatika
Operator aritmatika adalah operator yang biasa kita temukan untuk operasi matematika. Aritmatika sendiri merupakan cabang ilmu matematika yang membahas perhitungan sederhana seperti kali, bagi, tambah dan kurang (kabataku)
Selain keempat operasi tersebut, bahasa Java juga memiliki operasi modulo division, atau operator % yang dipakai untuk mencari sisa hasil bagi. Tabel berikut merangkum operator Aritmatika dalam Bahasa Pemrograman Java :
Operator | Penjelasan | Contoh |
+ | Penambahan | a = 5 + 2 |
– | Pengurangan | a = 5 – 2 |
* | Perkalian | a = 5 * 2 |
/ | Pembagian (Real/Pecahan) | a = 5 / 2 |
% | Sisa Hasil Bagi (Modulus) | a = 5 % 2 |
Operator Aritmatika Unary :
Operator | Penjelasan | Contoh |
+ | Positif (plus) | +5 |
– | Negatif (min) | -3 |
Contoh :
class BelajarJava {public static void main(String args[]){int a = 10;int b = 5;int hasil;hasil = a + b;System.out.println( hasil );hasil = a - b;System.out.println( hasil );hasil = a * b;System.out.println( hasil );hasil = a / b;System.out.println( hasil );hasil = a % b;System.out.println( hasil );}}
2. Operator Increment dan Decrement
Operator increment dan decrement adalah sebutan untuk operasi seperti a++, dan a--. Ini sebenarnya penulisan singkat dari operasi a = a + 1 serta a = a – 1. Increment digunakan untuk menambah variabel sebanyak 1 angka, sedangkan decrement digunakan untuk mengurangi variabel sebanyak 1 angka.
Penulisannya menggunakan tanda tambah 2 kali untuk increment, dan tanda kurang 2 kali untuk decrement. Penempatan tanda tambah atau kurang ini boleh di awal seperti ++a dan --a, atau di akhir variabel seperti a++ dan a--.
Dengan demikian terdapat 4 jenis increment dan decrement dalam Bahasa Java :
Operator | Contoh | Penjelasan |
Pre-increment | ++a | Tambah a sebanyak 1 angka, lalu tampilkan hasilnya |
Post-increment | a++ | Tampilkan nilai a, lalu tambah a sebanyak 1 angka |
Pre-decrement | --a | Kurangi a sebanyak 1 angka, lalu tampilkan hasilnya |
Post-decrement | a-- | Tampilkan nilai a, lalu kurangi a sebanyak 1 angka |
Berikut contoh kode program operator Increment dan decrement dalam bahasa Java :
class BelajarJava {public static void main(String args[]){int a = 10;a++;System.out.println("Isi variabel a: " + a );int b = 10;b--;System.out.println("Isi variabel b: " + b );}}
3. Operator Perbandingan / Relasional
Operator perbandingan dipakai untuk membandingkan 2 buah nilai, apakah nilai tersebut sama besar, lebih kecil, lebih besar, dll. Hasil dari operator perbandingan ini adalah boolean True atau False.
Tabel berikut merangkum hasil dari operator perbandingan dalam bahasa Java :
Operator | Penjelasan | Contoh | Hasil |
== | Sama dengan | 5 == 5 | true |
!= | Tidak sama dengan | 5 != 5 | false |
> | Lebih besar | 5 > 6 | false |
< | Lebih kecil | 5 < 6 | true |
>= | Lebih besar atau sama dengan | 5 >= 3 | true |
<= | Lebih kecil atau sama dengan | 5 <= 5 | true |
Berikut contoh kode program operator perbandingan dalam Bahasa Java :
class BelajarJava {public static void main(String args[]){int a = 10;int b = 5;boolean hasil;hasil = a == b;System.out.println("Apakah a == b ? " + hasil );hasil = a != b;System.out.println("Apakah a != b ? " + hasil );hasil = a > b;System.out.println("Apakah a > b ? " + hasil );hasil = a < b;System.out.println("Apakah a < b ? " + hasil );hasil = a >= b;System.out.println("Apakah a >= b ? " + hasil );hasil = a <= b;System.out.println("Apakah a <= b ? " + hasil );}}
4. Operator Logika / Boolean
Operator logika dipakai untuk menghasilkan nilai boolean true atau false dari 2 kondisi atau lebih. Tabel berikut merangkum hasil dari operator logika dalam Bahasa Java :
Operator | Nama | Penjelasan | Contoh |
&& | And | Akan menghasilkan true jika kedua operand true | true && false, hasilnya: false |
|| | Or | Akan menghasilkan true jika salah satu operand true | true || false, hasilnya: true |
! | Not | Akan menghasilkan true jika operand false | !false, hasilnya: true |
Rumus yang dipakai adalah sebagai berikut :
- Operator && hanya akan menghasilkan true jika kedua operand bernilai true, selain itu hasilnya false.
- Operator || hanya akan menghasilkan false jika kedua operand bernilai false, selain itu hasilnya true .
- Operator ! Akan membalikkan logika, !false menjadi true, !true menjadi false.
Berikut contoh kode program operator logika dalam Bahasa Java :
class BelajarJava {public static void main(String args[]){boolean a = true;boolean b = false;boolean hasil;hasil = a && b;System.out.println("Hasil dari a && b : " + hasil );hasil = a || b;System.out.println("Hasil dari a || b : " + hasil );hasil = !b;System.out.println("Hasil dari !b : " + hasil );}}
C. Object Oriented Programming (OOP)
Sumber : Duniailkom.com (Cara Membuat Class dan Object), Duniailkom.com (Cara Membuat Method bahasa Java), dan Duniailkom.com (Pengertian Constructor pada Java)
1. Cara Membuat Class dan Object Java
Agar bisa membuat object, di dalam konsep OOP Java kita harus buat class terlebih dahulu. Selain itu di dalam class biasanya terdapat property dan juga method. Keempat istilah ini (class, property, method dan object) sudah kita pelajari dalam tutorial sebelumnya.
Merangkum apa yang telah dibahas, berikut Contoh cara pembuatan class dan object di Bahasa Java :
class Laptop {// buat 3 property untuk class LaptopString pemilik;String merk;double ukuranLayar;// buat 2 method untuk class LaptopString hidupkanLaptop() {return "Hidupkan Laptop";}String matikanLaptop() {return "Matikan Laptop";}};class BelajarJava {public static void main(String args[]){Laptop laptopAndi = new Laptop();}}
Di antara baris 1-16, terdapat perintah untuk membuat class Laptop lengkap dengan 3 property dan 2 method. Kemudian di baris 18 – 24 terdapat perintah untuk membuat class BelajarJava yang akan meng-instansiasi object laptopAndi dari class Laptop.
Agar kita bisa menampilkan dan mengakses isi sebuah object, object tersebut harus di buat dari dalam method public static void main(). Method main() ini sebenarnya bisa saja ditulis langsung ke dalam class Laptop, akan tetapi untuk memudahkan pembahasan dan agar kodenya lebih rapi, saya akan akses dari class terpisah saja, yakni class BelajarJava.
2. Cara Mengakses Object dalam Java
Cara mengakses object yang dimaksud disini adalah cara untuk mengakses ‘isi’ dari sebuah object, yakni property dan method. Agar lebih mudah dipahami, berikut revisi contoh class Laptop sebelumnya :
class Laptop {// buat 3 property untuk class LaptopString pemilik;String merk;double ukuranLayar;// buat 2 method untuk class LaptopString hidupkanLaptop() {return "Hidupkan Laptop";}String matikanLaptop() {return "Matikan Laptop";}};class BelajarJava {public static void main(String args[]){// buat object dari class Laptop (instansiasi)Laptop laptopAnto = new Laptop();// set nilai propertylaptopAnto.pemilik = "Anto";laptopAnto.merk = "Asus";laptopAnto.ukuranLayar = 15.6;// tampilkan property object LaptopSystem.out.println(laptopAnto.pemilik);System.out.println(laptopAnto.merk);System.out.println(laptopAnto.ukuranLayar);// tampilkan hasil method object LaptopSystem.out.println(laptopAnto.hidupkanLaptop());System.out.println(laptopAnto.matikanLaptop() );}}
Kode ini memang cukup panjang, dan akan kita bahas secara perlahan :
class Laptop { String pemilik; String merk; double ukuranLayar; ... }
Ini adalah baris awal pembuatan class Laptop. Kurung kurawal menandakan awal dari class. Setelah itu terdapat pendefinisian 3 variabel class atau dikenal dengan istilah property. Property ini sebenarnya tidak lain dari variabel yang berada di dalam class.
Setelah baris tersebut, terdapat perintah berikut :
String hidupkanLaptop() { return "Hidupkan Laptop"; } String matikanLaptop() { return "Matikan Laptop"; }
Dua buah fungsi ini adalah method dari class Laptop. Ini tidak lain hanya function yang mengembalikan string. Pembahasan tentang cara penggunaan function Java pernah kita bahas pada Pengertian Function (Fungsi) Bahasa Java.
Setelah selesai mendefinisikan class Laptop, kita masuk ke method main() di dalam class BelajarJava :
class BelajarJava {
public static void main(String args[]){
Laptop laptopAnto = new Laptop();
...
}
}
Baris Laptop laptopAnto = new Laptop() adalah perintah untuk membuat object dari class Laptop, yakni sebuah proses instansiasi. Perintah ini akan membuat sebuah variabel laptopAnto yang berisi object dari class Laptop.
Lanjut, kita bahas 3 baris berikutnya :
laptopAnto.pemilik = "Anto";
laptopAnto.merk = "Asus";
laptopAnto.ukuranLayar = 15.6;
Ini adalah cara mengisi nilai ke dalam property dari object laptopAnto. Cara pengisiannya sama seperti mengisi nilai ke variabel biasa, yakni dari kanan ke kiri dengan operasi assignment (tanda sama dengan “=”).
Perhatikan tanda titik untuk mengakses property dari object. Tanda titik ini adalah operator khusus yang dikenal dengan istilah Object Operator.
Masuk ke baris berikutnya :
System.out.println(laptopAnto.pemilik);
System.out.println(laptopAnto.merk);
System.out.println(laptopAnto.ukuranLayar);
Kode program ini dipakai untuk menampilkan nilai property object laptopAnto yang sebelumnya telah kita set. Sama seperti pada saat men-set nilai property, kita juga menggunakan titik diikuti dengan nama property yang ingin di akses.
Dan masuk ke baris terakhir :
System.out.println(laptopAnto.hidupkanLaptop());
System.out.println(laptopAnto.matikanLaptop());
Kode ini adalah cara pemanggilan method dari object laptopAnto. Cara pengaksesannya sama dengan cara mengakses property, namun karena method adalah function, kita harus menambah tanda kurung di akhir pemanggilan.
3. Object Sebagai Entitas Terpisah
Dalam contoh kode di atas saya hanya menggunakan 1 buah object yang dari class Laptop. Pada dasarnya sebuah class bisa dipakai untuk membuat banyak object. Setiap object akan saling terpisah namun tetap memiliki semua property dan method yang berasal dari class Laptop.
Berikut adalah contoh pembuatan beberapa object dari class Laptop :
class Laptop {String pemilik;String hidupkanLaptop() {return "Hidupkan Laptop";}};class BelajarJava {public static void main(String args[]){Laptop laptopAnto = new Laptop();Laptop laptopAndi = new Laptop();Laptop laptopDina = new Laptop();laptopAnto.pemilik = "Anto";laptopAndi.pemilik = "Andi";laptopDina.pemilik = "Dina";System.out.println("Pemilik Laptop: " + laptopAnto.pemilik);System.out.println("Pemilik Laptop: " + laptopAndi.pemilik);System.out.println("Pemilik Laptop: " + laptopDina.pemilik);}}
Class Laptop sedikit saya sederhanakan agar lebih singkat. Setelah pendefinisian class Laptop di baris 1 – 6, saya membuat 3 buah object dari class Laptop, yakni laptopAnto, laptopAndi dan laptopDina. Ketiga object memiliki struktur yang sama namun memiliki isi data yang berbeda.
4. Cara Mengakses Nilai Kembalian Method
Pada dasarnya sebuah method adalah function yang ada di dalam class. Semua fitur function bisa kita pakai ke dalam method, misalnya mengembalikan suatu nilai (Return) :
class Laptop {int harga = 7800000;String cekHarga () {return "Harga Laptop adalah "+harga;}};class BelajarJava {public static void main(String args[]){Laptop laptopAnto = new Laptop();String hargaLaptopAnto = laptopAnto.cekHarga();System.out.println(hargaLaptopAnto);}}
Hasil Kode Program :
Harga Laptop adalah 7800000
Di baris 1-6 saya membuat class Laptop dengan property harga yang diisi angka 7800000. Setelah itu terdapat method cekHarga yang mengembalikan sebuah string di baris 7.
Class laptop kemudian di instansiasi pada baris 11 ke dalam object LaptopAnto. Di bawahnya, variabel hargaLaptopAnto akan menampung hasil pemanggilan method laptopAnto.cekHarga().
Dengan cara ini, variabel hargaLaptopAnto akan berisi string “Harga Laptop adalah 7800000”, sesuai dengan hasil perintah return dari method laptopAnto.cekHarga().
Dalam kebanyakan situasi, nilai kembalian method bisa langsung di akses dari dalam System.out.println() seperti contoh berikut :
class Laptop {int harga = 7800000;String cekHarga () {return "Harga Laptop adalah "+harga;}};class BelajarJava {public static void main(String args[]){Laptop laptopAnto = new Laptop();System.out.println(laptopAnto.cekHarga());}}
Hasil Kode Program :
Harga Laptop adalah 7800000
Sekarang di baris 11 method laptopAnto.cekHarga() langsung diakses dari dalam perintah System.out.println().
5. Cara Mengirim Paramenter/Argument Method
Fitur lain dari sebuah method adalah bisa menerima nilai input melalui argument / parameter. Berikut contoh prakteknya :
class Laptop {String cekHarga (int harga) {return "Harga Laptop adalah "+harga;}};class BelajarJava {public static void main(String args[]){Laptop laptopAnto = new Laptop();System.out.println(laptopAnto.cekHarga(7800000));}}
Hasil Kode Program :
Harga Laptop adalah 7800000
Kali ini method cekHarga() di baris 2 menerima satu parameter harga. Dengan demikian, pada saat pemanggilan method ini di baris 10, kita bisa mengirim 1 argument bertipe integer seperti laptopAnto.cekHarga(7800000).
6. Cara Memanggil Method dalam Class yang Sama
Untuk kode yang agak kompleks, sebuah method bisa memanggil method lain dalam class yang sama. Tanpa menjalankan kode program berikut bisakah anda menebak hasilnya?
class Laptop {String hidupkanLaptop(String pemilik, String merk) {return "Hidupkan Laptop "+merk+" milik "+pemilik;}String matikanLaptop(String pemilik, String merk) {return "Matikan Laptop "+merk+" milik "+pemilik;}void restartLaptop() {System.out.println(matikanLaptop("Rissa","Lenovo"));System.out.println(hidupkanLaptop("Rissa","Lenovo"));}};class BelajarJava {public static void main(String args[]){Laptop laptopAnto = new Laptop();laptopAnto.restartLaptop();}}
Di dalam class Laptop sekarang ada 3 buah method: hidupkanLaptop(), matikanLaptop() dan restartLaptop().
Method hidupkanLaptop() dan matikanLaptop() butuh 2 Argument dan mengembalikan sebuah string. Kedua method ini diakses dari dalam method restartLaptop().
Method restartLaptop() tidak mengembalikan nilai (void), dan langsung menampilkan hasil method hidupkanLaptop() dan matikanLaptop() dengan perintah System.out.println().
Di dalam class BelajarJava object laptopAnto di-instansiasi dari class Laptop, lalu menjalankan method restartLaptop(). Berikut hasil yang tampil:
7. Pengertian Constructor
Constructor adalah method khusus yang dijalankan secara otomatis pada saat sebuah object dibuat, yakni saat proses instansiasi.
Constructor biasa dipakai untuk membuat proses awal dalam persiapan object, seperti memberi nilai kepada property, memanggil method internal serta beberapa proses lain yang dirasa perlu.
Dalam bahasa Java, constructor dibuat dengan cara menulis sebuah method yang namanya sama dengan nama class. Sebagai contoh jika kita memiliki class Laptop, maka function constructor juga harus bernama Laptop().
Sebuah constructor tidak mengembalikan nilai sehingga tidak perlu menulis tipe data sebelum nama function. Constructor juga harus memiliki hak akses public, yang apabila tidak ditulis dianggap public secara default.
Ciri lain dari constructor adalah, hanya boleh ada satu constructor method di setiap class.
8. Contoh Kode Program Pembuatan Constructor Java
Berikut contoh kode program cara membuat constructor dalam Bahasa Java :
class Laptop {Laptop() {System.out.println("Satu object Laptop sudah di buat");}};class BelajarJava {public static void main(String args[]){Laptop laptopAnto = new Laptop();Laptop laptopLisa = new Laptop();Laptop laptopRudi = new Laptop();}}
Dalam kode program di atas saya kembali membuat class Laptop. Class Laptop memiliki 1 constructor Laptop() di baris 2-4 yang hanya berisi satu perintah System.out.println.
Kemudian di dalam class BelajarJava terdapat 3 buah object dari class Laptop, yakni object laptopAndi, laptopLisa dan laptopRudi.
Pada saat ketiga object di instansiasi, secara otomatis constructor akan berjalan. Hasilnya tampil 3 Baris Teks berikut di Jendela CMD :
Satu object Laptop sudah di buat Satu object Laptop sudah di buat Satu object Laptop sudah di buat
Semua teks ini berasal dari perintah System.out.println di dalam method Laptop().
9. Constructor Sebagai Tempat Inisialisasi Property
Salah satu fungsi utama constructor adalah untuk proses inisialisasi property, yakni pemberian nilai awal kepada property yang ada di dalam object :
class Laptop {Laptop() {String pemilik = "Anto";String merk = "Lenovo";System.out.println("Object Laptop " +merk+" milik " +pemilik+" sudah dibuat");}};class BelajarJava {public static void main(String args[]){Laptop laptopAnto = new Laptop();}}
Hasil Kode Program :
Object Laptop Lenovo milik Anto sudah dibuat
Di dalam constructor, terdapat pendefinisian 2 property yaitu pemilik dan merk. Keduanya langsung diisi nilai awal dan diakses dari perintah System.out.println().
Pada saat class Laptop di-instansiasi ke dalam object laptopAnto di baris 12, akan tampil teks yang berasal dari constructor.
10. Mengisi Constructor dengan Parameter/Argument
Kita juga bisa mengirim nilai input ke dalam constructor. Caranya, tulis sebagai argument pada saat pembuatan object. Sesampainya di dalam constructor, argument tadi bisa ditampung ke dalam parameter. Berikut, ini contoh prakteknya :
class Laptop {Laptop(String pemilik, String merk) {System.out.println("Object Laptop " +merk+" milik " +pemilik+" sudah dibuat");}};class BelajarJava {public static void main(String args[]){Laptop laptopAndi = new Laptop("Andi","Asus");Laptop laptopLisa = new Laptop("Lisa","Acer");Laptop laptopRudi = new Laptop("Rudi","Lenovo");}}
Constructor class Laptop sekarang menerima 2 buah parameter, yakni pemilik dan merk. Dengan demikian pada saat proses instansiasi, kita harus mengisi dua nilai, misalnya new Laptop(“Andi”,”Asus”).
Kedua parameter kemudian ditampilkan dengan perintah System.out.println() dari dalam constructor.
D. Struktur If Else
1. Pengertian Kondisi IF ELSE bahasa Java
Pada dasarnya, kondisi IF ELSE merupakan modifikasi tambahan dari kondisi IF yang sudah kita pelajari pada tutorial sebelumnya.
Blok kode program IF tetap akan dijalankan ketika kondisi true, namun sekarang terdapat tambahan bagian ELSE akan dijalankan ketika kondisi false.
Berikut, inilah Format dasarnya :
if (condition) { // Kode program yang akan dijalankan jika condition berisi nilai True } else { // Kode program yang akan dijalankan jika condition berisi nilai False }
Bagian condition berperan sebagai penentu dari struktur percabangan ini. Jika condition terpenuhi (menghasilkan nilai TRUE), blok kode program milik IF akan dijalankan. Jika condition tidak terpenuhi (menghasilkan nilai FALSE), blok kode program bagian ELSE-lah yang akan diproses.
Mari kita lihat contoh praktek dari struktur IF ELSE.
2. Contoh Kode Program Percabangan IF ELSE Java
Pada tutorial sebelumnya kita membuat program penentu bilangan genap / ganjil menggunakan 2 buah kondisi IF sebagai berikut :
if (a % 2 == 0) { System.out.println(a + " adalah angka genap"); } if (a % 2 == 1) { System.out.println(a + " adalah angka ganjil"); }
Alur ini sebenarnya akan lebih sederhana (dan lebih efisien) jika diubah ke dalam struktur IF ELSE.
Jika sebuah angka tidak genap, maka pasti itu adalah angka ganjil. Sehingga apabila kondisi if (a % 2 == 0) tidak terpenuhi (false), maka variabel a haruslah berisi angka ganjil. Dengan demikian kode programnya bisa ditulis ulang sebagai berikut:
import java.util.Scanner;class BelajarJava {public static void main(String args[]){int a;Scanner input = new Scanner(System.in);System.out.print("Input sembarang angka: ");a = input.nextInt();if (a % 2 == 0) {System.out.println(a + " adalah angka genap");}else {System.out.println(a + " adalah angka ganjil");}}}
Sekarang jika kondisi if (a % 2 == 0) menghasilkan false, bagian ELSE lah yang akan di proses. Kode program akan jadi lebih efisien karena pemeriksaan kondisi hanya perlu dilakukan 1 kali saja.
Berikut contoh lain dari struktur kondisi IF ELSE :
import java.util.Scanner;class BelajarJava {public static void main(String args[]){int a;Scanner input = new Scanner(System.in);System.out.print("Input nilai ujian: ");a = input.nextInt();if (a >= 75) {System.out.println("Selamat, anda lulus!");}else {System.out.println("Maaf, silahkan coba lagi tahun depan");}}}
Hasil Kode Program :
Input nilai ujian: 57 Maaf, silahkan coba lagi tahun depan Input nilai ujian: 90 Selamat, anda lulus! Input nilai ujian: 75 Selamat, anda lulus! Input nilai ujian: 74 Maaf, silahkan coba lagi tahun depan
Di sini saya membuat kondisi if (a >= 75), yakni jika variabel a berisi angka lebih besar atau sama dengan 75 maka jalankan perintah System.out.println(“Selamat, anda lulus!”). Jika tidak, blok ELSE lah yang akan di eksekusi, yakni System.out.println(“Maaf, silahkan coba lagi tahun depan”).
3. Pengertian Kondisi IF ELSE IF Bahasa Java
Pada dasarnya, kondisi IF ELSE IF adalah sebuah struktur logika program yang di dapat dengan cara menyambung beberapa perintah IF ELSE menjadi sebuah kesatuan.
Jika kondisi pertama tidak terpenuhi atau bernilai false, maka kode program akan lanjut ke kondisi IF di bawahnya. Jika ternyata tidak juga terpenuhi, akan lanjut lagi ke kondisi IF di bawahnya lagi, dst hingga blok ELSE terakhir atau terdapat kondisi IF yang menghasilkan nilai true.
Berikut format dasar penulisan kondisi IF ELSE IF dalam Bahasa Java :
if (condition_1) { // Kode program yang dijalankan jika condition_1 berisi nilai True } else if (condition_2) { // Kode program yang dijalankan jika condition_2 berisi nilai True } else if (condition_3) { // Kode program yang dijalankan jika condition_3 berisi nilai True } else { // Kode program yang dijalankan jika semua kondisi tidak terpenuhi }
4. Contoh Kode Program Percabangan IF ELSE IF Java
Sebagai contoh pertama, saya ingin membuat kode program untuk menampilkan nilai. User diminta menginput sebuah huruf antara ‘A’ – ‘E’. Kemudian program akan menampilkan hasil yang berbeda-beda untuk setiap huruf, termasuk jika huruf tersebut di luar ‘A’ – ‘E’.
Berikut Contoh Kode programnya :
import java.util.Scanner;class BelajarJava {public static void main(String args[]){char nilai;Scanner input = new Scanner(System.in);System.out.print("Input Nilai Anda (A - E): ");nilai = input.next().charAt(0);if (nilai == 'A' ) {System.out.println("Pandai!");}else if (nilai == 'B' ) {System.out.println("Bagus!");}else if (nilai == 'C' ) {System.out.println("Cukup!");}else if (nilai == 'D' ) {System.out.println("Kurang!");}else if (nilai == 'E' ) {System.out.println("Jelek!");}else {System.out.println("Invalid");}}}
Hasil Kode Program :
Input Nilai Anda (A - E): A Pandai! Input Nilai Anda (A - E): D Kurang! Input Nilai Anda (A - E): E Jelek! Input Nilai Anda (A - E): F Invalid
Di baris 6 saya mendefinisikan sebuah variabel nilai sebagai char. Variabel nilai ini kemudian dipakai untuk menampung input dari perintah input.next().charAt(0) di baris 10. Ini adalah proses input nilai char dalam bahasa Java.
Mulai dari baris 12 hingga 29, terdapat 5 kali pemeriksaan kondisi, yakni satu untuk setiap block IF ELSE. Dalam setiap kondisi, isi variabel nilai akan di diperiksa apakah berisi karakter ‘A’, ‘B’, hingga ‘E’. Jika salah satu kondisi terpenuhi, maka block kode program yang sesuai akan di eksekusi.
Jika ternyata nilai inputan bukan salah satu dari karakter ‘A’ – ‘E’, maka block ELSE di baris 28 lah yang akan dijalankan.
Setiap kondisi dari block IF ELSE IF bisa diisi dengan perbandingan yang lebih kompleks, seperti contoh berikut :
import java.util.Scanner;class BelajarJava {public static void main(String args[]){char nilai;Scanner input = new Scanner(System.in);System.out.print("Input Nilai Anda (A - E): ");nilai = input.next().charAt(0);if (nilai >= 90 ) {System.out.println("Pandai!");}else if (nilai >= 80 && nilai < 90) {System.out.println("Bagus!");}else if (nilai >= 60 && nilai < 80) {System.out.println("Cukup!");}else if (nilai >= 40 && nilai < 60) {System.out.println("Kurang!");}else if (nilai < 40) {System.out.println("Jelek!");}else {System.out.println("Invalid");}}}
Di sini saya memodifikasi sedikit kode program sebelumnya. Sekarang nilai inputan berupa angka antara 0 hingga 100.
Angka inputan ini ditampung ke dalam variabel nilai yang sekarang di set sebagai tipe data byte di baris 5. Tipe data byte adalah jenis terkecil dari tipe data angka bulat (integer) dalam bahasa Java, yakni bisa menampung antara -128 sampai dengan +127.
Di baris 12, variabel nilai di periksa apakah berisi angka yang lebih dari 90. Jika iya, tampilkan teks “Pandai!”.
Jika kondisi di baris 12 tidak terpenuhi (yang artinya isi variabel nilai kurang dari 90), maka kode program akan lanjut ke kondisi ELSE IF berikutnya di baris 15. Di sini saya menggabung dua buah kondisi pemeriksaan dengan operator logika && (operator AND). Kondisi if(nilai >= 80 && nilai < 90) hanya akan terpenuhi jika isi variabel nilai berada dalam rentang 80 sampai 89.
Ketika membuat kondisi perbandingan, kita harus hati-hati dengan penggunaan tanda, apakah ingin menggunakan tanda lebih besar saja (>) atau tanda lebih besar sama dengan (>=) karena bisa mempengaruhi hasil akhir.
Jika ternyata kondisi ini tidak dipenuhi juga (artinya isi variabel nilai kurang dari 80), program akan lanjut ke kondisi if(nilai >= 60 && nilai < 80) di baris 18, yakni apakah isi variabel nilai berada dalam rentang 60 – 79. Demikian seterusnya hingga kondisi terakhir if(nilai < 40) di baris 24.
Jika semua kondisi tidak terpenuhi, jalankan block ELSE di baris 27. Berikut hasil percobaan dari kode program di atas :
Input Nilai Anda (0 - 100): 95 Pandai! Input Nilai Anda (0 - 100): 60 Cukup! Input Nilai Anda (0 - 100): 30 Jelek!
Yang cukup unik adalah, jika kita memberikan nilai di luar rentang 0 – 100, akan tetap ditangkap oleh kondisi IF di baris 10 atau di baris 22 :
Input Nilai Anda (0 - 100): 120 Pandai! Input Nilai Anda (0 - 100): -10 Jelek!
Ini terjadi karena nilai 120 tetap memenuhi syarat if (nilai >= 90), dan nilai -10 juga tetap memenuhi syarat if (nilai < 40). Silahkan anda modifikasi kode program di atas agar ketika diinput angka di luar dari rentang 0 – 100, tampil teks “Invalid”. Untuk hal ini kita cuma perlu mengubah / menambah 2 kondisi saja.
Namun jika diinput Angka 200, yang akan tampil adalah pesan Error berikut :
Exception in thread "main" java.util.InputMismatchException: Value out of range. Value:"200" Radix:10 at java.base/java.util.Scanner.nextByte(Scanner.java:2008) at java.base/java.util.Scanner.nextByte(Scanner.java:1956) at BelajarJava.main(BelajarJava.java:10)
Ini terjadi karena angka 200 sudah berada di luar jangkauan tipe data byte. Solusi sederhana adalah dengan menukar tipe data byte dengan tipe data yang memiliki jangkauan lebih besar seperti int.
Atau idealnya, kita bisa buat kode tambahan untuk proses validasi. Dan berikut, inilah contoh lainnya dari IF ELSE :
1. Nama-nama Hari dalam Seminggu
import java.util.Scanner;public class namaHari {public static void main(String[] args) {Scanner in = new Scanner(System.in);System.out.print("Masukkan Hari : ");int hari = in.nextInt();if (hari == 1) {System.out.println("Senin");} else if (hari == 2) {System.out.println("Selasa");} else if (hari == 3) {System.out.println("Rabu");} else if (hari == 4) {System.out.println("Kamis");} else if (hari == 5) {System.out.println("Jumat");} else if (hari == 6) {System.out.println("Sabtu");} else if (hari == 7) {System.out.println("Minggu");} else {System.out.println("Invalid");}}}
2. Nama-nama Bulan dalam Setahun (Masehi/Gregorian)
import java.util.Scanner;public class namaBulanMasehi {public static void main(String[] args) {Scanner in = new Scanner(System.in);System.out.print("Masukkan Bulan : ");int bulanMasehi = in.nextInt();if (bulanMasehi == 1) {System.out.println("Januari");} else if (bulanMasehi == 2) {System.out.println("Februari");} else if (bulanMasehi == 3) {System.out.println("Maret");} else if (bulanMasehi == 4) {System.out.println("April");} else if (bulanMasehi == 5) {System.out.println("Mei");} else if (bulanMasehi == 6) {System.out.println("Juni");} else if (bulanMasehi == 7) {System.out.println("Juli");} else if (bulanMasehi == 8) {System.out.println("Agustus");} else if (bulanMasehi == 9) {System.out.println("September");} else if (bulanMasehi == 10) {System.out.println("Oktober");} else if (bulanMasehi == 11) {System.out.println("Novemer");} else if (bulanMasehi == 12) {System.out.println("Desember");} else {System.out.println("Invalid");}}}
3. Nama-nama Bulan dalam Setahun (Hijriah)
import java.util.Scanner;public class namaBulanHijriah {public static void main(String[] args) {Scanner in = new Scanner(System.in);System.out.print("Masukkan Bulan : ");int namaBulanHijriah = in.nextInt();if (namaBulanHijriah == 1) {System.out.println("Muharram");} else if (namaBulanHijriah == 2) {System.out.println("Shafar");} else if (namaBulanHijriah == 3) {System.out.println("Rabiul Awal");} else if (namaBulanHijriah == 4) {System.out.println("Rabiul Akhir");} else if (namaBulanHijriah == 5) {System.out.println("Jumadil Awal");} else if (namaBulanHijriah == 6) {System.out.println("Jumadil Akhir");} else if (namaBulanHijriah == 7) {System.out.println("Rajab");} else if (namaBulanHijriah == 8) {System.out.println("Syaban");} else if (namaBulanHijriah == 9) {System.out.println("Ramadhan");} else if (namaBulanHijriah == 10) {System.out.println("Syawal");} else if (namaBulanHijriah == 11) {System.out.println("Dzulqaidah");} else if (namaBulanHijriah == 12) {System.out.println("Dzulhijjah");} else {System.out.println("Invalid");}}}
E. Switch Case
Sumber : Duniailkom.com
1. Pengertian SWITCH CASE Bahasa Java
Kondisi SWITCH CASE adalah percabangan kode program dimana kita membandingkan isi sebuah variabel dengan beberapa nilai. Jika proses perbandingan tersebut menghasilkan true, maka block kode program akan di proses.
Kondisi SWITCH CASE terdiri dari 2 bagian, yakni perintah SWITCH dimana terdapat nama variabel yang akan diperiksa, serta 1 atau lebih perintah CASE untuk setiap nilai yang akan diperiksa.
Berikut format dasar penulisan kondisi SWITCH CASE dalam Bahasa Java :
switch (nama_variabel) { case 'nilai_1': // Kode program yang dijalankan jika nama_variabel == nilai_1 break; case 'nilai_2': // Kode program yang dijalankan jika nama_variabel == nilai_2 break; case 'nilai_3': // Kode program yang dijalankan jika nama_variabel == nilai_3 break; ... ... default: // Kode program yang dijalankan jika tidak ada kondisi yang terpenuhi }
Di awal kode program, terdapat perintah SWITCH untuk menginput variabel yang akan diperiksa. Kemudian terdapat beberapa perintah CASE yang diikuti dengan sebuah nilai.
Jika isi dari nama_variabel sama dengan salah satu nilai ini, maka blok kode program akan dijalankan. Jika ternyata tidak ada kondisi CASE yang dipenuhi, blok default di baris paling bawah lah yang akan dijalankan.
Di dalam setiap block case, diakhiri dengan perintah break; agar struktur CASE langsung berhenti begitu kondisi terpenuhi. Mari langsung lihat contoh prakteknya.
2. Contoh Kode Program SWITCH CASE Bahasa Java
Dalam tutorial sebelumnya, terdapat kode program untuk menampilkan nilai dengan struktur IF ELSE IF. Kita akan coba konversi menjadi bentuk SWITCH CASE.
Sebelumnya, berikut kode menampilkan nilai dengan struktur IF ELSE IF :
import java.util.Scanner;class BelajarJava {public static void main(String args[]){char nilai;Scanner input = new Scanner(System.in);System.out.print("Input Nilai Anda (A - E): ");nilai = input.next().charAt(0);if (nilai == 'A' ) {System.out.println("Pandai!");}else if (nilai == 'B' ) {System.out.println("Bagus!");}else if (nilai == 'C' ) {System.out.println("Cukup!");}else if (nilai == 'D' ) {System.out.println("Kurang!");}else if (nilai == 'E' ) {System.out.println("Jelek!");}else {System.out.println("Invalid");}}}
Program yang sama bisa dikonversi ke dalam bentuk SWITCH CASE berikut ini :
import java.util.Scanner;class BelajarJava {public static void main(String args[]){char nilai;Scanner input = new Scanner(System.in);System.out.print("Input Nilai Anda (A - E): ");nilai = input.next().charAt(0);switch (nilai) {case 'A':System.out.println("Pandai!");break;case 'B':System.out.println("Bagus!");break;case 'C':System.out.println("Cukup!");break;case 'D':System.out.println("Kurang!");break;case 'E':System.out.println("Jelek!");break;default:System.out.println("Invalid");}}}
Hasil Kode Program :
Input Nilai Anda (A - E): A Pandai! Input Nilai Anda (A - E): B Bagus! Input Nilai Anda (A - E): C Cukup! Input Nilai Anda (A - E): F Invalid
Di baris 10 terdapat perintah untuk meminta user menginput salah satu huruf antara ‘A’ – ‘E’. Nilai huruf ini kemudian disimpan ke dalam variabel nilai yang sudah di set ber tipe data char.
Kondisi SWITCH CASE dimulai pada baris 12. Di sini terdapat perintah switch (nilai) yang artinya kita ingin memeriksa isi dari variabel nilai. Seluruh block SWITCH berada di dalam tanda kurung kurawal yang dimulai dari baris 12 sampai 30.
Di baris 13 terdapat perintah case ‘A’: Ini artinya jika variabel nilai berisi karakter ‘A‘, maka jalankan isi dari block CASE, yakni perintah System.out.println(“Pandai!”). Lalu terdapat perintah break di baris 15 agar struktur CASE lain tidak perlu di proses lagi.
Di baris 16 terdapat perintah CASE kedua, yakni case ‘B’:. Sama seperti sebelumnya, blok ini akan dijalankan jika variabel nilai berisi huruf ‘B‘. Demikian seterusnya sampai case ‘E’ : di baris 25.
Jika ternyata tidak ada nilai yang sesuai, maka block default di baris 28 yang akan di eksekusi.
Struktur SWITCH CASE ini terlihat lebih rapi daripada struktur IF ELSE IF, dan kadang kala bisa lebih efisien. Namun SWITCH CASE juga memiliki batasan, dimana tidak bisa dipakai untuk kondisi yang lebih kompleks seperti perbandingan dengan tanda lebih besar dari ” > “, maupun penggabungan kondisi.
Contoh lainnya dari SWITCH CASE :
1. Nama-nama Hari dalam Seminggu
import java.util.Scanner;class switchHari {public static void main(String args[]) {Scanner in = new Scanner(System.in);System.out.print("Masukkan Hari : ");int hari = in.nextInt();switch (hari) {case 1:System.out.println("Senin");break;case 2:System.out.println("Selasa");break;case 3:System.out.println("Rabu");break;case 4:System.out.println("Kamis");break;case 5:System.out.println("Jumat");break;case 6:System.out.println("Sabtu");break;case 7:System.out.println("Minggu");break;default:System.out.println("Invalid");}}}
2. Nama-nama Bulan dalam Setahun (Masehi/Gregorian)
import java.util.Scanner;class switchBulanMasehi {public static void main(String args[]) {Scanner in = new Scanner(System.in);System.out.print("Masukkan Bulan : ");int bulanMasehi = in.nextInt();switch (bulanMasehi) {case 1:System.out.println("Januari");break;case 2:System.out.println("Februari");break;case 3:System.out.println("Maret");break;case 4:System.out.println("April");break;case 5:System.out.println("Mei");break;case 6:System.out.println("Juni");break;case 7:System.out.println("Juli");break;case 8:System.out.println("Agustus");break;case 9:System.out.println("September");break;case 10:System.out.println("Oktober");break;case 11:System.out.println("November");break;case 12:System.out.println("Desember");break;default:System.out.println("Invalid");}}}
3. Nama-nama Bulan dalam Setahun (Hijriah)
import java.util.Scanner;class switchBulanHijriah {public static void main(String args[]) {Scanner in = new Scanner(System.in);System.out.print("Masukkan Bulan : ");int bulanHijriah = in.nextInt();switch (bulanHijriah) {case 1:System.out.println("Muharram");break;case 2:System.out.println("Shafar");break;case 3:System.out.println("Rabiul Awal");break;case 4:System.out.println("Rabiul Akhir");break;case 5:System.out.println("Jumadil Awal");break;case 6:System.out.println("Jumadil Akhir");break;case 7:System.out.println("Rajab");break;case 8:System.out.println("Syaban");break;case 9:System.out.println("Ramadhan");break;case 10:System.out.println("Syawal");break;case 11:System.out.println("Dzulqaidah");break;case 12:System.out.println("Dzulhijjah");break;default:System.out.println("Invalid");}}}
F. Struktur Perulangan
Sumber : Kelasprogrammer.com
Sama seperti beberapa Bahasa pemrograman lainnya, di Java juga mengenal 3 bentuk perulangan tersebut adalah perulangan for, while dan do while.
1. Perulangan For Pada Java
Perulangan for atau looping for termasuk dalam jenis perulangan yang cukup banyak digunakan bukan hanya di java namun dibahasa pemrograman lain seperti PHP, C++ dan Python. Perulangan ini digunakan ketika ingin mengenkseskusi perintah program yang sama dengan jumlah proses perulangan yang sudah diketahui dengan mengacu pada kondisi yang ditetapkan. Bentuk umum perulangan for adalah seperti berikut :
for (nilai_awal; kondisi; modifier){
pernyataan_yang_diulang;
}
Keterangan :
- Nilai Awal : Bagian dimana kita menginisialisasi nilai awal dimana menjadi titik awal perulangan dimulai.
- Kondisi : Bagian untuk menetapkan suatu kondisi tertentu, ketika kondisi bernilai benar perulangan akan terus berjalan.
- Modifier : Bagian dimana kita dapat melakukan penambahan nilai (increment) atau bisa juga penurunan nilai (decrement) pada nilai awal yang telah di inisialisasi.
Setiap instruksi yang terdapat didalam blok perulangan For akan diulang secara terus-menerus hingga kondisi bernilai salah (false).
Contoh :
package perulangan;public class perulangan_for {public static void main(String[] args) {for (int i=1;i<=10;i++){System.out.print(i+", ");}}}
Pada program diatas pada perulangan for untuk parameter pertama kita lakukan inisialisasi nilai awal variabel i=1. kemudian kita membuat kondisi i<=10. pada bagian modifier kita melakukan penambahan (increment) nilai i++. Artinya bahwa ketika kondisi bernilai benar nilai i akan ditambahkan 1 begitu seterusnya hingga kondisi bernilai false.
Hasil Output :
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Coba perhatikan dari hasil output diatas instruksi didalam blok for System.out.print(i+”, “); untuk mencetak nilai i terus dilakukan hingga nilai i memenuhi kondisi i<=10.
Mengganti Modifier
Kalo pada contoh pertama kita menggunakan modifier penambahan nilai (+1) dari nilai awal yang diinisialisasi, bagaimana jika kita ingin menambahkan (+2) pada nilai awal tersebut. Coba perhatikan program dibawah ini :
package perulangan;public class perulangan_for {public static void main(String[] args) {for (int i=1;i<=10;i=i+2){System.out.print(i+", ");}}}
Pada bagian modifier kita membuat i=i+2 artinya bawha nilai i akan ditambahkan (+2) dari setiap perulangan yang dilakukan.
Hasil Output :
1, 3, 5, 7, 9,
Dari hasil output diatas dapat kita lihat bahwa nilai i dilakukan penambahan (+2) pada setiap perulangan yang terjadi, hingga memenuhi kondisi yang ditetapkan bahwa nilai i harus kurang dari atau sama dengan 10.
2. Perulangan While Pada Java
Perulangan while adalah jenis perulangan yang digunakan ketika kita belum mengetahui jumlah proses perulangan, Banyaknya perulangan ditentukan dari proses inisialisasi dan kondisi yang didefinisikan. Berbeda dengan perulangan for yang sudah dapat kita ketahui jumlah proses perulangan dari kondisi yang ditetapkan.
while (kondisi){
pernyataan;
}
Keterangan :
- Kondisi – Sebagai sebuah syarat untuk menghentikan proses perulangan
- Pernyataan – Bagian instruksi-instuksi program yang akan diulang saat kondisi bernilai benar (true)
Untuk mengehantikan perulangan harus ada suatu perintah yang digunakan untuk mengubah nilai kondisi menjadi false agar proses perulangan dapat berhenti.
Contoh :
package perulangan;import java.util.Scanner;public class perulangan_while {public static void main(String[] args) {Scanner input=new Scanner(System.in);int bilangan=1;while (bilangan!=0){System.out.print("Masukkan Bilangan 0 : ");bilangan=input.nextInt();}}}
Pada contoh program diatas kita menggunakan fungsi scanner untuk pengguna dapat menginput nilai saat program sedang berjalan.
Terdapat variabel bilangan dengan tipe data integer dan nilai awal adalah 1. Kemudian ada perulangan while dengan kondisi bilangan!=0 syarat ini berarti jika nilai yang terdapat di dalam variabel bilangan isi-nya bukan 0 maka perulangan akan terus dilakukan sampai variabel bilangan harus berisi nilai 0. Perulangan dilakukan dengan mencetak kalimat “Masukan Bilangan 0 : ” dimana user akan memasukan bilangan, selama bilangan yang dimasukan oleh pengguna bukanlah 0 program ini akan terus diulang-ulang. Program akan berhenti ketika pengguna mamasukan bilangan 0.
Output :
Maukkan Bilangan 0 : 1
Maukkan Bilangan 0 : 4
Maukkan Bilangan 0 : 5
Maukkan Bilangan 0 : 6
Maukkan Bilangan 0 : 7
Maukkan Bilangan 0 : 0
Coba perhatikan pada hasil output diatas pada iterasi ke-1 saya memasukan bilangan 1, program akan mengecek apakah 1 tidak sama dengan 0 ? Jawabannya iya benar maka perulangan di lakukan kembali, pada iterasi ke-2 saya memasukan bilangan 4, dicek lagi apakah 4 tidak sama dengan 0 ? iya benar maka program akan diulang terus hingga pada iterasi ke-6 saya memasukan bilangan 0, sehingga ketika dicek apakah 0 tidak sama dengan 0 ? jawabanya salah sehingga kondisi bernilai false maka perulangan while saat itu juga dihentikan.
Dan inilah Program untuk penulisan Fungsi Iterasi (Iterated/Nesting Function) dengan menggunakan Struktur Perulangan While :
import java.util.Scanner;public class NestedFunction {public static void main(String[] args) {Scanner in = new Scanner(System.in);int i = 1;System.out.println("f^n(x)");System.out.print("Input n : ");int n = in.nextInt();i = 1;while (i <= n){System.out.print("f(");i++;}System.out.print("x");i = 1;while (i <= n){System.out.print(")");i++;}}}
3. Perulagan Do While Pada Java
Perulangan Do While merupakan masih saudaraan dengan perulangan while perbedaan dari keduanya adalah jika pada perulangan while kondisi sebagai syarat perulangan yang akan dilakukan di cek pada awal sebelum perulangan dilakukan, jika bernilai benar (true) baru kemudian perulangan dijalankan. Sedangkan pada perulangan Do While perulangan dilakukan terlebih dahulu minimal sekali baru kemudian setelah itu dicek kondisinya, jadi dengan kata lain do While pengecekan kondisinya setelah perulangan dilakukan sementara while sebelum dilakukan.
Bentuk Umum :
do {
pernyataan;
} while (kondisi);
Pernyataan di dalam blok do {} akan dieksekusi (minimal 1 kali) lalu kemudian akan di cek kondisi-nya. Coba perhatikan contoh berikut :
package perulangan;public class perulangan_do_while {public static void main(String[] args) {int bilangan=1;do{System.out.println(bilangan);}while (bilangan>=5);}}
Hasil Output :
1
Coba perhatikan contoh program diatas, saya membuat variabel bilangan dengan nilai 1. Kemudian selanjutnya terdapat perulangan do while, dimana program akan mencetak terlebih dahulu nilai pada variabel bilangan lihat pada : System.out.println(bilangan); nilai pada variabel tersebut adalah 1 dan nilai tersebut dicetak, lalu baru setelah itu di cek kondisi apakah nilai pada variabel bilangan dalam hal ini apakah 1 lebih besar dari atau sama dengan 5? Jawabannya salah (false) sehingga perulangan dihentikan. Namun karena perulangan do while dikerjakan terlebih dahulu makanya nilai 1 telah dicetak sebelum pengecekan kondisi dilakukan.
4. Perulangan Bersarang (Nested Loop)
Sumber (Sebagian) : Allmakruf.blogspot.com
Di dalam blok perulangan, kita juga dapat membuat perulangan. Ini disebut dengan nested loop atau perulangan bersarang atau perulangan di dalam perualangan.
public class Main {public static void main(String args[]) {int angka = 4;for(int i = 0; i < 3; i++) {for(int j = 0; j < 5; j++) {System.out.print(angka + " ");angka++;}System.out.print("\n");}}}
Atau yang ini :
public class Main {public static void main(String[] args) {for(int i = 0; i < 10; i++){for(int j = 0; j < 10; j++){System.out.println("Perulangan ke ("+i+", "+j+")");}}}}
5. Perulangan Tak Hingga (Infinite Loop)
Ada suatu kondisi (dari data misalnya) atau bahkan kesalahan/bug dari kode yang dibuat sehingga menyebabkan proses looping tidak berhenti atau disebut Infinite Loops.
Hal ini akan membuat proses dalam Aplikasi yang kita buat menjalankan proses terus-menerus sampai not responding dan hanya dapat dihentikan dengan paksa (Task Manager -> End Task). Karena itu dalam membuat perulangan kita harus sangat berhati-hati.
public class Main {public static void main(String args[]) {int i = 1;while (i <= 5){System.out.println("Hello World");}}}
Dan juga Infinite Loop yang terbentuk dengan Struktur Perulangan For :
public class Main {public static void main(String args[]) {for (int i=1; i>=1; i++){System.out.println("Nilai dari vaiabel i adalah : "+ i);}}}
Ini adalah Infinite Loop karena kita menaikkan nilai i sehingga selalu memenuhi kondisi i >= 1, kondisi tidak akan pernah kembali False.
ARRAY DALAM BAHASA PEMROGRAMAN JAVA
Dikebanyakan bahasa pemrograman array sangat penting dan banyak digunakan. Array membantu kita untuk membuat sebuah variabel yang dapat diisi oleh banyak nilai, dengan kata lain kita tidak perlu membuat banyak variabel. Cukup satu variabel namun bisa menampung banyak nilai, dengan catatan tipe data yang digunakan harus sama ya. jadi misalnya sebuah array menggunakan tipe Integer maka semua nilai dalam variabel tersebut harus ber-tipe sama yaitu Integer.
Array adalah sebuah variabel yang punya kemampuan untuk menyimpan lebih dari 1 nilai yang memiliki tipe yang sama. Atau dalam kata lain array adalah sekumpulan data dengan tipe data yang sama.
A. Array 1 Dimensi
Sumber : Kelasprogrammer.com
Array (larik) adalah sebuah objek yang dapat menampung banyak data dengan tipe yang sama. Setiap data akan di simpan dan dapat di akses melalui indeks array, indeks array dimulai dari 0. untuk mengakses data tersebut maka perlu disebutkan di indeks ke berapa data itu berada.
Coba perhatikan ilustrasi berikut :
String mahasiswa, mahasiswa2, mahasiswa3, mahasiswa4, mahasiswa5;
Contoh di atas kita membuat variabel untuk menyimpan 5 mahasiswa, cara di atas tentu tidak efisien karena terlalu banyak membuat variabel, coba bayangkan jika ada 1000 mahasiswa apakah kalian akan membuat variabel mahasiswa sebanyak itu? tentu saja tidak! Itu sebabnya array menjadi solusi dari permasalahan ini, mari kita lihat bagaimana penggunaan Array di Bahasa Pemrograman Java, berikut ini :
1. Deklarasi Array di Java
Array sebelum digunakan, kita perlu deklarasi terlebih dahulu.
String [] mahasiswa;
//atau
String [] mahasiswa = new String[5]
Kedua cara di atas dapat kalian gunakan untuk deklarasi array di java.
2. Contoh Program Java dengan Array
public class Array1{public static void main (String args[]){//Deklarasi arrayString[] mahasiswa = {"Rini","Aldi","Acep","Putra"};//Menampilkan isi array pada indeks ke-2System.out.println(mahasiswa[2]);}}
Perhatikan pada program di atas, kita mendeklarasikan array dengan nama mahasiswa dengan tipe string yang memiliki 4 anggota/elemen, yaitu Rini, Aldi, Acep dan Putra. Setiap nilai menempati indeks Array seperti berikut.
Untuk menampikan mahasiswa dengan nama Acep, maka indeks array yang di akses adalah indeks ke-2, sehingga program diatas akan menghasilkan output ‘Acep’.
Jika ingin menampilkan semua elemen array maka perintah yang digunakan adalah
System.out.println(mahasiswa[0]);
System.out.println(mahasiswa[1]);
System.out.println(mahasiswa[2]);
System.out.println(mahasiswa[3]);
3. Menampilkan Elemen Array Menggunakan Perulangan
Jika array mempunyai banyak elemen, untuk lebih efisien kita bisa menggunakan perulangan untuk mengakses setiap nilai dalam array.
public class Array2{public static void main (String args[]){String[]mahasiswa = {"Rini","Aldi","Bayu","Juan","Ikbal"};for (int i=0;i<mahasiswa.length;i++){System.out.println(mahasiswa[i]);}}}
Program di atas kita menggunakan perulangan for dengan menggunakan atribut length untuk mendapatkan jumlah elemen array, sehingga perulangan dilakukan kurang dari jumlah tersebut, karena indeks array dimulai dari 0.
4. Contoh Program Array Menggunakan Class Scanner
Pada program yang ketiga, kita akan belajar bagaimana penggunaan array di java dengan menggunakan class scanner untuk menerima inputan dari keyboard.
import java.util.Scanner;public class Array3{public static void main (String args[]){Scanner input=new Scanner(System.in);System.out.print("Masukan Jumlah Kata : ");int n=input.nextInt();//Deklarasi arrayString kata[]=new String[n];//Input data ke arrayfor(int i=0;i<kata.length;i++){System.out.print("Kata ke "+(i+1)+" : ");kata [i]=input.next();}//Menampilkan data dalam arraySystem.out.println("Kata-kata yang dimasukan");for(int i=0;i<kata.length;i++){System.out.println(kata[i]);}}}
Program diatas kita membuat objek dengan nama input yang mengacu pada class scanner. Nantinya user akan diminta memasukan jumlah kata yang di tampung pada variabel n.
Array dibuat dengan nama kata dengan tipe string, array ini akan memiliki jumlah elemen sebanyak nilai n.
User akan memasukan setiap kata yang akan disimpan pada array kata[] yang mengacu pada indeks ke-i sesuai dengan nilai i dalam proses perulangan tersebut.
Pada bagian akhir program kita mencetak seluruh nilai dalam array kata menggunakan perulangan for juga. Hasilnya seperti pada berikut ini :
Kata ke 1 : Buku
Kata ke 2 : Pensil
Kata ke 3 : Penghapus
Kata ke 4 : Pulpen
Kata ke 5 : Penggaris
Kata ke 6 : Pita Koreksi
Kata-kata yang dimasukan
Buku
Pensil
Penghapus
Pulpen
Penggaris
Pita Koreksi
5. Contoh Program Array Dengan Percabangan
Contoh yang terakhir kita menggunakan percabangan if. program yang dibuat tentang data nilai mahasiswa.
Pengguna akan memasukan jumlah mahasiswa yang akan diinput, kemudian memasukan masing-masing nama dan nilai mahasiswa. Jika nilai mahasiswa dibawah atau sama dengan 50 maka mahasiswa tersebut dinyatakan statusnya tidak lulus.
Berikut ini contoh programnya :
import java.util.Scanner;public class Array4 {public static void main (String args[]){Scanner input=new Scanner(System.in);System.out.print("Masukan Jumlah Mahasiswa : ");int n=input.nextInt();String nama[] = new String[n];String status[] = new String[n];int nilai[] = new int[n];for (int i=0;i<n;i++){System.out.println("Mahasiswa Ke : "+(i+1));System.out.print("Nama : ");nama[i]=input.next();System.out.print("Nilai : ");nilai[i]=input.nextInt();if (nilai[i]<=60) {status[i]="Tidak Lulus";} else {status[i]="Lulus";}}System.out.println("DAFTAR NILAI MAHASISWA");System.out.println("======================");System.out.println("No Nama Nilai Status ");for (int i=0; i<n;i++) {System.out.println((i+1)+" "+nama[i]+" "+nilai[i]+" "+status[i]);}}}
Contoh Hasil Output :
Masukan Jumlah Mahasiswa : 3
Mahasiswa Ke : 1
Nama : Adi
Nilai : 50
Mahasiswa Ke : 2
Nama : Lina
Nilai : 75
Mahasiswa Ke : 3
Nama : Tomi
Nilai : 90
DAFTAR NILAI MAHASISWA
======================
No Nama Nilai Status
1 Adi 50 Tidak Lulus
2 Lina 75 Lulus
3 Tomi 90 Lulus
B. Array 2 Dimensi
Sumber : Kelasprogrammer.com
Array 2 Dimensi adalah jenis array yang memiliki 2 bentuk indeks array yang dibentuk dari Baris dan Kolom. Array 2 dimensi bisa juga disebut array multidimensi karena memiliki lebih dari satu bentuk indeks. Array jenis ini biasanya digunakan untuk membuat matriks.
1. Contoh Array 2 Dimensi
Perhatikan tabel di bawah ini yang menggambarkan penggunaan array dua dimensi. Untuk mengakses ‘B’ kita dapat menggunakan indeks [0] [1] Indeks yang disebutkan adalah baris setelah itu baru kolom.
Contoh lain, misalnya kita ingin mengakses ‘G’ maka indeks baris & kolom ke berapa yang kita gunakan? Iya jawabannya adalah indeks [2] [0].
Lewat ilustrasi ini muda-mudahan kalian bisa memahami penggunaan struktur array 2 dimensi. Selanjutnya kita coba implementasi ke dalam contoh program Array 2 dimensi di Java.
2. Impelementasi Ke Program Java
Di dalam java array dua dimensi dapat di inisialisasi seperti berikut :
tipe_data[][] nama_array;
Pada array dua dimensi memiliki dua tanda [] (bracket) yang menandakan dua subskrip, yaitu baris dan kolom.
Dari Ilustrasi di atas, kita coba implementasi ke dalam Program Java berikut :
public class Array2Dimensi1 {public static void main (String args[]){//Deklarasi arrayString[][]huruf = {{"A","B","C"},{"D","E","F"},{"G","H","I"}};//Menampilkan isi array pada indeks ke-[0][1] dan [2][0]System.out.println(huruf[0][1]);System.out.println(huruf[2][0]);}}
Program di atas kita membuat array dua dimensi dengan nama huruf yang memiliki nilai yang tercantum di dalam tanda {}. Setiap nilai tersebut nantinya menempati indeks subskrip baris dan kolom.
Sebagai contoh ketika kita ingin mengakses huruf ‘B’ maka indeks array yang dipanggil adalah [0] [1] atau huruf ‘G’ yang berada pada indek [2] [0].
Berikut adalah hasil output nya :
B
G
3. Mengakses Indeks Array 2 Dimensi Dengan Perulangan
Untuk menampilkan elemen array kita bisa memanfaatkan struktur perulangan for. Karena array 2 dimensi terdiri dari 2 bentuk subskrip (baris & kolom) maka perlu untuk dibuat dua kali perulangan. Perulangan yang pertama untuk mengakses baris dan yang kedua mengakses kolom.
public class Array2Dimensi1{public static void main (String args[]){//Deklarasi array 2 dimensiString[][]huruf = {{"A","B","C"},{"D","E","F"},{"G","H","I"},};//Menampilkan isi array dengan perulanganfor (int i=0;i<3;i++){for (int j=0;j<3;j++){System.out.print(huruf[i][j]+" ");}System.out.println();}}}
Coba perhatikan pada program di atas, karena bentuk array yang kita buat adalah 3 x 3 maka kondisi pada perulangan for kita batasi nilainya < 3.
Perulangan pertama dengan variabel i sebagai nilai indeks untuk elemen baris dan perulangan kedua menggunakan variabel j untuk indeks kolom.
Hasil program di atas seperti pada output dibawah ini :
A B C
D E F
G H I
4. Contoh Program Array 2 Dimensi Data Mahasiswa
Pada contoh program yang terakhir mengenai data mahasiswa menggunakan Array 2 dimensi. Program ini akan menampilkan NIM, Nama dan jurusan mahasiswa yang di simpan pada Array multidimensi.
import java.util.Scanner;public class ArrayMahasiswa{public static void main(String[] args){Scanner masuk=new Scanner (System.in);System.out.print("Jumlah Mahasiswa : ");int n=masuk.nextInt();String mahasiswa[][] = new String[n][3];for(int i= 0; i<n; i++){System.out.println("");System.out.println("Data Mahasiswa ke "+(i+1));for(int j=0;j<3;j++){if (j == 0)System.out.print("NIM : ");else if (j == 1)System.out.print("Nama : ");elseSystem.out.print("Jurusan : ");System.out.print("");mahasiswa[i][j] = masuk.next();}}System.out.println("Data Mahasiswa yang dimasukan");System.out.println("-----------------------------");System.out.println("NIM \t\t\t NAMA \t\t JURUSAN \t");for(int i=0;i<n;i++){for(int j=0;j<3;j++){System.out.print(mahasiswa[i][j]+"\t\t");}System.out.println();}}}
Jika dijalankan maka hasilnya seperti Output yang ada di bawah ini.
Hasil Output :
Jumlah Mahasiswa : 4
Data Mahasiswa ke 1
NIM : 135410154
Nama : Dimas
Jurusan : Teknik Informatika
Data Mahasiswa ke 2
NIM : 13565712
Nama : Mila
Jurusan : Sistem Informasi
Data Mahasiswa ke 3
NIM : 135410156
Nama : Gilang
Jurusan : Teknik Komputer
Data Mahasiswa ke 4
NIM : 135768829
Nama : Putra
Jurusan : Akutansi
Data Mahasiswa yang dimasukan
-----------------------------
NIM NAMA JURUSAN
135410154 Dimas Teknik Informatika
13565712 Mila Sistem Informasi
135410156 Gilang Teknik Komputer
135768829 Putra Akutansi
Program ini dapat kalian ubah sesuai dengan kebutuhan program yang ingin dibuat.
Vector Class mengimplementasikan array objek yang dapat ditumbuhkan. Vector termasuk dalam kelas warisan, tetapi sekarang sepenuhnya kompatibel dengan koleksi. Itu ditemukan dalam paket java.util dan mengimplementasikan antarmuka List, sehingga kita dapat menggunakan semua metode antarmuka List seperti yang ditunjukkan di bawah ini :
- Vektor mengimplementasikan larik dinamis yang berarti dapat bertambah atau berkurang sesuai kebutuhan. Seperti sebuah array, ia berisi komponen yang dapat diakses menggunakan indeks integer.
- Mereka sangat mirip dengan ArrayList, tetapi Vector disinkronkan dan memiliki beberapa metode lama yang tidak dikandung oleh kerangka pengumpulan.
- Itu juga mempertahankan urutan penyisipan seperti ArrayList. Namun, ini jarang digunakan di lingkungan non-utas karena disinkronkan, dan karena itu, ia memberikan kinerja yang buruk dalam menambahkan, mencari, menghapus, dan memperbarui elemennya.
- Iterator yang dikembalikan oleh kelas Vector gagal-cepat. Dalam kasus modifikasi bersamaan, itu gagal dan melempar ConcurrentModificationException.
Sintaks :
public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable
- Ini memperluas AbstractList dan mengimplementasikan antarmuka List.
- Ini mengimplementasikan antarmuka Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess.
- Subclass yang diketahui langsung adalah Stack.
Poin-poin penting mengenai peningkatan kapasitas vektor adalah sebagai berikut :
Jika kenaikan ditentukan, Vektor akan berkembang sesuai dengan itu di setiap siklus alokasi. Namun, jika kenaikan tidak ditentukan, maka kapasitas vektor menjadi dua kali lipat di setiap siklus alokasi. Vektor mendefinisikan tiga anggota data yang dilindungi :
- int capacityIncreament : Berisi nilai kenaikan.
- int elementCount : Jumlah elemen saat ini dalam vektor yang disimpan di dalamnya.
- Object elementData[] : Array yang menampung vektor disimpan di dalamnya.
Kesalahan umum dalam deklarasi Vektor adalah sebagai berikut :
- Vektor melempar IllegalArgumentException jika InitialSize dari vektor yang ditentukan adalah negatif.
- Jika koleksi yang ditentukan adalah nol, Itu melempar NullPointerException.
A. Konstruktor
1. Vector() : Membuat vektor default dengan kapasitas awal 10.
Vector<E> v = new Vector<E>();
2. Vector(int size) : Membuat vektor yang kapasitas awalnya ditentukan oleh ukuran.
Vector<E> v = new Vector<E>(int size);
3. Vector(int size, int incr) : Membuat vektor yang kapasitas awalnya ditentukan oleh ukuran dan kenaikan ditentukan oleh incr. Ini menentukan jumlah elemen untuk dialokasikan setiap kali vektor diubah ukurannya ke atas.
Vector<E> v = new Vector<E>(int size, int incr);
4. Vector(Koleksi c) : Membuat vektor yang berisi elemen koleksi c.
Vector<E> v = new Vector<E>(Collection c);
B. Metode di Vector Class
- add(E e) : Menambahkan elemen yang ditentukan ke akhir Vektor ini.
- add(int index, E element) : Menyisipkan elemen tertentu pada posisi yang ditentukan dalam Vektor ini.
- addAll(Collection<?extends E> c) : Menambahkan semua elemen dalam Koleksi yang ditentukan ke akhir Vektor ini, dalam urutan yang dikembalikan oleh Iterator Koleksi yang ditentukan.
- addAll(int index,Collection<? extends E> c) : Masukkan semua elemen dalam Koleksi yang ditentukan ke dalam Vektor ini pada posisi yang ditentukan.
- addElement(E obj) : Menambahkan komponen yang ditentukan ke akhir vektor ini, meningkatkan ukurannya satu per satu.
- capacity() : Mengembalikan kapasitas saat ini dari vektor ini.
- clear() : Menghapus semua elemen dari Vektor ini.
- clone() : Mengembalikan tiruan dari vektor ini.
- berisi(Objek o) : Mengembalikan nilai true jika vektor ini berisi elemen yang ditentukan.
- berisiSemua(Koleksi<?> c) : Mengembalikan nilai true jika Vektor ini berisi semua elemen dalam Koleksi yang ditentukan.
- copyInto(Object[] anArray) : Menyalin komponen vektor ini ke dalam array yang ditentukan.
- elementAt(int index) : Mengembalikan komponen pada indeks yang ditentukan.
- elemen() : Mengembalikan enumerasi komponen vektor ini.
- sureCapacity(int minCapacity) : Meningkatkan kapasitas vektor ini, jika perlu, untuk memastikan bahwa ia dapat menampung setidaknya jumlah komponen yang ditentukan oleh argumen kapasitas minimum.
- equals(Object o) : Membandingkan Objek yang ditentukan dengan Vektor ini untuk kesetaraan.
- firstElement() : Mengembalikan komponen pertama (item pada indeks 0) dari vektor ini.
- forEach(Consumer<?super E> action) : Melakukan tindakan yang diberikan untuk setiap elemen dari Iterable hingga semua elemen telah diproses atau tindakan tersebut mengeluarkan pengecualian.
- get(int index) : Mengembalikan elemen pada posisi yang ditentukan dalam Vektor ini.
- hashCode() : Mengembalikan nilai kode hash untuk Vektor ini.
- indexOf(Objek o)
- Mengembalikan indeks kemunculan pertama elemen yang ditentukan dalam vektor ini, atau -1 jika vektor ini tidak berisi elemen tersebut.
- indexOf(Object o, int index) : Mengembalikan indeks kemunculan pertama dari elemen yang ditentukan dalam vektor ini, mencari ke depan dari indeks, atau mengembalikan -1 jika elemen tidak ditemukan.
- insertElementAt(E obj, int index) : Menyisipkan objek tertentu sebagai komponen dalam vektor ini pada indeks yang ditentukan.
- isEmpty() : Menguji apakah vektor ini tidak memiliki komponen.
- iterator() : Mengembalikan iterator atas elemen-elemen dalam daftar ini dalam urutan yang benar.
- lastElement() : Mengembalikan komponen terakhir dari vektor.
- lastIndexOf(Object o) : Mengembalikan indeks kemunculan terakhir dari elemen yang ditentukan dalam vektor ini, atau -1 jika vektor ini tidak mengandung elemen.
- lastIndexOf(Object o, int index) : Mengembalikan indeks kemunculan terakhir dari elemen yang ditentukan dalam vektor ini, mencari mundur dari indeks, atau mengembalikan -1 jika elemen tidak ditemukan.
- listIterator() : Mengembalikan daftar iterator di atas elemen dalam daftar ini (dalam urutan yang benar).
- listIterator(int index) : Mengembalikan daftar iterator di atas elemen dalam daftar ini (dalam urutan yang benar), mulai dari posisi yang ditentukan dalam daftar.
- remove(int index) : Menghapus elemen pada posisi yang ditentukan dalam Vektor ini.
- remove(Object o) : Menghapus kemunculan pertama dari elemen yang ditentukan dalam Vektor ini. Jika Vektor tidak mengandung elemen, itu tidak berubah.
- removeAll(Collection<?> c) : Menghapus dari Vektor ini semua elemennya yang terkandung dalam Koleksi yang ditentukan.
- removeAllElements() : Menghapus semua komponen dari vektor ini dan menetapkan ukurannya ke nol.
- removeElement(Object obj) : Menghapus kemunculan argumen pertama (diindeks terendah) dari vektor ini.
- removeElementAt(int index) : Menghapus komponen pada indeks yang ditentukan.
- removeIf(Predicate<? super E> filter) : Menghapus semua elemen koleksi ini yang memenuhi predikat yang diberikan.
- removeRange(int fromIndex, int toIndex) : Menghapus dari daftar ini semua elemen yang indeksnya berada di antara fromIndex, inklusif, dan toIndex, eksklusif.
- replaceAll(UnaryOperator<E> operator) : Mengganti setiap elemen dari daftar ini dengan hasil penerapan operator ke elemen tersebut.
- retainAll(Collection<?> c) : Hanya mempertahankan elemen dalam Vektor ini yang terkandung dalam Koleksi yang ditentukan.
- set(int index, E element) : Mengganti elemen pada posisi yang ditentukan dalam Vektor ini dengan elemen yang ditentukan.
- setElementAt(E obj, int index) : Menetapkan komponen pada indeks yang ditentukan dari vektor ini menjadi objek yang ditentukan.
- setSize(int newSize) : Mengatur ukuran vektor ini.
- size() : Mengembalikan jumlah komponen dalam vektor ini.
- sort(Comparator<? super E> c) Mengurutkan daftar ini menurut urutan yang dibuat oleh Comparator yang ditentukan.
- spliterator() : Membuat Spliterator late-binding dan fail-fast pada elemen-elemen dalam daftar ini.
- subList(int fromIndex, int toIndex) : Mengembalikan tampilan bagian Daftar ini antara fromIndex, inklusif, dan toIndex, eksklusif.
- toArray() : Mengembalikan array yang berisi semua elemen dalam Vektor ini dalam urutan yang benar.
- toArray(T[] a) : Mengembalikan array yang berisi semua elemen dalam Vektor ini dalam urutan yang benar; tipe runtime dari array yang dikembalikan adalah array yang ditentukan.
- toString() : Mengembalikan representasi string dari Vektor ini, yang berisi representasi String dari setiap elemen.
- trimToSize() : Memangkas kapasitas vektor ini menjadi ukuran vektor saat ini.
Mari kita bahas dan implementasikan cara membuat dan menggunakan Vektor terlebih dahulu sebelum membahas metode kelas ini.
Contoh :
// Program Java untuk Mendemonstrasikan Kerja Vector// Melalui Membuat dan Menggunakannya// Mengimpor class yang diperlukanimport java.io.*;import java.util.*;// Main classclass Vector {// Main driver methodpublic static void main(String[] args) {// Ukuran Vectorint n = 5;// Mendeklarasikan Vector dengan// ukuran awal nVector<Integer> v = new Vector<Integer>(n);// Menambahkan elemen baru di// akhir dari vektorfor (int i = 1; i <= n; i++)v.add(i);// Mencetak elemenSystem.out.println(v);// Hapus elemen pada indeks 3v.remove(3);// Menampilkan vector// setelah dihapusSystem.out.println(v);// iterasi pada elemen vektor// menggunakan for loopfor (int i = 0; i < v.size(); i++)// Mencetak elemen satu per satuSystem.out.print(v.get(i) + " ");}}
Atau seperti ini :
import java.io.*;import java.util.*;class Vector {public static void main(String[] args) {int n = 5;Vector<Integer> v = new Vector<Integer>(n);for (int i = 1; i <= n; i++)v.add(i);System.out.println(v);v.remove(3);System.out.println(v);for (int i = 0; i < v.size(); i++)System.out.print(v.get(i) + " ");}}
Output :
[1, 2, 3, 4, 5] [1, 2, 3, 5] 1 2 3 5
CONTOH PROGRAM DENGAN BAHASA JAVA
Sumber lainnya : W3resource.com
Dan berikut, inilah Contoh Program Sederhana hingga Kompleks dengan Bahasa Java :
Luas Segitiga
import java.util.Scanner;public class Menghitung_luas_segitiga {public static void main(String[] args) {Scanner input = new Scanner(System.in);int a, t;double luas;System.out.print("Masukan Alas : ");a = input.nextInt();System.out.print("Masukan Tinggi : ");t = input.nextInt();luas = 0.5*a*t;System.out.println("Luas Segitiga : "+luas);}}
Luas dan Keliling Persegi
import java.util.Scanner;public class Persegi {public static void main(String[] args) {Scanner input = new Scanner(System.in);int sisi, keliling, luas;System.out.println("PROGRAM MENGHITUNG LUAS & KELILING PERSEGI ");System.out.println("---------------------------------------------");System.out.print("Masukan Sisi : ");sisi = input.nextInt();keliling = 4*sisi;luas = sisi*sisi;System.out.println("Keliling Persegi : "+keliling);System.out.println("Luas Persegi : "+luas);}}
Luas dan Keliling Persegi Panjang
import java.util.Scanner;public class PersegiPanjang {public static void main(String[] args) {Scanner input = new Scanner(System.in);float panjang, lebar, keliling, luas;System.out.println("PROGRAM MENGHITUNG LUAS & KELILING PERSEGI PANJANG");System.out.println("--------------------------------------------------");System.out.print("Masukan Panjang : ");panjang = input.nextFloat();System.out.print("Masukan Lebar : ");lebar = input.nextFloat();keliling = 2*(panjang+lebar);luas = panjang*lebar;System.out.println("Keliling Persegi Panjang : "+keliling);System.out.println("Luas Persegi Panjang : "+luas);}}
Luas dan Keliling Lingkaran
import java.util.Scanner;public class Lingkaran {public static void main(String[] args) {double keliling, luas, r, pi = 3.1416;Scanner scan = new Scanner(System.in);System.out.println("============================================");System.out.println("Program Menghitung Keliling & Luas Lingkaran");System.out.println("============================================");System.out.print("Masukkan Jari-jari : ");r = scan.nextDouble();keliling = 2 * pi * r;luas = pi * r * r;System.out.println("Keliling Lingkaran adalah : " + keliling);System.out.println("Luas Lingkaran adalah : " + luas);}}
Volume dan Luas Permukaan Kubus
import java.util.Scanner;public class Kubus {public static void main(String[] args) {Scanner input = new Scanner(System.in);float sisi, luas_permukaan, volume;System.out.println("PROGRAM MENGHITUNG VOLUME & LUAS PERMUKAAN KUBUS ");System.out.println("---------------------------------------------------");System.out.print("Masukan Sisi : ");sisi = input.nextFloat();luas_permukaan = 6*sisi*sisi;volume = sisi*sisi*sisi;System.out.println("Luas Permukaan Kubus : "+luas_permukaan);System.out.println("Volume Kubus : "+volume);}}
Volume dan Luas Permukaan Balok
import java.util.Scanner;public class Balok {public static void main(String[] args) {Scanner input = new Scanner(System.in);float panjang, lebar, tinggi, luas_permukaan, volume;System.out.println("PROGRAM MENGHITUNG VOLUME & LUAS PERMUKAAN BALOK");System.out.println("------------------------------------------------");System.out.print("Masukan Panjang\t\t: ");panjang = input.nextFloat();System.out.print("Masukan Lebar\t\t: ");lebar = input.nextFloat();System.out.print("Masukan Tinggi\t\t: ");tinggi = input.nextFloat();luas_permukaan = 2*(panjang*lebar + panjang*tinggi + lebar*tinggi);volume = panjang*lebar*tinggi;System.out.println("Luas Permukaan Balok : "+luas_permukaan);System.out.println("Volume Balok : "+volume);}}
Volume dan Luas Permukaan Tabung
import java.util.Scanner;public class Tabung {public static void main(String[] args) {double r, t;final double pi = 3.1416;double luas_permukaan, volume;Scanner scanInput = new Scanner(System.in);System.out.println("PROGRAM MENGHITUNG LUAS & VOLUME TABUNG");System.out.print("Masukan Jari-jari Lingkaran : ");r = scanInput.nextDouble();System.out.print("Masukan Tinggi Tabung : ");t = scanInput.nextDouble();luas_permukaan = 2*(pi*r*r) + (2*pi*r*t);volume = (pi*r*r)*t;System.out.println("Luas Tabung : " + luas_permukaan);System.out.println("Volume Tabung : " + volume);}}
Volume dan Luas Permukaan Kerucut
import java.util.Scanner;public class Kerucut {public static void main(String[] args) {Scanner userInput = new Scanner(System.in);float pi = 3.1416f;float r, tinggi, s;float luas_permukaan, volume;System.out.println("\tPROGRAM MENGHITUNG LUAS & VOLUME KERUCUT");System.out.print("Masukkan Jari-jari : ");r = userInput.nextFloat();System.out.print("Masukkan Tinggi : ");tinggi = userInput.nextFloat();System.out.print("Masukkan Garis Pelukis : ");s = userInput.nextFloat();luas_permukaan = pi * r * (r + s);volume = 1/(float)3 * pi * r * r * tinggi;System.out.println("\nVolume Kerucut : " + volume);System.out.println("Luas Permukaan Kerucut : " + luas_permukaan);}}
Volume dan Luas Permukaan Bola
import java.util.Scanner;public class Bola {public static void main(String[] args) {Scanner userInput = new Scanner(System.in);float pi = 3.1416f;float rusuk, luas_permukaan, volume;System.out.println("PROGRAM MENGHITUNG LUAS & VOLUME BOLA");System.out.print("Masukkan Rusuk : ");rusuk = userInput.nextFloat();luas_permukaan = 4*pi * rusuk*rusuk;volume = 4 / (float) 3 * pi * rusuk*rusuk*rusuk;System.out.println("\nLuas Bola : " + luas_permukaan);System.out.println("Volume Bola : " + volume);}}
Operasi Hitung Aritmatika
import java.util.Scanner;public class operatorAritmatika {public static void main(String [] args){double hasil;Scanner scn = new Scanner (System.in);System.out.print("Masukan Angka Pertama : ");double angka1 = scn.nextInt();System.out.print("Masukan Angka Kedua : ");double angka2 = scn.nextInt();hasil = angka1 + angka2;System.out.println("Penjumlahan : " + hasil);hasil = angka1 - angka2;System.out.println("Pengurangan : " + hasil);hasil = angka1 * angka2;System.out.println("Perkalian : " + hasil);hasil = angka1 / angka2;System.out.println("Pembagian : " + hasil);}}
Operasi Hitung Perbandingan
import java.util.Scanner;public class operatorPembanding {public static void main(String [] args){boolean hasil;Scanner scn = new Scanner (System.in);System.out.print("Masukan Angka Pertama (a) : ");double angka1 = scn.nextInt();System.out.print("Masukan Angka Kedua (b) : ");double angka2 = scn.nextInt();hasil = angka1 == angka2;System.out.println("a = b : " + hasil);hasil = angka1 != angka2;System.out.println("a != b : " + hasil);hasil = angka1 > angka2;System.out.println("a > b : " + hasil);hasil = angka1 < angka2;System.out.println("a < b : " + hasil);hasil = angka1 >= angka2;System.out.println("a >= b : " + hasil);hasil = angka1 <= angka2;System.out.println("a <= b : " + hasil);}}
Faktorial Iteratif
import java.util.Scanner;public class Faktorial {public static void main(String[] args) {Scanner input = new Scanner(System.in);int n,i,fak;fak=1;System.out.print("Masukkan Angka : ");n=input.nextInt();if(n>0){for(i=1;i<n;i++)fak=fak*(n-i);fak=fak*n;}else{fak=1;}System.out.println(+n+ "! = " +fak);}}
Akar Persamaan Kuadrat
import java.util.Scanner;import static java.lang.Math.*;public class AkarPersamaanKudarat {private static void PersamaanKuadrat(int a, int b, int c){float D,X1 = 0,X2=0;D=(b*b)-(4*a*c);if(D<0){System.out.println("Akar-Akar persamaan kuadratnya Imajiner");}else if(D>0){X1=(float) (-b + sqrt(D))/(2*a);X2=(float) (-b - sqrt(D))/(2*a);}else{X1=(float) (-b + sqrt(D))/(2*a);X2=X1;}System.out.println("Bentuk Persamaan :");System.out.println(a+"x^2 + "+b+"x + "+c+" = 0");System.out.println("\nAkar-Akar Persamaan Kuadratnya adalah :");System.out.println("X1 : "+X1);System.out.println("X2 : "+X2);}public static void main(String[] args) {int A,B,C;Scanner input = new Scanner(System.in);System.out.print("Masukkan a : ");A=input.nextInt();System.out.print("Masukkan b : ");B=input.nextInt();System.out.print("Masukkan c : ");C=input.nextInt();System.out.println();PersamaanKuadrat(A, B, C);}}
Program Besaran Vektor dalam Fisika
import java.util.Scanner;import static java.lang.Math.*;public class VektorFisika {public static void main(String[] args) {Scanner input = new Scanner(System.in);int a, b;double R, theta;System.out.println("Program Vektor dalam Fisika");System.out.print("Masukkan nilai A : ");a = input.nextInt();System.out.print("Masukkan nilai B : ");b = input.nextInt();System.out.println("\nResultan Dua Vektor Sejajar");R = abs(a+b);System.out.println("R = |"+a+"+"+b+"| = "+R);System.out.println("\nResultan Dua Vektor yang Saling Tegak Lurus");R = sqrt(a*a+b*b);theta = atan(b/a);System.out.println("R = sqrt("+a+"^2+"+b+"^2) = "+R);System.out.println("tan(Īø) = "+b+"/"+a+", Īø = tan^-1("+b+"/"+a+") = "+theta+"°");}}
Program Rumus Kecepatan (Fisika)
import java.util.Scanner;class Kecepatan{public static void main(String[] args){Scanner input = new Scanner(System.in);double kecepatan, waktu, jarak;System.out.println(" PROGRAM RUMUS KECEPATAN DALAM FISIKA ");System.out.println("===============================================");System.out.println(" Keterangan ");System.out.println("1. v = Kecepatan (m/s)");System.out.println("2. t = Waktu (s)");System.out.println("3. s = Jarak (m)");System.out.println("===============================================");System.out.print("Masukan Pilihan : ");int pilih = input.nextInt();if (pilih == 1) {System.out.println("Anda ingin mencari Kecepatan");System.out.println("Rumus : v = s/t");System.out.println("============================================");System.out.print("Masukkan Jarak (m) : ");int distance = input.nextInt();System.out.print("Masukkan Waktu (s) : ");int time = input.nextInt();kecepatan = distance/time;System.out.println("v = "+kecepatan+" m/s");}else if (pilih == 2) {System.out.println("Anda ingin mencari Waktu");System.out.println("Rumus : t = s/v");System.out.println("============================================");System.out.print("Masukkan Jarak (m) : ");int distance = input.nextInt();System.out.print("Masukkan Kecepatan (m/s) : ");int velocity = input.nextInt();waktu = distance/velocity;System.out.println("t = "+waktu+" s");}else if (pilih == 3) {System.out.println("Anda ingin mencari Jarak");System.out.println("Rumus : s = v*t");System.out.println("============================================");System.out.print("Masukkan Kecepatan (m/s) : ");int velocity = input.nextInt();System.out.print("Masukkan Waktu (s) : ");int time = input.nextInt();jarak = velocity*time;System.out.println("s = "+jarak+" m");}else {System.out.println("Invalid");}}}
Memeriksa Tahun Kabisat
import java.util.Scanner;public class LeapYearCheck{public static void main(String[] args) {System.out.println("Program Cek Tahun Kabisat (Masehi/Gregorian)");System.out.println("============================================");System.out.println();Scanner inp = new Scanner(System.in);int day, year;System.out.print("Input Tahun : ");year = inp.nextInt();if (year%400==0){day=366;System.out.println(year+" adalah Tahun Kabisat");System.out.println("Jumlah Hari : "+day);}else if (year%100==0){day=365;System.out.println(year+" bukan Tahun Kabisat");System.out.println("Jumlah Hari : "+day);}else if (year%4==0){day=366;System.out.println(year+" adalah Tahun Kabisat");System.out.println("Jumlah Hari : "+day);}else{day=365;System.out.println(year+" bukan Tahun Kabisat");System.out.println("Jumlah Hari : "+day);}}}
Program Mencetak Tanda Bintang
import java.util.Scanner;public class TandaBintang{public static void main(String args[]){Scanner scan = new Scanner(System.in);System.out.println(" Program Mencetak Tanda Bintang ");System.out.println("=====================================");System.out.println(" Opsi Menu ");System.out.println("1. Persegi Bintang ");System.out.println("2. Persegi Panjang Bintang ");System.out.println("3. Segitiga Bintang ");System.out.println("4. Segitiga Bintang Terbalik ");System.out.println("5. Piramida Bintang ");System.out.println("6. Piramida Bintang Terbalik ");System.out.println("=====================================");int opsi, n, m, i, j, k;System.out.print("Pilih Opsi : ");opsi = scan.nextInt();if (opsi==1){System.out.println("\n1. Persegi Bintang");System.out.print("Masukkan Jumlah Persegi : ");n = scan.nextInt();System.out.println();for(i=1; i<=n; i++){for(j=1; j<=n; j++){System.out.print(" *");}System.out.println();}}else if (opsi==2){System.out.println("\n2. Persegi Panjang Bintang");System.out.print("Input Tinggi Persegi : ");n = scan.nextInt();System.out.print("Input Lebar Persegi : ");m = scan.nextInt();System.out.println();for(i=1; i<=n; i++) {for(j=1; j<=m; j++) {System.out.print(" *");}System.out.println();}}else if (opsi==3){System.out.println("\n3. Segitiga Bintang");System.out.print("Masukkan Tinggi Segitiga : ");n = scan.nextInt();System.out.println();for(i=1; i<=n; i++) {for(j=1; j<=i; j++) {System.out.print(" *");}System.out.println();}}else if (opsi==4){System.out.println("\n4. Segitiga Bintang Terbalik");System.out.print("Masukkan Tinggi Segitiga : ");n = scan.nextInt();System.out.println();for(i = 0; i<n; i++) {for(j = 1; j<=n-i; j++) {System.out.print(" *");}System.out.println();}}else if (opsi==5){System.out.println("\n5. Piramida Bintang");System.out.print("Masukkan Tinggi Piramida : ");n = scan.nextInt();System.out.println();for(i=1; i<=n; i++) {for(j=1; j<=n-i; j++) {System.out.print(" ");}for(k=1; k<=i; k++) {System.out.print(" *");}System.out.println();}}else if (opsi==6){System.out.println("\n6. Piramida Bintang Terbalik");System.out.print("Masukkan Tinggi Piramida : ");n = scan.nextInt();System.out.println();for(i=0; i<n; i++) {for(j=1; j<=i; j++) {System.out.print(" ");}for(k=1; k<=n-i; k++) {System.out.print(" *");}System.out.println();}}else {System.out.println("Invalid");}}}
Faktorial Rekursif
import java.util.Scanner;public class Faktorial {public static void main(String[] args) {Scanner input= new Scanner(System.in);int angka, hasil;System.out.print("Masukkan Nilai : ");angka=input.nextInt();hasil=faktorial(angka);System.out.println(angka+"!= "+hasil);}public static int faktorial(int angka){if (angka==0||angka==1)return 1;elsereturn angka*faktorial(angka-1);}}
Perpangkatan Iteratif (Iterative Exponentiation)
import java.util.Scanner;public class Main{public static void main(String[ ] args){System.out.println("--------------------------------");System.out.println("Program Pangkat Bilangan");System.out.println("--------------------------------");int hasil = 1;int angka, pangkat;Scanner a = new Scanner(System.in);System.out.print("Angka : ");angka = a.nextInt();Scanner b = new Scanner(System.in);System.out.print("Pangkat : ");pangkat = b.nextInt();for(int i=1;i<=pangkat;i++){hasil=hasil*angka;}System.out.println( "Hasil : "+ hasil);}}
Perpangkatan Rekursif (Recursive Exponentiation)
import java.util.Scanner;public class PerpangkatanRekursif {static void header(String header) {System.out.println(header);}static int pangkatRekursif(int angka, int pangkat) {if (pangkat == 0)return 1;elsereturn angka * pangkatRekursif(angka, pangkat - 1);}public static void main(String[] args) {System.out.println("--------------------------------");System.out.println("Program Pangkat Bilangan");System.out.println("--------------------------------");Scanner masukan = new Scanner(System.in);header("Pangkat Rekursif");System.out.print("Angka : ");int angka = masukan.nextInt();System.out.print("Pangkat : ");int pangkat = masukan.nextInt();int hasil = pangkatRekursif(angka, pangkat);System.out.print("Hasil = " + hasil);System.out.println("");}}
Tetrasi (Tetration)
import java.util.Scanner;import static java.lang.Math.pow;public class Tetration {static void header(String header) {System.out.println(header);}public static int tetrasi(int angka, int tetra) {if (tetra == 0)return 1;elsereturn Math.toIntExact((long) Math.pow(angka, tetrasi(angka, tetra-1)));}public static void main(String[] args) {System.out.println("--------------------------------");System.out.println("Program Tetrasi Bilangan");System.out.println("--------------------------------");Scanner masukan = new Scanner(System.in);header("Pangkat Rekursif");System.out.print("Angka : ");int angka = masukan.nextInt();System.out.print("Tetrasi : ");int tetra = masukan.nextInt();int hasil = tetrasi(angka,tetra);System.out.print("Hasil = " + hasil);System.out.println("");}}
Fungsi Ackermann (Ackermann Function)
import java.util.Scanner;public class Ackermann{public static int ack(int m, int n){if (m == 0){return n + 1;}else if((m > 0) && (n == 0)){return ack(m - 1, 1);}else if((m > 0) && (n > 0)){return ack(m - 1, ack(m, n - 1));}elsereturn n + 1;}public static void main(String args[]){Scanner input = new Scanner(System.in);int x, y, A;System.out.println("Ackermann Function A(x, y)");System.out.print("Insert value of x : ");x = input.nextInt();System.out.print("Insert value of y : ");y = input.nextInt();A = ack(x, y);System.out.println("A("+x+", "+y+") = "+A);}}
Deret Bilangan Ganjil
import java.util.Scanner;public class Ganjil {public static void main(String[] args) {Scanner input = new Scanner(System.in);int batas;System.out.println("-----------------------------------");System.out.println("Program Deret Bilangan Ganjil ");System.out.println("-----------------------------------");System.out.print("Masukan Batas : ");batas = input.nextInt();for (int i = 1; i <= batas; i++) {if (i % 2 != 0)System.out.print(i + " ");}}}
Deret Bilangan Genap
import java.util.Scanner;public class Genap {public static void main(String[] args) {Scanner input = new Scanner(System.in);int batas;System.out.println("-----------------------------------");System.out.println("Program Deret Bilangan Genap ");System.out.println("-----------------------------------");System.out.print("Masukan Batas : ");batas = input.nextInt();for (int i = 1; i <= batas; i++) {if (i % 2 == 0)System.out.print(i + " ");}}}
Deret Bilangan Ganjil-Genap
import java.util.Scanner;public class GanjilGenap {public static void main(String[] args) {Scanner input = new Scanner(System.in);int pil, batas;System.out.println("-----------------------------------");System.out.println("Program Deret Bilangan Ganjil Genap");System.out.println("-----------------------------------");System.out.println("1. Ganjil ");System.out.println("2. Genap ");System.out.println("-----------------------------------");System.out.print("Masukan Pilihan : ");pil = input.nextInt();System.out.print("Masukan Batas : ");batas = input.nextInt();if (pil == 1) {System.out.println("Deret Bilangan Ganjil");for (int i = 1; i <= batas; i++) {if (i % 2 != 0)System.out.print(i + " ");}} else if (pil == 2) {System.out.println("Deret Bilangan Genap");for (int i = 1; i <= batas; i++) {if (i % 2 == 0)System.out.print(i + " ");}} else {System.out.println("Invalid");}}}
Deret Bilangan Prima
import java.util.Scanner;public class bilanganPrima {public static void main(String args[]){Scanner input = new Scanner(System.in);int bil, awal, akhir;System.out.println("Program Deret Bilangan Prima");System.out.print("Mulai dari : ");awal=input.nextInt();System.out.print("Sampai : ");akhir=input.nextInt();System.out.println("-----------------------------");for (int i=awal; i<=akhir; i++){bil=0;for (int j=1;j<=i;j++){if (i%j==0){bil=bil+1;}}if (bil==2){System.out.print(i+" ");}}}}
Menentukan Deret Bilangan Prima
import java.util.Scanner;public class mntknBilPrima {public static void main(String args[]){Scanner input = new Scanner(System.in);int bil, cek=0;System.out.println("PROGRAM MENENTUKAN BILANGAN PRIMA ATAU BUKAN");System.out.print("Masukan Angka : ");bil=input.nextInt();for (int i=2; i<=bil; i++){if (bil % i == 0){cek++;}}if (cek==1){System.out.println("Bilangan Prima");}else {System.out.println("Bukan Bilangan Prima");}}}
Deret Fibonacci
import java.util.Scanner;public class Fibonacci{public static void main(String[]args) {Scanner show = new Scanner(System.in);int n, f1 = 0, f2 = 1, next = 0;System.out.println("PROGRAM DERET BILANGAN FIBONACCI");System.out.print("Masukan Batas Deret Bilangan Fibonacci : ");n = show.nextInt();System.out.print("Deret Fibonacci : ");for (int i = 1; i <= n; ++i){if(i == 1){System.out.print(" " + f1 + " ");continue;}if(i == 2){System.out.print(f2 + " ");continue;}next = f1 + f2;f1 = f2;f2 = next;System.out.print(next + " ");}}}
Deret Lucas
import java.util.Scanner;public class Lucas{public static void main(String[]args) {Scanner show = new Scanner(System.in);int n, l1 = 1, l2 = 3, next = 0;System.out.println("PROGRAM DERET BILANGAN LUCAS");System.out.print("Masukan Batas Deret Bilangan Lucas : ");n = show.nextInt();System.out.print("Deret Lucas : ");for (int i = 1; i <= n; ++i){if(i == 1){System.out.print(" " + l1 + " ");continue;}if(i == 2){System.out.print(l2 + " ");continue;}next = l1 + l2;l1 = l2;l2 = next;System.out.print(next + " ");}}}
Barisan dan Deret Bilangan Aritmatika
import java.util.Scanner;public class BarisanDeret{public static void main(String[]args) {Scanner scan = new Scanner(System.in);int a,b,n,i,hasil;System.out.println("Program Barisan Deret Aritmatika");System.out.println("================================");System.out.print("Masukan Suku Awal : ");a = scan.nextInt();System.out.print("Masukan Banyak Suku : ");n = scan.nextInt();System.out.print("Masukan Beda : ");b = scan.nextInt();System.out.println("Barisan Aritmatika : ");for(i=0;i<n;i++){System.out.print(a+(i*b) +" ");}System.out.print("\nDeret Aritmatika : "+ (2*a+(n-1)*b)*n/2);}}
Menghitung Nilai Rata-rata dengan Array
import java.util.Scanner;public class RataArray {public static void main(String[] args){int data[], i, n;data = new int[100];float rata, jum=0;Scanner scan = new Scanner(System.in);System.out.print("Banyaknya Data : ");n = scan.nextInt();for(i = 1; i <= n; i++){System.out.print("Data ke-"+ i +" : ");data[i] = scan.nextInt();jum = jum + data[i];}rata = jum/n;System.out.println("\nNilai Total : " + jum);System.out.println("Nilai Rata-rata : " + rata);}}
Konversi Suhu (Dari Celsius)
import java.util.Scanner;public class KonvSuhuCels {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("Program Konversi Suhu Celsius");System.out.println("=============================");double cels, fahr, ream, rnke, kelv;System.out.print("Input Suhu Celsius : ");cels = input.nextDouble();fahr = (9/5 * cels) + 32;ream = cels * (4/5);rnke = (cels + 273.15) * 9/5;kelv = cels + 273.15;System.out.println(cels + " Derajat Celsius = " + fahr + " Derajat Fahrenheit");System.out.println(cels + " Derajat Celsius = " + ream + " Derajat Reamur");System.out.println(cels + " Derajat Celsius = " + rnke + " Derajat Rankine");System.out.println(cels + " Derajat Celsius = " + kelv + " Kelvin");}}
Konversi Suhu (Dari Fahrenheit)
import java.util.Scanner;public class KonvSuhuFahr {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("Program Konversi Suhu Fahrenheit");System.out.println("================================");double cels, fahr, ream, rnke, kelv;System.out.print("Input Suhu Fahrenheit : ");fahr = input.nextDouble();cels = (fahr - 32) * 5/9;ream = 4/9 * (fahr-32);rnke = fahr + 459.67;kelv = (fahr + 459.67) * 5/9;System.out.println(fahr + " Derajat Fahrenheit = " + cels + " Derajat Celsius");System.out.println(fahr + " Derajat Fahrenheit = " + ream + " Derajat Reamur");System.out.println(fahr + " Derajat Fahrenheit = " + rnke + " Derajat Rankine");System.out.println(fahr + " Derajat Fahrenheit = " + kelv + " Kelvin");}}
Konversi Suhu (Dari Reamur)
import java.util.Scanner;public class KonvSuhuReam {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("Program Konversi Suhu Reamur");System.out.println("============================");double cels, fahr, ream, rnke, kelv;System.out.print("Input Suhu Reamur : ");ream = input.nextDouble();cels = ream / 0.8;fahr = (ream * 2.25) + 32;rnke = (ream * 2.25) + 491.67;kelv = (ream / 0.8) + 273.15;System.out.println(ream + " Derajat Reamur = " + cels + " Derajat Celsius");System.out.println(ream + " Derajat Reamur = " + fahr + " Derajat Fahrenheit");System.out.println(ream + " Derajat Reamur = " + rnke + " Derajat Rankine");System.out.println(ream + " Derajat Reamur = " + kelv + " Kelvin");}}
Konversi Suhu (Dari Rankine)
import java.util.Scanner;public class KonvSuhuRnke {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("Program Konversi Suhu Rankine");System.out.println("=============================");double cels, fahr, ream, rnke, kelv;System.out.print("Input Suhu Rankine : ");rnke = input.nextDouble();cels = (rnke - 491.67) * 5/9;fahr = rnke - 459.67;ream = (rnke / 1.8 + 273.15) * 0.8;kelv = rnke * 5/9;System.out.println(rnke + " Derajat Rankine = " + cels + " Derajat Celsius");System.out.println(rnke + " Derajat Rankine = " + fahr + " Derajat Fahrenheit");System.out.println(rnke + " Derajat Rankine = " + ream + " Derajat Reamur");System.out.println(rnke + " Derajat Rankine = " + kelv + " Kelvin");}}
Konversi Suhu (Dari Kelvin)
import java.util.Scanner;public class KonvSuhuKelv {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("Program Konversi Suhu Kelvin");System.out.println("============================");double cels, fahr, ream, rnke, kelv;System.out.print("Input Suhu Kelvin : ");kelv = input.nextDouble();cels = kelv - 273.15;fahr = (kelv * 9/5) - 459.67;ream = 4/5 * (kelv - 273);rnke = kelv * 9/5;System.out.println(kelv + " Kelvin = " + cels + " Derajat Celsius");System.out.println(kelv + " Kelvin = " + fahr + " Derajat Fahrenheit");System.out.println(kelv + " Kelvin = " + ream + " Derajat Reamur");System.out.println(kelv + " Kelvin = " + rnke + " Derajat Rankine");}}
Menghitung Data Kasus COVID-19
import java.util.Scanner;public class Covid19 {public static void main(String[] args) {Scanner input = new Scanner(System.in);int ptv, death, recov, act, out;System.out.println("Program menghitung Data Kasus COVID-19");System.out.print("Kasus Terkonfirmasi Positif : ");ptv = input.nextInt();System.out.print("Kasus Kematian : ");death = input.nextInt();System.out.print("Kasus Kesembuhan : ");recov = input.nextInt();out=death+recov;act=ptv-out;System.out.println("==== Data Kasus COVID-19 ====");System.out.println("Kasus Positif : "+ptv);System.out.println("Kasus Kematian : "+death);System.out.println("Kasus Pulih : "+recov);System.out.println("Kasus Aktif : "+act);System.out.println("Kasus Pasif : "+out);System.out.println("=============================");}}
Konversi Bilangan Desimal ke Biner
import java.util.Scanner;public class DecToBin {public static void main(String[] args) {System.out.println("## Program Konversi Desimal ke Biner ##");System.out.println("=============================================");Scanner scan = new Scanner(System.in);String[] a = new String[10];int n, i;System.out.print("Input Bilangan Desimal : ");n = scan.nextInt();for(i=0; n>0; i++){a[i] = String.valueOf(n%2);n = n/2;}System.out.println("Bilangan Biner adalah : ");for(i=i-1 ;i>=0 ;i--) {System.out.print(a[i]);}}}
Konversi Bilangan Desimal ke Kuartener
import java.util.Scanner;public class DecToQdt {public static void main(String[] args) {System.out.println("## Program Konversi Desimal ke Kuartener ##");System.out.println("==============================================");Scanner scan = new Scanner(System.in);String[] a = new String[10];int n, i;System.out.print("Input Bilangan Desimal : ");n = scan.nextInt();for(i=0; n>0; i++){a[i] = String.valueOf(n%4);n = n/4;}System.out.println("Bilangan Kuartener adalah : ");for(i=i-1 ;i>=0 ;i--) {System.out.print(a[i]);}}}
Konversi Bilangan Desimal ke Oktal
import java.util.Scanner;public class DecToOct {public static void main(String[] args) {System.out.println("## Program Konversi Desimal ke Oktal ##");System.out.println("=============================================");Scanner scan = new Scanner(System.in);String[] a = new String[10];int n, i;System.out.print("Input Bilangan Desimal : ");n = scan.nextInt();for(i=0; n>0; i++){a[i] = String.valueOf(n%8);n = n/8;}System.out.println("Bilangan Oktal adalah : ");for(i=i-1 ;i>=0 ;i--) {System.out.print(a[i]);}}}
Konversi Bilangan Desimal ke Heksadesimal
import java.util.Scanner;public class DecToHex {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("## Program Konversi Desimal ke Heksadesimal ##");System.out.println("====================================================");System.out.println();System.out.print(" Masukkan Angka Decimal : ");int n = input.nextInt();System.out.print(" Dalam Bilangan Heksadesimal : ");decToHex(n);}static void decToHex(int n) {int i = 0;char[] hexaDeciNum = new char[100];while (n != 0) {int temp = 0;temp = n % 16;if (temp < 10) {hexaDeciNum[i] = (char) (temp + 48);i++;} else {hexaDeciNum[i] = (char) (temp + 55);i++;}n = n / 16;}for (int j = i - 1; j >= 0; j--) {System.out.print(hexaDeciNum[j]);}}}
Bubble Sort
import java.util.Scanner;public class BubbleSort{static Scanner scan = new Scanner(System.in);int data[] = new int[20];static int Nilai[] = new int[20];static void prosesPerpindahan(int data[],int y){int x;for(x=0;x<y;x++){System.out.print(data[x]+" ");}}static void prosesSorting(int data[],int y){int proses,x,tampung;for(proses=1;proses<y;proses++){for(x=0;x<y-proses;x++) {if(data[x]>data[x+1]){tampung=data[x];data[x]=data[x+1];data[x+1]=tampung;}}System.out.print("\nTahap Ke-"+proses+" : ");prosesPerpindahan(data,y);}}public static void main(String args[]){int i, N;System.out.print("Masukkan Banyak Bilangan : ");N = scan.nextInt();for(i=0; i<N; i++){System.out.print("Elemen ke-"+(i+1)+" : ");Nilai[i] = scan.nextInt();}System.out.print("\nProses Sorting dengan metode Bubble Sort : ");prosesSorting(Nilai,N);System.out.println("\n\nSetelah Di Urutkan dengan Bubble Sort : ");prosesPerpindahan(Nilai,N);}}
Selection Sort
import java.util.Scanner;public class SelectionSort{public static void main(String args[]){Scanner scan = new Scanner(System.in);int Nilai[] = new int[20];int i,j,x,N,posisi,tampung;System.out.print("Masukkan Banyak Bilangan : ");N = scan.nextInt();for(i=0; i<N; i++){System.out.print("Elemen ke-"+i+" : ");Nilai[i] = scan.nextInt();}System.out.print("Sebelum Di Urutkan : ");for (int i=0; i<N; i++){System.out.print(Nilai[i]+" ");}System.out.println();System.out.println();for (int i=0;i<N-1;++i){posisi=i;for (int j=i+1;j<N;++j){if (Nilai[j]<Nilai[posisi]){posisi=j;}}if (posisi!=i){tampung=Nilai[posisi];Nilai[posisi]=Nilai[i];Nilai[i]=tampung;}System.out.print("Tahap Ke-"+(i+1)+" : ");for (int x=0;x<N;++x){System.out.print(Nilai[x]+" ");}System.out.println();}System.out.println();System.out.print("Setelah Di Urutkan Menggunakan Metode Selection Sort : ");for (int i=0;i<N;++i){System.out.print(Nilai[i]+" ");}}}
Insertion Sort
import java.util.Scanner;public class InsertionSort{public static void main(String args[]){Scanner scan = new Scanner(System.in);int Nilai[] = new int[20];int i, j, k, tampung, N;System.out.print("Masukkan Banyak Bilangan : ");N = scan.nextInt();for(i=0; i<N; i++){System.out.print("Elemen ke-"+(i+1)+" : ");Nilai[i] = scan.nextInt();}System.out.println();System.out.print("Data Sebelum Di Urutkan :");System.out.print("\nTahap Ke-1 : ");for(i=0;i<N;i++){System.out.print(" "+Nilai[i]);}System.out.println();for(i=1; i<N; i++){tampung = Nilai[i];j = i-1;while(j>=0 && Nilai[j] > tampung){Nilai[j+1] = Nilai[j];j--;}Nilai[j+1]=tampung;System.out.print("Tahap Ke-"+(i+1)+" : ");for(k=0; k<N; k++){System.out.print(" "+Nilai[k]);}System.out.println();}System.out.print("\nSetelah Di Urutkan dengan Insertion Sort : ");for(i=0;i<N;i++){System.out.print(" "+Nilai[i]);}}}
Sequential Search
import java.util.Scanner;public class SequentialSearch {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int[] Nilai;int N;System.out.print("Masukkan Banyaknya Bilangan : ");N = scanner.nextInt();Nilai = new int[N];for (int i = 0; i < N; i++) {System.out.print("Masukkan Elemen ke-" + i + " : ");int nilai = scanner.nextInt();Nilai[i] = nilai;}System.out.print("Deretan Bilangan : ");for (int x : Nilai) {System.out.print(x + " ");}System.out.println();System.out.print("Masukkan Bilangan yang akan Dicari : ");int Bilangan = scanner.nextInt();boolean ketemu = false;int i = 0;while (!ketemu && i < N) {if (Nilai[i] == Bilangan) {ketemu = true;}i++;}if (ketemu) {System.out.println("Bilangan " + Bilangan + " ditemukan");} else {System.out.println("Bilangan " + Bilangan + " tidak ditemukan");}}}
Binary Search
import java.util.Arrays;import java.util.Scanner;public class BinarySearch {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int[] Nilai;int N;System.out.print("Banyak Bilangan : ");N = scanner.nextInt();Nilai = new int[N];for (int i = 0; i < N; i++) {System.out.print("Elemen ke-" + i + " : ");int nilai = scanner.nextInt();Nilai[i] = nilai;}Arrays.sort(Nilai);System.out.print("Elemen Setelah diurut : ");for (int x : Nilai) {System.out.print(x + " ");}System.out.println();System.out.print("Masukkan data yang akan anda cari : ");int Bilangan = scanner.nextInt();int posisi = binarySearch(Nilai, Bilangan);if (posisi != -1) {System.out.println("Data " + Bilangan + " ada dalam array pada posisi " + posisi);} else {System.out.println("Data " + Bilangan + " tidak ada dalam array");}}static int binarySearch(int[] arr, int Bilangan) {int awal = 0;int akhir = arr.length - 1;while (awal <= akhir) {int tengah = (awal + akhir) / 2;if (arr[tengah] == Bilangan) {return tengah;} else if (arr[tengah] < Bilangan) {awal = tengah + 1;} else {akhir = tengah - 1;}}return -1;}}
Program Kasir Sederhana
import java.io.IOException;import java.util.Scanner;public class Kasir{public static void clear(){try{new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();}catch(Exception e) {System.out.println(e);}}public static void main(String[] args){Scanner input = new Scanner(System.in);int pil = 0;do {String barang;double diskon = 0.0;double total = 0.0;int banyak_data = 0, harga = 0, jml = 0, uang = 0;clear();System.out.print("Masukkan banyaknya data : ");banyak_data = input.nextInt();double[] harga_bayar = new double[banyak_data];for(int a = 0; a < banyak_data; a++){System.out.println("\nData Ke-"+(a+1));System.out.print("Masukkan Nama Barang : ");barang = input.next();System.out.print("Masukkan Harga Barang : ");harga = input.nextInt();System.out.print("Masukkan Jumlah Barang : ");jml = input.nextInt();System.out.print("Masukkan Diskon : ");diskon = input.nextDouble();harga_bayar[a] = (harga*jml) - (harga*jml*(diskon/100));}for(int a = 0; a < banyak_data; a++){total += harga_bayar[a];}System.out.println("\nTotal Bayar : "+total);System.out.print("Masukkan Jumlah Uang : ");uang = input.nextInt();System.out.println("Kembalian : "+(uang-total));System.out.println("Jika ingin transaksi lagi tekan 1");pil = input.nextInt();} while(pil == 1);}}
Atau yang ini :
import java.util.Scanner;import java.text.NumberFormat;public class Kasir {public static void main(String[] args) {Scanner input = new Scanner(System.in);NumberFormat formatter = NumberFormat.getCurrencyInstance();int jum_beli, bayar, diskon, jumlah[], harga[], sub_tot[];String nama_barang[];float tot;System.out.println("PROGRAM KASIR SEDERHANA");System.out.println("---------------------------");System.out.println();// Read the number of purchases with error handlingwhile (true) {try {System.out.print("Masukan Jumlah Beli : ");jum_beli = input.nextInt();break; // Exit the loop if the input is valid} catch (java.util.InputMismatchException e) {System.out.println("Invalid input. Please enter a valid integer.");input.next(); // Clear the invalid input}}jumlah = new int[jum_beli];harga = new int[jum_beli];sub_tot = new int[jum_beli];nama_barang = new String[jum_beli];tot = 0;for (int i = 0; i < jum_beli; i++) {System.out.println();System.out.println("Masukan Barang Ke-" + (i + 1));System.out.println();System.out.print("Nama Barang : ");nama_barang[i] = input.next();// Read the quantity with error handlingwhile (true) {try {System.out.print("Jumlah : ");jumlah[i] = input.nextInt();break; // Exit the loop if the input is valid} catch (java.util.InputMismatchException e) {System.out.println("Invalid input. Please enter a valid integer.");input.next(); // Clear the invalid input}}// Read the price with error handlingwhile (true) {try {System.out.print("Harga : ");harga[i] = input.nextInt();break; // Exit the loop if the input is valid} catch (java.util.InputMismatchException e) {System.out.println("Invalid input. Please enter a valid integer.");input.next(); // Clear the invalid input}}sub_tot[i] = jumlah[i] * harga[i];tot += sub_tot[i];}System.out.println();System.out.println("STRUK BELANJA MINI MARKET ABC");System.out.println("---------------------------------------------------------");System.out.println("No Barang Jumlah Harga Sub Total");for (int i = 0; i < jum_beli; i++) {System.out.printf("%-4d%-11s%-11d%-12d%-12d%n", (i + 1), nama_barang[i], jumlah[i], harga[i], sub_tot[i]);}System.out.println("---------------------------------------------------------");if (tot >= 100000) {diskon = (int) (0.06 * tot);} else if (tot >= 50000) {diskon = (int) (0.04 * tot);} else if (tot >= 25000) {diskon = (int) (0.02 * tot);} else {diskon = 0;}System.out.println("Jumlah Bayar : Rp." + formatter.format(tot));System.out.println("Diskon : Rp." + formatter.format(diskon));System.out.println("Total Bayar : Rp." + formatter.format(tot - diskon));System.out.print("Bayar : Rp.");bayar = input.nextInt();System.out.println("Kembali : Rp." + formatter.format(bayar - (tot - diskon)));}}
Dan masih banyak lagi Program lainnya dalam Bahasa Java.
JAVA GUI (SWING & AWT)
Sumber Artikel : Guru99.com, Petanikode.com, Amzahsaefulloh.blogspot.com, Goindoti.com, Javatpoint.com (Java AWT), Javatpoint.com (Java Swing), dan Perbedaan.Budisma.net (Perbandingan Java Swing dan Java AWT)
A. Pengertian Java GUI
Apa itu GUI di Java?
GUI (Graphical User Interface) di Java adalah pembangun pengalaman Visual yang mudah digunakan untuk aplikasi Java. Hal ini terutama terbuat dari komponen grafis seperti Tombol, Label, Jendela, dll di mana pengguna dapat berinteraksi dengan aplikasi. GUI memainkan peran penting untuk membangun antarmuka yang mudah untuk Aplikasi Java.
Tujuannya adalah untuk memudahkan user menggunakan program yang dibuat tersebut. Kalau dilihat pengertian tentang GUI secara umum adalah Interaksi yang dapat dilaksanakan oleh user melalui menu dan icon yang diperlihatkan dalam modus grafik. Contoh implementasi GUI-based shell ini adalah pada sistem operasi Microsoft Windows.
Perbedaan Java Swing dan Java AWT
Adapun Perbandingan/Perbedaan antara Java Swing dan Java AWT adalah :
No. | Java AWT | Java Swing |
1. | Komponen AWT bergantung pada platform. | Komponen Java Swing tidak bergantung pada platform. |
2. | Komponen AWT adalah kelas berat. | Komponen Swing ringan. |
3. | AWT tidak mendukung tampilan dan nuansa pluggable (yang bisa dipasang). | Swing mendukung tampilan dan nuansa yang dapat dipasang. |
4. | AWT menyediakan lebih sedikit komponen daripada Swing. | Swing menyediakan komponen yang lebih kuat seperti tabel, daftar/list, scrollpanes, colorchooser, tabbedpane, dll. |
5. | AWT tidak mengikuti MVC (Model View Controller) di mana model mewakili data, tampilan mewakili presentasi dan pengontrol bertindak sebagai antarmuka antara model dan tampilan. | Swing mengikuti MVC. |
B. Java Swing
Diagram Hirarki Kelas Java Swing
Java Swing Class Hierarchy Diagram |
Swing di Java adalah Toolkit Graphical User Interface (GUI) yang mencakup komponen GUI. Swing menyediakan serangkaian widget dan paket yang kaya untuk membuat komponen GUI yang canggih untuk Aplikasi Java. Swing adalah bagian dari Java Foundation Classes (JFC), yang merupakan API untuk pemrograman Java GUI yang menyediakan GUI.
Pustaka Java Swing dibangun di atas Java Abstract Widget Toolkit (AWT), toolkit GUI yang lebih lama dan bergantung pada platform. Anda dapat menggunakan komponen pemrograman GUI Java sederhana seperti tombol, kotak teks, dll., dari perpustakaan dan tidak perlu membuat komponen dari awal. Semua komponen di Java Swing adalah JComponent yang dapat ditambahkan ke kelas Container.
Apa itu Container Class?
Kelas Kontainer adalah kelas yang dapat memiliki komponen lain di dalamnya. Jadi untuk membuat Java Swing GUI, kita membutuhkan setidaknya satu objek container. Ada 3 Jenis Container Java Swing.
- Panel : Ini adalah wadah murni dan bukan jendela itu sendiri. Satu-satunya tujuan Panel adalah untuk mengatur komponen ke jendela.
- Bingkai : Ini adalah jendela yang berfungsi penuh dengan judul dan ikonnya.
- Dialog : Ini dapat dianggap seperti jendela pop-up yang muncul ketika sebuah pesan harus ditampilkan. Ini bukan jendela yang berfungsi penuh seperti Frame.
Contoh dari Java Swing adalah :
Java Swing Sederhana membuat Tampilan "Jendela Program"
Simpan dengan Nama File : swing.java
import javax.swing.*;public class swing {public static void main(String[] args) {JFrame myWindow = new JFrame();myWindow.setTitle("Jendela Program");myWindow.setSize(300, 200);myWindow.setVisible(true);}}
Hasil Output :
Simpan dengan Nama File : swingComponent.java
import javax.swing.*;public class swingComponent {public static void main(String args[]) {JFrame jFrame = new JFrame("Jendela Program");jFrame.setLocation(200, 300);jFrame.setSize(300, 200);JPanel pnl = new JPanel();JButton jButton = new JButton("Tombol");pnl.add(jButton);jFrame.add(pnl);jFrame.show();}}
Hasil Output :
Java Swing Sederhana dengan menambahkan Label
Simpan dengan Nama File : swingComponent.java
import javax.swing.*;class swingComponent {public static void main(String args[]) {JFrame frame = new JFrame("Label Example");JLabel label1,label2;label1 = new JLabel("Label Pertama");label1.setBounds(100,38, 150,20);label2 = new JLabel("Label Kedua");label2.setBounds(100,75, 150,20);frame.add(label1); frame.add(label2);frame.setSize(300,200);frame.setLayout(null);frame.setVisible(true);}}
Hasil Output :
Java Swing Sederhana dengan menambahkan Tombol dan Label
Simpan dengan Nama File : swingComponent.java
import javax.swing.*;public class swingComponent {public static void main(String args[]) {JFrame jFrame = new JFrame("Jendela Program");jFrame.setLocation(200, 300);jFrame.setSize(300, 200);JPanel pnl = new JPanel();JButton jButton = new JButton("Tombol");pnl.add(jButton);JLabel Label1 = new JLabel("JLabel dalam Java");pnl.add(Label1);jFrame.add(pnl);jFrame.show();}}
Hasil Output :
Java Swing Sederhana dengan menambahkan Text Field
Simpan dengan Nama File : swingComponent.java
import javax.swing.*;class swingComponent {public static void main(String args[]) {JFrame frame = new JFrame("TextField Example");JTextField text1,text2;text1 = new JTextField("Text Field");text1.setBounds(50,80, 280,30);text2 = new JTextField(" ");text2.setBounds(50,130, 280,30);frame.add(text1); frame.add(text2);frame.setSize(400,300);frame.setLayout(null);frame.setVisible(true);}}
Hasil Output :
Java Swing Sederhana dengan menambahkan Text Area
Simpan dengan Nama File : swingComponent.java
import javax.swing.*;public class swingComponent {swingComponent(){JFrame frame = new JFrame("TextArea Example");JTextArea area = new JTextArea("Welcome to Inzaghi's Blog!");area.setBounds(30,30, 220,300);frame.add(area);frame.setSize(300,400);frame.setLayout(null);frame.setVisible(true);}public static void main(String args[]) {new swingComponent();}}
Hasil Output :
Simpan dengan Nama File : swingCheckbox.java
import javax.swing.*;public class swingCheckbox {public static void main(String args[]) {JFrame frame = new JFrame("Checkbox Example");JCheckBox checkBox1, checkBox2, checkBox3, checkBox4;checkBox1 = new JCheckBox("Checkbox 1");checkBox2 = new JCheckBox("Checkbox 2");checkBox3 = new JCheckBox("Checkbox 3");checkBox4 = new JCheckBox("Checkbox 4");Box panel = new Box(BoxLayout.Y_AXIS);panel.add(checkBox1);panel.add(checkBox2);panel.add(checkBox3);panel.add(checkBox4);frame.getContentPane().add(panel);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.pack();frame.show();frame.setLocation(200,300);frame.setSize(300,200);}}
Hasil Output :
Java Swing Sederhana dengan menambahkan Radio Button
Simpan dengan Nama File : swingRadioButton.java
import javax.swing.*;public class swingRadioButton {JFrame frame;swingRadioButton(){frame = new JFrame("Window Program");JRadioButton rbutton1 = new JRadioButton("Male");JRadioButton rbutton2 = new JRadioButton("Female");rbutton1.setBounds(100,38,150,30);rbutton2.setBounds(100,75,150,30);ButtonGroup btnGroup = new ButtonGroup();btnGroup.add(rbutton1);btnGroup.add(rbutton2);frame.add(rbutton1);frame.add(rbutton2);frame.setSize(300,200);frame.setLayout(null);frame.setVisible(true);}public static void main(String[] args) {new swingRadioButton();}}
Hasil Output :
Java Swing Sederhana dengan menambahkan Combo Box
Simpan dengan Nama File : swingComboBox.java
import javax.swing.*;public class swingComboBox {JFrame frame;swingComboBox(){frame = new JFrame();String programming[] = {"Java","C++","Python"};JComboBox combox = new JComboBox(programming);combox.setBounds(50, 50,90,20);frame.add(combox);frame.setLayout(null);frame.setSize(200,250);frame.setVisible(true);}public static void main(String[] args) {new swingComboBox();}}
Hasil Output :
Java Swing Sederhana dengan menambahkan List
Simpan dengan Nama File : swingComponent.java
import javax.swing.*;public class swingComponent {swingComponent(){JFrame frame = new JFrame();String item[] = {"Item 1","Item 2","Item 3"};JList list = new JList(item);list.setBounds(55,55, 70,70);frame.add(list);frame.setSize(200,250);frame.setLayout(null);frame.setVisible(true);}public static void main(String args[]) {new swingComponent();}}
Hasil Output :
Java Swing Sederhana dengan menambahkan Table
Simpan dengan Nama File : swingTable.java
import javax.swing.*;public class swingTable {JFrame frame;swingTable(){frame = new JFrame("COVID-19");String data[][] = {{"4259857","143979","4111045"},{"4260148","143986","4111250"},{"4260380","143998","4111464"}};String column[] = {"Positif","Meninggal","Sembuh"};JTable table = new JTable(data,column);table.setBounds(30,40,200,300);JScrollPane scpane = new JScrollPane(table);frame.add(scpane);frame.setSize(300,200);frame.setVisible(true);}public static void main(String[] args) {new swingTable();}}
Hasil Output :
Java Swing Sederhana dengan menambahkan Separator
Simpan dengan Nama File : swingSeparator.java
import javax.swing.*;class swingSeparator {JMenu menu, submenu;JMenuItem item1, item2;swingSeparator(){JFrame frame = new JFrame("Jendela Program");JMenuBar menubar = new JMenuBar();menu = new JMenu("Menu");item1 = new JMenuItem("Item 1");item2 = new JMenuItem("Item 2");menu.add(item1);menu.addSeparator();menu.add(item2);menubar.add(menu);frame.setJMenuBar(menubar);frame.setSize(300,200);frame.setLayout(null);frame.setVisible(true);}public static void main(String args[]) {new swingSeparator();}}
Hasil Output :
Untuk Program yang lebih kompleks, biasanya tidak hanya menggunakan Java Swing saja tapi kita juga menggunakan Java AWT.
C. Java AWT
Diagram Hirarki Kelas Java AWT
AWT singkatan dari Abstract Window Toolkit adalah Application Programming Interface (API) untuk membuat Graphical User Interface (GUI) di Java. Hal ini memungkinkan pemrogram Java untuk mengembangkan aplikasi berbasis jendela.
AWT menyediakan berbagai komponen seperti button, label, checkbox, dll. Digunakan sebagai objek di dalam Program Java. Komponen AWT menggunakan sumber daya sistem operasi, yaitu, mereka bergantung pada platform, yang berarti, tampilan komponen dapat diubah sesuai dengan tampilan sistem operasi. Kelas untuk AWT disediakan oleh paket Java.awt untuk berbagai komponen AWT.
Contoh dari Java AWT adalah :
Java AWT Sederhana dengan menambahkan Panel
Simpan dengan Nama File : swingPanel.java
import java.awt.*;import javax.swing.*;public class swingPanel {swingPanel() {JFrame frame = new JFrame("Contoh Panel");JPanel panel = new JPanel();panel.setBounds(40,50,200,150);panel.setBackground(Color.gray);JButton btn1 = new JButton("Button 1");btn1.setBounds(20,100,80,30);btn1.setBackground(Color.yellow);JButton btn2 = new JButton("Button 2");btn2.setBounds(100,200,80,30);btn2.setBackground(Color.green);panel.add(btn1);panel.add(btn2);frame.add(panel);frame.setSize(300,300);frame.setLayout(null);frame.setVisible(true);}public static void main(String args[]) {new swingPanel();}}
Hasil Output :
Java AWT Sederhana dengan JButton ActionListener
Simpan dengan Nama File : ButtonExample.java
import java.awt.event.*;import javax.swing.*;public class ButtonExample {public static void main(String[] args) {JFrame frame = new JFrame("Button Example");final JTextField txtfield = new JTextField();txtfield.setBounds(60,40, 150,20);JButton button = new JButton("Click Here");button.setBounds(60,80,95,30);button.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){txtfield.setText("Welcome to Inzaghi's Blog!");}});frame.add(button);frame.add(txtfield);frame.setSize(300,200);frame.setLayout(null);frame.setVisible(true);}}
Hasil Output :
Simpan dengan Nama File : TextFieldCalc.java
import javax.swing.*;import java.awt.event.*;public class TextFieldCalc implements ActionListener{JTextField txt1,txt2,txt3;JButton btn1,btn2;TextFieldCalc(){JFrame frame = new JFrame("Add / Sbst");txt1 = new JTextField();txt1.setBounds(50,50,150,20);txt2 = new JTextField();txt2.setBounds(50,100,150,20);txt3 = new JTextField();txt3.setBounds(50,150,150,20);txt3.setEditable(false);btn1 = new JButton("+");btn1.setBounds(60,200,50,30);btn2 = new JButton("-");btn2.setBounds(130,200,50,30);btn1.addActionListener(this);btn2.addActionListener(this);frame.add(txt1);frame.add(txt2);frame.add(txt3);frame.add(btn1);frame.add(btn2);frame.setSize(260,300);frame.setLayout(null);frame.setVisible(true);}public void actionPerformed(ActionEvent e) {String s1 = txt1.getText();String s2 = txt2.getText();int a = Integer.parseInt(s1);int b = Integer.parseInt(s2);int c = 0;if(e.getSource()==btn1){c = a+b;}else if(e.getSource()==btn2){c = a-b;}String result = String.valueOf(c);txt3.setText(result);}public static void main(String[] args) {new TextFieldCalc();}}
Hasil Output :
Java AWT Sederhana dengan JLabel ActionListener (IP Address Generator)
Simpan dengan Nama File : LabelAddressIP.java
import javax.swing.*;import java.awt.*;import java.awt.event.*;public class LabelAddressIP extends Frame implements ActionListener{JTextField txt;JLabel label;JButton btn;LabelAddressIP(){txt = new JTextField();txt.setBounds(50,100, 300,20);label = new JLabel();label.setBounds(50,150, 400,20);btn = new JButton("Cari IP");btn.setBounds(50,200,95,30);btn.addActionListener(this);add(btn);add(txt);add(label);setSize(450,300);setLayout(null);setVisible(true);}public void actionPerformed(ActionEvent e) {try{String host = txt.getText();String ip = java.net.InetAddress.getByName(host).getHostAddress();label.setText("IP dari "+host+" adalah : "+ip);}catch(Exception ex){System.out.println(ex);}}public static void main(String[] args) {new LabelAddressIP();}}
Hasil Output :
Java AWT Sederhana dengan JTextArea ActionListener (Teks dengan Jumlah Huruf dan Kata)
Simpan dengan Nama File : TextAreaExample.java
import javax.swing.*;import java.awt.event.*;public class TextAreaExample implements ActionListener{JLabel label1,label2;JTextArea area;JButton btn;TextAreaExample(){JFrame frame = new JFrame();label1 = new JLabel();label1.setBounds(50,30,100,30);label2 = new JLabel();label2.setBounds(160,30,100,30);area = new JTextArea();area.setBounds(20,75,300,200);btn = new JButton("Count Words");btn.setBounds(100,300,120,30);btn.addActionListener(this);frame.add(label1);frame.add(label2);frame.add(area);frame.add(btn);frame.setSize(360,450);frame.setLayout(null);frame.setVisible(true);}public void actionPerformed(ActionEvent e){String text = area.getText();String words[] = text.split("\\s");label1.setText("Words : "+words.length);label2.setText("Characters : "+text.length());}public static void main(String[] args){new TextAreaExample();}}
Hasil Output :
Program Java AWT Sederhana membuat File Chooser
Simpan dengan Nama File : FileChooserExample.java
import javax.swing.*;import java.awt.event.*;import java.io.*;public class FileChooserExample extends JFrame implements ActionListener{JMenuBar mnbar;JMenu file;JMenuItem open;JTextArea area;FileChooserExample(){open = new JMenuItem("Open File");open.addActionListener(this);file = new JMenu("File");file.add(open);mnbar = new JMenuBar();mnbar.setBounds(0,0,800,20);mnbar.add(file);area = new JTextArea(800,800);area.setBounds(0,20,800,800);add(mnbar);add(area);}public void actionPerformed(ActionEvent e) {if(e.getSource()==open){JFileChooser flcsr = new JFileChooser();int i = flcsr.showOpenDialog(this);if(i==JFileChooser.APPROVE_OPTION){File fl = flcsr.getSelectedFile();String filepath = fl.getPath();try{BufferedReader reader = new BufferedReader(new FileReader(filepath));String s1="",s2="";while((s1=reader.readLine())!=null){s2+=s1+"\n";}area.setText(s2);reader.close();}catch (Exception ex) {ex.printStackTrace();}}}}public static void main(String[] args) {FileChooserExample om = new FileChooserExample();om.setSize(500,500);om.setLayout(null);om.setVisible(true);om.setDefaultCloseOperation(EXIT_ON_CLOSE);}}
Hasil Output :
Program Java AWT Sederhana membuat Puzzle Game Sederhana
Simpan dengan Nama File : PuzzleGame.java
import java.awt.*;import java.awt.event.*;import javax.swing.JOptionPane;public class PuzzleGame extends Frame implements ActionListener{Button btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9;PuzzleGame(){super("Puzzle Game");btn1 = new Button("1");btn1.setBounds(50,90,40,40);btn2 = new Button("2");btn2.setBounds(100,90,40,40);btn3 = new Button("3");btn3.setBounds(150,90,40,40);btn4 = new Button("4");btn4.setBounds(50,140,40,40);btn5 = new Button("5");btn5.setBounds(100,140,40,40);btn6 = new Button("6");btn6.setBounds(150,140,40,40);btn7 = new Button("7");btn7.setBounds(50,190,40,40);btn8 = new Button("");btn8.setBounds(100,190,40,40);btn9 = new Button("8");btn9.setBounds(150,190,40,40);btn1.addActionListener(this);btn2.addActionListener(this);btn3.addActionListener(this);btn4.addActionListener(this);btn5.addActionListener(this);btn6.addActionListener(this);btn7.addActionListener(this);btn8.addActionListener(this);btn9.addActionListener(this);add(btn1);add(btn2);add(btn3);add(btn4);add(btn5);add(btn6);add(btn7);add(btn8);add(btn9);setSize(250,300);setLayout(null);setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==btn1){String label = btn1.getLabel();if(btn2.getLabel().equals("")){btn2.setLabel(label);btn1.setLabel("");}if(btn4.getLabel().equals("")){btn4.setLabel(label);btn1.setLabel("");}}if(e.getSource()==btn2){String label = btn2.getLabel();if(btn1.getLabel().equals("")){btn1.setLabel(label);btn2.setLabel("");}if(btn3.getLabel().equals("")){btn3.setLabel(label);btn2.setLabel("");}if(btn5.getLabel().equals("")){btn5.setLabel(label);btn2.setLabel("");}}if(e.getSource()==btn3){String label = btn3.getLabel();if(btn2.getLabel().equals("")){btn2.setLabel(label);btn3.setLabel("");}if(btn6.getLabel().equals("")){btn6.setLabel(label);btn3.setLabel("");}}if(e.getSource()==btn4){String label = btn4.getLabel();if(btn1.getLabel().equals("")){btn1.setLabel(label);btn4.setLabel("");}if(btn7.getLabel().equals("")){btn7.setLabel(label);btn4.setLabel("");}if(btn5.getLabel().equals("")){btn5.setLabel(label);btn4.setLabel("");}}if(e.getSource()==btn5){String label = btn5.getLabel();if(btn2.getLabel().equals("")){btn2.setLabel(label);btn5.setLabel("");}if(btn6.getLabel().equals("")){btn6.setLabel(label);btn5.setLabel("");}if(btn4.getLabel().equals("")){btn4.setLabel(label);btn5.setLabel("");}if(btn8.getLabel().equals("")){btn8.setLabel(label);btn5.setLabel("");}}if(e.getSource()==btn6){String label = btn6.getLabel();if(btn9.getLabel().equals("")){btn9.setLabel(label);btn6.setLabel("");}if(btn3.getLabel().equals("")){btn3.setLabel(label);btn6.setLabel("");}if(btn5.getLabel().equals("")){btn5.setLabel(label);btn6.setLabel("");}}if(e.getSource()==btn7){String label = btn7.getLabel();if(btn4.getLabel().equals("")){btn4.setLabel(label);btn7.setLabel("");}if(btn8.getLabel().equals("")){btn8.setLabel(label);btn7.setLabel("");}}if(e.getSource()==btn8){String label = btn8.getLabel();if(btn9.getLabel().equals("")){btn9.setLabel(label);btn8.setLabel("");}if(btn7.getLabel().equals("")){btn7.setLabel(label);btn8.setLabel("");}if(btn5.getLabel().equals("")){btn5.setLabel(label);btn8.setLabel("");}}if(e.getSource()==btn9){String label = btn9.getLabel();if(btn6.getLabel().equals("")){btn6.setLabel(label);btn9.setLabel("");}if(btn8.getLabel().equals("")){btn8.setLabel(label);btn9.setLabel("");}}//Congrats Codeif(btn1.getLabel().equals("1")&&btn2.getLabel().equals("2")&&btn3.getLabel().equals("3")&&btn4.getLabel().equals("4")&&btn5.getLabel().equals("5")&&btn6.getLabel().equals("6")&&btn7.getLabel().equals("7")&&btn8.getLabel().equals("8")&&btn9.getLabel().equals("")){JOptionPane.showMessageDialog(this,"Congratulations! You won.");}}public static void main(String[] args) {new PuzzleGame();}}
Hasil Output :
Program Java AWT Sederhana membuat Kalkulator Sederhana
Simpan dengan Nama File : Calculator.java
import java.awt.*;import java.awt.event.*;public class Calculator extends Frame {public boolean setClear = true;double number, memValue;char op;String digitButtonText[] = {"7", "8", "9", "4", "5", "6", "1", "2", "3", "0", "+/-", "." };String operatorButtonText[] = {"/", "sqrt", "*", "%", "-", "1/X", "+", "=" };String memoryButtonText[] = {"MC", "MR", "MS", "M+" };String specialButtonText[] = {"Backspc", "C", "CE" };MyDigitButton digitButton[] = new MyDigitButton[digitButtonText.length];MyOperatorButton operatorButton[] = new MyOperatorButton[operatorButtonText.length];MyMemoryButton memoryButton[] = new MyMemoryButton[memoryButtonText.length];MySpecialButton specialButton[] = new MySpecialButton[specialButtonText.length];Label displayLabel = new Label("0",Label.RIGHT);Label memLabel = new Label(" ",Label.RIGHT);final int FRAME_WIDTH=325,FRAME_HEIGHT=325;final int HEIGHT=30, WIDTH=30, H_SPACE=10,V_SPACE=10;final int TOPX=30, TOPY=50;Calculator(String frameText) {super(frameText);int tempX=TOPX, y=TOPY;displayLabel.setBounds(tempX,y,240,HEIGHT);displayLabel.setBackground(Color.BLUE);displayLabel.setForeground(Color.WHITE);add(displayLabel);memLabel.setBounds(TOPX, TOPY+HEIGHT+ V_SPACE,WIDTH, HEIGHT);add(memLabel);tempX=TOPX;y=TOPY+2*(HEIGHT+V_SPACE);for(int i=0; i<memoryButton.length; i++) {memoryButton[i] = new MyMemoryButton(tempX,y,WIDTH,HEIGHT,memoryButtonText[i], this);memoryButton[i].setForeground(Color.RED);y+=HEIGHT+V_SPACE;}tempX=TOPX+1*(WIDTH+H_SPACE); y=TOPY+1*(HEIGHT+V_SPACE);for(int i=0;i<specialButton.length;i++) {specialButton[i] = new MySpecialButton(tempX,y,WIDTH*2,HEIGHT,specialButtonText[i], this);specialButton[i].setForeground(Color.RED);tempX=tempX+2*WIDTH+H_SPACE;}//set Co-ordinates for Digit Buttonsint digitX=TOPX+WIDTH+H_SPACE;int digitY=TOPY+2*(HEIGHT+V_SPACE);tempX=digitX;y=digitY;for(int i=0;i<digitButton.length;i++) {digitButton[i] = new MyDigitButton(tempX,y,WIDTH,HEIGHT,digitButtonText[i], this);digitButton[i].setForeground(Color.BLUE);tempX+=WIDTH+H_SPACE;if((i+1)%3==0){tempX=digitX; y+=HEIGHT+V_SPACE;}}int opsX=digitX+2*(WIDTH+H_SPACE)+H_SPACE;int opsY=digitY;tempX=opsX;y=opsY;for(int i=0;i<operatorButton.length;i++) {tempX+=WIDTH+H_SPACE;operatorButton[i] = new MyOperatorButton(tempX,y,WIDTH,HEIGHT,operatorButtonText[i], this);operatorButton[i].setForeground(Color.RED);if((i+1)%2==0){tempX=opsX; y+=HEIGHT+V_SPACE;}}addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent ev) {System.exit(0);}});setLayout(null);setSize(FRAME_WIDTH,FRAME_HEIGHT);setVisible(true);}static String getFormattedText(double temp) {String resText=""+temp;if(resText.lastIndexOf(".0")>0)resText=resText.substring(0,resText.length()-2);return resText;}public static void main(String []args) {new Calculator("Calculator - JavaTpoint");}}class MyDigitButton extends Button implements ActionListener {Calculator cl;MyDigitButton(int x,int y, int width,int height,String cap, Calculator clc) {super(cap);setBounds(x,y,width,height);this.cl=clc;this.cl.add(this);addActionListener(this);}static boolean isInString(String s, char ch) {for(int i=0; i<s.length();i++)if(s.charAt(i)==ch) return true;return false;}public void actionPerformed(ActionEvent ev) {String tempText=((MyDigitButton)ev.getSource()).getLabel();if(tempText.equals(".")) {if(cl.setClear){cl.displayLabel.setText("0.");cl.setClear=false;}else if(!isInString(cl.displayLabel.getText(),'.'))cl.displayLabel.setText(cl.displayLabel.getText()+".");return;}int index=0;try{index=Integer.parseInt(tempText);}catch(NumberFormatException e){return;}if (index==0 && cl.displayLabel.getText().equals("0")) return;if(cl.setClear){cl.displayLabel.setText(""+index);cl.setClear=false;}elsecl.displayLabel.setText(cl.displayLabel.getText()+index);}}class MyOperatorButton extends Button implements ActionListener {Calculator cl;MyOperatorButton(int x,int y, int width,int height,String cap, Calculator clc) {super(cap);setBounds(x,y,width,height);this.cl=clc;this.cl.add(this);addActionListener(this);}public void actionPerformed(ActionEvent ev) {String opText=((MyOperatorButton)ev.getSource()).getLabel();cl.setClear=true;double temp=Double.parseDouble(cl.displayLabel.getText());if(opText.equals("1/x")) {try{double tempd=1/(double)temp;cl.displayLabel.setText(Calculator.getFormattedText(tempd));}catch(ArithmeticException excp) {cl.displayLabel.setText("Divide by 0.");}return;}if(opText.equals("sqrt")) {try {double tempd=Math.sqrt(temp);cl.displayLabel.setText(Calculator.getFormattedText(tempd));}catch(ArithmeticException excp) {cl.displayLabel.setText("Divide by 0.");}return;}if(!opText.equals("=")) {cl.number = temp;cl.op=opText.charAt(0);return;}switch(cl.op) {case '+':temp+=cl.number;break;case '-':temp=cl.number-temp;break;case '*':temp*=cl.number;break;case '%':try{temp=cl.number%temp;}catch(ArithmeticException excp){cl.displayLabel.setText("Divide by 0."); return;}break;case '/':try{temp=cl.number/temp;}catch(ArithmeticException excp){cl.displayLabel.setText("Divide by 0."); return;}break;}cl.displayLabel.setText(Calculator.getFormattedText(temp));cl.number = temp;}}class MyMemoryButton extends Button implements ActionListener {Calculator cl;MyMemoryButton(int x,int y, int width,int height,String cap, Calculator clc) {super(cap);setBounds(x,y,width,height);this.cl=clc;this.cl.add(this);addActionListener(this);}public void actionPerformed(ActionEvent ev) {char memop=((MyMemoryButton)ev.getSource()).getLabel().charAt(1);cl.setClear=true;double temp=Double.parseDouble(cl.displayLabel.getText());switch(memop) {case 'C':cl.memLabel.setText(" ");cl.memValue=0.0;break;case 'R':cl.displayLabel.setText(Calculator.getFormattedText(cl.memValue));break;case 'S':cl.memValue=0.0;case '+':cl.memValue+=Double.parseDouble(cl.displayLabel.getText());if(cl.displayLabel.getText().equals("0") || cl.displayLabel.getText().equals("0.0") )cl.memLabel.setText(" ");elsecl.memLabel.setText("M");break;}}}class MySpecialButton extends Button implements ActionListener {Calculator cl;MySpecialButton(int x,int y, int width,int height,String cap, Calculator clc) {super(cap);setBounds(x,y,width,height);this.cl=clc;this.cl.add(this);addActionListener(this);}static String backSpace(String s) {String Res="";for(int i=0; i<s.length()-1; i++) Res+=s.charAt(i);return Res;}public void actionPerformed(ActionEvent ev) {String opText=((MySpecialButton)ev.getSource()).getLabel();if(opText.equals("Backspc")) {String tempText=backSpace(cl.displayLabel.getText());if(tempText.equals(""))cl.displayLabel.setText("0");elsecl.displayLabel.setText(tempText);return;}if(opText.equals("C")) {cl.number=0.0; cl.op=' ';cl.memValue=0.0;cl.memLabel.setText(" ");}cl.displayLabel.setText("0");cl.setClear = true;}}
Hasil Output :
Dan masih banyak lagi Program GUI (Graphical User Interface) lainnya baik itu Java Swing maupun Java AWT.
Sebenarnya untuk yang Java GUI, untuk membuat dengan cara mudahnya harus memakai Software Netbeans IDE. Untuk melihat Artikel tentang Java Netbeans, silahkan lihat di sini.
Semoga saja Artikel ini sangat bermanfaat bagi para IT Pemula dan juga mohon maaf apabila ada kesalahan dalam penulisan Kode. Terima Kasih šššš :)
Wassalamu‘alaikum wr. wb.