T0616 ALGORITMA DAN PEMROGRAMAN (18) SUBANDIJO UNIVERSITAS BINA NUSANTARA FAKULTAS ILMU KOMPUTER JAKARTA, 2005 7/11/2017 T0616 - Algoritma dan Pemrograman 1 STRING • • • • • • • • • DEFINISI DAN DEKLARASI KARAKTER VS STRING KONSTANTA STRING VS VARIABEL STRING. FUNGSI I/O STRING: GETS(), PUTS(). NILAI AWAL STRING. HEADER FILE STRING.H POINTER DAN STRING KONSTANTA POINTER VS VARIABEL POINTER ARRAY OF STRING 7/11/2017 T0616 - Algoritma dan Pemrograman 2 DEFINISI STRING • STRING C ADALAH ARRAY OF CHARACTER YANG DIAKHIRI DENGAN NULL CHARACTER. • STRING ADALAH SEKUEN KARAKTER YANG DIAPIT OLEH DOUBLE QUOTE “ “. • CHAR S1[ ] = “SAYA BINUSIAN”; • SIMBOL NULL CHARACTER ADALAH ‘\0’ DENGAN NILAI ASCII 0 • NULL CHARACTER OTOMATIS DITAMBAHKAN OLEH SISTEM. • STRING BUKAN TIPE DATA DI C. 7/11/2017 T0616 - Algoritma dan Pemrograman 3 KARAKTER VS STRING • KARAKTER C DIAPIT OLEH SINGLE QUOTE. TIAP KARAKTER MENEMPATI SATU BYTE MEMORI. • ‘A’ ADALAH KARAKTER A • 1 BYTE MEMORI • STRING DIAPIT OEH DOUBLE QUOTE. • “A” ADALAH STRING A • DUA BYTE MEMORI, SATU UNTUK ‘A’ DAN SATU UNTUK ‘\0’ YANG OTOMATIS DITAMBAHKAN OLEH SISTEM. 7/11/2017 T0616 - Algoritma dan Pemrograman 4 KONSTANTA VS VARIABEL STRING • KONSATANTA STRING: • STRING YANG TIDAK DAPAT DIUBAH ISINYA. • “SAYA BINUSIAN” • VARIABEL STRING: • DIINPUT MENGGUNAKAN FUNGSI SCANF() . • TIDAK PERLU OPERATOR ALAMAT ‘&’ KARENA NAMA STRING ISINYA ADALAH ALAMAT. 7/11/2017 T0616 - Algoritma dan Pemrograman 5 KONSTANTA VS VARIABEL STRING • CONTOH #include<stdio.h> main( ) { char namaAnda[21]; printf(“\nInput nama Anda “); scanf(“%s”, namaAnda); Susi printf(“\nNama Anda: %s”, namaAnda); } 7/11/2017 T0616 - Algoritma dan Pemrograman 6 KELEMAHAN SCANF() • MENGGUNAKAN KARAKTER WHITE SPACE UNTUK MENGAKHIRI PEMASUKAN NILAI VARIABEL. • TIDAK DAPAT DIGUNAKAN UNTUK MEMASUKKAN STRING YANG TERDIRI DARI BEBERAPA KATA. • HANYA KATA PERTAMA YANG AKAN DIAMBIL OLEH SCANF(). • MISALKAN scanf(“%s”, namaAnda); DIISI “Susi Andini” MAKA HANYA “Susi” YANG AKAN DIAMBIL. 7/11/2017 T0616 - Algoritma dan Pemrograman 7 FUNGASI I/O STRING: GETS(), PUTS() • FUNGSI GETS() • MEMBACA STRING DARI KEYBOARD. • BERHENTI HANYA JIKA [ENTER] DITEKAN. • SPASI DAN TAB DIANGGAP SEBAGAI BAGIAN DARI STRING. • FUNGSI PUTS() • PASANGAN FUNGSI GETS(). • UNTUK MENCETAK STRING. • TIDAK ADA FASILITAS MENATA FORMAT. 7/11/2017 T0616 - Algoritma dan Pemrograman 8 FUNGASI I/O STRING: GETS(), PUTS() • CONTOH main() { char namaJurusan[21]; puts(“Input nama jurusan Anda”); gets(namaJurusan); puts(“Nama jurusan Anda :”); puts(namaJurusan); } 7/11/2017 T0616 - Algoritma dan Pemrograman 9 NILAI AWAL STRING • KARAKTER INDIVIDUAL DIAPIT OLEH ‘ ‘ • CHAR NAMA[ ] = {‘S’, ‘U’, ‘S’, ‘I’, ‘\0’}; • CHAR NAMA[5] = {‘S’, ‘U’, ‘S’, ‘I’, ‘\0’}; • CHAR NAMA[4] = {‘S’, ‘U’, ‘S’, ‘I’, ‘\0’}; //ERROR • SEKUEN KARAKTER DIAPIT OLEH “ “ • CHAR NAMA[ ] = “SUSI”; • CHAR NAMA[5] = “SUSI”; • CHAR NAMA[4] = “SUSI”; 7/11/2017 T0616 - Algoritma dan Pemrograman //ERROR 10 NILAI AWAL STRING • CONTOH LAIN • CHAR A[ ] = {‘B’, ‘I’, ‘N’, ‘U’, ‘S’}; • CHAR B[ ] = “BINUS”; • CHAR C[8] = “BINUS”; 7/11/2017 T0616 - Algoritma dan Pemrograman //NOT A STRING //OK //OK 11 HEADER FILE STRING.H • BERISI FUNGSI-FUNGSI UNTUK MEMANIPULASI STRING. • STRLEN() : MENGHASILKAN PANJANG STRING. TIDAK MENGHITUNG KARAKTER NULL. • STRLEN(“SUSI”); // 4 • STRCPY(S1,S2) : COPY S2 KE S1. • STRNCPY(S1,S2,N) : COPY N KARAKTER PERTAMA S2 KE S1. 7/11/2017 T0616 - Algoritma dan Pemrograman 12 HEADER FILE STRING.H • • • • • CHAR S1[ ] = “ABCDEF”; CHAR S2[ ] = “XYZ”; STRCPY(S1,S2); S1 = “XYZ”, S2 = “XYZ” STRNCPY(S1,S2,2); S1 = “XYABCDEF”, S2 = “XYZ” STRNCPY(S1,S2,4); JIKA N>=STRLEN(S2) EFEK SAMA DENGAN STRCPY(). S1 = “XYZ”. • STRCAT(), STRNCAT() : “CATENATE” STRING TOGETHER. OPY KE AKHIR STRING. • STRCAT(S1,S2); • STRNCAT(S1,S2,2) 7/11/2017 S1=“ABCDEFXYZ”, S2=“XYZ” S1=“ABCDEFXY”, S2=“XYZ” T0616 - Algoritma dan Pemrograman 13 POINTER DAN STRING #include<stdio.h> main() { static char x [] = “string sebagai array dimensi satu”; char *y = “string sebagai variabel pointer”; printf(“%s”, x); printf(“%s”, y); } • X ADALAH STRING VERSI ARRAY, SEDANGKAN Y ADALAH STRING VERSI POINTER. 7/11/2017 T0616 - Algoritma dan Pemrograman 14 KONSTANTA POINTER VS VARIABEL POINTER • APA BEDA • CHAR *NAMA_FAKULTAS = “FASILKOM”; • DAN • STATIC CHAR NAMA_FAKULTAS [ ] = “FASILKOM”; • YANG PERTAMA ADALAH STRING VERSI POINTER SEDANGKAN YANG KE DUA ADALAH STRING VERSI ARRAY. • VERSI ARRAY ADALAH KONSTANTA POINTER. NILAINYA TIDAK DAPAT DIUBAH. • VERSI POINTER ADALAH VARIABEL POINTER SEHINGGA NILAINYA DAPAT DIUBAH. 7/11/2017 T0616 - Algoritma dan Pemrograman 15 ARRAY OF STRING • VERSI 1: char x[3][5]; 0 0 1 2 1 2 3 'C' '\0' 'C' '+' '+' '\0' 'C' '#' '\0' 7/11/2017 • VERSI 2: char* x[3]; 4 x[0] x[1] x[2] T0616 - Algoritma dan Pemrograman 'C' '\0' 'C' '+' '+' '\0' 'C' '#' '\0' 16 THE END “...ALL YOU NEED IS LOVE…” 7/11/2017 T0616 - Algoritma dan Pemrograman 17
© Copyright 2024 Paperzz