Praktikum 7
STRING A. TUJUAN 1. Menjelaskan tentang konsep string 2. Menjelaskan operasi I/O pada string. 3. Menjelaskan cara mengakses elemen string 4. Menjelaskan berbagai fungsi mengenai string
B. PERCOBAAN 1. Memasukkan data string dari keyboard /* File program : nama.c */ #include <stdio.h> #define MAKS 15 main() { char nama[MAKS]; printf("Masukkan nama Anda : "); gets(nama); printf("\nHalo, %s.
Selamat belajar string.\n", nama);
}
2. Variasi dalam menginisialisasi string. /* File program : initStr.c */ #include <stdio.h> void bentuk1(void); void bentuk2(void); main() { bentuk1(); bentuk2(); }
36
void bentuk1(void) { char kompiler_c[] = {'V','i','s','u','a','l',' ','C','+','+','\0'}; puts(kompiler_c); } void bentuk2(void) { char kompiler_c[] = "Visual C++"; printf("%s\n", kompiler_c); } 3. Menghitung banyaknya karakter dari suatu string yang dimasukkan melalui keyboard. /* File Program : hitkar.c */ #include <stdio.h> #define MAKS 256 main() { int i, jumkar; char teks[MAKS]; puts("Masukkan suatu kalimat (maks 255 karakter)."); puts("Saya akan menghitung jumlah karakternya.\n"); fgets(teks, sizeof teks, stdin); jumkar = 0; for(i=0; teks[i]; i++) jumkar++; printf("\nJumlah karakter = %d\n", jumkar); }
4. Menyalin sebuah string masukan. /* File program : salinstr1.c */ #include <stdio.h> #define MAKS 256 main() { int i = 0; char keterangan[MAKS], kalimat[MAKS];
37
printf("Masukkan kalimat yang mau disalin :\n"); fgets(keterangan, sizeof keterangan, stdin); while (keterangan[i] != '\0') { kalimat[i] = keterangan[i]; i++; } kalimat[i] = '\0';
/* beri karakter NULL */
printf("\nIsi salinan kalimat :\n%s\n", kalimat); }
5. Menyalin isi string1 ke string2 menggunakan fungsi strcpy(). /* File program :salinstr2.c */ #include <stdio.h> #include <string.h> main() { char str1[80]; char str2[]="ABCDE"; strcpy(str1, str2); /* menyalin isi str2 ke str1 */ printf("String pertama adalah : %s\n", str1); printf("String kedua adalah : %s\n", str2); }
6. Menghitung suatu string masukan menggunakan fungsi strlen(). /* File program : panjangstr.C */ #include <stdio.h> #include <string.h> #define MAKS 256 main() { char kal[MAKS]; printf("Masukkan kalimat yang akan dihitung panjangnya :\n"); fgets(kal, sizeof kal, stdin); printf("\nPanjang string tsb = %d karakter\n", strlen(kal)); }
38
7. Menggabungkan isi string1 dengan string2 menggunakan fungsi strcat(). /* File program :gabungstr.c */ #include <stdio.h> #include <string.h> #define PJG 15 main() { char str1[PJG], str2[PJG]; strcpy(str1, "sala"); strcpy(str2, "tiga");
/* str1 diisi "sala" */ /* str2 diisi "tiga" */
strcat(str1, str2);
/* tambahkan str2 ke akhir st1 */
printf("str1 --> %s
str2 --> %s\n", str1, str2);
}
8. Membandingkan isi string1 dengan string2 menggunakan fungsi strcmp(). /* File program : bandingstr1.c */ #include <stdio.h> #include <string.h> main() { char string1[]="ABcde"; char string2[]="ABCDE"; int hasil; hasil = strcmp(string1, string2); if(hasil == 0) printf("String1 sama dengan string2\n"); else if(hasil < 0) printf("String1 lebih kecil dari string2\n"); else printf("String1 lebih besar dari string2\n"); }
9. Membandingkan isi string1 dengan string2 menggunakan fungsi strcmp(). /* File program : bandingstr2.c */ #include <stdio.h> #include <string.h> main()
39
{ char str1[]="HALO"; char str2[]="Halo"; char str3[]="HALO"; printf("Hasil pembandingan %s dengan %s --> %d\n", str1, str2, strcmp(str1, str2)); printf("Hasil pembandingan %s dengan %s --> %d\n", str2, str1, strcmp(str2, str1)); printf("Hasil pembandingan %s dengan %s --> %d\n", str1, str3, strcmp(str1, str3)); }
10. Mencari karakter dalam sebuah string menggunakan fungsi strchr(). /* File program : carikar.c */ #include <stdio.h> #include <string.h> main() { char str[]="ABcde"; char *hasil1; char *hasil2; hasil1 = strchr(str, 'B'); hasil2 = strchr(str, 'X'); printf("Dari string ABcde\n"); printf("Mencari karakter B = %s\n", hasil1); printf("Mencari karakter X = %s\n", hasil2); }
11. String sebagai parameter fungsi /* File program : kiri.c */ #include <stdio.h> #include <string.h> #define MAKS 30 void strkiri(char [], int, char []); main() { char kata[MAKS], tampung[MAKS]; int pj, i;
40
printf("Kata yang ditampilkan : "); scanf("%s",kata); pj = strlen(kata); printf("\n"); for (i=pj; i>0; i--) { strkiri(kata, pj-i, tampung); printf("%s\n", tampung); } printf("\n"); } void strkiri(char asal[], int n, char hasil[]) { int i; for(i=0; i<=n; i++) hasil[i] = asal[i]; hasil[i] = '\0';
/* beri karakter NULL */
}
C. SOAL
1. Buat program untuk membalik string masukan. Input
: string masukan
Output : hasil pembalikan string masukan
Contoh : Kalimat yang mau dibalik : Saya sedang belajar C Hasil pembalikan kalimat : C rajaleb gnades ayaS (Petunjuk : gunakan fungsi strlen() untuk mendapatkan panjang kalimat)
41
2. Buat program untuk menghasilkan keluaran sbb : POLITEKNIK POLITEKNI POLITEKN POLITEK POLITE POLIT POLI POL PO P Petunjuk : - gunakan fungsi strlen() untuk menghitung panjang string yang prototypenya ada di file <string.h> - gunakan function call (pemanggilan fungsi) - index array dimulai dari indeks ke-0
3. Modifikasilah program pada soal nomor 2 untuk mendapatkan keluaran sbb : P PO POL POLI POLIT POLITE POLITEK POLITEKN POLITEKNI POLITEKNIK
4. Buatlah program untuk mengecek kalimat yang diinputkan oleh pengguna dari keyboard, apakah kami apakah kalimat tsb palindrom ataukah bukan.
Contoh tampilan : Kalimat : KASUR RUSAK Termasuk PALINDROM Kalimat : MAKAN MALAM Bukan PALINDROM
42
Catatan : disebut palindrom adalah bila urutan kalimat dibalik akan menghasilkan kalimat yang sama. Gunakan berbagai fungsi berkaitan dengan string yang sudah dijelaskan di atas.
43