Post on 04-Jul-2015
OPERASI STRING DAN KONDISI IF
STRING
String merupakan bentuk data yang biasa dipakai dalam bahasa
pemrograman untuk keperluan menampung dan memanipulasi data
teks, misalnya untuk menampung (menyimpan) suatu kalimat.
String digunakan untuk menampilkan pesan atau memberikan
informasi pada layar. String dapat berupa konstanta maupun variable.
Suatu variable string dapat juga diberi nilai awal.
Contoh :
char huruf[]=”ABCDE”;
char nama[20];
Konstanta String
Suatu konstanta string ditulis dengan diawali dan diakhiri tanda petik ganda,
misalnya: “ABCDE”
Nilai string ini disimpan dalam memori secara berurutan dengan komposisi sebagai
berikut:
• Setiap karakter akan menempati memori sebesar 1 byte.
• Byte terakhir otomatis akan berisi karakter NULL (\0), dengan demikian maka akhir
dari nilai suatu string akan dapat dideteksi.
• Sebagai sebuah array of char, karakter pertama dari nilai stringmempunyai indeks
ke 0, karakter kedua mempunyai indeks ke 1, dan seterusnya.
Variabel String
Variabel string adalah variabel yang dipakai untuk menyimpan nilai
string. Misalnya :
char nama[20]
Merupakan instruksi untuk mendeklarasikan variabel string dengan
panjang maksimal 20 karakter (termasuk karakter NULL).
Deklarasi tersebut sebenarnya tidak lain merupakan deklarasi array
bertipe char.
INISIALISASI STRING Suatu variabel string dapat diinisialisasi seperti halnya array yang lain
(dalam kurung kurawal dipisahkan koma). Namun tentu saja elemen
terakhirnya haruslah berupa karakter NULL. Sebagai contoh :
char name[] = {„S','I',„T', 'I',‟\0‟};
yang menyatakan bahwa nama adalah variabel string dengan nilai
awal berupa string : “SITI”.
• Bentuk inisialisasi yang lebih singkat :
char name[] = “SITI”;
Pada bentuk ini, karakter NULL tidak perlu ditulis. Secara IMPLISIT
akan disisipkan oleh kompiler.
MEMASUKKAN DATA STRING
Pemasukan data string ke dalam suatu variabel biasa dilakukan
dengan cin.
Bentuk umum pemakaiannya adalah sebagai berikut :
Cin hanya bisa membaca sebuah kata
Untuk mengatasinya agar cin dapat membaca
lebih dari 1 buah kata adalah dengan get() pada
object cin dengan cara
cin.get(teks,13);
atau
cin.get(teks,sizeof(teks));
Perlu diketahui, fungsi get() akan membaca
seluruh karakter yang diketik melalui keyboard
sampai tombol ENTER
Builtin Functions untuk manipulasi string
• Untuk manipulasi string, C++ telah menyediakan beberapa fungsi
standar yang ada pada string.h
• Beberapa yang akan dibahas kali ini adalah
-Fungsi strcpy() –Fungsi strlen()
–Fungsi strcat() –Fungsi strrcmp()
–Fungsi strlwr() –Fungsi strupr()
-Fungsi strstr() –Fungsi strrev()
Fungsi strcpy()
•Bentuk pemakaian :
#include <string.h>
strcpy(tujuan, asal);
•Fungsi ini dipakai untuk mengcopy string asal ke variabel string tujuan termasuk
karakter '\0'.
•Dalam hal ini, variabel tujuan haruslah mempunyai ukuran yang dapat digunakan
untuk menampung seluruh karakter dari string asal.
Contoh Program
Fungsi strlen()
•Bentuk pemakaian :
#include <string.h>
strlen(var_string);
•Fungsi ini digunakan untuk memperoleh banyaknya
karakter di dalam string yang menjadi argumennya
(var_string).
•Keluaran dari fungsi ini adalah panjang dari
var_string(karakter NULL tidak ikut dihitung)
Fungsi strcat()
Menggabungkan dua buah string di akhir string yang lain
Bentuk pemakaian :
#include <string.h>
Strcat(st1,st2);
Fungsi strcmp() (case sensitive)
• Membandingkan dua nilai string juga tidak dapat digunakan
dengan operator hubungan, karena operator tersebut tidak untuk
operasi string.
• Membandingkan dua buah nilai string secara case sensitive
dapat dilakukan dengan fungsi strcmp().
• Contoh bentuk pemakaian fungsi :
#include <string.h>
strcmp(str1, str2);
• Fungsi ini dipakai untuk membandingkan string str1 dengan
string str2. Keluaran dari fungsi ini bertipe int yang berupa
nilai :
– nilai negative, jika str1 < str2
– nilai 0, jika str1 == str2
– nilai positif, jika str1 > str2
• Pembandingan dilakukan untuk karakter pada posisi yang
sama dari str1 dan str2, dimulai dari karakter terkiri yang
didasarkan oleh nilai ASCIInya.Misal, karakter „A‟ lebih kecil
daripada „B‟dan karakter „B lebih kecil daripada „C‟.
Contoh Program
Fungsi strlwr()Mengubah huruf kapital menjadi huruf kecil
Bentuk pemakaian :
#include <string.h>
Strlwr(st);
Fungsi strupr()Mengubah huruf kecil menjadi huruf kapital
Bentuk pemakaian :
#include <string.h>
Strupr(st);
Fungsi strstr()
Berguna untuk mencari suatu karakter dalam suatu string
untuk mencari suatu substring
Bentuk pemakaian :
#include <string.h>
Strstr();
Output
Hasil diatas menunjukkan bahwa fungsi strstr() memberikan nilai balik benar kalau substring argumen kedua terdapat pada string argumen pertama.
Fungsi strrev()Berguna untuk membalikkan kata pada stringBentuk pemakaian : strrev ();
Output :
String Sebagai parameter Fungsi
String sebagai parameter fungsi pada dasarnya sama
dengan array sebagai parameter fungsi
Sebagai contoh :
Outputnya :
Operasi Penyeleksian Kondisi
Pernyataan Percabangan digunakan untukmemecahkan persoalan untuk mengambil suatukeputusan diantara sekian pernyataan yang ada. Untuk keperluan pengambilan keputusan, Borland C++ menyediakan beberapa perintah antara lain
Pernyataan IF
Pernyataan if mempunyai pengertian, “ Jika kondisi bernilaibenar, maka perintah akan dikerjakan dan jika tidakmemenuhi syarat maka akan diabaikan”. Dari pengertiantersebut dapat dilihat dari diagram alir berikut:
Penulisan kondisi harus didalam tanda kurung danberupa ekspresi relasi dan penulisan pernyataan dapatberupa sebuah pernyataan tunggal, pernyataan majemukatau pernyataan kosong. Jika pemakaian if diikutidengan pernyataan majemuk, bentuk penulisannyasebagai berikut :
If (kondisi)
{
Pernyataan;
………….
}
Contoh
Menentukan besarnya potongan dari pembelian barang yang diberikan seorang pembeli, dengan kriteria : - Tidak adapotongan jika total pembelian kurang dari Rp. 50.000,- - Jikatotal pembelian lebih dari atau sama dengan Rp. 50.000,-potongan yang diterima sebesar 20% dari total pembelian.
#include<stdio.h> #include<conio.h> #include<iostream.h> main() { double tot_beli, potongan=0, jum_bayar=0; clrscr(); cout<<"Total Pembelian Rp. "; cin>>tot_beli; if (tot_beli >= 50000) potongan = 0.2 * tot_beli; cout>>"Besarnya Potongan Rp. "<<potongan<<endl; jum_bayar = tot_beli - potongan; cout>>"Jumlah yang harus dibayarkan Rp. ",jum_bayar; getch(); }
Pernyataan IF – ELSE
Pernyataan if mempunyai pengertian, “ Jika kondisi bernilaibenar, maka perintah-1 akan dikerjakan dan jika tidakmemenuhi syarat maka akan mengerjakan perintah-2”. Dari pengertian tersebut dapat dilihat dari diagram alir berikut
Perintah-1 dan perintah-2 dapat berupa sebuah pernyataan tunggal, pernyataan majemuk atau pernyataan kosong. Jika pemakaian if-else diikuti dengan pernyataan majemuk, bentuk penulisannyasebagai berikut :
If (kondisi){
Pernyataan;………….
}else{
Pernyataan;………….
}
Contoh
Menentukan besarnya potongan dari pembelian barang yang diberikan seorang pembeli, dengan kriteria : - jika total pembelian kurang dari Rp. 50.000,- potongan yang diterimasebesar 5% dari total pembelian. - Jika total pembelian lebihdari atau sama dengan Rp. 50.000,- potongan yang diterimasebesar 20% dari total pembelian.
#include<stdio.h> #include<conio.h> #include<iostream> main() { double tot_beli, potongan=0, jum_bayar=0; clrscr(); cout<<"Total Pembelian Rp. "; cin>>tot_beli; if (tot_beli >= 50000) potongan = 0.2 * tot_beli; else potongan = 0.05 * tot_beli; cout>>"Besarnya Potongan Rp. "<<potongan<<endl; jum_bayar = tot_beli - potongan; cout>>"Jumlah yang harus dibayarkan Rp. ",jum_bayar; getch(); }
Pernyataan NESTED IF
Nested if merupakan pernyataan if berada didalampernyataan if yang lainnya. Bentuk penulisan pernyataanNested if adalah : if(syarat) if(syarat)
… perintah; else
… perintah; else if(syarat)
… perintah; else
… perintah;
Contoh
Suatu perusahaan memberikan komisi kepada para selesmandengan ketentuan sebagai berikut:
Bila salesman dapat menjual barang hingga Rp. 20.000 ,- , akandiberikan uang jasa sebesar Rp. 10.000 ditambah dengan uangkomisi Rp. 10% dari pendapatan yang diperoleh hari itu.
Bila salesman dapat menjual barang diatas Rp. 20.000 ,- , akandiberikan uang jasa sebesar Rp. 20.000 ditambah dengan uangkomisi Rp. 15% dari pendapatan yang diperoleh hari itu.
Bila salesman dapat menjual barang diatas Rp. 50.000 ,- , akandiberikan uang jasa sebesar Rp. 30.000 ditambah dengan uangkomisi Rp. 20% dari pendapatan yang diperoleh hari itu.
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main() {
float pendptan, jasa=0, komisi=0, total=0;
clrscr();
cout>>"Pendapatan Hari ini Rp. ";
cin<pendptan;
if (pendptan >= 0 && pendptan <= 200000)
{
jasa=10000;
komisi=0.1*pendptan;
} else
{
if(pendptan<=500000) {
jasa=20000; komisi=0.15*pendptan;
} else {
jasa=30000; komisi=0.2*pendptan;
} } /* menghitung total */ total = komisi+jasa; cout<<"Uang Jasa Rp. "<<jasa<<endl; cout<<"Uang
Komisi Rp. "<<komisi<<endl; cout<<"============================="<<endl;
cout<<"Hasil Total Rp. "<<total<<endl; getch(); }
Pernyataan IF – ELSE Majemuk
Bentuk dari if-else bertingkat sebenarnya serupa dengan nested if, keuntungan penggunanan if-else bertingkat dibanding dengan nested if adalah penggunaan bentuk penulisan yang lebihsederhana.
Bentuk Penulisannyaif (syarat) {
… perintah; … perintah;
} else if (syarat) {
… perintah; … perintah;
} else {
… perintah; … perintah;
}
Suatu perusahaan memberikan komisi kepada paraselesman dengan ketentuan sebagai berikut: Bila salesman dapat menjual barang hingga Rp. 200.000 ,- ,
akan diberikan uang jasa sebesar Rp. 10.000 ditambah denganuang komisi Rp. 10% dari pendapatan yang diperoleh hari itu.
Bila salesman dapat menjual barang diatas Rp. 200.000 ,- , akan diberikan uang jasa sebesar Rp. 20.000 ditambahdengan uang komisi Rp. 15% dari pendapatan yang diperolehhari itu.
Bila salesman dapat menjual barang diatas Rp. 500.000 ,- , akan diberikan uang jasa sebesar Rp. 30.000 ditambahdengan uang komisi Rp. 20% dari pendapatan yang diperolehhari itu.
#include<stdio.h> #include<conio.h> #include<iostream.h> main() { float pendptan, jasa=0, komisi=0, total=0; clrscr(); cout>>"Pendapatan Hari ini Rp. "; cin<pendptan; if (pendptan >= 0 && pendptan <= 200000) { jasa=10000;
komisi=0.1*pendptan; } else if(pendptan<=500000) {
jasa=20000; komisi=0.15*pendptan;
} else {
jasa=30000; komisi=0.2*pendptan;
} /* menghitung total */
total = komisi+jasa; cout<<"Uang Jasa Rp. "<<jasa<<endl; cout<<"Uang Komisi Rp. "<<komisi<<endl; cout<<"============================="<<endl; cout<<"Hasil Total Rp.
"<<total<<endl; getch();}