Anda di halaman 1dari 26

PEMROGRAMAN DASAR I

PERTEMUAN 8
VARIABEL & FUNGSI
STRING

SIGIT WASISTA
PENS (www.pens.ac.id)
ethol.pens.ac.id
2021
VARIABEL & FUNGSI STRING
• TUJUAN:
• Mempelajari penggunaan variable string
yang dipadukan dengan fungsi-fungsi
untuk pengolahan data string, seperti
strcat(), strlen(), dan strcpy().
VARIABEL & FUNGSI STRING
• TEORI:
• Suatu karakter string adalah terdiri dari beberapa
karakter (deretan karakter) yang diakhiri dengan
karakter khusus ‘\0’ (null).
• Suatu konstanta string adalah karakter string
yang dituliskan diantara tanda petik ganda (“),
seperti yang digunakan pada fungsi printf() atau
puts().
• Konstanta karakter string mempunyai kelas
penyimpan static, sehingga bila digunakan
didalam fungsi, maka nilainya tidak akan berubah
selama program aktif.
C++ STRINGS
• A string is a null terminated array of characters.
• null terminated means there is a character at the end of the
the array that has the value 0 (null).

• Pointers are often used with strings:


char *msg = "RPI";
msg

'R' 'P' 'I' 0


C++ Spring 2000 Arrays 4
TIPE VARIABEL STRING

• Deklarasi variabel string adalah dengan tipe variabel char


dengan tanda kurung persegi, sama seperti deklarasi pada
variabel array.
• Contoh:
char str1[]={‘e’,’e’,’p’,’i’,’s’};
char str2[]={‘p’,’e’,’n’,’s’};
MENGISI MEMORI
DENGAN STRING
b e l a j a r 0

f u n g s i 0

s t r i n g 0
MENGHITUNG PANJANG KARATER
DENGAN ACUAN KARAKTER NULL ‘\0’
#include <stdio.h>

int panjang_str(char string[])


{
int hitung=0;

while (string[hitung] != '\0')


++hitung;
return (hitung);
}

int main()
{
static char kata0[]={'b','e','l','a','j','a','r','\0'};
static char kata1[]={'f','u','n','g','s','i','\0'};
static char kata2[]={'s','t','r','i','n','g','\0'};
printf("Panjang string 0 = %d\n",panjang_str(kata0));
printf("Panjang string 1 = %d\n",panjang_str(kata1));
printf("Panjang string 2 = %d\n",panjang_str(kata2));
}
STRING “ASSALAMUALAIKUM...”
DAN “BIMASENA”
, A s s a l

a m u a l a i k u m

. . . 0

B i m a S e n a 0
STRLEN
• Menghitung panjang string dari awal indeks, sampai ketemu
dengan 0 (null).

Awal String

0 1 2 3 4 5 6 7 8

p u a n j a n g 0

Akhir String
Panjang String = 8
STRCAT
• Menggabungkan antara dua string
• Contoh:
• str1=“, Assalamualaikum...”
• str2=“Budi”
• str3=str2+str1
• Isi dari str3 menjadi: Budi, Assalamualaikum...
STRCMP
• Membandingkan antara dua string, bila
sama akan dikembalikan nilai 0, dan bila
tidak sama akan dikembalikan nilai selain 0.
• “bimasena” == “BimaSena” -> 1
• “BimaSena” == “BimaSena” -> 0
FUNGSI-2 STRLEN,
#include <string.h>
#include <stdio.h>

STRCAT, & STRCMP


int main()
{
char nama[50], jawab[15];
static char salam[]=", Assalamualaikum...";
static char wayang[]="BimaSena";
puts("Masukkan nama anda:");
gets(nama);
puts("");
printf("Siapakah nama wayang yang gak bisa duduk? ");
gets(jawab);
puts("");
if(strlen(salam)+strlen(nama)<=50)
strcat(nama,salam);
puts(nama);
if(strcmp(wayang,jawab)==0)
printf("\nJawaban anda benar! Hebat!");
else {
printf("\nJawaban anda salah!");
printf("\nJawabannya adalah %s\n\n",wayang);
}
}
MENGHITUNG JUMLAH
KARAKTER YANG DIMASUKKAN
DARI KEYBOARD
#include <stdio.h>
#define MAKS 256

