KONSEP PEMROGRAMAN
“STRING”
NRP : 2110191058
2019
A. PERCOBAAN
1. Ulangilah soal nomor 2, 3 & 4 pada modul prakt String 1 dengan menggunakan
fungsi-fungsi standard (built-in functions).
Jawab :
a. Listing Program
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define maksimal 20
int main()
{
panjangstring(kalimat);
copystring(kalimat);
balikstring(kalimat);
return 0;
}
b. Capture Program
Analisis : Di dalam bahasa C, sebenarnya telah disediakan fungsi bawaan atau built in function
untuk melakukan operasi String. Untuk memanggilnya, yang pertama harus kita lakukan adalah
menyisipkan library string.h pada file c yang kita buat. Selanjutnya, kita tinggal panggil fungsi
yang kita butuhkan seperti fungsi adalah strlen(perhitungan karakter), strcpy(pengcopyan
string), strcat(penggabungan string) dan strcmp(membandingkan string).
2. a. Definisikanlah sebuah fungsi untuk membandingkan dua buah string yang menjadi
parameternya secara CASE SENSITIVE (misalnya : bandingstr1()).
b. Pada fungsi main() terimalah input 2 buah string yang akan dibandingkan. Selanjutnya
panggil fungsi bandingstr1() untuk membandingkan kedua string tsb dan tampilkan hasilnya
di main().
Jawab :
a. Listing Program
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define maksimal 20
int main()
{
hasil=bandingstr1(kalimat,kalimat2);
if(hasil==0)
printf("\nKalimat yang anda masukkan sama ");
else
printf("\nKalimat yang anda masukkan tidak sama");
while (i<strlen(fn_kalimat)||i<strlen(fn_kalimat2))
{
if (fn_kalimat[i]>fn_kalimat2[i])
{
fn_hasil=1;
break;
}
else if (fn_kalimat[i]<fn_kalimat2[i])
{
fn_hasil=-1;
break;
}
i++;
}
return fn_hasil;
}
b. Capture Program
Analisis : Membandingkan dua buah string yang berbeda tidak dapat kita lakukan
secara langsung menggunakan operator (==). Namun kita perlu membandingkan
setiap karakter dalam String secara satu persatu. Karena dalam persoalan ini String
dibandingkan secara CASE SENSITIVE
3. a. Definisikanlah sebuah fungsi untuk membandingkan dua buah string yang menjadi
parameternya secara NON CASE SENSITIVE (misalnya : bandingstr2()).
b. Pada fungsi main() terimalah input 2 buah string yang akan dibandingkan.. Selanjutnya
panggil fungsi bandingstr2() untuk membandingkan kedua string tsb dan tampilkan hasilnya
di main().
Jawab :
a. Listing Program
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define maksimal 30
int main()
{
hasil=bandingstr1(kalimat,kalimat2);
if(hasil==0)
printf("\nKalimat yang anda masukkan sama ");
else
printf("\nKalimat yang anda masukkan tidak sama");
while (i<strlen(fn_kalimat)||i<strlen(fn_kalimat2))
{
if (fn_kalimat[i]>fn_kalimat2[i])
if (fn_kalimat[i]!=fn_kalimat2[i]+32)
{
fn_hasil=1;
break;
}
else if (fn_kalimat[i]<fn_kalimat2[i])
if (fn_kalimat[i]!=fn_kalimat2[i]-32)
{
fn_hasil=-1;
break;
}
i++;
}
return fn_hasil;
}
b. Capture Program
Analisis : Sama halnya dengan soal no 3, membandingkan dua buah string yang
berbeda tidak dapat kita lakukan secara langsung menggunakan operator (==). Namun
kita perlu membandingkan setiap karakter dalam String secara satu persatu. Apalagi di
soal no 3 ini String harus dibandingkan secara INCASE SENSITIVE sehingga
perbedaan huruf kapital ataupun kecil tidak dihiraukan.
Jawab :
a. Listing Program
#include <stdio.h>
#include <string.h>
#define maksimal 30
void bandingstrcmp(char[],char[]);
void bandingstrcmpi(char[],char[]);
main()
{
char kalimat[255],kalimat2[255];
bandingstrcmp(kalimat,kalimat2);
bandingstrcmpi(kalimat,kalimat2);
return 0;
}
void bandingstrcmp(char fn_kalimat [maksimal],char fn_kalimat2[maksimal])
{
int hasil;
hasil = strcmp(fn_kalimat,fn_kalimat2);
if(hasil == 0)
printf("\nPerbandingan dengan strcmp() cocok");
else
printf("\nPerbandingan dengan strcmp() tidak cocok");
}
void bandingstrcmpi(char fn_kalimat [maksimal],char fn_kalimat2[maksimal])
{
int hasil;
hasil = strcmpi(fn_kalimat,fn_kalimat2);
if(hasil == 0)
printf("\nPerbandingan menggunakan strcmpi() menyatakan cocok");
else
printf("\nPerbandingan menggunakan strcmpi() menyatakan tidak cocok");
}
b. Capture Program
c. Analisis Program
Strcmp() akan membandingkan string secara case sensitive, yaitu membandingkan
string yang sama persis untuk huruf capital maupun huruf kecilnya.
Strcmpi() akan membandingkan string secara incase sensitive, yaitu membandingkan
String tanpa menghiraukan huruf besar maupun huruf kecilnya. Penerapannya untuk
membuat fungsi pencarian data yang biasanya huruf kecil dan besar tidak dihiraukan.
C. KESIMPULAN
Array of string merupakan array dua dimensi dari char, dan string dapat dikenai berbagai
macam operasi. String.h merupakan library yang menyimpan fungsi-fungsi yang digunakan
untuk menangani string ataupun substring. Fungsi dalam library string.h antara lain : strcpy,
strlen, strcat, strcmp, strcmpi, dan strchr. Untuk membandingkan dua String apakah sama atau
tidak, kita tidak bisa melakukannya dengan operator, namun harus menggunakan fungsi strcmp
untuk perbandingan string case sensitive dan strcmpi untuk perbandingan string secara incase
sensitive.