Sabtu, 09 Mei 2009

PEMROGRAMAN BERORIENTASI OBJECT DENGAN JAVA

Konsep pemrograman berorientasi object adalah bagaimana cara kita memodelkan sebuah system menjadi object-object (memodelkan sebagai benda). Misalnya dalam dosen, mahasiswa, karyawan sedangkan kerja yang dilakukan oleh object (dosen) yaitu mengajar mahasiswa. Kemampuan kita menganalisis masalah dan memetakkan object berdasarkan kenyataan dilapangan sangat penting. Setelah object didefinisikan baru kita menentukan bagaimana hubungan antara object yang satu dan yang lainnya. Setiap object mempunyai state/atribut/field (keadaan) dan behavior (tingkah laku). State digunakan untuk menyimpan informasi tentang object sedangkan behavior/method adalah untuk menentukan kerja apa aja yang dilakukan object.
Dalam Java program yang dibuat paling tidak harus mempunyai satu class, class bukan merupakan method tetapi class adalah konsep dari object. Misalnya program yang akan kita buat adalah game yang terdiri dari 2 ekor gajah yang mempunyai nama sofi dan elfa maka nama class itu adalah gajah sedangkan objectnya adalah sofi dan elfa. Dalam class kita menentukan field dari object tersebut misalnya nama dan berat badan.
Secara garis besar pemrograman berorientasi object dalam bahasa java diterapkan tahap-tahap sebagai berikut :
1. Membuat class : menggambarkan bagaimana sifat-sifat object seperti properties dan behaviornya.
2. Membuat object
3. Menggunakan object satu dengan yang lain sehingga membentuk hubungan yang di inginkan.
4. Menentukan awal dan alur eksekusi program.

Contoh program untuk menghitung luas segitiga :
Nama class adalah LuasSegitiga yang mempunyai object segitiga dan method hitung luas segitiga.

Contoh coding sederhana dengan java untuk menghitung luas segitiga :

public class LuasSegitiga {
public static void main(String[]args){
int alas=17;
int tinggi=11;
double luas;
luas=(double)((alas*tinggi)/2);
System.out.println("Luas Segitiga :" + luas);
int lebar=5;
int panjang=3;
int luasp;
luasp=(panjang*lebar);
System.out.println(luasp);
}
}

Jumat, 08 Mei 2009

Algoritma Searching

BINARY SEARCH :
• Data yang ada harus diurutkan terlebih dahulu berdasarkan suatu urutan tertentu yang dijadikan kunci pencarian.
• Adalah teknik pencarian data dalam dengan cara membagi data menjadi dua bagian setiap kali terjadi proses pencarian.
• Prinsip pencarian biner adalah:
Data diambil dari posisi 1 sampai posisi akhir N
Kemudian cari posisi data tengah dengan rumus: (posisi awal + posisi akhir) / 2
Kemudian data yang dicari dibandingkan dengan data yang di tengah, apakah sama atau lebih kecil, atau lebih besar?
Jika lebih besar, maka proses pencarian dicari dengan posisi awal adalah posisi tengah + 1
Jika lebih kecil, maka proses pencarian dicari dengan posisi akhir adalah posisi tengah – 1
Jika data sama, berarti ketemu.

while (first < upto) {
int mid = (first + upto) / 2; // Compute mid point.
if (key < sorted[mid]) {
upto = mid; // repeat search in bottom half.
}
else if (key > sorted[mid]) {
first = mid + 1; // Repeat search in top half.
}
else { return mid; // Found it.
return position } } return -(first + 1); // Failed to find key }


Contoh binary Search dalam array (implementasi dalam Java) :

• public static void main(String[] args){
• String[] op = new String[3];
• op[0] ="Indosat";
• op[1] = "Telkomsel";
• op[2] = "Exelcomindo";
• int dapet = Arrays.binarySearch(op, "Indosat");
• if (dapet > -1)
• System.out.println("data ditemukan pada :" +dapet);
• else
• System.out.println("data tidak ditemukan"); }
Artinya dalam array op ada 3 data operator telephone yaitu : Indosat, Tekomsel, dan Exelcomindo.
Lalu akan dilakukan pencarian “Indosat ada di data nomer berapa dengan perintah searching dalam java : Arrays.binarySearch. Maka data akan dibaca dari urutan ke 0 artinya var “Indosat” ada dalam matriks 0 (urutan 1).

