Priscilliaagnes's Blog

April 16, 2010

OOP week 10

Filed under: Uncategorized — Priscillia @ 8:27 am

Pada hari Kamis, 15 April 2010 diadakan kelas OOP week 10 pada pk 08.20-11.40. Tetapi berhubung diadakan kuliah tamu mengenai Java Mobile maka kelas tersebut selesai pada pk 09.30. Pak alfon mengajar mengenai:

Array Basics

Array adalah sebuah objek wadah yang menampung sejumlah integer. Panjang array dibuat sesuai dengan yang sudah di-declare oleh user. Setelah array dibuat, panjangnya tidak dapat diubah-ubah atau bernilai konstan. Contoh:

Seperti deklarasi untuk variabel jenis lainnya, sebuah deklarasi array memiliki dua komponen: ketik nama array dan array itu, misalnya “int anArray[];” .Jenis Array adalah ditulis sebagai tipe [], kurung kotak adalah simbol khusus yang menunjukkan bahwa variabel ini mengandung  ukuran yang dapat ditampung.  Contoh:

public class W10ArrayBasic {
// Declaring array of months
private final static String[] months = {
"January", "February", "March", "April",
"May", "June", "July", "August",
"September", "October", "November", "December"};
public static void main(String[] args) {
// Declaring array of colors
String[] colors = new String[4];
colors[0] = "Red";
colors[1] = "Green";
colors[2] = "Blue";
colors[3] = "Yellow";
// Declaring 2x2 matrix
int[][] m = new int[2][2];
m[0][0] = 0;
m[0][1] = 1;
m[1][0] = 0;
m[1][1] = 1;
// Printing the content of months
for (int i = 0; i < months.length; i++) {
if (i > 0)
System.out.print(", ");
System.out.print(months[i]);
}
System.out.println("");
for (int a = 0; a < 4; a++) {
if (a > 0)
System.out.print(", ");
System.out.print(colors[a]);
}
System.out.println("");
for(int b = 0; b < 2 ; b++) {
for(int c = 0; c < 2; c++) {
System.out.print(m[b][c]+"");
}
System.out.println("");
}
}
}

Hasil outputnya adalah:

January, February, March, April, May, June, July, August, September, October, November, December
Red, Green, Blue, Yellow
01
01

Catatan : o1 adalah koordinatnya

Copying Arrays

Cara meng-copy array adalah:

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 

Contoh:

class ArrayCopyDemo {
    public static void main(String[] args) {
        char[] copyFrom = { 'd', 'e', 'c', 'a', 'f', 'f', 'e',
			    'i', 'n', 'a', 't', 'e', 'd' };
        char[] copyTo = new char[7];

        System.arraycopy(copyFrom, 2, copyTo, 0, 7);
        System.out.println(new String(copyTo));
    }
}

Hasil outputnya adalah:

caffein

Array of Objects

Contoh:

import javax.swing.JOptionPane;

public class W10ArrayOfObjects {

    public static void main(String[] args) {
        // Declare the object reference
        W10ArrayOfObjects o = new W10ArrayOfObjects();
        // Invoke demo method with argument = 2
        o.demo(2);
    }

    /**
     * Actual demo process
     * @param arraySize size of array to produce
     */

    public void demo(int arraySize) {
        // Declare array size
        Contact[] contact = new Contact[arraySize];
        // Get contacts from input console
        for (int i = 0; i < arraySize; i++) {
            contact[i] = readContact();
        }
        // Print the contacts content
        for (int i = 0; i < arraySize; i++) {
            System.out.println(contact[i]);
        }
    }

    /**
     * Read contact information.
     * @return contact object
     */

    public Contact readContact() {
        Contact c = new Contact();
        // Read the name
        c.setName(readInput("Name"));
        // Read the phone
        boolean invalid = true;
        while (invalid) {
            String p = readInput("Phone (###-######)");
            if (p.matches("[0-9]{3}-[0-9]{6,12}")) {
                c.setPhone(p);
                invalid = false;
            }
        }

        // Read the age
        invalid = true;
        while (invalid) {
            String p = readInput("Age");
            if (p.matches("[0-9]{1,2}")) {
                c.setAge(Integer.parseInt(p));
                invalid = false;
            }
        }
        return c;
    }

    /**
     * Read input from default console in
     * @param prompt the prompt to be displayed
     * @return input string
     */

    public String readInput(String prompt) {
        return JOptionPane.showInputDialog(prompt);
    }
}

Passing Arrays to Methods


Two Dimensional Arrays

Contohnya:

List and Maps

Collection kadang-kadang disebut kontainer. Hanya objek yang kelompok beberapa elemen ke dalam sebuah unit tunggal.  Collection digunakan untuk menyimpan, mengambil, memanipulasi, dan berkomunikasi data agregat. Biasanya, mereka merupakan item data yang membentuk kelompok alami, seperti Poker (kumpulan dari kartu), folder mail (kumpulan surat), atau sebuah direktori telepon (pemetaan dari nama ke nomor telepon).

