Jumat, 31 Oktober 2008

Metode Pengurutan Data Dan program Array

Metode Pengurutan

Bubble Sort

Pengurutan gelembung adalah algoritma pengurutan yang paling tua dan sederhana untuk diimplementasikan. Algoritma ini juga cukup mudah untuk dimengerti.


Perhatikan bahwa jumlah pertukaran dan perbandingan data tidaklah tetap, perbedaan tergantung pada keadaan awal
data setelah diacak. Tabel berikut memperlihatkan tabulasi hasil visualisasi menggunakan metode bubble
sort. Pengacakan Jumlah Total
Pertukaran Data Perbandingan
Data 1 155279 2 127 272 3 137 245 4 142 297 5 151 294 6 138 285 7 178 300 8 165 272 9 156 285 10 175 300 Rata-rata 152 Jumlah rata-rata pertukaran untuk 10 kali pengacakan adalah 152 kali, sedangkan rata-rata jumlah perbandingan adalah
sebanyak 283 kali. Tetapi bila data pada awalnya terurut, maka untuk 25 jumlah data, jumlah pertukaran data sebanyak
0 kali dengan jumlah perbandingan sebanyak 24 kali.


Shell sort
Shell sort adalah algoritma dengan kompleksitas algoritma O(n2) dan yang paling efisien dibanding algoritma-algoritma lain dengan kompleksitas algoritma yang sama. Algoritma shell sort lima kali lebih cepat dibandingkan algoritma pengurutan gelembung dan dua kali lebih cepat dibandingkan algoritma pengurutan dengan penyisipan. Dan tentu saja shell sort juga merupakan algoritma yg paling yang paling kompleks dan sulit dipahami.
Algoritma shell sort melakukan pass atau traversal berkali-kali, dan setiap kali pass mengurutkan sejumlah nilai yang sama dengan ukuran set menggunakan insertion sort. Ukuran dari set yang harus diurutkan semakin membesar setiap kali melakukan pass pada tabel, sampai set tersebut mencakup seluruh elemen tabel. Ketika ukuran dari set semakin membesar, sejumlah nilai yang harus diurutkan semakin mengecil. Ini menyebabkan insertion sort yang dijalankan mengalami kasus terbaik dengan kompleksitas algoritma mendekati O(n). Ukuran dari set yang digunakan untuk setiap kali iterasi (iteration) mempunyai efek besar terhadap efisiensi pengurutan.
Tetapi, walaupun tidak se-efisien algoritma merge sort, heap sort, atau quick sort , algoritma shell sort adalah algoritma yang relatif sederhana. Hal ini menjadikan algoritma shell sort adalah pilihan yang baik dan efisien untuk mengurutkan nilai dalam suatu tabel berukuran sedang (mengandung 500-5000 elemen).


quick sort
Algoritma quick sort sangat sederhana dalam teori, tetapi sangat sulit untuk diterjemahkan ke dalam sebuah code karena pengurutan dilakukan dalam sebuah list dan diproses secara rekursif. Algoritma ini terdisi dari empat langkah (yang mana menyerupai merge sort) yaitu :
  • Memilih sebuah elemen untuk dijadikan poros atau pivot point (biasanya elemen paling kiri dari tabel).
  • Membagi tabel menjadi dua bagian, satu dengan elemen yang lebih besar dari poros, dan satu lagi untuk elemen yang lebih kecil dari poros.
  • Mengulang algoritma untuk kedua buah tabel secara rekursif.
Tingkat keefektifan dari algoritma ini dangat bergantung pada elemen yang dipilih menjadi poros. Kasus terburuk terjadi ketika tabel sudah terurut dan elemen terkecil di sebelah kiri menjadi poros. Kasus ini mempunyai kompleksitas algoritma O(n2). Maka dari itu sangat disarankan untuk memilih poros bukan dari elemen paling kiri dari tabel, tetapi dipilih secara random. Selama poros dipilih secara random, algoritma quick sort mempunyai kompleksitas algoritma sebesar O(n log n).


program array

