//PROGRAM 6-13 class contohBiner { public static void main(String[] args) { System.out.println("Bentuk biner dari 1 : " + Integer.toBinaryString(1)); System.out.println("Bentuk biner dari 2 : " + Integer.toBinaryString(2)); System.out.println("Bentuk biner dari 4 : " + Integer.toBinaryString(4)); System.out.println("Bentuk biner dari 6 : " + Integer.toBinaryString(6)); System.out.println("Bentuk biner dari 8 : " + Integer.toBinaryString(8)); System.out.println("Bentuk biner dari 10 : " + Integer.toBinaryString(10)); } }
//PROGRAM 6-15 class contohHeksa { public static void main(String[] args) { System.out.println("Bentuk heksadesimal dari 1 : " + Integer.toHexString(1)); System.out.println("Bentuk heksadesimal dari 16 : " + Integer.toHexString(16)); System.out.println("Bentuk heksadesimal dari 100 : " + Integer.toHexString(100));
System.out.println("Bentuk heksadesimal dari 1000 : " + Integer.toHexString(1000)); } }
//PROGRAM 6-19 class DeklarasiStatik { static int a; static int b; static void test() { int c = a + b; System.out.println("a + b = " + c); } } class DemoStatik3 { public static void main(String[] args) { DeklarasiStatik.a = 10; DeklarasiStatik.b = 20; DeklarasiStatik.test(); } }
//PROGRAM 6-20 class Stack { private final int MAX = 10; // Mendeklarasikan konstanta MAX private int[] stack = new int[MAX]; private int atas;
// Constructor Stack() { atas = -1; } // Menyimpan nilai ke dalam stack void push(int nilai) { if (atas != 9) { stack[++atas] = nilai; } else { System.out.println("Stack penuh..."); } } // Mengambil nilai dari dalam stack int pop() { if (atas >= 0) { return stack[atas--]; } else { System.out.println("Stack masih kosong..."); return 0; } } } class DemoFinal { public static void main(String[] args) { Stack s = new Stack();
// Memasukkan nilai-nilai ke dalam stack for (int i=1; i<=10; i++) { s.push(i * 10); } // Mengambil nilai-nilai yang terdapat di dalam stack for (int i=1; i<=10; i++) { System.out.println(s.pop()); } } }
//PROGRAM 6-21 class Luar { private int a; public void setA(int nilai) { a = nilai; } public int getA() { return a; } // Mendefinisikan inner class class Dalam { private int x = 10; // hanya dikenali oleh kelas Dalam
public void showData() { System.out.println("Nilai a dari kelas Luar : " + a); System.out.println("Nilai x dari kelas Dalam : " + x);
} } public void showData() { // Baris di bawah ini SALAH, karena x tidak dikenal di sini //System.out.println("Nilai x dari kelas Dalam : " + x);
Dalam obj = new Dalam(); obj.showData(); } } class DemoInnerClass { public static void main(String[] args) {
Luar obj1 = new Luar(); //Dalam obj2 = new Dalam(); // SALAH
obj1.setA(5); obj1.showData(); } }
//PROGRAM 6-9 class Kotak { double panjang; double lebar; double tinggi; Kotak(double p, double l, double t) {
panjang = p; lebar = l; tinggi = t; } double hitungVolume() { return (panjang * lebar * tinggi); }
// Method yang mengembalikan objek Kotak Kotak perbesar(int M) { Kotak temp = new Kotak(panjang*M, lebar*M, tinggi*M); return temp; } } class DemoKembalianObjek { public static void main(String[] args) {
Kotak kOriginal, kBaru;
kOriginal = new Kotak(4, 3, 2);
kBaru = kOriginal.perbesar(2);
System.out.println("Nilai pada objek kOriginal"); System.out.println("panjang\t: " + kOriginal.panjang); System.out.println("lebar\t: " + kOriginal.lebar); System.out.println("tinggi\t: " + kOriginal.tinggi);
System.out.println("Volume\t: " + kOriginal.hitungVolume()); System.out.println();
System.out.println("Nilai pada objek kBaru"); System.out.println("panjang\t: " + kBaru.panjang); System.out.println("lebar\t: " + kBaru.lebar); System.out.println("tinggi\t: " + kBaru.tinggi); System.out.println("Volume\t: " + kBaru.hitungVolume()); } }
//PROGRAM 6-1 class Pembagian { // Mendefinisikan method dengan dua parameter bertipe int int bagi(int a, int b) { return a/b; } // Mendefinisikan method dengan dua parameter // bertipe double double bagi(double a, double b) { return a/b; } } class DemoOverload1 { public static void main(String[] args) { Pembagian b = new Pembagian();
int x = b.bagi(10, 4); double y = b.bagi(10.0, 4.0); System.out.println("Hasil bagi tipe int = " + x); System.out.println("Hasil bagi tipe double = " + y); } }
//PROGRAM 6-2 class myclass { // Mendefinisikan method tanpa parameter void tulis() { System.out.println("Tanpa parameter"); } // Mendefinisikan method dengan satu parameter bertipe double void tulis(double d) { System.out.println("Satu parameter, " + "dengan nilai argumen: " + d); } } class DemoOverload2 { public static void main(String[] args) { myclass c = new myclass(); c.tulis(); c.tulis(4); } }
// tidak mengakibatkan kesalahan (error)
//PROGRAM 6-3 class myclass { // Mendefinisikan method dengan parameter int dan String void tulis(int a, String s) { System.out.println("int: " + a + ", String: \"" + s + "\""); } // Mendefinisikan method dengan parameter String dan int void tulis(String s, int a) { System.out.println("String: \"" + s + "\", int: " + a); } } class DemoOverload3 { public static void main(String[] args) { myclass c = new myclass(); c.tulis(4, "Contoh method pertama"); c.tulis("Contoh method kedua", 8); } }
//PROGRAM 6-4 class Kotak { double panjang; double lebar; double tinggi; // Mendefinisikan constructor tanpa parameter Kotak() { panjang = 0;
lebar = 0; tinggi = 0; } // Mendefinisikan constructor dengan satu parameter Kotak(double sisi) { panjang = lebar = tinggi = sisi; } // Mendefinisikan constructor dengan tiga parameter Kotak(double p, double l, double t) { panjang = p; lebar = l; tinggi = t; } double hitungVolume() { return (panjang * lebar * tinggi); } } class DemoOverloadConstructor { public static void main(String[] args) { Kotak k1, k2, k3; k1 = new Kotak(); k2 = new Kotak(10); k3 = new Kotak(4, 3, 2); //Menampilkan volume dari masing-masing objek Kotak System.out.println("Volume k1 = " + k1.hitungVolume()); System.out.println("Volume k2 = " + k2.hitungVolume()); System.out.println("Volume k3 = " + k3.hitungVolume());
} }
//PROGRAM 6-5 class Kotak { double panjang; double lebar; double tinggi; Kotak(double p, double l, double t) { panjang = p; lebar = l; tinggi = t; } double hitungVolume() { return (panjang * lebar * tinggi); } // Mendefinisikan method dengan parameter objek Kotak boolean sama(Kotak k) { if ((k.panjang == this.panjang) && (k.lebar == this.lebar) && (k.tinggi == this.tinggi)) { return true; } else { return false; } } }
class DemoParamObjek1 { public static void main(String[] args) { Kotak k1, k2, k3, k4; k1 = new Kotak(4, 3, 2); k2 = new Kotak(6, 5, 4); k3 = new Kotak(4, 3, 2); k4 = new Kotak(6, 5, 4); System.out.println("k1 == k2 : " + k1.sama(k2)); System.out.println("k1 == k3 : " + k1.sama(k3)); System.out.println("k2 == k4 : " + k2.sama(k4)); } }
//PROGRAM 6-6 class Kotak { double panjang; double lebar; double tinggi; // Constructor dengan parameter bertipe double Kotak(double p, double l, double t) { panjang = p; lebar = l; tinggi = t; } // Constructor dengan parameter bertipe objek Kotak Kotak(Kotak k) {
this.panjang = k.panjang; this.lebar = k.lebar; this.tinggi = k.tinggi; } double hitungVolume() { return (panjang * lebar * tinggi); } // Mendefinisikan method dengan parameter objek Kotak boolean sama(Kotak k) { if ((k.panjang == this.panjang) && (k.lebar == this.lebar) && (k.tinggi == this.tinggi)) { return true; } else { return false; } } } class DemoParamObjek2 { public static void main(String[] args) { Kotak k1, k2; k1 = new Kotak(4, 3, 2); // Membentuk objek k2 dengan nilai yang terdapat pada k1 k2 = new Kotak(k1); System.out.println("k1 == k2 : " + k1.sama(k2)); System.out.println("Volume k1 = " + k1.hitungVolume()); System.out.println("Volume k2 = " + k2.hitungVolume());
} }
//PROGRAM 6-8 class Contoh { int b; Contoh(int b) { this.b = b; } // melewatkan parameter berdasarkan referensi void tambahSatu(Contoh o) { o.b += 1; System.out.println("Nilai o.b di dalam method : " + o.b); } } class DemoPassByReference { public static void main(String[] args) { Contoh obj; obj = new Contoh(5); System.out.println( "Nilai obj.b sebelum pemanggilan method : " + obj.b); obj.tambahSatu(obj); System.out.println( "Nilai obj.b setelah pemanggilan method : " + obj.b); } }
//PROGRAM 6-7 class Contoh { // melewatkan parameter berdasarkan nilai void tambahSatu(int x) { x += 1; System.out.println("Nilai x di dalam method : " + x); } } class DemoPassByValue { public static void main(String[] args) { Contoh obj; obj = new Contoh(); int a = 5; System.out.println("Nilai a sebelum pemanggilan method : " + a); // memanggil method tambahSatu() obj.tambahSatu(a); System.out.println("Nilai a setelah pemanggilan method : " + a); } }
//PROGRAM 6-16 class TingkatAkses { int a; public int b; private int c;
public void setC(int nilai) { c = nilai; } public int getC() { return c; } } class DemoPublicDanPrivate { public static void main(String[] args) { TingkatAkses obj = new TingkatAkses(); obj.a = 10; // BENAR, karena a secara default bersifat public obj.b = 20; // BENAR, karena b bersifat public //obj.c = 30; // SALAH, karena c bersifat private obj.setC(30); // BENAR, karena method setC() bersifat public System.out.println("Nilai obj.a : " + obj.a); System.out.println("Nilai obj.b : " + obj.b); System.out.println("Nilai obj.c : " + obj.getC()); } }
//PROGRAM 6-10 class Rekursi { int faktorial(int n) { if (n == 0) { return 1; } else {
return (n * faktorial(n-1)); } } void cetakFaktorial(int n) { System.out.print(n + "! = "); for (int i=n; i>=1; i--) { if (i != 1) { System.out.print(i + " x "); } else { System.out.print(i + " = "); } } System.out.println(faktorial(n)); } } class DemoRekursi1 { public static void main(String[] args) { Rekursi obj = new Rekursi(); obj.cetakFaktorial(5); obj.cetakFaktorial(4); obj.cetakFaktorial(3); } } //PROGRAM 6-11 class Rekursi { int pangkat(int b, int e) { if (e == 0) {
return 1; } else { return (b * pangkat(b, e-1)); } } void cetakPangkat(int b, int e) { System.out.print(b + "^" + e + " = "); for (int i=1; i<=e; i++) { if (i != e) { System.out.print(b + " x "); } else { System.out.print(b + " = "); } } System.out.println(pangkat(b, e)); } } class DemoRekursi2 { public static void main(String[] args) { Rekursi obj = new Rekursi(); obj.cetakPangkat(2, 5); obj.cetakPangkat(3, 4); obj.cetakPangkat(10, 2); } }
//PROGRAM 6-12 class Rekursi { void DesimalKeBiner(int n) { if (n > 1) { DesimalKeBiner(n / 2); } System.out.print(n % 2); } } class DemoRekursi3 { public static void main(String[] args) { Rekursi obj = new Rekursi(); System.out.print("Bentuk biner dari 1 : "); obj.DesimalKeBiner(1); System.out.println(); System.out.print("Bentuk biner dari 2 : "); obj.DesimalKeBiner(2); System.out.println(); System.out.print("Bentuk biner dari 4 : "); obj.DesimalKeBiner(4); System.out.println(); System.out.print("Bentuk biner dari 6 : "); obj.DesimalKeBiner(6); System.out.println(); System.out.print("Bentuk biner dari 8 : "); obj.DesimalKeBiner(8); System.out.println();
System.out.print("Bentuk biner dari 10 : "); obj.DesimalKeBiner(10); System.out.println(); } }
//PROGRAM 6-14 class Rekursi { char[] daftarHeksa = {'0','1','2','3','4','5','6','7','8','9', 'a','b','c','d','e','f'}; void desimalKeHeksa(int n) { if (n > 1) { desimalKeHeksa(n / 16); } System.out.print(daftarHeksa[n % 16]); } } class DemoRekursi4 { public static void main(String[] args) { Rekursi obj = new Rekursi(); System.out.print("Bentuk heksadesimal dari 1 : "); obj.desimalKeHeksa(1); System.out.println(); System.out.print("Bentuk heksadesimal dari 16 : "); obj.desimalKeHeksa(16);
System.out.println(); System.out.print("Bentuk heksadesimal dari 100 : "); obj.desimalKeHeksa(100); System.out.println(); System.out.print("Bentuk heksadesimal dari 1000 : "); obj.desimalKeHeksa(1000); System.out.println(); } }
//PROGRAM 6-17 class DemoStatik1 { static int a=5; static int b=6; int x=4;
// data non-statik
static void test() { int c = a + b; System.out.println("a + b = " + c) //System.out.println("x = " + x);
// SALAH,
// karena x non-statik } public static void main(String[] args) { test(); } }
//PROGRAM 6-18 class DemoStatik2 { static int a; static int b; // Mendefinisikan blok statik untuk inisialisai nilai static { System.out.println("Blok statik dipanggil..."); a = 5; b = 6; } static void test() { int c = a + b; System.out.println("a + b = " + c); } public static void main(String[] args) { test(); } }