Monday, December 26, 2016

Bab 14. Soal & Penyelesaian Java


14
Eksplorasi java.util






Bab ini akan mengeksplorasi paket java.util. Paket penting ini memuat banyak koleksi kelas dan antarmuka yang mendukung fungsionalitas yang kaya.

Soal dan Penyelesaian
1.       Tulislah sebuah program yang menggunakan ArrayList. Array list tersebut diciptakan untuk objek-objek bertipe String, dan kemudian beberapa string ditambahkan padanya. Ingat bahwa string yang diapit tanda kutip dipandang sebagai sebuah objek String.

Penyelesaian

// Mendemonstrasikan ArrayList.
import java.util.*;

public class DemoArrayList {
    public static void main(String args[]) {
        // Menciptakan sebuah array list.
        ArrayList<String> al = new ArrayList<String>();
        System.out.println("Ukuran awal dari al: " +
            al.size());

        // Menambahkan elemen-elemen pada array list.
        al.add("C");
        al.add("A");
        al.add("E");
        al.add("B");
        al.add("D");
        al.add("F");
        al.add(1, "A2");

        System.out.println("Ukuran dari a1 setelah penambahan elemen-elemen: " +
            al.size());

        // Menampilkan array list.
        System.out.println("Isi dari al: " + al);

        // Menghapus elemen-elemen dari array list.
        al.remove("F");
        al.remove(2);

        System.out.println("Ukuran dari a1 setelah penghapusan: " +
            al.size());
        System.out.println("Isi dari al: " + al);
    }
}

Keluaran Program

Ukuran awal dari al: 0
Ukuran dari a1 setelah penambahan elemen-elemen: 7
Isi dari al: [C, A2, A, E, B, D, F]
Ukuran dari a1 setelah penghapusan: 5
Isi dari al: [C, A2, E, B, D]

2.       Tulislah sebuah program untuk mengkonversi sebuah ArrayList menjadi sebuah array.

Penyelesaian

// Mengkonversi ArrayList menjadi array.
import java.util.*;

public class KonversiArrayListMenjadiArray {
    public static void main(String args[]) {
        // Menciptakan sebuah array list.
        ArrayList<Integer> al = new ArrayList<Integer>();

        // Menambahkan elemen-elemen pada array list.
        al.add(1);
        al.add(2);
        al.add(3);
        al.add(4);
        System.out.println("Isi dari al: " + al);

        // Mendapatkan array.
        Integer ia[] = new Integer[al.size()];
        ia = al.toArray(ia);
        int jum = 0;

        // Menjumlahkan array.
        for(int i : ia) jum += i;
            System.out.println("Jum adalah: " + jum);
    }
}

Keluaran Program

Isi dari al: [1, 2, 3, 4]
Jum adalah: 10

3.       Tulislah sebuah program yang mengilustrasikan penggunaan LinkedList.

Penyelesaian

// Mendemonstrasikan LinkedList.
import java.util.*;

public class DemoLinkedList {
    public static void main(String args[]) {
        // Menciptakan sebuah senarai berantai.
        LinkedList<String> ll = new LinkedList<String>();

        // Menambahkan elemen-elemen pada senarai berantai.
        ll.add("F");
        ll.add("B");
        ll.add("D");
        ll.add("E");
        ll.add("C");
        ll.addLast("Z");
        ll.addFirst("A");
        ll.add(1, "A2");
        System.out.println("Isi awal dari ll: " + ll);

        // Menghapus elemen-elemen dari senarai berantai.
        ll.remove("F");
        ll.remove(2);
        System.out.println("Isi dari ll setelah penghapusan: "
            + ll);

        // Menghapus elemen pertama dan elemen terakhir.
        ll.removeFirst();
        ll.removeLast();
        System.out.println("ll setelah penghapusan elemen pertama dan terakhir: "
            + ll);

        // Mendapatkan dan menetapkan nilai.
        String nil = ll.get(2);
        ll.set(2, nil + " Diubah");
        System.out.println("ll setelah perubahan: " + ll);
    }
}

Keluaran Program

Isi awal dari ll: [A, A2, F, B, D, E, C, Z]
Isi dari ll setelah penghapusan: [A, A2, D, E, C, Z]
ll setelah penghapusan elemen pertama dan terakhir: [A2, D, E, C]
ll setelah perubahan: [A2, D, E Diubah, C]

