Selasa, 18 Januari 2011

kebersamaan: FUNGSI DALAM PEMROGAMAN C++

kebersamaan: FUNGSI DALAM PEMROGAMAN C++

FUNGSI DALAM PEMROGAMAN C++


FUNGSI DALAM PEMROGAMAN C++
Tugas Akhir Pratikum Algoritma Dan Pemrograman 1


Panji prayogaswara
0651 10 271
Kelas J


Fakultas Matematika dan Ilmu Pengetahuan Alam
Jurusan Ilmu Komputer
UNIVERSITAS PAKUAN BOGOR
Kata Pengantar

            Puji syukur kepada Allah Swt. Karena atasa rahmat dan hidayahnya kami dapatmenyelesaikan makalah mata kuliah Teknik Pemrograman Terstruktur (TPT), dalam hal inibahasa pemrograman yang digunakan untuk menunjeng mata kuliah ini adalah bahasapemrograman C++. adapaun pembahasan yang kami ulas dari kelompok kami adalah“Function”.

            Bahasa pemrograman C++ merupakan bahasa yang popular didalam pengajaran padacomputer sains maupun pada kalangan programmer yang mengembangkan system softwaremaupun aplikasi. Bahasa C++ sifatnya portable, karena compilernya tersedia hampir padasemua arsitektur computer maupun system operasi, sehingga investasi waktu dan tenagayang anda lakukan dalam mempelajari bahasa pemrograman ini memiliki nilai strategis yangsangat menjanjikan.

            Bahasa C++ merupakan bahasa yang sangat ketat dalam pemakaian type data maupunpenulisannya yang case sensitif, hal ini berarti programmer di tuntut kedisiplinannya dalampenulisan program.
Sesuatu fasilitas yang tersedia dalam C++ yang tidak ditemukan pada bahasa pemrogamanlainnya adalah pointer, dengan pemanfaatan pointer programmer dapat melakukanmanipulasi memori secara langsung.

            Dewasa ini beberapa bahasa yang memiliki syntax penulisan yang menyerupai C++ adalahJava, Javascript dan PHP, yang artinya bahwa kemampuan pemrograman dengan C++ akanmempermudah anda untuk mempelajari bahasa modern seperti Java maupun C# (dibaca Csharp).

            akhirnya kami dapat menyelesaikan makalah ini dengan hasil baik, padahal tidak mudahdalam mengerjakan danmembuat makalah ini. Semoga apa yang kami buat dapat memberimanfaat sebesar-besarnya bagi kita semua.

Daftar Isi

Bab I ( Pendahuluan )
1.1 Latar Belakang................................................................................................4 - 5

1.2 Tujuan..............................................................................................................6 

Bab II

            Pembahasan..........................................................................................................7 - 22

Bab III

            Kesimpulan...........................................................................................................23

            Daftar Pustaka......................................................................................................24














BAB 1
PENDAHULUAN

1.1                          Latar Belakang

            C & C++ pada mulanya bahasa computer di gunakan untuk membantu perhitungan telemetri. ketika zaman itu bahasa yang di gunakan sangat sulit yaitu bahasa mesin hanya mengenal 0 & 1.Di bawah ini ada beberapa bahasa pemrograman hingga pada bahasa C++.

    Bahasa Mesin (0 & 1)
    Bahasa Assembly (ADD,MOV,JMP) untuk pembuatan UNIX
    Bahasa B Merevisi UNIX
              Bahasa C menulis UNIX dan WINDOWS
     Bahasa C++

            C++ merupakan bahasa peningkatan dari bahasa C. C++ di ciptakan oleh bjarne strustrup pada tahun 1983. Pengembangan C ke C++ di karenakan C bersifat procedural murni sehingga dianggap masih sulit. Bahasa C++ di dasarkan atas bahasa C, sehingga kita dapat melakukan kompilasi program-program yang di tulis dalam bahasa C dengan menggunakan compiler C++.

