Praktikum 21 – String 1 2016 LAPORAN HASIL TUGAS KONSEP PEMROGRAMAN NAMA : ULFA OCTA PRISNANDA NRP : 21003157029
1. Lakukan percobaan untuk menginputkan string dari keyboard dengan menggunakan scaf(), gets(), dan fgets(). Analisalah dan berikan kesimpulan untuk setiap fungsi tsb. JAWAB :: Listing Program : #include<stdio.h> main() { char teks[31]; printf("Menggunakan scanf() \t= "); scanf("%s", teks); printf("Hasil inputan \t\t= %s", teks); fflush(stdin); printf("\n\n Menggunakan gets() \t= "); gets(teks); printf("Hasil inputan \t\t= %s", teks); fflush(stdin); printf("\n\n Menggunakan fgets() \t= "); fgets(teks, sizeof teks, stdin); printf("Hasil inputan \t\t= %s", teks); fflush(stdin); }
D3 PJJ TEKNIK INFORMATIKA – POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
Page 1
Praktikum 21 – String 1 2016
Output :
Analisa : Untuk melakukan pembacaan kalimat atau string yang dimasukkan oleh user secara manual, program tersebut menyediakan 3 fungsi yaitu ; 1. scanf() kelebihannya : inputan dapat diperoleh sesuai format kita, kekurangannya : tidak dapat membaca karakter setelah spasi. 2. gets() kelebihannya : mudah, tinggal menginputkan variabel array of char sebagai argumen, kekurangannya : tidak mengecek ukuran array dan stringnya, yg bisa mengakibatkan overloaded sehingga bisa ke address yg lain. 3. fgets() kelebihannya : mengecek ukuran arrray jadi tidak overload.
D3 PJJ TEKNIK INFORMATIKA – POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
Page 2
Praktikum 21 – String 1 2016 2. a) Definisikanlah sebuah fungsi untuk menghitung panjang dari string yang menjadi parameternya (misal : pjgstr()) b) Pada fungsi main() terimalah input string yang akan dihitung panjang karakternya. Selanjutnya panggil fungsi pjgstr() untuk mendapatkan panjang string dan tampilkan hasilnya di main() JAWAB :: Listing Program : #include <stdio.h> int pjgstr(char[]); main() { char teks[255]; int jumkar=1; printf("Masukkan kalimat \t= "); gets(teks); jumkar = pjgstr(teks); printf("\n Panjang Karakternya \t= %d\n", jumkar); } int pjgstr(char sesuatu[]) { int i = 0; while(sesuatu[i]) i++; return i; }
D3 PJJ TEKNIK INFORMATIKA – POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
Page 3
Praktikum 21 – String 1 2016 Output :
Analisa : Untuk menghitung panjang karakter yg diinputkan oleh user, kita dapat melakukan looping dengan indeks seperti pada array. String selaluu berakhiran dengan ‘\0’ .
D3 PJJ TEKNIK INFORMATIKA – POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
Page 4
Praktikum 21 – String 1 2016 3. a) Copy-lah program dari soal no.2 . definisikanlah sebuah fungsi untuk membalik string yang menjadi parameternya (misalnya : balikstr()) b) pada fungsi main() terimalah input string yang akan dihitung panjang karakternya dan dibalik. Selanjutnya panggil fungsi pjgstr() dan balikstr() untuk mendapatkan kebalikan dari string input dan tampilkan hasilnya di main() JAWAB :: Listing program : #include <stdio.h> int pjgstr(char[]); void balikstr(char[]); main() { char teks[255]; int jumkar=0,i,j; printf("Masukkan kalimat \t= "); gets(teks); balikstr(teks); printf("Hasil Pembalikkan \t= %s\n", teks); } int pjgstr(char sesuatu[]) { int i = 0; while(sesuatu[i]) i++; return i; } void balikstr(char sesuatu[]) { int i,j=0; char penampung[255]; for(i=pjgstr(sesuatu)-1;i>=0;i--) { penampung[j] = sesuatu[i]; j++; } penampung[j] = '\0'; for(i=0;i<j;i++) sesuatu[i] = penampung[i]; }
D3 PJJ TEKNIK INFORMATIKA – POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
Page 5
Praktikum 21 – String 1 2016 Output :
Analisa : Untuk membalik string / membalik urutan karakter setiap indeksnya, butuh penampung yg digunakan untuk menampung memindah karakter secara terbalik dari yg paling besar.
D3 PJJ TEKNIK INFORMATIKA – POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
Page 6
Praktikum 21 – String 1 2016 4. a) Copy-lah program soal no 2. Definisikanlah sebuah fungsi untuk membaliik string yang menjadi parameternya(misalnya:balikstr()) b) Pada fungsi main() terimalah input string yang akan dihitung panjang karakternya dan dibalik. Selanjutnya panggil fungsi pjgstr() dan balikstr() untuk mendapatkan kebalikan dari string input dan tampilkan hasilnya di main() JAWAB :: Listing Program : #include <stdio.h> int pjgstr(char[]); void copystr(char[],char[]); main() { char teks1[255],teks2[255]; char jumKarakter=0; printf("Masukkan kalimat \t= "); gets(teks1); copystr(teks1,teks2); printf("Hasil Pengcopyan \t= %s\n",teks2); } int pjgstr(char sesuatu[]) { int i = 0; while(sesuatu[i]) i++; return i; } void copystr(char asal[],char tujuan[]) { int i; for(i=0;i
D3 PJJ TEKNIK INFORMATIKA – POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
Page 7
Praktikum 21 – String 1 2016 Output :
Analisa : Proses menyalin harus dilakukan tiap karakter yg ada pada string, tidak dapat dilakukan secara langsung oleh operator assignment(=). Melakukan looping penyalinan karakter dengan urutan/indeks yg sama sampai menemui karakter null (‘\0’).
D3 PJJ TEKNIK INFORMATIKA – POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
Page 8