Pengenalan Bahasa Pemrograman C++ Part 4 Lengkap
Pengenalan Bahasa Pemrograman C++ Part 4 Lengkap
Bahasa Pemrograman C++ adalah bahasa pemrograman komputer yang di buat oleh Bjarne Stroustrup, yang merupakan perkembangan dari bahasa C dikembangkan di Bell Labs (Dennis Ritchie) pada awal tahun 1970-an, bahasa itu diturunkan dari bahasa sebelumnya, yaitu B. Pada awalnya, bahasa tersebut dirancang sebagai bahasa pemrograman yang dijalankan pada sistem Unix.
Pada perkembangannya, versi ANSI (American National Standards Institute) pada bahasa pemrograman C menjadi versi dominan, meskipun versi tersebut sekarang jarang dipakai dalam pengembangan sistem dan jaringan maupun untuk sistem embedded.
Bjarne Stroustrup pada Bell Labs pertama kali mengembangkan C++ pada awal 1980-an. Untuk mendukung fitur-fitur pada C++, dibangun efisiensi dan sistem support untuk pemrograman tingkat rendah (low level coding). Pada C++ ditambahkan konsep-konsep baru seperti class dengan sifat-sifatnya seperti inheritance dan overloading.
Salah satu perbedaan yang paling mendasar dengan bahasa C adalah dukungan terhadap konsep pemrograman berorientasi objek (object-oriented programming).
Bahasa pemrograman C++ dapat digunakan untuk pengembangan sebuah perangkat lunak atau yang sering disebut Software.
Di artikel kali ini admin akan memberikan beberapa contoh dari bahasa pemrograman C++, yang sebelumnya sudah admin bahas di artikel sebelumnya.
Jika penasaran dengan pembahasan sebelumnya silahkan klik link dibawah ini.
1. Bahasa Pemrograman Part 1
2. Bahasa Pemrograman C++ Part 2
3. Bahasa Pemrograman C++ Part 3
DASAR STRING
a.1. Konstatnta String
Suatu konstanta string ditulis dengan awalan dan akhiran tanda petik ganda ( “ ). Misalnya :
“ C++ “
Konstanta string disimpan dalam memori secara berurutan, setiap karakter menempati memori sebesar 1 byte. Setelah karakter yang terakhir terdapat karakter NULL (karakter dengan nilai ASCII sama dengan nol atau disimbolkan dengan ‘\0’, yaitu tanda \ diikuti nol).
Bila suatu string hanya berisi karakter NULL, string disebut sebagai string kosong.
a.2. Variabel String
Variabel string adalah variabel yang dipakai untuk menyimpan string. Misalnya :
char teks[10];
merupakan pernyataan untuk mendefinisikan variabel string dengan panjang maksimal 15 karakter (sudah termasuk karakter NULL).
a.3. Memasukan Data String Dari Keyboard
Setelah suatu variabel string didefinisikan, bisa mengisikan data ke variabel tersebut. Pemasukkan data dapat ditangani oleh cin.
Contoh program :
//*---------------------------------------------------------*
//* Contoh a.1 : Pendefinisian variabel string dan *
//* pengisian variabel melalui cin *
//*---------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
char teks[13]; // String dengan panjang maksimal
// 13 karakter
clrscr();
cout << “Masukkan sebuah kata “ << endl;
cin >> teks;
cout << “Yang Anda Masukkan : “ << teks << endl;
}
Pada contoh diatas bila Anda memasukkan sebuah kata seperti :
“Halo, Sobat”. Maka kata setelah spasi tidak akan terbaca, untuk mengatasi hal ini anda dapat menggunakan fungsi anggota get() pada obyek cin (cin.get()). Seperti contoh program berikut :
//*------------------------------------------------------------*
//* Contoh a.2 : Pendefinisian variabel string dan *
//* pengisian variabel melalui cin.get() *
//*------------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
char teks[13]; // String dengan panjang maksimal
// 13 karakter
clrscr();
cout << “Masukkan sebuah kata “ << endl;
cin.get >> (teks, 13);
cout << “Yang Anda Masukkan : “ << teks << endl;
}
a.3. Fungsi dan Makro Berbasis Karakter
Fungsi Makso berguna untuk menganalisis karakter-karakter yang terdapat pada suatu string ataupun untuk melakukan konversi (misalnya huruf kecil menjadi huruf kapital).
Makro keluarga adalah...
Sejumlah makro dengan awalan is, adalah sebagai berikut :
- isalnum() : karakter alphanumeris (digit, huruf kecil atau huruf kapital)
- asalpha() : karakter alphabetis ( huruf kecil atau huruf kapital)
- isascii() : karakter ASCII standar
- iscntrl() : karakter kontrol
- isdigit() : karakter digit (0 sampai dengan 9)
- isgraph() : karakter yang dapat ditampilkan tetapi spasi tidak
- islower() : huruf kecil (a sampai z)
- isprint() : karakter yang dapat ditampilkan termasuk spasi
- ispunct() : tanda pungtuasi ( seperti ! ataupun ?)
- isupper() : huruf kapital ( A sampai Z)
- isxdigit() : digit heksadesimal ( 0 samapi 9, Asamapai F, a sampai f)
Contoh program :
//*---------------------------------------------------------------*
//* Contoh 7.3 : Contoh pemakaian islower(), isupper() *
//* isdigit(), ispunct() *
//*----------------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
char st[128];
int jum_kapital = 0,
jum_kecil = 0,
jum_pungtuasi = 0,
jum_digit = 0;
clrscr();
cout << “Masukkan string apa saja : “ << endl;
cin.getline(st, sizeof(st)) ;
for (int i = 0; st[i]; i ++ )
{
if (islower(st[i]))
jum_kecil++;
if (isupper(st[i]))
jum_kapital++;
if (isdigit(st[i]))
jum_digit++;
if (ispunct(st[i]))
jum_pungtuasi++;
}
cout << endl ; // Pindah baris
cout << Jumlah Huruf Kapital : “ << jum_kapital << endl;
cout << Jumlah Huruf Kecil : “ << jum_kecil << endl;
cout << Jumlah Digit : “ << jum_digit << endl;
cout << Jumlah pungtuasi : “ << jum_pungtuasi << endl;
}
a.4. Konversi String ke Angka atau Sebaliknya
Untuk melakukan konversi string ke bilangan, Anda dapat menggunakan sejumlah fungsi bawaan. Fungsi yang tersidia adalah sebagai berikut :
Fungsi Prototipe Keterangan
atio() stdlib.h Mengkonversi string argumen menjadi nilai bertipe int
atof() stdlib.h Mengkonversi string argumen menjadi nilai bertipe float
atol() stdlib.h Mengkonversi string argumen menjadi nilai bertipe long int
_atold() stdlib.h Mengkonversi string argumen menjadi nilai bertipe long double (hanya terdapat dalam borland C++)
Adapun fungsi untuk bilangan ke string adalah sebagai berikut :
Fungsi Prototipe Keterangan
Itoa() stdlib.h Untuk mengkonversi suatu bilangan bertipe int menjadi string
Ltoa() stdlib.h Untuk mengkonversi suatu bilangan bertipe long int menjadi string
ultoa() stdlib.h Untuk mengkonversi suatu bilangan bertipe unsigned long int menjadi string
a.5. String sebagai Parameter Fungsi
String sebagai parameter fungsi pada dasarnya sama dengan array sebagai parameter fungsi.
Contoh program :
//*-------------------------------------------------------------*
//* Contoh 7.4 : pembuatan fungsi yang melibatkan *
//* argument bertipe string *
//*-------------------------------------------------------------*
#include <iosstream.h>
#include <conio.h>
#include <string.h>
void RataKiri(char hasil[], char st[], int n);
void main()
{
char teks[] = “Bahasa C++”;
char hasil[128];
clrscr();
int panjang = strlen(teks);
for (int i = 0; i < panjang; i++)
{
RataKiri(hasil, teks, i+1);
cout << hasil << endl;
}
}
Dalam program diatas argumen fungsi ditulis dengan bentuk seperti hasil[] pada pendefinisian fungsi. Tetapi hal ini tidaklah umum sebagai pengantinya argumen string dinyatakan dengan pointer yang menunjuk ke tipe char.
MENGENAL POINTER
b.1. Mendefinisikan Variabel Pointer
Suatu variabel pointer didefinisikan dengan bentuk sebagai berikut :
tirp_data*nama_variabel
- tipe_data dapat berupa sembarang tipe seperti halnya pada pendefinisian variabel bukan pointer.
- nama_variabel adalah nama variabel pointer.
Supaya suatu variabel menunjuk ke variabel lan, mula-mula harus diisi dengan alamat dari variabel yang hendak ditunjuk.
Contoh program :
//*--------------------------------------------------------------*
//* Contoh b.1 : Pendefinisian variabel pointer dan *
//* pengisian alamat ke variabel tersebut *
//*--------------------------------------------------------------*
#include <iostreamh>
#include <conio.h>
void main()
{
int vint = 55; // Variabel bukan pointer
int *pint; // Variabel pointer
clrscr();
pint = &vint; // Pointer menunjuk ke vint
cout << “ Alamat vint = “ << &vint << endl;
cout << “pint = “ << pint << endl;
}
Pada program diatas :
cout << “pint = “ << pint << endl;
ternyata menampilkan isi pointer itu sendiri, bukan isi dari variabel vint.
b.2. Mengakses Nilai yang ditunjuk Pointer
Berdasarkan contoh program b.1. didepan, nilai dari vint dapat diakses melalui pint setelah pernyataan :
pint = &vint
dijalankan. Caranya dengan melibatkan operator “tak langsung”. Operator ini berupa simbol “ * “ dan diletakkan di depan nama variabel pointer.Contoh
*pint
Contoh program :
//*--------------------------------------------------------*
//* Contoh b.2 : Pengaksesan nilai melalui suatu *
//* pointer *
//*--------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
int vint = 55; // Variabel bukan pointer
int *pint; // Variabel pointer
clrscr();
pint = &vint; // Pointer menunjuk ke vint
cout << “ Nilai yang ditunjuk oleh pint = “
<< *pint << endl;
}
b.3. Pointer Void
Untuk memebuat pointer yang tidak bertipe yakni dengan meletakkan kata kunci pada void pada bagian penentu tipe pointer. Contoh :
void *ptr;
Merupakan pernyataan untuk mendefinisikan ptr sebagai variabel pointer void.
Suatu pointer void adalah pointer yang dapat menunjuk ke sembarang tipe data. Misalnya, Anda dapat mengatur agar pointer ini menunjuk ke tipe data int, tetapi di saat lain diperlukan untuk menunjuk data bertipe float.
Contoh program :
//*--------------------------------------*
//* Contoh b.3 : Pointer void *
//*--------------------------------------*
#include <iostream.h>
#include <conoi.h>
void main()
{
clrscr();
void *ptr; // Pointer tak bertipe
int vint = 50;
float vfl = 51.5;
ptr = &vint; // menunjuk ke int
cout << “Nilai yang ditunjuk oleh ptr = “
<< *(int *)ptr << endl;
ptr = &vfl; // menunjuk ke float
cout << “Nilai yang ditunjuk oleh ptr : “
<< “*(float *) ptr << endl;
}
Dari program diatas bahwa variabel pointer ptr dapat menunjuk ke tipe int ataupun float.
Pointer dapat pula digabungkan dengan array, karena pada umumnya antara pointer dan array mempunyai kesamaan.
Contoh program :
//*--------------------------------------------------------*
//* Contoh b.4 : Pointer yang menunjuk ke array *
//*--------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
clrscr();
int tgl_lahir[] = {28, 11, 1982 };
int *ptgl;
ptgl = tgl_lahir; // ptgl menunjuk ke array
cout << “Nilai yang ditunjuk oleh ptgl : “
<< *ptgl << endl;
cout << “Nilai dari tgl_lahir[0] : “
<< tgl_lahir << endl;
}
Setelah penugasan ptgl = tgl_lahir ptgl akan menunjuk ke elemen pertama (tgl_lahir[0]) dari array tgl_lahir.
STRUKTUR, ENUM, UNION, BIT-FIELD DAN TYPEDEF
c.1. Struktur
Struktur bermanfaat untuk mengelompokkan sejumlah data dengan tipe yang berlainan. Apabila suatu struktur telah dideklarasikan, struktur ini dapat dgunakan untuk mendefinisikan suatu variabel.
Suatu struktur juga dapat mengandung struktur yang lain dan anggota struktur dapat diakses menggunakan bentuk :
variable_struktur.nama_anggota
Contoh program lengkap yang melibatkan pendeklarasian dan pendefinisian variabel struktur dan juga pengaksesan terhadap anggota variabel struktur dapat dilihat dibawah ini :
//*----------------------------------------------------------*
//* Contoh c.1 : Pendeklarasian, pendefinisian dan *
//* pengaksesan struktur *
//*----------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
struct data_tanggal // Pendeklarasian
{
int tahun;
int bulan;
int tanggal;
};
data_tanggal tanggal_lahir // Pendefinisian struktur
// Pengaksesan anggota struktur
tanggal_lahir.tangal = 28;
tanggal_lahir.bulan = 11;
tanggal_lahir.tahun = 1982;
cout << tanggal_lahir.tanggal << ‘ / ’
<< tanggal_lahir.bulan << ‘/ ’
<< tanggal_lahir.tahun << endl;
}
Pada program diatas tanda titik diantara nama variabel dan nama anggota menyatakan penugasan untuk memberikan nilai 28 ke anggota tanggal pada variabel struktur tanggal_lahir.
Pemberian nilai terhadap suatu struktur dapat dilakukan dengan bentuk :
var1 = var2;
sepanjang kedua variabel adalah variabel struktur bertipe sama.
Contoh program :
//*--------------------------------------------*
//* Contoh c.1 : Penugasan struktur *
//*--------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
struct data_tanggal // Pendeklarasian
{
int tahun;
int bulan;
int tanggal;
};
data_tanggal tgl1, tgl2 ; // Pendefinisian struktur
// Penugasan per anggota
tgl1.tanggal = 28;
tgl1.bulan = 11;
tgl1.tahun = 1982;
// Penugasan antaranggota struktur
tgl1 = tgl2;
cout << tgl2.tanggal << ‘ / ’
<< tgl2.bulan << ‘ / ’
<< tgl2.tahun << endl;
}
c.2. Union
Union menyerupai struktur (termasuk dalam hal pengaksesannya), namun mempunyai perbedaan nyata. Union biasa dipakai untuk menyatakan suatu memori dengan nama lebih dari satu.
Contoh program :
//*----------------------------------------------*
//* Contoh c.2 : Pendefinisian union *
//*----------------------------------------------*
#include <iostream.h>
#include <conio.h>
union bil_bulat
{
unsigned int di;
unsigned char dc[2];
};
void main()
{
clrscr();
bil_bulat bil_x; // Pendefinisian union
bil_x.di = 0x2345;
cout << setiosflags(ios::showbase);
cout << hex << “di : “ << bil_x.di << endl;
cout << hex << “dc[0] : “ << int(bil_x.dc[0]) << endl;
cout << “dc[1] : “ << int(bil_x.dc[1) << endl;
}
Tampak bahwa dengan mengisikan nilai bil_x.di, data dapat diakses melalui bil_x.dc. dalam hal ini, bil_x.dc[0] menyimpan byte rendah dari bil_x.di dan bil_x.dc[1] berkaitan dengan byte tinggi dari bil_x.di (mengingat bil_x.di berukuran dua byte).
Seperti halnya struktur, variabel union juga dapat diinisialisasi saat didefinisikan.
Contoh program :
//*--------------------------------------------*
//* Contoh c.2 : Inisialisasi Union *
//*--------------------------------------------*
#include <iostream.h>
#include <conio.h>
union bil_bulat
{
unsigned int di;
unsigned char dc[2];
};
void main()
{
clrscr();
bil_bulat bil_x = 0x2345; // Inisialisasi
cout << setiosflags(ios::showbase);
cout << hex << “di : “ << bil_x.di << endl;
cout << hex << “dc[0] : “ << int(bil_x.dc[0]) << endl;
cout << “dc[1] : “ << int(bil_x.dc[1) << endl;
}
c.3. Struktur Bit-field
Satu bit atau beberapa bit dalam sebuah data berukuran suatu byte atau dua byte dapat diakses dengan mudah malalui bit-field. Dengan cara ini suatu bit atau beberapa bit dapat diakses tanpa melibatkan operator manipulasi bit (seperti & dan || ). Selain itu satu atau dua byte meri dapat dipakai untuk menyimpan sejumlah informasi.
Conto program :
//*---------------------------------------------------------*
//* Contoh c.3 : bit-filed untuk mengakses bit-bit *
//* dalam sebuah byte data *
//*---------------------------------------------------------*
#include <iostream.h>
#include <conio.h>
// Pendeklarasian bit-field
struct info_bit
{
unsigned bit0 : 1;
unsigned bit1 : 1;
unsigned bit2 : 1;
unsigned bit3 : 1;
unsigned bit4 : 1;
unsigned bit5 : 1;
unsigned bit6 : 1;
unsigned bit7 : 1;
};
void main()
{
clrscr();
union ubyte // Pendeklarasian union
{
unsigned char byte;
info_bit bit;
};
ubyte ascii; // Pendeklarian variabel union
int nilai;
cout << “ Masukkan ascii antara 0 s/d 255 : “;
cout << ascii.bit.bit7 << ascii.bit.bit6
cout << ascii.bit.bit5 << ascii.bit.bit4
cout << ascii.bit.bit3 << ascii.bit.bit2
<< ascii.bit.bit1 << ascii.bit.bit0 << endl;
}
Perlu diketahui, suatu variabel yang didefinisikan sebagai bit-field tidak bisa diisi secara langsung dengan suatu nilai. Oleh karena itu biasa dibentuk didalam union.
c.4. Enum
Tipe enum biasa dipakai kalau kemungkinan nilai dari suatu data telah diketahui, dan jumlah kemungkinannya tidak banyak.
Contoh program :
//*-----------------------------------------------------*
//* Contoh c.4 : tipe enum *
//*-----------------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
clrscr();
enum nama_hari { Senin, Selasa, Rabu, Kamis, Jumat,
Sabtu, Minggu };
nama_hari hari1, hari2; // Pendefinisian enum
// Pemberian nilai enum
hari1 = Senin;
hari2 = Jumat;
int selisih = hari2 – hari1;
cout << “Selisih Hari : “ << selisih << endl;
}
Pada contoh diatas terdapat pendeklarasian tipe enum berupa nama_hari¬. Anggota tipe enum nama_hari berupa Senin, Selasa, Rabu dan seterusnya.
nma_hari hari1, hari2 merupakan pernytaan untuk mendefinisikan variabel bernama hari1 dan hari2 yang bertipe enum nama_hari.
c.5. typedef
typedef biasa dipakai untuk memberikan nama alias terhadap suatu tipe data. Sebagai contoh anda dapat memberikan nama alias dari unsigned char berupa BYTE.
Contoh program :
//*-----------------------------------------------*
//* Contoh c.5 : typedef *
//*-----------------------------------------------*
#include <iostream.h>
#include <conio.h>
void main()
{
clrscr();
typedef unsigned char BYTE;
BYTE kode; // Sebagai pemendekan dari : unsigned char code;
kode = 65;
cout << kode; // Karakter ASCII 65
}
HALAMAN SELANJUTNYA:
Komentar
Posting Komentar