tag:blogger.com,1999:blog-77423841502936044622024-03-13T09:34:10.774-07:00Algoritma Genetikaayiehttp://www.blogger.com/profile/09974091994166296589noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-7742384150293604462.post-25959733636380125182014-05-15T01:21:00.002-07:002014-05-15T03:26:58.616-07:00<b><span style="font-size: x-large;"> Algoritma Genetika</span></b><br />
<br />
<span style="font-size: small;"> Algoritma Genetika adalah algoritma pencarian heuristik yang didasarkan atas mekanisme evolusi biologis.</span><br />
<span style="font-size: small;">Keberagaman pada evolusi biologis adalah variasi dari kromosom antar individu organisme. Variasi kromsom akan mempengaruhi lajur eproduksi dan tingkat kemampuan oraginisme untuk tetap hidup.</span><br />
<span style="font-size: small;">Ada4 kondisi yang sanga tmempengaruhi proses evolusi, yaitu:<br />1. Kemampuan organisme untuk melakukan reproduksi<br />2. Keberadaan populasi organisme yang bisa melakukan reproduksi<br />3. Keberagaman organisme dalam suatu populasi<br />4. Perbedaan kemampuan untuk survive</span><br />
<span style="font-size: small;"> Algoritma genetika pertamakali diperkenalkan olehJohn Holland dari Universitas Michigan (1975), Setiap masalah yang berbentuk adaptasi dapat diformulasikan dalam terminologi genetika.</span><br />
<br />
<span style="font-size: small;"><b><span style="font-size: large;">Struktur Umum</span></b><br />•Populasi, istilah pada teknik pencarian yang dilakukan sekaligus atas sejumlah solusi yang mungkin<br />•Kromosom, individu yang terdapat dalam satu populasi dan merupakan suatu solusi yang masih berbentuk simbol.<br />•Generasi, populasi awal dibangun secara acak sedangkan populasi selanjutnya merupakan hasil evolusi kromosom-kromosom melalui iterasi.</span><br />
<span style="font-size: small;">•FungsiFitness, alat ukur yang digunakan untuk proses evaluasi kromosom. Nilai fitness dari suatu kromosom akan menunjukkan kualitas kromosom dalam populasi tersebut.<br />•Generasi berikutnya dikena ldengan anak(offspring) terbentuk dari gabungan2 kromosom generasi sekarang yang bertindak sebagai induk(parent) dengan menggunakan operator penyilang (crossover).<br />•Mutasi, operator untuk memodi-fikasi kromosom.</span><br />
<br />
<span style="font-size: small;"><b><span style="font-size: large;">Komponen Utama</span></b><br />•Ada 6 komponen utama algoritma genetika:<br /><b>1.Teknik Penyandian</b><br />-Teknik penyandian meliputi penyandian gen dari kromosom<br />-Gen merupakan bagian dari kromosom, satu gen biasanya akan mewakili satu variabel<br />-Gen dapat direpresentasikan dalam bentuk: string bit, pohon, array bilangan real, daftar aturan, elemen permutasi, elemen program dan lain-lain.</span><br />
<span style="font-size: small;">−Kromosom dapat direpresentasikan dengan menggunakan:<br />•String bit: 10011, 11101<br />•Bilangan Real: 65.65, 562.88<br />•Elemen Permutasi: E2, E10<br />•Daftar Aturan: R1, R2, R3<br />•Elemen Program : pemrograman genetika<br />•Struktu rlainnya</span><br />
<br />
<span style="font-size: small;"><b>2.ProsedurInisialisasi</b><br />-Ukuran populasi tergantung pada masalah yang akan dipecahkan dan jenis operator genetika yang akan diimplementasikan.</span><br />
<span style="font-size: small;">−Setelah ukuran populasi ditentukan, kemudian harus dilakukan inisialisasi terhadap kromosom yang terdapat pada populasi tersebut<br />−Inisialisasi kromosom dilakukan secara acak, namun demikian harus tetap memperhatikan domain solusi dan kendala permasalahan yang ada<br /><b>3.Fungsi Evaluasi</b><br />Ada2 hal yang harus dilakukan dalam melakukan evaluasi kromosom yaitu: evaluasi fungsi objektif dan konversi fungsi objektif kedalam fungsi fitness</span><br />
<span style="font-size: small;"><b>4.Seleksi</b><br />-Bertujuan untuk memberikan kesempatan reproduksi yang lebih besar bagi anggota populasi yang paling fit<br />-Ada beberapa metode seleksi dari induk, antara lain :<br />•Rank-based fitness assigment<br />•Roulette wheel selection<br />•Stochastic universal sampling<br />•Local selection<br />•Truncation selection<br />•Tournament selection</span><br />
<span style="font-size: small;"><b>5.Operator Genetika</b><br />Ada 2 operator genetika:<br />a.Operator untuk melakukan rekombinasi, yang terdiri dari:</span><br />
<span style="font-size: small;">-Rekombinasi bernilai real<br />1. Rekombinasi diskrit<br />2. Rekombinasi intermediate<br />3. Rekombinasi garis<br />4. Rekombinasi garisyang diperluas</span><br />
<span style="font-size: small;">-Rekombinasi bernilai biner(Crossover)<br />1. Crossover satu titik<br />2. Crossover banyak titik<br />3. Crossover seragam</span><br />
<span style="font-size: small;">-Crossover dengan permutasi </span><br />
<span style="font-size: small;">b.Mutasi</span><br />
<span style="font-size: small;">-Mutasi bernilai real</span><br />
<span style="font-size: small;">-Mutasi bernilai biner<br /><b>6.Penetuan Parameter</b> </span><br />
<span style="font-size: small;">-Parameter adalah parameter kontrol algoritma genetika, yaitu: ukuran populasi(popsize), peluang crossover (pc) dan peluang mutasi(pm).</span><br />
<span style="font-size: small;">-Rekomendasi menentukan nilai parameter :</span><br />
<span style="font-size: small;">-Untuk permasalahan yang memiliki kawasan solusi cukup besar, De Jong merekomendasikan nilai parameter :<br />(popsize; pc; pm) = (50;0,6;0,001)</span><br />
<span style="font-size: small;">-Bilarata-rata fitness setiap generasi digunakan sebagai indikator, maka Grefenstette merekomendasikan:<br />(popsize; pc; pm) =(30;0,95;0,01)</span><br />
<span style="font-size: small;">-Bila fitness dari individu terbaik dipantau pada setiap generasi, maka usulannya adalah:<br />(popsize; pc; pm) = (80;0,45;0,01)</span><br />
<span style="font-size: small;">-Ukuran populasi sebaiknya tidak lebih kecil dari30, untuk sembarang jenis permasalahan</span><br />
<br />
<span style="font-size: small;"><b><span style="font-size: large;">Seleksi</span></b><br />•Seleksi akan menentukan individu-individu mana saja yang akan dipilih untuk dilakukan rekombinasi dan bagaimana off-spring terbentuk dari individu-individu terpilih tersebut.<br />•Langkah pertama: pencarian nilai fitness<br />•Langkah kedua: Nilai fitness yang diperolah digunakan pada tahap-tahap seleksi selanjutnya</span><br />
<span style="font-size: small;">•Ada beberapa definisi yang bias digunakan untuk melakukan perbandingan terhadap beberapa metode yang akan digunakan, antara lain :</span><br />
<span style="font-size: small;">-Selective Pressure : probabilitas darii ndividu terbaik yang akan diseleksi dibandingkan dengan rata-rata probabilitas dari semua individu yang diseleksi.</span><br />
<span style="font-size: small;">-Bias : perbedaan absolut antara fitness ternormalisasi dari suatu individu dan probabilitas reproduksi yang diharapkan.</span><br />
<span style="font-size: small;">-Spread : range nilai kemungkinan untuksejumlah off-spring dari suatu individu</span><br />
<span style="font-size: small;">-Loss of diversity: proposi dari individu-individu dalam suatu populasi yang tidak terseleksi selama fase seleksi.</span><br />
<span style="font-size: small;">-Selection intensity : nilai fitness rata-rata yang diharapkan dalam suatu populasi setelah dilakukan seleksi (menggunakan distribusi Gauss ternormalisasi).</span><br />
<span style="font-size: small;">-Selection variance : variansi yang diharapkan dari distribus ifitness dalam populasi setelah dilakukan seleksi (menggunakan distribus iGauss ternormalisasi).</span><br />
<span style="font-size: small;">1.Rank-based Fitness<br />•Populasi diurutkan menurut nilai objektifnya. Nilai fitness dari tiap-tiap individu hanya tergantung pada posisi individu tersebut dalam urutan, dan tidak dipengaruhi oleh nilai objektifnya.<br />2.Roulette Wheel Selection<br />•Istilah lain adalah stochastic sampling with repalcement.<br />•Individu-individu dipetakan dalam suatu segmen garis secara berurutan sedemikian hingga tiap-tiap segmen individu memiliki ukuran yang sama dengan ukuran fitnessnya<br />•Sebuah bilangan random di-bangkitkan dan individu yang memiliki segmen dalam kawasan segmen dalam kawasan bilangan random tersebut akan terseleksi. Proses ini berulang hingga didapatkan sejumlah individu yang diharapkan.</span><br />
<span style="font-size: small;">3.Stocastic Universal Sampling<br />•Memiliki nilai bias nol dan penyebaran yang minimum<br />•Individu-individu dipetakan dalam suatu segmen garis secara berurut sedemikian hingga tiap-tiap segmen individu memiliki ukuran yang sama dengan ukuran fitnessnya seperti halnya pada seleksi rodaroulette. Kemudian diberikan sejumlah pointer sebanyak individu yang ingin diseleksi pada garis tersebut.<br />•Andaikan N adalah jumlah individu yang akan diseleksi, maka jarak antar pointer adalah1/N, dan posisi pointer pertama diberikan secara acak pada range [1, 1/N]</span><br />
<span style="font-size: small;">4.Seleksi Lokal<br />•Setiap individu yang berada didalam konstrain tertentu disebut dengan nama lingkungan lokal. Interaksi antar individu hanya dilakukan didalam wilayah tersebut. Lingkungan tersebut ditetapkan sebagai struktur dimana populasi tersebut terdistribusi. Lingkungan tersebut juga dapat dipandang sebagai kelompok pasangan-pasangan yang potensial.<br />•Langkah pertama adalah menyeleksi separuh pertama dari populasi yang berpasangan secara random. Kemudian lingkungan baru tersebut diberikan pada setiap individu yang terseleksi.</span><br />
<span style="font-size: small;">•Struktur lingkungan pada seleksi lokal dapat berbentuk:</span><br />
<span style="font-size: small;">*Linear : full ring dan half ring</span><br />
<span style="font-size: small;">*Dimensi -2:<br /> -full cross dan half cross<br /> -full star dan half star</span><br />
<span style="font-size: small;">*Dimensi-3 dan struktur yang lebih kompleks yang merupakan kombinasi dari kedua struktur diatas<br />•Jarak antara individu dengan struktur tersebut akan sangat menentukan ukuran lingkungan. Individu yang terdapat dalam lingkungan dengan ukuran yang lebih kecil, akan lebih terisolasi dibandingkan dengan individu yang terletak pada lingkungan dengan ukuran yang lebih besar.</span><br />
<span style="font-size: small;">5.Truncation Selection<br />•Seleksinya adalah buatan<br />•Digunakan oleh populasi yang jumlahnya sangat besar<br />•Individu-individu diurutkan berdasarkan nilai fitnessnya. Hanya individu yang terbaik saja yang akan diseleksi sebagai induk.<br />•Parameter yang digunakan adalah suatu nilai ambang trunc yang mengindikasikan ukuran populasi yang akan diseleksi sebagai induk yang berkisar antara50% -10%.<br />•Individu-individu yang ada dibawah nilai ambang ini tidak akan menghasilkan keturunan</span><br />
<span style="font-size: small;">6.Tournament Selection<br />•Ditetapkan suatu nilai tour untuk individu-individu yang dipilih secara random dari suatu populasi.<br />•Individu-individu yang terbaik dalam kelompok ini akan diseleksi sebagai induk<br />•Parameter yang digunakan adalah ukuran tour yang bernilai antara2 sampai N (jumlah individu dalam populasi)</span><br />
<span style="font-size: small;">Rekombinasi<br />1.Rekombinasi Diskret<br />•Menukar nilai variabel antar kromosom induk.<br />•Misal ada2 individu dengan3 variabel, yaitu:<br />induk1 : 12 25 5<br />induk2 : 123 4 34<br />•Untuk tiap-tiap variabel induk yang menyumbangkan variabelnya keanak yang dipilih secara random dengan probabilitas yang sama.<br />sample 1 : 2 2 1<br />sample 2 : 1 2 1</span><br />
<span style="font-size: small;">Setelah rekombinasi, kromosom-kromosom baru yang terbentuk:<br />anak1 : 123 4 5<br />anak2 : 1 4 5<br />•Rekombinasi dapat digunakan untuk sembarang variabel (biner, real, atau simbol)<br />2.Rekombinasi Menengah<br />•Metode rekombinasi yang hanya dapat digunakan untuk varibel real<br />•Nilai variebel anak dipilih disekitar dan antara nilai-nilai variabel induk</span><br />
<span style="font-size: small;">•Anak dihasilkan menurut aturan sebagai berikut:<br />anak= induk1 + alpha (induk2 –induk1)<br />dengan alpha adalah faktor skala yang dipilih secara random pada interval [-d, 1+d], biasanyad=0,25.<br />•Tiap-tiap variabel pada anak merupakan hasil kombinasi variabel-variabel menuru taturan diatas dengan nilai alpha dipilih ulang untuk tiap variabel.</span><br />
<span style="font-size: small;">3.Rekombinasi Garis<br />•Hampir sama dengan rekombinasi menengah, hanya saja nilai alpha untuk semua variabel sama.<br />•Misalkan ada2 kromosom dengan 3 variabel:<br />induk1 : 12 25 5<br />induk2 : 123 4 34<br />•Untuk tiap-tiap variabel induk yang menyumbangkan vaiabelnya keanak dipilih secara random dengan probabilitas yang sama.<br />sample 1 : 0,5<br />sample 2 : 0,1<br />•Setelah rekombinasi kromosom-kromosom baru yang terbentuk<br />anak1: 67,5 14,5 19,5<br />anak2: 23,1 22,9 7,9</span><br />
<span style="font-size: small;">4.Penyilangan satu titik<br />•Posisi penyilangan k (k=1,2,…,N-1) denganN = panjang kromosom diseleksi secara random.<br />•Variabel-variabel ditukar antar kromosom pada titik tersebut untuk menghasilkan anak<br />•Misalkan ada 2 kromosom dengan panjang12 :<br />induk 1 : 0 1 1 1 0 | 0 1 0 1 1 1 0<br />induk 2 : 1 1 0 1 0 | 0 0 0 1 1 0 1<br />•Posisi menyilang yang terpilih: misalkan5<br />•Setelah penyilangan, diperoleh kromosom-kromosom baru:<br />anak 1 : 0 1 1 1 0 | 0 0 0 1 1 0 1<br />anak 2 : 1 1 0 1 0 | 0 1 0 1 1 1 0</span><br />
<span style="font-size: small;">5.Penyilangan banya ktitik<br />•Pada penyilangan ini, m posisi penyilangan ki(k=1,2,…,N-1,i=1,2,…,m) dengan N = panjang kromosom diseleksi secara random dan tidak diperbolehkan ada posisi yang sama, serta diurutkan naik.<br />•Variabel-variabel ditukar antar kromosom pada titik tersebut untuk menghasilkan anak.</span><br />
<span style="font-size: small;">6.Penyilangan Seragam<br />•Setiap lokasi memiliki potensi sebagai tempat penyilangan.<br />•Sebuah mask penyilangan dibuat sepanjang panjang kromosom secara random yang menunjukan bit-bit dalam mask yang mana induk akan mensupply anak dengan bit-bit yang ada.<br />•Induk yang mana yang akan menyumbangkan bit keanak yang dipilih secara random dengan probabilitas yang sama.</span><br />
<span style="font-size: small;">7.Penyilangan dengan permutasi<br />•Dengan permutasi, kromosom-kromosom anak diperoleh dengan cara memilih sub-barisan sautu tour dari satui nduk dengan tetap menjaga urutan dan posisi sejumlah kotayang mungkin terhadap induk yang lainnya.</span><br />
<br />
<span style="font-size: small;"><b><span style="font-size: large;">Mutasi</span></b><br />•Mutasi Bilanga nReal</span><br />
<span style="font-size: small;">-Operator mutasi untuk bilangan real dapa tditetapkan sebagai:<br />1. Variabel yang dimutasi= variabel±range * delta;<br />2. Range = 0,5 * domain variabel<br />3. Delta = Σ(ai* 2-i); ai= 1 dengan probabilitas1/m, selain ituai= 0, denganm = 20</span><br />
<span style="font-size: small;">•Mutasi Biner</span><br />
<span style="font-size: small;">-Langkah-langkah mutasi:<br />1.Hitung jumlah gen pada populasi<br />2.Pilih secara acak gen yang akan dimutasi<br />3.Tentukan kromosom dari gen yang terpilih untuk dimutasi<br />4.Ganti nilai gen (0 ke1 atau1 ke0) dari kromosom yang akan dimutasi tersebut</span><br />
<span style="font-size: small;">Algoritma Genetika Sederhana<br />•Langkah-langkah:<br />1.Generasi= 0<br />2.Inisialisasi populasi awal, P (generasi), secara acak<br />3.Evaluas inilai fitness pada setiap individu dalamP (generasi)<br />4.Kerjakan langkah-langkah berikut hingga generasi mencapai maksimum generasi:</span><br />
<span style="font-size: small;"><br />a. generasi= generasi+1<br />b. Seleksi populasi tersebut untuk mendapatkan kandidat induk, P’(generasi)<br />c. Lakukan crossover pada P’(generasi)<br />d. Lakukan mutasi padaP’(generasi)<br />e. Lakukan evaluasi fitness setiap individu pada P’(generasi<br />f. Bentuk populasi baru: P(generasi) = {P(generasi-1) yang survive, P’(generasi)</span><br />
<span style="font-size: small;">•Metode seleksi rodaroulette<br />Algoritma seleksi rodaroulette:<br />1. Hitung total fitness (F)<br />2. Hitung fitness relatif tiap individu<br />3. Hitung fitness komulatif<br />4. Pilih induk yang akan menjadi kandidat untuk dicrossover<br />•Crossover<br />Metode yang sering digunakan adalah penyilangan satutitik<br />•Mutasi<br />Mutasiyang digunakan adalah mengubah secara acak nilai suatu bit pada posisi tertentu.</span><br />
<span style="font-size: small;"><br /></span>
<span style="font-size: small;"> </span><br />
<br />ayiehttp://www.blogger.com/profile/09974091994166296589noreply@blogger.com0tag:blogger.com,1999:blog-7742384150293604462.post-566909105030093312012-07-12T20:48:00.000-07:002012-07-12T20:48:07.185-07:00Tugas TimNama : Sri Mulyani<br />
NPM : 1057201000847<br />
download link <a href="http://www.ziddu.com/download/19905078/TugasTim.rar.html" target="_blank">Disini</a>ayiehttp://www.blogger.com/profile/09974091994166296589noreply@blogger.com0tag:blogger.com,1999:blog-7742384150293604462.post-42644688713676238962012-06-11T04:44:00.000-07:002012-06-11T16:13:40.936-07:00Apa itu Interface...?<span style="font-style: italic; font-weight: bold;">Interface</span> adalah jenis khusus dari blok yang hanya berisi method signature(atau constant<br />
). Interface mendefinisikan sebuah(signature) dari sebuah kumpulan method tanpa tubuh.<br />
<br />
<span style="font-style: italic; font-weight: bold;">Interface </span>mendefinisikan sebuah cara standar dan umum dalam menetapkan sifat-sifat dari<br />
class-class.
Mereka menyediakan class-class, tanpa memperhatikan lokasinya dalam
hirarki class, untuk mengimplementasikan sifat-sifat yang umum.<br />
<br />
Dengan
catatan bahwa interface-interface juga menunjukkan polimorfisme,
dikarenakan program dapat memanggil method interface dan versi yang
tepat dari method yang akan dieksekusi tergantung dari tipe object yang
melewati pemanggil method interface.<br />
<i><b><br /></b></i><br />
<i><b>Kenapa Kita Memakai Interface..</b></i>?<br />
<br />
Kita
akan menggunakan interface jika kita ingin class yang tidak berhubungan
mengimplementasikan method yang sama. Melalui interface-interface, kita
dapat menangkap kemiripan diantara class yang tidak berhubungan tanpa
membuatnya seolah - olah class yang berhubungan.<br />
<br />ayiehttp://www.blogger.com/profile/09974091994166296589noreply@blogger.com0tag:blogger.com,1999:blog-7742384150293604462.post-59280480574971440552012-05-12T02:56:00.000-07:002012-05-12T03:24:32.328-07:00Apa itu Pemrograman Berorientasi Objek ?<b>Pemrograman berorientasi objek</b> (<a href="http://id.wikipedia.org/wiki/Bahasa_Inggris" title="Bahasa Inggris">Inggris</a>: <i><b>object-oriented programming</b></i> disingkat <b>OOP</b>) merupakan <a href="http://id.wikipedia.org/wiki/Paradigma_pemrograman" title="Paradigma pemrograman">paradigma pemrograman</a> yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam <i>kelas-kelas</i> atau <i>objek-objek</i>. Bandingkan dengan logika <a href="http://id.wikipedia.org/wiki/Pemrograman_terstruktur" title="Pemrograman terstruktur">pemrograman terstruktur</a>. Setiap objek dapat menerima <a href="http://id.wikipedia.org/wiki/Pesan" title="Pesan">pesan</a>, memproses data, dan mengirim pesan ke objek lainnya,<br />
Model data berorientasi objek dikatakan dapat memberi fleksibilitas
yang lebih, kemudahan mengubah program, dan digunakan luas dalam <a class="new" href="http://id.wikipedia.org/w/index.php?title=Teknik_piranti_lunak&action=edit&redlink=1" title="Teknik piranti lunak (halaman belum tersedia)">teknik piranti lunak</a>
skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih
mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan
pendekatan OOP lebih mudah dikembangkan dan dirawat.<br />
== Konsep dasar dari Pemrograman Berorientasi Objek Pemrograman orientasi-objek menekankan konsep berikut:<br />
<br />
<a class="new" href="http://id.wikipedia.org/w/index.php?title=Kelas%28Ilmu_komputer%29&action=edit&redlink=1" title="Kelas(Ilmu komputer) (halaman belum tersedia)">- Kelas</a>
— kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk
suatu tujuan tertentu. Sebagai contoh 'class of dog' adalah suatu unit
yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk
pada berbagai macam perilaku/turunan dari anjing. Sebuah class adalah
dasar dari modularitas dan struktur dalam pemrograman berorientasi
object. <i>Sebuah class secara tipikal sebaiknya dapat dikenali oleh
seorang non-programmer sekalipun terkait dengan domain permasalahan yang
ada,</i> dan kode yang terdapat dalam sebuah class sebaiknya (relatif)
bersifat mandiri dan independen (sebagaimana kode tersebut digunakan
jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah
program akan terkait dengan aspek-aspek dalam masalah yang akan
diselesaikan melalui program tersebut. Cara seperti ini akan
menyederhanakan pemetaan dari masalah ke sebuah program ataupun
sebaliknya.<br />
<br />
<a class="new" href="http://id.wikipedia.org/w/index.php?title=Objek_%28ilmu_komputer%29&action=edit&redlink=1" title="Objek (ilmu komputer) (halaman belum tersedia)">- Objek</a> - membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah <a href="http://id.wikipedia.org/wiki/Program_komputer" title="Program komputer">program komputer</a>; <a class="new" href="http://id.wikipedia.org/w/index.php?title=Objek_%28pemrograman_berorientas_objek%29&action=edit&redlink=1" title="Objek (pemrograman berorientas objek) (halaman belum tersedia)">objek</a> merupakan dasar dari <a class="new" href="http://id.wikipedia.org/w/index.php?title=Modularitas_%28pemrograman%29&action=edit&redlink=1" title="Modularitas (pemrograman) (halaman belum tersedia)">modularitas</a> dan <a href="http://id.wikipedia.org/wiki/Struktur" title="Struktur">struktur</a> dalam sebuah program komputer berorientasi objek.<br />
<br />
<a class="new" href="http://id.wikipedia.org/w/index.php?title=Abstraksi_%28ilmu_komputer%29&action=edit&redlink=1" title="Abstraksi (ilmu komputer) (halaman belum tersedia)">- Abstraksi</a>
- Kemampuan sebuah program untuk melewati aspek informasi yang diproses
olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam
sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan
kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek
lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini
diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan
beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.<br />
<br />
<a class="new" href="http://id.wikipedia.org/w/index.php?title=Penyembunyian_informasi&action=edit&redlink=1" title="Penyembunyian informasi (halaman belum tersedia)">-Enkapsulasi</a>
- Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam
dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek
tersebut yang diberi izin untuk mengakses keadaannya. Setiap objek
mengakses <a class="new" href="http://id.wikipedia.org/w/index.php?title=Interface_%28ilmu_komputer%29&action=edit&redlink=1" title="Interface (ilmu komputer) (halaman belum tersedia)">interface</a>
yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya.
Objek lainnya tidak akan mengetahui dan tergantung kepada representasi
dalam objek tersebut.<br />
<br />
<a class="new" href="http://id.wikipedia.org/w/index.php?title=Polimorfisme_%28ilmu_komputer%29&action=edit&redlink=1" title="Polimorfisme (ilmu komputer) (halaman belum tersedia)">- Polimorfisme</a>
melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin,
bahasa orientasi objek dapat mengirim pesan; metode tertentu yang
berhubungan dengan sebuah pengiriman pesan tergantung kepada objek
tertentu di mana pesa tersebut dikirim. Contohnya, bila sebuah burung
menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang.
Bila seekor singa menerima pesan yang sama, dia akan menggerakkan
kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun
yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme
karena sebuah variabel tungal dalam program dapat memegang berbagai
jenis objek yang berbeda selagi program berjalan, dan teks program yang
sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda
dalam pemanggilan yang sama. Hal ini berlawanan dengan <a class="new" href="http://id.wikipedia.org/w/index.php?title=Bahasa_fungsional&action=edit&redlink=1" title="Bahasa fungsional (halaman belum tersedia)">bahasa fungsional</a> yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.<br />
<br />
- Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah
kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut
(terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan
masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen
yang memiliki manager, sekretaris, petugas administrasi data dan
lainnya. Misal manager tersebut ingin memperoleh data dari bag
administrasi maka manager tersebut tidak harus mengambilnya langsung
tetapi dapat menyuruh petugas bag administrasi untuk mengambilnya. Pada
kasus tersebut seorang manager tidak harus mengetahui bagaimana cara
mengambil data tersebut tetapi manager bisa mendapatkan data tersebut
melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu
masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek
memiliki deskripsi tugasnya sendiri. <br />
<br />
Sumber : Wikipedia<br />
<br />
<br />ayiehttp://www.blogger.com/profile/09974091994166296589noreply@blogger.com0