4.       Tulislah sebuah program yang mengilustrasikan penggunaan HashSet.

Penyelesaian

// Mendemonstrasikan HashSet.
import java.util.*;

public class DemoHashSet {
    public static void main(String args[]) {
        // Menciptakan sebuah hash set.
        HashSet<String> hs = new HashSet<String>();

        // Menambahkan elemen-elemen pada hash set.
        hs.add("B");
        hs.add("A");
        hs.add("D");
        hs.add("E");
        hs.add("C");
        hs.add("F");
        System.out.println(hs);
    }
}

Keluaran Program

[D, E, F, A, B, C]

5.       Tulislah sebuah program yang mengilustrasikan penggunaan TreeSet.

Penyelesaian

// Mendemonstrasikan TreeSet.
import java.util.*;

public class DemoTreeSet {
    public static void main(String args[]) {
        // Menciptakan sebuah tree set.
        TreeSet<String> ts = new TreeSet<String>();

        // Menambahkan elemen-elemen pada tree set.
        ts.add("C");
        ts.add("A");
        ts.add("B");
        ts.add("E");
        ts.add("F");
        ts.add("D");

        System.out.println(ts);
    }
}

Keluaran Program

[A, B, C, D, E, F]

6.       Tulislah sebuah program yang mengilustrasikan penggunaan ArrayDeque.

Penyelesaian

// Mendemonstrasikan ArrayDeque.
import java.util.*;

public class DemoArrayDeque {
    public static void main(String args[]) {
        // Menciptakan sebuah array deque.
        ArrayDeque<String> adq = new ArrayDeque<String>();

        // Menggunakan ArrayDeque seperti tumpukan.
        adq.push("A");
        adq.push("B");
        adq.push("D");
        adq.push("E");
        adq.push("F");
       
        System.out.print("Menghapus dari tumpukan: ");
        while(adq.peek() != null)
            System.out.print(adq.pop() + " ");
        
        System.out.println();
    }
}

Keluaran Program

Menghapus dari tumpukan: F E D B A

7.       Tulislah sebuah program yang mengilustrasikan penggunaan iterator untuk menjelajah elemen-elemen pada ArrayList.

Penyelesaian

// Mendemonstrasikan iterator.
import java.util.*;

public class DemoIterator {
    public static void main(String args[]) {
        // Menciptakan sebuah array list.
        ArrayList<String> al = new ArrayList<String>();

        // Menambahkan elemen-elemen pada the array list.
        al.add("C");
        al.add("A");
        al.add("E");
        al.add("B");
        al.add("D");
        al.add("F");

        // Menggunakan iterator untuk menampilkan isi dari al.
        System.out.print("Isi awal dari al: ");
        Iterator<String> itr = al.iterator();
        while(itr.hasNext()) {
            String element = itr.next();
            System.out.print(element + " ");
        }
        System.out.println();

        // Memodifikasi objek-objek yang sedang diiterasi.
        ListIterator<String> litr = al.listIterator();
        while(litr.hasNext()) {
            String element = litr.next();
            litr.set(element + "+");
        }
       
        System.out.print("Isi termodifikasi dari al: ");
        itr = al.iterator();
        while(itr.hasNext()) {
            String element = itr.next();
            System.out.print(element + " ");
        }
        System.out.println();

        // Sekarang, menampilkan list secara mundur.
        System.out.print("list termodifikasi ditampilkan mundur: ");
        while(litr.hasPrevious()) {
            String element = litr.previous();
            System.out.print(element + " ");
        }
        System.out.println();
    }
}

Keluaran Program

Isi awal dari al: C A E B D F
Isi termodifikasi dari al: C+ A+ E+ B+ D+ F+
list termodifikasi ditampilkan mundur: F+ D+ B+ E+ A+ C+

8.       Tulislah sebuah program yang mengilustrasikan penggunaan loop for-each untuk menjelajah elemen-elemen pada ArrayList.

Penyelesaian

// Menggunakan loop for-each untuk menjelajahi sebuah koleksi
import java.util.*;

