Upload
hahahadidi
View
167
Download
5
Embed Size (px)
DESCRIPTION
Introduction and explain algoritma program
Citation preview
BAB I
PENGENALAN BAHASA C++
TUJUAN
• Pengenalan Bahasa C++
• Mampu menggunakan variable, pernyataan, operator dan tipe data
• Mampu membuat aplikasi sederhana menggunakan C++
DASAR TEORI
Pengenalan Bahasa C++
Berbicara tentang C++ biasanya tidak lepas dari C, sebagai bahasa
pendahulunya. Pencipta C adalah Brian W. Kerninghan dan Dennis M. Ritchie pada
sekitar tahun 1972, dan sekitar satu dekade setelahnya diciptakanlah C++, oleh
Bjarne Stroustrup dari Laboratorium Bell, AT&T, pada tahun 1983. C++ cukup
kompatibel dengan bahasa pendahulunya C. Pada mulanya C++ disebut “ a better C
“. Nama C++ sendiri diberikan oleh Rick Mascitti pada tahun 1983, yang berasal dari
operator increment pada bahasa C.
Keistimewaan yang sangat berari dari C++ ini adalah karena bahasa ini
mendukung pemrograman yang berorientasi objek ( OOP / Object Oriented
Programming).
BAHAN DAN ALAT
Hardware : 1 Unit Komputer
Software : OS (Windows XP/7); Turbo C++;
TAHAPAN KERJA
1. Buka file baru pada aplikasi Turbo C++
2. Ketiklah kode berikut ini
Latihan1.1
1
#include <iostream.h>
void main()
{
cout<<" selamat datang di c++...";
}
3. Untuk proses kompilasi, silahkan klik tanda Run atau tekan ctrl+f9
Output :
P e n j e l a s an :
Include
Adalah salah satu pengarahprepocessor directive yang tersedia pada
C++. Preprocessor selalu dijalankan terlebih dahulu pada saat proses kompilasi
terjadi. Bentuk umumnya :
# include <nama_file>
t i d ak d ia k h i r i dengan tanda semicolon ( ; ), karena bentuk tersebut bukanlah
suatu bentuk pernyataan, tetapi merupakan prepocessor directive. Baris
tersebut menginstrusikan kepada kompiler yang menyisipkan file lain dalam hal
ini file yang berakhiran .h(file header) yaitu file yang berisi sebagai deklarasi
contohnya:
- # include <iostream.h> : diperlukan pada program yang
melibatkan objek cout
- # include <conio.h> : diperlukan bila melibatkan clrscr(),yaitu
perintah untuk membersihkan layar.
- # include <iomanip.h> : diperlukan bila melibatkan setw() yang
bermanfaat untuk mengatur lebar dari suatu
2
tampilan data.
- # include <math.h> : diperlukan pada program yang menggunkan
operasi sqrt () yang bermanfaat untuk operasi
matematika akar kuadrat.
Fungsi main ()
Fungsi ini menjadi awal dan akhir eksekusi program C++. main adalah
nama judul fungsi. 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. Pembahasan lebih lanjut mengenai fungsi akan
diterangkan kemudian. Yang sekarang coba ditekankan adalah kita menuliskan
program utama kita didalam sebuah fungsi main().
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.
Nama dari suatu variable dapat ditentukan sendiri oleh pemrogram dengan aturan
sebagai berikut :
Terdiri dari gabungan huruf dan angka dengan karakter pertama harus
berupa huruf. Bahasa C bersifat case-sensitive artinya huruf besar dan kecil dianggap
berbeda. Jadi antara nim, NIM dan Nim dianggap berbeda.
Tidak boleh mengandung spasi.
Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah
(underscore). Yang termasuk symbol khusus yang tidak diperbolehkan antara lain :
$, ?, %, #, !, &, *, (, ), -, +, = dsb
Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai.
Contoh penamaan variabel yang benar : NIM, a, x, nama_mhs, f3098, f4, nilai, budi,
dsb.
3
Contoh penamaan variable yang salah : pakai spasi, @nilai_mahasiswa, 10mahasiswa,
rata-rata, penting!, dsb.
variabel, dibagi menjadi dua jenis kelompok, yaitu :
a. Variabel Numerik
Variabel numerik ini dibagi menjadi menjadi 3 (tiga) macam :
Bilangan Bulat atau Integer
Bilangan Desimal Berpresisi Tunggal atau Floating Point.
Bilangan Desimal Berpresisi Ganda atau Double Precision.
b. Variabel Text
Character ( Karakter Tunggal )
String ( Untuk Rangkaian Karakter )
c. Deklarasi Variabel
Adalah proses memperkenalkan variabel kepada Borland C++ dan
pendeklarasian tersebut bersifat mutlak karena jika tidak diperkenalkan terlebih dulu
maka Borland C++ tidak menerima variabel tersebut.
Deklarasi Variabel ini meliputi tipe variabel, seperti : integer atau character
dan nama variabel itu sendiri. Setiap kali pendeklarasian variabel harus diakhiri oleh
tanda titik koma ( ; ).
Tabel 2.3. Deklarasi Variabel
TIPE VARIABEL SIMBOL DEKLARASI
Integer int
Floating Point float
Double Precision double
Karakter char
Unsigned Integer unsigned int
Unsigned Character unsigned char
4
Long Integer long int
Unsigned Long Integer unsigned long int
Bentuk penulisannya :
Contoh Deklarasi char nama_mahasiswa;
float rata_rata ;
int nilai;
TIPE DATA
Tipe data merupakan bagian program yang paling penting karena tipe data
mempengaruhi setiap instruksi yang akan dilaksanakan oleh computer. Misalnya saja
5 dibagi 2 bisa saja menghasilkan hasil yang berbeda tergantung tipe datanya. Jika 5
dan 2 bertipe integer maka akan menghasilkan nilai 2, namun jika keduanya bertipe
float maka akan menghasilkan nilai 2.5000000. Pemilihan tipe data yang tepat akan
membuat proses operasi data menjadi lebih efisien dan efektif.
Dalam bahasa C terdapat beberapa tipe data dasar, yaitu :
No Tipe Data Ukuran Range Format Keterangan
1 char 1 byte -128 s/d 127 %c Karakter/string
2 int 2 byte - 32768 s/d 32767 %i , %d Integer/bilangan bulat
3 float 4 byte - 3.4E-38 s/d 3.4E+38 %f Float/bilangan pecahan
4 double 8 byte - 1.7E-308 s/d1.7+308 %lf Pecahan presisi ganda
5 void 0 byte - - Tidak bertipe
6 String - - %s String
5
Tipe data nama variabel;
PERTANYAAN DAN TUGAS
1. Buatlah program untuk menginputkan biodata terdiri dari nama lengkap, nama
panggilan,npm, umur, tempat lahir,telepon, dan alamat. Output :
Assalamu’alaikum.Let me introduce my self. My name is (nama lengkap), but you can call me (namapanggilan). My NPM is (npm). I was born in (tempat lahir) and I am (umur) years old. I am very glad if you want to invite my house in (alamat). So, don’t forget to call me before with the number (telepon).Thank you.
2. Buatlah program konversi waktu dari detik ke jam, menit, detik!
3. Buatlah program konversi suhu dari Celcius (C) ke Fahrenheit (F), Reamur (R), dan
Kelvin (K). Suhu Celsius di masukkan melalui keyboard saat program dieksekusi !
F = C * 9/5 +32
K=C+273,15
R= 4/5*C
6
BAB II
PEMILIHAN DAN PERCABANGAN
TUJUAN
1. Memahami struktur runtutan
2. Memahami struktur pemilihan if-else dan switch-case
3. Mampu membuat program sederhana dengan menggunakan struktur percabangan
DASAR TEORI
Struktur kontrol yang ada pada bahasa C++ adalah struktur runtutan,
strukturpemilihan dan struktur pengulangan. Struktur kontrol pemilihan dan
pengulanganmemanfaatkan operator dalam menentukan suatu kondisi. Operator-
operator yang terkait dengan proses seleksi kondisi adalah Operator Logika dan
Relasional (hubungan).
Relational dan Logical Operators
Berikut daftar relational operator pada C++:
Operator Meaning
> Lebih besar
>= Lebih besar sama dengan
< Lebih kecil
<= Lebih kecil sama dengan
== Sama dengan
!= Tidak sama dengan
Relational operator pada C++ biasanya digunakan dalam statement If untuk
pengecekan kondisi. Dan berikut adalah logical operator padaC ++
Operator Meaning
& AND
| OR
^ XOR (Exclusive OR)
&& Short-circuit AND
| Short-circuit OR
7
! Not
BAHAN DAN ALAT
Hardware : 1 Unit Komputer
Software : OS (Windows XP/7); Turbo C++ 4.5
TAHAPAN KERJA
OPERASI PEMILIHAN / PENYELEKSIAN KONDISI
Pernyataan Percabangan digunakan untuk memecahkan persoalan untuk
mengambil suatu keputusan diantara sekian pernyataan yang ada. Untuk keperluan
pengambilan keputusan, Borland C++ menyediakan beberapa perintah antara lain. Secara
umum, cara compiler bekerja adalah membaca perintah mulai dari baris atas ke bawah
secara berurutan . Setiap baris dibaca mulai dari kiri ke kanan. Namun tidak menutup
kemungkinan dalam Pemrograman ada struktuk lain seperti struktur percabangan, strukur
pengulangan atau lainnya, dibahas pada sub bab selanjutnya.
a. Pernyataan IF
Pernyataan if mempunyai pengertian, “ Jika kondisi bernilai benar, maka perintah
akan dikerjakan dan jika tidak memenuhi syarat maka akan diabaikan”. Dari
pengertian tersebut dapat dilihat dari diagram alir berikut:
Bentuk umum dari pernyataan if
8
kondisi
perintah
if (kondisi){
pernyataan;}
Jika kondisi yang diseleksi benar maka pernyataan 1 sampai pernyataan n akan
dikerjakan, sedangkan jika kondisi tersebut tidak terpenuhi maka program akan keluar
dari struktur if. Jika lebih dari satu pernyataan , maka harus menggunakan tanda ‘{‘
dan ‘}’.
b. Pernyataan IF – ELSE
Pernyataan if mempunyai pengertian, “ Jika kondisi bernilai benar, maka
perintah-1 akan dikerjakan dan jika tidak memenuhi syarat maka akan mengerjakan
perintah-2”. Dari pengertian tersebut dapat dilihat dari diagram alir berikut
salah
benar
Gambar Diagram Alir if-else
Bentuk umum dari pernyataan if - else
if (kondisi) perintah-1;else perintah-2;
9
kondisi
Perintah-1 Perintah-2
Perintah-1 dan perintah-2 dapat berupa sebuah pernyataan tunggal, pernyataan
majemuk atau pernyataan kosong. Jika pemakaian if-else diikuti dengan pernyataan
majemuk, bentuk penulisannya sebagai berikut :
if (kondisi) {
perintah-1; ... }
else {
perintah-2; ... }
c. Pernyataan NESTED IF
Nested if merupakan pernyataan if berada didalam pernyataan if yang lainnya.
Bentuk penulisan pernyataan Nested if adalah :
if(syarat)if(syarat)
else
elseif(syarat)
else
d. Pernyataan IF – ELSE Majemuk
Bentuk dari if-else bertingkat/majemuk sebenarnya serupa dengan nested if,
keuntungan penggunanan if-else bertingkat dibanding dengan nested if adalah
penggunaan bentuk penulisan yang lebih sederhana.
10
Bentuk Penulisannya
if (syarat){
… perintah;}else if (syarat){
… perintah;}else {
… perintah;}
#include <iostream.h>void main(){int ipk;cout <<"masukan nilai IPK anda : ";cin>>ipk; if (ipk > 3.5)
cout<< "Cum Laude" ; else if (ipk > 3)
cout<<"Sangat Memuaskan" ; else if (ipk >= 2.75)
cout<< "Memuaskan" ; else if (ipk >= 2)
cout<< "Cukup" ; else
cout<< "kurang" ;
}
2.1 Pernyataan switch – case
Bentuk dari switch - case merupakan pernyataan yang dirancangan khusus
untuk menangani pengambilan keputusan yang melibatkan sejumlah atau banyak
alternatif penyelesaian. Pernyataan switch - case ini memiliki kegunaan sama seperti
if – else bertingkat, tetapi penggunaannya untuk memeriksa data yang bertipe
karakter atau integer. Bentuk penulisan perintah ini sebagai berikut :
11
switch (ekspresi integer atau karakter ){ case konstanta-1 : … perintah; … perintah; break; case konstanta-2 : … perintah; … perintah; break; …… …… default : … perintah; … perintah;}
Contoh Listing Program :
12
#include<iostream.h>void main() { int Hari; cout<<"Masukan Pilihan Hari (1-7) :"; cin>>Hari;
switch (Hari){ case 1:
cout<<"Hari Minggu";break;
case 2:cout<<"Hari Senin";break;
case 3:cout<<"Hari Selasa";break;
case 4:cout<<"Hari Rabu";break;
case 5:cout<<"Hari Kamis";break;
case 6:cout<<"Hari Jumat";break;
case 7:cout<<"Hari Sabtu";break;
default:cout<<"Anda salah memasukan input (1-7)";break;
}
PERTANYAAN DAN TUGAS
Buatlah Program untuk mengetahui karakter yang diinputkan, apakah huruf Besar, huruf
kecil, spasi, digit, atau yang lainnya !
Input :
Masukkan Karakter : A
Output:
Karakter yang diinputkan adalah huruf besar
13
BAB III
STRUKTUR PENGULANGAN
TUJUAN
1. Memahami struktur pengulangan for, while, do-while,foreach
2. Memahami struktur lompat break, continue dan goto
3. Mampu membuat program sederhana dengan menggunakan struktur pengulangan
DASAR TEORI
Sering kali dalam membuat program, anda menuliskan beberapa perintah baris yang
sama. Penulisan perintah tersebut dapat disingkat dengan menggunakan struktur
pengulangan, seperti for, while, dan do-while. Beberapa hal penting pada struktur
pengulangan adalah adanya inisialisasi, kondisi, dan iterasi. Ada empat struktur
pengulangan yang dapat digunakan pada bahasa C++, yaitu:
a. Struktur for
b. Struktur while
c. Struktur do…while
d. Struktur foreach
Berkaitan dengan proses pengulangan, pemrograman C++ juga menyediakan
pernyataan
break (untuk mengakhiri pengulangan), goto, dan continue(untuk melakukan
pengulangan selanjutnya).
BAHAN DAN ALAT
Hardware : 1 Unit Komputer
Software : OS (Windows XP/7); Turbo C++ 4.5
TAHAPAN KERJA
Struktur for
14
Struktur pengulangan for biasa digunakan untuk mengulang suatu proses yang telah
diketahui jumlah pengulangannya.
Bentuk Umum :
for (inisialisasi;kondisi;iterasi)
{
Pernyataan ;
}
Keterangan:
- Inisialisasi : pernyataan untuk menyatakan keadaan awal dari variable kontrol.
- Kondisi : ekspresi relasi yang menyatakan kondisi untuk keluar dari pengulangan.
- Iterasi : pengatur perubahan nilai variabel kontrol.
Latihan3.1 :
#include <iostream.h>
void main()
{
int i;
for (i=0; i<10; i++)
{
cout<<i<<endl;
}
}
Struktur While
Pengulangan ini banyak digunakan bila jumlah pengulangannya belum
diketahui. Proses pengulangan akan terus berlanjut selama kondisinya bernilai benar
(true) dan akan berhenti bila kondisinya bernilai salah.
Bentuk Umum :
Inisialisasi; <optional>
while (kondisi){
pernyataan;
iterasi; <optional)
15
}
Latihan3.2 :
Struktur do..while
Pengulangan ini digunakan bila jumlah pengulangan do..while sama saja
dengan struktur while, hanya saja pasa proses seleksi kondisi letaknya berada di
bawah batas pengulangan. Jadi dengan menggunakan struktur do..while sekurang
kurangnya akan terjadi satu kali pengulangan.
Bentuk Umum :
Inisialisasi <optional>
do {
Pernyataan ;
iterasi ; <optional>
} while (kondisi);
Latihan3.3 :
16
Pernyataan Break
Break statement digunakan untuk keluar dari kalang bila kondisi tertentu yang
tambahkan dipenuhi. Ketika break statement dieksekusi maka kalang / loop akan
secara otomatis berhenti.
Pernyataan Continue
Pernyataan continue digunakan untuk mengarahkan eksekusi ke proses berikutnya
pada loop yang sama. Pada do-while dan while, pernyataan continue
menyebabkan eksekusi menuju ke pengulangan kembali.
do {
continue;
} while(kondisi)
while(kondisi){
continue;
}
17
Pernyataan Goto
Pernyataan goto ini merupakan perintah yang digunakan untuk mengarahkan eksek ke
pernyataan yang di awali dengan suatu label. Label merupakan suatu pengenal yang
diikuti dengan tanda titik koma(;).
18
BAB IV
POINTER
TUJUAN
1. Mengetahui sekilas mengenai cara Pointer dalam pemrograman bahasa C++
2. Mengetahui penerapan pointer dalam pemrograman bahasa C++
3. Mampu membuat program sederhana dengan menggunakan Pointer
BAHAN DAN ALAT
Hardware : 1 Unit Komputer
Software : OS (Windows XP/7); Turbo C++
DASAR TEORI
Pointer adalah variabel yang berisi alamat memori variabel lain dan secara
tidak langsung menunjuk ke variabel tersebut. Sebagai contoh Andi berteman dengan
Budi, lalu anda ingin mengetahui jumlah keluarga Budi untuk keperluan sensus
penduduk. Anda tidak mengetahui alamat Budi, tetapi anda mengenal Andi.
Untuk mencari jumlah keluarga Budi, maka pertama-tama anda pergi ke rumah Andi,
misalnya di rumah No. 8321. Sesampai di Andi, Andi membaritahukan kepada anda
bahwa alamat Budi ada pada alamat 9821. Kemudian anda pergi ke rumah Budi lalu
mencatat jumlah keluarga yang dimiliki Budi yaitu lima orang.
Dalam contoh di atas, Andi bertindak sebagai pointer. Andi tidak
memberitahukan jumlah keluarga Budi, tetapi Andi memberitahu alamat Budi, di
alamat 9821 (alamat Budi) itulah Anda mengetahui jumlah keluarga Budi.
Jika alamat dari ditunjukkan dengan simbol & dan isi dari ditunjukkan dengan
symbol *, maka hubungan analogi di atas adalah:
Nama Alamat IsiAndi 8321 9821 = &Budi
19
Budi 9821 5 = *(&Budi)
Dalam bentuk pointer, ditulis :
Andi = &Budi; // baris 1Budi = *(&Budi); // baris 2
Subtitusi pernyataan di baris 2
Andi = *Andi;
Contoh program yang menggambarkan hal tersebut sebagai berikut:
#include <iostream.h>
void main()
{
int *Andi; // Andi sebagai pointer
int Budi = 5; // Budi bukan pointer, perhatikan perbedaan pada *
Andi = &Budi; // Isi dari Andi yaitu alamat Budi
cout<<”Isi alamat memori Andi : “<<Andi<<endl;
cout<<”Isi alamat memori Budi : “<<Budi<<endl;
cout<<”Isi alamat memori Budi : “<<*Andi<<endl;
cout<<”Alamat memori Andi : “<<&Andi<<endl;
cout<<”Alamat memori Budi :”<<&Budi<<endl;
}
Hasil program :
Isi alamat memori Andi : 0x6da72448
Isi alamat memori Budi : 5
Isi alamat memori Budi : 5
Alamat memori Andi : 0x6da7244a
Alamat memori Budi : 0x6da72448
Penjelasan
:
Isi alamat memori Andi adalah alamat memori Budi, yaitu 0x6da72448
(alamat ini berbeda-beda tergantung dari komputernya dan ditulis dalam bentuk
hexadesimal).
Sedangkan isi alamat memori Budi adalah 5. Cara mengakses isi dari alamat Budi ada
dua cara, yaitu mengakses variabel Budi dan mengakses isi dari pointer Andi
20
(*Andi). *Andi dapat juga disebut “isi dari alamat memori yang ditunjuk oleh Andi”.
Karena alamat memori yang ditunjuk oleh Andi adalah alamat memori Budi, maka
dapat dikatakan “isi dari alamat memori Budi”.
a. Pointer - Array
Kita akan melihat bagaimana data disimpan di memori dalam sebuah array.
Contoh :
#include <iostream.h>
void main()
{
int n;
int array[4] = {10,20,30,40};
for(n=0;n<4;n++)
{
cout<<”Array[“<<n<<”] = “<<array[n]<<endl; cout<<”\
Menggunakan pointer=“<<*&array[n]<<endl; cout<<”\
tDisimpan dalam “<<&array[n]<<endl;
}
}
Keluarannya :
Array[0] = 10
Menggunakan pointer = 10
Disimpan dalam 0xdb72408
Array[1] = 20
Menggunakan pointer = 20
Disimpan dalam 0xdb7240a
Array[2] = 30
Menggunakan pointer = 30
Disimpan dalam 0xdb7240c
Array[3] = 40
Menggunakan pointer = 40
Disimpan dalam 0xdb7240e
Penjelasan :
21
Seperti yang anda lihat, setiap array disimpan dalam 2 byte memori karena kita
menggunakan tipe data integer. Perhatikan pula penggunaan pointer dalam
pengaksesan nilai setiap elemen array dan pengaksesan alamat setiap array.
Alamat setiap elemen array dapat diperoleh dengan cara
&array[n] atau array+n
Isi dari setiap elemen array dapat diperoleh dengan cara array[n] atau *(array+n)
Di bawah ini adalah contoh pengaksesan memori dan isi memori dengan menggunakancara kedua.
Contoh :
#include <iostream.h>
void main()
{
int n;
int array[4] = {10,20,30,40};
for(n=0;n<4;n++)
{
cout<<”Array[“<<n<<”] = “<<array[n]<<endl;
cout<<”\tMenggunakan pointer =
“<<*(array+n)<<endl; cout<<”\tDisimpan
dalam “<<array+n<<endl;
}
}
Keluarannya :
Array[0] = 10
Menggunakan pointer = 10
Disimpan dalam 0xdb72408
Array[1] = 20
Menggunakan pointer = 20
22
Disimpan dalam 0xdb7240a
Array[2] = 30
Menggunakan pointer = 30
Disimpan dalam 0xdb7240c
Array[3] = 40
Menggunakan pointer = 40
Disimpan dalam 0xdb7240e
Mengapa hasil antara dua contoh di atas sama namun sintaksnya berbeda ?
Karena array itu sebenarnya telah menunjuk ke alamat memori setiap elemennya,
sehingga untuk mengetahui alamat memori setiap elemen array cukup dengan array
+ n dengan n bilangan bulat ( integer ).
b. Pointer - String
String merupakan bentuk khusus dari array. Oleh karena itu operasi pointer-
array tidak jauh berbeda dengan operasi pointer-string
Contoh :
#include <iostream.h>
void main()
{
char nama[5] = “Andi”;
cout<<”Nama awal : “<<nama<<endl;
char *ptr;
ptr = nama;
*(ptr+3) = ‘y’;
cout<<”Nama menjadi : “<<nama<<endl;
}
Output :
Nama awal : Andi
Nama menjadi : Andy
Jadi :
String adalah array (susunan) dari karakter-karakter. String dapat diakses dan
dimanipulasi lewat pointer. Alamat awal dari string dapat diperoleh dari namanya.
23
c. Pointer Sebagai Argumen StringJika pointer dikirim sebagai argument, maka nilai aktualnya dapat dimodifikasi.
Contoh :
#include <iostream.h>
void ubah(char *);
void main()
{
char *ptr,nama[5] = “Andi”;
ptr = nama; // ptr sebagai pointer ke
variable nama cout<<”Nama awal :
“<<nama<<endl;
ubah(ptr);
cout<<”Nama menjadi : “<<nama<<endl;
}
void ubah(char *x)
{
*(x+3) = ‘y’;
}
Output :
Nama awal : Andi
Nama menjadi : Andy
TUGAS /LATIHAN PRAKTIKUM POINTER :
1. Buatlah Program untuk menghitung Volume Prisma menggunakan Pointer dan
tampilkan alamat memori dari tiap-tiap nilai !
2. Butlah program untuk merubah nama depan anda menjadi nama belakang dengan
menggunakan pointer
24
BAB V
ARRAY
TUJUAN
4. Mengetahui sekilas mengenai cara penulisan array dalam pemrograman bahasa C++
5. Mengetahui penerapan array dalam pemrograman bahasa C++
6. Mampu membuat program sederhana dengan menggunakan array
DASAR TEORI
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
masing- masing variabel diberi nama a1, a2, a3, a4, dan a5. Bayangakan jika kita
memiliki 100, 1 0 0 0 , 1 0 0 0 0 data integer bahkan mungkin data yang ingin kita
proses tidak kita ketahui atau bersifat dinamis? Kita tidak mungkin menggunakan
variabel seperti diatas. Di dalam bahasa C dan pemrograman yang lain, terdapat
suatu fasilitas untuk menyimpan data-data yang bertipe data sama dengan suatu nama
variabel tertentu.
Definisi LARIK/Array
Tipe terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai
tipe yang sama. Larik sering disebut juga variabel berindeks yaitu variabel yang dapat
diisi lebih dari satu data dengan tipe data yang sama . Nilai suatu data dalam larik
ditentukan oleh nama dan indeks. Larik banyak digunakan pada operasi yang
melibatkan indeks seperti pada statistik dan matriks.
Tipe data larik dapat berupa larik satu demensi, dua demensi, tiga demensi atau
25
banyak dimensi.
BAHAN DAN ALAT
Hardware : 1 Unit Komputer
Software : OS (Windows XP/7); Turbo C++
TAHAPAN KERJA
a. Array Dimensi Satu
Bentuk Umum pendeklarasian array :
Tipe-Data Nama_Variabel[Ukuran]
Keterangan :
Type Data : Untuk menyatakan type data yang digunakan.
Ukuran : Untuk menyatakan jumlah maksimum elemen array.
Contoh Pendeklarasian Array
float Nilai_mhs [6];
Jumlah Elemen Array
Nama Array
Tipe data elemen array
Suatu array dapat digambarkan sebagai kotak panjang yang berisi kotak-kotak
kecil didalam kotak panjang tersebut.
26
Elemen Array
0 1 2 3 4 5 Subscript / Index
Subscript atau Index array pada C++, selalu dimulai dari Nol ( 0 )
Contoh:
char huruf[9];
int umur[10];
int kondisi[2] = {0,1}
int arr_dinamis[] = {1,2,3}
char huruf[9] : berarti akan memesan tempat di memori komputer
sebanyak 9 tempat dengan indeks dari 0-8, dimana semua
elemennya bertipe data karakter semuanya. Kalau satu
karakter berukuran 1 byte, berarti membutuhkan memori
sebesar 9 byte.
int umur[10] : berarti akan memesan tempat di memori komputer sebanyak
10 tempat dengan indeks dari 0-9, dimana semua
elemennya bertipe data integer semuanya. Kalau satu
integer berukuran 4 bytes, berarti membutuhkan memori
sebesar 4 x 10 = 20 bytes.
int kondisi[2]={0,1}: berarti akan memesan tempat di memori komputer
sebanyak 2 tempat dengan indeks 0-1, dimana semua
elemennya bertipe data integer semuanya. Dan pada
contoh di atas isi elemen-elemennya yang sebanyak 2
buah diisi sekaligus (diinisialisasi) yaitu pada elemen
kondisi[0] bernilai 0, dan elemen kondisi[1] bernilai 1.
27
elemen
1elemen
2elemen
3elemen
4elemen
5elemen
6
int arr_dinamis[ ]: berarti mendeklarasikan array dengan ukuran maksimum
array tidak diketahui, namun ukuran tersebut diketahui
berdasarkan inisialisasi yaitu sebanyak 3 elemen, yang isinya
1,2, dan 3. kita tidak dapat mendeklarasikan array dinamis
tanpa inisialisasi.
Tanda [ ] disebut juga “elemen yang ke- „. Misalnya kondisi[0] berarti elemen
yang ke nol.
Array yang sudah dipesan, misalnya 10 tempat tidak harus diisi semuanya, bisa
saja hanya diisi 5 elemen saja, baik secara berurutan maupun tidak. Namun pada
kondisi yang tidak sepenuhnya terisi tersebut, tempat pemesanan di memori tetap
sebanyak 10 tempat, jadi tempat yang tidak terisi tetap akan terpesan dan dibiarkan
kosong.
1. Memberi nilai ke elemen Array
a. memberikan nilai langsung (assignment)
nilai[2] = 5 (nilai[2]=5;)
artinya kita memberikan nilai 5 ke elemen larik yang berindeks 2;
b. memasukkan nilai melalui papan ketik (keyboard)
cin>> nilai[2];
2. Mengakses (membaca) elemen Array
nama_array[indeks];
contoh:
nilai[2]; atau cout<<nilai[2];
3. Menghitung Jumlah Elemen Array
Karena fungsi sizeof() mengembalikan jumlah byte yang sesuai
dengan argumennya, maka operator tersebut dapat digunakan untuk menemukan
28
jumlah elemen array, misalnya:
int array[ ] = {26,7,82,166};
cout<<sizeof(array)/sizeof(int);
akan mengembalikan nilai 4, yaitu sama dengan jumlah elemen yang dimiliki array.
Contoh 1 :
Buatlah Program Menggunakan Array 1 dimensi dengan algoritma sebagai berikut:
1. Siapkan 5 tempat untuk menyimpan data array
2. for untuk i = 1 to 5, masukkan data melalui keyboard
3. Gunakan fungsi clear screen pada setiap data yang selesai diinputkan
4. Tampilkan seluruh data yang tadi di masukkan
Programnya :
/* PROGRAM MEMASUKKAN 5 DATA */
#include<iostream.h>
#include<conio.h>
void main()
{
int data[5];
int i;
cout<<"masukkan data : "<<endl; /*memasukkan data*/
for (i=1;i<=5;i=i+1)
{
clrscr();
cout<<"data ke "<<i<<" : ";
cin>> data[i];
}
clrscr();
cout<<"KESELURUHAN DATA"<<endl; /*menampilkan data */
for (i=1; i<=5;i++)
{
29
cout<<"data ke "<<i<<": "<<data[i]<<endl;
}
getch();
}
Contoh 2 :
Program menghitung 3 luas segitiga menggunakan array
#include<iostream.h>
void main()
{
float a[3],t[3],L[3];
int i;
for (i=0; i<=2; i++)
{
cout<<"perhitungan segitiga ke - "<<i+1<<endl;
cout<<"masukan alas : ";
cin>>a[i];
cout<<"masukan tinggi : ";
cin>>t[i];
L[i]=0.5*a[i]*t[i];
cout<<"luasnya : ";
cout<<L[i];
cout<<endl;
}
}
TUGAS/LATIHAN PRAKTIKUM ARRAY BERDIMENSI SATU :
1. Buatlah program menghitung volume tabung menggunakan Array (banyak
tabung diinputkan) !
1. Buatlah algoritma dan program untuk menginputkan data nilai mahasiswa
(banyak data mahasiswa diinputkan)
30
2. Urutkan nilai data mahasiswa tersebut dari yang terbesar – terkecil.
3. Tampilkan nilai maksimal, minimal & rata-ratanya.
4. Buat soal program diatas yang dihimpun dalam bentuk fungsi dan switch-case.
b. Array Dimensi Dua
Array dimensi dua tersusun dalam bentuk baris dan kolom, dimana indeks
pertama menunjukan baris dan indeks kedua menunjukan kolom. Array dimensi dua
dapat digunakan seperti pendatan penjualan, pendataan nilai dan lain sebagainya.
Bentuk Umum pendeklarasian array dimensi 2 :
Tipe-Data Nama_Variabel[index-1][index-2]
Keterangan :
Type Data : Untuk menyatakan type data yang digunakan.
Index-1 : Untuk menyatakan jumlah baris
Index-2 : Untuk menyatakan jumlah kolom
1. Pendeklarasian Array
Sebagai contoh pendeklarasian yang akan kita gunakan adalah pengolahan data
penjualan, berikut dapat anda lihat pada tabel berikut :
Data penjualan pertahun
2001 2002 2003
150 159 230
100 125 150
210 125 156
31
Jika anda lihat dari tabel diatas maka dapat dituliskan kedalam array dimensi dua
berikut :
Int data_jual [3] [3];
Jumlah Kolom
Jumlah Baris
Nama Array
Tipe data elemen array
Suatu array, dapat diakses dengan menggunakan subscript atau index nya:
Bentuk umum pengaksesan dengan bentuk :
Contoh 1:
/* ---------------- */
/* Array Dimensi 2 */
/* ---------------- */
#include<conio.h>
#include<iostream.h>
#include<iomanip.h>
main()
{
int i, j;
int data_jual[4][4];
clrscr();
for(i=1;i<=3;i++)
{
for(j=1;j<=3;j++)
{
32
Nama_Array[index-1][index-2]
cout<<"Data Ke - "<<i<<" "<<j<<endl;
cout<<"Jumlah Penjulan : ";
cin>>data_jual[i][j];
}
}
cout<<"Data Penjualan Pertahun"<<endl;
cout<<"-----------------------"<<endl;
cout<<" 2001 2002 2003"<<endl;
cout<<"-----------------------"<<endl;
for(i=1;i<=3;i++)
{
for(j=1;j<=3;j++)
{
cout <<" ";
cout<<data_jual[i][j];
cout<<" ";
}
cout<<endl;
}
cout<<"-----------------------"<<endl;
getch();
}
b. Konsep umum array 2 Dimensi berlaku juga pada Matriks
1. kumpulan elemen bertipe sama
2. setiap elemen data dapat diakses secara acak, jika indeksnya (baris dan
kolom) sudah diketahui
3. merupakan struktur data statis, artinya jumlah elemennya sudah
ditentukan terlebih dahulu di dalam kamus dan tidak bisa diubah selama
pelaksanaan program.
c. Deklarasi Matriks
33
tipe_data nama_matriks[baris] [kolom];
misal int B[3][4]jika didekskripsikan dalam bentuk tabel:
0 1 2 30 B[0][0] B[0][1] B[0][2] B[0][3]1 B[1][0] B[1][1] B[1][2] B[1][3]2 B[2][0] B[2][1] B[2][2] B[2][3]
tipe_data menyatakan jenis elemen matriks (int, float, char, unsigned, dan
lain-lain),tidak boleh jenis void.
nama_matriks adalah nama matriks, harus memenuhi ketentuan pengenal.
baris menyatakan jumlah maksimal elemen baris matriks,
kolom menyatakan jumlah maksimal elemen kolom matriks,
contoh: Suatu matriks
8 5 9 8
x = 8 2 1 0
selanjutnya dapat dideklarasikan sebagai berikut:
int x[2][4];
atau dideklarasikan dengan memberikan nilai elemennya sebagai berikut:
int x[2][4]= {{8, 5, 9, 8},{8, 2, 1, 0}}
dimana :
X[0][0]=8 x[0][1]=5 x[0][2]=9 x[0][3]=8X[1][0]=8 x[1][1]=2 x[1][2]=1 x[1][3]=0
d. Memberi nilai matriks
1. Memberikan nilai langsung (assignment)
34
B[2][1]=5; , artinya kita memberikan nilai 5 ke matriks pada baris 2 dan
kolom 1;
2. Memasukkan nilai melalui papan ketik (keyboard)
cin>> B[2][1];
e. Mengakses nilai matriks
nama_larik[baris][kolom];
B[2][1]; atau cout<<B[2][1];
Contoh 2 :
/* ---------------- */
/* Array Dimensi 2 */
/* ---------------- */
#include<conio.h>
#include<iostream.h>
void main()
{
int i, j;
int huruf[8][8] =
{
{1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1},
{1,1,0,0,0,0,1,1},
{1,1,0,0,0,0,1,1},
{1,1,0,0,0,0,1,1},
{1,1,0,0,0,0,1,1},
{1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1},
};
clrscr();
35
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
if (huruf[i][j] == 1)
cout<<'\xDb';
else
cout<<'\x20';
cout<<endl;
}
getch();
}
Contoh 3:
#include<iostream.h>
void main ()
{
int tabel [2][3];
int i,j;
cout<<"input matriks 2 x 3"<<endl;
cout<<" "<<endl;
cout<<"===================="<<endl;
for (i=0;i<=1;i++)
{
for (j=0;j<=2;j++)
{
cin>>tabel [i][j];
}
cout<<" "<<endl;
}
for (i=0;i<=1;i++)
{
for (j=0;j<=2;j++)
{
cout<<tabel[i][j]<<" ";
}
36
cout<<" "<<endl;
}
}
TUGAS/LATIHAN PRAKTIKUM ARRAY BERDIMENSI 2 :
1. Buatlah algoritma & program yang dapat menampilkan sebuah matriks statis (nilai
diinisialisasikan) dengan ordo 2 X 2 beserta invers matriksnya.
2. Buatlah program untuk dua matriks dinamis (nilai diinputkan) berordo 3x3 dan
flowchartnya !
3. Lanjutkan program pada soal no.2 gunakan operasi penjumlahan, pengurangan, perkalian
antara dua buah matriks tersebut beserta transpose matriksnya menggunakan fungsi dan
switch-case !
4. Buatlah program yang dapat memunculkan :
i) Deretan Bilangan Prima
ii) Deretan Bilangan Fibbonaci
Dengan menggunakan konsep Array!
BAB VI
STRUKTUR
37
TUJUAN
1. Mengetahui sekilas mengenai cara penulisan struktur dalam pemrograman bahasa C+
+
2. Mengetahui penerapan struktur dalam pemrograman C++
3. Mampu membuat program sederhana dengan menggunakan stuktur
DASAR TEORI
Structure digunakan untuk mengelompokan sejumlah data yang mempunyai tipe
data yang berbeda. Variabel-variabel yang membentuk sebuah struktur dinamakan
elemen struktur. Struktur sama seperti Record di dalam Bahasa Pemrograman Pascal
Array adalah kumpulan elemen yang bertipe sama. Tetapi struktur memudahkan
Anda untuk mengumpulkan variabel dengan tipe yang berbeda di dalam satu
nama. Fasilitas ini memungkinkan kita untuk melayani sekumpulan data yang rumit
sebagai satuan tunggal.
Suatu struktur dinyatakan dengan kata kunci struct, daftar pernyataan variabel
yang disebut anggota, yang terlampir dalam tanda kurung { }. Tiap pernyataan
anggota dan struktur harus berakhir dengan semicolon ( ; )
a. Bentuk deklarasi struktur :
struct nama_struct{ elemen_struktur;
..... .....
}nama_struct variabel_struct;
struct data {
char nim[5]; char nama[15]; float nilai;
} data mahasiswa;
b. Mengakses anggota Struktur
38
Anggota struktur dapat diakses dengan menggunakan bentuk :
variabel_struktur.elemen;
cout<<mahasiswa.nim;cin>>mahasiswa.nama;cout<<mahasiswa.nilai<<endl;
BAHAN DAN ALAT
Hardware : 1 Unit Komputer
Software : OS (Windows XP/7); Turbo C++ 4.5
TAHAPAN KERJA
Contoh Latihan Praktikum Struktur
/* ---------------------------- *//* Program Penggunaan structure *//* Nama File : struct1.cpp */ /* ---------------------------- */
#include<stdio.h>#include<conio.h>#include<iostream.h>
main(){ struct {
char nim[5]; char nama[15]; float nilai;
} mahasiswa;
clrscr(); cout<<"masukan NIM = ";
cin>>mahasiswa.nim; cout<<"masukan Nama = ";
cin>>mahasiswa.nama; cout<<"masukan Nilai Akhir = ";
cin>>mahasiswa.nilai;
clrscr(); cout<<"NIM = "<<mahasiswa.nim<<endl; cout<<"Nama = "<<mahasiswa.nama<<endl; cout<<"Nilai Akhir = "<<mahasiswa.nilai<<endl;
getch();}
Nested Structure
39
Nested Structure merupakan suatu Structure dapat digunakan didalam structure yang lainnya. Hal seperti ini anda dapat lihat pada program berikut ini :
Contoh :#include<conio.h>#include<iostream.h>void main(){ struct dtmhs {
char nim[5]; char nama[15];
};
struct dtnil {
float nil1; float nil2;
}; struct data {
struct dtmhs mhs;struct dtnil nil;
} data nilai; clrscr(); //-> masukan data cout<<"masukan NIM = "; cin>>nilai.mhs.nim; cout<<"masukan Nama = "; cin>>nilai.mhs.nama; cout<<"masukan Nilai UTS = "; cin>>nilai.nil.nil1; cout<<"masukan Nilai UAS = "; cin>>nilai.nil.nil2; cout<<endl; clrscr(); //-> menampilkan hasil masukan cout<<"NIM = "<<nilai.mhs.nim<<endl; cout<<"Nama = "<<nilai.mhs.nama<<endl; cout<<"Nilai UTS = "<<nilai.nil.nil1<<endl; cout<<"Nilai UAS = "<<nilai.nil.nil2<<endl; cout<<endl; getch();}
Struktur dengan Array
Array dari struktur dapat dideklarasikan seperti halnya pendeklarasian array biasa.
Bentuk : nama_array[index]. anggota_struktur;
Contoh :#include <iostream.h>#include <conio.h>void main (){
struct buku{
40
int kode ;char nama[69];int terbit ;char pengarang[69];char judul[69];long harga;};
buku tabel [1];int a, b, c;long sum=0;cout<<"masukan jumlah pesanan buku : ";cin>>a;cout<<endl<<endl;clrscr();for (b=1;b<=a;b++)
{cout <<"======== Pesanan ke-" << b <<" ============"<<
endl;cout << "Kode :";cin >> tabel[b].kode ;cout << "Judul :";cin >> tabel[b].judul ;cout << "Nama :";cin >> tabel[b].nama ;cout << "Tahun Terbit :";cin >> tabel[b].terbit ;cout << "Pengarang :";cin >> tabel[b].pengarang ;cout << "Harga :";cin >> tabel[b].harga ;sum=sum+tabel[b].harga ;cout << endl ;clrscr();
}for (b=1;b<=a;b++)
{cout << "Pemesan : ";cout << tabel[b].nama ;cout << endl ;cout << "Judul Buku : ";cout << tabel[b].judul ;cout << endl ;cout << "Tahun terbit : ";cout << tabel[b].terbit ;cout << endl ;cout << "Nama Pengarang : ";cout << tabel[b].pengarang ;cout << endl ;cout << "Harga Rp. : ";cout << tabel[b].harga ;cout << endl <<"================================="<< endl
;}cout<<" TOTAL HARGA Rp. "<<sum;
}
TUGAS /LATIHAN PRAKTIKUM STRUCT :
1. Buat struct untuk pemesanan menu makanan ( Gunakan array of struct ), berikut harga, total, kembalian, bayar dsb !
41
2. Cari 2 contoh kasus lain disekitar anda yang dapat menggunakan struct, selain KTP, KTM, SIM, buku.
BAB VII
FUNGSI
42
DEFINISI FUNGSI
Fungsi adalah sekumpulan perintah operasi program yang dapat menerima
argumen input dan dapat memberikan hasil output yang dapat berupa nilai
ataupun sebuah hasil operasi. Hasil akhir fungsi akan berupa sebuah nilai balik
(return). Nama fungsi yang didefinisikan sendiri oleh pemrogram tidak boleh sama
dengan nama build-in function pada compiler C++.
Fungsi digunakan agar pemrogram dapat menghindari penulisan bagian program
(kode) berulang-ulang, dapat menyusun kode program agar terlihat lebih rapi
dan kemudahan dalam debugging program. Parameter adalah nama-nama
peubah yang dideklarsikan pada bagian header fungsi. Pemrogram dapat
membuat fungsi yang didefinisikan sendiri olehnya.
Pada intinya fungsi berguna untuk :
- Mengurangi pengulangan penulisan program yang berulangan atau sama.
- Program menjadi terstruktur, sehingga mudah dipahami dan dikembangkan.
Fungsi-fungsi yang sudah kita kenal sebelumnya adalah fungsi main(), yang bersifat
mutlak, karena pada fungsi ini program akan dimulai sebagai output utama.
B e n t u k u m u m n ya :
Deklarasi parameter{
Isi fungsi
43
}
3.2 Struktur Fungsi
Sebuah fungsi sederhana mempunyai bentuk penulisan sebagai berikut :
nama_fungsi(argumen){… pernyataan / perintah;… pernyataan / perintah; … pernyataan / perintah;
}Keterangan: Nama fungsi, boleh dituliskan secara bebas dengan ketentuan, tidak
menggunakan spasi dan nama-nama fungsi yang mempunyai arti sendiri. Argumen, diletakan diantara tanda kurung “( )” yang terletak dibelakang
nama fungsi. Argumen boleh diisi dengan suatu data atau dibiarkan kosong. Pernyataan / perintah, diletakan diantara tanda kurung ‘{ }’.
Pada pemanggilan sebuah fungsi, cukup dengan menuliskan nama fungsinya.
Contoh#include <iostream.h>/* pembuatan fungsi garis() */
garis(){ cout<<"\n ---------------------- \n";}/* program utama */void main(){ garis(); cout<<"UNIVERSITAS PAKUAN BOGOR"<<endl; garis();}
3.3 Prototipe Fungsi
Sebuah fungsi tidak dapat dipanggil kecuali sudah dideklaraikan, deklarasi fungsi dikenal dengan sebutan prototipe fungsi. Prototipe fungsi berupa :
1. Nama Fungsi2. Tipe nilai fungsi3. Jumlah dan tipe argumen
Dan diakhiri dengan titik koma, sebagaimana pada pendeklarasian variabel. Sebagai contoh:
44
1. long kuadrat (long l) ;Pada contoh pertama, fungsi kuadrat ( ) mempunyai argumen bertipe long dan nilai balik bertipe long.
2. void garis ( );Pada contoh kedua, fungsi garis ( ) tidakmemiliki argumen dan nilai baliknya tidak ada(void).
3. double maks (double x, double y)
Pada contoh ketiga, fungsi maks( ) mempunyai dua buah argumen, dengan masing- masing argumen bertipe double.
Contoh :#include<iostream.h>double hasil(int a,int b);void main(){
int x,y;double z;cout<<"masukan nulai x : ";cin>>x;
cout<<"masukan nilay y : ";cin>>y;
z=hasil (x,y);
cout<<"hasil perkalianya = ";cout<< x << " x " << y << " = " <<z;
}double hasil (int a,int b){
return (a*b);}
Penjelasan :// Fungsi Perkalian// tipe_return nama_fungsi (tipe_argument argumen)
double hasil (int a,int b){return (a*b);
}Fungsi yang didefinisikan oleh pemrogram terdiri atas dua bagian,
yaitu judul (header) dan isi (body). Judul dari sebuah fungsi terdiri dari tipe
45
return (double), nama fungsi (hasil) dan list parameter ( int A, int B).Jadi, judul untuk fungsi hasil adalah
double hasil (int A, int B)
Isi dari sebuah fungsi adalah blok kode yang mengikuti judulnya. Berisi kode yang menjalankan aksi dari fungsi, termasuk pernyataan return yang memuat nilai fungsi yangakan dikembalikan ke yang memanggilnya, Isi dari fungsi hasil ( ) adalah
{return A * B;
}
Biasanya isi dari fungsi cukup besar. Meskipun demikian, judulnya tetap hanya berada dalam satu baris. Isi dari sebuah fungsi dapat memanggil fungsi itu sendiri (disebut rekursif) atau memanggil fungsi lainnya.
Pernyataan return dari sebuah fungsi mempunyai dua manfaat, yaitu akan mengakhiri fungsi dan mengembalikan nilainya ke program pemanggil.
B e n t u k u m u m pernyataan return adalah :
return ekspresi;
Dengan ekspresi adalah sebuah ekspresi yang nilainya dinyatakan untuk sebuah variable yang tipenya sama seperti tipe return. Terdapat juga fungsi yang tidak memberikan nilai balik atau tipe returnnya void.
3.4 Variabel Lokal dan variabel Eksternal
Variabel lokal adalah variabel yang didefinisikan dalam suatu fungsi tertentu, sehingga hanya dikenal dalam fungsi tersebut. Dalam hal ini artinya suatu fungsi tidak akan mengenal variabel lokal dan fungsi lain. Suatu fungsi hanya akan mengenal variabel yang didefinisikan dalam fungsi yang bersangkutan.
Variabel eksternal adalah variabel yang bersifat global yang dapat dikenali oleh seluruh fungsi yang terdapat dalam program tersebut. Seluruh fungsi akan mengenal variabel yang bersifat eksternal ini. Variabel eksternal dideklarasikan diluar fungsi dan sejajar dengan prototipe fungsi serta pengarah kompiler.
Contoh :
46
Outputnya :
Penjelasan :
Dalam pemograman tersebut terdapat variable local dan variabel eksternal yang namanya sama yaitu data. Dalam fungsi main( ) dan fungsi_satu ( ) terdapat variabel lokal dengan nama sama tetapi sebetulnya lokasi penyimpanannya dalam memori berbeda, sehingga dua variabel itu berbeda dan tidak saling mengenal. Fungsi_satu ( ) sebetulnya mengenal variabel eksternal data yang nilainya 100, tetapi karena dalam fungsi tedapat variabel lokal data yang bernilai 300, maka diprioritaskan untuk diproses dalam fungsi tersebut adalah variabel lokalnya. Jika dalam fungsi terdapat variabel lokal dan variabel eksternal yang sama, maka diprioritaskan untuk diproses variable lokal. Dalam fungsi_dua ( ) tidak terdapat variabel lokal sehingga yang diproses pada fungsi tersebut adalah variabel eksternalnya.
3.5 ParameterParameter adalah sarana komunikasi antar fungsi. Pengertian antar fungsi
adalah antara fungsi dengan fungsi lain termasuk antara fungsi dengan fungsi utama. Dalam pemograman yang melibatkan fungsi, diusahakan agar fumgsi bersifat independen artinya tidak tergantung pada fungsi lain. Terdapat dua macam para parameter fungsi, yaitu :
47
Parameter formal adalah variabel yang ada pada daftar parameter dalam definisi fungsi. Parameter Aktual adalah variabel yang dipakai dalam pemanggilan fungsi.
Bentuk penulisan Parameter Formal dan Parameter Aktual.
Ada dua cara untuk melewatkan parameter ke dalam fungsi, yaitu berupa :
a. Pemanggilan dengan nilai ( Call by Value )
Pemanggilan dengan nilai merupakan cara yang dipakai untuk seluruh fungsi buatan yang telah dibahas didepan. Pada pemanggilan dengan nilai, nilai dari parameter aktual akan ditulis keparameter formal. Dengan cara ini nilai parameter aktual tidak bisa berubah, walaupun nilai parameter formal berubah.
Contoh:
48
Outputnya :
b. Pemanggilan dengan Referensi (Call by Reference)
Pemanggilan dengan reference merupakan upaya untuk melewatkan alamat dari suatu variabel kedalam fungsi. Cara ini dapat dipakai untuk mengubah isi suatu variabel diluar fungsi dengan melaksanakan pengubahan dilakukan didalam fungsi.
Contoh:
49
Outputnya :
3.6 Nilai Bawaan Untuk Argumen Fungsi
Salah satu keistimewaan C++ yang sangat bermanfaat dalam pemrograman adalah adanya kemampuan untuk menyetel nilai default Argumen fungsi. Argumen-argumen yang mempunyai nilai bawaan nantinya dapat tidak disertakan di dalam pemanggilan fungsi dan dengan sendirinya C++ akan menggunakan nilai bawaan dari argumen yang tidak disertakan.
Contoh :
#include <iostream.h>void ilkom (int n);void main(){ ilkom (3);}
50
void ilkom (int n){for (int m=0; m<n; m++)cout<<"ILMU KOMPUTER \n";}
Output:ILMU KOMPUTERILMU KOMPUTERILMU KOMPUTER
3.7 Rekursi
Merupakan suatu fungsi dapat memanggil fungsi yang merupakan dirinya
sendiri. Penerapan rekursi diantaranya untuk menghitung nilai : xn
Contoh:
#include <iostream.h>long int pangkat (int x, int y);void main (){
int x,y;cout<<"menghitung x^y " <<endl;cout << " x = ";cin >> x;cout << " y = ";cin >> y;cout << x << " ^ " <<y << "=" <<pangkat (x,y)<<endl;
}long int pangkat (int x,int n){
if (n==1)return (x);
elsereturn (x*pangkat (x, n-1));
}
Outputnya
51
TUGAS/LATIHAN PRAKTIKUM :
1. Buatlah program menggunakan fungsi untuk menghitung luas bangun datar (segitiga, lingkaran, jajar genjang dan bujur sangkar )
2. Buatlah program (nomor 1) menggunakan operasi Switch-case dimana:- Angaka 1 digunakan untuk menghitung luas segitiga- Angaka 2 digunakan untuk menghitung luas lingkaran- Angaka 3 digunakan untuk menghitung luas jajar genjang- Angaka 4 digunakan untuk menghitung luas bujur sangkar- Angaka 5 digunakan untuk keluar program
3. Buatlah program rekursi untuk mencari Nilai n faktorial (nilai n diinputkan)
4. Buatlah program dengan cara rekursi untuk menampilkan pangkat 3 dar i bilangan tersebut (soal nomor 2).
52