Kamis, 07 Mei 2009

Algoritma Sorting

Pengertian Algoritma :
• Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”. (ilmukomputer.com)
• Algoritma merupakan kumpulan perintah untuk menyelesaikan suatu masalah. (wikipedia)
Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma

ALGORITMA SORTING

• Istilah sorting tentu tidak asing di telinga kita, yaitu istilah untuk mengurutkan data. Mengatur elemen berdasar urutan tertentu . Sorting adalah proses menyusun elemen – elemen dengan tata urut tertentu dan proses tersebut terimplementasi dalam bermacam aplikasi.
• Ada dua bentuk sorting yaitu secara ascending dan descending. Sorting secara ascending adalah cara mengurutkan data mulai data bernilai terkecil sampai terbesar. Sedangkan descending mengurutkan data mulai dari data terbesar sampai terk
• Beberapa algoritma sorting telah dibuat karena proses tersebut sangat mendasar dan sering digunakan
• Pengurutan data dalam struktur data sangat penting untuk data yang beripe data numerik ataupun karakter.
• Pengurutan dapat dilakukan secara ascending (urut naik) dan descending (urut turun)
• Pengurutan (Sorting) adalah proses menyusun kembali data yang sebelumnya telah disusun dengan suatu pola tertentu, sehingga tersusun secara teratur menurut aturan tertentu.
Contoh:
• Data Acak : 5 6 8 1 3 25 10
• Ascending : 1 3 5 6 8 10 25
• Descending : 25 10 8 6 5 3 1

Aplikasi dalam Java

Sorting misalnya digunakan untuk mengurutkan isi dalam array (dalam Java API, Array merupakan class dalam package java.util
- static void sort(array) : mengurutkan isi array
- static String toString(array) : mengubah nilai array menjadi String
Sorting secara Ascending mengurutkan data dimulai dari data yang terkecil
public class Sorting {
public static void main(String[] args){
String[] huruf = { "D", "A", "C", "F", "H" };
System.out.println("SEBELUM DI LAKUKAN SORTING/PENGURUTAN");
for (int i= 0; i<5; i++){
System.out.println(huruf[i] );
}
Arrays.sort(huruf);
System.out.println("SETELAH DI SORTING/ DIURUTKAN");
for (int j = 0; j < 5; j++){ System.out.println(huruf[j]);
} } }



Metode Pengurutan Data
• Pengurutan berdasarkan perbandingan (comparison-based sorting)
 Bubble sort, exchange sort
• Pengurutan berdasarkan prioritas (priority queue sorting method)
 Selection sort, heap sort (menggunakan tree)
• Pengurutan berdasarkan penyisipan dan penjagaan terurut (insert and keep sorted method)
 Insertion sort, tree sort
• Pengurutan berdasarkan pembagian dan penguasaan (devide and conquer method)
 Quick sort, merge sort
• Pengurutan berkurang menurun (diminishing increment sort method)
 Shell sort (pengembangan insertion)

Insertion Sort
Salah satu algoritma paling sederhana
Cukup intuitif dan prosesnya mirip dengan mengurutkan kartu
Tujuan: mengurutkan kartu dari paling kecil hingga terbesar
Terdapat: kartu, meja 1, meja 2
Awal: Kartu acak diletakkan pada meja 1
Teknik: Kartu berurutan diletakkan pada meja 2
Ambil kartu pertama dari meja 1, bandingkan dengan tabel 2 dan tempatkan sesuai posisi urutan di meja 2
Ulangi hingga seluruh kartu terletak pada meja 2
• Bagi elemen data yang akan diurutkan menjadi dua
Bagian yang belum diurutkan
Bagian yang telah terurutkan
• Ulangi langkah tersebut hingga tidak ada elemen tersisa dalam array
Elemen pertama dipilih dari bagian yang belum diurutkan
Tempatkan elemen terpilih sesuai urutan pada array

void insertionSort(Object array[], int startIdx,
int endIdx) {
for (int i = startIdx; i < endIdx; i++) {
int k = i;
for (int j = i + 1; j < endIdx; j++) {
if (((Comparable) array[k]).compareTo(
array[j])>0) {
k = j;
}
}
swap(array[i], array[k]);
}
}