Contoh Program :
Program Contoh_Array_Input;
Uses Crt;
Var
Bilangan : array[1..50] of Integer;
Begin
ClrScr;
Bilangan[1]:=3;
Bilangan[2]:=29;
Bilangan[3]:=30;
Bilangan[4]:=31;
Bilangan[5]:=23;
Writeln('nilai varibel bilangan ke 3 =',Bilangan[3]);
Readln;
End.

Array juga dapat dideklarasikan bersama dengan tipe yang beragam seperti contoh dibawah ini :
Program Contoh_Deklarasi_Array_Beragam;
Uses Crt;
Var
NPM : array[1..20] of string[10];
Nama : array[1..20] of string[25];
Nilai : array[1..20] of real;
Umur : array[1..20] of byte;
banyak,i : integer;
Begin
ClrScr;
Write('Isi berapa data array yang diperlukan :');Readln(banyak);
For i := 1 to banyak Do
Begin
Write('NPM =');Readln(NPM[i]);
Write('Nama =');readln(Nama[i]);
Write('Nilai=');readln(Nilai[i]);
Write('Umur =');readln(Umur[i]);
End;
{cetak varibel array}
Writeln('NPM NAMA NILAI UMUR ');
For i:= 1 to banyak Do
Begin
Writeln(Npm[i]:10,Nama[i]:25,Nilai[i]:3:2,' ',Umur[i]:3);
End;
Readln;
End.

Untuk deklarasi array dapat digunakan beberapa cara seperti berikut ini :
Type
Angka = String[20];
Var
Nama : Array [1..50] of Angka;
Begin
.
.
End.

Deklarasi tipe indeks subrange integer Indeks pada array dapat tipe skalar atau subrange, tetapi tidak bisa real.
Contoh:
Var
Nilai : Array[1..10] of Integer;
pada contoh ini array nilai mempunyai 10 buah elemen yaitu dari 1 sampai 10. Array tersebut dapat dideklarasikan dengan type seperti berikut ini :

Type
Skala = 1..10;
Var
Nilai : Array [skala] of Integer;
atau :
Type
Skala = 1..10;
Y = Array[skala] of Integer;
Var
Nilai : Y;
atau :
Type
Y = Array[1..10] of Integer;
Var
Nilai : Y;
atau :
Const
Atas =1;
Bawah = 5;
type
Y = Array[Atas..Bawah] of Integer;
Var
Nilai : Y;

I. Deklarasi Type Indeks Skalar
Indeks dari larik dapat berupa tipe skalar.
Contoh. :
Program Deklarasi_Indeks_Array_Skalar;
Uses Crt;
Var
Jum : Array[(jan,feb,mar,apr,mei)] of Integer;
Begin
Jum[jan]:=25;
Jum[feb]:=45;
Jum[mar]:=21;
Jum[apr]:=23;
Jum[mei]:=50;
Writeln('Jumlah nilai bulan maret =',Jum[mar]);
Readln;
End.
dapat juga ditulis :
type
Bln = (jan,feb,mar,apr,mei);
Var
Jum : Array[bln] of Integer;
atau :
type
Bln =(jan,feb,mar,apr,mei);
Var
Jum : Array[jan..mei] of Integer;

II. Deklarasi Konstanta Array
Array tidak hanya dapat berupa suatu varibel yang dideklarasikan di bagian deklarasi variabel, tetapi dapat juga berupa konstanta (const).
Contoh Program :
Program Contoh_Deklarasi_Array_Konstan;
Uses Crt;
Const
Tetap : Array[1..4] of Integer=(7,10,21,20);
Var
i : Integer;
Begin
For i:= 1 to 4 Do
Writeln('Nilai Konstan array ke ',i:2,' =',Tetap[i]);
Readln;
End.
konstanta array dapat juga berupa ketetapan dalam bentuk karakter seperti berikut.
Contoh Program :
Program Contoh_Konstan_Array_Char_;
Uses Crt;
Const
Huruf : Array[0..5] of Char=('A','B','C','D','E','F');
Var
i : Integer;
Begin
For i:= 0 to 5 Do
Writeln('Nilai konstan array ke',i:2,' = ',Huruf[i]);
Readln;
End.
Konstanta array dapat juga berupa string seperti berikut ini.
Contoh Program :
Program Constanta_Array_String;
Uses Crt;
Type
A = Array [1..5] of String;
Const
Nama : A = ('basic','pascal','cobol','paradox','dbase');
Var
i : Integer;
Begin
For i:= 1 to 5 Do
Writeln('Nilai Array ke-',i:2,'= ',Nama[i]);
readln;
end.

