Rabu, 27 Januari 2016

Materi 11 Pemrograman Modular : Fungsi

sumber gambar : www.programering.com

Pengantar
Salah satu teknik pemrograman yang sering digunakan adalah pemrograman modular. Teknik ini dikembangkan karena keterbatasan manusia memikirkan pemecahan permasalahan. Manusia hanya sanggup memikirkan bagian tertentu dari keseluruhan program secara tuntas, tetapi mampu berpikir secara global. Pada umumnya orang memecahkan permasalahan secara bertahap. Pertama kali memikirkan persoalan secara global dengan sejumlah sub–masalah. Kemudian setiap sub–masalah dipikirkan rincian pemecahannya.
Sebagai contoh :
Misalkan kita disuruh mengunjungi teman dikota lain. Mungkin yang pertama kali dipikirkan adalah bahwa perjalanan dibagi atas tiga bagian, dua perjalanan dalam kota dan satu perjalanan antar kota. Diantara tiga sub-perjalanan tersebut yang pertama dipikirkan adalah perjalanan antar kota. Pikiran seperti ini berarti kita telah berasumsi bahwa perjalanan dalam kota dianggap sudah tahu. Andaikan kita memutuskan naik pesawat udara, maka dengan segera akan mencari tiket walaupun sesungguhnya kita belum mengetahui rincian perjalanan dalam kota. Sebelum berangkat atau menjelang keberangkatan, kita memikirkan rincian masing-masing tahapan perjalanan. Didalam benak kita bertanya, naik apa ke bandar udara ?. Kalaupun naik bus harus tahu lintasan dan tempat pemberhentiannya.

Mungkin kita tidak mau repot memikirkan semua itu, serahkan saja pemecahannya kepada sopir taksi, kita naik taksi. Perjalanan antar kota dipercayakan kepada pilot. Perjalanan dari bandar udara ke tempat tujuan dipercayakan juga kepada sopir taksi. Persoalan transportasi diatas kita pecahkan secara global saja. Sub-permasalahan dibebankan pemecahannya kepada pihak lain, yaitu pilot dan sopir taksi. Dalam hal ini pihak yang ditugasi itu harus tahu betul rincian pemecahan permasalahan yang ditugaskan kepadanya.
Pada pemrograman hal semacam itu juga terjadi. Pemecahan permasalahan dipikirkan secara bertahap. Permasalahan dibagi atas beberapa bagian kemudian setiap bagian dibagi lagi atas bagian-bagian lain yang lebih kecil, demikian seterusnya sampai bagian tersebut mudah untuk dapat diselesaikan.
Penyelesaian setiap bagian permasalahan disebut modul. Dalam program modul akan direalisasikan dalam bentuk prosudur, fungsi atau blok. Pada umumnya, suatu modul akan mengolah masukan yang diterimanya untuk menghasilkan keluaran seperti yang diinginkan.
Ada sebuah pernyataan dari Al-Khawarizmi:
Untuk mencapai suatu tujuan besar, maka tujuan tersebut harus dibagi-bagi menjadi tujuan kecil sampai tujuan kecil itu merupakan tujuan yang dapat dicapai berdasarkan kondisi dan potensi yang dimiliki saat itu.
Pernyataan Al-Khawarizmi dapat dijadikan analogi mengenai pemrograman modular. Pemrograman modular adalah memprogram dengan membagi program menjadi beberapa bagian procedure (prosedur) dan function (fungsi). Prosedur adalah bagian program yang tidak mengembalikan hasil proses ke bagian pemanggilnya. Sedangkan fungsi adalah bagian program yang akan mengembalikan suatu nilai hasil dari proses ke bagian pemanggilnya. 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) .

Pemrograman Modular merupakan paradigma pemrograman yang pertama kali diperkenalkan oleh Information & Systems Institute, Inc. pada the National Symposium on Modular Programming pada 1968. Salah satu tokoh modular programming adalah Larry Constantine . Pemrograman Modular adalah suatu teknik pemrograman di mana program yang biasanya cukup besar dibagi-bagi menjadi beberapa bagian program yang lebih kecil .
Pemrograman modular memungkinkan perancang program menyederhanakan persoalan didalam program dengan memecah atau membagi persoalan tersebut menjadi sub-sub persoalan yang lebih kecil agar mudah diselesaikan. Secara umum dikenal dua cara yang dapat digunakan untuk memecah persoalan dalam modul-modul, yaitu dengan menggunakan struktur fungsi dan prosedur. Pemahaman tentang perbedaan dan karakteristik masing -masing struktur tersebut perlu diimbangi pula dengan kemampuan mengimplementasikannya dalam program.

Dalam sebuah program, seringkali pemrogram perlu memecah persoalan yang kompleks menjadi beberapa bagian yang lebih mudah diselesaikan. Ide inilah yang mencetuskan struktur pemrograman modular, yaitu memecah persoalan menjadi sub -sub persoalan yang biasa disebut subprogram.
Bayangkan sebuah program yang dibuat untuk menghitung nilai rata -rata dari sekumpulan nilai integer. Dalam prosesnya, program melakukan perhitungan tersebut dalam dua langkah, yaitu menjumlahkan seluruh nilai, kemudian membaginya dengan banyaknya nilai yang tersedia. Dengan demikian program tersebut dapat dipecah menjadi dua subprogram, yaitu subprogram penjumlahan dan subprogram pembagian. Selain itu, pemrograman modular memungkinkan pemrogram memanggil kembali subprogram yang telah didefinisikannya setiap kali diperlukan dalam program tersebut. Pemrogram tidak perlu berulang kali mendefinisikan sekumpulan instruksi yang diperlukan beberapa kali dalam sebuah program maupun dalam program lainnya. Dengan pemrograman modular, sebuah subprogram dapat dianggap sebagai program kecil dengan sebuah tujuan spesifik yang umumnya berisi operasi sederhana   dan apabila terdapat kesalahan dapat dilokalisir pada subprogram itu sendiri. Sub -sub program tersebut kemudian disatukan oleh bagian program utama yang dapat memanggil subprogram tersebut sesuai kebutuhan dalam program.

Dalam pemrograman, dikenal dua tipe subprogram yang biasa digunakan untuk memecah persoalan kompleks menjadi lebih sederhana, yaitu fungsi (function) dan prosedur (procedure). Kedua tipe subprogram ini dapat digunakan bersamaan maupun salah satunya saja dalam sebuah program. Masing-masing tipe subprogram memiliki karakteristik dan perilaku yang berbeda sehingga penggunaannya dalam program juga berbeda -beda.
Subprogram sebagai bagian dari program utama wajib mendefinisikan kondisi awal (initial state/I.S. ) sebelum proses dalam subprogram dieksekusi dan juga mendefinisikan kondisi akhir (final state/F.S. ) yang berupa hasil proses (output) atau perubahan nilai dalam variabel tertentu (khusus untuk fungsi saja).
Beberapa fungsi dan prosedur telah terdefinisi dan dapat langsung digunakan oleh pemrogram dalam sebuah program dengan mendefinisikan variabel-variabel yang diperlukan. Selain fungsi dan prosedur yang telah terdefinisi tersebut, pemrogram juga dapat membuat sendiri fungsi dan prosedur yang diperlukannya dalam sebuah program.

Dalam membuat sebuah subprogram, pemrogram dapat menyimpannya dalam salah satu dari dua lokasi berikut ini :
1. dalam file yang sama dengan program utama: dapat dilakukan jika subprogram sedikit dan berukuran kecil sehingga relatif mudah dikelola dalam sebuah file
2. dalam file yang terpisah: biasanya dilakukan jika subprogram sudah terlalu banyak sehingga sulit dikelola, atau jika pemrogram menginginkan supaya subprogram dapat digunakan di beberapa program utama sekaligus


Referensi
Anonim, “Algoritma & Pemrograman II”, Penerbit Gunadarma, Jakarta, 1990
Bryon, Goffried, “Programming with PASCAL”, Schaum Series, New York, 1986
Prather, Ronald E., “Problem Solving Principle : Programming with Pascal”, Prentice Hall, New Jersey, 1982
Dumairy, Matematika Terapan untuk Bisnis & Ekonomi Press (BPFE Yogyakarta)
Yogianto H.M, Turbo Pascal 5.0 Penerbit Andi Offset, Yogyakarta.
Ediman Lukito, Belajar Sendiri Pemrograman dengan Turbo Pascal 7.0
Harahap, Erwin (2005). Panduan Perkuliahan Algoritma & Pemrograman, Jurusan Statistika, Universitas Islam Bandung, Bandung.
Munir, Rinaldi. (2006). Algoritma dan Pemrograman, Edisi ke-3, Penerbit Informatika, Bandung.
Bahan Ajar Algoritma dan Pemrograman “Pemgrogaman Modular/ function” Politeknik Telkom Bandung, 2013

Tugas 10

Dari tugas sebelumnya (8,9,10) tulislah algoritma (Function) psudocode dan buatlah programnya menggunakan visual basic, Screenshoot hasil/ tampilan program dan lampirkan dengan membuat link melalui google drive


79 komentar:

  1. B_122150086_Irsyad Rahman Hakim
    https://drive.google.com/open?id=0B40DVqFzVe5-MWw4aHJvalFOS2c

    BalasHapus
  2. B_122150072_Ichsan Syarafi
    https://drive.google.com/file/d/0Bwk6OW5YuaCnTWI3Q3lJakpfVnc/view?usp=sharing

    BalasHapus
    Balasan
    1. tambahan
      https://drive.google.com/file/d/0Bwk6OW5YuaCnazBiYkw5M2xfeVE/view?usp=sharing

      Hapus
  3. B_122150054_Ghulam Amar Al Ma'ruf
    https://drive.google.com/file/d/0B9mm7quM9zqVZEdKeDdxSmh6VE0/view?usp=sharing

    BalasHapus
  4. B_122150097_Rangga Threfosa Tolongan
    https://drive.google.com/open?id=0B4Y8aD6Z3uM9WS1QWHZ6Q1FYMDg

    BalasHapus
  5. B_122150068_Karunia Pramanti Putri

    https://drive.google.com/file/d/0B4ETOQeW6yFaZ3F2bE1ZelNKSXc/view?usp=sharing

    BalasHapus
  6. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  7. B_122150062_Christian Agung Pribadi
    https://drive.google.com/file/d/0B2D_0Ra9aYS2Q09mWEZNYVVLeUE/view?usp=sharing

    BalasHapus
  8. B_122150064_FANDY SAPUTRA

    https://drive.google.com/file/d/0B0H3VtM_qnUrTHdacnhZa0U1dm8/view?usp=sharing

    BalasHapus
  9. B_122150060_Moch Rizky Hermawan

    https://drive.google.com/file/d/0B5lgRqXlh9jEVjdOLUliQmc1OGc/view?usp=sharing

    BalasHapus
  10. B_122150087_Aldhi Febrawan

    https://drive.google.com/file/d/0Bw2QkOzqd9u3c042UXR6MEllUlU/view?usp=sharing

    BalasHapus
  11. B_122150096_Benyamin Purbowasito

    https://drive.google.com/open?id=0BznMW7qe0vD-bFRRNXdpeFNaZlE

    BalasHapus
  12. B_122150067_Yustina Orchidtya Dwi Rosari
    https://drive.google.com/file/d/0BzAo0BITkdHkdGNDdXMxS3R0bEE/view?usp=sharing

    BalasHapus
    Balasan
    1. Komentar ini telah dihapus oleh pengarang.

      Hapus
  13. B_122150070_Ridwhan Abdul Azis
    https://drive.google.com/open?id=0B67NHiA09e5hSGxkQUJsa3VTNjA
    psudocode
    https://drive.google.com/open?id=0B67NHiA09e5hWTJ4TGp0UEFIdXM

    BalasHapus
  14. B_122150073_AYUB HENDRY YUWONO
    https://drive.google.com/file/d/0Bw08DZIeOPQYbzBoSVZSSW1pU28/view?usp=sharing

    BalasHapus
  15. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  16. B_122150078_Bagas Virgantama
    https://drive.google.com/file/d/0B9QJK3_VfINFMC1qVjJLX3FnYmM/view?usp=sharing

    BalasHapus
  17. B_122150071_Nafisa Syaiha Syuhda

    https://drive.google.com/file/d/0BxSphnLByL3yNXBHbmQ5NFBPZjQ/view?usp=sharing

    BalasHapus
  18. B_122150085_Kurnia Wardana Ariyanto
    https://drive.google.com/file/d/0B4n2sW-GSfiQN0p6SG9UejVlUEU/view?usp=sharing

    BalasHapus
  19. C_chrisna Ocvatika santoso
    https://drive.google.com/drive/folders/0B3K04GtYqwXJQm9CQlNGdHJ5bTg

    BalasHapus
  20. B_122150057_Rizky Firmansyah

    https://drive.google.com/file/d/0B75GAMWFm6yLX2NIN0dxaFpQczQ/view?usp=sharing

    BalasHapus
  21. B_122150081_MAGHVIRA ANDHIKA ANJASMARA

    https://drive.google.com/file/d/0B4CRKrUERuUeVmhUSER1TWIzRkk/view?usp=sharing

    BalasHapus
  22. B_122150075_KHAQIQ TAUFIQU MAULA
    https://drive.google.com/open?id=0BzSx1YuSbJNsTWFwZzREYk01SDQ

    BalasHapus
  23. B_122150099_Arwan Saputro
    https://drive.google.com/open?id=0Bz5xDfbBotY9Q2VvZ0V5YVppY00

    BalasHapus
    Balasan
    1. B_122150099_Arwan Saputro(revisi)
      https://drive.google.com/open?id=0Bz5xDfbBotY9MmdkNkY4dzNCeUU

      Hapus
  24. B_122150063_Yakub Hidaya
    https://drive.google.com/file/d/0ByT3NQ7Xk1vQUWkzY3RaUTBBazg/view?usp=docslist_api

    BalasHapus
  25. B_122150058_Efendi Setiawan

    https://drive.google.com/file/d/0B_0v_vXcXRDNdjVYcHZRUzdod2M/view?usp=sharing

    BalasHapus
  26. B_122150076_AHMAD AINUN NA'IM
    https://drive.google.com/open?id=0B7KYxvNmdm4ZUzNVN0Vfb0dsc28

    BalasHapus
  27. B_122150061_Arif Tri Fauzi
    https://drive.google.com/open?id=0B-MtP7lfZycjVzdJMndoak5wa1U

    BalasHapus
  28. B_122150090_irfan syah aji wijaya
    https://drive.google.com/open?id=0B31BLNmn2FvwWFE3dDlpeDEzblE

    BalasHapus
  29. B_122150094_Effie Azaria
    https://drive.google.com/file/d/0BwX9PsXxxksESGdjcUxrYldBcWs/view?usp=sharing

    BalasHapus
  30. B_122150051_Novira Dwirahma
    https://drive.google.com/open?id=0B6EGrkdGisNbellDaU9ZSDU3MlU

    BalasHapus
  31. B_122150091_Wulan Puji Astuti
    https://drive.google.com/file/d/0B__LVkm9bAl1NHRFVVRTMkpmMlk/view?usp=sharing

    BalasHapus
  32. B_1221500053_Adh Dhuha Nurul Salsabila
    https://drive.google.com/file/d/0B3hUirhFo6O4UWU4SEFKNkRzRFU/view?usp=sharing

    BalasHapus
  33. B_RIZKI DISTIANASARI_122150098

    https://drive.google.com/open?id=0B5-_j-bZ-JPCRHlwOWhwaVIyc00

    BalasHapus
  34. B_122150056_GHIFARI SURYA SATRIA
    TUGAS 11: MODULAR FUNGSI

    https://drive.google.com/file/d/0B6moNA6X2YGhWlAzNzBHa0dsUmc/view?usp=sharing

    BalasHapus
  35. B_122150059_Risang Ario Harimurti

    https://drive.google.com/file/d/0Bwt9xr6-G9WBU2xKNENORi1XX3c/view?usp=drivesdk

    BalasHapus
  36. B_122150069_Zulfa Kartika Damayanti
    https://drive.google.com/open?id=0B5KnLhRvqgDZdWxKaG43akJMYm8

    BalasHapus
  37. B_122150088_Alexander Perdana

    https://drive.google.com/open?id=0B32Gr8Wa_cxoM0F2VGdvbEUxeEE

    BalasHapus
  38. C_122120053_MOCHAMMAD RIZQI KURNIAWAN
    https://drive.google.com/file/d/0B9QJK3_VfINFMC1qVjJLX3FnYmM/view?usp=sharing

    BalasHapus
  39. B_122150074_Intan Maharani

    https://drive.google.com/file/d/0B4GheiuFHw85OUYwVEs0NkEtSG8/view?usp=sharing

    BalasHapus
    Balasan
    1. Revisi

      https://drive.google.com/file/d/0B4GheiuFHw85NTExZHpHaC1MNTA/view?usp=sharing

      Hapus
  40. C_122150101_Desi Widiyastuti
    https://drive.google.com/open?id=0BzTDj3iDm2vtc1k5QnpnRFhCYTg

    BalasHapus
  41. A_122150050_Arifin Surya Lukita
    https://drive.google.com/file/d/0B_QHsRQ9T9k_YkxzT1RPZjR0dVE/view?usp=sharing

    BalasHapus
  42. B_122150052_Muhammad Yusuf Suhardiman

    https://drive.google.com/file/d/0B2xJGzLCTiThTDNXaWhIb3Fwazg/view?usp=sharing

    BalasHapus
  43. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  44. C_122150103_Tifany Wahyu Widyaranti
    https://drive.google.com/file/d/0B30kdrycfof5Nm1vYXNZQnFqY2M/view?usp=sharing

    BalasHapus
  45. B_122150082_Miftahus Salam
    https://drive.google.com/file/d/0B-qILWwsXtIxN01sRl9qcXhZbTA/view?usp=sharing

    BalasHapus
  46. c_122150122-AnwarIlhamsyah

    https://drive.google.com/open?id=0B9Eng4DWc3bmbmJnTm1FQmx2UzQ

    BalasHapus
    Balasan
    1. REVISI

      https://drive.google.com/open?id=0B9Eng4DWc3bmV3lFM1hiSl9oR3c

      Hapus
    2. REVISI

      https://drive.google.com/open?id=0B9Eng4DWc3bmV3lFM1hiSl9oR3c

      Hapus
  47. C_122150119_Muhammad Ridwan

    https://drive.google.com/file/d/0B0IVbp8d5hiCMFh1LWx0ZXJUZWM/view?usp=sharing

    BalasHapus
  48. C_122150107_Aldi Dwiyantoro
    https://drive.google.com/file/d/0B3BGEY9SxjYQeDAxTFhya054Y2M/view?usp=sharing

    BalasHapus
  49. C_122150107_Aldi Dwiyantoro
    https://drive.google.com/file/d/0B3BGEY9SxjYQeDAxTFhya054Y2M/view?usp=sharing

    BalasHapus
  50. C_122150104_Yogya Willy Handoyo

    https://drive.google.com/open?id=0B7T4yPHJmkRFOGhOekNYc2lkREE

    BalasHapus
  51. B_122150079_Ilham Pangestu utomo

    https://drive.google.com/file/d/0B_DR0s8qXBuMZ2tSSTJfZC1zRlU/view?usp=sharing

    BalasHapus
  52. B_122150077_Gusdiniarko
    https://drive.google.com/folderview?id=0B9kNUeRp1ZSeUFpZZEZ1LVdpc0E&usp=sharing

    BalasHapus
  53. C_122150112_Rini Theresia
    https://drive.google.com/file/d/0B0ORZS3-7EJXY1E1RVFoY1N1Yjg/view?usp=sharing

    BalasHapus
  54. C_122120068_Muhammad Jangki Dausat
    https://drive.google.com/drive/folders/0B9Ty8fultAjKZE4wd3UyZTZmcE0

    BalasHapus
  55. B_122150084_Aprininda Aisya N

    https://drive.google.com/file/d/0B8nusyn-geSFTjJrMTQ4VE16dWM/view?usp=sharing

    BalasHapus
  56. C_122150121_Alita tri rachmawati

    https://drive.google.com/file/d/0B63O7Y5ffX_bdW83OFpSSnpHX3c/view?usp=sharing

    BalasHapus
  57. C_122150120_Muhammad Iqbal F

    https://drive.google.com/file/d/0B-E8_sdZNhAhM1lITFZINmZnOFE/view?usp=sharing

    BalasHapus
  58. C_122150120_Muhammad Iqbal F

    https://drive.google.com/file/d/0B-E8_sdZNhAhM1lITFZINmZnOFE/view?usp=sharing

    BalasHapus
  59. C_122150109_Rifandi Elfrianto Firmansyah
    https://drive.google.com/file/d/0B8MINebazgTwamNxQkk1Wks2R2M/view

    BalasHapus
  60. C_122150108_PINKIE WINANDARI BUDAYA
    https://drive.google.com/file/d/0B2ppWf4yw3siU25MZkpHdE9MTGs/view?usp=sharing

    BalasHapus
  61. C_122150106_Fakhriel Ilman R

    https://drive.google.com/open?id=0Bx1PAxllr0VsMnoxZXpCUExuckk

    BalasHapus
  62. C_122150111_Zakat Nuh Zikirullah

    https://drive.google.com/open?id=0B4L6DRvS0npIQ1dMbGR1UGFGNVU

    BalasHapus
  63. C_122150115_Raka Ardiansyah P

    https://drive.google.com/open?id=0BzLaOAM2XGs8QVVXcnhDYlhhcHM

    BalasHapus
  64. B_122150095_Alver Pramudito Zakiri
    https://drive.google.com/open?id=0BwVzMiyD5NqQSmtRaWRELXhLT1U

    BalasHapus
  65. C_122150102_Puspa Puspita

    https://drive.google.com/open?id=0BzF4N2BnNAamOW90dk9MTHFFLUU

    BalasHapus
  66. B_122150093_B.BAGUS ADI YOGA U

    Https://drive.google.com/file/d/0B5CYHUC5-s38RExxVm9vTDMwcXc/view?usp=drivesdk

    BalasHapus
  67. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
    Balasan
    1. C_122150117_Riany Marifatika

      https://drive.google.com/file/d/0B1RVdONzuamKZERvd1N6cXAtU0U/view?usp=sharing

      Hapus
  68. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
    Balasan
    1. C_122150118_AINUN FITRIYAH NURROCHMA

      REVISI
      https://drive.google.com/file/d/0B78CnEMp9-htN05zeDFXNWhCd00/view?usp=sharing

      Hapus
  69. C_122150105_AHMAD MA'LUFUL WAFA

    https://drive.google.com/file/d/0B07mhuAeeBU0VjFtRXJGVFhSOTg/view

    BalasHapus
  70. C_122150114_SASHI APRIDA YUSMI

    https://drive.google.com/file/d/0B6-Ln1LwVrcVeG94VDhPODBaSkU/view?usp=sharing

    BalasHapus
  71. Terima kasih pak sudah mau berbagi ilmunya



    my blog

    BalasHapus