public class DemoForEachArrayList {
    public static void main(String args[]) {
        // Menciptakan sebuah array list untuk integer.
        ArrayList<Integer> nil2 = new ArrayList<Integer>();

        // Menambahkan nilai-nilai pada array list.
        nil2.add(1);
        nil2.add(2);
        nil2.add(3);
        nil2.add(4);
        nil2.add(5);

        // Menggunakan loop for untuk menampilkan nilai-nilai.
        System.out.print("Isi awal dari nil2: ");
        for(int v : nil2)
            System.out.print(v + " ");
        System.out.println();

        // Sekarang, menjumlahkan nilai-nilai menggunakan loop for.
        int jum = 0;
        for(int v : nil2)
            jum += v;
        System.out.println("Penjumlahan atas nilai-nilai: " + jum);
    }
}

Keluaran Program

Isi awal dari nil2: 1 2 3 4 5
Penjumlahan atas nilai-nilai: 15

9.       Tulislah sebuah program yang mengilustrasikan penggunaan HashMap.

Penyelesaian

import java.util.*;

public class DemoHashMap {
    public static void main(String args[]) {
        // Menciptakan sebuah hash map.
        HashMap<String, Double> hm = new HashMap<String, Double>();

        // Menempatkan elemen-elemen padae map
        hm.put("Rudolf", new Double(3434.34));
        hm.put("Poltak", new Double(123.22));
        hm.put("Jono", new Double(1378.00));
        hm.put("Tilham", new Double(99.22));
        hm.put("Ralf", new Double(-19.08));

        // Mendapatkan suatu himpunan entri.
        Set<Map.Entry<String, Double>> set = hm.entrySet();

        // Menampilkan set.
        for(Map.Entry<String, Double> me : set) {
            System.out.print(me.getKey() + ": ");
            System.out.println(me.getValue());
        }
        System.out.println();

        // Menabung 1000 ke akun Poltak.
        double saldo = hm.get("Poltak");
        hm.put("Poltak", saldo + 1000);
        System.out.println("Saldo baru Poltak: " +
           hm.get("Poltak"));
    }
}

Keluaran Program

Poltak: 123.22
Rudolf: 3434.34
Ralf: -19.08
Jono: 1378.0
Tilham: 99.22

Saldo baru Poltak: 1123.22

10.    Tulislah sebuah program yang mengilustrasikan penggunaan TreeMap.

Penyelesaian

import java.util.*;

public class DemoTreeMap {
    public static void main(String args[]) {
        // Menciptakan sebuah tree map.
        TreeMap<String, Double> tm = new TreeMap<String, Double>();

        // Menempatkan elemen-elemen pada map.
        tm.put("Poltak", new Double(3434.34));
        tm.put("Jono", new Double(123.22));
        tm.put("Toni", new Double(1378.00));
        tm.put("Josua", new Double(99.22));
        tm.put("Ralf", new Double(-19.08));

        // Mendapatkan sehimpunan entri.
        Set<Map.Entry<String, Double>> set = tm.entrySet();

        // Menampilkan elemen-elemen.
        for(Map.Entry<String, Double> me : set) {
            System.out.print(me.getKey() + ": ");
            System.out.println(me.getValue());
        }

        System.out.println();

        // Menabung 1000 pada akun Jono.
        double saldo = tm.get("Jono");
        tm.put("Jono", saldo + 1000);
        System.out.println("Saldo baru Jono: " +
            tm.get("Jono"));
    }
}

Keluaran Program

Josua: 99.22
Poltak: 3434.34
Ralf: -19.08
Toni: 1378.0

Saldo baru Jono: 1123.22

11.    Tulislah sebuah program yang mendemonstrasikan penggunaan komparator yang mengimplementasikan metode compare untuk membalikkan urutan string-string.

Penyelesaian

// Menggunakan komparator.
import java.util.*;

// Komparator pembalik urutan string.
class KomparatorKu implements Comparator<String> {
    public int compare(String a, String b) {
        String aStr, bStr;
        aStr = a;
        bStr = b;

        // Membalikkan perbandingan.
        return bStr.compareTo(aStr);
    }
}

public class DemoKomparator {
    public static void main(String args[]) {
        // Menciptakan sebuah tree set.
        TreeSet<String> ts = new TreeSet<String>(new KomparatorKu());

        // Menambahkan elemen-elemen pada tree set.
        ts.add("C");
        ts.add("A");
        ts.add("B");
        ts.add("E");
        ts.add("F");
        ts.add("D");

        // Menampilkan elemen-elemen.
        for(String elemen : ts)
            System.out.print(elemen + " ");

        System.out.println();
    }
}

