• Tidak ada hasil yang ditemukan

Jobsheet Dasar Pemrograman, Bab. 7: String. Bab. 7 S T R I N G

N/A
N/A
Protected

Academic year: 2021

Membagikan "Jobsheet Dasar Pemrograman, Bab. 7: String. Bab. 7 S T R I N G"

Copied!
15
0
0

Teks penuh

(1)

Bab. 7

S T R I N G

7.1 Tujuan Instruksional Khusus

1. Mahasiswa mampu memanfaatkan tipe data String dalam pembuatan program.

2. Mahasiswa mampu menggunakan fungsi puts(), ge ts(), cputs() dan cgets() khususnya dalam input dan output data String.

3. Mahasiswa mampu menggunakan fungsi atof() dan atai untuk mengkonversi string ke integer maupun ke float.

7.2 Pendahuluan

String digunakan untuk menangani data yang bertipe teks, misalnya nama, alamat, dan lain-lain. Di dalam Turbo C, string dianggap sebagai array dari karakter.

7.2.1 Mendeklaras ikan String

Cara meneklarasi string sama seperti mendeklarasikan array dengan tipe karak te r (char).

char nama_variabel [Indeks]

contoh: char nama [10] , artinya string nama akan mampu menampung karakter maksimum sebanyak 19 buah. Mengapa hanya 19 bukan 20?, string ada lah suatu rangka ian karakter yang diakhiri oleh karakter ‘null’. Dengan demikian karakter ‘null’ secara otomatis akan selalu ditambahkan ke dalam string tadi, oleh karena itu tempat yang dapat digunakan untuk menampung karakter yang lain adalah panjang array dikurangi dengan 1. Jadi bila panjang string pada variable nama diperkirakan maksimum terdiri dari 20 karakter, maka pada deklarasi :

char nama [21]

Sebuah catatan singkat: meskipun karakter null (\0) memiliki nilai numeric sama denga n nol (0), namun karakter ini bukan karakter nol (‘0’), karena kedua karakter ini memilki nilai ASCII yang berbeda. Karakter null (‘\0’) memilki nilai ASII sama dengan 0 (dalam heksadesimal atau desimal), sedangkan nol (‘0’) memiliki nilai ASII sama dengan 30. Deklarasi string dapa t dilakukan di da lam suatu fung si seba gai variable local, maupun di luar fungsi sebagai variable global. String dapat pula dideklarasikan sebagai static array.

(2)

7.2.2 Inisialisasi String

Ada dua cara untuk menginisialisai suatu string. Pertama seperti cara menginisialisasi array, misalnya :

char nama[7]={‘T’,’E’,’L’,’K’,’O’,’M’,’\0’};

Karena setiap elemen array bertipe karakter, maka harus diletakkan di antara dua tanda kutip tunggal (‘). Elemen terakhir array harus berupa karakter null (‘\0’).

Cara yang kedua lebih sederhana dari cara yang pertama, yaitu string diletakkan di antara dua tanda kutip (“) tanpa diakhiri oleh karakter null, dan tanpa menggunakan kurung kurawal:

char nama[7]=”TELKOM”;

kedua inisialisasi ini akan memberi hasil yang sama.

7.2.3 Mencetak String

Sama seperti data yang lain, string dapat juga dicetak dengan menggunakan printf. Sebagai penentu tipe (type specifier) dari string digunakan ‘%s’, misalkan :

printf(“\nNama Saya : %s”,”POLINES”);

atau

char nama[7]=”POLIN ES”;

printf(“\nNama Saya : %s”, nama);

Disini variabel array dituliskan namanya saja, tanpa diikuti dengan indeks. Karena dengan menyertaka n indeks anda berarti anda akan mencetak karakter yang menyusun array tadi. Bandingka n contoh diatas de ngan contoh be rikut ini :

char nama[7]=”POLIN ES”;

printf(“\nNama Saya : %s”,nama[1]);

Outputnya :

Nama Saya : O

Bagaimana bila Indeks tidak diikuti dengan bilangan, seperti contoh di bawah ini :

char nama[7]=”POLINES”;

printf(“\nNama Saya : %s”,nama[]);

Bila program ini Anda compile, maka akan terdapat pesan kesalahan yang menyatakan bahwa penulisan pernyataan diatas tidak benar.

(3)

7.2.4 Menginputkan String

String dapat pula diinputkan dengan menggunakan scanf(), misalkan seperti contoh program di bawah ini: /* Menginputkan String */ main() { char nama[15]; clrscr(); printf("\nNama Anda : "); scanf("%s",nama);

printf("\nHallo %s, senang berkenalan dengan Anda", nama); getche();

}

Perhatikan penggunaan scanf() pada contoh di atas:

scanf(“%s”,nama)

disini digunakan nama buka n &nama, Karena pada array, nama variabel yang tidak diikuti dengan indeks menunjukkan alamat dari elemen pertama array tadi, jadi:

nama saya artinya de ngan &nama[0]

Compile da n ke mud ian jalankan contoh tersebut dengan mengisikan nama Aditya.

Nama Anda : Polines

Outputnya akan menjadi :

Hallo Polines, senang be rkenalan denga n Anda

0 1 2 3 4 5 6 7 8 9 10 11 12 13 P o l i n e s

ARRAY

nama

(4)

Coba sekali lagi menginputkan :

Nama Anda : Polines Semarang I ndonesia

Ternyata sekarang outputnya :

Hallo Polines, senang be rkenalan denga n Anda

Dari contoh di atas dapat ditarik suatu kesimpulan: Data yang Anda inputkan dengan menggunkan scanf() tidak boleh mengandung spasi atau tab, karena sebuah data akan dianggap selesai bila scanf() menjumpai spasi atau tab (white space) di antara data tersebut. Sehingga :

Polines Semarang Indonesia Akan diperhitungkan sebagai tiga data.

Untuk mendapatkan hasil yang benar, program di atas dapat dimod ifikasi menjadi : /* Mod ifikasi Input String */

main() { char nama1[15],nama2[15],nama3[15]; clrscr(); printf("\nNama Anda : "); scanf("%s %s %s",nama1,nama2,nama3);

printf("\nHallo %s %s %s, senang berkenalan dengan Anda", nama1, nama2, nama3) ;

getche(); }

Sekarang inputkan :

Nama Anda : Polines Semarang I ndonesia

Dan output nya aka n menjadi :

Hallo Polines Semarang I ndonesia, senang be rkenalan denga n Anda

Meskipun sekarang ouputnya be nar, namun program di atas buka nlah suatu contoh yang baik, karena cara penanganan yang demikian akan menyebabkan membengkaknya penggunaan variabel. Hal ini dapat terlihat jelas dengan membandingkan kedua contoh tadi, dari sebua h contoh variabel (nama) akhirnya menjadi tiga variabel (nama1, nama2, dan nama3). Selain itu, jika nama tidak terdiri dari 3 kata, maka Anda akan mengalami kesulitan dalam menginputkan data tersebut. Untuk mengatasi hal ini akan diperkenalkan penggunaan fungsi input/output lainnya yang khusus untuk menangani data string.

(5)

7.2.5 Fungs i Input dan Output Untuk String

Fungsi input/output yang khusus untuk string, yaitu puts(), ge ts(), cputs() dan cgets(). Fungsi

puts() sebenarnya mirip dengan printf(), yaitu digunakan untuk mencetak string di layar.

puts() berasal dari kata “put string”. Bentuk umum fungsi ini :

puts(string)

String di sini dapat berupa konstanta, seperti :

puts(“Nama Saya Politek”);

atau berbentuk variabel, seperti :

puts(nama)

dimana nama ada lah suatu variabel array untuk string.

Agak sedikit berbeda dengan printf(), string yang dicetak dengan puts() akan selalu diakhiri oleh ‘\n’ yang dibe rika n secara otomatis. Dengan de mikian string berikutnya aka n dicetak pada baris di bawahnya. Misalnya :

puts(“NAMA SAYA : “); puts(“Politek”);

akan menghasilkan output:

NAMA SAYA : Politek

Hal lain yang berbeda adalah puts() hanya dapat digunakan untuk mencetak sebuah string saja, seperti:

puts(“NAMA SAYA : Politek”); SATU STRING

Atau

puts(nama) ;

contoh-contoh berikut ini salah :

puts(“NAMA SAYA : “,” Politek”); DUA STRING puts(“NAMA SAYA : %s”, nama);

(6)

puts() tidak mengenal penentu format (type specifier). Karena fungsi ini sudah dikhususkan untuk string, maka penentu tipe tidak diperlukan lagi.

Berbeda dengan fungsi puts(), fungsi gets() digunakan untuk menginputkan data string. Bentuk umum fungsi ini adalah :

gets(nama_variabel_array);

Contoh :

gets(nama);

Perbedaannya dengan scanf() adalah fungsi gets() ini dapat menerima data string yang mengandung spasi ataupun tab dan masih dianggap sebagai satu kesatuan data. Contoh berikut ini memperhatikan penggunaan fungsi gets() da n puts().

