RSS

Minggu, 25 Oktober 2009

Pengenalan C++

.1 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. Untuk memperoleh nilai dari suatu variable digunakan pernyataan penugasan (assignment statement), yang mempunyai sintaks sebagai berikut :

variable = ekspresi ;Nama dari suatu variable dapat ditentukan sendiri oleh pemrogram dengan aturan sebagai berikut :

1. 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.
2. Tidak boleh mengandung spasi.
3. Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah (underscore). Yang termasuk symbol khusus yang tidak diperbolehkan antara lain : $, ?, %, #, !, &, *, (, ), -, +, =dsb.
4. Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai. Contoh penamaan variabel yang benar :

NIM, a, x, nama_mhs, f3098, f4, nilai, budi, dsb.Contoh penamaan variable yang salah :%nilai_mahasiswa, 80mahasiswa, rata-rata, ada spasi, penting!, dsb

3.2 DEKLARASI

Deklarasi diperlukan bila kita akan menggunakan pengenal (identifier) dalam program. Identifier dapat berupa variable, konstanta dan fungsi.



3.2.1 DEKLARASI VARIABEL

Bentuk umumnya :

Nama_tipe nama_variabel ;

Contoh :int x; // Deklarasi x bertipe integerchar y, huruf, nim[10]; // Deklarasi variable bertipe charfloat nilai; // Deklarasi variable bertipe floatdouble beta; // Deklarasi variable bertipe doubleint array[5][4]; // Deklarasi array bertipe integerContoh :Outputnya :

66n 3.2.1 DEKLARASI KONSTANTA

a. Menggunakan keyword constContoh : const float PI = 3.14152965;Berbeda dengan variable, konstanta bernama tidak dapat diubah jika telah diinisialisasi b. Menggunakan #defineContoh : #define PI 3.14152965Keuntungan menggunakan #define apabila dibandingkan dengan const adalah kecepatan kompilasi, karena sebelum kompilasi dilaksanakan, kompiler pertama kali mencari symbol #define (oleh sebab itu mengapa # dikatakan preprocessor directive) dan mengganti semua Phi dengan nilai 3.14152965.Contoh :

3.3 TIPE DATA

Tipe data dapat dikelompokkan menjadi atas dua macam :1. Tipe Dasar.2. Tipe Bentukkan.

3.3.1 TIPE DASAR

Adalah tipe yang dapat langsung dipakai.Tipe data yang berhubungan dengan bilangan bulat adalah char, int, long. Sedangkan lainnya berhubungan dengan bilangan pecahan. Contoh :Outputnya : 18125Darimana angka 18125 diperoleh ?Jika variable tidak diinisialisai, namun nilai keluarannya diminta, maka compiler dengan bijak akan menampilkan nilai acak yang nilainya tergantung dari jenis compilernya.

3.3.1.1 KARAKTER & STRING LITERAL

String adalah gabungan dari karakterContoh : “ Belajar “ : Literal String“ B “ : KarakterPanjang Stringstrlen() : nama fungsi untuk menghitung panjang stringFungsi strlen() dideklarasikan dalam file string.h. Jadi bila anda ingin menggunakan fungsi strlen(), maka prepocessor directive #include harus dimasukkan dalam program diatas main().Contoh :Outputnya: 1413710 Perhatikan, bahwa disetiap akhir baris pernyataan diakhiri dengan tanda titik – koma (semicolon) “ ; “.Perhatikan, bahwa :· ‘ \n ‘ dihitung satu karakter. \n disebut newline karakter· Endl juga merupakan newline karakter ( sama kegunaannya seperti \n ).Dalam C++, selain \n terdapat juga beberapa karakter khusus yang biasa disebut escape sequence characters, yaitu
Karakter Keterangan

3.3.1.2 KEYWORD & IDENTIFIER

Dalam bahasa pemrograman, suatu program dibuat dari elemen-elemen sintaks individual yang disebut token, yang memuat nama variable, konstanta, keyword, operator dan tanda baca. Contoh :Output :66Program diatas memperlihatkan 15 token, yaitu main, (, ), {, int, n, =, 66, ;, cout, <<, endl, return, 0 dan }Token n adalah suatu variableToken 66,0 adalah suatu konstantaToken int, return dan endl adalah suatu keywordToken = dan << adalah operatorToken(, ), {, ;, dan } adalah tanda bacaBaris pertama berisi suatu prepocessor directive yang bukan bagian sebenarnya dari program

3.3.2 TIPE BENTUKAN

Merupakan tipe yang dibentuk dari tipe dasar. Seperti Tipe Struktur.

3.3.2.1 TIPE STRUKTUR

Suatu tipe data yang merupakan kumpulan dari tipe data lainnya. Struktur terdiri dari data yang disebut field. Field – field tersebut digabungkan menjadi satu tujuan untuk kemudahan dalam operasi.Bentuk umumnya :tyedef struct{ tipe nama_field1;tipe nama_field2;tipe nama_field3;. . . .}nama_variabel; Contoh :Perhatikan bahwa pada akhir dari typedef struct diberi tanda semicolon.

IV. OPERATOR DAN STATEMEN I/O

4.1 OPERATOR

Operator adalah symbol yang biasa dilibatkan dalam program untuk melakukan sesuatu operasi atau manipulasi.

4.1.1 OPERATOR PENUGASAN

Operator Penugasan (Assignment operator) dalam bahasa C++ berupa tanda sama dengan (“=”).Contoh :nilai = 80;A = x * y;Penjelasan :variable “nilai” diisi dengan 80 danvariable “A” diisi dengan hasil perkalian antara x dan y.

4.1.2 OPERATOR ARITMATIKA
Operator Deskripsi Contoh
+ Penjumlahan ( Add ) m + n
- Pengurangan ( Substract ) m – n
* Perkalian ( Multiply ) m * n
/ Pembagian ( Divide ) m / n
- Negasi ( Negate ) -m

NB : Operator seperti operator negasi (-) disebut unary operator, karena membutuhkanhanya satu buah operandOperator % (modulus) digunakan untuk mencari sisa pembagian antara duabilangan. Misalnya : 9 % 2 = 1, 9 % 3 = 0Contoh :14 Copyright PIK Unsri Agustus 2006Output :Karena tipe datanya adalah int, maka 82/26=3, supaya dapat merepresentasikan nilaiyang sebenarnya, gunakan tipe data float.Cara lain penulisan dengan menggunakan operator aritmatika :m = m + n ó m += nm = m - n ó m -= nm = m * n ó m *= nm = m / n ó m /= nm = m % n ó m %= n

4.1.3 OPERATOR HUBUNGAN (PERBANDINGAN)

Operator Hubungan digunakan untuk membandingkan hubungan antara dua buahoperand (sebuah nilai atau variable). Operator hubungan dalam bahasa C++Operator Arti Contoh= = Sama dengan (bukan assignment ) x= =y Apakah x sama dengany!= Tidak sama dengan x != y Apakah x tidak samadengan y> Lebih besar x > y Apakah x lebih besardari y< Lebih kecil x < y Apakah x lebih kecildari y>= Lebih besar atau sama dengan x >= y Apakah x lebih darisama dengan y<= Lebih kecil atau sama dengan x <= y Apakah x kurang darisama dengan y15 Copyright PIK Unsri Agustus 2006Contoh:Outputnya :

4.1.4 OPERATOR NAIK DAN TURUN ( INCREMENT DAN DECREMENT )

Operator increment à ++Operator decrement à –Contoh :Outputnya :Terlihat bahwa operator pre-increment dan post-increment memiliki akibat yangsama, yaitu manambah nilai satu pada m dan memasukkan nilai tersebut kembali ke m(m=m+1). Hal yang sama juga terjadi pada operator pre-decrement dan post-decrementyang memberikan akibat yang sama, yaitu mengurangi nilai satu dari n ( n = n - 1).16 Copyright PIK Unsri Agustus 2006Tetapi bila digunakan sebagai sub-ekspresi, operator post-increment dan preincrementmenunjukkan hasil yang berbedaContoh :Outputnya :Penjelasan :Dalam penugasan yang pertama, m adalah pre-increment, menaikkan nilainya menjadi67, yang selanjutnya dimasukkan ke n.Dalam penugasan kedua, m adalah post-increment, sehingga 67 dimasukkan dahulu ke nbaru kemudian nilai m-nya dinaikkan, itu sebabnya mengapa nilai m = 68 dan n = 67.Dalam penugasan ketiga, m adalah post-increment, sehingga nilai m ( = 68 ) ditampilkandahulu ( ke layar ) baru kemudian nilai m dinaikkan menjadi 69.Dalam penugasan keempat, m adalah pre-increment, sehingga nilai m dinaikkan dahulumenjadi 70 baru kemudian ditampilkan ke layar.Supaya lebih paham, perhatikan pula contoh dibawah.Contoh :17 Copyright PIK Unsri Agustus 2006Penjelasan :Dalam penugasan untuk n, pertama kali m dinaikkan (++m) menjadi 6, kemudian mditurunkan kembali menjadi 5, karena adanya –m. Sehingga nilai m sekarang adalah 5dan nilai m = 5 inilah yang dievaluasi pada saat penugasanperkalian dilakukan. Padabaris terakhir, ketiga sub-ekspresi dievaluasi dari kanan ke kiri.