Dalam pascal string merupakan array dari elemen- elemen karakter seperti berikut :
Contoh Program :
Program String_Adalah_Array_Tipe_Char;
Uses Crt;
Var
Nama : string;
i : Integer;
Begin
Nama:='Turbo Pascal';
For i:= 1 to Length(nama) Do
Writeln('Elemen ',i,' dari ',Nama,'= ',Nama[i]);
Readln;
End.

contoh program bilangan prima dengan menggunakan bantuan array.
Contoh program :
Program Mencari_Bilangan_Prima_Dengan_Array;
Uses Crt;
Var
Prima : Array[1..100] of Integer;
i,j : Integer;
bil : Integer;
Begin
ClrScr;
For i := 2 to 100 Do
Begin
Prima[i]:=i;
For j:= 2 to i-1 Do
Begin
bil := (i mod j); {* i dibagi j dicek apakah 0*}
If bil = 0 then Prima[i]:=0; {*jika habis dibagi,berarti bkn prima*}
End;
If Prima[i]<> 0 Then Write(Prima[i],' '); {*cetak array yg prima*}
End;
Readln;
End.

Contoh pengurutan data dengan metode buble sort, yaitu dengan cara penukaran, dapat dilihat pada contoh dibawah ini :
Contoh Program :
Program Penggunaan_Array_Untuk_Sortir_Buble_Sort;
Uses Crt;
Var
nil1 : Array[1..100] of Integer;
n,i,j,dum : Integer;
Begin
ClrScr;
Write('mau isi berapa data acak (integer) ='); readln(n);
For i := 1 to n Do
Begin
Write('Data Ke ',i,':');Readln(nil1[i]);
End;
{* penyapuan proses}
for i:= 1 to n-1 do
begin
for j:= i to n do
begin
if nil1[j]
begin
dum:=nil1[j];
nil1[j]:=nil1[i];
nil1[i]:=dum;
end;
end;
end;
writeln;
writeln('Hasil Sortir');
for i := 1 to n do
write(nil1[i]:3);
readln;
end.


III. Array Dua Dimensi
Di dalam pascal Array dapat berdimensi lebih dari satu yang disebut dengan array dimensi banyak (Multidimensional array), disini akan dibahas array 2 dimensi saja. Array 2 dimensi dapat mewakili suatu bentuk tabel atau matrik, yaitu indeks pertama menunjukkan baris dan indeks ke dua menunjukkan kolom dari tabel atau matrik.
1 2
1 2 3
Untuk mengetahui cara mendeklarasikan dari penggunaan aray dua dimensi dapat dilihat pada listing program dibawah ini .

Contoh Program:
Program Deklarasi_Array_Dua_Dimensi;
Uses Crt;
Var Tabel : Array[1..3,1..2] of Integer;
i,j : Integer;
Begin
ClrScr;
Tabel[1,1]:=1;
Tabel[1,2]:=2;
Tabel[2,1]:=3;
Tabel[2,2]:=4;
Tabel[3,1]:=5;
Tabel[3,2]:=6;
For I := 1 to 3 Do Begin For J:= 1 to 2 Do Begin Writeln('Elemen ',i,',',j,'= ',tabel[i,j]);
End;
End;
Readln;
End.


