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;
}
Karakter: A
#include <iostream>
using namespace std;
int main(){
char karakter='A';
cout << "Karakter : " << karakter;
}
Karakter : A
Walaupun inisiasi variabelnya terlihat berbeda, hasil kode program di atas dan kode program sebelumnya sama.
Menampilkan ASCII dari Karakter
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
char karakter='A';
cout << "Karakter: " << karakter << endl;
cout << "Kode ASCII : " << int(karakter) << endl;
}
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
- \n => pindah baris
- \r => carriage return
- \t => tab
- \a => alert / bell
- \b => backspace
- \f => form feed
- \v => vertical tab
- \? => ? (tanda tanya)
- \\ => \ (backslash)
- \" => " (Tanda kutip ganda)
- %% => % (persen) {Cuma untuk fungsi printf}
#include <iostream>
int main(){
std::cout << "\"Hallo \"100%\" dunia!!!\"" << std::endl;
std::cout << "\"Hallo \"100%\" dunia!!!\"" << std::endl;
return 0;
}
"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;
}
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 (+).