Mengenai Saya
Arsip Blog
Selasa, 21 Oktober 2008
Quick Sort
spasi
Jika kita membuat program aplikasi yang berhubungan dengan data, maka kita sering kali harus melakukan proses pengurutan data. Pengurutan data merupakan suatu proses yang digunakan untuk mendapatkan nilai tertinggi atau terendah.
Pembahasan kali ini diberikan dengan materi yang sangat sederhana. Tujuannya adalah agar mudah dipahami dan dimengerti oleh programmer pemula. Kemudian diharapkan setelah anda membaca artikel ini dan mencobanya secara langsung anda bisa membuat program aplikasi lain yang lebih kompleks.
Untuk menambah pemantapan akan materi ini, silahkan anda baca link terkait dari artikel ini, semoga dengan semakin anda banyak wawasan secara tidak langsung akan membuat anda semakin paham akan penggunaan sorting secara tepat.
spasi
Struktur pengurutan :
spasi
procedure QuickSort(var A: array of Integer; iLo, iHi: Integer) ;
var
Lo, Hi, Pivot, T: Integer;
begin
Lo := iLo;
Hi := iHi;
Pivot := A[(Lo + Hi) div 2];
repeat
while A[Lo] < Pivot do Inc(Lo) ;
while A[Hi] > Pivot do Dec(Hi) ;
if Lo <= Hi then
begin
T := A[Lo];
A[Lo] := A[Hi];
A[Hi] := T;
Inc(Lo) ;
Dec(Hi) ;
end;
until Lo > Hi;
if Hi > iLo then QuickSort(A, iLo, Hi) ;
if Lo < iHi then QuickSort(A, Lo, iHi) ;
end;
spasi
Silahkan anda ikuti langkah - langkah berikut ini dengan pelan - pelan agar bisa berjalan dengan lancar sesuai dengan petunjuk yang sudah diberikan.
spasi
Buat program aplikasi baru.
Tambahkan beberapa object kedalam Form
ListBox1: TListBox;
ListBox2: TListBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
Button3: TButton;
spasi
Atur desainnya seperti berikut ditampilkan pada gambar form dibawah ini
Silahkan anda buat fungsi QuickSort. Untuk lebih jelasnya silahkan lihat potongan kode program dibawah ini.
…
…
procedure QuickSort(var A: array of Integer; iLo, iHi: Integer) ;
var
Lo, Hi, Pivot, T: Integer;
begin
Lo := iLo;
Hi := iHi;
Pivot := A[(Lo + Hi) div 2];
repeat
while A[Lo] < Pivot doInc(Lo) ;
while A[Hi] > Pivot doDec(Hi) ;
if Lo <= Hi then
begin
T := A[Lo];
A[Lo] := A[Hi];
A[Hi] := T;
Inc(Lo) ;
Dec(Hi) ;
end;
untilLo > Hi;
if Hi > iLo then QuickSort(A, iLo, Hi) ;
if Lo < iHi then QuickSort(A, Lo, iHi) ;
end;
…
…
Deklarasikan array data pada bagian Private. Untuk lebih jelasnya silahkan anda lihat potongan kode program dibawah ini.
…
…
private
{ Private declarations }
Data : array of integer;
…
…
Silahkan anda klik 2x tombol Tambah. Setelah itu anda lanjutkan dengan menuliskan kode program didalam event OnClick seperti terlihat pada potongan kode program dibawah ini.
…
…
procedure TForm1.Button1Click(Sender: TObject);
var
nilai : Integer;
begin
// Validasi inputan yang akan ditambahkan
if TryStrToInt(Edit1.Text,Nilai) then
ListBox1.Items.Add(IntToStr(nilai));
end;
…
…
Silahkan anda klik 2x tombol Proses. Setelah itu anda lanjutkan dengan menuliskan kode program didalam event OnClick seperti terlihat pada potongan kode program dibawah ini.
spasi
…
…
procedure TForm1.Button2Click(Sender: TObject);
var
indek : Word;
begin
// Menentukan panjang array
SetLength(Data,ListBox1.Items.Count) ;
// Pemasukan nilai ke array
for indek := 0 to ListBox1.Items.Count - 1 do
Data[indek] := StrToInt(ListBox1.Items[indek]);
// Proses pengurutan / sorting
QuickSort(data,Low(Data),High(Data));
// Kosongkan hasil
ListBox2.Items.Clear;
// Memasukkan nilai hasil
for indek := 0 to ListBox1.Items.Count - 1 do
ListBox2.Items.Add(IntToStr(data[indek]));
end;
…
…
spasi
Silahkan anda compile. Tekan tombol Ctrl + F9.
Tunggu beberapa saat… ( Sedang di cek kode programnya )
Apabila tidak muncul pesan error, berarti program yang anda buat telah berhasil dan silahkan anda tekan tombol F9 untuk menjalankan program aplikasinya.
spasi
Silahkan anda tekan tombol Proses
Program sudah selesai anda buat. Sekarang silahkan anda tekan tombol Keluar
Semoga artikel ini bisa bermanfaat. Silahkan anda berikan informasi ini kepada teman - teman anda yang belum tahu.
Mari kita wujudkan kemajuan IT Indonesia bersama dengan teman - teman yang lain dengan Delphi sebagai media pemupuk kebersamaan.
spasi
spasi
Sorting - Quick Sort
Silahkan anda download link diatas untuk mendapatkan contoh program aplikasi secara lengkap.
Ada beberapa masukan dan keluhan dari teman - teman, bahwa ada beberapa program contoh tidak bisa dijalankan dari delphi 7. Hal ini dikarenakan program contoh dibuat dengan menggunakan Delphi 2007 for win32.
Apabila anda menggunakan D7, sebaiknya anda mengikuti pandauan dari langkah - langkah yang sudah diberikan.
Atas perhatiannya, saya mengucapkan banyak terimakasih.
buble sort
- Bubble Sort mengurutkan data dengan cara
membandingkan elemen sekarang dengan elemen
berikutnya.
- Jika elemen sekarang lebih besar dari elemen berikutnya maka kedua elemen tersebut ditukar, jika pengurutan ascending.
- Jika elemen sekarang lebih kecil dari elemen berikutnya, maka kedua elemen tersebut ditukar, jika pengurutan descending
- Algoritma ini seolah-olah menggeser satu per satu elemen dari kanan ke kiri atau kiri ke kanan, tergantung jenis pengurutannya.
- Ketika satu proses telah selesai, maka bubble sort akan mengulangi proses, demikian seterusnya.
- Bubble sort berhenti jika seluruh array telah diperiksa dan tidak ada pertukaran lagi yang bisa dilakukan, serta tercapai
perurutan yang telah diinginkan.
Coding dengan C++:
//fungsi buble sort
void bubble_sort(){
for(int i=1;i
if(data[j ]< data[j-1]) tukar(j,,j-1); //ascending
}
}
}
kalau ingin mengurutkan data secara descending
if (data[j]>data[j-1]) tukar(j,,j-1);//descending
//fungsi tukar data
void tukar(int a,int b){
int tmp;
tmp = data[a];
data[a] = data[b];
data[b] = tmp;
}
* 9 bulan lalu
Selasa, 14 Oktober 2008
Selasa, 07 Oktober 2008
oop bahasa programing prosedur
C++ merupakan bahasa pemrograman yang cepat dan handal untuk melakukan komputasi. C++ adalah bahasa compiler yang artinya tidak membutuhkan runtime apapun untuk menjalankannya. Bedakan dengan Java yang merupakan bahasa semi interpreter yang masih membutuhkan runtime environment untuk dapat berjalan. Jadi, secara resources, C++ merupakan bahasa yang tidak membutuhkan daya besar.
Salah satu kelemahan C++ adalah kurangnya library built in, sehingga untuk proses-proses tertentu kita harus membuat sebuah program nearly built from scratch, atau dari dasar sekali. Terlebih lagi bahasa C++ dewasa ini kurang begitu popular karena kita masih memikirkan pemrograman dari sisi mesin ketimbang memikirkan probis (proses bisnis) yang seharusnya menjadi tujuan kita.
Baiklah tanpa banyak waktu terbuang, pada kesempatan ini Saya ingin berbagi kepada pembaca mengenai bagaimana OOP (Object Oriented Programming) diterapkan di C++.
Adapun perquisite dari tulisan di bawah ini adalah setidaknya Anda tahu dasar-dasar pemrograman seperti standar input output, menulis pada layar, membaca dan menulis pada file, sampai pada pemilihan kondisi (if..then, switch) dan looping (do.. while, for..).
Kelas (Class)
Class pada dasarnya adalah penerapan lebih jauh pada untuk struktur data / tipe bentukan (record type). Perbedaan yang mendasar adalah jika pada struktur data kita membuat sebuah tipe variable baru dimana variable itu merupakan gabungan berbagai variabel reserved, pada Class kita tidak hanya membuat satu paket beberapa variabel reserved tapi menentukan juga fungsi/procedure apa yang akan kita kenakan terhadap variabel itu dan membungkusnya menjadi satu kesatuan. fungsi/procedure tersebut biasa kita sebut method.
Class pada C++ diorganisasikan seperti di bawah ini:
class class_name {
access_specifier_1:
member1;
access_specifier_2:
member2;
...
} object_names;
Class_name merupakan nama Class kita, access_specifier_* adalah bagaimana member-member dibawahnya diakses, dimana member adalah berupa variabel, constructor, destructor dan method. Object_names adalah penamaan object Class tersebut setelah dilakukan compile. Object_names bersifat optional.
Terdapat tiga tipe access_specifier yang dapat digunakan pada C++, yaitu private, protected, dan finally. Masing-masing dijabarkan pada http://www.cplusplus.com adalah:
- private members of a class are accessible only from within other members of the same class or from their friends.
- protected members are accessible from members of their same class and from their friends, but also from members of their derived classes.
- Finally, public members are accessible from anywhere where the object is visible.
Ini adalah contoh Class yang lengkap:
#include
using namespace std;
class Computer{
public:
Computer();
// Constructor
~Computer();
// Destructor
void setspeed ( int p );
int readspeed();
protected:
int processorspeed;
};
Computer::Computer(){
processorspeed = 0;
}
Computer::~Computer(){
//Destructors do not accept arguments
}
void Computer::setspeed ( int p ){
processorspeed = p;
}
int Computer::readspeed(){
return processorspeed;
}
Double Colon (::)
Jika dilihat pada contoh diatas, ada beberapa baris yang terdapat double colon. Adapun gunanya double colon itu adalah mengkaitkan method bentukan dengan Class yang dimaksud. Prinsip sintaksnya adalah:
Class_name::Method_name() {
//Sintaks
}
Class_name merujuk pada Class yang ingin kita tambahkan method-nya. Method_name adalah nama method yang ingin kita tulis. Penulisan Class_name, method_name, dan double colon tidak boleh memiliki jarak spasi.
Constructors dan Destructors
Constructor adalah sebuah method bernama sama dengan sebuah Class yang berfungsi untuk inisialisasi sebuah Class, sedangkan destructor merupakan sebuah method (yang juga bernama sama dengan kelasnya) yang digunakan untuk menghancurkan sebuah Class. Adapun pada Class Computer diatas, dapat dilihat bahwa method destructors selalu memiliki tanda (~) didepan penulisan methodnya.
Overloading Constructors
Overloading merupakan penulisan method yang sama pada suatu kelas dengan nama yang sama. Satu-satunya perbedaan antara method tersebut adalah parameter inputannya.
Dalam hal ini, sebuah Class dapat memiliki lebih dari sebuah method Constructor. Contoh pengaplikasiannya adalah:
/ overloading class constructors
#includenamespace std;
using
class CRectangle {
int width, height;
public:
CRectangle ();
CRectangle (int,int);
int area (void) {return (width*height);}
};
CRectangle::CRectangle () {
width = 5;
height = 5;
}
CRectangle::CRectangle (int a, int b) {
width = a;
height = b;
}
int main () {
CRectangle rect (3,4);
CRectangle rectb;
cout << "rect area: " << rect.area() << endl;
cout << "rectb area: " << rectb.area() << endl;
return 0;
}
Default Constructor
Default Constructor merujuk jika kita membuat overloading constructors. Secara default jika menuliskan overloading constructor, berarti kita secara tak langsung telah menghilangkan constructor awal dari sebuah Class.
Untuk Class CRectangle diatas, jika kita melakukan inisialisasi Class variabel seperti:
CRectangle myrec; —-à Salah, karena sudah terdapat constructor CRectangle ();
Untuk itu, kita harus menuliskan:
CRectangle myrec (); -à Benar.
Pointer yang merujuk pada suatu kelas
Bahasa C dan C++ sangat erat kaitannya dengan pointer, karena bahanya sendiri dirancang untuk mendekati bahasa mesin. Sebelum membaca tulisan di bawah ini kita harus mengetahui dahulu mengenai pointer.
Inti dari sub-tema ini adalah kita dapat melakukan inisialisasi Class dengan cara membuat pointer terhadap kelas tersebut. Ya, kita dapat membubuhkan tanda (*) di depan nama Class variabel tersebut untuk menunjukan bahwa class variabel itu bertipe pointer. Namun perlu diingat, untuk mengakses variabel dan method di dalam kelas tersebut, tentu saja kita harus menggunakan tanda (->). Seperti contoh di bawah ini:
#include
Using namespace std;
Class Buku{
Private:
int jumlah;
public:
Buku(int);
int bukunyaDicuriMaling();
void showBuku();
}
Buku::Buku(int jumlah){
This->jumlah = jumlah;
}
Int bukunyaDicuriMaling(){
Return ++jumlah;
}
void showBuku(){
Std::cout << “Jumlah saat ini adalah: ” << jumlah;
}
Int main(){
Buku *bukusaya (10);
bukusaya->bukunyaDicuriMaling();
bukuSaya->showBuku();
}
Menurut web , http://www.cplusplus.com/ bentuk pemakaian pointer adalah:
expression | can be read as |
*x | pointed by x |
&x | address of x |
x.y | member y of object x |
x->y | member y of object pointed by x |
(*x).y | member y of object pointed by x (equivalent to the previous one) |
x[0] | first object pointed by x |
x[1] | second object pointed by x |
x[n] | (n+1)th object pointed by x |
Class yang didefinisi dengan struct dan union
Ini merupakan hal yang baru untuk programmer Java, karena ternyata Class dalam C++ tidak hanya dapat didefinisikan dengan kata Class, tetapi juga dapat didefinisikan dengan kata struct atau union.
Perbedaan pendefinisian Class dengan kata Class dan Struct adalah jika didefinisikan dengan kata Class artinya secara default Class tersebut akan memiliki akses private secara default, sedangkan jika didefinisikan dengan kata Struct akan secara default memiliki hak akses public.
Adapun konsep dari pendefinisian Class dengan union sedikit berbeda dengan yang lain, karena pada pendefinisian union hanya terdapat satu data member yang dapat ditampung oleh Class tersebut. Adapun akses default dari Class dengan pendefinisian union adalah public.
Dari ketiga pendefinisian Class diatas, disarankan untuk tetap menggunakan kata Class untuk melakukan pendefinisian.
Static member
Sebuah kelas dapat menampung static member. Static member adalah sebuah variabel yang dapat dianggap sebagai konstanta terhadap variabel kelas bentukannya.
Contohnya adalah:
#include
Class percobaan{
Static float phi = 3.14568764;
//so on.. so on…
}
Selanjutnya pada kesempatan lain Saya akan menuliskan mengenai Friendship dan Inheritance pada C++.
Rabu, 01 Oktober 2008
karakter ascii dan tabel
Kode ASCII
Kode ASCII Kode ASCII (American Standard Codes for International Interchange) adalah Kode ASCII (American Standard Codes for International Interchange) adalah kumpulan kode-kode yang dipergunakan untuk mempermudah interaksi antara user dan komputer. Pada dasarnya kode ASCII me-representasikan kode-kode untuk : 1. Angka (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) 2. Huruf ( a - z, A - Z ) 3. Simbol ( &, ^, %, $ @ .. ) 4. Tombol ( Enter, Esc, Backspace, Space, Tab, Shift, Ctrl ) 5. Karakter Grafis ( kode ASCII Standar nomor 128 s/d 255 ) 6. Kode Komunikasi ( ETX, STX, ENQ, ACK .. ) Kode ASCII terdiri dari Kode ASCII Standard dan Kode ASCII Extended Kode ASCII Standard Kode ini merepresentasikan angka, huruf serta tombol standar, Enter, Escape, Backspace dan Space. Selain itu juga terdapat karakter-karakter yang tidak terdapat pada keyboard, yang dapat diaktifkan dengan melakukan penekanan tombol kombinasi “Alt” dan angka yang dimaksud, sebagai contoh tombol kombinasi “Alt” dan angka “127″ akan menghasilkan karakter gr Kode ASCII Extended Kode ASCII Extended akan bertindak sebagai kode perluasan (extended) dari kode ASCII yang ada, karena tidak semuanya mampu tertampung dalam kode ASCII standard.
Kode ASCII jenis ini lebih banyak bertindak sebagai kode-kode tombol khusus, seperti kode untuk tombol F1 s/d F12. Sebagai contoh adalah kode ASCII extended untuk F12 adalah “123″.Belum lagi dengan tombol kombinasi, misalnya “Alt” dan “F1″, “Ctrl” dan “F1″, atau tombol-tombol yang biasa kita lakukan “Alt” + “F” untuk membuka menu file, “Ctrl” dan “O” untuk membuka dokumen dsb 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