4.1.5 OPERATOR BITWISE

Operator Deskripsi Contoh<< Geser n bit ke kiri ( left shift ) m << n>> Geser n bit ke kanan ( right shift ) m >> n& Bitwise AND m & n| Bitwise OR m | n^ Bitwise XOR m ^ n~ Bitwise NOT ~mNB : Seluruh operator bitwise hanya bisa dikenakan pada operand bertipe data int ataucharBerikut ini diberikan tabel kebenaran untuk operator logikaP = A operator BAND ORA B P0 0 00 1 01 0 01 1 1A B P0 0 00 1 11 0 11 1 1XORA B P0 0 00 1 11 0 11 1 018 Copyright PIK Unsri Agustus 2006Contoh :Output :Penjelasan :Nilai keluaran diatas, tergantung dari jenis compiler yang digunakan. Hasil diatasmerupakan keluaran dari compiler Turbo C++.Pada Turbo C++ besar dari integer adalah 2 byte atau sama dengan 16 bit, untukmengetahuinya digunakan perintahcout<<<< 2 à 00000001010010002 = 3281082 >> 2 à 00000000000101002 = 201082 & 26 à 0000000001010010200000000000110102—————————————— &00000000000100102 = 1810dan begitu juga untuk operasi OR dan XOR.~82 à digunakan 2’s complement, yaitu19 Copyright PIK Unsri Agustus 20068210 = 00000000010100102 lalu dinegasikan tiap bitnya menjadi11111111101011012 kemudian LSB ditambah 1 menjadi1111111110101110 = 6545410 nilai ini melebihi jangkauan maksimum intyang berkisar di -32768 sampai 32767, sehingga nilai yang keluar yaitu83.Cara lain penulisan dengan menggunakan operator bitwise :m = m << n ó m <<= nm = m >> n ó m >>= nm = m & n ó m &= nm = m | n ó m |= nm = m ^ n ó m ^= n

3.1.6 OPERATOR LOGIKA

Operator logika digunakan untuk menghubungkan dua atau lebih ungkapan menjadisebuah ungkapan berkondisi.Operator Deskripsi Contoh&& logic AND m && n|| logic OR m ||n! logic NOT !mContoh :Outputnya :Penjelasan :Hasil keluaran dari operator logika adalah 0 dan 1.0 jika keluarannya salah dan 1 jika keluarannya benar.20 Copyright PIK Unsri Agustus 2006

3.17 OPERATOR KONDISI

Operator kondisi digunakan untuk memperoleh nilai dari dua kemungkinanungkapan1 ? ungkapan2 : ungkapan3Bila nilai ungkapan1 benar, maka nilainya sama dengan ungkapan2, bila tidak makanilainya sama dengan ungkapan3Contoh :Outputnya :

3.2 STATEMEN I/O

Pada C++ terdapat 2 jenis I/O dasar, yaitu:a. Statemen Input adalah Statemen / fungsi yang digunakan untuk membaca data dariinputing device (keyboard/mouse), contoh : cout (character out)b. Statemen Output adalah Statemen yang digunakan untuk menuliskan data ke layarmonitor, contoh : cin (character in)Contoh 1:21 Copyright PIK Unsri Agustus 2006Contoh 2:Outputnya :Contoh 3:Output :22 Copyright PIK Unsri Agustus 2006Latihan1. Buatlah program untuk menghitung luas bangunan geometri (bujursangkar,lingkaran, segitiga dan trapesium). Data masukkan dibaca dari piranti masukkandan luas bangun ditampilkan sebagai keluaran.2. Buatlah program untuk menghitung harga total suatu barang, dimana jumlahbarangnya 5, harga perunit 5203.02.3. Buatlah program untuk penggunaan operasi aritmatika yaitu penjumlahan,pembagian, perkalian, dan pengurangan dengan variabel yang diinputkan.4. Mencetak sejumlah deret bilangan ganjil antara 1 sampai N, dimana Ndimasukkan oleh user.23 Copyright PIK Unsri Agustus 2006

IV. PEMILIHAN

Suatu Struktur dasar algoritma yang memiliki satu atau lebih kondisi tertentudimana sebuah instruksi dilaksanakan jika sebuah kondisi/persyaratan terpenuhi. Adabeberapa bentuk struktur dasar pemilihan ini :

4.1 PERNYATAAN

ifSebuah pernyataan yang dapat dipakai muntuk mengambil keputusan berdasarkansuatu kondisi. Bentuk pernyataan ini ada dua macam :- if saja dan- elseBentuk Umumnya Satu Kasus:if (kondisi)pernyataan ;Pernyataan dilaksanakan jika dan hanya jika kondisi yang diinginkan terpenuhi,jika tidak program tidak memberikan hasil apa-apa.Contoh :Outputnya :24 Copyright PIK Unsri Agustus 2006Penjelesan :Tampak bahwa kalau usia yang dimasukkan lebih dari atau sama dengan 17,program tidak menghasilkan apa-apa.Bentuk Umumnya Dua Kasus :if (kondisi)pernyataan1 ;elsepernyataan2;Pernyataan1 dilaksanakan jika dan hanya jika kondisi yang diinginkan terpenuhi,jika tidak, lakukan pernyataan2.Jika Anda tidak mempergunakan pernyataan else program tidak akan error,namun jika anda mempergunakan pernyataan else tanpa didahului pernyataan if, makaprogram akan error.Jika pernyataan1 atau pernyataan2 hanya terdiri dari satu baris, maka tanda { }tidak diperlukan, namun jika lebih maka diperlukan.Bentuk Umumnya Banyak Kasus :if (kondisi){pernyataan1;pernyataan1a;pernyataan1b;}else{pernyataan2;pernyataan2a;pernyataan2b;}25 Copyright PIK Unsri Agustus 2006Contoh 1:Contoh 2:Outputnya :Penjelesan :Terlihat bahwa kalau usia yang dimasukkan lebih dari 17, program akan memberipesan Selamat Menonton.Selain dari if … else, juga dikenal bentuk if … else if. Adapun perbedaannyadiilustrasikan oleh dua contoh dibawah ini.26 Copyright PIK Unsri Agustus 2006Contoh 3 :Outputnya:Mengapa ? Karena contoh 2 sama saja jika ditulis seperti dibawah iniContoh 4 :Contoh diatas disebut juga nested conditional27 Copyright PIK Unsri Agustus 2006

4.2 PERNYATAAN

SwitchPernyataan swich adalah pernyataan yang digunakan untuk menjalankan salahsatu pernyataan dari beberapa kemungkinan pernyataan, berdasarkan nilai dari sebuahungkapan dan nilai penyeleksian.Pernyataan if…else if jamak dapat dibangun dengan pernyataan switch.Bentuk Umumnya :switch (ekspresi){case konstanta1 :pernyataan1 ;break ;case konstanta2 :pernyataan2 ;break ;case konstanta3 :pernyataan3 ;break ;::case konstantaN :pernyataanN ;break ;default :pernyataanlain;}Hal – hal yang perlu diperhatikan adalah :1. Dibelakang keyword case harus diikuti oleh sebuah konstanta, tidak boleh diikutioleh ekspresi ataupun variable.2. Konstanta yang digunakan bertipe int atau char3. Jika bentuknya seperti diatas maka apabila ekspresi sesuai dengan konstanta2maka pernyataan2, pernyataan3 sampai dengan pernyataanlain dieksekusi. Untukmencegah hal tersebut, gunakan keyword break;. Jika keyword break digunakanmaka setelah pernyataan2 dieksekusi program langsung keluar dari pernyataanswitch. Selain digunakan dalam switch, keyword break banyak digunakan untukkeluar dari pernyataan yang berulang ( looping ).28 Copyright PIK Unsri Agustus 20064. pernyataanlain dieksekusi jika konstanta1 sampai konstantaN tidak ada yangmemenuhi ekspresi.Contoh :Output :Ket : 45, dan 450 adalah input dari user29 Copyright PIK Unsri Agustus 2006Latihan :1. Buatlah program untuk mencari apakah bilangan tersebut ganjil atau genap,dimana bilangan merupakan piranti masukkan2. Buatlah program untuk menseleksi suatu bilangan dengan ketentuan sebagaiberikut : 0<=nilai <30 : Nilai rendah30<=nilai < 60 : Nilai sedang60<=nilai<=100 : Nilai tinggi3. Buatlah program dalam bentuk menu yang mampu menghitung :a. Luas dan Keliling Bujur sangkarb. Luas dan Keliling persegi panjangc. Luas dan keliling lingkaran30 Copyright PIK Unsri Agustus 2006

V. PENGULANGAN

Sebuah / kelompok instruksi diulang untuk jumlah pengulangan tertentu. Baikyang terdifinisikan sebelumnya ataupun tidak.Struktur pengulangan terdiri atas dua bagian :1. Kondisi pengulangan yaitu ekspresi boolean yang harus dipenuhi untukmelaksanakan pengulangan2. Isi atau badan pengulangan yaitu satu atau lebih pernyataan (aksi) yang akandiulang.Perintah atau notasi dalam struktur pengulangan adalah :1. Pernyataan while2. Pernyataan do..while3. Pernyataan for4. Pernyataan continue dan break5. Pernyataan go to

5.1 PERNYATAAwhile

Pernyataan while merupakan salah satu pernyataan yang berguna untukmemproses suatu pernyataan atau beberapa pernyataan beberapa kali. Pernyataan whilememungkinkan statemen-statemen yang ada didalamnya tidak diakukan sama sekali.Bentuk Umumnya :while (kondisi){Pernyataan ;}31 Copyright PIK Unsri Agustus 2006Contoh:Output :Penjelasan :Program diatas digunakan untuk mengulangan tulisan sebanyak 10 kali

5.2 PERNYATAAN do…while
Pernyataan do…while mirip seperti pernyataan while, hanya saja pada do…whilepernyataan yang terdapat didalamnya minimal akan sekali dieksekusi.Bentuk Umumnya :do{pernyatan ;} while(kondisi);32 Copyright PIK Unsri Agustus 2006Contoh :

5.3 PERNYATAAN for
Pernyataan for digunakan untuk menghasilkan pengulangan(looping) beberapakali tanpa penggunaan kondisi apapun. Pada umumnya looping yang dilakukan oleh fortelah diketahui batas awal, syarat looping dan perubahannya.Pernyataan for digunakan untuk melakukan looping. Pada umumnya looping yangdilakukan oleh for telah diketahui batas awal, syarat looping dan perubahannya. Selamakondisi terpenuhi, maka pernyataan akan terus dieksekusi.Bentuk Umumnya :for (inisialisasi ; kondisi ; perubahan){Statement;}Contoh :33 Copyright PIK Unsri Agustus 2006Bagaimana jika program diatas diubah menjadiProgram diatas akan menampilkan bilangan yang banyaknya tak terhingga sehinggadapat membuat komputer anda berhenti bekerja. Contoh diatas juga merupakan prinsipmembuat bom program ( contohnya : bom mail )Pernyataan for dapat berada di dalam pernyataan for lainnya yang biasa disebutnested forContoh :

5.3 PERNYATAAN continue dan break
Pernyataan break akan selalu terlihat digunakan bila menggunakan pernyataan switch.Pernyataan ini juga digunakan dalam loop. Bila pernyataan ini dieksekusi, maka akanmengakhiri loop dan akan menghentikan itrasi pada saat tersebut.34 Copyright PIK Unsri Agustus 2006Pernyataan continue digunakan untuk pergi ke bagian awal dari blok loop untukmemulai iterasi berikutnya.Contoh :Output :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 programlangsung meloncat ke loop berikutnya dan ketika sampai perulangan i = 6, ada perintahbreak. Otomatis program akan berhenti dan tidak sampai ke i=10. Dan program akanmencetak bilangan 0, bilangan 1, bilangan 2, bilangan 3, bilangan 5, bilangan 6.

5.5 PERNYATAAN go to
Pernyataan goto, diperlukan untuk melakukan suatu lompatan ke suatu pernyataanberlabel yang ditandai dengan tanda “ : “.Bentuk Umumnya :goto bawah;pernyataan1;pernyataan2;bawah : pernyataan 3;35 Copyright PIK Unsri Agustus 2006Pada contoh diatas, pada saat goto ditemukan maka program akan melompatpernyataan berlabel bawah dan melakukan pernyataan 3.Contoh :Outputnya :Latihan :1. Buatlah program untuk mencetak deret 10 9 8 7 6 5 4 3 2 12. Buatlah program untuk mencetak (gunakan perulangan while atau for)* * * ** * ** **3. Buatlah program yang menampilkan 5 buah bilangan, yaitu mulai dari bilanagn ke5 sampai bilangan ke 1 dengan nilai awal bilangan 8. Tampilan bilangan tersebutadalah menurun dan contohnya adalah : bilangan ke 5, i=3 (diperoleh dari 8-5)danseterusnya sampai bilangan 1, i=7 (diperoleh dari 8-1=7)36 Copyright PIK Unsri Agustus 2006

VI. FUNGSI

6.1. FUNGSI

Fungsi adalah sekumpulan perintah operasi program yang dapat menerimaargumen input dan dapat memberikan hasil output yang dapat berupa nilai ataupunsebuah hasil operasi. Hasil akhir fungsi akan berupa sebuah nilai balik (return)Nama fungsi yang didefinisikan sendiri oleh pemrogram tidak boleh sama dengannama 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 dankemudahan dalam debugging program. Parameter adalah nama-nama peubah yangdideklarsikan pada bagian header fungsi. Pemrogram dapat membuat fungsi yangdidefinisikan sendiri olehnya.Bentuk umumnya :Deklarasi parameter{Isi fungsi}Fungsi Main ( )Fungsi a ( ) Fungsi b ( ) Fungsi c ( )Fungsi c1 ( ) Fungsi c2 ( ) Fungsi c3 ( )37 Copyright PIK Unsri Agustus 2006

6.1.1 PROTITE FUNGSI
Sebuah fungsi tidak dapat dipanggil kecuali sudah dideklaraikan, deklarasi fungsi dikenaldengan sebutan prototipe fungsi. Prototipe fungsi berupa :1. Nama Fungsi2. Tipe nilai fungsi3. Jumlah dan tipe argumenDan diakhiri dengan titik koma, sebagaimana pada pendeklarasian variabel. Sebagaicontoh:1. long kuadrat (long l) ;Pada contoh pertama, fungsi kuadrat ( ) mempunyai argumen bertipe long dan nilaibalik 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 masingmasingargumen bertipe double.Contoh :38 Copyright PIK Unsri Agustus 2006Penjelasan :// Fungsi Perkalian// tipe_return nama_fungsi (tipe_argument argumen)Fungsi yang didefinisikan oleh pemrogram terdiri atas dua bagian, yaitu judul(header) dan isi (body). Judul dari sebuah fungsi terdiri dari tipe return (double), namafungsi (hasil) dan list parameter ( int A, int B).Jadi, judul untuk fungsi hasil adalahdouble hasil (int A, int B)Isi dari sebuah fungsi adalah blok kode yang mengikuti judulnya. Berisi kode yangmenjalankan 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 hanyaberada 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 mengakhirifungsi dan mengembalikan nilainya ke program pemanggil.Bentuk umum pernyataan return adalah :return ekspresi;Dengan ekspresi adalah sebuah ekspresi yang nilainya dinyatakan untuk sebuah variableyang tipenya sama seperti tipe return. Terdapat juga fungsi yang tidak memberikan nilaibalik atau tipe returnnya void.39 Copyright PIK Unsri Agustus 2006Contoh :

6.1.2 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 tidakakan mengenal variabel lokal dan fungsi lain. Suatu fungsi hanya akan mengenal variabelyang didefinisikan dalam fungsi yang bersangkutan.Variabel eksternal adalah variabel yang bersifat global yang dapat dikenali olehseluruh fungsi yang terdapat dalam program tersebut. Seluruh fungsi akan mengenalvariabel yang bersifat eksternal ini. Variabel eksternal dideklarasikan diluar fungsi dansejajar dengan prototipe fungsi serta pengarah kompiler.Contoh :40 Copyright PIK Unsri Agustus 2006Outputnya :Penjelasan :Dalam pemograman tersebut terdapat variabel lokal dan variabel eksternal yangnamanya sama yaitu data. Dalam fungsi main ( ) dan fungsi_satu ( ) terdapat variabellokal dengan nama sama tetapi sebetulnya lokasi penyimpanannya dalam memoriberbeda, sehingga dua variabel itu berbeda dan tidak saling mengenal. Fungsi_satu ( )sebetulnya mengenal variabel eksternal data yang nilainya 100, tetapi karena dalamfungsi tedapat variabel lokal data yang bernilai 300, maka diprioritaskan untuk diprosesdalam fungsi tersebut adalah variabel lokalnya. Jika dalam fungsi terdapat variabel lokaldan variabel eksternal yang sama, maka diprioritaskan untuk diproses variabel lokal.Dalam fungsi_dua( ) tidak terdapat variabel lokal sehingga yang diproses pada fungsitersebut adalah variabel eksternalnya.41 Copyright PIK Unsri Agustus 2006

6.1.3 PARAMETER
Parameter adalah sarana komunikasi antar fungsi. Pengertian antar fungsi adalahantara fungsi dengan fungsi lain termasuk antara fungsi dengan fungsi utama. Dalampemograman yang melibatkan fungsi, diusahakan agar fumgsi bersifat independen artinyatidak tergantung pada fungsi lain. Setiap fungsi hanya mengerjakan satu tugas tertentu.Antar fungsi saling berkomunikasi menggunakan parameter.Terdapat dua macam bentuk parameter dalam hubungannya dengan penggunan fungsidalam program yaitu :- Parameter Formal : parameter yang diberi nilai. Parameter formal merupakan parameteryang terdapat dalam daftar parameter fungsi.- Parameter Aktual : parameter yang memberi nilai. Parameter fungsi dan digunakanuntuk memberi nilai pada parameter formal.Dalam contoh program perkalian di atas parameter formal terdapat pada pendefinisanfungsi :double hasil(int A, int B) // parameter formal{return (A * B);}Sedangkan parameter aktual terdapat pada pemanggilan fungsi :void main(){ ………………………..z = hasil(x,y); // parameter aktual…………..}

6.1.3.1 Cara Melewatkan Parameter
Cara melewatkan suatu parameter dalam Bahasa C++ ada dua cara yaitu :1. Pemanggilan Secara Nilai (Call by Value)a) Call by value akan menyalin nilai dari parameter aktual ke parameter formal.42 Copyright PIK Unsri Agustus 2006b) Yang dikirimkan ke fungsi adalah nilai dari datanya, bukan alamat memori letakdari datanya.c) Fungsi yang menerima kiriman nilai akan menyimpannya di alamat terpisah darinilai aslinya yang digunakan oleh bagian program yang memanggil fungsi.d) Perubahan nilai di fungsi (parameter formal) tidak akan merubah nilai asli dibagian program yang memanggilnya.e) Pengiriman parameter secara nilai adalah pengiriman searah, yaitu dari bagianprogram yang memanggil fungsi ke fungsi yang dipanggil.f) Pengiriman suatu nilai dapat dilakukan untuk suatu ungkapan, tidak hanya untuksebuah variabel, elemen array atau konstanta saja.Contoh :43 Copyright PIK Unsri Agustus 2006Outputnya :2.Pemanggilan Secara Referensi (Call by Reference)a) Pemanggilan secara Referensi merupakan upaya untuk melewatkan alamat darisuatu variabel ke dalam fungsi.b) Yang dikirimkan ke fungsi adalah alamat letak dari nilai datanya, bukan nilaidatanya.c) Fungsi yang menerima kiriman alamat ini maka menggunakan alamat yang samauntuk mendapatkan nilai datanya.d) Perubahan nilai di fungsi akan merubah nilai asli di bagian program yangmemanggil fungsi.e) Pengiriman parameter secara referensi adalah pengiriman dua arah, yaitu darifungsi pemanggil ke fungsi yang dipanggil dan juga sebaliknya.f) Pengiriman secara acuan tidak dapat bdilakukan untuk suatu ungkapan.Contoh :44 Copyright PIK Unsri Agustus 2006Outputnya :

6.1.4 NILAI BAWAAN UNTUK ARGUMEN FUNGSI

Salah satu keistimewaan C++ yang sangat bermanfaat dalam pemrograman adalahadanya kemampuan untuk menyetel nilai defaultArgumen fungsi. Argumen-argumen yang mempunyai nilai bawaan nantinya dapat tidakdisertakan di dalam pemanggilan fungsi dan dengan sendirinya C++ akan menggunakannilai bawaan dari argumen yang tidak disertakan.45 Copyright PIK Unsri Agustus 2006Contoh :Penjelasan :Jika pada program, argumen sayHello tidak diberikan, maka program akanmenampilkanSebanyak satu kali, namun jika argumen pada fungsi sayHello diberikan, misalkansayHello(4), maka program akan menampilkan 4 kali. Itulah yang disebut dengan nilaidefault pada fungsi.

6.1.4 REKURSI

Merupakan suatu fungsi dapat memanggil fungsi yang merupakan dirinya sendiri.Penerapan rekursi diantaranya untuk menghitung nilai : xnContohnya :46 Copyright PIK Unsri Agustus 2006Outputnya :

6.1.5 FUNGSI-FUNGSI BAWA C++
Anda dapat menggunakan fungsi-fungsi bawaan C++, misalkan fungsi-fungsimatematika, pengolah kata dan banyak lagi. Sebenarnya ( mungkin tidak terasa bagi anda) main juga adalah fungsi, jadi tanpa anda sadari sebenarnya anda telah menggunakanfungsi.Untuk dapat menggunakan fungsi-fungsi tersebut anda harus meng-include file dimanafungsi tersebut didefinisikanMisalkan :· Fungsi – fungsi matematika, anda harus meng-include file math.h· Fungsi – fungsi pengolah string dan karakter, anda harus meng-include filestring.h· Fungsi clrscr(), getch(), getche() dalam file conio.hLATIHAN1. Buatlah fungsi untuk menghitung luas segitiga?2. Buatlah program rekursi untuk mencari Nilai n faktorial3. Buatlah program dengan cara rekursi untuk menampilkan perkalian 3 buahbilangan tersebut nilainya diinputkan47 Copyright PIK Unsri Agustus 2006

VII. LARIK (ARRAY)

7.1. LARIK

Larik merupakan sekumpulan data yang mempunyai nama dan tipe yang sama.Larik sering disebut juga variabel berindeks. Nilai suatu data dalam larik ditentukan olehnama dan indeks. Larik banyak digunakan pada operasi yang melibatkan indeks sepertipada statistik dan matriks.Tipe data larik dapat berupa larik satu demensi, dua demensi, tiga demensi ataubanyak dimensi.Bentuk Umum Larik Satu Dimensi :tipe_larik nama_larik [ukuran]Bentuk Umum Larik Dua Dimensi :tipe_larik nama_larik [ukuran1][ukuran2]Perhatikan :· Tanda kurung [ ] digunakan untuk menunjukkan elemen larik· Perhitungan elemen larik dimulai dari 0, bukan 1C++ tidak mengecek larik. Bila anda menyatakan int x[10], ini artinya 10elemen yang dimulai dari 0. Karena itu elemen terakhir larik adalah x[9]. Bila anda salahmereferensikannya dengan x[10], anda akan mendapatkan harga yang tidak terpakai.Akan lebih buruk lagi jika anda memberikan harga ke x[10], yang tidak dapat diterima.48 Copyright PIK Unsri Agustus 2006

7.2 REPRESENTASI LARIK

Misalkan kita memiliki sekumpulan data ujian seorang siswa, ujian pertamabernilai 90, kemudian 95,78,85. Sekarang kita ingin menyusunnya sebagai suatu datakumpulan ujian seorang siswa. Dalam array kita menyusunnya sebagai berikutujian[0] = 90;ujian[1] = 95;ujian[2] = 78;ujian[3] = 85;Empat pernyataan diatas memberikan nilai kepada array ujian. Tetapi sebelum kitamemberikan nilai kepada array, kita harus mendeklarasikannya terlebih dahulu, yaitu :int ujian[4];Perhatikan bahwa nilai 4 yang berada didalam tanda kurung menujukkan jumlahelemen larik, bukan menunjukkan elemen larik yang ke-4. Jadi elemen larik ujian dimulaidari angka 0 sampai 3.Pemrogram juga dapat menginisialisasi larik sekaligus mendeklarasikannya, sebagaicontoh :int ujian[4] = {90,95,78,85};Elemen terakhir dari larik diisi dengan karakter ‘’. Karakter ini memberitahukompiler bahwa akhir dari elemen larik telah dicapai. Walaupun pemrogram tidak dapatmelihat karakter ini secara eksplisit, namun kompiler mengetahui dan membutuhkannya.Sekarang kita akan membuat daftar beberapa nama pahlawan di Indonesiachar pahlawan[3][15] ;char pahlawan[0][15] = “Soekarno”;char pahlawan[1][15] = “Diponegoro”;char pahlawan[2][15] = “Soedirman”;Larik diatas terlihat berbeda denga contoh larik pertama kita. Perhatikan bahwa padalarik pahlawan memilih dua buah tanda kurung [ ][ ]. Larik seperti itu disebut larik dua49 Copyright PIK Unsri Agustus 2006dimensi. Tanda kurung pertama menyatakan total elemen yang dapt dimiliki oleh larikpahlawan dan tanda kurung kedua menyatakan total elemen yang dapat dimiliki setiapelemen larik pahlawan. Dalam contoh diatas, tanda kurung kedua menyatakan karakteryang menyatakan nama pahlawan.

7.3 MENGHITUNG JUMLAH ELEMEN ARRAY

Karena fungsi sizeof() mengembalikan jumlah byte yang sesuai denganargumennya, maka operator tersebut dapat digunakan untuk menemukan jumlah elemenarray, misalnyaint array[ ] = {26,7,82,166};cout<

7.4 MELEWATKAN ARRAY SEBAGAI ARGUMEN FUNGSI

Larik dapat dikirim dan dikembalikan oleh fungsi. Pada saat larik dikirim ke dalamfungsi, nilai aktualnya dapat dimanipulasiContoh :Output :50 Copyright PIK Unsri Agustus 2006Latihan :Buatlah program yang menghitung jumlah elemen dalam suatu array(larik) denganarray(larik) 1 dimensi { 1,3,5,4,7,2,99,16,45,67,89,45}sumber:http://ilkom.unsri.ac.id/data/materi2/Modul%20Algoritma%20dan

kesan : pak dody cara mengajarnya sudah bagus,,

pesan : pak ,lebih akrab sama mahasiswa ya

0 komentar:

Posting Komentar