int main()
{
int i, jumkar;
char teks[MAKS];
puts("Masukkan suatu kalimat (maks 255 karakter).");
puts("Komputer akan menghitung jumlah karakternya.\n");
fgets(teks, sizeof teks, stdin);

jumkar = 0;
for(i=0; teks[i]; i++)
jumkar++;
printf("\nJumlah karakter = %d\n", jumkar);
}
STRCHR
• Menentukan posisi karakter pada suatu string.
• Contoh:
• Tentukan posisi huruf R pada string dibawah:

Posisi huruf
“R”

2 3 4 5 6 7 8 9 10 11

K E J A R L A H
MENENTUKAN POSISI HURUF DARI
SUATU STRING DENGAN STRCHR()

#include <string.h>
int main()
{
char str1[50], str2[50], kar, *po;

strcpy(str1,"0---------1---------2---------3");
strcpy(str2,"-> KEJARLAH DAKU KAU KUTANGGKAP");
cputs("Isi dari str1 = "); puts(str1);
cputs("Isi dari str2 = "); puts(str2);
printf("\nPosisi huruf pada string dapat dicari");
printf("\nmenggunakan rumus p = strchr(str2,kar)\n");
kar='G';
po=strchr(str2,kar)-str2;
printf("\nKarakter '%c' terletak pada kolom ke %d",kar,po);
}
MENGHITUNG HURUF DAN KATA
int alphabetic(char c) int main()
{ {
if ((c>='a' && c<='z')||(c>='A' && c<='Z')) int hitung;
return(1); static char teks1[] = "Angka atau
else bilangan 0123456789";
return(0); static char teks2[] = "juga termasuk
karakter string.";
}
printf("Teks 1: %s\n",teks1);
printf("Teks 2: %s\n",teks2);
int hitung_kata(char string[])
puts("");
{
hitung = hitung_kata(teks1);
int i, lihat_kata=1, kata_terhitung=0;
hitung = hitung + hitung_kata(teks2);
for (i=0; string[i]!='\0'; ++i)
printf("Terhitung ada %d kata pada
if (alphabetic(string[i])) { teks diatas!\n",hitung);
if (lihat_kata) { getch();
++kata_terhitung; }
lihat_kata=0;
}
} else
lihat_kata=1;
return (kata_terhitung);
}
STRCPY
• Menyalin suatu string ke lokasi
string lain.
• Contoh:
• str1=“Bima Sena”
• str2=“”
• strcpy(str2,str1);
• strcpy(str1,”Gatut Kaca”);
STRNCPY
• Menyalin sebagian (n) dari string.
• Contoh:
• str1=“David Beckham”
• strncpy(str2,str1,6)
• Isi dari str2 adalah = “David “
• strncpy(str3,str1+6,7)
• Isi dari str3 adalah = “Beckham”
MENGAMBIL BAGIAN DARI STRING
#include<stdlib.h>
int main()
{
char str1[30], str2[30], str3[30];
char str4[30], str5[30], str6[30];

strcpy(str1,"Don't dulu bekerja");


strcpy(str2,"baru sambil be happy");
strcpy(str3,"Ini worry Belajar itu");
str4[4] = NULL;
strncpy(str5,str1+6,5);
cputs("str1 = "); puts(str1); str5[5] = NULL;
strncpy(str6,str2,5);
cputs("str2 = "); puts(str2); str6[5] = NULL;
cputs("str3 = "); puts(str3); strcat(str4,str5);
cputs("\nTekan ENTER untuk melihat hasilnya!");
strcat(str4,str6);
strncpy(str6,str3+18,3);
getch(); str6[3] = NULL;
strcat(str4,str6);
strncpy(str4,str3,4); printf("\n\nIsi dari str4 = ");
puts(str4);
}
POLINDROME DENGAN STRREV()

#include <string.h>
#include <stdio.h>
#include <conio.h>

int main()
{
char kalimat[50];
printf("Masukkan kata/ kalimat : ");
gets(kalimat);
puts("");
printf("\nKata/ kalimat sebelum strrev():\n");
printf("%s\n\n",kalimat);
printf("\nKata/ kalimat setelah strrev():\n");
strrev(kalimat);
printf("%s\n\n",kalimat);
}
TUGAS-8.1
• Buatlah fungsi yang disebut strsisip() untuk
menyisipkan satu karakter string kedalam string
lainnya.
• Argumen untuk fungsi harus berisi string sumber,
string yang disisipkan, dan posisi dari string sumber
dimana string disisipkan.
• Jadi dapat dipanggil seperti dibawah ini:
• strsisip(teks,"se",6);
• dengan teks adalah kalimat "salah orang".
• Jadi setelah penyisipan kata menjadi "salah
seorang".
TUGAS-8.2

• Buatlah program untuk menentukan suatu kata/ kalimat


merupakan suatu polindrom atau bukan. Dimana kata/
kalimat tersebut dimasukkan melalui keyboard.

Contoh tampilan :

Kalimat : KASUR RUSAK


Termasuk PALINDROM

Kalimat : MAKAN MALAM


Bukan PALINDROM
TUGAS-8.3
• Buatlah program untuk menghitung
jumlah huruf kecil, huruf besar,
angka numerik, dan tanda baca
didalam suatu string yang
dimasukkan melalui keyboard.
TUGAS-8.4
• Buatlah program untuk menghasilkan
keluaran sebagai berikut :
• Tampilan program langsung sambung
kebawah…
P
PO
POL
Sambungan dari bawah…
POLI
POLIT
POLITEKNIK ELEKTRONI
POLITE POLITEKNIK ELEKTRONIK
POLITEK POLITEKNIK ELEKTRONIKA
POLITEKNIK ELEKTRONIKA
POLITEKN POLITEKNIK ELEKTRONIKA N
POLITEKNI POLITEKNIK ELEKTRONIKA NE
POLITEKNIK ELEKTRONIKA NEG
POLITEKNIK POLITEKNIK ELEKTRONIKA NEGE
POLITEKNIK POLITEKNIK ELEKTRONIKA NEGER
POLITEKNIK ELEKTRONIKA NEGERI
POLITEKNIK E POLITEKNIK ELEKTRONIKA NEGERI
POLITEKNIK EL POLITEKNIK ELEKTRONIKA NEGERI S
POLITEKNIK ELEKTRONIKA NEGERI SU
POLITEKNIK ELE POLITEKNIK ELEKTRONIKA NEGERI SUR
POLITEKNIK ELEK POLITEKNIK ELEKTRONIKA NEGERI SURA
POLITEKNIK ELEKTRONIKA NEGERI SURAB
POLITEKNIK ELEKT POLITEKNIK ELEKTRONIKA NEGERI SURABA
POLITEKNIK ELEKTR POLITEKNIK ELEKTRONIKA NEGERI SURABAY
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
POLITEKNIK ELEKTRO
POLITEKNIK ELEKTRON
Bersambung keatas…
RINGKASAN
• Telah dipelajari:
• penggunaan variable string yang dipadukan dengan
fungsi-fungsi untuk pengolahan data string, seperti
strcat(), strlen(), dan strcpy().
TERIMA KASIH
• Semoga kita diberi oleh Allah SWT ampunan,
perlindungan keselamatan, kesehatan badan, ilmu
yang bermanfaat dan rejeki yang barakah,
• Sampai jumpa dipekan depan, dalam link
Zoom/Gmeet yang sama,
• Wassalamualaikum Warahmatullahi Wabarakatuh.

Anda mungkin juga menyukai