Konversi String/Numeric

8.7. Konversi String/Numeric

Fungsi strstr mencari string yang Ada suatu perbedaan besar sesuai oleh prods[index] karena antara nomor yang disimpan sebagai nama yang dimasukkan oleh string dan yang disimpan sebagai

pengguna, yang mana disimpan nilai klasifikasi. String "26792" dalam lookUp. Jika lookUp ditemukan sebenarnya tidak sebagai nomor,

di dalam prods[index], fungsi akan tetapi rangkaian yang diwakili kode- mengembalikan alamatnya. Dalam

kode ASCII untuk setiap digit-digit kasus tersebut, statemen if dari nomor. Rangkaian tersebut

menyebabkan pengulangan akan menggunakan enam byte dari berakhir.

memori termasuk kode akhir string (null).

if (strPtr != NULL) Karena itu bukan sebagai nomor break; nyata, maka tidak mungkin untuk

melaksanakan operasi matematik Di luar pengulangan tersebut, sesuai

dengannya, kecuali jika hal tersebut statemen IF-ELSE untuk menentukan

dikonversi menjadi nilai numerik. jika string dimasukkan oleh pengguna

Beberapa fungsi yang ada dalam ditemukan dalam array. Jika tidak, pustaka C++ untuk mengubah

maka akan menginformasikan penyajian string angka ke dalam nilai kepada pengguna bahwa tidak ada numerik dan sebaliknya. Tabel produk yang sesuai ditemukan. dibawah menunjukan fungsi-fungsi Sebaliknya, nomor produk dan tersebut: deskripsi akan ditampilkan:

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 = atoi("4569"); atol Dalam bahasa c, string sebagai argument. Fungsi untuk mengubah String menjadi long integer dan mengembalikan nilai.

Direktorat Pembinaan SMK| 2008

Operasi String Bahasa Pemrorgraman

Contoh Penggunaan: lnum = atol("500000"); 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 double akan dikembalikan, seperti menjadi bilangan integer. Hal ditunjukkan pada program dibawah tersebut menerima argumentasi ini: string dan kebalika nilai bilangan integer yang dikonversi. Di bawah ini

double fnum;

adalah sebuah contoh dari bagai-

fnum = atof("12.67");

mana cara melakukan konversi:

Fungsi itoa adalah serupa int num;

dengan atoi, tetapi itoa bekerja num = atoi("1000");

kebalikannya. Itoa akan mengkonversi suatu bilangan integer

Dalam statemen ini, atoi ke dalam penyajian string yang mengkonversi string "1000" ke dalam

merepresentasikan bilangan integer. bilangan integer 1000. Begitu Fungsi itoa menerima tiga variabel num diberikan nilai argumentasi: yaitu nilai bilangan tersebut,maka dapat digunakan integer untuk dikonversi, suatu dalam operasi matematik atau setiap

penunjuk pointer menjadi lokasi opersi yang memerlukan suatu nilai memori dimana string tersebut numerik.

disimpan, dan sebuah nomor Fungsi atol bekerja seperti merepresentasikan dasar-dasar halnya atoi, kecuali pada nilai dengan

sebuah nilai yang dikonversi. Di tipe data long integer. Perhatikan bawah ini adalah satu satu contoh contoh dibawah ini:

instruksinya:

long bigNum;

char numArray[10];

bigNum = atol("500000");

itoa(1200, numArray, 10); cout << numArray << endl;

sebagaimana yang diinginkan, fungsi atof menerima sebuah argumentasi

Sebuah potongan program string dan melakukan konversi string

tersebut diatas akan mengkonversi menjadi double. Sebuah nilai numerik

bilangan integer 1200 menjadi string.

2008 | Direktorat Pembinaan SMK

Bahasa Pemrograman Operasi String

String tersebut kemudian disimpan di Sekarang perhatikan program dalam sebuah array dengan nama dibawah ini, yang menggunakan numArray. Argumentasi yang ketiga,

sebuah fungsi konversi string-to-

10, berarti nomor harus ditulis dalam number, atoi. Pada program meminta sistim desimal, atau notasi dasar 10.

pengguna untuk memasukan sebuah Keluaran dari statemen cout diatas rangkaian nilai-nilai, atau surat Q adalah:

atau q untuk berhenti. Rata-rata dari angka-angka tersebut kemudian 1200 dihitung dan ditampilkan.

Program 8.10 #include<conio.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 = 0 , count = 0 ;

double average;

cout << "Program ini akan mencari rata‐rata bilangan.\n" ; cout << "Masukan bilangan pertama atau tekan Q untuk keluar: " ; cin.getline(input, LENGTH);

while ((strcmp(input, "Q" ) != 0 )&&(strcmp(input, "q" ) != 0 ))

{ total += atoi(input); count++; cout << "Masukan bilangan selanjutnya atau tekan Q untuk keluar: " ; cin.getline(input, LENGTH); }

if (count != 0 ) { average = double(total)/count; cout << "Reratanya adalah: " << average << endl; }

Direktorat Pembinaan SMK| 2008

Operasi String Bahasa Pemrorgraman

getch(); return 0 ; }

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 kedalam pada masukan menjadi untuk membandingkan dua string. bilangan integer dan menambahkan Jika kedua string serupa, maka nilai

nilai total secara keseluruhan akan diisi dengan 0. sebaliknya jika sebagaimana dalam insruksi berikut tidak maka nilai yang diisikan bukan

ini:

nol. Sebagaimna statemen while, strcmp digunakan untuk menentukan,

total += atoi(input); // Keep a running jika string masukannya total menggunakan salah satu "Q" atau "q".

user kemudian akan meminta nomor berikut. Ketika semua angka-angka

while ((strcmp(input, "Q") != telah dimasukkan, user mengakhiri 0)&&(strcmp(input, "q") != 0))

pengulangan dengan memasukan karakter "Q" atau "q". Jika satu atau

Jika user tersebut belum lebih angka-angka tersebut telah memasukkan karakter "Q" atau "q" dimasukkan, maka perhitungan rata- maka program akan menggunakan rata angka-angka tersebut akan atoi untuk mengkonversi string ditampilkan.