Collection terdiri dari beberapa bagian, yaitu:

  • Interfaces: tipe data abstrak yang mewakili collection. Interface collection memungkinkan untuk dimanipulasi secara independen rincian representasi mereka. Dalam bahasa berorientasi obyek, antarmuka umumnya bentuk hirarki.
  • Implementations: digunakan sebagai struktur data
  • Algorithms: metode yang dapat melakukan penghitungan, seperti pencarian dan menyortir, pada obyek yang mengimplementasikan antarmuka koleksi. Algoritma dikatakan polimorfik: yaitu, metode yang sama dapat digunakan pada berbagai implementasi dari interface koleksi yang sesuai. Pada dasarnya, algoritma tersebut fungsi dapat digunakan kembali.

Manfaat collection adalah sebagi berikut:

  • Mengurangi upaya pemrograman: Dengan menyediakan struktur data dan algoritma yang berguna, Kerangka collection membebaskan user untuk berkonsentrasi pada bagian-bagian penting dari program user bukan pada tingkat-rendah “pipa” diperlukan untuk membuatnya bekerja. Dengan memfasilitasi interoperabilitas antara API tidak berhubungan, Java Framework Koleksi membebaskan Anda dari menulis kode objek adaptor atau konversi untuk menghubungkan API.
  • Meningkatkan kecepatan dan kualitas program: Kerangka collection ini memberikan kinerja tinggi, implementasi berkualitas tinggi yang berguna struktur data dan algoritma. Berbagai implementasi setiap antarmuka saling dipertukarkan, sehingga program dapat dengan mudah disetel dengan beralih collection implementasi. Karena user dibebaskan dari beban struktur menulis data sendiri, user harus lebih banyak waktu untuk meningkatkan kualitas program dan kinerja.
  • Memungkinkan interoperabilitas antara API yang tidak terkait: Interface collection adalah vernakular yang dapat melewati API. Jika jaringan administrasi API memoles suatu kumpulan nama node dan jika user toolkit GUI mengharapkan collection judul kolom, API akan interoperate mulus, meskipun ditulis secara independen.
  • Mengurangi upaya untuk belajar dan menggunakan API baru: Banyak API secara alami mengambil koleksi pada input dan melengkapinya sebagai output. Di masa lalu, masing-masing API tersebut memiliki sub-API kecil yang ditujukan untuk memanipulasi koleksi. Ada sedikit konsistensi antara koleksi iklan hoc ini sub-API, jadi user harus belajar masing-masing dari awal, dan itu mudah untuk membuat kesalahan ketika menggunakannya. Dengan munculnya standar interface collection, masalah pergi.
  • Mengurangi upaya untuk merancang API baru: Ini adalah sisi lain dari keuntungan sebelumnya. Desainer dan pelaksana tidak perlu menciptakan roda setiap kali membuat API yang bergantung pada koleksi, melainkan dapat menggunakan antarmuka koleksi standar.
  • Memupuk perangkat lunak menggunakan kembali: struktur data baru yang sesuai dengan koleksi interface standar yang dapat digunakan kembali oleh alam. Hal yang sama berlaku untuk algoritma baru yang beroperasi pada objek yang mengimplementasikan interface ini.

Contoh:

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import javax.swing.JOptionPane;

public class W10Collection1 {

    public static void main(String[] args) {
        W10Collection1 w = new W10Collection1();
        w.demo();
    }

    /**
     * Actual demo process
     */
    public void demo() {
        // Declare the containers
        Collection aSet = new HashSet();
        Collection aList = new ArrayList();

        // Get contacts from input console
        while (confirmNextInput()) {
            Contact c = readContact();
            aSet.add(c);
            aList.add(c);
        }

        // Print the contacts content
        System.out.println("[HashSet]");
        for (Iterator i = aSet.iterator(); i.hasNext();) {
            System.out.println(i.next());
        }
        System.out.println("[ArrayList]");
        for (Iterator i = aList.iterator(); i.hasNext();) {
            System.out.println(i.next());
        }
    }

    /**
     * Read contact information.
     * @return contact object
     */
    public Contact readContact() {
        Contact c = new Contact();

        // Read the name
        c.setName(readInput("Name"));

        // Read the phone
        boolean invalid = true;
        while (invalid) {
            String p = readInput("Phone (###-######)");
            if (p.matches("[0-9]{3}-[0-9]{6,12}")) {
                c.setPhone(p);
                invalid = false;
            }
        }

        // Read the age
        invalid = true;
        while (invalid) {
            String p = readInput("Age");
            if (p.matches("[0-9]{1,2}")) {
                c.setAge(Integer.parseInt(p));
                invalid = false;
            }
        }
        return c;
    }

    /**
     * Read input from default console in
     * @param prompt the prompt to be displayed
     * @return input string
     */
    public String readInput(String prompt) {
        return JOptionPane.showInputDialog(prompt);
    }

    /**
     * Get user confirmation for another input
     * @return true on yes, false otherwise
     */
    public boolean confirmNextInput() {
        String answer = readInput("Input data? [Y]a/[T]idak");
        return "Y".equalsIgnoreCase(answer);
    }
}

Hashset : output akan diacak oleh program dengan sendirinya
Arrayset : output akan dikeluarkan sesuai dengan urutan input yang dimasukkan oleh user

Demikian pelajaran pada kelas OOP week ke 10. Sampai jumpa minggu depan….. 😀


Advertisements

Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.

%d bloggers like this: