CLICK HERE FOR BLOGGER TEMPLATES AND MYSPACE LAYOUTS »

Selasa, 21 Oktober 2008

Listing Program Pencarian Dengan Array

#include

#define TdkKetemu -1

int cari(const int arr[], int target, int n)

{

int i, ketemu = 0, hasil; i=0;

while (!ketemu && i <>

if (arr[i] == target) ketemu = 1;

else ++i;

}

if (ketemu) hasil = i;

else hasil = TdkKetemu;

return (hasil);

}

void main() {

int nrp[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, nrpcari, ulangi, hasil;

ulangi=1;

while (ulangi==1) {

ulangi=0;

printf("\nMasukkan NRP yang mau dicari : ");

scanf("%d", &nrpcari);

hasil=cari(nrp, nrpcari, 10);

if (hasil==-1)

printf("Tidak ketemu !");

else

printf("Ditemukan pada elemen array ke-%d", hasil);

printf("\n\nUlangi pencarian ? (Ketik 1 bila ya !) ");

scanf("%d", &ulangi);

}

}

PENGURUTAN DATA

Pengurutan data adalah algoritma yang meletakkan elemen pada sebuah list atau tabel dengan urutan tertentu. Algoritma pengurutan data saat ini telah demikian banyaknya, mulai dari yang sederhana sampai yang kompleks. Untuk saat ini, algoritma heap sort dan quicksort merupakan dua buah algoritma yang dianggap terbaik.

Penggunaan algoritma heap sort dan quick sort dalam pengurutan data berbeda. Perbedaan ini dipengaruhi oleh keunggulan dan kelemahan masing-masing algoritma pengurutan.

Algoritma Heap Sort dan Quick Sort

1. Heap Sort
Heapsort merupakan salah satu bentuk dari selection sort yang memiliki kompleksitas algorima O(n log(n)) yang menggunakan struktur data heap.

Algoritma ini bekerja dengan menentukan elemen terbesar (atau terkecil) dari sebuah daftar elemen, dan diletakkan pada akhir (atau awal) dari daftar tersebut. Heap sort menyelesaikan sebuah pengurutan menggunakan struktur data yang disebut heap.

Heap merupakan sebuah pohon biner hampir lengkap dimana isi dari simpul ayah selalu lebih besar dari isi simpul anak-anaknya sehingga simpul akar selalu merupakan elemen terbesar.

2. Quick Sort
Quick sort adalah algoritma yang menggunakan metode divide and qonquer yaitu dengan mempartisi tabel dengan acuan elemen tabel yang dijadikan sebagai pivot. Tabel dipartisi menjadi tabel dengan elemen pivot, <> pivot, hingga elemen tersebut terurut. pengurutan hanya dengan 1 kali pass saja. Namun sampai saat ini, belum ada algoritma yang mampu untuk mencapai keadaan ini.

Kompleksitas waktu dari kedua algoritma ini, secara rata-rata adalah sama, yaitu O(n log n). Saat ini, kompleksitas waktu O(n log n) merupakan kompleksitas algoritma sorting yang paling mendekati algoritma pengurutan ideal yaitu O(n). Hal inilah yang menyebabkan kedua buah algoritma ini dipandang sebagai yang terbaik saat ini.

Walaupun memiliki kompleksitas algoritma yang sama yaitu O(n log n), dalam praktiknya, algoritma quicksort memiliki kecepatan pemrosesan yang lebih baik dari heap sort. Penyebabnya adalah algoritma heapsort membutuhkan tahapan-tahapan yang lebih banyak daripada quicksort.

Namun untuk quicksort, pada kasus terburuknya memiliki kompleksitas O(n2). Sedangkan, pada heap sort, kompleksitas untuk kasus terburuknya sama dengan kasus rata-rata, yaitu O(n log n). Jadi pada kasus terburuk, algoritma heap sort lebih baik daripada algoritma quicksort.

Klasifikasi AlgoritmaPengurutan (sorting)

* Exchange Sort : Melakukan pembandingan antar data, dan melakukan pertukaran apabila urutan yang didapat belum sesuai. Contohnya : Bubble sort, Cocktail sort, Comb sort, Gnomesort, Quicksort.

* Selection Sort : Mencari elemen yang tepat untuk diletakkan diposisi yang telah diketahui, dan meletakkannyadi posisi tersebut setelah data tersebutditemukan. Contohnya :Selection sort, Heapsort, Smoothsort, Strand sort

* Insertion Sort : Mencari tempat yang tepat untuk suatu elemen data yang telah diketahui ke dalam sub kumpulan data yang telah terurut, kemudian melakukan penyisipan (insertion) data di tempat yang tepat tersebut. Contohnya adalah : Insertion sor, Shell sort, Tree sort, Library sort, Patience sorting.

* Merge Sort : Data dibagi menjadi subkumpulan-subkumpulan yang kemudian subkumpulan tersebut diurutkan secara terpisah, dan kemudian digabungkan kembali dengan metode merging. Algoritma ini melakukan metode pengurutan merge sort juga untuk mengurutkan sub kumpulan data tersebut, atau dengan kata lain, pengurutan dilakukan secara rekursif. Contohnya adalah : Merge sort.

* Non-Comparison Sort : Proses pengurutan data yang dilakukan algoritma ini tidak terdapat pembandingan antar data, data diurutkan sesuai dengan pigeon hole principle. Contohnya adalah : Radix sort, Bucket sort, Counting sort, Pigeonhole sort, Tally sort.

Ide Dasar
Ide dasar dari metode Radix sort ini adalah mengkategorikan data-data menjadi sub kumpulan sub kumpulan data sesuai dengan nilai radix-nya, mengkonkatenasinya, kemudian mengkategorikannya kembali berdasar nilai radix lainnya.

Algoritma Bubble Sort

1. Setiap pasangan data: x[j] dengan x[j-1], untuk semua i=1,...,n-1 harus memenuhi keterurutan, yaitu x[j] > x[j-1].
2. Apabila tidak memenuhi maka posisi kedua data harus ditukar.
3. Untuk pemrograman konvensional maka pemeriksaan-pemeriksaan pasangan tersebutharus dilakukan satu demi satu, misalnya oleh bubble-sort dilakukan dari kanan ke kiri serta di dalam sejumlah iterasi.
4. Keuntungan lain dari algoritma ini adalah dapat dijalankan dengan cukup cepat dan efisien untuk mengurutkan list yang urutannya sudah hampir benar.
5. Selain kasus terbaik tersebut, komleksitas untuk algoritma ini adalah O(n²), karenanya algoritma ini termasuk sangat tidak efisien untuk dilakukan, apalagi jika pengurutan dilakukan terhadap elemen yang banyak jumlahnya. Biasanya bubble sort digunakan untuk mengenalkan konsep dari sorting algoritma pada pendidikan komputer karena idenya yang cukup sederhana.

* Metode Selection Short
Metode selection sort merupakan perbaikan dari metode bubble sort dengan mengurangi jumlah perbandingan. Selection sort merupakan metode pengurutan yang mencari nilai data terbesar atau terkecil dan kemudian menempatkannya pada posisi yang sebenarnya, dimulai dari data diposisi 0 hingga data diposisi N-1.
* Metode Insertion Short
Metode insertion sort adalah metode pengurutan yang biasa dipakai oleh pemain kartu dalam mengurutkan kartunya, yaitu menyisipkan kartu dengan nilai yang lebih kecil ke posisi sebelum kartu pembandingnya. Selection Sort merupakan kombinasi antara sorting dan searching. Untuk setiap proses, akan dicari elemen-elemen yang belum diurutkan yang memiliki nilai terkecil atau terbesar
kan dipertukarkan ke posisi yang tepat di dalam array. Misalnya untuk putaran pertama, akan dicari data dengan nilai terkecil dan data ini akan ditempatkan di indeks terkecil (data[0]), pada putaran kedua akan dicari data kedua terkecil, dan akan ditempatkan di indeks kedua (data[1]). Selama proses, pembandingan dan pengubahan hanya dilakukan pada indeks pembanding saja, pertukaran data secara fisik terjadi pada akhir proses.Tehnik pengurutan dgn cara pemilihan elemen atau proses kerja dgnmemilih elemen data terkecil utk kemudian dibandingkan & ditukarkan dgn elemen pd data awal, dst s/d seluruh elemen shg akan menghasilkan pola data yg telah disort.

Kelebihan dan kekurangan Selection Sort:

1. Kompleksitas selection sort relatif lebih kecil
2. Mudah menggabungkannya kembali, tetapi sulit membagi masalah
3. Membutuhkan method tambahan.

* Metode Insertion Sort
Prinsip dasar Insertion adalah secara berulangulang menyisipkan / memasukan setiap elemen. ke dlm posisinya / tempatnya yg benar. Mirip dengan cara orang mengurutkan kartu, selembar demi selembar kartu diambil dan disisipkan (insert) ke tempat yang seharusnya. Pengurutan dimulai dari data ke-2 sampai dengan data terakhir, jika ditemukan data yang lebih kecil, maka akan ditempatkan (diinsert) diposisi yang seharusnya. Pada penyi sipan elemen, maka elemen-elemen lain akan bergeser ke belakang.

* Quick Short : Quick sort banyak digunakan utk proses sorting, karena merupakan proses sorting yang umum digunakan, mudah untuk diimplementasikan, prosesnya sangat cepat.

Aturan Quick Sort:

1. Select, pertama kita pilih elemen yang ditengah sebagai pivot, misalkan X.
2. Partition, kemudian semua elemen tersebut disusun dengan menempatkanX mpada posisi j sedemikian rupa sehingga elemen disebelah kiri1 lebih <> X.
3. Rekursif, kemudian proses diulang untuk bagian kiri dan kanan elemenX dengan cara yg sama dengan langkah 1 sampai kondisi terurut

* Metode Heap Short adalah binary tree dengan menggunakan tree , dimana mempunyai aturan-aturan sebagai berikut :

1. Untuk mengisikan heap dimulai dari level 1 sampai ke level dibawahnya, bila dalam level yang sama semua kunci heap belum terisi maka tidak boleh mengisi dibawahnya.
2. Heap dlm kondisi terurut apabila left child <> parent.
3. Penambahan kunci diletakkan pada posisi terakhir dari level dan disebelah kanan child yg terakhir, kemudian diurutkan dengan cara upheap.
4. Bila menghapus heap dgn mengambil kunci pada parent di level 1 kemudian digantikan posisi kunci terakhir, selanjutnya disort kembali metode downheap.

Rabu, 15 Oktober 2008

ARTIKEL OOP

OBJECT-ORIENTED PROGRAMMING (OOP)

Pemrograman berorientasi objek (OOP) merupakan metode yang paling populer dalam dunia rekayasa perangkat lunak saat ini. OOP membuat proses pengembangan perangkat lunak dapat dilakukan secara modular yang berarti sistem dapat dikembangkan tahap demi tahap tanpa mengubah (banyak) fondasi perangkat lunak yang sudah ada.

Object-Oriented Programming adalah sebuah pendekatan untuk pengembangan / development suatu software dimana dalam struktur software tersebut didasarkan kepada interaksi object dalam penyelesaian suatu proses/tugas. Interaksi tersebut mengambil form dari pesan-pesan dan mengirimkannya kembali antar object tersebut. Object akan merespon pesan tersebut menjadi sebuah tindakan /action atau metode. Jika kita mencoba melihat bagaimana tugas disekitar kita diselesaikan, kita akan mengetahui bahwa kita berinteraksi dalam sebuah object-oriented world. Jika akan bepergian kita pasti berinteraksi dengan object mobil. Sebagai sebuah object, mobil berisi object-object lain yang berinteraksi untuk melakukan tugasnya membawa kita.

Pemrograman Berbasis Obyek :

1. Fungsi dan data menjadi satu kesatuan yang disebut obyek
2. Obyek-obyek dalam OOP bersifat aktif
3.Cara pandang : program bukan urut-urutan instruksi tapi diselesaikan oleh obyek-obyek yang bekerjasama untuk menyelesaikan masalah

Karakteristik OOP

Suatu program disebut dengan pemrograman berbasis obyek (OOP) karena terdapat :

1.Encapsulation (pembungkusan)
2.Inheritance (pewarisan)
3.Polymorphism (polimorfisme – perbedaan bentuk)

Inheritance

Banyak objects diklasifikasikan menurut hirarki. Contoh, kamu dapat mengklasifikasikan sebuah mobil yang mempunyai karakteristik umumnya mobil, seperti mempunyai ban, mesin, serta body. Keturunan berikutnya diklasifikasikan dengan atribut umum seperti ukuran, jumlah roda, isi silinder dll atau mengklasifikasikan mereka atas dasar daya angkutnya. Contoh, ada kendaraan komersial atau kendaraan pribadi, ada truk atau mobil penumpang. Kamu menggunakan inheritance dalam OOP untuk mengklasifikasikan objects dalam program sesuai karakteristik umum dan fungsinya.

1.Sebuah class bisa mewariskan atribut dan method-nya ke class yang lain
2.Class yang mewarisi disebut superclass
3.Class yang diberi warisan disebut subclass
4.Sebuah subclass bisa mewariskan atau berlaku sebagai superclass bagi class yang lain => disebut multilevel inheritance.

Contoh Pewarisan

1.Class Nenek adalah superclass dari class Ibu
2.Class Ibu adalah superclass dari class Anak
3.Sebuah subclass memiliki beberapa kesamaan dengan superclass-nya, dalam hal atribut/variabel dan method yang dimilikinya
4.Contoh pewarisan yang lain : class kendaraan merupakan superclass bagi class mobil, truk dan bis

Keuntungan Penggunaan Pewarisan

1.Subclass memiliki atribut dan method yang spesifik yang membedakannya dengan superclass, meskipun keduanya mirip (dalam hal kesamaan atribut dan method)
2.Dengan demikian pada pembuatan subclass, programmer bisa menggunakan ulang source code dari superclass yang ada => ini yang disebut dengan istilah reuse.
3.Class-class yang didefinisikan dengan atribut dan method yang bersifat umum yang berlaku baik pada superclass maupun subclass disebut dengan abstract class


Polymorphism

Polymorphisms adalah kemampuan 2 buah object yang berbeda untuk merespon pesan permintaan yang sama dalam suatu cara yang unik. Contoh, saya melatih anjing saya dengan perintah untuk menggonggong dan juga saya melatih burung untuk merespon perintah saya untuk berkicau. Saya lakukan latihan untuk merespon kepada mereka dengan perintah lisan. Melalui polymorphism saya tahu bahwa anjing dan burung akan merespon dengan gonggongan atau kicauan.

Encapsulation

Ciri penting lainnya dari OOP adalah encapsulation. Encapsulation adalah sebuah proses dimana tidak ada akses langsung ke data yang diberikan, bahkan hidden. Jika kamu ingin mendapat data, kamu harus berinteraksi dengan object yang bertanggung jawab atas dara tersebut. Dalam contoh inventory, jika kita ingin melihat atau mengupdate informasi atas produk, kita seharusnya bekerja melalui object produk. Untuk membaca data, kita mengirimkan pesan ke object produk, kemudian object produk akan membaca pesan dan mengirim pesan balik ke kamu.

1.Variabel dan method dalam suatu obyek dibungkus agar terlindungi
2.Untuk mengakses, variabel dan method yang sudah dibungkus tadi perlu interface
3.Setelah variabel dan method dibungkus, hak akses terhadapnya bisa ditentukan.
4.Konsep pembungkusan ini pada dasarnya merupakan perluasan dari tipe data struktur

Dua hal dalam enkapsulasi :

1.Information hiding
2.Menyediakan perantara (method) untuk mengakses data

*

Contoh :

public class Siswa {

private int nrp;

public void setNRP(int n) {

nrp=n;

}

}

PEMROGRAMAN PROSEDURAL

Algoritma berisi urutan langkah-langkah penyelesaian masalah. Ini berarti Algoritma adalah proses yang procedural.

Definisi Prosedural menurut Kamus Besar Bahasa Indonesia :
1. Tahap-tahap kegiatan untuk menyelesaikan suatu aktivitas.
2. Metode langkah demi langkah secara eksak dalam memecahkan suatu masalah.

Pada pemrograman procedural, program dibedakan antara bagian data dengan bagian instruksi. Bagian instruksi terdiri atas runtutan (sequence) instruksi yang dilaksanakan satu per satu secara berurutan oleh pemroses. Alur pelaksanaan instruksi dapat berubah karena adanya pencabangan kondisional. Data yang disimpan di dalam memori dimanipulasi oleh instrusi secara beruntun atau procedural. Paradigma pemrograman seperti ini dinamakan pemrograman procedural.
Bahasa-bahasa tingkat tinggi seperti Cobol, Basic, Pascal, Fortran dan C mendukung kegiatan pemrograman procedural, karena itu mereka dinamakan juga bahasa procedural. Selain paradigma pemrograman procedural, ada lagi paradigma yang lain yaitu pemrograman berorientasi objek (Object Oriented Programming). Paradigma pemrograman ini merupakan trend baru dan sangat populer akhir-akhir ini.
Paradigma pemrograman yang lain adalah pemrograman fungsional, pemrogramn deklaratif dan pemrograman konkuren. Pada kesempatan ini penulis hanya menyajikan paradigma pemrograman procedural saja.

Pemrograman Prosedural :
a. Diselesaikan dalam bentuk prosedur atau fungsi
b. Program merupakan urut-urutan instruksi
c. Program dipecah-pecah ke dalam sub program yang lebih sederhana
d. Fokus utama pada prosedur dan fungsi
e. Fungsi dan prosedur digunakan untuk memanipulasi data
f. Sedangkan data sendiri bersifat pasif

Hal-hal yang menjadi dasar dalam pemrograman prosedural, meliputi definisi algoritma dan konstruktor pemrograman prosedural, serta konsep Input, Proses, dan Output yang sangat lazim dalam dunia pemrograman prosedural.

1. Algoritma
Algoritma adalah serangkaian langkah-langkah yang tepat, terperinci, dan terbatas untuk menyelesaikan suatu masalah. Langkah yang tepat artinya serangkaian langkah tersebut selalu benar untuk menyelesaikan masalah yang diberikan. Langkah yang tidak memberikan hasil yang benar untuk domain masalah yang diberikan bukanlah sebuah algoritma.
Langkah yang terperinci artinya setiap langkah diberikan secara detail dan dapat dieksekusi oleh komputer, instruksi seperti “angkat sedikit ke kiri” merupakan contoh instruksi yang tidak tepat, karena “sedikit” tidak menyatakan sesuatu dengan tepat.

2. Konstruktor (elemen) Pemrograman Prosedural
Elemen bahasa pemrograman procedural adalah:
a. Program utama
b. Tipe
c. Konstanta
d. Variabel
e. Ekspresi, operator, dan operand
f. Struktur Data
g. Instruksi dasar
h. Program Moduler
i. File eksternal
j. Rekurens

3. Input, Proses, dan Output
Bagian input, proses, dan output dikerjakan secara sekuensial, dan dalam setiap bagian mungkin akan ada input, proses, dan output.

Struktur Bahasa Program Procedural
Secara umum, bahasa pemrograman yang berbasiskan prosedur terdiri dari blok/sub program. Yang memiliki dua bagian utama yaitu:
1. Bagian deklarasi
2. Bagian Statement

1.Bagian Deklarasi
Bagian deklarasi merupakan bagian program untuk mendefinisikan tipe data suatu variable, konstanta, serta fungsi dan prosedur yang akan digunakan pada program. Selain itu, bagian deklarasi dapat juga digunakan untuk memberi nilai awal suatu variable. Dengan kata lain, deklarasi digunakan untuk memperkenalkan suatu nama kepada Compiler program.

2. Bagian Statement
Bagian statement merupakan bagian program yang berisi perintah yang akan dieksekusi/dijalankan. Pada bahasa Pascal, bagian statement selalu diawali dengan reserved word begin dan end. Apabila blok statement adalah blok utama program, maka reserved word end harus diakhiri dengan tanda titik(.), sebaliknya jika blok statement bukan blok utama program maka reserved word end diakhiri dengan tanda titik koma (;). Sebaliknya pada bahasa C, dimulai dari deklarasi variable hingga akhir statement diawali dan diakhiri dengan tanda kurung kurawal { dan }. Berikut adalah contoh potongan kode untuk implementasi menghitung luas lingkaran dengan Bahasa Pascal (kiri) dan Bahasa C (kanan).

Bahasa Pascal:
procedure Cetak (kal: String);
function Tambah (a,b:Integer): Integer;
Bahasa C:
void Cetak (char *String);
int Tambah (int a, int b);
uses crt;
const phi = 3.14;
var diameter, radius,
Luas : real;
begin
readln(diameter);
radius := diameter / 2;
Luas := phi * radius * radius;
writeln(Luas);
end.
#include
void main()
{ const phi = 3.14;
float diameter, radius, Luas;
scanf(“%f”, &diameter);
radius = diameter / 2.0;
Luas = phi * radius * radius;
printf(“%f”,Luas);
}

Selasa, 07 Oktober 2008

Pemrograman Berorientasi Obyek

Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.

Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak 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.

Konsep dasar dari Pemrograman Berorientasi Objek

Pemrograman orientasi-objek menekankan konsep berikut:

* kelas — 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. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, 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.

* Objek - membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.

* Abstraksi - 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.

* Enkapsulasi - Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi ijin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.

* Polimorfisme 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 bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.

* Inheritas - Mengatur polimorfisme dan enkapsulasi dengan mengijinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada - objek-objek ini dapat membagi (dan memperluas) perilaku mereka tanpa haru mengimplementasi ulang perilaku tersebut (bahasa berbasis-objek tidak selalu memiliki inheritas.)

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.



Selasa, 23 September 2008

Artikel dan Tabel Karakter ASCII


KARAKTER ASCII
Kode Standar Amerika untuk Pertukaran Informasi atau ASCII (American Standard Code for Information Interchange) merupakan suatu standar internasional dalam kode huruf dan simbol seperti Hex dan Unicode tetapi ASCII lebih bersifat universal, contohnya 124 adalah untuk karakter "|". Ia selalu digunakan oleh komputer dan alat komunikasi lain untuk menunjukkan teks. Kode ASCII sebenarnya memiliki komposisi bilangan biner sebanyak 8 bit. Dimulai dari 00000000 hingga 11111111. Total kombinasi yang dihasilkan sebanyak 256, dimulai dari kode 0 hingga 255 dalam sistem bilangan Desimal.

TABEL KARAKTER ASCII

Karakter

Nilai Unicode
(heksadesimal)

Nilai ANSI ASCII
(desimal)

Keterangan

NUL

0000

0

Null (tidak tampak)

SOH

0001

1

Start of heading (tidak tampak)

STX

0002

2

Start of text (tidak tampak)

ETX

0003

3

End of text (tidak tampak)

EOT

0004

4

End of transmission (tidak tampak)

ENQ

0005

5

Enquiry (tidak tampak)

ACK

0006

6

Acknowledge (tidak tampak)

BEL

0007

7

Bell (tidak tampak)

BS

0008

8

Menghapus satu karakter di belakang kursor (Backspace)

HT

0009

9

Horizontal tabulation

LF

000A

10

Pergantian baris (Line feed)

VT

000B

11

Tabulasi vertikal

FF

000C

12

Pergantian baris (Form feed)

CR

000D

13

Pergantian baris (carriage return)

SO

000E

14

Shift out (tidak tampak)

SI

000F

15

Shift in (tidak tampak)

DLE

0010

16

Data link escape (tidak tampak)

DC1

0011

17

Device control 1 (tidak tampak)

DC2

0012

18

Device control 2 (tidak tampak)

DC3

0013

19

Device control 3 (tidak tampak)

DC4

0014

20

Device control 4 (tidak tampak)

NAK

0015

21

Negative acknowledge (tidak tampak)

SYN

0016

22

Synchronous idle (tidak tampak)

ETB

0017

23

End of transmission block (tidak tampak)

CAN

0018

24

Cancel (tidak tampak)

EM

0019

25

End of medium (tidak tampak)

SUB

001A

26

Substitute (tidak tampak)

ESC

001B

27

Escape (tidak tampak)

FS

001C

28

File separator

GS

001D

29

Group separator

RS

001E

30

Record separator

US

001F

31

Unit separator

SP

0020

32

Spasi

!

0021

33

Tanda seru (exclamation)

"

0022

34

Tanda kutip dua

#

0023

35

Tanda pagar (kres)

$

0024

36

Tanda mata uang dolar

%

0025

37

Tanda persen

&

0026

38

Karakter ampersand (&)

0027

39

Karakter Apostrof

(

0028

40

Tanda kurung buka

)

0029

41

Tanda kurung tutup

*

002A

42

Karakter asterisk (bintang)

+

002B

43

Tanda tambah (plus)

,

002C

44

Karakter koma

-

002D

45

Karakter hyphen (strip)

.

002E

46

Tanda titik

/

002F

47

Garis miring (slash)

0

0030

48

Angka nol

1

0031

49

Angka satu

2

0032

50

Angka dua

3

0033

51

Angka tiga

4

0034

52

Angka empat

5

0035

53

Angka lima

6

0036

54

Angka enam

7

0037

55

Angka tujuh

8

0038

56

Angka delapan

9

0039

57

Angka sembilan

:

003A

58

Tanda titik dua

;

003B

59

Tanda titik koma

<

003C

60

Tanda lebih kecil

=

003D

61

Tanda sama dengan

>

003E

62

Tanda lebih besar

?

003F

63

Tanda tanya

@

0040

64

A keong (@)

A

0041

65

Huruf latin A kapital

B

0042

66

Huruf latin B kapital

C

0043

67

Huruf latin C kapital

D

0044

68

Huruf latin D kapital

E

0045

69

Huruf latin E kapital

F

0046

70

Huruf latin F kapital

G

0047

71

Huruf latin G kapital

H

0048

72

Huruf latin H kapital

I

0049

73

Huruf latin I kapital

J

004A

74

Huruf latin J kapital

K

004B

75

Huruf latin K kapital

L

004C

76

Huruf latin L kapital

M

004D

77

Huruf latin M kapital

N

004E

78

Huruf latin N kapital

O

004F

79

Huruf latin O kapital

P

0050

80

Huruf latin P kapital

Q

0051

81

Huruf latin Q kapital

R

0052

82

Huruf latin R kapital

S

0053

83

Huruf latin S kapital

T

0054

84

Huruf latin T kapital

U

0055

85

Huruf latin U kapital

V

0056

86

Huruf latin V kapital

W

0057

87

Huruf latin W kapital

X

0058

88

Huruf latin X kapital

Y

0059

89

Huruf latin Y kapital

Z

005A

90

Huruf latin Z kapital

[

005B

91

Kurung siku kiri

\

005C

92

Garis miring terbalik (backslash)

]

005D

93

Kurung sikur kanan

^

005E

94

Tanda pangkat

_

005F

95

Garis bawah (underscore)

`

0060

96

Tanda petik satu

a

0061

97

Huruf latin a kecil

b

0062

98

Huruf latin b kecil

c

0063

99

Huruf latin c kecil

d

0064

100

Huruf latin d kecil

e

0065

101

Huruf latin e kecil

f

0066

102

Huruf latin f kecil f

g

0067

103

Huruf latin g kecil

h

0068

104

Huruf latin h kecil

i

0069

105

Huruf latin i kecil

j

006A

106

Huruf latin j kecil

k

006B

107

Huruf latin k kecil

l

006C

108

Huruf latin l kecil

m

006D

109

Huruf latin m kecil

n

006E

110

Huruf latin n kecil

o

006F

111

Huruf latin o kecil

p

0070

112

Huruf latin p kecil

q

0071

113

Huruf latin q kecil

r

0072

114

Huruf latin r kecil

s

0073

115

Huruf latin s kecil

t

0074

116

Huruf latin t kecil

u

0075

117

Huruf latin u kecil

v

0076

118

Huruf latin v kecil

w

0077

119

Huruf latin w kecil

x

0078

120

Huruf latin x kecil

y

0079

121

Huruf latin y kecil

z

007A

122

Huruf latin z kecil

{

007B

123

Kurung kurawal buka

¦

007C

124

Garis vertikal (pipa)

}

007D

125

Kurung kurawal tutup

~

007E

126

Karakter gelombang (tilde)

DEL

007F

127

Delete


0080

128

Dicadangkan


0081

129

Dicadangkan


0082

130

Dicadangkan


0083

131

Dicadangkan

IND

0084

132

Index

NEL

0085

133

Next line

SSA

0086

134

Start of selected area

ESA

0087

135

End of selected area


0088

136

Character tabulation set


0089

137

Character tabulation with justification


008A

138

Line tabulation set

PLD

008B

139

Partial line down

PLU

008C

140

Partial line up


008D

141

Reverse line feed

SS2

008E

142

Single shift two

SS3

008F

143

Single shift three

DCS

0090

144

Device control string

PU1

0091

145

Private use one

PU2

0092

146

Private use two

STS

0093

147

Set transmit state

CCH

0094

148

Cancel character

MW

0095

149

Message waiting


0096

150

Start of guarded area


0097

151

End of guarded area


0098

152

Start of string


0099

153

Dicadangkan


009A

154

Single character introducer

CSI

009B

155

Control sequence introducer

ST

009C

156

String terminator

OSC

009D

157

Operating system command

PM

009E

158

Privacy message

APC

009F

158

Application program command


00A0

160

Spasi yang bukan pemisah kata

¡

00A1

161

Tanda seru terbalik

¢

00A2

162

Tanda sen (Cent)

£

00A3

163

Tanda Poundsterling

¤

00A4

164

Tanda mata uang (Currency)

¥

00A5

165

Tanda Yen

¦

00A6

166

Garis tegak putus-putus (broken bar)

§

00A7

167

Section sign

¨

00A8

168

Diaeresis

©

00A9

169

Tanda hak cipta (Copyright)

ª

00AA

170

Feminine ordinal indicator

«

00AB

171

Left-pointing double angle quotation mark

¬

00AC

172

Not sign

­


00AD

173

Tanda strip (hyphen)

®

00AE

174

Tanda merk terdaftar

¯

00AF

175

Macron

°

00B0

176

Tanda derajat

±

00B1

177

Tanda kurang lebih (plus-minus)

²

00B2

178

Tanda kuadrat (pangkat dua)

³

00B3

179

Tanda kubik (pangkat tiga)

´

00B4

180

Acute accent

µ

00B5

181

Micro sign

00B6

182

Pilcrow sign

·

00B7

183

Middle dot