Operator logika NOT Pengurutan String

2008 | Direktorat Pembinaan SMK 303 { const int PANJANG_NAMA = 30 ; char name1[PANJANG_NAMA], name2[PANJANG_NAMA]; cout Masukan Nama last Name: ; cin.getlinename1, PANJANG_NAMA; cout Masukan Nama Lain: ; cin.getlinename2, PANJANG_NAMA; cout Disini nama akan di urutkan berdasarkan alphabet:\n ; if strcmpname1, name2 cout name1 endl name2 endl; else if strcmpname1, name2 cout name2 endl name1 endl; else cout Anda memasukan nama yang SAMA\n ; getch; return ; } Keluaran program diatas adalah sebagai berikut: Masukan Nama last Name: suprapto Masukan Nama Lain: anwar Disini nama akan di urutkan berdasarkan alphabet: anwar suprapto setelah mempelajari beberapa program string diatas, dibawah ini merupakan tabel ringkasan sebuah penanganan fungsi string. Tabel 8.1. Fungsi untuk menangani string FUNGSI PENJELASAN strlen Menerima string sebagai argumen. Pernyataan panjang string tidak termasuk null terminator. Contoh Penggunaan: len = strlen nama; strcat Menerima dua string sebagai argumen. Fungsi menambahkan isi string kedua untuk pertama string. Yang pertama adalah string diubah, kedua string tersebut dibiarkan tidak berubah. Contoh Penggunaan: strcat string1, string2; strcpy Menerima dua string sebagai argumen. Fungsi salinan kedua string untuk pertama string. String miliknya kedua string dibiarkan tidak berubah. Contoh Penggunaan: strcpy string1, string2; strncpy Menerima dua string dan argumen integer. Argumen yang ketiga, sebuah 304 Direktorat Pembinaan SMK| 2008 integer, menunjukkan berapa banyak karakter yang dicopy dari string kedua menuju string pertama. Jika kurang dari string2 sebanyak n karakter, string1 adalah ditambahkan dengan dengan karakter \ 0. Contoh Penggunaan: strncpy string1, string2, n; strcmp Menerima dua string argumen. Jika string1 dan string2 sama, fungsi ini memberikan hasil 0. Jika string2 alfabetnya lebih besar dari string1, ia kembali angka negatif. jika String2 alfabetnya kurang dari string1, ia kembali angka positif. Contoh Penggunaan: if strcmp string1, string2 strstr Pencarian untuk pertama terjadinya string2 dalam string1. Jika terjadinya string2 ditemukan, fungsi akan mengembalikan pointer string pertama. Jika tidak, ia akan mengembalikan NULL pointer alamat 0. Contoh Penggunaan: cout strstr string1, string2; Fungsi yang terakhir dalam tabel diatas adalah strstr, yang digunakan untuk mencari sebuah string dalam dari sebuah string yang penjang. Sebagai contoh, misalnya digunakan untuk mencari string tujuh didalam sebuah string kalimat yang lebih besar Nilai Empat dan tujuh pada tahun yang lalu. Fungsi argumentasi yang pertama adalah string dicari, dan argumentasi yang kedua adalah string untuk mencari. Jika fungsi menemukan string dalam string yang kedua terlebih dulu hal tersebut kembalikan ke alamat kejadian string didalam string yang kedua. Sebaliknya jika hal tersebut tidak dikembalikan alamat 0, atau alamat NULL. Di bawah ini adalah contoh pengunaan fungsi tersebut: char array[] = Nilai empat pada tujuh tahun yang lalu ; char strPtr; cout array endl; strPtr = strstrarray, tujuh ; mencari string tujuh cout strPtr endl; Dalam segmen program yang sebelumnya, strstr akan menempatkan string tujuh di dalam string Nilai Empat pada tujuh tahun yang lalu”. Hal tersebut akan kembalikan kealamat dari karakter yang pertama didalam tujuh, yang selanjutnya akan disimpan dalam variabel penunjuk pointer strPtr. Jika menjalankan bagian dari suatu program engkap, segmen tersebut akan menampilkan sebagai berikut: Nilai Empat pada tujuh tahun yang lalu tujuh pada tahun yang lalu Fungsi strstr dapat bermanfaat dalam setiap program yang harus menempatkan informasi didalam string satu atau lebih. Program dibawah merupakan contoh, menyimpan suatu database sejumlah produk dan penjelasan dalam satu array pada string. Hal tersebut memperbolehkan pengguna untuk mengetahui penjelasan sebuah produk dengan memasukan semua atau bagian dari nomor produknya. 2008 | Direktorat Pembinaan SMK 305 Program 8.9 includeconio.h include iostream include string using namespace std; int main { const int N_ITEMS = 5 , S_LENGTH = 31 ; char prods[ 5 ][S_LENGTH] = { TV311 televisi 31 inch , CD111 CD Player , MC123 Mesin Cuci , TM456 tape Mobil , PC955 Personal Computer }; char lookUp[S_LENGTH], strPtr = NULL; int index; cout \tProduct Database\n\n ; cout Masukan Kode angka product untuk mencari data: ; cin.getlinelookUp, S_LENGTH; for index = ; index N_ITEMS; index++ { strPtr = strstrprods[index], lookUp; if strPtr = NULL break; } if strPtr == NULL cout kode tidak sesuai dengan produk.\n ; else cout prods[index] endl; getch; return ; } Keluaran program diatas adalah: Product Database Masukan Kode angka product untuk mencari data: CD111[Enter] CD111 CD Player Product Database 306 Direktorat Pembinaan SMK| 2008 Masukan Kode angka product untuk mencari data: GJ987[Enter] kode tidak sesuai dengan produk. Dalam program tersebut diatas, karena pengulangan tiap putaran melalui string dalam pemanggilan array maka pernyataannya adalah sebagai berikut: strPtr = strstrprods[index], lookUp; Fungsi strstr mencari string yang sesuai oleh prods[index] karena nama yang dimasukkan oleh pengguna, yang mana disimpan dalam lookUp. Jika lookUp ditemukan di dalam prods[index], fungsi akan mengembalikan alamatnya. Dalam kasus tersebut, statemen if menyebabkan pengulangan akan berakhir. if strPtr = NULL break; Di luar pengulangan tersebut, sesuai statemen IF-ELSE untuk menentukan jika string dimasukkan oleh pengguna ditemukan dalam array. Jika tidak, maka akan menginformasikan kepada pengguna bahwa tidak ada produk yang sesuai ditemukan. Sebaliknya, nomor produk dan deskripsi akan ditampilkan: if strPtr == NULL cout kode tidak sesuai dengan produk.\n ; else cout prods[index] endl;

8.7. Konversi StringNumeric

Ada suatu perbedaan besar antara nomor yang disimpan sebagai string dan yang disimpan sebagai nilai klasifikasi. String 26792 sebenarnya tidak sebagai nomor, tetapi rangkaian yang diwakili kode- kode ASCII untuk setiap digit-digit dari nomor. Rangkaian tersebut menggunakan enam byte dari memori termasuk kode akhir string null. Karena itu bukan sebagai nomor nyata, maka tidak mungkin untuk melaksanakan operasi matematik dengannya, kecuali jika hal tersebut dikonversi menjadi nilai numerik. Beberapa fungsi yang ada dalam pustaka C++ untuk mengubah penyajian string angka ke dalam nilai numerik dan sebaliknya. Tabel dibawah menunjukan fungsi-fungsi tersebut: Tabel 8.2. Fungsi Konversi String FUNGSI PENJELASAN atoi Dalam string sebagai argument. Fungsi untuk mengubah String menjadi integer dan mengembalikan nilai. Contoh Penggunaan: num = atoi4569; atol Dalam bahasa c, string sebagai argument. Fungsi untuk mengubah String menjadi long integer dan mengembalikan nilai. 2008 | Direktorat Pembinaan SMK 307 Contoh Penggunaan: lnum = atol500000; atof Menerima C‐string sebagai argumen. Fungsi mengubah string ke dua yang kembali dan nilai. Gunakan fungsi ini mengkonversi string ke float atau double. Contoh Penggunaan: fnum = atof 3,14159 itoa Mengkonversi sebuah integer ke string. Argumen pertama, nilai, adalah integer. Hasilnya akan disimpan di lokasi yang oleh kedua argumen, string. Argumen yang ketiga, basis, merupakan integer. It menentukan penomoran system yang dikonversi integer yang harus dinyatakan dalam 8 = oktal, desimal = 10, 16 = heksadesimal, dll. Contoh Penggunaan: itoa nilai, string, basis; Fungsi atoi mengkonversi string menjadi bilangan integer. Hal tersebut menerima argumentasi string dan kebalika nilai bilangan integer yang dikonversi. Di bawah ini adalah sebuah contoh dari bagai- mana cara melakukan konversi: int num; num = atoi1000; Dalam statemen ini, atoi mengkonversi string 1000 ke dalam bilangan integer 1000. Begitu variabel num diberikan nilai tersebut,maka dapat digunakan dalam operasi matematik atau setiap opersi yang memerlukan suatu nilai numerik. Fungsi atol bekerja seperti halnya atoi, kecuali pada nilai dengan tipe data long integer. Perhatikan contoh dibawah ini: long bigNum; bigNum = atol500000; sebagaimana yang diinginkan, fungsi atof menerima sebuah argumentasi string dan melakukan konversi string menjadi double. Sebuah nilai numerik double akan dikembalikan, seperti ditunjukkan pada program dibawah ini: double fnum; fnum = atof12.67; Fungsi itoa adalah serupa dengan atoi, tetapi itoa bekerja kebalikannya. Itoa akan mengkonversi suatu bilangan integer ke dalam penyajian string yang merepresentasikan bilangan integer. Fungsi itoa menerima tiga argumentasi: yaitu nilai bilangan integer untuk dikonversi, suatu penunjuk pointer menjadi lokasi memori dimana string tersebut disimpan, dan sebuah nomor merepresentasikan dasar-dasar sebuah nilai yang dikonversi. Di bawah ini adalah satu satu contoh instruksinya: char numArray[10]; itoa1200, numArray, 10; cout numArray endl; Sebuah potongan program tersebut diatas akan mengkonversi bilangan integer 1200 menjadi string.