makalah Algoritma

MAKALAH
FUNCTION AND PROCEDURE
TUGAS MATA KULIAH ALGORITMA DAN PEMROGRAMAN
Dosen Pengampu :  Dyah Apriliani, S.Kom., M.Kom













Disusun Oleh :
Kelompok 3

Muhammad Fauzan Budi Mubarok (1504E029)
Imam Rojikin           (1504E070)
Hidayah Eka Pratiwi           (1504E060)
Kiki Kurniasih         (1504E032)
Laelatul Maulidah    (1504E133)
 
 












D3 TEKNIK KOMPUTER
POLITEKNIK HARAPAN BERSAMA TEGAL
2015

FUNGSI
          Fungsi  adalah  subprogram  yang  menerima  data  masukan,  melakukan beberapa  perhitungan  dari  data  tersebut,  kemudian  mengembalikan  output berupa sebuah data baru. Dengan  kata lain, sebuah fungsi memetakan sebuah nilai (dalam domain)  menjadi  nilai  lain (dalam range) dengan operasi/ proses tertentu.  Pendeklarasian  fungsi  merupakan  salah  satu  cara  memecah persoalan ke dalam beberapa sub persoalan yang lebih mudah diselesaikan.
     Dalam pembuatan sebuah fungsi, pemrogram harus mendefinisikan:
   Nama fungsi
   Tipe data yang dibuat/ dihasilkan oleh fungsi
   Daftar parameter yang menyatakan data yang diperlukan oleh fungsi
   Satu atau lebih instruksi yang melakukan perhitungan
     Selanjutnya,  fungsi  yang  sudah didefinisikan  dapat  digunakan  dalam program  utama  maupun  dalam  fungsi  lainnya  dengan  cara  memanggil  nama fungsi dan memberikan parameter yang diperlukan oleh fungsi tersebut.
Fungsi  bekerja  menurut  mekanisme  pemanggilan-pengembalian  (callreturn mechanism).            Tahapan dalam mekanisme tersebut adalah:
1.    Fungsi dipanggil dari program utama maupun fungsi lainnya
2.    Sekumpulan operasi dalam fungsi dieksekusi
3.    Hasil  eksekusi  dikembalikan  ke  program  utama  atau  fungsi  lain  yang memanggilnya
STRUKTUR UMUM SEBUAH FUNGSI
FUNCTION nama_fungsi (daftar_parameter) tipe_data
BEGIN
{instruksi dalam fungsi}
return
ENDFUNCTION
 
 






Sedangkan penulisan dalam bahasa pemprograman C++ adalah sebagai berikut :
Tipe_data_kembali nama_fungsi(daftar_parameter)
{/* instruksi dalam fungsi */return value;}
 
 




     Dengan  catatan  bahwa  daftar  parameter  boleh  kosong  (tidak  ada parameter  yang  perlu  diinputkan  pada  saat  pemanggilan  fungsi).  Jika  daftar parameter  (disebut  juga  parameter  formal)  tidak  kosong  maka  parameter tersebut  harus  berupa  nama  parameter  dan  tipe datanya.  Dalam  sebuah fungsi, instruksi terakhir harus merupakan perintah untuk mengirimkan nilai/ data  keluaran  dari  fungsi  ke  program  utama  (bagian  program  yang memanggilnya).  Nilai  yang  dikembalikan  oleh  sebuah  fungsi  dapat  bertipe skalar, record, array, maupun set.
     Jika  kita  melihat  struktur  penulisan  fungsi,  struktunya  hampir  atau bahkan sama dengan program utama. Pada dasarnya, pemprograman dengan menggunakan  C++  adalah  pemprograman  dengan  struktur  fungsi,  dimana setiap kode yang dituliskan harus dalam bentuk fungsi, tak terkecuali program utama. Program utama merupakan suatu fungsi dengan nama main () yang tidak memiliki nilai kembali atau nilai kembalinya adalah kosong atau 0. Oleh karenanya,  kita  juga  dapat  menuliskan  program  utama  dengan void main() atau dengan int main(), dengan return value-nya 0.
     Saat program pertama dijalankan, kode yang pertama dieksekusi adalah fungsi main(). Oleh karenanya, setiap program minimal harus memiliki satu fungsi yaitu main(), dimana isi dari fungsi ini adalah inti dari program.
     Parameter  dalam  sebuah  fungsi  merupakan  antarmuka  (penghubung) antara fungsi dengan kode pemanggilnya. Fungsi menerima satu atau beberapa nilai  melalui  parameter-parameter  yang  telah  didefinisikan.  Setiap  kali  fungsi dipanggil,  kode  pemanggil  harus  menyediakan  parameter  yang  dibutuhkan oleh fungsi. Beberapa karakteristik parameter dalam fungsi:
   Parameter  hanya  muncul  di  dalam  fungsi  yang  mendefinisikannya  dan tidak dapat diakses di luar fungsi tersebut.
   Parameter menyimpan nilai hingga fungsi dieksekusi.
   Parameter diinisialisasi setiap kali fungsi dipanggil oleh program utamamaupun fungsi lainnya.
Setelah  didefinisikan,  fungsi  dapat  dipanggil  dari  program  utama maupuan dari fungsi lainnya dengan perintah
<nama_variabel>  <nama_fungsi> (<daftar_parameter>)
 

CONTOH FUNGSI :
1. FUNCTION  luas_segiempat  (P:integer,  L:integer)
integer
2. { IS : Dua buah bilangan Bulat
3. FS : Hasil Kali dua bilangan }
4. KAMUS DATA
5. hasil : integer
6. P,L : integer;
7. BEGIN
8. hasil  P * L
9. return (hasil)
10. ENDFUNCTION
 







     Pada  contoh  di  atas,  fungsi luas_segiempat memerlukan  dua parameter inputan, yaitu P dan L yang keduanya bertipe integer. Kemudian, fungsi ini akan menghitung hasil dengan perkalian nilai P dan L. Fungsi akan mengembalikan nilai variabel hasil ke kode pemanggil.  
     Berikut  ini  adalah  contoh  algoritma  program  utama/  fungsi  lain (selanjutnya disebut kode pemanggil) yang memanggil fungsi luas_segiempat:
1. Kamus data
2. panjang, lebar, luas: integer
3. BEGIN
4. { meminta inputan 2 nilai}
5. Input (panjang, lebar)
6. {pemanggilan fungsi luas_segiempat}
7. luas   luas_segiempat(panjang, lebar)
8. Output (luas) {menampilkan luas}
9. END
 
 









     Pada  potongan  program  di  atas  didefinisikan  tiga  variabel,  yaitu panjang,  lebar, dan luas. Pemanggilan  fungsi luas_segiempat dilakukan dalam tiga tahap sesuai mekanisme call-return, yaitu:
1.    Kode  pemanggil  memberikan  (passing)  dua  parameter  yang  sudah didefinisikan sebagai variabel dalam program tersebut, yaitu panjang dan lebar.
2.    Fungsi luas_segiempat dijalankan dengan menerima dua parameter dari  kode  pemanggil. Secara  berurutan,  variabel  panjang  dikenali sebagai parameter P dan  variabel lebar dikenali sebagai parameter L. Fungsi  melakukan  perkalian  dan  menyimpan  hasilnya  dalam  variable hasil yang merupakan parameter output dari fungsi.
3.    Fungsi luas_segiempat mengembalikan  nilai  dalam  variabel hasil ke  kode  pemanggil.  Kode  pemanggil  akan  menyimpannya  ke  dalam variabel luas yang  telah  didefinisikan,  kemudian  menampilkannya  ke pemakai.
     Perhatikan pula bahwa  variabel P, L dan hasil hanya  didefinisikan dan digunakan di fungsi luas_segiempat dan tidak dapat digunakan dalam program utama maupun fungsi lainnya (variabel lokal).






PROSEDUR
     Cara  lain  memecah  persoalan  pemrograman  ke  dalam  sub-sub persoalan pemrograman adalah dengan mendeklarasikan prosedur. Prosedur adalah sederetan instruksi yang diberi nama, dan melakukan tujuan tertentu. Seperti halnya pada fungsi, prosedur bekerja dengan mekanisme pemanggilan pengembalian (call-return mechanism), yaitu dengan urutan langkah:
1.    Prosedur  dipanggil  oleh  kode  pemanggil  (program  utama  maupun prosedur lainnya)
2.    Sekumpulan operasi yang disimpan dalam prosedur dieksekusi
3.    Kontrol dikembalikan ke kode pemanggil
     Struktur umum deklarasi prosedur adalah sebagai berikut:
PROCEDURE  <nama_prosedur>  (input  <daftar  parameter
input>, output <daftar parameter output>)
{I.S.: [kondisi awal]
F.S.: [kondisi akhir/hasil yang diharapkan]}
BEGIN
{sekumpulan instruksi dalam prosedur}
ENDPROCEDURE
 
 








     Sedangkan  dalam  pemprograman  bahasa  C++,  penulisan  procedure seperti berikut :
1. void  nama_procedure  (<daftar_parameter_input>
<,daftar_parameter_output>)
2. {
3. /* instruksi */
4. }
 
 







     Dengan catatan bahwa nama prosedur dan nama parameternya harus disebutkan  dalam  blok  kode  pemanggil.  Berbeda  dengan  fungsi,  daftar parameter  pada  procedure  terbagi  menjadi  dua  yaitu  parameter  input  dan parameter  output.  Daftar  parameter  boleh  kosong (tidak  ada  parameter input  maupun  output).  Jika  parameter  tidak  kosong  (minimal  ada  satu parameter) maka harus dituliskan nama parameter beserta tipe datanya.
     Prosedur  tanpa  parameter  memanfaatkan  nilai  dari  variabel  yang terdefinisi  dalam  kode  program  utama/prosedur  lain  yang  memanggilnya. Prosedur  tanpa  parameter  ini  hanya  dapat  dieksekusi  jika  nilai  dari  variable yang  diperlukan  dalam  prosedur  sudah  didefinisikan  dalam  kode  program utama/ prosedur lain yang memanggilnya.
     Prosedur  dengan  parameter  dibuat untuk  mengeksekusi  sekumpulan instruksi  dengan  parameter  yang  berbeda-beda.  Nama  parameter  yang dituliskan  pada  definisi  /  spesifikasi  prosedur  disebut  dengan parameter formal.  Sedangkan  parameter  yang  dituliskan  pada  pemanggilan  prosedur disebut parameter aktual.
     Parameter  formal  adalah  nama-nama  variabel  yang  dipakai  dalam mendefinisikan  prosedur,  dan  membuat  prosedur  tersebut  dapat  dieksekusi dengan variabel yang berbeda saat pemanggilan. Terdapat tiga tipe parameter formal:
   parameter  input,  yaitu  parameter  yang  diperlukan  prosedur  sebagai masukan untuk melakukan aksi yang efektif
   parameter  output,  yaitu  parameter  yang  akan  menyimpan  nilai  yang dihasilkan oleh prosedur
   parameter  input/output,  yaitu  parameter  yang  diperlukan  prosedur sebagai  masukan  untuk melakukan  aksi  tertentu,  yang  pada  akhir prosedur akan diisi dengan nilai baru sebagai hasil eksekusi prosedur
     Parameter  aktual  adalah  variabel  /  konstanta  yang  dipakai  ketika prosedur  dipanggil  oleh  program  utama  /  prosedur  lain.  Parameter  actual dapat  berupa  variabel  /  konstanta,  tapi  parameter  output  harus  berupa variabel karena akan menyimpan hasil eksekusi prosedur.
     Struktur pemanggilan prosedur dari program utama maupun prosedur lain  adalah  hanya  dengan  menuliskan  nama  procedurenya  kemudian  diikuti daftar parameternya sebagai berikut:
nama_prosedur
 
 




     Sama halnya dengan fungsi, prosedur dapat terhubung dengan program utama  maupun  prosedur  lain  melalui  pertukaran  parameter.  Bedanya, deklarasi  prosedur  harus  menyertakan  nama  dan  tipe  data  dari  seluruh parameter input dan outputnya.
     Contoh  algoritma  penghitung  luas  segi  empat  dalam  subbab  fungsi dapat diubah menjadi sebagai berikut (dengan prosedur):






1. VAR
2. panjang, lebar, luas: integer
3. BEGIN
4. Input  (panjang,  lebar)  {meminta  inputan  2
nilai}
5. {pemanggilan fungsi luas_segiempat}
6. call luas_segiempat(panjang, lebar, luas)
7. Output (luas) {menampilkan luas}
8. END
9. PROCEDURE  luas_segiempat  (input:  p,  l:  integer,
output: hasil: integer)
10. {I.S.: panjang dan lebar berisi bilangan
11. F.S.: luas berisi nilai luas segiempat}
12. BEGIN
13. hasil   p * l
14. ENDPROCEDURE
 
 













     Contoh  algoritma  penghitung  nilai  rata-rata  dari  dua  buah  bilangan inputan dengan pendeklarasian prosedur:
1. {===Program Utama===}
2. VAR {deklarasi variabel global}
3. nilai1, nilai2, rataan : real
4. BEGIN
5. input (nilai1, nilai2) {input 2 bilangan}
6. {pemanggilan prosedur1}
7. call hitung_rataan(nilai1,nilai2)
8. output(rataan) {menampilkan nilai rata-rata}
9. END
10. {===Prosedur1 hitung_rataan===}
11. PROCEDURE  hitung_rataan(input:  var1,var2:
integer, output: rata: real)
12. VAR
13. jml : integer
14. BEGIN
15. Call  hitung_jumlah(var1,var2)  {panggil
fungsi2}
16. rata  jml / 2
17. ENDPROCEDURE
18. {==Prosedur2 hitung_jumlah===}
19. PROCEDURE  hitung_jumlah(input:  pertama,  kedua:
integer, output: jumlah: integer)
20. BEGIN
21. jumlah = pertama + kedua
22. ENDPROCEDURE
 
 




















     Pola pemanggilan procedure juga mengikuti aturan yang diterapkan pada function.  Dari  algoritma  di  atas,  dapat  dituliskan  ke  dalam  bahasa pemprograman C++ sebagai berikut:

1. #include <stdio.h>
2.
3. //Variabel Global
4. float nilai1, nilai2, rataan;
5.
6. {===Program Utama===}
7. void main () { // program Utama
8. // Inisialisasi dua buah nilai
9. nilai1 = 8;
10. nilai2 = 16;
11.
12. /* pemanggilan prosedur1 */
13. hitung_rataan(nilai1,nilai2,rataan);
14. /* menampilkan nilai rata-rata */
15. cout rataan;
16. }
17.
18. {==Prosedur2 hitung_jumlah===}
19. void  hitung_jumlah(int  pertama,  int  kedua,  int&
jumlah)
20. {
21. jumlah = pertama + kedua;
22. }
23.
24. {===Prosedur1 hitung_rataan===}
25. void hitung_rataan(int var1, int var2,int& rata)
26. {
27. int jml;
28. // panggil procedure 2
29. hitung_jumlah(var1,var2,jml);
30. rata = jml / 2;
31. }
 
 
































     Perbedaan  utama  yang  terlihat  antara  fungsi  dan  prosedur  adalah bahwa  prosedur  tidak  perlu  mengembalikan  sebuah  nilai,  sedangkan  fungsi harus  selalu  mengembalikan  nilai  (ditunjukkan  dengan  perintah  return  ...  di akhir  blok  fungsi).  Selain  itu,  kode  pemanggil  fungsi  perlu  mendefinisikan sebuah  variabel  untuk  menyimpan  nilai  yang  dikembalikan  oleh  fungsi, sedangkan  pada  prosedur  tidak  demikian.  Pengisian  variabel  dilakukan  oleh prosedur  sehingga  kode  pemanggil  tidak  perlu  lagi  mempersiapkan  sebuah variabel penyimpan hasil eksekusi prosedur.
     Pada  procedure  pertama  dan  kedua  terdapat  lambang  “&”  setelah penulisan  tipe  data  pada  parameter  procedure.  Hal  itu  maksudnya  adalah variabel tersebut merupakan  parameter input/output, dengan kata lain akan terjadi pemetaan dua arah antara variabel pada parameter procedure dengan variabel pada parameter pemanggilan procedure.
Fungsi dan Prosedur yang telah terdefinisi
     Selain  dapat  membuat  sendiri  fungsi  atau  prosedur  yang diperlukan  dalam  sebuah  program,  bahasa  pemrograman  juga  sudah menyediakan beberapa fungsi dan prosedur yang sudah terdefinisi dan dapat langsung digunakan / dipanggil dalam program. Penggunaan fungsi maupun prosedur yang telah terdefinisi tersebut dapat mempermudah perancang program menyelesaikan sub persoalan tertentu.
Beberapa fungsi yang telah terdefinisi, antara lain:
FUNGSI
CONTOH
- Fungsi ceil
(untuk  membulatkan  keatas
nilai pecahan).
var-int  ceil(ekspresi float)
- Fungsi min/ max
(menentukan  nilai  minimal
atau  maksimal  dari  dua
bilangan)
var-int  min(3,5)
var-int  max(3,5)
- Fungsi random
(mendaparkan  nilai  secara
var-int  random(10)

acak dari rentang tertentu)

- Fungsi sin
(memperoleh nilai sinus dari
suatu bilangan)
Var-float  sin(int)
Beberapa prosedur yang telah terdefinisi, antara lain:

PROSEDUR
CONTOH
- Prosedur assert
(mengecek  error  pada  ekspresi
boolean)
assert (eks-boolean [,string])
- Prosedur arg
(mengembalikan  argumen  ke-i  dari
program  dan  meyimpannya  dalam
sebuah string)
arg (eks-integer, var-string)
- Prosedur date
(menampilkan tanggal sekarang)
date (var-string)
date (var-string)
- Fungsi time
(menampilkan jam sekarang dengan
format jj:mm:dd)
time (var-string)





Komentar

Postingan populer dari blog ini

MAKALAH STAR OFFICE WRITER

BAHASA ASSEMBLY

MAKALAH HAJI DAN UMROH