IV. Alternatif Deklarasi Array Dua Dimensi.
Ada beberapa cara dalam mendeklarasikan array dua dimensi, beberapa cara tersebut dapat dilihat dibawah ini :
Contoh :
Var
Tabel : Array[1..3] of Array[1..2] of Byte;
atau :
Type
Matrik = Array[1..3,1..2] of Byte;
Var
Tabel : Matrik;
atau :
Type
Baris = 1..3;
Kolom = 1..2;
Matrik = Array[Baris,Kolom] of Byte;
Var
Tabel : Matrik;
atau :
Type
Baris = 1..3;
Kolom=1..2;
Matrik= Array[Baris] of Array[Kolom] of Byte;
Var
Tabel : Matrik;
Dibawah ini akan diberikan listing program penggunaan array dua dimensi dalam aplikasi penjumlahan matrik :
Contoh Prorgam:
Program Penjumlahan_Matrik;
Uses Crt;
Var
Matrik1,Matrik2, Hasil : Array[1..3,1..2] of Integer;
i,j : Integer;
Begin
ClrScr;
{ input matrik ke satu }
Writeln(' Elemen matrik satu');
For i := 1 to 3 Do
Begin
For j := 1 to 2 Do
Begin
Write('Elemen baris -',i,' Kolom -',j,'= ');
Readln(matrik1[i,j]);
End;
End;
{input matrik ke dua}
Writeln('input elemen matrik dua');
For i:= 1 to 3 Do
Begin
For j:= 1 to 2 Do
Begin
Write('Elemen baris -',i,' kolom -',j,'= ');
Readln(matrik2[i,j]);
End;
End;
{proses penjumlahan tiap elemen}
For i := 1 to 3 Do
Begin
For j:= 1 to 2 Do
Begin
Hasil[i,j]:=Matrik1[i,j]+Matrik2[i,j];
End;
End;
{proses cetak hasil}
For i:= 1 to 3 Do
Begin
For j:= 1 to 2 Do
Begin
Write(Hasil[i,j]:6);
End;
Writeln;
End;
Readln;
End.


V. Array Sebagai Parameter
Array dapat digunakan sebagai parameter yang dikirimkan baik secara nilai (by value) atau secara acuan (by reference) ke procedure atau ke function. Procedure yang menggunakan parameter berupa array harus dideklarasikan di dalam judul procedure yang menyebutkan parameternya bertipe array.

Contoh Program :
Program Contoh_Pengiriman_Parameter_Array_Di_Procedure;
Uses Crt;
Const
Garis ='---------------------------------------------------';
Type
Untai = Array[1..10] of String[15];
Bulat = Array[1..10] of Integer;
Huruf = Array[1..10] of Char;
Var
i,Banyak : Integer;
Procedure Proses(Nama:Untai;Nilai:Bulat);
Var
Ket : String;
Abjad : Char;
Begin
Writeln(Garis);
Writeln('Nama Nilai Abjad Keterangan');
Writeln(Garis);
For i := 1 to Banyak Do
Begin
If Nilai[i] > 90 Then
Begin
Abjad:='A';
Ket :='Istimewa';
End;
If (Nilai[i]<90)>70) Then
Begin
Abjad:='B';
Ket :='Memuaskan';
End;
If (Nilai[i]<70)>60) Then
Begin
Abjad:='C';
Ket :='Cukup';
End;
If (Nilai[i]<60)>45) Then
Begin
Abjad:='D';
Ket :='Kurang';
End;
If Nilai[i]< 45 Then
Begin
Abjad:='E';
Ket :='Sangat kurang';
End;
Writeln(Nama[i]:15,' ',Nilai[i]:4,' ',Abjad,' ',Ket:15);
End;
Writeln(Garis);
End;
Procedure Masuk_Data;
Var
Nama : Untai;
Nilai : Bulat;
Begin
Write('Banyak data =');Readln(Banyak);
For i:= 1 to Banyak Do
Begin
ClrScr;
Writeln('Data ke - ',i);
Write('Nama =');readln(Nama[i]);
Write('Nilai =');readln(Nilai[i]);
End;
Proses(Nama,Nilai);
End;
{modul Utama}
Begin
Masuk_Data;
Readln;
End.


Artikel OOP dan Pemrograman Prosedural

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

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


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



PEMROGRAMAN PROSEDURAL

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

  1. 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:

  1. 1. Program utama

  2. 2. Tipe

  3. 3. Konstanta

  4. 4. Variabel

  1. 5. Ekspresi, operator, dan operand

  2. 6. Struktur Data

  3. 7. Instruksi dasar

  4. 8. Program Moduler

  5. 9. File eksternal

  6. 10. Rekurens

  1. 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);

}

