Monday, December 26, 2016

Bab 1. Soal & Penyelesaian Java


1
Tipe Data, Variabel, dan Array






Bab ini akan mengeksplorasi tiga elemen fundamental Java: tipe data, variabel, dan array. Sebagai bahasa pemrograman modern, Java menyediakan beberapa tipe data. Anda dapat menggunakannya untuk mendeklarasikan variabel dan untuk menciptakan array.

Soal dan Penyelesaian
1.       Tulislah sebuah program yang menggunakan variabel double untuk menghitung luas sebuah lingkaran.

Penyelesaian

// Menghitung luas lingkaran.
class HitungLuasLingkaran {
    public static void main(String args[]) {
        double pi, r, a;
        r = 10.8; // radius lingkaran
        pi = 3.1416; // pi, pendekatan
        a = pi * r * r; // menghitungluas
        System.out.println("Luas lingkaran adalah " + a);
    }
}

Keluaran Program

Luas lingkaran adalah 366.436224

2.       Tulislah sebuah program untuk menghitung jarak jelajah cahaya menggunakan variabel long.

Penyelesaian

// Menghitung jarak jelajah cahaya menggunakan variabel long.
public class HitungJarakJelajahCahaya {
    public static void main(String args[]) {
        int kecCahaya;
        long hari;
        long detik;
        long jarak;

        // kecepatan cahaya dalam km per detik (pendekatan)
        kecCahaya = 340000;
        hari = 1000; // menetapkan jumlah hari
        detik = hari * 24 * 60 * 60; // mengkonversi ke detik
        jarak = kecCahaya * detik; // menghitung jarak

        System.out.print("Dalam " + hari);
        System.out.print(" hari, cahaya menjelajah berkisar ");
        System.out.println(jarak + " km.");
    }
}

Keluaran Program

Dalam 1000 hari, cahaya menjelajah berkisar 29376000000000 km.

3.       Tulislah sebuah program yang mengilustrasikan penggunaan variabel char.

Penyelesaian

// Demonstrasi tipe data char.
class DemoVarChar {
    public static void main(String args[]) {
        char ch1, ch2;
        ch1 = 88; // kode untuk X
        ch2 = 'Y';

        System.out.print("ch1 dan ch2: ");
        System.out.println(ch1 + " " + ch2);
    }
}

Keluaran Program

ch1 dan ch2: X Y

4.       Meskipun char didesain untuk menampung karakter-karakter Unicode, ia dapat pula dipandang sebagai tipe integer yang dapat Anda pakai untuk melakukan operasi-operasi aritmatika. Tulislah sebuah program untuk mengilustrasikan situasi ini.

Penyelesaian

// Variabel char seperti integer.
public class CharSepertiInteger {
    public static void main(String args[]) {
        char ch1;
       
        ch1 = 'X';
        System.out.println("ch1 memuat " + ch1);
       
        ch1++; // menginkremen ch1
        System.out.println("ch1 sekarang adalah " + ch1);
    }
}

Keluaran Program

ch1 memuat X
ch1 sekarang adalah Y
5.       Tulislah sebuah program yang mendemonstrasikan penggunaan tipe boolean.

Penyelesaian

// Demonstrasi nilai boolean.
public class DemoTipeBoolean {
    public static void main(String args[]) {
        boolean b;
        b = false;

        System.out.println("b adalah " + b);

        b = true;
        System.out.println("b adalah " + b);

        // suatu nilai boolean dapat mengendalikan statemen if
        if(b) System.out.println("Ini dieksekusi.");

        b = false;
        if(b) System.out.println("Ini tidak dieksekusi.");

        // keluaran dari operator relasiional adalah nilai boolean
        System.out.println("10 > 9 adalah " + (10 > 9));
    }
}

Keluaran Program

b adalah false
b adalah true
Ini dieksekusi.
10 > 9 adalah true

6.       Tulislah sebuah program untuk mendemonstrasikan skop-skop variabel.

Penyelesaian

//mendemonstrasikan skop variabel
public class DemoSkopVariabel {
    public static void main(String args[]) {
        int x; // dikenali oleh semua metode di dalam main
        x = 10;

        if(x == 10) { // mulai skop baru
            int y = 20; // hanya dikenali di dalam blok if ini
           
            // x dan y keduanya dikenali di sini.
            System.out.println("x dan y: " + x + " " + y);
            x = y * 2;
        }

        // y = 100; // Error! y tidak dikenali di sini
        // x masih dikenali di sini.
        System.out.println("x adalah " + x);
    }
}

Keluaran Program

x dan y: 10 20
x adalah 40

7.       Tulislah sebuah program yang mendemonstrasikan pelbagai konversi tipe.

Penyelesaian

//demonstrasi cast
public class DemoCast {
    public static void main(String args[]) {
        byte b;
        int i = 257;
        double d = 323.142;

        System.out.println("\nKonversi dari int menjadi byte.");
        b = (byte) i;
        System.out.println("i dan b " + i + " " + b);

        System.out.println("\nKonversi dari double menjadi int.");
        i = (int) d;
        System.out.println("d dan i " + d + " " + i);

        System.out.println("\nKonversi dari double menjadi byte.");
        b = (byte) d;
        System.out.println("d dan b " + d + " " + b);
    }
}

Keluaran Program

Konversi dari int menjadi byte.
i dan b 257 1

Konversi dari double menjadi int.
d dan i 323.142 323

Konversi dari double menjadi byte.
d dan b 323.142 67

8.       Tulislah sebuah program yang menggunakan sebuah array satu-dimensi.

Penyelesaian

//Demonstrasi array satu-dimensi
public class DemoArraySatuDimensi {
    public static void main(String args[]) {
        double arrayAngka[] = {10.1, 11.2, 12.3, 13.4, 14.5};
        double hasil = 0;
        int i;

        for(i=0; i<5; i++)
            hasil = hasil + arrayAngka[i];
        System.out.println("Rerata adalah " + hasil / 5);
    }
}

Keluaran Program

Rerata adalah 12.299999999999999

9.       Tulislah sebuah program yang menggunakan sebuah array dua-dimensi.

Penyelesaian

//demonstrasi array dua-dimensi
public class DemoArrayDuaDimensi {
    public static void main(String args[]) {
        int duaD[][]= new int[4][5];
        int i, j, k = 0;

        for(i=0; i<4; i++)
            for(j=0; j<5; j++) {
                duaD[i][j] = k;
                k++;
            }

        for(i=0; i<4; i++) {
            for(j=0; j<5; j++)
                System.out.print(duaD[i][j] + " ");
            System.out.println();
        }
    }
}

Keluaran Program

0 1 2 3 4
5 6 7 8 9
10 11 12 13 14
15 16 17 18 19

10.    Tulislah sebuah program yang secara manual mengalokasikan dimensi-dimensi kedua yang berbeda ukuran.

Penyelesaian

//secara manual mengalokasikan dimensi-dimensi kedua yang berbeda ukuran.
public class DemoArrayDuaDBedaUkuran {
    public static void main(String args[]) {
        int duaD[][] = new int[4][];

        duaD[0] = new int[1];
        duaD[1] = new int[2];
        duaD[2] = new int[3];
        duaD[3] = new int[4];

        int i, j, k = 0;
        for(i=0; i<4; i++)
            for(j=0; j<i+1; j++) {
                duaD[i][j] = k;
                k++;
            }

        for(i=0; i<4; i++) {
            for(j=0; j<i+1; j++)
                System.out.print(duaD[i][j] + " ");
                System.out.println();
        }
    }   
}

Keluaran Program

0
1 2
3 4 5
6 7 8 9

11.    Tulislah sebuah program yang menciptakan array tiga-dimensi, dengan ukuran 3 kali 4 kali 5.

Penyelesaian

//mendemonstrasikan array 3D
public class DemoArray3D {
    public static void main(String args[]) {
        int tigaD[][][] = new int[3][4][5];
        int i, j, k;

        for(i=0; i<3; i++)
            for(j=0; j<4; j++)
                for(k=0; k<5; k++)
                    tigaD[i][j][k] = i * j * k;
       
        for(i=0; i<3; i++) {
            for(j=0; j<4; j++) {
                for(k=0; k<5; k++)
                    System.out.print(tigaD[i][j][k] + " ");
                System.out.println();
            }

            System.out.println();
        }
    }
}

Keluaran Program

0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0

0 0 0 0 0
0 1 2 3 4
0 2 4 6 8
0 3 6 9 12

0 0 0 0 0
0 2 4 6 8
0 4 8 12 16
0 6 12 18 24





1 comment: