Anda di halaman 1dari 15

Jobsheet Dasar Pemrograman, Bab.

7: String

Bab. 7
STR ING
7.1 Tujuan Instruksional Khusus
1.

Mahasiswa mampu memanfaatkan tipe data String dalam pembuatan program.

2.

Mahasiswa mampu menggunakan fungsi puts(), gets(), 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 lainlain. 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 karakte 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.

Hal.97

Jobsheet Dasar Pemrograman, Bab. 7: String

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]=POLINES;
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]=POLINES;
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.
Hal.98

Jobsheet Dasar Pemrograman, Bab. 7: String

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
P

6
7
8

ARRAY
nama

9
10
11
12
13
14

Hal.99

Jobsheet Dasar Pemrograman, Bab. 7: String

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 dimodifikasi menjadi :
/* 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();
}
Sekarang inputkan :
Nama Anda : Polines Semarang I ndonesia

Dan outputnya 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.

Hal.100

Jobsheet Dasar Pemrograman, Bab. 7: String

7.2.5

Fungs i Input dan Output Untuk String

Fungsi input/output yang khusus untuk string, yaitu puts(), gets(), 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);
DUA STRING

Hal.101

Jobsheet Dasar Pemrograman, Bab. 7: String

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 Telkom, program 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 :

Hal.102

Jobsheet Dasar Pemrograman, Bab. 7: String

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

Hal.103

Jobsheet Dasar Pemrograman, Bab. 7: String

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.
'P'
'l'
'a'
'c'
'e'
'\o'

0
2
3
4
5
6
7
8
9
10
11
12
13

''
'P'
'l'
'a'
'c'
'e'
'\o'

12

gets()

1
2
3
4
5
6
7
8
9
10
11
13

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 :
Hal.104

Jobsheet Dasar Pemrograman, Bab. 7: String

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 :
Karakter ke 3 : A
Karakter ke 4 : d
Karakter ke 5 : h
Karakter ke 6 : i
Fungsi gets()

nilainya
nilainya
nilainya
nilainya
nilainya

8
65
100
104
105 dst..

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()
{ int bil;
Hal.105

Jobsheet Dasar Pemrograman, Bab. 7: String

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 dikonversikan menjadi integer oleh atoi(). Output 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();
}
outputnya aka n menjadi :
Bilangan tersebut : 20.000
Bilangan + 10
: 30.000
Hal.106

Jobsheet Dasar Pemrograman, Bab. 7: String

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() ;
}

Hal.107

Jobsheet Dasar Pemrograman, Bab. 7: String

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)
{
printf("\nKarakter ke %d : %c nilainya %d",
Hal.108

Jobsheet Dasar Pemrograman, Bab. 7: String

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

Hal.109

Jobsheet Dasar Pemrograman, Bab. 7: String

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();
}
Hal.110

Jobsheet Dasar Pemrograman, Bab. 7: String

Daftar Pustaka
++

1. Al Fatt, Hanif. Dasar Pemrograman C . Andi Offset, Jogyakarta, 2007.


2. Hartanto, Jogiyanto. Buku Konsep Dasar Pemrograman Bahasa C. Ando Offset,
Jogyakarta, 2006.
3. Kadir, Abdul. Algoritma Pemrograman Menggunakan C++. Andi Offset, 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.

Hal.111

Anda mungkin juga menyukai