Sebelum belajar algoritma pemrograman,
akan lebih baik kita pahami terlebih dahulu langkah-langkah pembuatan
suatu program. Terdapat beberapa langkah umum dalam pembuatan suatu
program yaitu:
- Mendefinisikan masalah
- Mencari solusinya
- Menentukan algoritma
- Menulis program
- Menguji program
- Mendokumentasikan program
- Merawat program
Mendefinisikan masalah
Langkah yang pertama
dilakukan adalah mendefinisikan permasalahan. langkah ini harus
dilakukan untuk menentukan masalah yang ada serta ditentukan pula input
dan output program.
Mencari solusi
Kemudian
ditentukan solusi dari permasalahan yang dihadapi. Bila untuk
mendapatkan solusi harus melalui langkah yang terlalu rumit dapat
dilakukan pembagian masalah dalam beberapa modul-modul kecil agar mudah
untuk dikerjakan. Lalu modul-modul kecil tersebut digabungkan menjadi
satu untuk dapat menentukan solusi.
Menentukan algoritma
Dalam
pemilihan algoritma, pemrogram atau analis harus menggunakan algoritma
yang sesuai dan efisien untuk masalah yang dihadapi.
Menulis program
Penulisan
program bisa dilakukan dengan menggunakan bahasa pemrograman yang
dikuasai dan memiliki kompabilitas dengan perangkat keras yang akan
menggunakan program tersebut.
Menguji program
Bila program sudah selesai dibuat, pengujian diperlukan untuk mengetahui apakah program yang dibuat sudah layak untuk digunakan.
Mendokumentasikan program
Penulisan
dokumentasi yang biasanya dilupakan oleh pemrogram menjadi sangat
penting saat akan dilakukan perubahan pada program yang dibuat.
penulisan program ini dapat dilakukan dengan menulis komentar pada
source code tentang kegunaannya (variabel, parameter, procedur, fungsi).
Merawat program
Program
yang sudah selesai dibuat juga perlu dirawat dengan pendeteksian bug
yang belum diketahui sebelumnya juga penambahan fasilitas baru yang
mempermudah pengguna program.
Dari penjelasan diatas, dapat kita
peroleh kesimpulan bahwa pembelajaran algoritma pemrograman adalah
bagian dari langkah-langkah pembuatan program. Untuk lebih jelasnya
tentang algoritma pemrograman akan diulas sebagai berikut :
Algoritma
Algoritma
yaitu kumpulan langkah-langkah / steps untuk menyelesaikan masalah
menggunakan komputer (program komputer) dengan syarat tertentu. Adapun
syarat-syaratnya adalah sebagai berikut :
- Setiap langkah harus DEFINITE (pasti, tertentu), dalam algoritma terdapat instruksi-instruksi yang jelas dan tidak ambigu.
- Minimum mempunyai 1 output (input boleh tidak ada)
- Harus ada stoping criteria (bisa berhenti).
Algoritma juga mempunyai beberapa jenis yaitu :
- Sequence, instruksi dikerjakan berurutan (sekuensial).
- Selection, instruksi dikerjakan bila kreteria tertentu terpenuhi.
- Iteration, instruksi dikerjakan selama memenuhi kondisi tertentu.
- Concurrent, mengerjakan banyak instruksi secara bersama.
Contoh algoritma
Algoritma menghitung luas persegi.
- Masukkan sisi (S)
- Luas <- S * S
- Tulis Luas
Untuk menulis suatu penjelasan cara menyelesaikan masalah dapat pula digunakan Pseudo Code yaitu
berupa pengkodean atau penandaan yang menyerupai suatu program. Pseudo
Code ini sering digunakan dalam penulisan algoritma.
Contoh : Mencari bilangan terkecil dari dua bilangan yang dimasukkan.
Algoritma :
- Masukkan bil pertama
- Masukkan bil kedua
- Jika bil pertama < bil kedua maka kerjakan langkah 4, bila tidak maka dikerjakan langkah 5.
- Tampilkan bil pertama
- Tampilkan bil kedua
Pseudo code:
- Input x
- Input y
- If x < y then langkah 4 else langkah 5
- write x
- write y
Dari penjelasan diatas tampaklah perbedaan antara penulisan
algoritma dalam bentuk tertentu. Dengan begitu akan lebih mudah dipahami
oleh pemrogram dan orang lain yang ingin di beri pemahaman.
Algoritma dan Modular Programing
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 .
Keuntungan:
. Program lebih pendek
. Mudah dibaca dan dimengerti
. Mudah didokumentasi
. Mengurangi kesalahan dan mudah mencari kesalahan
. Kesalahan yang terjadi bersifat “lokal”
Modular programming pada C
Bahasa
C sangat mendukung modular programming . Sejak awal bahasa C sudah
membagi program-programnya menjadi modul-modul (bagian-bagian). Modul
pada bahasa C dikenal dengan nama fungsi (function). Bahasa C terdiri
dari fungsi-fungsi, baik yang langsung dideklarasikan dalam program
ataupun dipisah di dalam header file. Fungsi yang selalu ada pada
program C adalah fungsi main
Function
Fungsi/function adalah
suatu kumpulan instruksi/perintah/program yang dikelompokkan menjadi
satu, letaknya terpisah dari program yang menggunakan fungsi tersebut,
memiliki nama tertentu yang unik, dan digunakan untuk mengerjakan suatu
tujuan tertentu. Dalam bahasa pemrograman lain fungsi dapat disebut
sebagai subrutin (basic, VB) atau procedure (pascal, Delphi)
Keuntungan Fungsi
1. Dapat melakukan pendekatan top-down dan divide-and-conquer:
2. Top-down: penelusuran program mudah
3. Divide-and-conquer: program besar dapat dipisah menjadi program-program kecil.
4. Kode program menjadi lebih pendek, mudah dibaca, dan mudah dipahami
5. Program dapat dikerjakan oleh beberapa orang sehingga program cepat selesai dengan koordinasi yang mudah.
6.
Mudah dalam mencari kesalahan-kesalahan karena alur logika jelas dan
sederhana Kesalahan dapat dilokalisasi dalam suatu modul tertentu
saja.
7. Modifikasi program dapat dilakukan pada suatu modul tertentu saja tanpa mengganggu program keseluruhan
8. Fungsi – fungsi menjadikan program mempunyai struktur yang jelas.
9.
Dengan memisahkan langkah – langkah detail ke satu atau lebih fungsi –
fungsi, maka fungsi utama (main) akan menjadi lebih pendek, jelas dan
mudah dimengerti.
10. Fungsi -fungsi digunakan untuk menghindari
penulisan program yang sama yang ditulis secara berulang – ulang.
Langkah – langkah tersebut dapat dituliskan sekali saja secara terpisah
dalam bentuk fungsi. Selanjutnya bagian program yang membutuhkan
langkah – langkah ini tidak perlu selalu menuliskannya, tidak cukup
memanggil fungsi tersebut.
11. Mempermudah dokumentasi.
12. Reusability: Suatu fungsi dapat digunakan kembali oleh program atau fungsi lain
Sifat-sifat fungsi
1. Nilai fan-in tinggi, artinya semakin sering suatu modul dipanggil oleh pengguna semakin tinggi nilai fan-in
2. Nilai Fan-out rendah, artinya semakin spesifik fungsi suatu modul akan semakin rendah nilai fan-out
3. Memiliki Self-contained tinggi: artinya kemampuan untuk memenuhi kebutuhannnya sendiri
Kategori fungsi dalam C
Standard
Library Function . Yaitu fungsi-fungsi yang telah disediakan oleh C
dalam file-file header atau librarynya. Misalnya: clrscr(), printf(),
getch(). Untuk function ini kita harus mendeklarasikan terlebih dahulu
library yang akan digunakan, yaitu dengan menggunakan preprosesor
direktif. Misalnya: #include
Programmer-Defined Function . Adalah function yang dibuat oleh programmer sendiri.
Function
ini memiliki nama tertentu yang unik dalam program, letaknya terpisah
dari program utama,dan bisa dijadikan satu ke dalam suatu library
buatan programmer itu sendiri yang kemudian juga di-include-kan jika
ingin menggunakannya.
Perancangan Fungsi
Dalam membuat fungsi, perlu diperhatikan:
1. Data yang diperlukan sebagai inputan
2. Informasi apa yang harus diberikan oleh fungsi yang dibuat ke pemanggilnya
3. Algoritma apa yang harus digunakan untuk mengolah data menjadi informasi
Struktur Fungsi
Deklarasi function (function prototype/ declaration)Terdiri dari:
1. Judul fungsi
2. Tipe data yang akan dikembalikan/void
3. Tidak ada kode implementasi function tersebut Bentuk umum: tipe_data|void nama_fungsi([arguman 1, argument 2,....]);
Deklarasi fungsi
Deklarasi
fungsi diakhiri dengan titik koma . Tipe_data dapat berupa segala tipe
data yang dikenal C ataupun tipe data buatan, namun tipe data dapat
juga tidak ada dan digantikan dengan void yang berarti fungsi tersebut
tidak mengembalikan nilai apapun. Nama fungsi adalah nama yang unik.
Argumen dapat ada atau tidak (opsional) yang digunakan untuk menerima
argumen/parameter. Antar argumen-argumen dipisahkan dengan menggunakan
tanda koma. Suatu fungsi perlu dideklarasikan sebelum digunakan. Untuk
alasan dokumentasi program yang baik, sebaiknya semua fungsi yang
digunakan dideklarasikan terlebih dahulu Deklarasi fungsi ditulis
sebelum fungsi tersebut digunakan
Struktur Fungsi
1. Tubuh Function/Definisi Function (FunctionDefinition)Terdiri dari:
2.
function prototype yang disertai dengan kode implementasi dari
function yang berisikan statemen/instruksi yang akan melakukan tugas
sesuai dengan tujuan dibuatnya fungsi tersebut.
Bentuk Umum Definisi Fungsi
Tubuh
fungsi dapat berisi segala perintah yang dikenal oleh C, pada dasarnya
tubuh fungsi sama dengan membuat program seperti biasa. Return bersifat
opsional, adalah keyword pengembalian nilai dari fungsi ke luar
fungsi, return wajib jika fungsi tersebut mengembalikan nilai berupa
tipe data tertentu, sedangkan return tidak wajib jika fungsi tersebut
bersifat void.
Kapan menggunakan Deklarasi dan Definisi Fungsi?
Karena
prinsip kerja program C sekuensial, maka. Jika bagian dari program
yang menggunakan fungsi diletakkan sebelum definisi dari fungsi, maka
deklarasi dari fungsi diperlukan. Akan tetapi jika bagian dari program
yang menggunakan fungsi terletak nsetelah definisi dari fungsi, maka
deklarasi dari fungsi dapat tidak dituliskan.
Jenis fungsi dalam C
Fungsi Void
Fungsi
yang void sering disebut juga prosedur . Disebut void karena fungsi
tersebut tidak mengembalikan suatu nilai keluaran yang didapat dari
hasil proses fungsi tersebut.
Ciri:
1. Tidak adanya keyword return.
2. tidak adanya tipe data di dalam deklarasi fungsi.
3. menggunakan keyword void.
4. Tidak dapat langsung ditampilkan hasilnya
5. Tidak memiliki nilai kembalian fungsi
Fungsi non-void
Fungsi
non-void disebut juga function. Disebut non-void karena mengembalikan
nilai kembalian yang berasal dari keluaran hasil proses function
tersebut .
Ciri:
1. ada keyword return
2. ada tipe data yang mengawali fungsi
3. tidak ada keyword void
4.
Memiliki nilai kembalian . Dapat dianalogikan sebagai suatu variabel
yang memiliki tipe data tertentu sehingga dapat langsung ditampilkan
hasilnya.
Keyword void
Keyword void juga digunakan jika suatu function tidak mengandung suatu parameter apapun. Contoh fungsi Faktorial
The main Function
. function main() dibutuhkan agar program C dapat dieksekusi!
. Tanpa function main, program C dapat dicompile tapi tidak dapat dieksekusi (harus
dengan
flag parameter -c, jika di UNIX) . Pada saat program C dijalankan,
makacompiler C pertama kali akan mencari function main() dan
melaksanakan instruksi-instruksi yang ada di sana. Function main,
sering dideklarasikan dalam 2 bentuk:
. int main()
. void main()
int main()
Berarti
di dalam function main tersebut harus terdapat keyword return di
bagian akhir fungsi dan mengembalikan nilai bertipe data int. Mengapa
hasil return harus bertipe int juga? karena tipe data yang mendahului
fungsi main() diatas dideklarasikan int. Tujuan nilai kembalian berupa
integer adalahuntuk mengetahui status eksekusi program. jika
“terminated successfully” (EXIT_SUCCESS) maka, akan dikembalikan status
0, sedangkan jika “terminated unsuccessfully” (EXIT_FAILURE) akan
dikembalikan nilai status tidak 0, biasanya bernilai 1. Biasanya
dipakai di lingkungan UNIX void main(). Berarti berupa function yang
void sehingga tidak mengembalikan nilai status program sehingga nilai
status program tidak bisa diketahui. Biasanya dipakai pada program C di
lingkungan Windows Bentuk pemanggilan fungsi di C. Pada dasarnya
fungsi dapat memanggil fungsi lain, bahkan fungsi dapat memanggil
dirinya sendiri (rekursif)
lengkap
BalasHapus