Arsip

Archive for the ‘Kuliah’ Category

Algoritma Branch And Bound

September 10, 2013 Tinggalkan komentar

Selain programa linier, bidang operations research mempunyai satu model umum yang sangat sering dipakai. Model ini adalah model programa linier dengan tambahan kendala integer yang biasa disebut dengan Integer programming (IP). Kendala integer yang dimaksud adalah kendala di mana beberapa (atau semua) variabel keputusan harus bernilai angka integer.

Metode dasar yang dapat digunakan untuk menyeleseikan permasalahan programa integer adalah dengan algoritma branch and bound. Algoritma ini disebut algoritma branch karena algoritma ini akan membagi permasalahan prorgama integer menjadi cabang-cabang permasalahan seperti ditunjukkan pada gambar di bawah ini. Cabang-cabang permasalahan akan berbentuk programa linear. Algoritma ini juga membatasi (bound) pencarian pada percabangan yang menjanjikan saja.

Percabangan dilakukan dengan memeriksa variabel mana yang belum memenuhi kendala integer. Jika variabel seperti ini ditemui, maka Baca selengkapnya…

Algoritma brute force dalam pencarian string

September 10, 2013 Tinggalkan komentar

1. Definisi Brute Force

Brute force : pendekatan yang lempang (straightforward) untuk memecahkan suatu masalah. Biasanya didasarkan pada:
  • pernyataan masalah (problem statement)
  • definisi konsep yang dilibatkan.
 Algoritma brute force memecahkan masalah dengan sangat sederhana, langsung, jelas (obvious way).
Algoritma brute force merupakan algoritma pencocokan string yang ditulis tanpa memikirkan peningkatan performa. Algoritma ini sangat jarang dipakai dalam praktik, namun berguna dalam studi pembanding dan studi-studi lainnya.
2. Karakteristik Algoritma Brute Force
  • Algoritma brute force sebenarnya bukanlah algoritma yang “cerdas” dan mangkus(efisien), karena ia membutuhkan jumlah langkah yang besar/banyak dalam penyelesaiannya dan tentu saja membutuhkan waktu yang berbanding lurus dengan jumlah langkah penyelesaiannya. Kadang-kadang algoritma brute force disebut juga algoritma naif (naïve algorithm).
  • Algoritma brute force seringkali merupakan pilihan yang kurang disukai karena ketidakmangkusannya itu, tapi kalau mencari pola2 dasar, keteraturan, atau trik-trik khusus, biasanya dapat membantu untuk menemukan algoritma yang lebih cerdas dan lebih mangkus lagi.
  • Baca selengkapnya…

Algoritma Devide and Conquere

September 10, 2013 Tinggalkan komentar

1.  Pengertian

Algoritma Divide and Conquer merupakan algoritma yang sangat populer di dunia Ilmu Komputer. Divide and Conquer merupakan algoritma yang berprinsip memecah-mecah permasalahan yang terlalu besar menjadi beberapa bagian kecil sehingga lebih mudah untuk diselesaikan. Langkah-langkah umum algoritma Divide and Conquer :

  • Biasanya didasarkan pada: pernyataan masalah (problem statement) dan definisi konsep yang dilibatkan.
  • Divide : Membagi masalah menjadi beberapa upa-masalah yang memiliki kemiripan dengan masalah semula namun berukuran  lebih kecil ( idealnya berukuran hampir sama ).
  • Conquer : Memecahkan ( menyelesaikan ) masing-masing upa-masalah ( secara rekursif ).
  • Combine : Menggabungkan solusi masing-masing upa-masalah sehingga  membentuk solusi masalah semula.

Objek masalah yang di bagi adalah masukan (input) atau instances yang berukuran n: tabel (larik), matriks, dan sebagainya, bergantung pada masalahnya. Tiap-tiap upa-masalah mempunyai karakteristik yang sama (the same type) dengan karakteristik masalah asal, sehingga metode Divide and Conquer lebih natural diungkapkan dalam skema rekursif. Sesuai dengan karakteristik pembagian dan pemecahan masalah tersebut, maka algoritma ini dapat berjalan baik pada persoalan yang bertipe rekursif (perulangan dengan memanggil dirinya sendiri). Dengan demikian, algoritma ini dapat diimplementasikan dengan cara iteratif ( perulangan biasa ), karena pada prinsipnya iteratif hampir sama dengan rekursif. Salah satu penggunaan algoritma ini yang paling populer adalah dalam hal pengolahan data yang bertipe array ( elemen larik ). Mengapa ? Karena pengolahan array pada umumnya selalu menggunakan prinsip rekursif atau iteratif. Penggunaan secara spesifik adalah untuk mencari nilai minimal dan maksimal serta untuk mengurutkan elemen array. Dalam hal pengurutan ini ada empat macam algoritma pengurutan yang berdasar pada algoritma Divide and Conquer, yaitu merge sort, insert sort, quick sort, dan selection sort. Merge sort dan Quick sort mempunyai kompleksitas algoritma O(n ²log n). Hal ini lebih baik jika dibandingkan dengan pengurutan biasa dengan menggunakan algoritma brute force.

