Algoritma Pemrograman
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 membagiprogram-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 menggangguprogram 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 programutama,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
dokumentasiprogram 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 datatertentu 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? karenatipe 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)
1. Which is not a proper prototype?
A. int funct(char x, char y);
B. double funct(char x)
C. void funct();
D. char x();
2. What is the return type of the function with prototype: “int
func(char x, float v, double t);”
A. char
B. int
C. float
D. double
3. Which of the following is a valid function call (assuming the
function exists)?
A. funct;
B. funct x, y;
C. funct();
D. int funct();
4. Which of the following is a complete function?
4. Which of the following is a complete function?
A. int funct();
B. int funct(int x) {return x=x+1;}
C. void funct(int) {printf( “Hello” );
D. void funct(x) {printf( “Hello” ); }
Algoritma adalah metode untuk menyelesaikan suatu permasalahan
secara bertahap. Contoh sederhana suatu algoritma adalah resep suatu masakan.
Pada resep suatu masakan terdapat langkah langkah penyelesaian untuk membuat
masakan itu. Misalkan untuk membuat telur rebus, maka diperlukan langkah
langkah:
Cuci bersih telur yang akan direbus.
Siapkan air pada panci.
Rebus air hingga mendidih.
Masukkan telur yang sudah dicuci kedalam air yang telah direbus.
Tunggu hingga matang dan sajikan
Komputer adalah suatu mesin. Untuk dapat melakukan pekerjaannya
komputer membutuhkan instruksi yang diberikan pada komputer itu. Kumpulan
instruksi umum untuk berbagai jenis komputer disebut algoritma.
KARAKTERISTIK ALGORITMA
Algoritma komputer memiliki beberapa karakteristik yang harus
dipenuhi agar menjadi algoritma yang baik. Karakteristik itu antara lain:
Presisi. Langkah langkah penyelesaian masalah dalam algoritma
haruslah secara presisi (tepat) dinyatakan, tidak mengandung ambiguitas.
Keunikan. Hasil pertengahan dalam tiap langkah eksekusi suatu
algoritma didefinisikan secara khas dan merupakan pengolahan dari hasil
eksekusi langkah sebelumnya.
Keterbatasan. Algoritma harus terbatas dan berhenti pada suatu titik
setelah semua ekesekusi dilaksanakan.
Input. Algoritma menerima input.
Output. Algoritma menghasilkan output.
General. Algoritma berlaku untuk suatu kumpulan input tertentu.
Contoh algoritma:
Input: n
Output: 1/1 + 1/2+ ... +1/n
1. jumlah = 0
2. i= 0
3. i=i+1
4. jumlah = jumlah + 1/i
5. ulangi langkah 3 dan 4 sehingga i==n
Algoritma pada contoh adalah algoritma untuk menghitung
Pada langkah 1, nilai 0 diisikan pada variabel jumlah. jadi jumlah
pada langkah pertama bernilai 0. Tanda = adalah operator penugasan dengan makna
“kopikan 0 kepada jumlah” atau ” gantikan nilai tertentu jumlah dengan
0″.Langkah 2 juga menunjukkan hal yang sama namun dengan nama variabel yang
berbeda. Langkah 3 menunjukkan instruksi “kopikan jumlah antara isi variabel i
dan 1 kepada variabel i”. Langkah 4 menunjukkan instruksi “kopikan jumlah
antara isi variabel jumlah dengan 1/isi variabel i pada variabel jumlah”.
Langkah 5 menunjukkan instruksi untuk mengulangi langkah langkah 3 dan 4
sehingga terpenuhi syarat i = = n. Operator = = disebut operator equalitas yang
bermakna benar dan salah. Jika i sama dengan n maka nilainya benar dan jika i
tidak sama dengan n maka nilainya salah.
Algoritma ini
dikatakan presisi karena tiap langkahnya didefinisikan secara tepat
dan tidak mengandung pemahaman yang ambigu ketika instruksi instruksinya
dilaksanakan semua orang atau mesin. Misalkan ada instruksi “jumlahkan i”.
Instruksi ini mengandung ambigu karena tidak terdapat keterangan
penjumlahnya. Algoritma ini dikatakan unik karena hasil
pertengahan dalam tiap langkah eksekusi suatu algoritma didefinisikan secara
khas dan merupakan pengolahan dari hasil eksekusi langkah sebelumnya.Misalkan
pada langkah 3. Langkah 3 akan menghasilkan nilai tertentu jika nilai i telah
diketahui. Pada proses pertama nilai i adalah hasil keluaran dari langkah 2
yaitu bernilai 0 sehingga nilai keluaran i pada proses pertama langkah 3 adalah
1.
Algoritma ini dikatakan terbatas karena dimulai dari langkah 1 dan diakhiri jika syarat i = = n bernilai benar. Algoritma ini input berupa nilai yang dimasukkan pada variabel n dan memiliki output yang berupa hasil dari operasi 1/1 + 1/2+ … +1/n. Algoritma ini dikatakan general karena algoritma ini dapat diterapkan untuk setiap nilai real yang dimasukkan pada variabel n.
Algoritma ini dikatakan terbatas karena dimulai dari langkah 1 dan diakhiri jika syarat i = = n bernilai benar. Algoritma ini input berupa nilai yang dimasukkan pada variabel n dan memiliki output yang berupa hasil dari operasi 1/1 + 1/2+ … +1/n. Algoritma ini dikatakan general karena algoritma ini dapat diterapkan untuk setiap nilai real yang dimasukkan pada variabel n.
Post a Comment for "Algoritma Pemrograman"
Budayakan "Berkomentar" setelah mengunjungi artikel ini. Saran dan Komentar anda semoga dapat menjadi "Pelajaran & Motivasi" untuk menjadi lebih baik lagi !!
Komentar yang mengarah ke tindakan spam akan di hapus atau terjaring secara otomatis oleh spam filter.