Keluaran Program

F E D C B A

12.    Gunakanlah komparator untuk mengurutkan nama akhir (nama belakang).

Penyelesaian

// Menggunakan komparator untuk mengurutkan nama akhir.
import java.util.*;

// Membandingkan kata terakhir pada dua string.
class KomparatorKu implements Comparator<String> {
    public int compare(String a, String b) {
        int i, j, k;
        String aStr, bStr;
        aStr = a;
        bStr = b;

        // Menemukan indeks dari awal dari nama akhir.
        i = aStr.lastIndexOf(' ');
        j = bStr.lastIndexOf(' ');
        k = aStr.substring(i).compareTo(bStr.substring(j));

        if(k==0) // nama akhir cocok, periksa keseluruhan nama
            return aStr.compareTo(bStr);
        else
            return k;
    }
}

public class DemoKomparator2 {
    public static void main(String args[]) {
        // Menciptakan sebuah tree map.
        TreeMap<String, Double> tm =
            new TreeMap<String, Double>(new KomparatorKu());

        // Menempatkan elemen-elemen pada map.
        tm.put("Jonny Allen", new Double(3434.34));
        tm.put("Tomi Klaten", new Double(123.22));
        tm.put("Jeni Siantar", new Double(1378.00));
        tm.put("Hamzan Mataram", new Double(99.22));
        tm.put("Rina Bandung", new Double(-19.08));

        // Mendapatkan sehimpunan entri.
        Set<Map.Entry<String, Double>> set = tm.entrySet();

        // Menampilkan elemen-elemen.
        for(Map.Entry<String, Double> me : set) {
            System.out.print(me.getKey() + ": ");
            System.out.println(me.getValue());
        }

        System.out.println();

        // Menabung 1000 pada akun Rina Bandung.
        double saldo = tm.get("Rina Bandung");
        tm.put("Rina Bandung", saldo + 1000);
        System.out.println("Saldo baru Rina Bandung: " +
            tm.get("Rina Bandung"));
    }
}

Keluaran Program

Jonny Allen: 3434.34
Rina Bandung: -19.08
Tomi Klaten: 123.22
Hamzan Mataram: 99.22
Jeni Siantar: 1378.0

13.    Tulislah sebuah program yang mengilustrasikan penggunaan beberapa metode dari kelas Arrays.

Penyelesaian

// Demonstrasi metode-metode dari kelas Arrays
import java.util.*;

public class DemoKelasArrays {
    public static void main(String args[]) {
        // Mengalokasikan dan menginisialisasi array.
        int array[] = new int[10];
        for(int i = 0; i < 10; i++)
            array[i] = -3 * i;

        // Menampilkan, mengurutkan, dan menampilkan array.
        System.out.print("Isi semula: ");
        tampil(array);
        Arrays.sort(array);
        System.out.print("Terurut: ");
        tampil(array);

        // Mengisi dan menampilkan array.
        Arrays.fill(array, 2, 6, -1);
        System.out.print("Setelah fill(): ");
        tampil(array);

        // Mengurutkan dan menampilkan array.
        Arrays.sort(array);
        System.out.print("Setelah pengurutan kembali: ");
        tampil(array);

        // Pencarian biner untuk mencari -9.
        System.out.print("Nilai -9 ada pada lokasi ");
        int indeks =
            Arrays.binarySearch(array, -9);
        System.out.println(indeks);
    }

    static void tampil(int array[]) {
        for(int i: array)
            System.out.print(i + " ");
        System.out.println();
    }
}

Keluaran Program

Isi semula: 0 -3 -6 -9 -12 -15 -18 -21 -24 -27
Terurut: -27 -24 -21 -18 -15 -12 -9 -6 -3 0
Setelah fill(): -27 -24 -1 -1 -1 -1 -9 -6 -3 0
Setelah pengurutan kembali: -27 -24 -9 -6 -3 -1 -1 -1 -1 0
Nilai -9 ada pada lokasi 2

14.    Tulislah sebuah program yang mengilustrasikan vektor untuk menyimpan pelbagai tipe objek.

Penyelesaian

