0% menganggap dokumen ini bermanfaat (0 suara)
13 tayangan35 halaman

09 String

Dokumen ini membahas tentang pemrograman string dalam bahasa C, termasuk konstanta string, variabel string, dan cara memasukkan serta menampilkan data string. Selain itu, dijelaskan juga berbagai fungsi dan makro untuk manipulasi karakter dan string, seperti strcpy(), strlen(), dan strcmp(). Terakhir, dokumen ini mencakup penggunaan array string dan pengurutan data string.

Diunggah oleh

ypurbolingga
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
13 tayangan35 halaman

09 String

Dokumen ini membahas tentang pemrograman string dalam bahasa C, termasuk konstanta string, variabel string, dan cara memasukkan serta menampilkan data string. Selain itu, dijelaskan juga berbagai fungsi dan makro untuk manipulasi karakter dan string, seperti strcpy(), strlen(), dan strcmp(). Terakhir, dokumen ini mencakup penggunaan array string dan pengurutan data string.

Diunggah oleh

ypurbolingga
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 35

Pemrograman Dasar dan Lab

String

1
Agenda
1. String Constants
2. String Variable
3. Entering String Data from the Keyboard
4. String Initialization
5. Displays the contents of String variable to the Screen
6. Accessing String Elements
7. Some Facilities for Character Operation
8. Some Functions on String
9. String as Function Parameter
10. Array of String

2
String Constants
Suatu konstanta string ditulis dengan diawali dan
diakhiri dengan tanda petik ganda. Misal:
"Bahasa C"
Konstanta string di atas disimpan dalam memori
secara berurutan dengan komposisi :

Setiap karakter akan menempati memori 1 byte.


Byte terakhir secara otomatis akan berisi karakter
NULL (\0).
3
String Variable
Variabel string adalah variabel yang dipakai
untuk menyimpan string, misalnya :
char nama[15];
merupakan instruksi untuk mendeklarasikan
variabel string dengan panjang maksimal
mengandung 15 karakter (termasuk karakter
NULL). Deklarasi di atas sebenarnya adalah
deklarasi array bertipe char.

4
Entering String Data from the Keyboard

Pemasukan data string ke dalam suatu variabel biasa


dilakukan dengan memakai gets(). Bentuk umum
pemakaiannya :
gets(nama_array);
Jika memakai scanf(), instruksinya berupa :
scanf("%s", nama_array);
Didepan nama array tidak perlu ada operator & (operator
alamat), karena nama array tanpa kurung siku untuk
menyatakan alamat.
Jika memakai scanf(), data string masukan tidak bisa
mengandung spasi.
Prototipe gets() ada pada file stdio.h
5
Entering String Data from the Keyboard
(next…)
#include <stdio.h>
main()
{
char nama[21];
printf("Nama : ");
gets(nama);
printf("Halo %s. Selamat belajar string.\n", nama);
}

Hasil Eksekusi Program :


