50% menganggap dokumen ini bermanfaat (2 suara)
1K tayangan52 halaman

Algoritma C+

Dokumen tersebut membahas tentang pengenalan bahasa pemrograman C++. Secara singkat, dokumen tersebut menjelaskan tujuan pembelajaran C++ yaitu mampu menggunakan variabel, pernyataan, operator dan tipe data serta mampu membuat aplikasi sederhana menggunakan C++. Dokumen tersebut juga menjelaskan dasar-dasar teori C++ seperti sejarah, kelebihan, variabel, tipe data, dan pernyataan das

Diunggah oleh

hahahadidi
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
50% menganggap dokumen ini bermanfaat (2 suara)
1K tayangan52 halaman

Algoritma C+

Dokumen tersebut membahas tentang pengenalan bahasa pemrograman C++. Secara singkat, dokumen tersebut menjelaskan tujuan pembelajaran C++ yaitu mampu menggunakan variabel, pernyataan, operator dan tipe data serta mampu membuat aplikasi sederhana menggunakan C++. Dokumen tersebut juga menjelaskan dasar-dasar teori C++ seperti sejarah, kelebihan, variabel, tipe data, dan pernyataan das

Diunggah oleh

hahahadidi
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 52

BAB I PENGENALAN BAHASA C++ TUJUAN Pengenalan Bahasa C++ Mampu menggunakan variable, pernyataan, operator dan tipe

ipe 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 Software TAHAPAN KERJA 1. Buka file baru pada aplikasi Turbo C++ 2. Ketiklah kode berikut ini Latihan1.1 : 1 Unit Komputer : OS (Windows XP/7); Turbo C++;

#include <iostream.h> void main() { cout<<" selamat datang di c++..."; }

3. Untuk proses kompilasi, silahkan klik tanda Run Output :

atau tekan ctrl+f9

Penjelasan : Include Adalah salah satu pengarah prepocessor 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 yang menyisipkan file lain dalam hal ini file yang berakhiran .h(file header) yaitu file yang berisi sebagai deklarasi contohnya: - # include <iostream.h> - # include <conio.h> - # include <iomanip.h> : diperlukan pada program yang melibatkan objek cout : diperlukan bila melibatkan clrscr(),yaitu perintah untuk membersihkan layar. : 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 c. Character ( Karakter Tunggal ) String ( Untuk Rangkaian Karakter ) 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 Integer Floating Point Double Precision Karakter Unsigned Integer Unsigned Character Long Integer Unsigned Long Integer

SIMBOL DEKLARASI int float double char unsigned int unsigned char long int unsigned long int 4

Bentuk penulisannya :

Tipe data

nama variabel;

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 1 2 3 4 5 6 Tipe Data char int float double void String Ukuran 1 byte 2 byte 4 byte 8 byte 0 byte Range -128 s/d 127 - 32768 s/d 32767 - 3.4E-38 s/d 3.4E+38 Format %c %i , %d %f %s Keterangan Karakter/string Integer/bilangan bulat Float/bilangan pecahan Pecahan presisi ganda Tidak bertipe String

- 1.7E-308 s/d1.7+308 %lf

PERTANYAAN DAN TUGAS

1. Buatlah program untuk menginputkan biodata terdiri dari nama lengkap, nama panggilan,npm, umur, tempat lahir,telepon, dan alamat. Output :
Assalamualaikum.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, dont 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

BAB II 6

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. Operatoroperator 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 & | ^ && | ! BAHAN DAN ALAT Hardware Software : 1 Unit Komputer : OS (Windows XP/7); Turbo C++ 4.5 7 Meaning AND OR XOR (Exclusive OR) Short-circuit AND Short-circuit OR Not

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:

kondi si

perintah

Bentuk umum dari pernyataan if

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 8

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

kondi si

salah

Perintah-1 benar

Perintah-2

Gambar Diagram Alir if-else Bentuk umum dari pernyataan if - else

if (kondisi) perintah-1; else 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) perintah; else perintah; else if(syarat) perintah; else perintah;

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 penggunaan bentuk penulisan yang lebih sederhana. Bentuk Penulisannya adalah

10

if (syarat) { perintah; perintah; } else if (syarat) { perintah; perintah; } else { perintah; 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 :


#include<iostream.h> void main() { int Hari; cout<<"Masukan Pilihan Hari (1-7) :"; cin>>Hari; switch (Hari) { case 1: cout<<"Hari break; case 2: cout<<"Hari break; case 3: cout<<"Hari break; case 4: cout<<"Hari break; case 5: cout<<"Hari break; case 6: cout<<"Hari break; case 7: cout<<"Hari break; default: cout<<"Anda break; }

Minggu"; Senin"; Selasa"; Rabu"; Kamis"; Jumat"; Sabtu"; salah memasukan input (1-7)";

12

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 dowhile 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 Software TAHAPAN KERJA Struktur for : 1 Unit Komputer : OS (Windows XP/7); Turbo C++ 4.5

14

Struktur pengulangan for biasa digunakan untuk mengulang suatu proses yang telah diketahui jumlah pengulangannya. Bentuk Umum :
for (inisialisasi;kondisi;iterasi) { Pernyataan ; }

Keterangan: - Inisialisasi - Kondisi : - Iterasi : : pernyataan untuk menyatakan keadaan awal dari variable kontrol. ekspresi relasi yang menyatakan kondisi untuk keluar dari pengulangan. 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 Software 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 : 1 Unit Komputer : OS (Windows XP/7); Turbo C++

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 Andi Alamat 8321 Isi 9821 = &Budi 19

Budi Dalam bentuk pointer, ditulis :

9821

5 = *(&Budi)

Andi = &Budi; // baris 1 Budi = *(&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 = &Budi; // Andi sebagai pointer // Isi dari Andi yaitu alamat Budi int Budi = 5; // Budi bukan pointer, perhatikan perbedaan pada * 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 menggunakan cara 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 pointerarray 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 String

Jika 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 Software TAHAPAN KERJA


a. Array Dimensi Satu Bentuk Umum pendeklarasian array :

: 1 Unit Komputer : OS (Windows XP/7); Turbo C++

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

elemen

elemen

elemen

elemen

elemen

elemen

1
0

2
1

3
2

4
3

5
4

6
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. sebesar 4 x 10 = 20 bytes. int kondisi[2]={0,1}: berarti akan memesan data tempat di memori komputer pada sebanyak 2 tempat dengan indeks 0-1, dimana semua elemennya bertipe integer semuanya. Dan 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 Kalau satu

integer berukuran 4 bytes, berarti membutuhkan memori

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 28

dengan argumennya, maka operator tersebut dapat digunakan untuk menemukan 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. 2. 3. 4. Siapkan 5 tempat untuk menyimpan data array for untuk i = 1 to 5, masukkan data melalui keyboard Gunakan fungsi clear screen pada setiap data yang selesai diinputkan 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; for (i=1;i<=5;i=i+1) { clrscr(); cout<<"data ke "<<i<<" : "; cin>> data[i]; } clrscr(); cout<<"KESELURUHAN DATA"<<endl; for (i=1; i<=5;i++) /*menampilkan data */ /*memasukkan data*/

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. 1. Buatlah program menghitung volume tabung menggunakan Array (banyak tabung diinputkan) ! Buatlah algoritma dan program untuk menginputkan data nilai mahasiswa 30

(banyak data mahasiswa diinputkan) 2. 3. 4. Urutkan nilai data mahasiswa tersebut dari yang terbesar terkecil. Tampilkan nilai maksimal, minimal & rata-ratanya. 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 Index-1 Index-2 1. : : : Untuk menyatakan type data yang digunakan. Untuk menyatakan jumlah baris Untuk menyatakan jumlah kolom Pendeklarasian Array Sebagai contoh pendeklarasian yang akan kita gunakan adalah pengolahan data penjualan, berikut dapat anda lihat pada tabel berikut :
Data penjualan pertahun 2002 2003 159 230 125 150 125 156

2001 150 100 210

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 :

Nama_Array[index-1][index-2]

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

cout<<"Data Ke - "<<i<<" "<<j<<endl; cout<<"Jumlah Penjulan } } 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<<" } cout<<endl; } cout<<"-----------------------"<<endl; getch(); } "; "; cout<<data_jual[i][j]; : "; cin>>data_jual[i][j];

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 B[0][0] B[1][0] B[2][0] 1 B[0][1] B[1][1] B[2][1] 2 B[0][2] B[1][2] B[2][2] 3 B[0][3] B[1][3] B[2][3]

0 1 2

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[1][0]=8 x[0][1]=5 x[1][1]=2 x[0][2]=9 x[1][2]=1 x[0][3]=8 x[1][3]=0

d. Memberi nilai matriks

34

1.

Memberikan nilai langsung (assignment)


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}, };

35

clrscr(); 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++) {

36

cout<<tabel[i][j]<<" "; } 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
37

STRUKTUR 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;

38

b. Mengakses anggota Struktur Anggota struktur dapat diakses dengan menggunakan bentuk : variabel_struktur.elemen;
cout<<mahasiswa.nim; cin>>mahasiswa.nama; cout<<mahasiswa.nilai<<endl;

BAHAN DAN ALAT Hardware Software TAHAPAN KERJA


Contoh Latihan Praktikum Struktur /* /* /* /* ---------------------------Program Penggunaan structure Nama File : struct1.cpp ---------------------------*/ */ */ */

: 1 Unit Komputer : OS (Windows XP/7); Turbo C++ 4.5

#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(); }

39

Nested Structure 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 : Contoh :
#include <iostream.h> #include <conio.h>

nama_array[index]. anggota_struktur;

40

void main () { struct buku { 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 : 41

1. Buat struct untuk pemesanan menu makanan ( Gunakan array of struct ), berikut harga, total, kembalian, bayar dsb ! 2. Cari 2 contoh kasus lain disekitar anda yang dapat menggunakan struct, selain KTP, KTM, SIM, buku.

BAB VII 42

FUNGSI 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 peubah dalam debugging pada program. bagian Parameter fungsi. adalah nama-nama dapat yang dideklarsikan header Pemrogram

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.

Bentuk umumnya :

43

Deklarasi parameter { Isi fungsi } 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 Fungsi

44

2. Tipe nilai fungsi 3. Jumlah dan tipe argumen Dan diakhiri dengan titik koma, sebagaimana pada pendeklarasian variabel. Sebagai contoh: 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)

45

{ 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 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 yang akan 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. Bentuk umum 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.

46

Contoh :

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 Parameter Parameter 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

47

bersifat independen artinya tidak tergantung pada fungsi lain. Terdapat dua macam para parameter fungsi, yaitu : 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

Outputn ya :

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 KOMPUTER ILMU KOMPUTER ILMU KOMPUTER 3.7 Rekursi Merupakan suatu fungsi dapat memanggil fungsi yang merupakan dirinya n sendiri. Penerapan rekursi diantaranya untuk menghitung nilai : x Co ntoh: #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); else return (x*pangkat (x, n-1)); } Output nya

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 d a r i bilangan tersebut (soal nomor 2).

52

Anda mungkin juga menyukai