Anda di halaman 1dari 41

Karakter dan String

Algoritma dan Pemrograman


Materi
• Karakter
– Pengenalan Karakter
– Operasi Karakter
– Fungsi-Fungsi untuk Karakter
• String
– Pengenalan String
– Fungsi-Fungsi untuk String
• Latihan Soal
Karakter
• Ukuran tipe data karakter : 1 byte
– 1 byte = 8 bit = 256 macam karakter
• Untuk karakter menggunakan tanda petik
tunggal (contoh : ‘c’)
• Karakter meliputi :
– Alfabet = A..Z, a..z,
– Angka = 0..9
– Tanda baca = . , ; dan sebagainya
– Karakter Khusus = @, #, $, dan sebagainya
Karakter
• Karakter null / kosong, panjangnya nol,
dilambangkan dengan tanda petik tunggal (‘’)
Karakter
• Jumlah karakter ada 256 karakter (1 byte),
rentangnya antara 0 – 255
• Yang dapat ditemui pada keyboard adalah karakter
0 – 126, sisanya (127 – 255) adalah karakter khusus
• Karakter yang perlu anda ketahui :
– #32 = spasi
– #0 - #31, #127 = tidak dapat dicetak pada printer (non
printable)
– #32 – 126 = dapat dicetak (printable)
Karakter
#include <stdio.h>
#include <conio.h>
int main() {
int pos = 0;
for(int i=0; i<=126; i++) {
printf("%d) %c\t", i, i);
pos++;
if (pos == 8) {
printf("\n");
pos = 0;
}
}
getch();
}
Karakter
Operasi Pada Karakter
• Tipe data karakter diperlakukan sama seperti
tipe data numerik/integer
• Operasi yang dapat dilakukan
– Penjumlahan
– Pengurangan
– Perbandingan
– Perkalian
– Pembagian
Operasi Pada Karakter
#include <stdio.h>
#include <conio.h>
int main() {
char a = 'N';
char t = a + 2;
char k = a - 2;
printf("Karakter %c + 2 = %c\n", a, t);
printf("Karakter %c - 2 = %c\n", a, k);
printf("Karakter %c > %c = %d", t, k, t>k);
getch(); return 0;
}
Operasi Pada Karakter
Fungsi-Fungsi untuk Karakter
• Terdapat pada header file ctype.h
#include <ctype.h>

• Fungsi-fungsi tersebut mengembalikan nilai 0


atau 1
Daftar Fungsi
Contoh
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
int main() {
char kal[30] = "this is just an example";
int jumhuruf = 0;
int jumspasi = 0;
for(int i=0; i<= 23; i++) {
if(isalpha(kal[i]))
jumhuruf++;
if(isspace(kal[i]))
jumspasi++;
}
printf("Jumlah huruf : %d\n", jumhuruf);
printf("Jumlah spasi : %d\n", jumspasi);
getch(); return 0;
}
Output

this just an example


Contoh
• Mengubah huruf besar ke huruf kecil dan
sebaliknya
• Huruf besar : A…Z = ASCII 65 – 90
• Huruf kecil : a…z = ASCII 97 - 122
Contoh
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
void ubahbesarkecil(char a[]);

int main() {
char kal[30] = "Wikipedia BerBahaSa IndOnesIa";
ubahbesarkecil(kal);
printf("%s", kal);
getch(); return 0;
}

void ubahbesarkecil(char a[]) {


for(int i=0; i<=28; i++) {
if(islower(a[i]))
a[i] = a[i] - 32;
else if(isupper(a[i]))
a[i] = a[i] + 32;
}
}
Fungsi Konversi
• Anda bisa melakukan konversi dari numerik ke
huruf maupun huruf ke numerik
• Karakter numerik yaitu ‘0’, ‘1’, … , ‘9’
• Berada pada rentang ASCII 48 - 57
Contoh
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
int hurufkenumerik(char a);

int main() {
char huruf = '8';
int numerik = hurufkenumerik(huruf);
printf("Hasil konversi = %d\n", numerik);
numerik = numerik * 20;
printf("Perkalian numerik hasilnya : %d", numerik);
getch(); return 0;
}

int hurufkenumerik(char a) {
int num = a - '0';
return num;
}
Menghitung Frekuensi Huruf
• Menghitung jumlah kemunculan suatu huruf
• Huruf yang digunakan adalah A..Z dan a..z
• Nomor ASCII
– A … Z = 65 – 90
– a … z = 97 – 122
• Pada contoh ini, A dan a dianggap sebagai a
saja (semuanya dikonversi ke huruf kecil lebih
dulu)
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
Contoh
char tolower(char a);

int main() {
int frekhuruf[26] = {0};
char kal[40] = "the crazy fox jump over the lazy dog";
for(int i=0; i<=34; i++) {
if(isupper(kal[i]))
kal[i] = tolower(kal[i]);
frekhuruf[kal[i] - 97]++;
}
for(int j=0; j<=25; j++)
printf("Jumlah %c : %d\n", 97+j, frekhuruf[j]);
getch(); return 0;
}

char tolower(char a) {
return a + 32;
}
Output

The crazy fox jump over the


lazy dog
String
• String merupakan kumpulan dari karakter-
karakter (Array of character)
• Pada contoh-contoh sebelumnya operasi
dilakukan pada array of character (string)
• Karakter : tanda petik tunggal (‘)
• String : tanda petik ganda (“)
String
• String merupakan array of character yang
diakhiri dengan karakter \0 (null)
• Contoh : “Red Devils”
R e d D e v i l s \0
Fungsi-Fungsi untuk String
• Fungsi-fungsi untuk string terdapat pada
header file : string.h
#include <string.h>
string.h
• Fungsi panjang string
– strlen()
Tidak semua fungsi ditampilkan disini,
• Fungsi copying hanya yang sering dipakai saja
– strcpy()
• Fungsi concatenation
– strcat()
• Fungsi searching
– strchr(), strstr(),
• Fungsi comparison
– strcmp()
Fungsi Panjang String
• Untuk mendapatkan panjang suatu string kita
bisa menggunakan fungsi strlen()
• Contoh :
char kalimat[100] = “Hearts burst into fire”;
int panjang = strlen(kalimat);

//nilai panjang sekarang : 22


Fungsi Copying
• Untuk menyalin suatu string ke string lain
tidak dapat menggunakan operator
pemberian nilai biasa
char kal1[20] = “source sentence”;
char kal2[20] = kal1;
//operasi ini salah !!
Fungsi Copying
• Ada 2 alternatif
– Salin satu-persatu masing-masing karakter
– Gunakan fungsi strcpy()
• Fungsi strcpy() membutuhkan 2 input string,
strcpy(string1, string2)
hasilnya akan dimasukkan pada variabel
string1
Contoh
#include <stdio.h>
#include <string.h>
#include <conio.h>
int main() {
char kal1[30] = "such a beautiful day";
char kal2[30];
strcpy(kal2, kal1);
printf("Hasil copy : %s", kal2);
getch(); return 0;
}
Fungsi Concatenation
• Menggabungkan 2 string
• Ada 2 alternatif cara
– Dengan mengakses masing-masing karakter,
tampung ke array baru hasil penggabungan dua
array of character tersebut
– Menggunakan fungsi strcat()
Fungsi Concatenation
• Fungsi strcat() meminta 2 input string
strcat(string1, string2)

• Hasilnya akan ditampung di string1


Contoh
#include <stdio.h>
#include <string.h>
#include <conio.h>
int main() {
char kal1[] = "Close your eyes";
char kal2[] = " say goodnight...";
strcat(kal1, kal2);
printf("Hasil concat : %s", kal1);
getch(); return 0;
}
Output

kal1 = “Close your eyes”


kal2 = “ say goodnight…”
Hasil concat = “Close your eyes say goodnight…”
Fungsi Searching
• Mencari karakter dalam string  strchr()
– Contoh :
“My tea gone cold and i wonder why”
Mencari karakter ‘a’, dengan strchr menghasilkan
indeks dari posisi karakter ‘a’ yang pertama
ditemukan
Fungsi Searching
• Mencari substring dalam string  strstr()
– Contoh :
“My tea gone cold and i wonder why”

Mencari substring “why” akan menghasilkan posisi


kata why dalam kalimat tersebut
Fungsi Comparison
• Membandingkan dua string, dengan
ketentuan :
– Membandingkan string1 dan string2
– Hasilnya <0 bila string1 < string2
– Hasilnya 0 bila string1 = string2
– Hasilnya >0 bila string1 > string2
Contoh
#include <stdio.h>
#include <string.h>
#include <conio.h>
int main() {
char kal1[] = "Street";
char kal2[] = "street";
if (strcmp(kal1, kal2) > 0)
printf("kal1 lebih besar dari kal2");
else if(strcmp(kal1, kal2) < 0)
printf("kal1 lebih kecil dari kal2");
else
printf("kal1 = kal2");
getch(); return 0;
}
Output
Kal1 = “Street”
Kal2 = “street”
Latihan Soal
• Buatlah fungsi untuk menghapus seluruh
karakter spasi yang berada pada string yang
diinputkan
Contoh :
“No one could kill me”  “Noonecouldkillme”
Latihan Soal
• Buatlah fungsi untuk mengecek apakah suatu
kalimat merupakan palindrom atau bukan
Contoh :
“kasur rusak”  “kasur rusak”  palindrom

“topi merah”  “harem ipot”  bukan


Latihan Soal
• Buatlah fungsi untuk mengubah huruf awal
setiap kata dalam suatu kalimat menjadi huruf
besar
Contoh :
“I am coming home”  “I Am Coming Home”

“No wonder why”  “No Wonder Why”

Anda mungkin juga menyukai