Operasi string dan kondisi if

Post on 04-Jul-2015

1.126 views 2 download

Transcript of Operasi string dan kondisi if

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