// Mendemonstrasikan pelbagai operasi Vector.
import java.util.*;

public class DemoVektor {
    public static void main(String args[]) {
        // ukuran awal 3, inkremen sebesar 2
        Vector<Integer> v = new Vector<Integer>(3, 2);

        System.out.println("Ukuran awal: " + v.size());
        System.out.println("Kapasitas awal: " +
            v.capacity());

        v.addElement(1);
        v.addElement(2);
        v.addElement(3);
        v.addElement(4);

        System.out.println("Kapasitas setelah empat penambahan: " +
            v.capacity());
       
        v.addElement(5);
        System.out.println("Kapasitas sekarang: " +
            v.capacity());
       
        v.addElement(6);
        v.addElement(7);
        System.out.println("Kapasitas sekarang: " +
            v.capacity());

        v.addElement(9);
        v.addElement(10);
        System.out.println("Kapasitas sekarang: " +
            v.capacity());
       
        v.addElement(11);
        v.addElement(12);
        System.out.println("Elemen pertama: " + v.firstElement());
        System.out.println("Elemen akhir: " + v.lastElement());

        if(v.contains(3))
            System.out.println("Vector memuat 3.");

        // Mengenumerasi elemen-elemen di dalam vektor.
        Enumeration vEnum = v.elements();
        System.out.println("\nElemen-elemen di dalam vektor:");
        while(vEnum.hasMoreElements())
            System.out.print(vEnum.nextElement() + " ");
        System.out.println();
    }
}

Keluaran Program

Elemen pertama: 1
Elemen akhir: 12
Vector memuat 3.

Elemen-elemen di dalam vektor:
1 2 3 4 5 6 7 9 10 11 12

15.    Tulislah sebuah program yang mengilustrasikan penggunaan kelas Stack, yang menempatkan beberapa objek Integer ke atas tumpukan, dan kemudian menghapusnya dari tumpukan.

Penyelesaian

// Mendemonstrasikan kelas Stack.
import java.util.*;

public class DemoKelasStack {
    static void tampilPush(Stack<Integer> st, int a) {
        st.push(a);
        System.out.println("push(" + a + ")");
        System.out.println("tumpukan: " + st);
    }

    static void tampilPop(Stack<Integer> st) {
        System.out.print("pop -> ");
        Integer a = st.pop();
        System.out.println(a);
        System.out.println("tumpukan: " + st);
    }

    public static void main(String args[]) {
        Stack<Integer> st = new Stack<Integer>();
        System.out.println("tumpukan: " + st);
        tampilPush(st, 42);
        tampilPush(st, 66);
        tampilPush(st, 99);
        tampilPop(st);
        tampilPop(st);
        tampilPop(st);

        try {
            tampilPop(st);
        }
        catch (EmptyStackException e) {
            System.out.println("tumpukan kosong");
        }
    }
}

Keluaran Program

tumpukan: []
push(42)
tumpukan: [42]
push(66)
tumpukan: [42, 66]
push(99)
tumpukan: [42, 66, 99]
pop -> 99
tumpukan: [42, 66]
pop -> 66
tumpukan: [42]
pop -> 42
tumpukan: []
pop -> tumpukan kosong

16.    Tulislah sebuah program yang mendemonstrasikan penggunaan kelas BitSet.

Penyelesaian

// Demonstrasi kelas BitSet.
import java.util.BitSet;

public class DemoKelasBitSet {
    public static void main(String args[]) {
        BitSet bits1 = new BitSet(16);
        BitSet bits2 = new BitSet(16);

        // menetapkan beberapa bit
        for(int i=0; i<16; i++) {
            if((i%2) == 0) bits1.set(i);
            if((i%5) != 0) bits2.set(i);
        }

        System.out.println("Pola awal bit di dalam bits1: ");
        System.out.println(bits1);
        System.out.println("\nPola awal bit di dalam bits2: ");
        System.out.println(bits2);

        // Operasi AND terhadap bit-bit
        bits2.and(bits1);
        System.out.println("\nbits2 AND bits1: ");
        System.out.println(bits2);

        // Operasi OR terhadap bit-bit
        bits2.or(bits1);
        System.out.println("\nbits2 OR bits1: ");
        System.out.println(bits2);

        // Operasi XOR terhadap bit-bit
        bits2.xor(bits1);
        System.out.println("\nbits2 XOR bits1: ");
        System.out.println(bits2);
    }
}

