Laporan Resmi 21-22 Konsep Pemrograman [String]
November 23, 2017 | Author: Rendra Budi Hutama | Category: N/A
Short Description
String merupakan bentuk data yang biasa dipakai dalam bahasa pemrograman untuk keperluan menampung dan memanipulasi data...
Description
PRAKTIKUM 21 String 1
A. Dasar Teori Konstanta dan Variabel String String merupakan bentuk data yang biasa dipakai dalam bahasa pemrograman untuk keperluan menampung dan memanipulasi data teks, misalnya untuk menampung (menyimpan) suatu kalimat. Pada bahasa C, string bukanlah merupakan tipe data tersendiri, melainkan hanyalah kumpulan dari nilai-nilai karakter yang berurutan dalam bentuk array berdimensi satu. Konstanta String Suatu konstanta string ditulis dengan diawali dan diakhiri tanda petik ganda, misalnya: “ABCDE” Nilai string ini disimpan dalam memori secara berurutan dengan komposisi seperti yang ditunjukkan pada gambar 17.1.
Setiap karakter akan menempati memori sebesar 1 byte. Byte terakhir otomatis akan berisi karakter NULL (\0). Dengan mengetahui bahwa suatu string diakhiri nilai NULL, maka akhir dari nilai suatu string akan dapat dideteksi. Sebagai sebuah array karakter, karakter pertama dari nilai string mempunyai indeks ke-0, karakter kedua mempunyai indeks ke-1, dan seterusnya. Variabel String Variabel string adalah variabel yang dipakai utuk menyimpan nilai string. Misalnya : char name[15];
merupakan instruksi untuk mendeklarasikan variabel string dengan panjang maksimal 15 karakter (termasuk karakter NULL). Deklarasi tersebut sebenarnya tidak lain merupakan deklarasi array bertipe char. Inisialisasi String Suatu variabel string dapat diinisialisasi seperti halnya array yang lain. Namun tentu saja elemen terakhirnya haruslah berupa karakter NULL. Sebagai contoh : char name[] = {'R','I','N', 'I',’\0’};
yang menyatakan bahwa name adalah variabel string dengan nilai awal berupa string : “RINI” . Bentuk inisialisasi yang lebih singkat : char name[] = “RINI”;
Pada bentuk ini, karakter NULL tidak perlu ditulis. Secara implisit akan disisipkan oleh kompiler. Perlu diperhatikan, bila name dideklarasikan sebagai string, penugasan (assignment) suatu string ke variabel string seperti name = “RINI”
adalah tidak diperkenankan. Pengisian string ke variabel string akan dibahas pada sub bab berikutnya. Laporan Resmi Praktikum Konsep Pemrograman : String |RENDRA BUDI HUTAMA
Halaman 1
Memasukkan Data String Pemasukan data string ke dalam suatu variabel biasa dilakukan dengan fungsi gets()atau scanf(). Bentuk umum pemakaiannya adalah sebagai berikut : #include gets(nama_array);
atau #include scanf(“%s”, nama_array);
Perhatikan : - nama_array adalah variabel bertipe array of char yang akan digunakan untuk menyimpan string masukan. - Di depan nama_array tidak perlu ada operator & (operator alamat), karena nama_array tanpa kurung siku sudah menyatakan alamat yang ditempati oleh elemen pertama dari array tsb. - Kalau memakai scanf(), data string masukan tidak boleh mengandung spasi. Perlu diketahui, fungsi gets() akan membaca seluruh karakter yang diketik melalui keyboard sampai tombol ENTER ditekan. Dalam hal ini tidak ada pengecekan terhadap batasan panjang array yang merupakan argumennya. Jika string yang dimasukkan melebihi ukuran array, maka sisa string (panjang string masukan dikurangi ukuran array plus karakter NULL) akan ditempatkan di lokasi sesudah bagian akhir dari array tersebut. Tentu saja kejadian seperti ini bisa menimbulkan hal yang tidak diinginkan, misalnya berubahnya isi variabel yang dideklarasikan sesudah array tersebut karena tertumpuki oleh string yang dimasukkan (overwrite), atau perilaku program yang sama sekali berbeda dengan kemauan user yang dalam hal ini pelacakan kesalahannya (debugging) sangat sulit dilakukan, atau bahkan terjadi penghentian program secara tidak normal. Untuk mengatasi hal itu, disarankan untuk menggunakan fungsi fgets()untuk menggantikan fungsi gets() dalam memasukkan data string. Bentuk umum pemakaian fgets() adalah : #include fgets(nama_array, sizeof nama_array, stdin);
Menampilkan Isi Variabel String Untuk menampilkan isi variabel string, fungsi yang digunakan adalah puts() atau printf(). Bentuk umum pemakaiannya adalah sebagai berikut : #include puts(var_string); atau printf("%s",var_string);
Dalam hal ini var_string adalah sebuah variabel yang berupa sebuah array of char. Fungsi puts() akan menampilkan isi dari var_string dan secara otomatis menambahkan karakter '\n' di akhir string. Sedangkan fungsi printf() akan menampilkan isi variabel string tanpa memberikan tambahan '\n'. Sehingga, agar kedua pernyataan di atas memberikan keluaran yang sama, maka pada pernyataan printf() dirubah menjadi : printf("%s\n", var_string);
Laporan Resmi Praktikum Konsep Pemrograman : String |RENDRA BUDI HUTAMA
Halaman 2
B. Tugas Pendahuluan Soal 1 : Algoritma menggunakan berbagai input untuk string. Deklarasikan teks[] sebagai array of char(String) dengan ukuran 31. 1. 2. 3. 4. 5. 6.
Masukkan teks[] dengan menggunakan scanf(). Tampilkan teks[]. Masukkan teks[] dengan menggunakan gets(). Tampilkan teks[]. Masukkan teks[] dengan menggunakan fgets() dengan batasan 31 di parameternya. Tampilkan teks[].
Soal 2 : Algoritma menghitung panjang String Definisikan fungsi pjgstr() sebagai fungsi bertipe bilangan bulat(int) dengan parameter array of char(String). Deklarasikan teks[] sebagai array of char(String) dengan ukuran 255 dan jumKarakter sebagai bilangan bulat. 1. Masukkan kalimat ke teks[]. 2. Panggil fungsi pjgstr() dengan teks sebagai parameternya, simpan hasil keluaran fungsi di jumKarakter. 3. Tampilkan jumKarakter. Algoritma fungsi pjgstr() Posisikan nilai sesuatu[] sebagai teks[] dengan tipe array of char. Deklarasikan i sebagai bilangan bulat dengan nilai 0. 1. Jika sesuatu[i] tidak sama dengan “\0” maka lakukan langkah 2, bila tidak langsung ke langkah 3. 2. Naikkan nilai i sebanyak 1, kembali ke langkah 1. 3. Kembalikan nilai i ke pemanggil. Soal 3 : Algoritma membalikkan urutan String Definisikan fungsi balikstr() sebagai fungsi bertipe void dengan parameter array of char. Definiskan pula pjgstr() sebagai fungsi bertipe bilangan bulat(int) dengan parameter array of char(String). Deklarasikan teks[] sebagai array of char(String) dengan ukuran 255. 1. Masukkan kalimat ke teks[] 2. Panggil fungsi balikstr() dengan teks sebagai parameternya 3. Tampilkan teks. Algoritma fungsi balikstr() Posisikan sesuatu[] sebagai teks[] dengan tipe array of char. Deklarasikan i dan j sebagai bilangan bulat(int). Inisiasi nilai j dengan 0. Deklarasikan pula penampung[] sebagai array of char(String) dengan ukuran 255. 1. Panggil fungsi pjgstr() dengan sesuatu sebagai parameternya. Simpan hasil keluaran fungsi yan telah dikurangi dengan angka 1 di i. 2. Berikan / salin nilai sesuatu[i] ke penampung[i] 3. Naikkan nilai j sebanyak 1 Laporan Resmi Praktikum Konsep Pemrograman : String |RENDRA BUDI HUTAMA
Halaman 3
4. Turunkan nilai i sebanyak 1 5. Jika i lebih dari atau sama dengan 0 maka kembali ke langkah 2, bila tidak maka ke langkah 6 6. Berikan nilai ‘\0’ kepada penampung[j] 7. Berikan nilai i dengan angka 0 8. Berikan / salin nilai penampung[i] ke sesuatu[i] 9. Naikkan nilai i sebanyak 1 10. Jika nilai i kurang dari j maka kembali ke langkah 8, bila tidak maka fungsi berhenti Algoritma fungsi pjgstr() Posisikan nilai sesuatu[]sebagai teks[] dengan tipe array of char. Deklarasikan i sebagai bilangan bulat dengan nilai 0. 1. Jika sesuatu[i] tidak sama dengan “\0” maka lakukan langkah 2, bila tidak langsung ke langkah 3. 2. Naikkan nilai i sebanyak 1, kembali ke langkah 1. 3. Kembalikan nilai i ke pemanggil. Soal 4 : Algoritma menyalin / mengcopy String Definisikan fungsi copystr() sebagai fungsi bertipe void dengan parameter array of char. Definiskan pula pjgstr() sebagai fungsi bertipe bilangan bulat(int) dengan parameter array of char(String). Deklarasikan teks1[] dan teks2[] sebagai array of char(String) dengan ukuran 255. 1. Masukkan kalimat ke teks1[]. 2. Panggil fungsi balikstr() dengan teks1 dan teks2 sebagai parameternya. 3. Tampilkan teks2[]. Algoritma fungsi balikstr() Posisikan asal[] sebagai teks1[] dan tujuan[] sebagai teks2[] dengan tipe array of char. Deklarasikan i sebagai bilangan bulat(int). 1. 2. 3. 4.
Inisiasi nilai i dengan angka 0 Berikan / salin nilai asal[i] ke tujuan[i] Naikkan nilai i sebanyak 1 Gunakan fungsi pjgstr() untuk menghitung panjang karakter teks1. Jika nilai i kurang dari panjang karakter tadi maka kembali ke langkah 8, bila tidak maka fungsi berhenti.
Algoritma fungsi pjgstr() Posisikan nilai sesuatu[]sebagai teks[] dengan tipe array of char. Deklarasikan i sebagai bilangan bulat dengan nilai 0. 1. Jika sesuatu[i] tidak sama dengan “\0” maka lakukan langkah 2, bila tidak langsung ke langkah 3. 2. Naikkan nilai i sebanyak 1, kembali ke langkah 1. 3. Kembalikan nilai i ke pemanggil.
Laporan Resmi Praktikum Konsep Pemrograman : String |RENDRA BUDI HUTAMA
Halaman 4
C. Percobaan 1. Lakukan percobaan untuk menginputkan string dari keyboard dengan menggunakan scanf(), gets() dan fgets(). Analisislah dan berikan kesimpulan untuk setiap fungsi tsb. a. Listing Program #include main() { char teks[31]; printf("PRAKTIKUM 21 SOAL 1\nRENDRA | 2110131036 | 1D4ITB\n"); printf("\n======================================== \n"); printf("Menggunakan Fungsi yang Berkaitan dgn String\n"); printf("========================================== \n\n"); printf("Menggunkaan scanf() \t= "); scanf("%s",teks); printf("Hasil inputan \t\t= %s",teks); fflush(stdin); printf("\n\nMenggunkaan gets() \t= "); gets(teks); printf("Hasil inputan \t\t= %s",teks); fflush(stdin); printf("\n\nMenggunkaan fgets() \t= "); fgets(teks, sizeof teks, stdin); printf("Hasil inputan \t\t= %s",teks); fflush(stdin); }
b. Capture Program
c. Analisis Program Untuk melakukan pembacaan kalimat atau string yang dimasukkan secara manual oleh user, Bahasa C menyediakan 3 cara menggunakan fungsi yang berbeda-beda. Fungsi pertama adalah fungsi scanf(), keunggulan dari fungsi ini adalah inputan dapat diperoleh sesuai format yang kita inginkan, namun kelemahannya fungsi ini tidak dapat membaca karakter setelah karakter spasi. Fungsi kedua adalah fungsi gets(), fungsi ini sangat mudah digunakan. Tinggal memasukkan variable array of char sebagai argumennya. Namun kelemahannya, fungsi gets() tidak mengecek ukuran array dari stringnya. Sehingga berpotensi terjadi overloaded yang berakibat data akan meluber ke address yang lain.
Laporan Resmi Praktikum Konsep Pemrograman : String |RENDRA BUDI HUTAMA
Halaman 5
Dan fungsi yang ketiga serta terakhir adalah fgets(), fungsi cukup ribet digunakan, namun keuntungannya fungsi fgets() mengecek ukuran array yang menjadi parameternya sehingga overloaded data tidak akan bisa terjadi. 2. a. Definisikanlah sebuah fungsi untuk menghitung panjang dari string yang menjadi parameternya (misalnya : 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() a. Listing Program #include int pjgstr(char[]); main() { char teks[255]; printf("PRAKTIKUM 21 SOAL 2\nRENDRA | 2110131036 | 1D4ITB\n"); printf("\n======================================== \n"); printf("Fungsi untuk menghitung panjang String\n"); printf("========================================== \n\n"); printf("Masukkan kalimat \t= "); gets(teks); jumKarakter = pjgstr(teks); printf("\nPanjang karakternya \t= %d",jumKarakter); } int pjgstr(char sesuatu[]) { int i = 0; while(sesuatu[i]) i++; return i; }
b. Capture Program
c. Analisis Program Untuk menghitung panjang String, perlu kita matangkan konsep bahwa string sejatinya adalah array of char. Sehingga untuk menghitung panjang karakternya, kita dapat melakukan looping dengan indeks seperti pada array. Hal yang cukup penting disini adalah setiap String selalu berakhiran dengan karakter ‘\0’. Dengan adanya pembatas tersebut perhitungan karakter sangat mudah dilakukan yaitu hanya cukup dengan melakukan serta menghitung banyaknya looping / pengulangan dari indeks ke-0 sampai bertemu dengan karakter tersebut.
Laporan Resmi Praktikum Konsep Pemrograman : String |RENDRA BUDI HUTAMA
Halaman 6
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() a. Listing Program #include int pjgstr(char[]); void balikstr(char[]); main() { char teks[255]; int jumKarakter=0,i; printf("PRAKTIKUM 21 SOAL 2\nRENDRA | 2110131036 | 1D4ITB\n"); printf("\n======================================== \n"); printf("Fungsi untuk membalikkan String\n"); printf("========================================= \n\n");
printf("Masukkan kalimat \t= "); gets(teks); balikstr(teks); printf("Hasil pembalikan \t=%s",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
View more...
Comments