Jumat, 24 Juni 2016

OPERASI STRING, KONVERSI DATA DAN POINTER

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;
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;
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.
·         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,








3 komentar: