Monday, April 2, 2012

Java - Kamus Java

Perbedaan pemrograman prosedural dan pemrograman berorientasi objek ?
pada pemrograman prosedural semua data dan kode digabung menjadi satu bagian dalam satu program, tetapi dalam pemrograman berorientasi objek penyusun program secara konseptual akan dipecah menjadi bagian- bagian tersendiri yang disebut objek

pengertian
-class : suatu sifat dari suatu objek, misalnya class of human, yang berisikan sifat" human itu sendiri
-objek : sesuatu yang dimiliki dari class tersebut seperti class of human, human tersebut yang dinamakan objek dalam hal ini.

access modifier :
-private : hanya dapat diakses dalam class nya saja
-public : dapat diakses dimana saja
-protected : hanya dapat diakses dalam class nya saja dan pewarisannya

ADT
-konstruktor : fungsi yang dijalankan/dieksekusi secara otomatis ketika program dijalankan untuk proses inisialisasi
-selector : fungsi yang mempunyai kegunaan khusus untuk memberikan nilai
-mutator : fungsi untuk mengakses komponen dari suatu class dalam class yang berbeda.

Element dari konseptual objek model terdiri dari :
-Abstraksi : karakter yang membedakan sebuah objek dengan objek yang lain
-Encapsulasi : berfokus pada implementasi internal dari sebuah objek
-Modularity : proses pengelompokan objek menjadi sebuah kesatuan yang memiliki kesamaan tertentu
-Inheritance : pewarisan sifat dengan pengaturan hirarki dari sebuah objek agar memiliki kemampuan -reusability yang optimal
-polimorfisme : suatu konsep dimana suatu method objek memiliki banyak bentuk sesuai dengan kebutuhan
-overloading : merupakan bentuk dari polimorfisme, yaitu beberapa method dapat memiliki nama yang sama dengan isi dan parameter yang berbeda di dalam sebuah class.

notasi UML untuk mendefinisikan sebuah kelas lengkap dengan symbol access modfiernya :

<Nama Kelas>
Attribute
Method
Simbol akses modifier:
+ = public
- = private
# = protected


 contoh jenis" hubungan antar kelas
-agregasi : hubungan yang menyatakan bagian (“terdiri atas..”).
contoh satu jurusan memiliki banyak mahasiswa
-assosiasi : hubungan statis antar class. Umumnya menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. Panah navigability menunjukkan arah query antar class.
contoh : segiempat berfungsi sebagai deklarasi objek untuk class driverutama
-inheritance : hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi.
contoh :  class matematika dengan class hitungan extends matematika
-komposisi : ketergantungan nya beberapa objek terhadap suatu objek
contoh : CPU memiliki objek , monitor, ram, procesor




Java - Program Utama(segiempat)


Nah setelah memahami array dan pendeklarasiannya , ayo kita membuat suatu program utama dimana program utama tersebut menyimpan nilai” array yang berisikan data panjang, lebar , luas , keliling dari segitiga


 pahamilah codingan sebagai berikut :

import java.io.*;  //membaca objek input output

class DriverArray {

  // Prosedur untuk membaca elemen array
  private static SegiEmpat readElement() {
    // Objek yang menjadi elemen array
    SegiEmpat s = new SegiEmpat();

    // Objek untuk pembacaan data dari keyboard
    InputStreamReader i = new InputStreamReader(System.in); //mendefinisikan alat input
    BufferedReader b = new BufferedReader(i);

    try {
      System.out.print("Panjang : ");
      String pString = b.readLine(); //pString membaca sebagai inputan
      System.out.print("Lebar   : ");
      String lString = b.readLine(); //lString membaca sebagai inputan
      float p = Float.parseFloat(pString); // mengkonversikan nilai string menjadi float
      float l = Float.parseFloat(lString); // mengkonversikan nilai string menjadi float
      s.setPanjang(p);
      s.setLebar(l);
    }
    catch (IOException err) {
      System.out.println("Proses pembacaan gagal!"); // bila input gagal
    }
    catch (NumberFormatException err) {
      System.out.println("Nilai input tidak valid!"); // bila nilai diluar dari yang diminta
    }
    return s;
  }

  // Program utama
  public static void main(String arg[]) { // menyatakan program utama

    // Penciptaan Objek
    Array a = new Array(); // mendefinisikan objek
    SegiEmpat e;

    // Penciptaan objek untuk pembacaan data
    InputStreamReader istream = new InputStreamReader(System.in) ;// mendifinisikan objek input
    BufferedReader bufRead = new BufferedReader(istream) ;

    int pilih = 10;
    do {
      // "Hapus" layar
      for (int i=0; i<15; i++) System.out.println();

      // Tampilkan pilihan menu
      try {
        System.out.println("Pengolahan Array Segi Empat");
        System.out.println();
        System.out.println("[1] Create Array Kosong");
        System.out.println("[2] Add Satu Elemen Array");
        System.out.println("[3] Delete Elemen Array");
        System.out.println("[4] Display Seluruh Elemen Array");
        System.out.println("[5] Search Elemen Tertentu");
        System.out.println();
        System.out.println("[0] Selesai");
        System.out.println();
        System.out.print("\nPilihan : ");
        String p = bufRead.readLine();
        pilih = Integer.parseInt(p);

        switch (pilih) {
          case 1:
            // Create array kosong
            a.createEmptyArray();
            bufRead.readLine();
            break;

          case 2:
            // Add elemen setelah elemen terakhir
            e = readElement();
            a.addElement(e);
            bufRead.readLine();
                    break;

          case 3:
            // Delete elemen terakhir
            a.delElement();
            bufRead.readLine();
                    break;

          case 4:
            // Display semua elemen array
            a.displayAllElement();
            bufRead.readLine();
                    break;

          case 5:
            // Search elemen array tertentu
            e = readElement();
            int x = a.searchElement(e);
            if (x != -9999)
              System.out.println("Posisi elemen yang dicari: "+x);
            else
              System.out.println("Elemen yang dicari tidak ditemukan");
            bufRead.readLine();
                    break;

          case 0:
            // "Hapus" layar
                    for (int i=0; i<25; i++)
                System.out.println();
                    break;

          default:
            // Beri pesan jika pilihan bukan 0-5
                    System.out.println("Pilihan Menu harus 0 sampai dengan 5");
            bufRead.readLine();
        }
      }
      catch (IOException err) {
        System.out.println("Proses pembacaan gagal. Ulangi lagi!");
      }
      catch (NumberFormatException err) {
        System.out.println("Data masukan tidak valid. Ulangi lagi!");
      }

    }
    while (pilih != 0);

  }
}

Java - ARRAY


Bagaimana sudah cukup jelas untuk pendeklarasian pada java? Nah sekarang kita akan mempelajari hal inti yang sering dipelajari dari java , yaitu ARRAY ! ,


 codingan dan penjelasan sebagai berikut , pahami dan praktekan
class Array {

  // Deklarasi atribut
  private SegiEmpat A[]; //membuat array SegiEmpat
  private int ptrElmt; // membuat pointer
  private int n = 10;


  // Definisi method
  // Prosedur untuk menciptakan sebuah array kosong
  public void createEmptyArray() {
    A = new SegiEmpat[n];
    ptrElmt = -1; // pointer berada di kondisi awal
    System.out.println("Array kosong sudah di-create...");
  }

  // Prosedur untuk menambahkan satu elemen kedalam array
  public void addElement(SegiEmpat s) {
    if (!isFull()) {
      ptrElmt++;
      A[ptrElmt] = s;
      System.out.println("Elemen sudah ditambahkan...");
    }
    else
      System.out.println("Array sudah penuh!");
  }

  // Prosedur untuk menghapus elemen terakhir
  public void delElement() {
    if (!isEmpty()) {
      ptrElmt--;
      System.out.println("Elemen terakhir dihapus...");
    }
    else
      System.out.println("Array kosong!");
  }

  // Prosedur untuk menampilkan seluruh elemen array jika tidak kosong
  public void displayAllElement() {
    // Cek apakah array tidak kosong
    if (!isEmpty())
      // Tampilkan seluruh elemen jika array tidak kosong
      for (int i=0; i<=ptrElmt; i++) {
        System.out.println("\nSegi Empat ke-"+(i+1)+" :");
        System.out.println("Panjang  = "+A[i].getPanjang());
        System.out.println("Lebar    = "+A[i].getLebar());
        System.out.println("Luas     = "+A[i].Luas());
        System.out.println("Keliling = "+A[i].Keliling());
      }
    else
      // Beri pesan
      System.out.println("Array kosong!");
  }

  // Mencari elemen tertentu dari array
  public int searchElement(SegiEmpat s) {
    // Deklarasi sentinel
    int lok = -9999;

    // Proses pencarian elemen
    for (int i=0; i<=ptrElmt; i++) {
      if ((A[i].getPanjang()==s.getPanjang()) && (A[i].getLebar()==s.getLebar())) {
        lok = i;
        break;
      }
    }
    return lok;
  }

  // Method tambahan
  private boolean isEmpty() {
    return (ptrElmt == -1);
  }

  private boolean isFull() {
    return (ptrElmt == (n-1));
  }
}

Java - Pendeklarasian


Setelah anda memahami tahap codingan HelloWorld sekarang kita pelajari tentang deklarasi pada java, jadi bila kita ingin membangun suatu program utama dimana nantinya dibutuhkan untuk membangun program tersebut , kita memerlukan pendeklarasian terlebih dahulu


disini kita akan membuat deklarasi" untuk membangun sebuah segiempat menggunakan method dan constructor sebagai berikut :

class SegiEmpat {

  // Deklarasi atribut
  private float panjang,lebar; // mendeklarasikan unsur yang ada untuk membangun segiempat

  // Definisi method
  // Selector
  public float getPanjang() { //menyatakan nilai panjang
    return (panjang);
  }

  public float getLebar() { // menyatakan nilai lebar
    return (lebar);
  }

  // Accessor
  public void setPanjang(float p) { // mengambil nilai panjang yang di inputkan user
    panjang = p;
 }
  public void setLebar(float l) { // mengambil nilai lebar yang di inputkan user
    lebar = l;
  }

  // Fungsi untuk menghitung luas dan keliling
  public float Luas() {
    return (panjang*lebar);
  }

  public float Keliling() {
    return (2*(panjang+lebar));
  }
}