/* Penggunaan Fungsi gets () dan puts () */ main()

{

static char nama [20]; clrscr();

puts ("Nama Anda : "); gets(nama);

puts("Senang berke nalan de ngan Anda : "); puts("nama");

getche(); }

Dengan menginputkan “Telko m”, p rogram ini akan memberikan output sebagai berikut:

Nama Anda ; Telkom

Senang berkenalan denga n Anda, Telkom

Perhatikan dalam program di atas, pada waktu penginputan data 'Telkom', ternyata data ini di tuliskan di bawah 'Nama Anda : ', tampilan semacam ini mungkin kurang enak dilihat. Untuk membuat agar data input tersebut dapat dituliskan langsung di samping 'Nama Anda : ', akan diperkenalkan sebuah fungsi input lainnya, yaitu cputs.

cputs() mirip sekali dengan puts(). hanya pada akhir string tidak diikuti oleh 'return', sehingga string selanjutnya akan dicetak di samping string yang pertama. Contoh :

(7)

cputs("Nama Anda : "); cputs("Telkom");

akan diberikan output : Nama Anda : Telkom Contoh lain :

cputs("Nama Anda : \n"); cputs("Telkom");

akan memberika output : Nama Anda :

Telkom

Perhatikan '\n' disini hanya memindahkan string yang berikutnya ke baris di bawahnya, sedangkan untuk kolomnya tidak dimulai dari awal, melainkan melanjutkan kolom yang telah ada dari baris di atasnya.

Contoh berikutnya :

cputs("Nama Anda : \n\r"); cputs("Telkom");

output yang akan diberikan : Nama Anda :

Telkom

/* Penggunaan fungsi cputs() */ main()

{

static char nama[20]; clrscr();

cputs("Nama Anda : "); gets(nama);

cputs("Senang berkenalan denngan Anda : "); puts(nama);

} Outputnya :

Nama Anda : Telkom

Senang berkenalan dengan Anda, Telkom

cgets() digunakan untuk mennginputkan data string tunggal. Secara umum sifat fungsi ini sama dengan gets() hanya cara menyimpan elemenya berbeda. Bila gets() akan

(8)

menyimpan karakter mulai dari elemen yang pertama, sedangkan cgets() menyimpan karakter mulai pada elemen yang ketiga, elemen yang kedua digunakan untuk menyimpan jumlah karakter yang telah Anda inputkan pada variable tersebut.

0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 gets() cgets()

Untuk memberikan ilustrasi, cobalah program di bawah ini : /* Penggunaan cgets() */ main() { char nama[20]; int i; clrscr(); printf("Nama Anda : "); cgets(nama);

for (i=0; i<20; ++i) {

printf("\nKarakter ke %d : %c nilainya %d",

i+I,nama[i],nama[i]);

}

printf("\nTekan sembarang tombol"); gets();

}

Kemudian cobalah untuk menginputkan data berikut ini : 'P' 'l' 'a' 'c' 'e' '\o' '♠' 'P' 'l' 'a' 'c' 'e' '\o'

(9)

Adhiyoso Andre Pareira Gunawan

Perhatikan nilai karakter kedua, disana akan ditampilkan suatu nilai yang sama dengan jumlah karakter yang Anda ketikkan, kemudian mulai dari karakter ketiga dan seterusnya, Anda dapat melihat data yang Anda inputkan tadi.

Misalkan untuk data : Adhijoso ... Karakter ke 2 : nilainya 8 Karakter ke 3 : A nilainya 65 Karakter ke 4 : d nilainya 100 Karakter ke 5 : h nilainya 104 Karakter ke 6 : i nilainya 105 dst……..

Fungsi gets() dan cgets()bila digunakan bersama-sama dengan scanf()seringkali memberikan hasil yang tidak sempurna, misalnya input data dengan gets() atau cgets()

kadang-kadang dilewati begitu saja, sehingga Anda tidak memiliki kesempatan untuk menginputkan data tersebut. Ditinjau dari segi penggunaan memorinya, fungsi scanf()

membutuhkan memori lebih banyak daripada gets() dan cgets(), oleh karena itu penggunaan kedua fungsi lebih disukai dibandingkan dengan scanf(). Yang menjadi masalah disini adalah gets() dan cgets() hanya digunakan untuk menginputkan data string.

7.2.6 Fungsi atoi() dan atof()

Fungsi atoi() da n atof() sebenarnya merupakan fungsi konversi dari string menjadi numerik. Fungsi ini seringka li digunakan terutama bila data numeric diinputkan dengan menggunakan fungsi gets() atau cgets().

atoi()

Fungsi atoi() merupakan singkatan dari ASCII to Integer, jadi fungsi ini digunakan untuk mengkonversikan string menjadi integer. Berikut ini diberikan sebuah contoh penggunaan

atoi().

/* Penggunaan Fungsi atoi() */ main()

(10)

char x[10]; clrscr();

printf("Inputkan Sebuah Bilangan Bulat ; "); gets(x);

/* konversi String ke Integer */

bil=atoi(x);

printf("\nBilanga n te rsebut : %d", bil); printf("\nBilangan + 10 : %d", bil + 10); getche();

}

Coba jalankan program ini, kemudian inputkan 2500. Pertama '2500' akan diterima sebagai string oleh gets(), kemudian diko nversikan menjadi integer oleh atoi(). O utput dari program ini :

Bilangan tersebut : 2500 Bilangan + 10 : 2510

Dari hasil output kedua (Bilangan + 10), disini terlihat bahwa bil memang telah bertipe numerik.

atof()

fungsi atof() digunakan untuk mengkonversikan data string menjadi float. atof() merupakan singkatan dari ASCII to float. Contoh penggunaan atof() akan diberikan pada program di bawah ini :

/* Penggunaan fungsi atof() */ main()

{

float bil; char x[10]; clrscr();

printf("Inputkan sebuah bilangan : "); gets(x);

/* Konversi String ke Float */ bil=atof(x);

printf("\nBilanga n te rsebut : %.3 f", bil); printf("\nBilangan + 10 : %.3f", bil + 10); getche();

}

output nya aka n menjadi :

Bilangan tersebut : 20.000 Bilangan + 10 : 30.000

(11)

Hasilnya, meskipun ditulis dalam bentuk float, namun sebenarnya berupa integer. Agar hasilnya benar, atof() harus dideklarasika n sebagai float :

float atof()

output program akan menjadi:

Bilangan tersebut : 20.300 Bilangan + 10 : 30.300 7.3 Peralatan 1. 1 set computer 2. Software turbo C 7.4 Langkah Kerja

1. Buatlah program seperti dibawah ini dan simpan dengan nama Con71, kemudian lakukanlah compile dan run, da n catat hasilnya pada lembar kerja yang tersedia.

/* Menginputkan String */ main() { char nama[15]; printf("\nNama Anda : "); scanf("%s",nama);

printf("\nHallo %s, senang berke nalan de ngan Anda", nama); getche();

}

2. Buatlah program seperti dibawah ini dan simpan dengan nama Con72, kemudian lakukanlah compile dan run, dan catat hasilnya pada lembar kerja yang tersedia.

/* Modifikasi Input String */ main()

{

char nama1[15], nama2[15], nama3[15]; clrscr();

printf("\nNama Anda : ");

scanf("%s %s %s",nama1,nama2,nama3);

printf("\nHallo %s %s %s, senang berkenalan dengan Anda",

nama1, nama2, nama3) ;

getche() ; }

(12)

3. Buatlah program seperti dibawah ini dan simpan dengan nama Con73, kemudian lakukanlah compile dan run, dan catat hasilnya pada lembar kerja yang tersedia.

/* Penggunaan Fungsi gets () dan puts () */ main()

{

static char nama [20]; clrscr();

puts ("Nama Anda : "); gets(nama);

puts("Senang berke nalan de ngan Anda : "); puts("nama");

getche(); }

4. Buatlah program seperti dibawah ini dan simpan dengan nama Con74, kemudian lakukanlah compile dan run, dan catat hasilnya pada lembar kerja yang tersedia.

/* Penggunaan fungsi cputs() */ main()

{

static char nama[20]; clrscr();

cputs("Nama Anda : "); gets(nama);

cputs("Senang berkenalan denngan Anda : "); puts(nama);

getche(); }

5. Buatlah program seperti diba wah ini dan simpa n dengan nama Con75, kemudian lakukanlah compile dan run, dan catat hasilnya pada lembar kerja yang tersedia.

/* Penggunaan cgets() */ main() { char nama[20]; int i; clrscr(); printf("Nama Anda : "); cgets(nama);

for (i=0; i<20; ++i) {

(13)

i+I,nama[i],nama[i]); }

printf("\nTekan sembarang tombol"); gets();

}

6. Buatlah program seperti dibawah ini dan simpan dengan nama Con76, kemudian lakukanlah compile dan run, dan catat hasilnya pada lembar kerja yang tersedia.

/* Penggunaan Fungsi atoi() */ main()