Menurut Bjarne Stroustrup alas an bahasa C++ atas dasar bahasa C karena:
1. Dapat dihubungkan dengan bahasa tingkat rendah
2. Berjalan dimanapun dan untuk masalah apapun
3. Berjalan mulus di system operasi UNIX
4. Mendukung pemograman berarah objek (OOP)


                Bahasa komputer telah melalui evolusi yang dramatis sejak komputer yang pertama dibuatuntuk bantuan dalam kalkulasi sejak perang dunia ke dua. Awalnya programmer bekerjadengan instruksi komputer yang sangat primitif yaitu machine language (bahasa mesin).
            Pada bahasa mesin instruksi-instruksi terdiri dari suatu kalimat yang panjang yang berupatulisan 1 (satu) dan 0 (nol). Selanjutnya assembler digunakan untuk memetakan instruksimesin ke mnemoniscs yang dapat dibaca dan ditangani oleh manusia seperti ADD dan MOV.
            Kemudian, lahirlah bahasa tingkat tinggi seperti BASIC dan COBOL. Bahasa inimemungkinkan orang bekerja dengan sejumlah kata dan kalimat tertentu dalam seperti LetI=100. Instruksi ini akan diterjemahkan kembali menjadi bahasa mesin dengan mengunakansuatu interpreter ataupun compiler. Suatu interpreter bekerja dengan menterjemahkan barisprogram sesaat dibaca, mengubahnya menjadi bahasa mesin, dan menjalankannya.
            Compiler bekerja dengan menterjemahkan program menjadi suatu bentuk intermediasi.Tahap ini disebut sebagai Compiling dan menghasilkan suatu file object. Kemudian compilerakan membangkitkan linker, yang mana akan mengubah file object menjadi suatu programyang executable (dapat dijalankan langsung). Karena interpreter membaca kode sambilmenjalankan baris per baris, maka interpreter terasa lebih mudah oleh programmer dalammenggunakannya. Dengan adanya tambahan langkah pada Compiler seperti tahap compilingdan lingking pada kode, sehingga terasa kurang nyaman.
            Compiler akan menghasilkan suatu program yang sangat cepat pada saat dijalankan karenawaktu untuk menterjemahkan program telah dihilangkan. Keuntungan dari suatu Compileradalah menghasilkan program executable yang tidak tergantung kepada program sumber.Sedangkan pada interpreter anda harus menjalankannya dengan menggunakan programsumber.
            Untuk beberapa tahun, prinsip utama dari programmer komputer adalah menulis suatu kodeyang sependek mungkin, dan dapat dijalankan dengan cepat. Program tersebut harusberukuran kecil karena memori komputer sangat mahal, dan harus cepat karena tenagapemrosesesan (CPU) sangat mahal.

1.2                          Tujuan

1.      untuk mencegah pengulangan pembuatan suatu program

2.      .menghemat ukuran program, karena beberapa perintah yang sama dandijalankan beberapa kali dalam program dapat dijadikan satu kali saja dalamsuatu function, kemudian function tersebut dapat dipanggil berulang kali.

3.      memudahkan dalam mengembangkan program. Program dibagi menjadibeberapa subprogram kecil, sehingga hal ini menjadi kunci dalam pembuatanprogram terstrukturmenggunakan fungsi akan menyebabkan program lebihmodular, sehingga mudah dibaca dan dianalisa. Salah satu fungsi ini disebutmain. Program selalu dilaksanakan mulai dari main. Suatu fungsi terdiri dari duabagian, yaitu :


v  Baris pertama adalah header dari fungsi yang mempunyai tiga komponenyaitu : return type, nama fungsi dan argumen ( atau disebut juga parameter ).

v  Badan dari fungsi terdiri dari compound statement dan dituliskan
langsung dibawah header dari fungsi.









BAB 2
PEMBAHASAN
 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.













Fungsi Main ( )




Fungsi a ( )

Fungsi b ( )

Fungsi c ( )






Fungsi c1 ( )

Fungsi c2 ( )

Fungsi c3 ( )





Bentuk umumnya :

Deklarasi parameter
{
Isi fungsi
}

 PROTITE FUNGSI

Sebuah fungsi tidak dapat dipanggil kecuali sudah dideklaraikan, deklarasi fungsi dikenal dengan sebutan prototipe fungsi. Prototipe fungsi berupa :
1.   Nama Fungsi

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 :

Penjelasan :

// 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), 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.

Contoh :




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 :


Outputnya :
Penjelasan :
Dalam pemograman tersebut terdapat variabel lokal 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 variabel lokal. Dalam fungsi_dua( ) tidak terdapat variabel lokal sehingga yang diproses pada fungsi tersebut adalah variabel eksternalnya.

 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 bersifat independen artinya tidak 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 fungsi dalam program yaitu :
- Parameter Formal : parameter yang diberi nilai. Parameter formal merupakan parameter yang terdapat dalam daftar parameter fungsi.
- Parameter Aktual : parameter     yang memberi nilai. Parameter fungsi dan digunakan untuk memberi nilai pada parameter formal.
Dalam contoh program perkalian di atas parameter formal terdapat pada pendefinisan

fungsi :

 
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
………   
}





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


b)  Yang dikirimkan ke fungsi adalah nilai dari datanya, bukan alamat memori letak dari datanya.
c)  Fungsi yang menerima kiriman nilai akan menyimpannya di alamat terpisah dari nilai aslinya yang digunakan oleh bagian program yang memanggil fungsi.
d)  Perubahan nilai di fungsi (parameter formal) tidak akan merubah nilai asli di bagian program yang memanggilnya.
e)  Pengiriman parameter secara nilai adalah pengiriman searah, yaitu dari bagian program yang memanggil fungsi ke fungsi yang dipanggil.
f)    Pengiriman suatu nilai dapat dilakukan untuk suatu ungkapan, tidak hanya untuk sebuah variabel, elemen array atau konstanta saja.
Contoh :


Outputnya :

2.Pemanggilan Secara Referensi (Call by Reference)

a)  Pemanggilan secara Referensi merupakan upaya untuk melewatkan alamat dari suatu variabel ke dalam fungsi.
b)  Yang dikirimkan ke fungsi adalah alamat letak dari nilai datanya, bukan nilai datanya.
c)  Fungsi yang menerima kiriman alamat ini maka menggunakan alamat yang sama untuk mendapatkan nilai datanya.
d)  Perubahan  nilai  di  fungsi  akan  merubah  nilai  asli  di  bagian  program  yang memanggil fungsi.
e)  Pengiriman parameter secara referensi adalah pengiriman dua arah,  yaitu dari fungsi pemanggil ke fungsi yang dipanggil dan juga sebaliknya.
f)   Pengiriman secara acuan tidak dapat bdilakukan untuk suatu ungkapan.

Contoh :

Outputnya :




 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 :


Penjelasan :

Jika   pada   program,   argumen  sayHello   tidak   diberikan,   maka   program  akan menampilkan



Sebanyak  satu  kali,  namun  jika  argumen  pada  fungsi  sayHello  diberikan,  misalkan sayHello(4), maka program akan menampilkan 4 kali. Itulah yang disebut dengan nilai default pada fungsi.
 REKURSI
Merupakan suatu fungsi dapat memanggil fungsi yang merupakan dirinya sendiri. Penerapan rekursi diantaranya untuk menghitung nilai : xn
Contohnya :









Outputnya :
 












 FUNGSI-FUNGSI BAWAAN C++

Anda  dapat   menggunakan  fungsi-fungsi  bawaan  C++,   misalkan  fungsi-fungsi matematika, pengolah kata dan banyak lagi. Sebenarnya ( mungkin tidak terasa bagi anda
) main juga adalah fungsi, jadi tanpa anda sadari sebenarnya anda telah menggunakan fungsi.
Untuk dapat menggunakan fungsi-fungsi tersebut anda harus meng-include file dimana fungsi tersebut didefinisikan
Misalkan :

Fungsi fungsi matematika, anda harus meng-include file math.h

Fungsi   fungsi  pengolah  string  dan  karakter,  anda  harus  meng-include  file string.h
Fungsi clrscr(), getch(), getche() dalam file conio.h
BAB 3
KESIMPULAN


1.      fungsi adalah sebuah unit program yang berdiri sendiri yang dibuat untuk

melaksanakan suatu tugas tertentu. Suatu fungsi dalam bahasa C/C++

berperan sama dengan function, subroutine dan procedure dalam bahasa

 komputer lain.

2.      Terdapat 2 variabel dari fungsi yaitu Variabel Lokal dan Variabel Loka
















Daftar Pustaka
                 
Schach, Stephen (2006). Object-Oriented and Classical Software Engineering, Seventh Edition.     McGraw-Hill.
Jacobson, Ivar (1992). Object-Oriented Software Engineering: A Use Case-Driven Approach. Addison-Wesley.
http://asuheri.wordpress.com/2008/11/14/mengenai-object-oriented-programming
http://google.com/object oriented programming dalam pemrograman visual dengan c++  builder