Skema Umum Algoritma Divide and Conquer : Baca selengkapnya…

Algoritma Greedy

September 10, 2013 Tinggalkan komentar

ALgoritma greedy merupakan salah satu dari sekian banyak algoritma yang sering di pakai dalam implementasi sebuah system atau program yang menyangkut mengenai pencarian “optimasi”

Di dalam mencari sebuah solusi (optimasi) algoritma greedy hanya memakai 2 buah macam persoalan Optimasi,yaitu:

1. Maksimasi (maxizimation)
2. Minimasi (minimization)

Solusi optimum (terbaik) adalah solusi yang bernilai minimum atau maksimum dari sekumpulan alternatif solusi yang mungkin.

Elemen persoalan optimasi:
kendala (constraints)
fungsi objektif(atau fungsi optiamsi)

Solusi yang memenuhi semua kendala disebut solusi layak (feasible solution). Solusi layak yang mengoptimumkan fungsi optimasi disebut solusi optimum.

Algoritma greedy merupakan metode yang paling populer untuk memecahkan persoalan optimasi.

Greedy = rakus, tamak, loba, ….

Prinsip greedy adalah: “take what you can get now!”. Baca selengkapnya…

Pembelajaran Java Part II

Januari 21, 2013 4 komentar
Java adalah salah satu bahasa pemrograman yang paling diminati oleh banyak orang sekarang. Tingkat kompatibelitas yang tinggi, dan banyaknya fitur fitur baru yang tidak dimiliki oleh bahasa pemrograman lainnya membuat java semakin melejit. Selain itu mudah dan simplenya syntax dari java juga membuat bahasa pemrograman yang satu ini banyak diminati. Keunggulan dari Java yang lainnya adalah, terdapatnya J2ME (Java 2 Platform Micro Edition), J2SE (Java 2 Platform Standart Edition) dan J2EE (Java 2 Platform Entreprise Edition). Dimana J2ME adalah versi Java yang digunakan untuk platform platform kecil, seperti Mobile Phone, PDA , dll. Sedangkan J2EE adalah versi java yang digunakan untuk platform besar, atau untuk aplikasi aplikasi bersekala besar. Nah yang akan kita pelajari saat ini adalah J2SE, yaitu versi java yang digunakan untuk personal computer maupun notebook. Untuk memulai membuat aplikasi dengan menggunakan Java kita harus mendownload compiler untuk java terlebih dahulu, yaitu JDK. Sebenarnya cukup dengan memiliki compiler java, kita sudah bisa mulai membuat aplikasi dengan menggunakan java, akan tetapi jika kita mengalami kesulitan ketika meng-compile ataupun men-debug program kita maka saya sarankan untuk menginstal IDE untuk java sekalian, yaitu Netbeans, Eclipse maupun JCreator. Mungkin saya sedikit merekomendasikan penggunaan Netbeans sebagai editor, karena fiturnya lengkap dan memudahkan kita saat membuat program.
Setelah menginstall JDK dan Netbeans mari kita mulai membuat program dengan menggunakan Java, untuk permulaan perhatikan contoh dibawah ini yang merupakan program“Hello Word” menggunakan Java; public class Welcome { public static void main( String args[] ) { System.out.println( “Hello Words !!!” ); } } Maka setelah program diatas kita compile, akan mengeluarkan output berupa Hello Words !!! . System.out.println( “Hello Words !!!” );

ini adalah method yang digunakan untuk menampilkan text didalam java dengan karakter setelah mencetak text yang kita inginkan ia langsung berganti baris. Untuk method yang mirip ini akan tetapi tidak berganti baris setelah selesai menampilakan text adalah System.out.print(); perhatikan contoh penggunaannya dibawah ini; Baca selengkapnya…

Pembelajaran Java Part 1

Januari 21, 2013 Tinggalkan komentar

Pengertian Java

Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Dikembangkan oleh Sun Microsystems dan diterbitkan tahun 1995.

Contoh Kode Program Sederhana Dalam Java

Contoh program Halo dunia yang ditulis menggunakan bahasa pemrograman Java adalah sebagai berikut:

Code:

class HaloDunia
{
public static void main(String[] argumen)
{
System.out.println(“Halo Dunia”);
}
}

Lebih Lanjut….

java adalah sebuah pemrograman yang bersifat OOP atau kata lainnya adalah, Object Oriented Programming,dimana didalamnya kita harus mememahami apa yang disebut dengan:

encapsulation

inheritance

polymorphissm

untuk mengatahui ini silahkan cari di google yah, sebab saya akan menjelaskan garis besarnya dasar java, dan yang terpenting adalah memahami bahasa pemrograman lewad contoh script yang sudah ada.

Ok pada kali ini saya akan langsung memberikan bentuk dasar dari bahasa java..

dasar syntax dari java adalah seperti yang tertera dibawah ini: Baca selengkapnya…