Karakter ASCII

ASCII adalah Suatu kode skema yang menggunakan 7 atau 8 bit, yang memberikan lambang sebanyak 256 jenis karakter. Di dalam karakter-karakter ini, telah termasuk di dalamnya huruf, angka, lambang-lambang khusus, kode kontrol perintah, serta kode lainnya. ASCII ini didevelop pada tahun 1968, yang merupakan standar untuk transmisi data antara software dan hardware. ASCII ini digunakan dalam dikebanyakan komputer mini, dan di seluruh komputer pribadi.Standar yang berlaku di seluruh dunia untuk kode berupa angka yang merepresentasikan karakter-karakter, baik huruf, angka, maupun simbol yang digunakan oleh komputer. Terdapat 128 karakter standar ASCII yang masing-masing direpresentasikan oleh tujuh digit bilangan biner mulai dari 0000000 hingga 1111111. Format yang banyak digunakan untuk file teks di dalam dunia komputer dan internet. Di dalam file ASCII, masing-masing alphabetic, numeric, atau karakter khusus direpresentasikan dalam 7-bit bilangan biner (kumpulan dari nol atau satu sebanyak tujuh angka).Karakter dalam kode ASCII dibagi dalam beberapa group yaitu : control character, angka, huruf besar, huruf kecil, dan tanda baca (pada tabel tidak begitu jelas). Control-character ini sering disebut sebagai non-printable-character, yaitu karakter yang dikirim sebagai tahap awal (pengenalan) dalam berbagai kegunaan komunikasi data, misalnya sebelum informasi dikirim dari PC ke printer. Dengan kumpulan bit ini terdapat sebanyak 128 character yang bisa didefinisikan. Sistem operasi berbasis Unix dan DOS menggunakan ASCII untuk file teks, sedangkan Windows NT dan 2000 menggunakan kode yang lebih baru yang dikenal dengan istilah unicode. Sistem yang dikeluarkan oleh IBM menggunakan data yang dibentuk dari 8 bit, yang disebut dengan EBCDIC.Pengenalan karakter ASCII merupakan salah satu bidang dalam ilmu komputer yang dapat membantu proses pengolahan data. Salah satu teknik pengenalan karakter adalah metode Jaringan Saraf Tiruan (JST), dimana metode ini menggunakan prinsip otak manusia yang terdiri dari neuron sebagai pemrosesan input untuk menghasilkan output berdasarkan bobot yang ada.Tujuan dari paper ini adalah membuat perangkat lunak yang dapat melakukan pengenalan karakter ASCII dengan menggunakan metode JST. Arsitektur JST yang digunakan adalah multilayer neural network, dengan algoritma pembelajaran propagasi balik. Untuk membantu pengenalan karakter ASCII, dilakukan proses pemotongan gambar menggunakan metode pemetaan.Hasil uji coba menunjukkan bahwa ujicoba dari seluruh karakter yang berhasil disegmentasi untuk jenis font yang sama dengan pelatihan, dengan ukuran font yang berbeda berhasil dikenali sebanyak 81,74%, sedangkan dari seluruh karakter yang gagal disegmentasi berhasil dikenali sebanyak 67,53%. Ujicoba dari seluruh karakter yang berhasil disegmentasi untuk jenis font yang berbeda dengan pelatihan, dengan ukuran font yang berbeda berhasil dikenali sebanyak 55,47%, sedangkan dari seluruh karakter yang gagal disegmentasi berhasil dikenali sebanyak 46,65%

Tabel Karakter ASCII

Tabel berikut berisi karakter-karakter ASCII . Dalam sistem operasi Windows dan MS-DOS, pengguna dapat menggunakan karakter ASCII dengan menekan tombol Alt+[nomor nilai ANSI (desimal)]. Sebagai contoh, tekan kombinasi tombol Alt+87 untuk karakter huruf latin "W" kapital.
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
< kecil =" 003D">
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