STRING SASARAN Menjelaskan tentang konsep string Menjelaskan operasi
- Slides: 34
STRING
SASARAN • • Menjelaskan tentang konsep string Menjelaskan operasi I/O pada string. Menjelaskan cara mengakses elemen string Menjelaskan berbagai fungsi mengenai string
• String dipakai untuk memanipulasi data teks. • Konstanta string ditulis dengan diawali dan diakhiri tanda petik ganda. Contoh: “Pemrograman C” memori rendah P e m r o g r a memori tingi m a n C + + Komposisi penyimpanan string dalam memori • Nilai string “selalu” diakhiri dengan NULL ( )
• Deklarasi Variabel string char nama_var[n]; Variabel string dengan panjang maksimal n karakter (termasuk karakter NULL) bernama_var. • Inisialisasi String Contoh: char name[] = {'R', 'I', 'N', 'I', ’ ’}; char name[] = “RINI”; Char name[10] = ”String”; Catatan: karakter akhir NULL wajib ada diakhir string. Bila memakai pembatasan elemen array pada inisialisasi, maka jumlah karakter harus tidak melebihi elemen array.
INPUT DATA STRING • Dengan fungsi gets() atau scanf() gets(nama_array); scanf(“%s”, nama_array); fgets(nama_array, sizeof nama_array, stdin); Keterangan : • • • nama_array adalah variabel bertipe array of char Kalau memakai scanf() dg format %s tidak membaca white-space; untuk menggantikan dpt dipakai format %[^n]. Untuk scanf(), di depan nama_array boleh diberi & boleh tidak
OUTPUT DATA STRING • Fungsi yang dapat digunakan adalah puts() atau printf(). puts(var_string); printf("%s", var_string); Keterangan: • var_string adalah berupa array of char • puts() secara otomatis menambahkan karakter 'n' di akhir string
CONTOH STRING #include <stdio. h> #include <conio. h> #define MAKS 256 int main() { int i, jumkar = 0; char teks[MAKS]; puts("Masukkan suatu kalimat (maks 255 karakter). "); //memasukkan dr keyboard gets(teks); for(i=0; teks[i]; i++) jumkar++; printf("n. Jumlah karakter = %dn", jumkar); getch(); return(0); }
PENGECEKKAN AKHIR STRING • Pemeriksaan terhadap teks[i] selama tidak berupa karakter NULL (dimulai dari indeks ke-0) dilakukan dengan instruksi: for(i=0; teks[i]; i++)jumkar++; Kondisi teks[i] pada for mempunyai makna secara implisit adalah: teks[i] != ‘ ’;
CONTOH STRING #include <stdio. h> #define MAKS 30 int main() { int i; char keterangan[] = “Saya menyukai bahasa C”; char kalimat[MAKS]; i=0; while (keterangan[i] != ‘ ’) { kalimat[i] = keterangan[i]; i++; } kalimat[i] = ‘ ’; /* beri karakter NULL */ printf(“Isi kalimat : %sn”, kalimat); return(0); } Penyederhanaan: i=0; while (kalimat[i] = keterangan[i]) i++;
FUNGSI PUSTAKA STRING Fungsi pustaka untuk operasi string, prototypenya berada di file header string. h, di antaranya: memchr(); memcmp(); memcpy(); memmove(); memset(); strcat(); strncat(); strchr(); strcmp(); strncmp(); strcoll(); strcpy(); strncpy(); strcspn(); strerror(); strlen(); strpbrk(); strrchr(); strspn(); strstr(); strxfrm();
FUNGSI PUSTAKA STRING A. Fungsi memchr() Deklarasi: void *memchr(const void *str, int c, size_t n); Untuk mencari karakter pertama c (sebuah unsigned char) di dalam n pertama dari string yang ditunjuk oleh parameter str. Mengembalikan pointer yang menunjuk ke karakter pertama yang sesuai, atau NULL jika tidak ditemukan. Contoh: char nama[] = “Maria Magdalena Tiahahu"; if( memchr(nama, ‘T', strlen(nama)) == NULL ) printf( “Tidak ditemukan karakter Tn" ); else printf( “Ditemukan karakter Tn" );
FUNGSI PUSTAKA STRING B. Fungsi memcmp(); Deklarasi: int memcmp(const void *str 1, const void *str 2, size_t n); Untuk membandingkan n byte pertama dari str 1 dan str 2. Tidak berhenti membandingkan walaupun setelah karakter null. Mengembalikan nol jika n byte pertama str 1 dan str 2 sama. Mengembalikan negatif (<0) jika str 1<str 2 atau positip (>0) jika str 1 >str 2 pada n byte pertama. Contoh: int mc; char *str 1="asdf"; char *str 2="asdf"; mc=memcmp(str 1, str 2, strlen(str 1)<strlen(str 2)? strlen(str 1): strlen(str 2)); if(!mc) printf("str 1 sama-dengan str 2"); else if(mc<0) printf("str 1 lebih kecil str 2"); else printf(" str 1 lebih besar str 2");
FUNGSI PUSTAKA STRING C. Fungsi memcpy (); Deklarasi: void *memcpy(void *str 1, const void *str 2, size_t n); Untuk menyalin n karakter dari str 2 ke str 1. Jika str 1 dan str 2 tumpang tindih maka hasilnya menjadi tidak terdefinisikan. Contoh: char string 2[]="test string"; char string 1[80]; memcpy (string 1, string 2, strlen(string 2)+1);
FUNGSI PUSTAKA STRING D. Fungsi memmove(); Deklarasi: void *memmove(void *str 1, const void *str 2, size_t n); Untuk menyalin n karakter dari str 2 ke str 1. Jika str 1 dan str 2 tumpang tindih, pertama membaca str 1 secara lengkap dan kemudian ditulis ke str 2 sehingga dapat disalin dengan benar. Contoh: char str[80]=“Test string"; memmove (str+5, strlen(str)+1); printf("str: %s", str); Hasilnya: str: Test string
FUNGSI PUSTAKA STRING E. Fungsi memset(); Deklarasi: void *memset(void *str, int c, size_t n); Untuk menyalin karakter c (sebuah unsigned char) pada n karakter pertama dari string yang ditunjuk oleh parameter str. Contoh: char str[80]="Test string"; memset (str, 'A', 5); printf("str: %s", str); Hasilnya: str: AAAAAstring
FUNGSI PUSTAKA STRING F. Fungsi strcat(); Deklarasi: char *strcat(char *str 1, const char *str 2); Untuk menambahkan string yang ditunjuk oleh str 2 ke akhir dari string yang ditunjuk oleh str 1. Karakter null dari str 1 akan ditumpuki. Penyalinan berakhir setelah karakter null dari str 2 disalin. Jika terjadi tumpang-tindih maka hasilnya tidak terdefinisikan. Contoh: char str 2[]="Test string"; char str 1[80]="Contoh ", *pstr; pstr=strcat (str 1, str 2); printf("pstr: %snstr 1: %sn", pstr, str 1); ; Hasilnya: pstr: Contoh Test string str 1: Contoh Test string
FUNGSI PUSTAKA STRING G. Fungsi strcat(); Deklarasi: char *strncat(char *str 1, const char *str 2, size_t n); Untuk menambahkan n karakter dari string yang ditunjuk oleh str 2 ke akhir dari string yang ditunjuk oleh str 1. Karakter null dari str 1 akan ditumpuki. Penyalinan berakhir setelah n karakter disalin atau setelah karakter null dari str 2 disalin. Sebuah karakter null selalu ditambahkan pada str 1. Jika terjadi tumpang-tindih maka hasilnya tidak terdefinisikan. Contoh: char str 2[]="Test string"; char str 1[80]="Contoh ", *pstr; pstr=strncat(str 1, str 2, 4); printf("pstr: %snstr 1: %sn", pstr, str 1); ; Hasilnya: pstr: Contoh Test str 1: Contoh Test
FUNGSI PUSTAKA STRING H. Fungsi strchr(); Deklarasi: char *strchr(const char *str, int c); Untuk mencari karakter pertama yang sesuai dengan c (sebuah unsigned char) di dalam string yang ditunjuk oleh str. Karakter null dianggap sebagai bagian dari string. Mengembalikan sebuah pointer yang menunjuk pada karakter pertama yang cocok, atau NULL jika tidak ditemukan. Contoh: char str[]=“Contoh Test string“, *pstr; pstr=strchr(str, ‘T’); printf("pstr: %sn", pstr, str); Hasilnya: pstr: Test string str : Contoh Test string
FUNGSI PUSTAKA STRING I. Fungsi strcmp(); Deklarasi: int strcmp(const char *str 1, const char *str 2); Untuk membandingkan string yang ditunjuk str 1 terhadap string yang ditunjuk str 2. Mengembalikan nilai nol jika str 1 and str 2 sama. Mengembalikan nilai negatip jika str 1 <str 2 atau mengembalikan nilai positip jika str 1>str 2. Contoh: char str 1[]="contoh", str 2[]="Contoh"; if(strcmp(str 1, str 2)<0) printf("%s < %sn", str 1, str 2); else if(strcmp(str 1, str 2)==0) printf("%s = %sn", str 1, str 2); else printf("%s > %sn", str 1, str 2); Hasilnya: contoh > Contoh
FUNGSI PUSTAKA STRING J. Fungsi strncmp(); Deklarasi: int strncmp(const char *str 1, const char *str 2, size_t n); Untuk membandingkan n bytes pertama dari str 1 dan str 2. Berhenti membandingkan setelah karakter NULL. Mengembalikan nilai nol jika n bytes pertama(atau sampai karakter null) dari str 1 dan str 2 sama. Mengembalikan nilai negatip jika str 1 <str 2 atau mengembalikan nilai positip jika str 1>str 2. Contoh: char str 1[]="contoh Test String", str 2[]="contoh Test"; if(strncmp(str 1, str 2, 6)<0) printf("%s < %sn", str 1, str 2); else if(strncmp(str 1, str 2, 6)==0) printf("%s = %sn", str 1, str 2); else printf("%s > %sn", str 1, str 2); Hasilnya: contoh Test String = contoh Test
FUNGSI PUSTAKA STRING K. Fungsi strcoll(); Deklarasi: int strcoll(const char *str 1, const char *str 2); Untuk membandingkan str 1 dan str 2. Hasilnya bergantung pada penetapan lokasi LC_COLLATEnya. Mengembalikan nilai nol jika str 1 = str 2. Mengembalikan nilai negatip jika str 1 < str 2 dan akan mengembalikan nilai positip jika str 1 > str 2. Contoh: char str 1[]="contoh", str 2[]="Contoh Test"; if(strcoll(str 1, str 2)<0) printf("%s < %sn", str 1, str 2); else if(strcoll(str 1, str 2)==0) printf("%s = %sn", str 1, str 2); else printf("%s > %sn", str 1, str 2); Hasilnya: contoh > Contoh Test
FUNGSI PUSTAKA STRING L. Fungsi strcpy(); Deklarasi: char *strcpy(char *str 1, const char *str 2); Untuk menyalin string yang ditunjuk oleh str 2 ke str 1. Penyalinan hingga termasuk karakter null dari str 2. Jika str 1 dan str 2 tumpangtindih hasilnya tidak terdefinisikan. Contoh: char str 1[]="contoh", str 2[]="Contoh Test", *pstrcpy; pstrcpy=strcpy(str 1, str 2); printf("pstrcpy: %snstr 1 : %snn", pstrcpy, str 1); Hasilnya: pstrcpy: Contoh Test str 1 : Contoh Test
FUNGSI PUSTAKA STRING M. Fungsi strncpy(); Deklarasi: char *strncpy(char *str 1, const char *str 2, size_t n); Untuk menyalin hingga n karakter dari string yang ditunjuk oleh str 2 ke str 1. Penyalinan berhenti setelah n karakter disalin atau karakter null di str 2 tercapai. Jika karakter null dicapai, karakter nul disalin ke str 1 hingga n karakter telah disalin. Contoh: char str 1[]="contoh", str 2[]="Contoh Test", *pstrcpy; pstrcpy=strncpy(str 1, str 2, 20); printf("pstrcpy: %snstr 1 : %snn", pstrcpy, str 1); Hasilnya: pstrcpy: Contoh Test str 1 : Contoh Test
FUNGSI PUSTAKA STRING N. Fungsi strcspn(); Deklarasi: size_t strcspn(const char *str 1, const char *str 2); Untuk mencari rangkaian karakter pertama dalam string str 1 yang tidak cocok dengan karakter dalam str 2. Mengembalikan panjang rangkaian karakter pertama yang ditemukan tidak cocok dengan str 2. Contoh: char str 1[]="contoh Test String", str 2[]="String"; int st; st= (int)strcspn(str 1, str 2); printf("st: %dnstr 1: %snstr 2: %sn", str 1, str 2); Hasilnya: St: 2 str 1: contoh Test String str 2 : String
FUNGSI PUSTAKA STRING O. Fungsi strerror(); Deklarasi: char *strerror(int errnum); Mencari sebuah array internal untuk nomor kesalahan errnum dan mengembalikan pointer yang menunjuk ke sebuah string pesan kesalahan.
FUNGSI PUSTAKA STRING P. Fungsi strlen(); Deklarasi: size_t strlen(const char *str); Menghitung panjang string str tanpa menyertakan karakter nullnya. Mengembalikan nilai jumlah karakter dalm string.
FUNGSI PUSTAKA STRING Q. Fungsi strpbrk(); Deklarasi: char *strpbrk(const char *str 1, const char *str 2); Mencari karakter pertama dalam string str 1 yang cocok dengan sebarang karakter di string str 2. Mengembalikan sebuah pointer yang menunjuk ke lokasi karakter tersebut. Mengembalikan sebuah pointer null jika tidak ada karakter di string str 1 yang cocok dengan karakter di string str 2.
FUNGSI PUSTAKA STRING R. Fungsi strrchr(); Deklarasi: char *strrchr(const char *str, int c); Mencari karakter terakhir c (sebuah unsigned char) di string str. Karakter null dari string str dianggap sebagai bagian dari string str. Mengembalikan sebuah pointer char yang menunjuk pada karakter akhir yang cocok tsb. , atau null jika tidak ditemukan.
FUNGSI PUSTAKA STRING S. Fungsi strspn(); Deklarasi: size_t strspn(const char *str 1, const char *str 2); Mencari rangkaian karakter pertama dalam string str 1 yang berisi sembarang karakter yang terdapat pada string str 2. Mengembalikan panjang rangkaian karakter tersebut.
FUNGSI PUSTAKA STRING T. Fungsi strstr(); Deklarasi: char *strstr(const char *str 1, const char *str 2); Mencari string str 2 (tidak termasuk karakter null) yang terdapat dalam string str 1. Mengembalikan sebuah pointer yang menunjuk ke string str 2 pertama yang terdapat dalam string str 1. Jika tidak ditemukan, maka akan mengembalikan sebuah pointer null. Jika str 2 menunjuk ke sebuah string dengan panjang nol, maka akan mengembalikan string str 1.
FUNGSI KONVERSI STRING Fungsi pustaka untuk operasi string, prototypenya berada di file header stdlib. h, di antaranya: atof(); atoi(); strtol(); strtoul(); atol(); strtod();
LATIHAN 1. Ketikkan sebuah kalimat melalui keyboard dengan menggunakan gets() (atau fgets()) kemudian didapatkan keluaran berupa laporan tentang jumlah huruf kecil dan huruf kapital dalam kalimat tsb dan jumlah setiap huruf/anggka yang tdp pada kalimat tsb. 2. Masukkan nama Anda, rubah ke dalam huruf besar semua, balikkan urutan hurufnya, selanjutnya tampilkan hasilnya di layar. 3. Ketikkan sebuah kalimat, hitung dan tampilkan jumlah spasinya. 4. Ketikkan sebuah kalimat, kemudian tampilkan kalimat tsb satu kata perbaris. Asumsikan ada satu spasi yang memisahkan setiap kata dan kalimat diakhiri dengan sebuah tanda titik.
LATIHAN 5. Buat program untuk menghasilkan keluaran sbb : UNIVERSITAS BRAWIJAYA UNIVERSITAS BRAWIJA UNIVERSITAS BRAWI UNIVERSITAS BRA UNIVERSITAS B UNIVERSITAS UNIVERSIT UNIVERS UNIVE UNI U
LATIHAN • Ketikkan sebuah bilangan, ubahlah menjadi bilangan dengan dilengkapi titik ribuan serta ubahlah menjadi bentuk teks. Contoh: Bila diketikkan 15750, diubah menjadi: 15. 750 dan teks: lima belas ribu tujuh ratus lima puluh rupiah.
- Penjadwalan proses sistem operasi
- Konsep sistem operasi manajemen operasi
- Licenseid=string&content=string&/paramsxml=string
- Konsep dasar sistem operasi
- Dapat menjelaskan tentang kestabilan atom
- Surat at-tin terdiri dari
- Teori caring menurut leiniger
- Peta konsep malin kundang
- Suatu kumpulan instruksi
- File sharing management system
- Hasil bukan operasi contoh
- Reaksi oksidasi dan reduksi
- Fungsi outline
- Graf dan otomata
- Operasi string
- New string
- Const int size=18; string *tb12 = new string[size];
- Public class person
- Contoh peta minda tentang komputer
- Pengertian sistem operasi secara umum
- Management map
- Sistem operasi berbasis windows
- Apa yang dimaksud dengan sistem operasi jaringan
- Vektor home
- Konsep dasar sistem operasi
- Contoh bagan mbs
- Falsafah perusahaan
- Objek politik berkaitan dengan sasaran orientasi
- Anna dara
- File adalah
- Macam macam pasar dalam ekonomi mikro
- Set training objectives
- Perbedaan tujuan dan sasaran
- Pasar sasaran
- Sasaran peserta pengimbasan