Praktikum 22 – String 2 2016 LAPORAN HASIL TUGAS KONSEP PEMROGRAMAN NAMA : ULFA OCTA PRISNANDA NRP : 21003157029
1. Ulangilah soal nomor 2,3,&4 pada modul praktikum string1 dengan menggunakan fungsi-fungsi standart(built-in function) JAWAB :: Listing Program : #include <stdio.h> #include <string.h> main() { char teks1[255],teks2[255],hslBalik[255]; printf("Masukkan kalimat\t="); gets(teks1); printf("\nPanjang kalimat \t= %d karakter",strlen(teks1)); printf("\nHasil Pembalikan \t= %s\n",strrev(teks1)); strcpy(teks2,teks1); printf("\nHasil Pencopyan \t=%s",teks2); } int pjgstr(char sesuatu[]) { int i = 0; while(sesuatu[i]) i++; return i; }
D3 PJJ TEKNIK INFORMATIKA – POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
Page 1
Praktikum 22 – String 2 2016 Output :
Analisa : Fungsi built-in function sudah ada dalam bahasa c sendiri. Untuk memanggil fungsi tsb, kita harus menyisipkan pada header library yaitu <string.h> . selanjutnya silahkan masukkan fungsi yg dibutuhkan misal; strlen(menghitung kar), strcpy(copy string), strcat(menggabung string), dan strcmp(membandingkan string).
D3 PJJ TEKNIK INFORMATIKA – POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
Page 2
Praktikum 22 – String 2 2016 2. a) definisikanlah sebuah fungsi untuk membandingkan dua buah string yang menjadi perameternya secara CASE SENSITIVE (misal: bandingstr1()) b) Pada fungsi main() untuk membandingkan kedua string tsb dan tampilkan hasilnya di main() JAWAB :: Listing program : #include <stdio.h> #include <string.h> int bandingstr1(char teks1[255],char teks2[255]); main() { char teks1[255],teks2[255]; int hslBanding; printf("\tMasukkan kalimat pertama\t = "); gets(teks1); printf("\tMasukkan kalimat kedua\t = "); gets(teks2); hslBanding = bandingstr1(teks1,teks2); if(hslBanding == 0) printf("\nKalimat yang anda masukkan diatas SAMA\n"); else printf("\nKalimat yang anda masukkan diatas TIDAK SAMA\n"); } int bandingstr1(char kal1[], char kal2[]) { int i,sama = 0; for(i=0;i<strlen(kal1) || i<strlen(kal2);i++) { if(kal1[i] > kal2[i]) { sama = 1; break; } else if(kal1[i] > kal2[i]) { sama = -1; break; } i++; } return sama; }
D3 PJJ TEKNIK INFORMATIKA – POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
Page 3
Praktikum 22 – String 2 2016 Output :
Analisa : Membandingkan setiap karakter dalam string dengan satu persatu, tidak bisa menggunakan operator (==).
D3 PJJ TEKNIK INFORMATIKA – POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
Page 4
Praktikum 22 – String 2 2016 3. a) Definisikanlah sebuah fungsi untuk membandingkan dua buah string yang menjadi parameternya secara NON CASE SENSITIVE (misal: bandingstr2()) b) Pada fungsi main() terimalah input 2 buah string yang dibandingkan. Selanjutnya panggil fungsi bandingstr2() untuk membandingkan kedua string tsb dan tampilkan hasilnya di main() JAWAB :: Listing Program : #include <stdio.h> #include <string.h> int bandingstr2(char teks1[255],char teks2[255]); main() { char teks1[255],teks2[255]; int hslBanding; printf("\tMasukkan kalimat pertama\t gets(teks1); printf("\tMasukkan kalimat kedua\t gets(teks2);
= "); = ");
hslBanding = bandingstr2(teks1,teks2); if(hslBanding == 0) printf("\nKalimat yang anda masukkan diatas SAMA\n"); else printf("\nKalimat yang anda masukkan diatas TIDAK SAMA\n"); } int bandingstr2(char kal1[], char kal2[]) { int i,sama = 0; for(i=0;i<strlen(kal1) || i<strlen(kal2);i++) { if(kal1[i] > kal2[i]) { if(kal1[i] !=kal2[i]+32) { sama = 1; break; } } else if(kal1[i] > kal2[i]) { if(kal1[i] !=kal2[i]-32) { sama = -1; break; D3 PJJ TEKNIK INFORMATIKA – POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
Page 5
Praktikum 22 – String 2 2016 } } } return sama; }
Analisa : Sama halnya dengan nomor 2, membandingkan setiap karakter dalam string dengan satu persatu, tidak bisa menggunakan operator (==). Namun di nomor 3 ini menggunakan NON CASE SENSETIVE.
D3 PJJ TEKNIK INFORMATIKA – POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
Page 6
Praktikum 22 – String 2 2016 4. lakukan percobaan untuk membandingkan 2 buah string dengan menggunakan fungsi strcmp() dan strcmpi(). Analisislah dan berikan kesimpulan tentang perbedaan dan contoh aplikasi untuk keduanya. JAWAB :: Listing Program : #include <stdio.h> #include <string.h> int bandingstr2(char teks1[255],char teks2[255]); main() { char teks1[255],teks2[255]; int hasilC,hasilCi; printf("\tMasukkan kalimat pertama\t= "); gets(teks1); printf("\tMasukkan kalimat kedua\t = "); gets(teks2); hasilC = strcmp(teks1,teks2); hasilCi = strcmpi(teks1,teks2); if(hasilC == 0) printf("\nPerbandingan menggunakan strcmp() menyatakan cocok\n"); else printf("\nPerbandingan menggunakan strcmp() menyatakan tidak cocok\n"); if(hasilCi == 0) printf("\nPerbandingan menggunakan strcmp() menyatakan cocok\n"); else printf("\nPerbandingan menggunakan strcmp() menyatakan tidak cocok\n"); }
Analisa : Fungsi strcmp() akan membandingkan string secara CASE SENSITIVE, yaitu string yg sama persis untuk huruf kapital ataupun kecil. Sedangkan fungsi strcmpi() akan membandingkan string dengan INCASE SENSITIVE, yaitu membandingkan string tanpa menghiraukan huruf besar maupun kecil. Untuk membuat fungsi pencarian data yg biasanya kecil, yg besar tidak dihiraukan.
D3 PJJ TEKNIK INFORMATIKA – POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
Page 7