Assalamualaikum Wr.Wb
Nggak bosan kan dengan saya...kali ini mau bagi - bagi ilmu tentang String dan
kawan - kawannya... selamat membaca
OPERASI STRING, KONVERSI DATA DAN POINTER
1.Operasi String dan Konversi Data
A.
Operasi
String
String
adalah untaian karekter dengan panjang tertentu. Merupakan susunan dari
elemen-elemaen tipe karakter. Karena sering dipakai dalam pemrograman, maka
string termasuk dalam tipe dasar. Semua konstanta string harus diapit tanda
petik tunggal.
Operasi
yang digunakan:
a. Operasi
Penyambungan
Operasi
: “+”
Contoh
: ‘aaa’ + ‘_bbb’ = ‘aaa bbb’
b. Operasi
Perbandingan
Operatornya
: < (lebih kecil) ≤ (lebih kecil sama dengan) > (lebih besar) ≥ (lebih
besar samadengan) ≠ (tidak sama dengan)
Fungsi Standar
1.
Concat
2.
Copy
3.
POS
4.
Length
|
Prosedur Standar
1.
Delete
2.
Insert
3.
STR
4.
Val
|
Suatu String dalam Bahasa Pascal dapat dioperasikan
dengan berbagai macam tujuan. Pascal menyediakan berbagai prosedur standar dan
fungsi standar untuk operasi string.
Dalam Operasinya String hanya
mempunyai sebuah operator, yaitu operator ‘+’. Bila operator ini digunakan
untuk dua buah elemen string, maka akan menjadi penggabungan dua buah string
menjadi satu.Contoh :
Const
Jenis = 'bahasa';
Nama = 'Pascal';
Var
Sifat : String[15];
Kalimat : String [80];
Begin
Sifat := 'terstruktur';
Kalimat :=
Nama+' merupakan '+Jenis+' '+Sifat;
WriteLn(Kalimat);
readln;
End.
Output:
Pascal merupakan bahasa terstruktur
Konversi data ke tipe
lainnya melalui casting atau penggunaan fungsi konversi
a. Implisit
Conversion
Type
conversion adalah conversi antar type. Coba perhatikan contoh berikut ini.
Terdapat sebuah data ber-type double,
double dValue = 3.14156;
Ada juga sebuah data ber-type int,
int iValue = 3;
Kemudian nilai dari keduanya kita balik menjadi seperti ini :
double dValue = 3;
int iValue = 3.14156;
Terdapat sebuah data ber-type double,
double dValue = 3.14156;
Ada juga sebuah data ber-type int,
int iValue = 3;
Kemudian nilai dari keduanya kita balik menjadi seperti ini :
double dValue = 3;
int iValue = 3.14156;
Lalu apa
yang terjadi? Semua baik baik saja karena compiler sudah tahu apa yang harus
dilakukan. Maka secara otomatis Compiler meng-konversi data int ke double dan
data double ke int.
b. Casting
Casting merupakan explicit conversion. Dalam pemrograman C, kita bisa melakukan casting hanya dengan operator () dimana type data diletakkan di dalamnya.
Int a = 2;
Int b = 3;
float hi = (float)a*b;
cout << hi << endl;
Casting merupakan explicit conversion. Dalam pemrograman C, kita bisa melakukan casting hanya dengan operator () dimana type data diletakkan di dalamnya.
Int a = 2;
Int b = 3;
float hi = (float)a*b;
cout << hi << endl;
Kita
menambahkan (float) sebagai operator untuk casting int ke float. Ini adalah
standar pemrograman C.Sesuai dengan hirarki data di atas, bila a sudah menjadi
float, maka data b nantinya mengikuti float :) , akhirnya, pembagian berada
dalam proses float, bukan integer.
Berikut merupakan type casting tersebut.
Berikut merupakan type casting tersebut.
·
Static Cast
Static_cast
dapat melakukan konversi antara pointer ke kelas terkait, tidak hanya dari
kelas turunan untuk nya dasar, tetapi juga dari kelas dasar untuk turunannya.
Hal ini memastikan bahwa setidaknya kelas yang kompatibel jika tepat objek
diubah, tetapi tidak ada pemeriksaan keamanan dilakukan selama runtime untuk
memeriksa apakah objek yang dikonversi dalam. Bahkan benda penuh jenis tujuan
·
Reinterpret
Cast
·
Const Cast
·
Dynamic Cast
2. Pointer
Pointer (
petunjuk ) yaitu variabel yang berisi alamat dari suatu variabel lain. Pointer
ini digunakan dengan maksud untuk menunjukan ke suatu alamat memori sehingga
kita dapat mengetahui dengan mudah alamat dari suatu variabel. Pointer juga
bisa diartikan sebagai tipe data yang nilainya mengarah pada nilai yang
terdapat pada alamat memori.
Fungsi
Pointer yang utama yaitu menyimpan alamat memori dari sebuah variabel. Pointer
juga dapat berfungsi untuk menyimpan suatu alamat memori dari sebuah fungsi.Contoh Program :
// Pointer.cpp :
Defines the entry point for the console application.
//
#include
"stdafx.h"
#include
<iostream>
using namespace std;
int _tmain(int argc,
_TCHAR* argv[])
{
int panjang;
int *a;
panjang = 20;
a = &panjang;
cout <<
"Alamat memory panjang terletak di "<< a << endl;
cout << "Nilai panjang a adalah
"<< *a << endl;
cout <<
"www.bantubelajar.com\n" << endl;
return 0;
}
Macam - Macam Pointer :
1. Operator
Dereference (&)
Operator
Dereference (&) yaitu operator yang berfungsi mendeklarasikan suatu
variabel didalam penggantian memori. operator ini biasa disebut dengan “address
of”. Jika ingin mengetahui dimana variable akan disimpan, kita dapat
memberikan tanda ampersand (&) didepan variable , yang berarti“address of”.
Dari contoh
program diatas, nilai a menjadi angka 0096F7DC, dengan menambahkan
"&" pada variabel panjang, inilah yang dimaksud operator
dereference, yaitu mengubah suatu nilai variabel menjadi alamat memori.
2. Operator Reference (*)
Operator
Reference ini berkebalikan dengan operator Dereference dimana nilai variabel
menjadi alamat memory sedangkan operator reference mengubah alamat memory
menjadi nilai variabel.
Operator
Reference (*) yaitu operator yang dapat mengakses secara langsung
nilai yang terdapat didalam variabel yang berpointer, hal ini dapat
dilakukan dengan menambahkan identifier asterisk ( * ). Operator ini biasa
disebut dengan“value pointed by”
Dari contoh
program diatas, nilai *a menjadi angka 20, dengan menambahkan "*"
pada variabel a, dimana alamat memory 0096F7DC kembali menjadi nilai variabel
yaitu 20, inilah yang dimaksud operator reference, yaitu mengubah
suatu alamat memori kembali menjadi nilai variabel.
ARRAY POINTER
Pointer dapat diarraykan seperti tipe data yang lain
dalam C++. Untuk menyatakan sebuah array pi dari pointer sebanyak 10 buah data
yang bertipe 10 integer, dapat ditulis : int *pi [10];
Untuk menentukan alamat dari variabel integer disebut
var ke elemen ketiga dari pointer array, dapat ditulis :
int var;
pi [2] = &var
Contoh
Program :
//Program:point10.cpp
#include <iostream.h>
int main ()
{
int numbers[5];
int *p;
p = numbers; *p = 10;
p++; *p = 20;
p = &numbers[2]; *p = 30;
p = numbers + 3; *p = 40;
p = numbers; *(p+4) = 50;
for (int n=0; n<5; n++)
cout << numbers[n] << ", ";
return 0;
}
Bila program diatas dijalankan, maka hasilnya adalah sebagai berikut :
10, 20, 30, 40, 50,