Jumat, 02 Oktober 2015

Materi String


7.1.       Definisi String
String adalah kumpulan beberapa karakter atau array dari karakter. String dan karakter dibedakan cara penulisannya. String ditulis dengan diapit oleh tanda petik ganda “ … “ , dan karakter ditulis dengan diapit oleh tanda petik tunggal ‘ … ‘. Akhir dari string ditunjukkan oleh NULL karakter. Semua fungsi yangdigunakan untuk melakukan manipulasi terhadap string menganggap string diakhiri dengan null. Karakter null direpresentasikan dengan tanda ‘ \0 ‘.

7.2.       Deklarasi String
Untuk mendeklarasikan string, maka array yang ada harus dilebihkan 1(satu) untuk tempat menampung karakter null.
Contoh deklarasi string :
Akan dideklarasikan array str untuk menampung string sepanjang 6 (enam) karakter,
maka :
char str [ 7 ] = “ string “ ; atau
char str [ 7 ] = {‘s’, ‘t’, ‘r’, ’i’, ‘n’, ‘g’, ‘\0’ } ;

String juga dapat dideklarasikan dengan menggunakan pointer, contoh:

#include <iostream.h>
void main()
{
char nama[5] = “Andi”;
cout<<”Nama awal : “<<nama<<endl;
char *ptr;
ptr = nama;
*(ptr+3) = ‘y’;
cout<<”Nama menjadi : “<<nama<<endl;
}
 
 









7.3.       Contoh Operasi Pada String
1.      Meng-copy String
Untuk memberikan nilai string dari suatu variable ke variable yang lain tidak dapat dilakukan hanya dengan perintah : kata2 = kata1. Untuk memberikan nilai ke variable lain dalam C++ digunakan perintah :
strcpy ( kata2, kata1 );
Maksudnya adalah akan di-copy isi dari kata1 ke kata2.
Contoh:

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

void main ( )
{
char kata1 [ 6 ] = “Hallo” ;
char kata2 [ 6 ] ;
strcpy (kata2, kata1) ;
cout << “Kata 1 adalah” << kata1 << endl ;
cout << “Kata 2 adalah” << kata2 << endl ;
}
 
 









2.      Mendapatkan Panjang String
Untuk mendapatkan panjang suatu string dapat menggunakan fungsi
strlen (string) ;
Contoh program :
int panjangteks ;
char kalimat [ 27 ] = “Belajar C++ tidaklah sulit” ;
panjangteks = strlen (kalimat) ;
cout << “Panjang string adalah :’ << panjangteks ;

3.      Menggabungkan dua String
Sintaks : strcat (string1, string2). Maksudnya : akan menambahkan string2 ke dalam string1.
Contoh program :
Char kata1 [ 5 ] = “Satu” ;
Char kata2 [ 5 ] = “Dua” ;
Strcat (kata1, kata2) ;
Hasil dari potongan program diatasa adalah : Satu Dua

4.      Mencari Sub-String
Sintaks : strstr (string1, string2) ;
Fungsi ini akan mereturn nilai 1 jika nilai string2 merupakan substring dari string1 dan akan mereturn nilai 0(nol) jika string2 bukan substring dari string1.
Contoh program :
Diberikan suatu string “Jakarta Kota Metropolitan”. Apakah string “Metro” terdapat dalam kalimat tersebut ?
Potongan program untuk menjawabnya adalah :
if (strstr(“Jakarta Kota Metropolitan”, “Metro”) = = 1 )
cout << “Merupakan substring” ;
else
cout << “Bukan substring” ;
7.4.       Array of String
Untuk mendeklarasikan array dari string digunakan sintak seperti contoh berkut:
char nama[10][50];
berarti mendeklarasikan array of string yang berjumlah 10 data bertipe string (array of character), dimana masing-masing string mampu menampung karakter maksimal sebanyak 50 karakter.

#include <stdio.h>
#include <conio.h>
int main()
{
int x,y;
char Bulan[12][4] = {"Jan", "Peb", "Mar", "Apr",  "Mei", "Jun", "Jul", "Ags", "Sep", "Okt", "Nop", "Des"};

for(x=0;x<12;x++)
{
for(y=0;y<3;y++)
cout << Bulan[x][y]);
printf(" ");
}
getch();
}
 
Contoh:












7.5.       Exercise
1.      Buatlah program untuk menganalisa sebuah string inputan yang diinputkan oleh user dan kemudian tampilkan:
o Berapa jumlah karakter yang berupa karakter vokal (a,i,u,e,o)
o Berapa jumlah karatker yang non vokal dan karakter-karakter lainnya
2.      Kembangkan soal 1 untuk menghitung berapa jumlah vokal “A“, “I“, “U“, “E“, dan “O“ masing-masing!
3.      Buatlah program untuk membalik kata, misalnya kata “anton“ akan menjadi “notna“ dengan menggunakan array of char!
4.      A common typing error is to place your hands on the keyboard one row to the right of the correct position. Then “Q” is typed as “W” and “J” is typed as “K” and so on. Your task is to decode a message typed in this manner.
Input
Input consists of several lines of text. Each line may contain digits, spaces, uppercase letters (except “Q”, “A”, “Z”), or punctuation shown above [except back-quote (‘)]. Keys labeled with words [Tab, BackSp, Control, etc.] are not represented in the input.
Output
You are to replace each letter or punctuation symbol by the one immediately to its left on the QWERTY keyboard shown above. Spaces in the input should be echoed in the output.
Sample Input
O S, GOMR YPFSU/
Sample Output
I AM FINE TODAY.


MATERI ARAY


A.    ARRAY
Array adalah suatu tipe data terstrukture yang berupa sejumlah data sejenis (bertipe data sama) yang  jumlahnya tetap dan diberi suatu nama tertentu.
1. Deklarasi
tipe_data nama_var_array [ukuran];
tipe_data                 : menyatakan jenis tipe data elemen larik (int, char, float, dll)
nama_var_array     : menyatakan nama variabel yang dipakai.
ukuran                     : menunjukkan jumlah maksimal elemen larik.
Contoh :
Int nilai[6];
2. Inisialisasi
Menginisialisasi array sama dengan memberikan nilai awal array pada saat didefinisikan.
int nilai[6] = {8,7,5,6,4,3};­­­­­
Contoh diatas berarti berarti anda memesan tempat di memori komputer sebanyak 6 tempat
dengan indeks dari 0-5, dimana indeks ke-0 bernilai 8, ke-1 bernilai 7, dst, dan dimana semua elemennya bertipe data integer.
3. Pengaksesan
nama_var_array [indeks];
Pengisian dan pengambilan nilai pada indeks tertentu dapat dilakukan dengan mengeset nilai atau menampilkan nilai pada indeks yang dimaksud. Pengaksesan elemen array dapat dilakukan berurutan atau random berdasarkan indeks tertentu secara langsung.
B.     MACAM-MACAM ARRAY
1. Array Satu Dimensi
array satu dimensi adalah kumpulan elemen-elemen identik yang tersusun dalam satu baris. elemen-elemen tersebut memiliki tepe data yang sama, tetapi isi dari elemen tersebut boleh berbeda.
Elemen Ke-
0
1
2
3
4
5
6
7
8
9
Nilai
23
34
32
12
25
14
23
12
11
10
Bentuk Umum :
<tipe data>NamaArray[n] = {elemen0, elemen1, ….., n};
dimana n = jumlah elemen
2. Array Dua Dimensi
array dua dimensi sering digambarkan sebagai sebuah matriks, merupakan perluasan dari array  satu  dimensi.  Jika array  satu dimensi  hanya  terdiri  dari  sebuah  baris  dan beberapa  kolom  elemen,  maka  array  dua  dimensi  terdiri  dari  beberapa  baris  dan beberapa  kolom  elemen  yang  bertipe  sama  sehingga  dapat  digambarkan  sebagai berikut:
0
1
2
3
4
5
6
0
10
21
23
43
45
78
65
1
45
43
65
12
21
12
21
2
32
34
23
56
54
34
45
3
11
12
32
23
56
76
45
Bentuk umum:
<tipe data> NamaArray [m][n];
Atau
<tipe data> NamaArray [m][n] = { {a,b,..z},{1,2,…,n-1} };
Contoh :
double matrix[4][4];
bool papan[2][2] = { {true,false},{true,false} };
Pendeklarasian  array  dua  dimensi  hampir  sama  dengan  pendeklarasian  array  satu dimensi, kecuali bahwa array dua dimensi terdapat dua jumlah elemen yang terdapat di dalam kurung siku dan keduanya boleh tidak sama.
Elemen array dua dimensi diakses dengan menuliskan kedua indeks elemennya dalam kurung siku seperti pada contoh berikut:
//papan nama memiliki 2 baris dan 5 kolom
bool papan[2][5];
papan[0][0] = true;
papan[ 0][4] = false;
papan[ 1][2] = true;
papan[1][4] = false;
C.    CONTOH PROGRAM :
Contoh 1 :
for(i=0;i<10;i++)
{
if(x[i]==bil)
{
ketemu = true;
cout<<“Bilangan DItemukan di elemen : “<<i<<endl;
jumlah++;
}
}
if (ketemu)
{
cout<<“Jumlah data : “<<jumlah;
}
else
{
cout<<“Bilangan tersebut tidak ditemukan”;
}
{
if(x[i]<min)
{
min=x[i];
}
}
cout<<“Nilai maksimum : “<<maks<<endl;
cout<<“NIlai minimum : “<<min<<endl;
Contoh 2 :
 #include <iostream.h>
typedef enum {false=0, true=1} bool;
void main()
{
int x[10]={45,34,23,34,32,12,65,76,34,23};
int i,bil,jumlah;
bool ketemu=false;
jumlah = 0;
cout<<“Bilangan yang akan dicari : “;
cin>>bil;
clrscr();
cout<<“\n”;
//proses penjumlahan matrik C=A+B
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{
c[i][j]=A[i][j]+B[i][j];
}
}
1
2
3
4
6
7