Modul Praktikum C++ PDF
Modul Praktikum C++ PDF
BAB I
PENGENALAN C/C++
1.1 Algoritma & Pemrograman
Algoritma adalah urutan aksi-aksi yang dinyatakan dengan jelas dan tidak
rancu untuk memecahkan suatu masalah dalam rentang waktu tertentu. Setiap
aksi harus dapat dikerjakan dan mempunyai efek tertentu. Algoritma merupakan
logika, metode dan tahapan (urutan) sistematis yang digunakan untuk
memecahkan suatu permasalahan. Algoritma dapat dituliskan dengan banyak
cara, mulai dari menggunakan bahasa alami yang digunakan sehari-hari, simbol
grafik bagan alir (flowchart), sampai menggunakan bahasa pemrograman seperti
bahasa C atau C++.
Program adalah kompulan instruksi komputer, sedangkan metode dan
tahapan sistematis dalam program adalah algoritma. Program ini ditulis dengan
menggunakan bahasa pemrograman. Jadi bisa kita sebut bahwa program adalah
suatu implementasi dari bahasa pemrograman.
Beberapa pakar memberi formula bahwa:
program = struktur data + algoritma
Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat
pada sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang
tepat akan membuat program menjadi kurang baik, semikian juga sebaliknya.
Struktur data disini bisa berupa list, tree, graph, dsb.
1.2 Sejarah C++
C++ adalah pengembangan dari bahasa C, yang merupakan pengembangan
dari dua bahasa bahasa pemograman generasi sebelumnya, yaitu BCPL dan B.
BCPL dibuat pada tahun 1967 oleh Martin Richards sebagai bahasa untuk menulis
sistem operasi dan compiler. Ken Thompson membuat banyak fitur pada bahasa B
yang dibuatnya dan menggunakan B untuk membuat versi awal dari sistem
operasi UNIX di Bell Loboratories pada tahun 1970 pada komputer DEC PDP-7.
Bahasa C dikembangkan dari bahasa B oleh Dennis Ritchie di Bell
Laboratories dan pada awalnya diimplemntasi pada komputer DEC PDP-11 pada
tahun 1972. C menggunakan banyak konsep penting dari BCPL dan B sekaligus
ada tambahan jenis-jenis data dan fitur lainnya. C kemudian dikenal sebagai
bahasa pengembang sistem operasi UNIX. Pada masa sekarang, kebanyakan
sistem operasi ditulis dengan menggunakan C dan/atau C++. C tersedia untuk
hampir semua komputer.
Pada akhir dekade 1970 an, C telah berkembang dengan menjadi sesuatu
yang sekarang disebut C tradisional, C klasik, atau C Kernighan dan Ritchie.
C++ adalah penambahan dari C, dikembangkan oleh Bjarne Stroustup pada
awal dekade 1980 an di Bell Laboratories. C++ memberikan tambahan fitur yang
meningkatkan kekuatan bahasa C, dan yang lebih penting lagi, kemampuan untuk
pemograman berbasis object (Object Oriented Programming).
1.2 Kelebihan dan Kekurangan
Kelebihan Bahasa C/C++
Kode bahasa C/C++ sifatnya adalah portable dan fleksibel untuk semua
jenis komputer.
Note :
Seluruh sourcecode program yang ada di tutorial ini 100% dibuat dan
telah diuji coba menggunakan Borland C++ 5.02
BAB II
Struktur Bahasa C/C++
Program Bahasa C/C++ tidak mengenal aturan penulisan di kolom/baris
tertentu, jadi bisa dimulai dari kolom/baris manapun. Namun demikian, untuk
mempermudah pembacaan program dan untuk keperluan dokumentasi, sebaiknya
penulisan program di bahasa C/C++ diatur sedemikian rupa sehingga mudah dan
enak dibaca.
Berikut contoh penulisan Program Bahasa C/C++
#include <header>
void main()
{
deklarasi variabel;
deklarasi konstanta;
perintah perintah;
//komentar
}
Cara terbaik untuk balajar bahasa pemrograman adalah dengan langsung
mempraktikannya. Cobalah contoh program berikut :
#include <iostream.h>
#include <conio.h>
void main()
{
clrscr();
cout<<"Hello World"<<endl;
cout<<"Selamat Belajar C/C++ ";
cout<<"enter my World";
getch();
}
Penjelasan :
1. include
Adalah salah satu Pengarah Preprosesor (preprocessor directive) yang
tersedia pada C++. Preprocessor selalu dijalankan terlebih dahulu pada saat
proses kompilasi terjadi. Bentuk umumnya :
# include <nama_file>
tidak diakhiri dengan tanda semicolon (;), karena bentuk tersebut bukanlah
suatu bentuk pernyataan, tetapi merupakan prepocessor directive. Baris tersebut
menginstrusikan kepada kompiler untuk menyisipkan file lain dalam hal ini file
yang berakhiran .h (file header) yaitu file yang berisi C++ standard library.
contohnya:
-
#include
#include
2.Fungsi main ()
Program C++ terdiri dari satu atau lebih fungsi, dan di antara salah satunya
harus ada fungsi main dan hanya boleh ada satu main pada tiap program C++.
Setiap program C++ akan dan pasti akan memulai eksekusi programnya pada
fungsi main ini, meskipun main bukan fungsi yang pertama ditulis di program.
Melihat bentuk seperti itu dapat kita ambil kesimpulan bahwa batang tubuh
program utama berada didalam fungsi main(). Berarti dalam setiap pembuatan
program utama, maka dapat dipastikan seorang pemrogram menggunakan
minimal sebuah fungsi.
Tanda { dan pada akhir program terdapat tanda }. Tanda { harus ada pada
setiap awal dari sebuah fungsi dan tentu saja harus diakhiri dengan tanda }. Tanda
Latihan Soal 2.
// programku
#include <iostream.h>
int main ()
{
cout << "Selamat Belajar C++";
return 0;
}
BAB III
Identifier, Tipe Data, Variabel, Konstanta, Operator
3.1 Identifier
Aturan pemberian nama suatu pengenal/identifier :
nama pengenal harus dimulai dengan karakter berupa huruf (az, AZ)
atau karakter garis bawah ( _ )
karakter berikutnya dapat berupa huruf, angka (0...9) atau karakter garis
bawah ( _ )
tidak boleh sama denga reserverd word (nama nama yang sudah
digunakan dalam bahasa C++) seperti char, int, float, double, void, dll.
10
3.3 Konstanta
Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses
program berlangsung. Konstanta nilainya selalu tetap. Konstanta harus
didefinisikan terlebih dahulu di awal program. Konstanta dapat bernilai integer,
pecahan, karakter dan string.
Pendeklarasian konstanta dapat dilakukan dengan 2 cara :
1. menggunakan (#define)
deklarasi konstanta dengan cara ini, lebih gampang dilakukan karena akan
menyertakan #define sebagai preprocessor directive. Dan sintaknya diletakkan
bersama sama dengan pernyataan #include (di atas main()).
Format penulisannya adalah :
#define pengenal nilai
Contoh penggunaan :
#define phi 3.14159265
pendeklarasian dengan #define tanpa diperlukan adanya tanda = untuk
memasukkan nilai ke dalam pengenal dan juga tanpa diakhiri dengan tanda
semicolon(;)
11
2. menggunakan (const)
Sedangkan dengan kata kunci const, pendeklarasian konstanta mirip
dengan deklarasi variable yang ditambah kata depan const
Contoh :
const int lebar = 100;
const char tab = \t;
3.4 Variabel
Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili
suatu nilai tertentu di dalam proses program. Berbeda dengan konstanta yang
nilainya selalu tetap, nilai dari suatu variable bisa diubah-ubah sesuai kebutuhan.
Bentuk umum pendeklarasian suatu variable adalah :
tipe_data nama_variabel;
Contoh :
int x; // Deklarasi x bertipe integer
char y, huruf, nim[10]; // Deklarasi variable bertipe char
float nilai1; // Deklarasi variable bertipe float
double beta; // Deklarasi variable bertipe double
int array[5][4]; // Deklarasi array bertipe integer
char *p; // Deklarasi pointer p bertipe char
3.5 Operator
1. Operator Assign (=)
Operator (=), akan memberikan nilai ke dalam suatu variable.
12
Hasil
Operator
biasa
operator
+=
i=i+2
i += 2
i bernilai 3
-=
j=j3
j -=3
j bernilai 0
*=
k=k*4
k *= 4
k bernilai 12
/=
l=l/4
l /= 4
l bernilai 1
%=
m=m%2
m %= 2
m bernilai 1
Contoh 2:
B=3;
B=3;
A=++B;
A=B++;
//hasil A= 4, B=4
13
14
Contoh :
(7==5) hasilnya adalah false
(5>4) hasilnya adalah true
(5<5) hasilnya adalah false
5. Operator Logika ( !, &&, || )
Operator logika juga digunakan untuk memberikan nilai atau kondisi true
dan false. Biasanya operator logika dipakai untuk membandingkan dua kondisi.
Misalnya:
((5==5) && (3>6)) mengembalikan nilai false, karena (true && false)
untuk logika NOT (!), contohnya !(5==5) akan mengembalikan nilai false, karena
!(true).
Latihan Soal 1.
#include <conio.h>
#include <iostream.h>
void main()
{
const float phi = 3.141592;
float jari_jari, keliling, luas;
jari_jari = 7.2;
luas = phi * jari_jari * jari_jari;
keliling = 2 * phi * jari_jari;
cout<<"Luas lingkaran adalah " << luas << " satuan luas "<<endl;
cout<<"Keliling lingkaran adalah " << keliling << " satuan panjang";
getch();
}
Latihan Soal 2.
#include"iostream.h"
#include"conio.h"
//#include"stdio.h"
void main()
{
float data1,data2,tambah,kurang,kali,bagi;
cout<<"Operasi aritmatika Dasar"<<endl;
cout<<"Masukkan data1: ";
cin>>data1;
cout<<"Masukkan data2: ";
cin>>data2;
15
tambah=data1+data2;
kurang=data1-data2;
kali=data1*data2;
bagi=data1/data2;
cout<<endl;
cout<<data1<<" + " <<data2<<"
cout<<data1<<" - " <<data2<<"
cout<<data1<<" * " <<data2<<"
cout<<data1<<" : " <<data2<<"
//printf("%6.2f",bagi);
getch();
=
=
=
=
"<<tambah<<endl;
"<<kurang<<endl;
"<<kali<<endl;
"<<bagi;
Latihan Soal 3.
Buatlah sebuah program untuk menghitung jumlah dan rata-rata dari 5
buah bilangan bulat positip.
Latihan Soal 4.
Suatu ember berbentuk tabung dengan tutupnya terbuka berisi air penuh.
Jari- jari alas ember adalah 10.5 cm, dan tingginya 5 cm. Kemudian sebuah
kerucut dengan jari-jari alas yang berbentuk lingkaran adalah 4 cm dan tingginya
4.7 cm dimasukkan ke dalam ember. Akibatnya sebagian air dalam ember tumpah.
Dengan menggunakan program C++ hitunglah berapa liter air yang tumpah?
16
BAB IV
Function dan Procedure
Procedure dan Function disebut juga subroutine, merupakan blok
statement yang dapat dipanggil dari lokasi yang berbeda di dalam program. Yang
membedakan antara function dan procedure yaitu: suatu function jika
dijalankan/dipanggil akan mengembalikan suatu nilai.
Dalam PASCAL dikenal istilah procedure dan function, dalam Basic dikenal
sub dan function, sedangkan dalam C++, Java, PHP, dan keturunan C lainnya
dikenal hanya istilah function. Apabila kita ingin membuat subroutine yang tidak
mengembalikan nilai, kita dapat memberi nilai kembalian berupa void.
Fungsi (Function) merupakan blok dari kode yang dirancang untuk
melaksanakan tugas khusus. Pada intinya fungsi berguna untuk :
Program
menjadi
terstruktur,
sehingga
mudah
dipahami
dan
dikembangkan.
Modifikasi program dapat dilakukan pada suatu modul tertentu saja tanpa
mengganggu program keseluruhan.
Mempermudah dokumentasi.
17
Jumlah parameter.
18
Contoh lain :
long kuadrat (long l) ;
Pada contoh pertama, fungsi kuadrat ( ) mempunyai argumen/parameter bertipe
long dan nilai balik bertipe long.
void garis ( );
Pada contoh kedua, fungsi garis ( ) tidakmemiliki argumen/parameter dan nilai
baliknya tidak ada (void).
3. Parameter Fungsi
Terdapat dua macam para parameter fungsi, yaitu :
1. Parameter formal adalah variabel yang ada pada daftar parameter dalam
definisi fungsi.
19
4. Contoh Penerapan
Contoh 1.
/*Contoh penerapan function dg prototype tapi tidak memberikan
nilai balik (void)
*/
#include<iostream.h>
#include<conio.h>
void gaya(double m, double a); //prototype function
void main()
//main function
{
double m,a;
cout<<"Massa
: "; cin>>m;
cout<<"percepatan : "; cin>>a;
cout<<"F : ";
gaya(m,a);
//parameter aktual
getch();
}
void gaya(double m, double a)
{
double hasil;
hasil=m*a;
cout<<hasil;
}
//function definition
20
21
Contoh 4.
#include <iostream.h>
#include <conio.h>
void Ubah(int *a)
{
*a = 10;
cout<<"Ubah menjadi= "<<*a<<endl;
}
/*main program*/
void main()
{
int bil;
bil = 1;
cout<<"Bil sebelum = "<<bil<<endl;
Ubah(&bil);
cout<<"Bil sesudah = "<<bil<<endl;
getch();
}
Yang dikirimkan ke fungsi adalah alamat letak dari nilai datanya, bukan
nilai datanya.
Perubahan nilai di fungsi akan merubah nilai asli di bagian program yang
memanggil fungsi.
22
6. Fungsi Rekursif
Fungsi rekursif adalah suatu fungsi yang memanggil dirinya sendiri, artinya
fungsi tersebut dipanggil di dalam tubuh fungsi itu sendiri. Salah satu
kelemahan fungsi rekursif adalah waktu komputasi yang lebih lama.
Latihan Soal.
Buatlah Program (dg function) untuk menghitung jarak maksimum (xmax)
dan ketinggian maksimum (hmax) dari sebuah peluru yang ditembakkan dengan
sudut elevasi A. Anggap g = 10 m/s2 (Gunakan fungsi sin() dan cos() )
23
BAB V
FILE dan STREAM
Operasi dasar file pada prinsipnya terbagi menjadi 3 tahap, yaitu:
a. membuka atau mengaktifkan file
b. melaksanakan pemrosesan file
c. menutup dile
5.1 Membuka file
Sebelum suatu file dapat diproses, file harus dibuka terlebih dahulu.
Sebelum file dibuka, terlebih dahulu obyek file harus didefinisikan. Sintaksnya:
ofstream nama_obyek;
perintah ofstream dapat dijalankan dengan menyertakan file header fstream.h
Setelah itu, suatu file dapat dibuka dengan perintah
24
25
{
ifstream fileteks; { ifstream digunakan u/ membaca file }
fileteks.open(C:/algo.txt);
if (fileteks.fail()) cout << Maaf file takdapat dibuka/
<< tidak ditemukan;
fileteks.close();
}
file
dapat
dilakukan
dalam
bentuk
karakter.
Misalnya
proses
penyimpanan data ke file dilakukan setiap karakter, atau membaca data file
karakter per karakter. Operasi ini didukung oleh function put() dan get(). Contoh
4. Program untuk menyimpan data karakter per karakter ke dalam file.
#include<iostream.h>
#include<fstream.h>
void main()
{
ofstream fileteks;
fileteks.open(C:/contoh.txt);
fileteks.put(A);
fileteks.put(B);
fileteks.put(C);
fileteks.close();
}
26
Latihan Soal.
1. Buatlah program C++ untuk menghitung jumlah karakter dalam suatu file.
Inputnya adalah nama file dan pathnya. Jangan lupa error handling!
2. Buatlah program C++ untuk menghitung jumlah karakter tertentu,
misalnya karakter A. Input berupa nama file dan karakter yang akan
dihitung. Jangan lupa error handling!
3. Misalkan suatu file teks berisi listing program C++. Buatlah program untuk
menghitung pasangan kurung kurawal yang ada pada file teks tersebut.
Jangan lupa error handling!
27
BAB VI
Struktur Kontrol Kondisional & Perulangan
6.1 Struktur Kondisional
6.1.1 Statement IF
Pernyataan Percabangan digunakan untuk memecahkan persoalan dalam
mengambil suatu keputusan diantara sekian kondisi yang ada.
Syntax nya
Contoh 2:
#include <conio.h>
#include <iostream.h>
void main()
{
int usia;
clrscr();
cout << "Berapa usia Anda : ";
cin >> usia;
28
29
clrscr();
cout << "Berapa usia Anda : ";
cin >> usia;
if (usia < 17)
{
cout << "Anda tidak boleh menonton bioskop"<<endl;
cout << "Kerjakan PR anda...";
}
else
{
cout << "Anda Boleh ke Bioskop."<<endl;
cout << "Belikan 1 Tiket Buat ASDOS";
}
getch();
}
IF Else Majemuk
30
31
32
{
int bil;
clrscr();
cout << "Masukkan bilangan :
cin >> bil;
switch (bil)
{
case 1 : cout << "Anda
break;
case 2 : cout << "Anda
break;
case 3 : cout << "Anda
break;
default: cout << "Anda
break;
}
getch();
}
";
Note :
Tidak setiap IF bisa dijadikan Switch. Tapi semua Switch dapat dijadikan IF
Contoh 5:
#include<conio.h>
#include<iostream.h>
void main()
{
char kode;
clrscr();
cout<<"Masukkan Kode Barang [A..C] : ";
cin>>kode;
switch(kode)
{
case 'A' :
case 'a' :
cout<<"Alat Olah Raga";
break;
case 'B' :
case 'b' :
cout<<"Alat Elelktronik";
break;
case 'C' :
case 'c' :
cout<<"Alat Masak";
break;
default:
cout<<"Anda Salah Memasukan kode";
break;
}
getch();
}
33
Latihan Soal.
1. Buatlah program untuk mengetahui bilangan tersebut genap atau ganjil!
2. Buatlah program untuk menentukan banyaknya uang pecahan yang
dibutuhkan, urut dari pecahan terbesar!
Input: jumlah uang dalam rupiah
Proses: ratusanribu = jml_uang dibagi 100000
sisa = jml_uang (ratusanribu*100000)
limaplhribu = sisa dibagi 50000
sisa = sisa (limaplhribu*50000)
dan seterusnya.
3. Buatlah program konversi angka ke nilai huruf:
100 >= nilai > 80 A
80 >= nilai > 60 B
60 >= nilai > 40 C
40 >= nilai > 20 D
20 >= nilai > 0 E
6.2 Struktur Kontrol Perulangan
Perulangan digunakan untuk mengerjakan suatu perintah secara berulangulang sesuai dengan yang diinginkan.
Struktur pengulangan terdiri atas dua bagian :
1. Kondisi pengulangan yaitu ekspresi boolean yang harus dipenuhi untuk
melaksanakan pengulangan
2. Isi atau badan pengulangan yaitu satu atau lebih pernyataan (aksi) yang
akan diulang.
Perintah atau notasi dalam struktur pengulangan adalah :
1. Pernyataan For
2. Pernyataan while
3. Pernyataan do..while
4. Pernyataan continue dan break
5. Pernyataan go to
6.2.1 Statement FOR
Pernyataan for digunakan untuk melakukan looping. Pada umumnya
looping yang dilakukan oleh for telah diketahui batas awal, syarat looping dan
perubahannya. Selama kondisi terpenuhi, maka pernyataan akan terus dieksekusi.
Contoh 1.
#include<conio.h>
#include<iostream.h>
void main()
{
int a;
clrscr();
for(a = 0; a <= 10; a++)
cout<<a<<" ";
getch();
}
Contoh 2.
# include <conio.h>
# include <iostream.h>
void main()
{
clrscr();
for(int a = 20; a >= 1; a-=2)
cout<<a<<endl;
getch();
}
35
Nested For
Perulangan bertumpuk secara sederhana dapat diartikan : terdapat satu
atau lebih loop di
Penjelasan program:
Perulangan akan menghasilkan nilai sebagai berikut :
baris =1 ;
kolom = 1; cetak 1
kolom = 2; cetak 2
kolom = 3; cetak 3
kolom = 4; cetak 4
kolom = 5 ; cetak 5
ganti baris !
baris =2 ;
kolom = 1; cetak 1
kolom = 2; cetak 2
kolom = 3; cetak 3
kolom = 4; cetak 4
kolom = 5 ; cetak 5
ganti baris !
baris =3 ;
kolom = 1; cetak 1
kolom = 2; cetak 2
kolom = 3; cetak 3
kolom = 4; cetak 4
kolom = 5 ; cetak 5
ganti baris !
36
baris =4 ;
kolom = 1; cetak 1
kolom = 2; cetak 2
kolom = 3; cetak 3
kolom = 4; cetak 4
kolom = 5 ; cetak 5
ganti baris !
selesai.
Dan di layar akan muncul hasil dengan bentuk matrik sebagai berikut:
12345
12345
12345
12345
Contoh 5.
#include<conio.h>
#include<iostream.h>
void main()
{
int bil;
clrscr();
cout<<"Inputkan Jumlah Bintang = "; cin>>bil;
for (int i=1; i<=bil; i++)
{
for (int j=1; j<=i; j++)
{
cout<<"*";
}
cout<<endl;
}
getch();
}
Why?? Jelaskan!
6.2.2 Statement While
Pernyataan while merupakan salah satu pernyataan yang berguna untuk
memproses suatu pernyataan atau beberapa pernyataan beberapa kali. Pernyataan
while memungkinkan statemen-statemen yang ada didalamnya tidak diakukan
sama sekali.
37
i=1;
huruf='A';
while (i<=angka)
{
cout<<i<<" --> "<<huruf<<endl;
i++;
huruf++;
}
getch();
}
38
39
Penjelasan :
Dari program diatas, dapat dilihat perulangan dari suatu bilangan sebanyak
10 kali. Tetapi, pada perulangan i=4, ada perintah continue. Dengan perintah ini,
maka program langsung meloncat ke loop berikutnya dan ketika sampai
perulangan i = 6, ada perintah break. Otomatis program akan berhenti dan tidak
sampai ke i=10. Dan program akan mencetak bilangan 0, bilangan 1, bilangan 2,
bilangan 3, bilangan 5, bilangan 6.
40
Latihan Soal 1.
Buatlah simulasi menu program dengan tampilan di bawah ini
menggunakan Do WHILE.
MENU PILIHAN
1. Baca Data
2. Ubah Data
3. Hapus Data
4. Exit
Pilihan Anda (1/2/3/4) ? ...
-------------------------------------------------------------------------------------Apabila dipilih menu no 1, maka akan tampil teks Anda memilih menu 1.
Demikian pula untuk menu 2 dan 3. Kemudian setelah itu muncul teks Tekan
ENTER untuk kembali ke menu utama. Artinya begitu kita tekan ENTER menu
41
pilihan akan muncul kembali, dst. Akan tetapi bila yang dipilih menu 4 (EXIT),
program langsung berhenti.
Latihan Soal 2.
Buatlah program dengan looping untuk menampilkan hasil seperti berikut:
P
P or Q
P and Q
Not P
P xor Q
========================================
1
============================================
Latihan Soal 3.
Buatlah program untuk menampilkan deret Gossip Girls:
Untuk n = 5
X O X O X
X O X O
X O X
X O
X
Latihan Soal 4.
Buatlah program untuk menampilkan bilangan fibonacci pada deret ke-n!
Bilangan fibonacci adalah bilangan seperti: 1 1 2 3 5 8 13 ... dst
Jadi jika inputan n = 7, maka hasil adalah 13
Latihan Soal 5.
Buatlah program untuk menampilkan bilangan prima sampai deret ke-n!
Bilang prima adalah bilangan yang hanya habis dibagi 1 dan bilangan itu sendiri.
Jika inputan = 10, maka hasil 2 3 5 7
42
BAB VII
ARRAY dan STRING
7.1 Array
Ilustrasi
o Selama ini kita menggunakan satu variabel untuk menyimpan 1 buah nilai
dengan tipe data tertentu. Misalnya :
int a1, a2, a3, a4, a5;
Deklarasi variabel diatas digunakan untuk menyimpan 5 data integer
dimana masingmasing variabel diberi nama a1, a2, a3, a4, dan a5.
o Jika kita memiliki 10 data, 100 data integer bahkan mungkin data yang
ingin kita proses tidak kita ketahui atau bersifat dinamis? Kita tidak
mungkin menggunakan variabel seperti diatas.
o Di dalam C dan pemrograman yang lain, terdapat suatu fasilitas untuk
menyimpan data-data yang bertipe data sama dengan suatu nama tertentu.
Solusi?? Array
Array merupakan kumpulan dari nilai-nilai data yang bertipe sama dalam
urutan tertentu yang menggunakan nama yang sama. Dengan menggunakan array,
sejumlah variabel dapat memakai nama yang sama. Letak atau posisi dari elemen
array ditunjukkan oleh suatu index. Dilihat dari dimensinya array dapat dibagi
menjadi Array dimensi satu, array dimensi dua dan array multi-dimensi.
Bentuk Umum pendeklarasian array :
Contoh :
int nil[5];
43
Nilai suatu variabel array dapat juga diinisialisasi secara langsung pada saat
deklarasi, misalnya:
44
ujian[0] = 90;
ujian[1] = 95;
ujian[2] = 78;
ujian[3] = 85;
Empat pernyataan diatas memberikan nilai kepada array ujian. Tetapi
sebelum kita memberikan nilai kepada array, kita harus mendeklarasikannya
terlebih dahulu, yaitu :
int ujian[4];
Perhatikan bahwa nilai 4 yang berada didalam tanda kurung menujukkan
jumlah elemen larik, bukan menunjukkan elemen larik yang ke-4. Jadi elemen
larik ujian dimulai dari angka 0 sampai 3. Pemrogram juga dapat menginisialisasi
larik sekaligus mendeklarasikannya, sebagai contoh :
45
Contoh 2.
#include <iostream.h>
#include <conio.h>
void main()
{
float data[5];
float rata, total = 0;
//input data ke array
for (int k=0;k<5;k++)
{
cout<<"masukkan data["<<k<<"] = ";
cin>>data[k];
}
//menghitung total nilai pada array
for (int j=0;j<5;j++)
{
total = total + data[j];
}
//menghitung rata - rata
rata = total / 5;
cout<<"rata - rata data pada array = "<<rata<<endl;
getch();
}
Contoh 3.
#include<iostream.h>
#include<conio.h>
void main()
{
int data[10] = {4, 1, 0, -9, 8, 5, -1, 2, 3, -7};
int elemen, ketemu, x;
cout << "Data yang dicari : ";
cin >> x;
ketemu = 0;
for(elemen=0; elemen<= 9; elemen++)
{
if (data[elemen] == x)
{
ketemu = !ketemu;
break;
}
}
if (ketemu == 0)
cout << "Data tidak ditemukan ";
else
cout << "Data ada di elemen : " << elemen;
getch();
}
46
Contoh 4.
#include <iostream.h>
#include <conio.h>
void main()
{
int matrix[3][4] = {{5,10,1,11},{4,7,67,-9},{9,0,45,3}};
for (int i = 0; i<3; i++)
{
for (int j=0;j<4; j++)
{
cout<<matrix[i][j]<<" ";
}
cout<<endl;
47
}
getch();
}
Contoh 5.
#include<conio.h>
#include<iostream.h>
void main()
{
int i,j,kola,kolb,bara,barb;
int data1[25][25],data2[25][25],hasil[25][25];
char jawab;
do
{
do
{
clrscr();
cout<<"Program Penjumlahan Matrix"<<endl;
cout<<"======================================"<<endl;
cout<<endl;
cout<<"Input Matrix A "<<endl;
cout<<"Jml baris Matrix A: "; cin>>bara;
cout<<"Jml kolom Matrix A: "; cin>>kola;
cout<<endl;
cout<<"Input Matrix B "<<endl;
cout<<"Jml baris Matrix B: "; cin>>barb;
cout<<"Jml kolom Matrix B: "; cin>>kolb;
}
while ((kola!=kolb) || (bara!=barb));
cout<<endl;
for (i=1; i<=bara; i++)
{
for (j=1; j<=kola; j++)
{
cout<<"Data A ["<<i<<","<<j<<"]: "; cin>>data1[i][j];
}
}
cout<<endl;
for (i=1; i<=bara; i++)
{
for (j=1; j<=kola; j++)
{
cout<<"Data B ["<<i<<","<<j<<"]: "; cin>>data2[i][j];
}
}
for (i=1; i<=bara; i++)
{
for (j=1; j<=kola; j++)
{
hasil[i][j]=data1[i][j] + data2[i][j];
}
}
48
cout<<endl;
cout<<"Hasil Penjumlahan Matrix A + Matrix B: "<<endl;
for (i=1; i<=bara; i++)
{
for (j=1; j<=kola; j++)
{
cout<<hasil[i][j]<<" ";
}
cout<<endl;
}
getch();
cout<<endl;
cout<<"Mau Melakukan Perhitungan Lagi [Y/T] = "; cin>>jawab;
}
while ((jawab == 'y') || (jawab == 'Y'));
}
Latihan Soal 1.
Modifikasi program penjumlahan array diatas dengan menambahkan
fasilitas pengurangan dan perkalian matrix! Perhatikan error handling nya!
Latihan Soal 2.
Buatlah sebuah program untuk menentukan nilai maximum dan
minimum dari nilai elemen matrix.
7.2 String
Dalam pemrograman, string merupakan kumpulan dari beberapa karakterkarakter. Untuk membedakan string dengan karakter, dalam C++ dibedakan
penulisannya. Suatu nilai merupakan string apabila diapit dengan tanda petik
ganda ..., misalnya SAYA. Sedangkan karakter (char) diapit dengan tanda petik
tunggal, misal s. Lantas bagaimana dengan s?? Dalam hal ini s juga
merupakan string, meskipun karakter penyusunnya terlihat hanya satu. Akan
tetapi pada kenyataannya, s disusun tidak hanya karakter s saja, melainkan
terdapat pula karakter NULL atau \0, yang berfungsi sebagai tanda akhir dari
string.
49
Untuk
mendeklarasikan
suatu
variabel merupakan
string,
maka
perintahnya:
char variabel[maks_karakter];
contoh:
char teks[20];
Perintah di atas bermakna bahwa teks merupakan variabel string dengan jumlah
karakter yang dapat disimpan maksimal adalah 20 (sudah termasuk karakter
NULL). Misalkan suatu variabel string katakanlah kalimat[30] akan diberi nilai
SAYA BELAJAR C++, maka perintahnya:
char kalimat[30] = SAYA BELAJAR C++;
Contoh 1.
#include <iostream.h>
#include <conio.h>
void main()
{
int a;
a = 20;
char kalimat[30] = "SAYA BELAJAR C++";
cout << "Nilai a = " << a << endl;
cout << "Nilai kalimat = " << kalimat << endl;
getch();
}
50
#include<iostream.h>
#include<conio.h>
void main()
{
char nama[20];
char alamat[30];
cout << "Masukkan nama Anda : ";
cin.getline(nama, sizeof(nama));
cout << "Masukkan alamat Anda : ";
cin.getline(alamat, sizeof(alamat));
cout << "Nama Anda : " << nama << endl;
cout << "Alamat Anda : " << alamat << endl;
getch();
}
51
Latihan Soal.
Buatlah program yang meminta inputan data karakter dari user yang
disimpan ke dalam array 1 dimensi. Kemudian buatlah menu dan program untuk
menu seperti berikut:
1. Input karakter
2. Cari karakter
3. Hapus karakter
4. Ubah karakter tertentu
5. Tampilkan karakter-karakter tersebut
6. Statistik karakter (jumlah vokal dan konsonan)
7. Exit
52
Note :
Gunakan Contoh program berikut sebagai referensi!
#include <iostream.h>
#include <conio.h>
void main()
{
char string [20]="contoh program";
char *hasil;
hasil=strchr(string,'m');
*hasil = 'L';
cout<<string;
getch();
}
53
BAB VIII
POINTER
Pointer sesungguhnya berisi alamat dari suatu data, bukan data
sebagaimana pada variable yang sudah anda kenal. Pointer (variabel penunjuk)
adalah suatu variabel yang berisi alamat memori dari suatu variabel lain. Alamat
ini merupakan lokasi dari obyek lain (biasanya variabel lain) di dalam memori.
Contoh, jika sebuah variabel berisi alamat dari variabel lain, variabel pertama
dikatakan menunjuk ke variabel kedua.
Operator Pointer ada dua, yaitu :
1. Operator & (Dereference Operator)
Bil1 = &Bil2;
dibaca: isi variabel bil1 sama dengan alamat bil2
2. Operator * (Reference Operator)
Contoh :
int * pint ;
char *pch;
// pointer ke int
// pointer ke char
Guided 2.
//mengubah nilai melalui suatu pointer
#include<conio.h>
#include<iostream.h>
void main()
{
int vint = 55; //variabel bukan pointer
int *pint;
//variabel pointer
clrscr();
cout<<"vint semula = "<<vint<<endl;
55
pint = &vint;
*pint = 69;
Penjelasan :
Pernyataan *pint = 69;
Menyebabkan yang ditunjuk oleh pint (yaitu vint) berubah menjadi 69
Guided 3.
//operasi aritmatika pada pointer
#include<iostream.h>
#include<conio.h>
void main()
{ int nilai[3], *penunjuk;
clrscr();
nilai[0] = 125;
nilai[1] = 345;
nilai[2] = 750;
penunjuk = &nilai[0];
cout<<"Nilai
"<<*penunjuk<<"
ada
"<<penunjuk<<endl;
cout<<"Nilai
"<<*(penunjuk+1)<<"
ada
"<<(penunjuk+1)<<endl;
cout<<"Nilai
"<<*(penunjuk+2)<<"
ada
"<<(penunjuk+2)<<endl;
getch();
}
di
alamat
memori
di
alamat
memori
di
alamat
memori
pdata = data1;
56
Perhatikan dengan seksama program diatas. Tidak ada tanda & di depan
data1. padahal kita ketahui untuk mengakses pointer memerlukan format
berikut:
Ptr = &variabel;
Ini disebabkan array sebenarnya sudah menyatakan alamat. Oleh karena itu
tanda & tidak diperlukan. Tanda & digunakan jika variabel tidak berupa
array.
//guided 1
//mengakses elemen array via pointer
#include <conio.h>
#include <iostream.h>
void main()
{
char data1[] = {'A', 'I', 'U', 'E', 'O'};
clrscr();
char *pdata;
pdata = data1; // pdata menunjuk ke array
for (int i=0; i<5; i++)
{
cout<<*(pdata + i)<<" ";
}
getch();
}
57
= 5;
= x[0];
=
=
=
=
=
*p + 2;
7
*(p+1)-3;
2
*(x + 2);
58
ptr adalah pointer yang dengan mudah dapat diatur agar menunjuk
ke data string
vptr adalah array yang menyatakan alamat yang konstan, tidak dapat
dirubah. Yang dapat diubah adalah elemen array-nya.
//tidak diperkenankan!!!!!!
ptr = ptr + 3;
//diperkenankan!!!
59
clrscr();
cout<<"String sebelum proses adalah "<<string<<endl;
proses(string);
cout<<"String setelah proses adalah "<<string<<endl;
getch();
}
60
DAFTAR PUSTAKA
Kadir, Abdul. 2003. Pemrograman C++. Yogyakarta : Penerbit ANDI Yogyakarta
Sanjaya, Dwi. 2003. Asyiknya Belajar Struktur Data di Planet C++. Jakarta : PT. Elex
Media Komputindo
Utami, Erna & Sukrisno. 2005. 10 Langkah Belajar Logika dan Algoritma, Menggunakan
Bahasa C dan C++ di GNU/Linux. Yogyakarta : Penerbit ANDI Yogyakarta
Wahid, Fathul. 2004. Dasar-dasar Algoritma & Pemrograman. Yogyakarta : Penerbit
ANDI Yogyakarta
61