Nama : Meiyanto Eko Sulistyo
Halo Meiyanto Eko Sulistyo. Selamat belajar string.
6
String Initialization
Suatu variabel string dapat diinisialisasi seperti
halnya array yang lain, elemen terakhir harus
berupa karakter NULL. Misal :
char kata[] = {‘b', 'a', 'h', 'a', 's', 'a', '', 'C', '\0'};
menyatakan kata adalah variabel string dengan
nilai awal berupa string "bahasa C".
Bentuk inisialisasi yang lebih singkat :
char kata[] = "bahasa C";
Pada bentuk ini, karakter NULL tidak perlu ditulis,
secara implisit akan disisipkan oleh kompiler.
7
Displays the contents of String variable to the Screen

Untuk menampilkan isi variabel string,


pernyataan yang dapat digunakan berupa
salah satu diantara pernyataan berikut :
puts(variabel_string);
printf("%s", variabel_string);
printf(variabel_string);

8
Displays the contents of String variable to the Screen
(next…)
#include <stdio.h>
void bentuk1(void), bentuk2(void);
main()
{
bentuk1(), bentuk2();
}
void bentuk1(void)
{
char kata[] = { 'b', 'a', 'h', 'a', 's', 'a', ' ', 'C', '\0' }; puts(kata);
}
void bentuk2(void)
{
char kata[] = "bahasa C"; puts(kata);
}

Hasil Eksekusi Program :


bahasa C
bahasa C
9
Accessing String Elements
Variabel string merupakan bentuk khusus
dari array bertipe char. Oleh karena itu,
elemen dari variabel string dapat diakses
seperti halnya pengaksesan elemen pada
array. Contoh program berikut menunjukkan
cara mengakses elemen array untuk
menghitung total karakter dari string yang
dimasukkan melalui keyboard

10
Accessing String Elements
(next…)
#include <stdio.h>
#define maksimum 256
main()
{
int i, jumlah_karakter;
char kalimat[maksimum];
printf("Masukkan sebuah kalimat = ");
gets(kalimat);
jumlah_karakter = 0;
for (i=0; kalimat[i]; i++)
jumlah_karakter++;
printf("Jumlah karakter = %d\n", jumlah_karakter);
}

Hasil Eksekusi Program :


Masukkan sebuah kalimat = MEkoS
Jumlah karakter = 5
11
Accessing String Elements
(next…)
#include <stdio.h>
main()
{
int i;
char keterangan[] = "Saya menyukai bahasa C", kalimat[30];
i = 0;
while (keterangan[i] != '\0')
{
kalimat[i] = keterangan[i];
i++;
}
kalimat[i] = '\0';
printf("Isi kalimat = %s\n", kalimat);
}

Hasil Eksekusi Program :


Isi kalimat = Saya menyukai bahasa C
12
Some Facilities for Character Operation

Bahasa C menyediakan sejumlah makro


berargumen (sejenis fungsi, tapi didefinisikan
dengan menggunakan pengarah praprosesor
#define) dan fungsi yang berkaitan dengan
data karakter. Fasilitas ini sangat bermanfaat
untuk keperluan pemanipulasian string, yaitu :
isalnum(), isalpha(), isdigit(), islower(),
isupper(), tolower(), dan toupper().

13
Some Facilities for Character Operation
(next…)
isalnum()
isalnum() didefinisikan pada file judul ctype.h.
Bentuk :
int isalnum(int c);
isalnum() merupakan makro yang akan
menghasilkan nilai benar (bukan nol), jika c
adalah sebuah huruf (kapital atau kecil) atau
berupa sebuah karakter digit (‘0’ samapai ‘9’).

14
Some Facilities for Character Operation
(next…)
isalpha()
isalpha() didefinisikan pada file judul ctype.h.
Bentuk :
int isalpha(int c);
isalpha() merupakan makro yang akan
menghasilkan nilai benar (bukan nol) jika c
adalah sebuah huruf (kapital atau kecil).

15
Some Facilities for Character Operation
(next…)
isdigit()
isdigit() didefinisikan pada file judul ctype.h.
Bentuk :
int isdigit(int c);
isdigit() merupakan makro yang akan
menghasilkan nilai benar (bukan nol) jika c
adalah sebuah karakter digit (‘0’ sampai ‘9’).

16
Some Facilities for Character Operation
(next…)
islower()
islower() didefinisikan pada file judul ctype.h.
Bentuk :
int islower(int c);
islower() merupakan makro yang akan
menghasilkan nilai benar (bukan nol) jika c
adalah huruf kecil (‘a’ sampai ‘z’).

17
Some Facilities for Character Operation
(next…)
isupper()
isupper() didefinisikan pada file judul ctype.h.
Bentuk :
int isupper(int c);
isupper() merupakan makro yang akan
menghasilkan nilai benar (bukan nol) jika c
adalah huruf kapital (‘A’ sampai ‘Z’).

18
Some Facilities for Character Operation
(next…)
tolower()
tolower() didefinisikan pada file judul ctype.h.
Bentuk :
int tolower(int c);
tolower() : makro yang akan menghasilkan
nilai salah jika c adalah huruf kapital (‘A’
sampai ‘Z’), maka hasil fungsi berupa huruf
kecilnya. Jika c adalah huruf kecil (‘a’ sampai
‘z’), maka keluaran fungsi sama dengan c.
19
Some Facilities for Character Operation
(next…)
toupper()
toupper() didefinisikan pada file judul ctype.h.
Bentuk :
int toupper(int c);
toupper() : makro yang menghasilkan nilai
salah jika c adalah huruf kecil (‘a’ sampai ‘z’),
maka hasil fungsi berupa huruf kapitalnya.
Jika c adalah huruf kapital (‘A’ sampai ‘Z’),
maka keluaran fungsi sama dengan c.
20
Some Facilities for Character Operation
(next…)
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
main()
{
char karakter; printf("Masukkan sebuah karakter = "); karakter = getche(); printf(" Saya tahu yang Anda ketikkan
");
if (isupper(karakter))
puts("adalah huruf kapital");
else
if (islower(karakter))
puts("adalah huruf kecil");
else
if (isdigit(karakter))
puts("adalah karakter digit");
else
if (karakter == ' ')
puts("adalah spasi");
else
{
puts("tidak termasuk huruf kapital, huruf kecil, digit maupun spasi\n");
}
}

Hasil Eksekusi Program : 21


Masukkan sebuah karakter = 0 Saya tahu yang Anda ketikkan adalah karakter digit
Some Functions on String
Menyalin suatu string ke string lain ataupun
menghitung banyaknya karakter dalam
suatu string sesungguhnya tidak perlu
diimplementasikan sendiri, karena bahasa C
menyediakan fasilitas untuk pemanipulasian
string, yaitu strcpy(), strlen(), strcat(),
strcmp(), strlwr(), dan strupr().

22
Some Functions on String
(next…)
strcpy()
Bentuk pemakaian :
strcpy(tujuan, asal);
Fungsi strcpy() untuk menyalin string asal ke variabel string tujuan. Dalam
hal ini, variabel tujuan harus memiliki ukuran yang dapat digunakan untuk
menampung seluruh karakter dari string asal. Contoh :
#include <stdio.h>
#include <string.h>
main()
{
char pepatah[40];
strcpy(pepatah, "Rajin Pangkal Pandai");
puts(pepatah);
}

Hasil Eksekusi Program :


Rajin Pangkal Pandai 23
Some Functions on String
(next…)
strlen()
Fungsi strlen() digunakan untuk memperoleh banyaknya
karakter dalam string yang merupakan argumennya. Karakter
NULL tidak ikut dihitung. Contoh :
#include <stdio.h>
#include <string.h>
main()
{
char salam[] = "Assalamu'alaikum Wr. Wb.";
printf("Panjang String = %d\n", strlen(salam));
}

Hasil Eksekusi Program :


Panjang String = 24 24
Some Functions on String
(next…)
strcat()
Bentuk pemakaian :
strcat(tujuan, sumber);
Fungsi strcat() digunakan untuk menambahkan string sumber ke
bagian akhir dari string tujuan. Contoh :
#include <stdio.h>
#include <string.h>
main()
{
char str1[15], str2[5];
strcpy(str1, "Teknik Elektro "), strcpy(str2, "UNS"), strcat(str1, str2);
printf("str1 --> %s str2 --> %s\n", str1, str2);
}

Hasil Eksekusi Program :


str1 --> Teknik Elektro UNS str2 --> UNS 25
Some Functions on String
(next…)
strcmp()
Bentuk pemakaian :
strcmp(string1, string2);
Fungsi strcmp() digunakan untuk membandingkan string1 dengan
string2. Hasil fungsi bertipe int berupa nilai :
❑Negatif, jika string1 kurang dari string2
❑Nol, jika string1 sama dengan string2
❑Positif, jika string1 lebih dari string2
Nilai absolut hasil fungsi (kecuali bernilai nol) menyatakan selisih nilai
ASCII dari karakter yang menyebabkan string1 berbeda dengan
string2.
Perbandingan dilakukan untuk karakter pada posisi yang sama dari
string1 dan string2, dimulai dari karakter terkiri. Acuan perbandingan
dari dua karakter didasarkan oleh nilai ASCII. Misal karakter ‘A’ lebih
kecil dari ‘B’ dan ‘B’ lebih kecil dari ‘C’. Contoh program :
26
Some Functions on String
(next…)
#include <stdio.h>
#include <string.h>
main()
{
char str1[] = "HALO", str2[] = "Halo", str3[] = "HALO";
printf("Hasil perbandingan %s dan %s = %d\n", str1, str2, strcmp(str1, str2));
printf("Hasil perbandingan %s dan %s = %d\n", str2, str1, strcmp(str2, str1));
printf("Hasil perbandingan %s dan %s = %d\n", str1, str3, strcmp(str1, str3));
}

Hasil Eksekusi Program :


Hasil perbandingan HALO dan Halo = -1
Hasil perbandingan Halo dan HALO = 1
Hasil perbandingan HALO dan HALO = 0

27
Some Functions on String
(next…)
strlwr()
Bentuk pemakaian :
strlwr(variabel_string);
Fungsi strlwr() digunakan untuk mengubah setiap huruf kapital dalam
variabel_string menjadi huruf kecil. Contoh :
#include <stdio.h>
#include <string.h>
main()
{
char informasi[] = "Kami adalah mahasiswa Teknik Elektro FT UNS";
strlwr(informasi);
puts(informasi);
}

Hasil Eksekusi Program :


kami adalah mahasiswa teknik elektro ft uns 28
Some Functions on String
(next…)
strupr ()
Bentuk pemakaian :
strupr(variabel_string);
Fungsi strupr() digunakan untuk mengubah setiap huruf kecil dalam
variabel_string menjadi huruf kapital. Contoh :
#include <stdio.h>
#include <string.h>
main()
{
char informasi[] = "Kami adalah mahasiswa Teknik Elektro FT UNS";
strupr(informasi);
puts(informasi);
}

Hasil Eksekusi Program :


KAMI ADALAH MAHASISWA TEKNIK ELEKTRO FT UNS 29
String as Function Parameter
String sebagai parameter fungsi pada dasarnya sama dengan array sebagai parameter fungsi. Contoh
#include <stdio.h>
#include <string.h>
void string_kiri(char string[], int n, char hasil_string[]);
main()
{
int i, panjang_string; char string[] = "UNS", hasil_string[10]; panjang_string = strlen(string);
for (i=0; i<panjang_string; i++)
{
string_kiri(string, panjang_string-i, hasil_string); puts(hasil_string);
}
}
void string_kiri(char string[], int n, char hasil_string[])
{
int i;
for (i=0; i<n; i++)
hasil_string[i] = string[i];
hasil_string[i]='\0';
}

Hasil Eksekusi Program :


UNS
UN 30
U
Array of String
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define maksimum 20
#define panjang 35
void pemasukan_nama(char string[][panjang], int *pjumlah);
void pengurutan_nama(char string[][panjang], int jumlah);
void penampilan_nama(char string[][panjang], int jumlah);
main()
{
static char deret_nama[maksimum][panjang]; int jumlah_data;
pemasukan_nama(deret_nama, &jumlah_data);
pengurutan_nama(deret_nama, jumlah_data);
penampilan_nama(deret_nama, jumlah_data);
}
31
Array of String
(next…)
void pemasukan_nama(char string[][panjang], int *pjumlah)
{
int i, jumlah; char string_int[10];
printf("Jumlah data = ");
gets(string_int);
jumlah = atoi(string_int);
for (i=0; i<jumlah; i++)
{
printf("Nama ke-%d = ", i+1);
gets(string[i]);
}
*pjumlah = jumlah;
}

32
Array of String
(next…)
void pengurutan_nama(char string[][panjang], int jumlah)
{
int i, j; char sementara[panjang];
for (i=0; i<jumlah-1; i++)
for (j=i+1; j<jumlah; j++)
if (strcmp(string[i], string[j]<0))
{
strcpy(sementara, string[i]);
strcpy(string[i], string[j]);
strcpy(string[j], sementara);
}
}

33
Array of String
(next…)
void penampilan_nama(char string[][panjang], int jumlah)
{
int i;
puts("\nData setelah diurutkan = ");
for (i=0; i<jumlah; i++)
printf("Nama ke-%d = %s\n", i+1, string[i]);
}

34
Next…

35

Anda mungkin juga menyukai