Keluaran Program

Pola awal bit di dalam bits1:
{0, 2, 4, 6, 8, 10, 12, 14}

Pola awal bit di dalam bits2:
{1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14}

bits2 AND bits1:
{2, 4, 6, 8, 12, 14}

bits2 OR bits1:
{0, 2, 4, 6, 8, 10, 12, 14}

bits2 XOR bits1:
{}

17.    Tulislah sebuah program untuk menetapkan tanggal dan waktu menggunakan kelas Date.

Penyelesaian

// Menampilkan tanggal dan waktu menggunakan metode-metode kelas Date.
import java.util.Date;

public class DemoKelasDate {
    public static void main(String args[]) {
        // Menginstansiasi sebuah objek Date
        Date tanggal = new Date();

        // menampilkan waktu dan tanggal menggunakan toString()
        System.out.println(tanggal);

        // Menampilkan jumlah milidetik sejak tengah-malam, 1 Januari 1970
        long mdetik = tanggal.getTime();
        System.out.println("Jumlah milidetik sejak tengah-malam, 1 Januari 1970 = "
            + mdetik);
    }
}

Keluaran Program

Wed Feb 12 07:51:39 ICT 2014
Jumlah milidetik sejak tengah-malam, 1 Januari 1970 = 1392166299256

18.    Tulislah sebuah program untuk menetapkan tanggal dan waktu menggunakan kelas Calendar.

Penyelesaian

// Demonstrasi kelas Calendar
import java.util.Calendar;

public class DemoKelasCalendar {
    public static void main(String args[]) {
        String arrayBulan[] = {
            "Jan", "Peb", "Mar", "Apr",
            "Mei", "Jun", "Jul", "Agu",
            "Sep", "Okt", "Nov", "Des"};

        // Menciptakan sebuah kalender yang diinisialisasi dengan
        // tanggal dan waktu sekarang pada lokalitas dan
        // zona waktu.
        Calendar kalender = Calendar.getInstance();

        // Menampilkan informasi waktu dan tanggal sekarang.
        System.out.print("Tanggal: ");
        System.out.print(arrayBulan[kalender.get(Calendar.MONTH)]);
        System.out.print(" " + kalender.get(Calendar.DATE) + " ");
        System.out.println(kalender.get(Calendar.YEAR));
       
        System.out.print("Waktu: ");
        System.out.print(kalender.get(Calendar.HOUR) + ":");
        System.out.print(kalender.get(Calendar.MINUTE) + ":");
        System.out.println(kalender.get(Calendar.SECOND));

        // Menetapkan waktu dan tanggal dan menampilkannya.
        kalender.set(Calendar.HOUR, 10);
        kalender.set(Calendar.MINUTE, 29);
        kalender.set(Calendar.SECOND, 22);

        System.out.print("Waktu terperbarui: ");
        System.out.print(kalender.get(Calendar.HOUR) + ":");
        System.out.print(kalender.get(Calendar.MINUTE) + ":");
        System.out.println(kalender.get(Calendar.SECOND));
    }
}

Keluaran Program

Tanggal: Peb 12 2014
Waktu: 7:57:32
Waktu terperbarui: 10:29:22

19.    Tulislah sebuah program untuk menetapkan tanggal dan waktu menggunakan kelas GregorianCalendar.

Penyelesaian

// Demonstrate GregorianCalendar
import java.util.*;

public class DemoGregorianCalendar {
    public static void main(String args[]) {
        String arrayBulan[] = {
            "Jan", "Peb", "Mar", "Apr",
            "Mei", "Jun", "Jul", "Agu",
            "Sep", "Okt", "Nov", "Des"};

        int tahun;

        // Menciptakan sebuah kalender Gregorian yang diinisialisasi dengan
        // tanggal dan waktu sekarang pada lokalitas dan
        // zona waktu.
        GregorianCalendar gkalender = new GregorianCalendar();

        // Menampilkan informasi waktu dan tanggal sekarang.
        System.out.print("Tanggal: ");
        System.out.print(arrayBulan[gkalender.get(Calendar.MONTH)]);
        System.out.print(" " + gkalender.get(Calendar.DATE) + " ");
        System.out.println(tahun = gkalender.get(Calendar.YEAR));

        System.out.print("Waktu: ");
        System.out.print(gkalender.get(Calendar.HOUR) + ":");
        System.out.print(gkalender.get(Calendar.MINUTE) + ":");
        System.out.println(gkalender.get(Calendar.SECOND));

        // Menguji apakah tahun sekarang adalah tahun leap
        if(gkalender.isLeapYear(tahun)) {
            System.out.println("Tahun ini adalah tahun leap");
        }
        else {
            System.out.println("Tahun ini tidak tahun leap");
        }
    }
}

Keluaran Program

Tanggal: Peb 12 2014
Waktu: 8:3:31
Tahun ini tidak tahun leap

20.    Tulislah sebuah program untuk membangkitkan nilai-nilai acak Gaussian.

Penyelesaian

// Demonstrate random Gaussian values.
import java.util.Random;

public class DemoAcakGaussian {
    public static void main(String args[]) {
        Random r = new Random();
        double nil;
        double jum = 0;
        int bell[] = new int[10];

        for(int i=0; i<100; i++) {
            nil = r.nextGaussian();
            jum += nil;
            double t = -2;
            for(int x=0; x<10; x++, t += 0.5)
                if(nil < t) {
                    bell[x]++;
                    break;
                }
        }

        System.out.println("Rerata dari nilai-nilai: " +
            (jum/100));

        // menampilkan kurva bel
        for(int i=0; i<10; i++) {
            for(int x=bell[i]; x>0; x--)
                System.out.print("*");
            System.out.println();
        }
    }
}

Keluaran Program

Rerata dari nilai-nilai: 0.00784383485340205
****
*****
*******
*************
*******************
*******************
***************
***********
******
*

21.    Tulislah sebuah program yang mengilustrasikan kelas Timer dan TimerTask.

Penyelesaian

// Demonstrasi kelas Timer dan TimerTask.
import java.util.*;

class TimerTaskKu extends TimerTask {
    public void run() {
        System.out.println("Timer task dieksekusi.");
    }
}

public class DemoKelasTimer {
    public static void main(String args[]) {
        TimerTaskKu taskKu = new TimerTaskKu();
        Timer timerKu = new Timer();

        /* Menetapkan tunda awal 1 detik,
           kemudian diulangi setiap setengah detik.
        */
        timerKu.schedule(taskKu, 1000, 500);
        try {
            Thread.sleep(5000);
        }
        catch (InterruptedException exc) {}
            timerKu.cancel();
    }
}

Keluaran Program

Timer task dieksekusi.
Timer task dieksekusi.
Timer task dieksekusi.
Timer task dieksekusi.
Timer task dieksekusi.
Timer task dieksekusi.
Timer task dieksekusi.
Timer task dieksekusi.

22.    Tulislah sebuah program yang mengilustrasikan penggunaan penspesifikasi format %g.

Penyelesaian

// Demo penspesifikais format %g.
import java.util.*;

public class DemoPenspesifikasiFormat {
    public static void main(String args[]) {
        Formatter fmt = new Formatter();

        for(double i=1000; i < 1.0e+10; i *= 100) {
            fmt.format("%g ", i);
            System.out.println(fmt);
        }
    }
}

Keluaran Program

1000.00
1000.00 100000
1000.00 100000 1.00000e+07
1000.00 100000 1.00000e+07 1.00000e+09

23.    Tulislah sebuah program yang mengilustrasikan penggunaan penspesifikasi format %d.

Penyelesaian

// Menciptakan sebuah tabel kuadrat dan kubik.
import java.util.*;

public class DemoLebarBidang {
    public static void main(String args[]) {
        Formatter fmt;
        for(int i=1; i <= 10; i++) {
            fmt = new Formatter();
            fmt.format("%4d %4d %4d", i, i*i, i*i*i);
            System.out.println(fmt);
        }
    }
}

Keluaran Program

   1    1    1
   2    4    8
   3    9   27
   4   16   64
   5   25  125
   6   36  216
   7   49  343
   8   64  512
   9   81  729
  10  100 1000

24.    Tulislah sebuah program yang mengilustrasikan penyejajaran kiri.

Penyelesaian

// Demonstrate left justification.
import java.util.*;

public class DemoPenyejajaranKiri {
    public static void main(String args[]) {
        Formatter fmt = new Formatter();

        // Penyejajaran kanan secara default
        fmt.format("|%10.2f|", 123.123);
        System.out.println(fmt);

        // Sekarang, penyejajaran kiri.
        fmt = new Formatter();
        fmt.format("|%-10.2f|", 123.123);
        System.out.println(fmt);
    }
}

Keluaran Program

|    123.12|
|123.12    |

25.    Tulislah sebuah program yang menggunakan Scanner untuk menghitung rerata dari nilai-nilai di dalam sebuah file.

Penyelesaian

import java.util.*;
import java.io.*;

public class DemoScanner {
    public static void main(String args[])
        throws IOException {
            int kounter = 0;
            double jum = 0.0;

            // Menuliskan keluaran ke sebuah file.
            FileWriter fout = new FileWriter("test.txt");
            fout.write("2 3.4 5 6 7.4 9.1 10.5 selesai");
            fout.close();
            FileReader fin = new FileReader("Test.txt");
            Scanner sumber = new Scanner(fin);

            // Membaca dan menjumlahkan angka-angka.
            while(sumber.hasNext()) {
                if(sumber.hasNextDouble()) {
                    jum += sumber.nextDouble();
                    kounter++;
                }

                else {
                    String str = sumber.next();
                    if(str.equals("selesai")) break;
                    else {
                        System.out.println("Error File format.");
                        return;
                    }
                }
            }
            fin.close();
            System.out.println("Rerata adalah " + jum / kounter);
    }
}

Keluaran Program

Rerata adalah 6.2

26.    Tulislah sebuah program yang menggunakan Scanner untuk membaca pelbagai tipe data dari sebuah file.

Penyelesaian

import java.util.*;
import java.io.*;

public class DemoScanner2 {
    public static void main(String args[])
    throws IOException {
        int i;
        double d;
        boolean b;
        String str;

        // Menuliskan keluaran ke sebuah file.
        FileWriter fout = new FileWriter("test.txt");
        fout.write("menguji Scanner 10 12.2 one true two false");
        fout.close();
        FileReader fin = new FileReader("Test.txt");
        Scanner src = new Scanner(fin);

        // Membaca sampai akhir file.
        while(src.hasNext()) {
            if(src.hasNextInt()) {
                i = src.nextInt();
                System.out.println("int: " + i);
            }

            else if(src.hasNextDouble()) {
                d = src.nextDouble();
                System.out.println("double: " + d);
            }

            else if(src.hasNextBoolean()) {
                b = src.nextBoolean();
                System.out.println("boolean: " + b);
            }

            else {
                str = src.next();
                System.out.println("String: " + str);
            }
        }
        fin.close();
    }
}

Keluaran Program

String: menguji
String: Scanner
int: 10
double: 12.2
String: one
boolean: true
String: two
boolean: false

27.    Tulislah sebuah program yang mengilustrasikan penggunaan Scanner untuk menghitung rerata atas nilai-nilai yang dipisahkan koma.

Penyelesaian

import java.util.*;
import java.io.*;

public class DemoScanner3 {
    public static void main(String args[])
    throws IOException {
        int kounter = 0;
        double jum = 0.0;

        // Menuliskan keluaran ke sebuah file.
        FileWriter fout = new FileWriter("test.txt");

        // Sekarang, menyimpan nilai-nilai yang dipisahkan dengan koma.
        fout.write("2, 3.4, 5,6, 7.4, 9.1, 10.5, selesai");
        fout.close();
        FileReader fin = new FileReader("Test.txt");
        Scanner sumber = new Scanner(fin);

        // Menggunakan delimiter spasi dan koma.
        sumber.useDelimiter(", *");

        // Membaca dan menjumlahkan angka-angka.
        while(sumber.hasNext()) {
            if(sumber.hasNextDouble()) {
                jum += sumber.nextDouble();
                kounter++;
            }
            else {
                String str = sumber.next();
                if(str.equals("selesai")) break;
                else {
                    System.out.println("Error File format.");
                    return;
                }
            }
        }

        fin.close();
        System.out.println("Rerata sebesar " + jum / kounter);
    }
}

Keluaran Program

Rerata sebesar 6.2









No comments:

Post a Comment