Konversi StringNumeric OPERASI STRING

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. 308 Direktorat Pembinaan SMK| 2008 String tersebut kemudian disimpan di dalam sebuah array dengan nama numArray. Argumentasi yang ketiga, 10, berarti nomor harus ditulis dalam sistim desimal, atau notasi dasar 10. Keluaran dari statemen cout diatas adalah: 1200 Sekarang perhatikan program dibawah ini, yang menggunakan sebuah fungsi konversi string-to- number, atoi. Pada program meminta pengguna untuk memasukan sebuah rangkaian nilai-nilai, atau surat Q atau q untuk berhenti. Rata-rata dari angka-angka tersebut kemudian dihitung dan ditampilkan. Program 8.10 includeconio.h include iostream include cstring untuk strcmp include cstdlib untuk atoi using namespace std; int main { const int LENGTH = 20 ; char input[LENGTH]; int total = , count = ; double average; cout Program ini akan mencari rata‐rata bilangan.\n ; cout Masukan bilangan pertama atau tekan Q untuk keluar: ; cin.getlineinput, LENGTH; while strcmpinput, Q = strcmpinput, q = { total += atoiinput; count++; cout Masukan bilangan selanjutnya atau tekan Q untuk keluar: ; cin.getlineinput, LENGTH; } if count = { average = doubletotalcount; cout Reratanya adalah: average endl; } 2008 | Direktorat Pembinaan SMK 309 getch; return ; } Keluaran program, diatas adalah: Program ini akan mencari rata‐rata bilangan. Masukan bilangan pertama atau tekan Q untuk keluar: 45 Masukan bilangan selanjutnya atau tekan Q untuk keluar: 67 Masukan bilangan selanjutnya atau tekan Q untuk keluar: 65 Masukan bilangan selanjutnya atau tekan Q untuk keluar: 45 Masukan bilangan selanjutnya atau tekan Q untuk keluar: 43 Masukan bilangan selanjutnya atau tekan Q untuk keluar: 23 Masukan bilangan selanjutnya atau tekan Q untuk keluar: 23 Masukan bilangan selanjutnya atau tekan Q untuk keluar: 45 Masukan bilangan selanjutnya atau tekan Q untuk keluar: 67 Masukan bilangan selanjutnya atau tekan Q untuk keluar: q Reratanya adalah: 47 Pemanggilan fungsi strcmp untuk membandingkan dua string. Jika kedua string serupa, maka nilai akan diisi dengan 0. sebaliknya jika tidak maka nilai yang diisikan bukan nol. Sebagaimna statemen while, strcmp digunakan untuk menentukan, jika string masukannya menggunakan salah satu Q atau q. while strcmpinput, Q = 0strcmpinput, q = 0 Jika user tersebut belum memasukkan karakter Q atau q maka program akan menggunakan atoi untuk mengkonversi string kedalam pada masukan menjadi bilangan integer dan menambahkan nilai total secara keseluruhan sebagaimana dalam insruksi berikut ini: total += atoiinput; Keep a running total user kemudian akan meminta nomor berikut. Ketika semua angka-angka telah dimasukkan, user mengakhiri pengulangan dengan memasukan karakter Q atau q. Jika satu atau lebih angka-angka tersebut telah dimasukkan, maka perhitungan rata- rata angka-angka tersebut akan ditampilkan.

8.8. Menguji sebuah Karakter

Library bahasa C++ menyediakan beberapa fungsi yang memperbolehkan seorang programer untuk menguji nilai dari sebuah karakter. Fungsi tersebut menguji sebuah argumentasi int tunggal dan hasil pengujian tersebut berupa benar atau salah. Sebuah bilangan 310 Direktorat Pembinaan SMK| 2008 integer adalah Kode ASCII dari suatu karakter. Sebagai contoh pada segmen program berikut dibawah menggunakan fungsi isupper 86 untuk menentukan jika karakter lolos dari sebagai huruf besar sebagai argumentasi yang diinginkan. Jika hal tersebut sesuai maka fungsi akan benar. Jika tidak, maka hasilnya salah. char letter = a; if isupperletter cout huruf uppercase.\n ; else cout huruf bukan uppercase.\n ; Pada contoh program diatas menggunakan variabel huruf yang berisi karakter huruf kecil, maka isupper akan salah. Sehingga statemen akan menyebabkan pesan yang muncul huruf bukan uppercase. Tabel dibawah merupakan daftar beberapa fungsi untuk menguji karakter. Tiap-tiap fungsi diterapkan dalam file header cctype, maka file header harus dipastikan tertulis dalam program ketika menggunakan fungsi tersebut. Tabel 8.3. Fungsi Pengujian Karakter FUNGSI KARAKTER PENJELASAN isalpha Returns betul angka bukan angka nol jika argumen adalah huruf alfabet. Returns salah jika argumen bukan huruf. isalnum Return betul angka bukan angka nol jika argumen berupa huruf atau angka. Sebaliknya return adalah salah. isdigit Returns betul angka bukan angka nol jika argumen adalah angka 0 sampai 9. Sebaliknya selain itu salah. islower Return betul angka bukan angka nol jika argumen berupa huruf kecil. Sebaliknya jika tidak maka salah. isprint Return betul angka bukan angka nol jika argumen berupa karakter yang dapat dicetak termasuk spasi. jika tidak maka Return salah. ispunct Returns betul angka bukan angka nol jika argumen yang dicetak adalah karakter selain angka, huruf, atau ruang. Selain itu salah. isupper Returns betul angka bukan angka nol jika argumen adalah huruf besar. Selain itu salah isspace Return betul angka bukan angka nol jika argumen berupa karakter spasi, selain itu salah. Karakter spasi adalah salah satu dari karakter berikut ini: spasi vertikal tab \v line baru ‘\n’ tab ‘\t’