Upload
hadan
View
219
Download
2
Embed Size (px)
Citation preview
//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();
}
}