{

int bil; char x[10] ; clrscr();

pr intf("Inputka n Sebuah Bilangan Bulat ; "); gets(x);

/* konversi String ke Integer */ bil=atoi(x);

printf("\nBilangan tersebut : %d", bil); printf("\nBilangan + 10 : %d", bil + 10); getche();

}

7. Buatlah program seperti dibawah ini dan simpan dengan nama Con77, kemudian lakukanlah compile dan run, dan catat hasilnya pada lembar kerja yang tersedia.

/* Penggunaan fungsi atof() */ main()

{

float bil; char x[10]; clrscr();

printf("Inputkan sebuah bilangan : "); gets(x);

/* Konversi String ke Float */ bil=atof(x);

printf("\nBilangan tersebut : %.3f", bil);

printf("\nBilangan + 10 : %.3f", bil + 10); getche();

}

7.5 Lembar Kerja

No Nama File Keluaran

(14)

2 3 4 5 6 7

7.6 Pertanyaa n dan Tugas

1. Perbaikilah program berikut ini hingga benar, kesalahan dapat berupa penggunaan perintah/fungsi yang salah, cara menuliskan pernyataan yang salah dan sebagainya:

/* Mengkoreksi program yang salah */ main()

{ char nama[20]; int usia;

printf("\n Inputkan nama anda: "); gets(&nama);

printf("\n Inputkan usia anda: "); scanf("%d",usia);

if (usia=25)

printf("\n Andalah karyawan yang dibutuhkan,%s",nama[20]) }

2. Tentukan output program berikut ini,tanpa mencoba programnya pada computer: main()

{

char nama1[20],nama2[20];

printf("\n Inputkan Nama Anda : "); gets(nama1);

printf("\n Sekali lagi ? : "); gets(nama2); printf("\n%c",nama1 [2]); printf("\n%c",nama2 [2]); printf("\n%d",nama1 [2]); printf("\n%d",nama2 [2]); getche(); }

(15)

Daftar Pustaka

1. Al Fatt, Hanif. Dasar Pemrograman C++

.

Andi O ffset, Jogyakarta, 2007.

2. Hartanto, Jogiyanto. Buku Konsep Dasar Pemrograman Bahasa C. Ando Offset, Jogyakarta, 2006.

3. Kadir, Abdul. Algoritma Pemrograman Menggunakan C++. Andi O ffset, Jogyakarta, 2007.

4. Ngeon, Thomson Susabda . Pengantar Algoritma Dengan Bahasa C. Salemba Infotek, Jakarta, 2006.

5. Nugroho, Adi. Algoritma dan Struktur Dara Dengan C. Andi Offset, Jogyakarta, 2009. 6. Partoharsojo, Hartono. Tuntunan Praktis Pemrograman Bahasa C 2.0. PT Elex Media

Komputindo, Jakarta, Indonesia, 1989.

7. Supardi, Yuniar. Cara Mudah Belajar Bahasa C dan Flow Chart Dalam Praktek. Dinastindo, Jakarta, 2006.

Referensi

Dokumen terkait

Fungsi terkait untuk menangani permasalahan tersebut biasanya pakai trigger mas, namun sepengetahuan saya, di MySQL kita tidak dapat memanipulasi row pada tabel yang

Tabel 3.2 Rute Anggkot Jalur CKL Dari Arah Terminal Landungsari - APK Cemoro Kandang (Rute Pulang)...21 Tabel 3.3 Pembagian Zona Angkot Jalur CKL Berangkat...22 Tabel

Dari hasil penelitian yang peneliti lakukan terhadap Pabrik Rokok Alaina di Dusun Ngantru, Desa Ngantru, Kecamatan Ngantru, Kabupaten Tulungagung. Bahwasanya usaha yang

mengandung satu atau lebih unsur hara yang dibutuhkan untuk pertumbuhan. normal tanaman yang dapat diberikan kepada tanah atau tanaman

Model pembelajaran Means-Ends Analysis (MEA) merupakan salah satu model pembelajaran yang melibatkan peserta didik secara aktif dalam proses kegiatan belajar mengajar,

Dalam pembuatan benda kerja secara masal diperlukan alat bantu yang digunakan untuk membuat lubang yang mempunyai ukuran yang presisi agar diperoleh toleransi geometik

Pemanfaatan kumbang kotoran dalam mengurangi penumpukan kotoran ayam ras petelur memerlukan informasi mengenai aktivitas dan tingkah laku harian kumbang dan

Hasil penelitian ini sesuai dengan penelitian yang dilakukan oleh Masini (2015) menunjukkan Ibu yang berpartisipasi dalam kelas ibu hamil, lebih banyak pada ibu yang