Tipe Karakter dan Kode ASCII

Variabel dalam Bahasa C++ menyimpan angka maupun karakter dengan ukuran satu byte dengan cara yang sama. Angka dan karakter tersebut disimpan dengan menggunakan tipe data char. Walaupun begitu, cout hanya akan menampilkan apa yang disimpan variabel bertipe char sebagai karakter.

Setiap karakter sebenarnya disimpan sebagai angka. Output akan tergantung pada function yang digunakan. Misalnya, kalau kalian memberikan nilai 65 yang disimpan pada variabel bertipe char, maka cout akan mencetak huruf "A". Function lain mungkin akan mencetaknya sebagai angka 65.

#include <iostream>

using namespace std;

int main(){
    char karakter=65;
    cout << "Karakter : " << karakter;
}
Output :
Karakter: A
Cout menampilkan huruf "A", karena nilai ASCII (American Standard Code for Information Interchange) huruf tersebut adalah 65. Saat menyimpan karakter ke dalam variabel, kalian tidak harus mengetik kode ASCII karakter tersebut. Karakter bisa ditulis dengan tanda kutip tunggal, misalnya 'A'.
#include <iostream>

using namespace std;

int main(){
    char karakter='A';
    cout << "Karakter : " << karakter;
}
Output :
Karakter : A

Walaupun inisiasi variabelnya terlihat berbeda, hasil kode program di atas dan kode program sebelumnya sama. 

Menampilkan ASCII dari Karakter

Untuk menampilkan angka yang mewakili kode ASCII karakter, kalian perlu mengubahnya menjadi tipe data bilangan bulat karena tipe char selalu ditampilkan sebagai karakter oleh cout. Kalian bisa melakukannya dengan function int(karakter) seperti contoh berikut ini.
#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
	char karakter='A';
	cout << "Karakter: " << karakter << endl;
	cout << "Kode ASCII : " << int(karakter) << endl;
}
Output :
Karakter: A
Kode ASCII : 65

Tabel ASCII

ASCII dimulai dari 0 sampai 255. Setiap ASCII mewakili karakter berupa angka, huruf, dan karakter-karakter yang punya kegunaan khusus. 

Beberapa karakter tidak punya tampilan khusus, atau bahkan tidak bisa ditampilkan, walaupun punya kegunaan tertentu, misalnya untuk komunikasi hardware atau penanda bagian file. Hasilnya pencetakan beberapa karakter mungkin berbeda di setiap komputer saat dicetak ke output.


Kode ASCII Karakter
0 {NULL}
1 {Awal Heading}
2 {Awal teks}
3 {Akhir teks}
4 {Akhir transmisi}
5 {Enquiry}
6 {Acknowledge}
7 {Bell}
8 {Backspace}
9 {Tab Horisontal}
10 {Linefeed}
11 {Tab Vertikal}
12 {Form Feed}
13 {Enter / Carriage Return}
14 {Shift out}
15 {Shift in}
16 {Data link escape}
17 {DC 1}
18 {DC 2}
19 {DC 3}
20 {DC 4}
21 {Negative acknowledge}
22 {Synchronous Idle}
23 {End of trans block}
24 {Cancel}
25 {End of medium}
26 {Subtitute}
27 {ESC}
28 {File separator}
29 {Group separator}
30 {Record separator}
31 {Unit Separator}
32 {Spasi}
33 !
34 "
35 #
36 $
37 %
38 &
39 '
40 (
41 )
42 *
43 +
44 ,
45 -
46 .
47 /
48 0
49 1
50 2
51 3
52 4
53 5
54 6
55 7
56 8
57 9
65 A
66 B
66 B
67 C
68 D
69 E
70 F
71 G
72 H
73 I
74 J
75 K
76 L
77 M
78 N
79 O
80 P
81 Q
82 R
83 S
84 T
85 U
86 V
87 W
88 X
89 Y
90 Z
91 [
92 /
93 ]
94 ^
95 _
96 `
97 a
98 b
99 c
100 d
101 e
102 f
103 g
104 h
105 i
106 j
107 k
108 l
109 m
110 n
111 o
112 p
113 q
114 r
115 s
116 t
117 u
118 v
119 w
120 x
121 y
122 z
123 z
123 {
124 |
125 }
126 ~
127 {DEL}

Angka punya ASCII yang berurutan. Begitu juga huruf. Itu bisa kalian manfaatkan untuk membuat kode rahasia. 

Kalau disederhanakan, angka dan huruf bisa ditulis rentangnya seperti di bawah ini.

  • 'A' sampai dengan 'Z' = 65 sampai dengan 90'
  • 'a'sampai dengan 'z' = 97 sampai dengan 122'
  • 0' sampai dengan '9' = 48 sampai dengan 57

Karakter Khusus

Untuk pindah baris dalam bahasa C++, kalian bisa menggunakan std::endl bersama dengan cout. Selain menggunakan endl, ada cara lain yang bisa kalian gunakan.

Kalian bisa menggunakan "\n" yang  merupakan karakter khusus untuk pindah baris. Karakter khusus dalam bahasa C++ bisa disisipkan di dalam string. Ada beberapa karakter khusus selain "\" yang bisa kalian gunakan dalam bahasa C++. Hampir semua karakter khusus tersebut, selain NULL, diawali dengan tanda backslash(\). Berikut ini adalah beberapa karakter khusus yang bisa digunakan dalam bahasa C atau C++.
  1. \n => pindah baris
  2. \r => carriage return
  3. \t => tab
  4. \a => alert / bell
  5. \b => backspace
  6. \f => form feed
  7. \v => vertical tab
  8. \? => ? (tanda tanya)
  9. \\ =>  \ (backslash)
  10. \" => " (Tanda kutip ganda)
  11. %% => % (persen) {Cuma untuk fungsi printf}
Contoh kode programnya bisa kalian lihat di bawah ini.
#include <iostream>

int main(){
    std::cout << "\"Hallo \"100%\" dunia!!!\"" << std::endl;
    std::cout << "\"Hallo \"100%\" dunia!!!\"" << std::endl;
    return 0;
}
Output :
"Hallo "100%" dunia!!!"
"Hallo "100%" dunia!!!"

Contoh di atas menggunakan pindah baris (\n), tab (\t) dan tanda kutip (\"). Karakter khusus lain bisa kalian coba gunakan sendiri dalam kode program buatan kalian.

Mengubah Huruf Kecil dan Huruf Besar

Kalian bisa mengubah huruf kecil menjadi huruf kapital atau sebaliknya, berdasarkan selisih huruf "A" dan "a". Jika ingin lebih mudah, kalian bisa menggunakan function toupper dan tolower yang disediakan C++. Fungsi toupper digunakan untuk mengubah semua huruf menjadi huruf besar. Sebaliknya, tolower digunakan untuk mengubah semua huruf menjadi huruf kecil.

Contoh :

#include <iostream>

using namespace std;

int main(){
    char c;
    string s="InI tULisAN ALay";
    string t;
    
    cout << "Tulisan : " << s << endl;
    cout << "Ubah tulisan?" << endl;
    cout << "Pilih yes atau no! (y/n)";
    cin >> c;
    
    t="";
    if(toupper(c)=='Y'){
    	cout << "Toupper : ";
    	for(int i=0;i<s.length();i++){
    		t+=toupper(s[i]);
    	}
    	cout << t << endl;
    	
    	t="";
    	cout << "Tolower : ";
    	for(int i=0;i<s.length();i++){
    		t+=tolower(s[i]);
    	}
    	cout << t << endl;
    }
    
    return 0;
}
Contoh Program :
Tulisan : InI tULisAN ALay
Ubah tulisan?
Pilih yes atau no! (y/n)y
Toupper : INI TULISAN ALAY
Tolower : ini tulisan alay

Kalian cukup menggunakan iostream untuk menggunakan tolower dan toupper. Itu karena fungsi-fungsi tersebut sudah disedikan di dalam iostream walaupun header yang sebenarnya adalah cctype.

Btw, karakter bisa disambung dengan string menggunakan operator concatenation (+).