Pengertian Algoritma & Pemrograman Algoritma

Asal  usul  kata  algoritma  dapat  Anda  baca  dalam  buku  “The  Art  of  Computer Programming Second Edition Volume I” yang ditulis oleh Donald E. Knuth (1973, p1- )

Menurut  Donald  E.  Knuth  (1973,p4),  algoritma  dalam  penger tian  modern mempunyai kemiripan dengan istilah resep ,  proses, metode, teknik, prosedur, rutin . Algor itma  adalah  sekumpulan  aturan-aturan  berhingga  yang  memberikan  sederetan operasi-operasi untuk menyelesaikan suatu jenis masalah yang khusus. Menurut  Rinaldi  Munir,  algoritma  adalah  urutan  langkah-langkah  logis penyelesaian masalah yang disusun secara sistematis. Berdasarkan dua pengertian algoritma di atas, dapat disimpulkan bahwa algor itma merupakan suatu istilah yang luas, yang tidak hanya berkaitan dengan dunia komputer.

Pemrograman

Pemrograman berasal dar i kata  program  yang diberi awalan pe– dan akhiran –an. Dalam buku ini, program berarti progr am komputer. Pengertian   program   computer menurut John M. Zelle,  Ph.D.  dalam bukunya  yang  berjudul “Python  Programming: An  Introduction to  Computer  Science”  (2002,  p1)  adalah  sekumpulan  instruksi langkah per langkah yang member itahukan mengenai yang harus dilakukan computer secara  tepat. Pemrograman   adalah  segala  kegiatan  pembuatan  program  computer.

Kemudian  terdapat  pula  istilah   bahasa  pemrograman   yang  berarti  bahasa  yang digunakan dalam pembuatan program komputer. Berdasarkan  pengertian  algor itma  dan  pemrograman,  maka  dapat  dikatakan bahwa  progr am  merupakan  hasil  penerapan  dari  algoritma- algoritma.  Akan  tetapi, dalam  buku  ini  tidak dibahas  materi  mengenai  pembuatan  program  komputer.  Buku ini  memfokuskan teknik-teknik pembuatan  algoritma  itu  sendir i.  Nama  mata  kuliah Algor itma dan Pemrogr aman dalam hal ini berarti mempelajari pembuatan algoritma- algoritma yang dapat diterapkan dalam pemrograman.

Tipe-tipe Algoritma Berdasarkan Format Penulisan

Algoritma  adalah  independen  terhadap  bahasa  pemr ograman  tertentu,  artinya algoritma  yang  telah  dibuat  tidak  boleh  hanya  dapat  diterapkan  pada  bahasa pemrograman  tertentu.  Penulisan  algoritma  tidak  ter ikat  pada  suatu  aturan  tertentu, tetapi harus jelas maksudnya untuk tiap langkah algoritmanya. Namun pada dasar nya algoritma dibagi menjadi beberapa macam berdasarkan for mat penulisannya, yaitu:

 Deskriptif

Algoritma  bertipe  deskriptif  maksudnya  adalah  algoritma  yang  ditulis  dalam bahasa manusia sehari- hari (misalnya bahasa Indonesia atau bahasa Inggris) dan dalam bentuk  kalimat.  Setiap  langkah  algoritmanya  diterangkan  dalam  satu  atau  beberapa kalimat.

Sebagai contoh misalnya algoritma menentukan bilangan terbesar dari 3 bilangan berikut ini:

Algoritma Menentukan_bilangan_terbesar_dari_3_bilangan

  • Meminta input 3 bilangan dari user, misalkan bilangan a, b, dan c.
  • Apabila  bilangan  a  lebih besar  dari  b  maupun  c,  maka  bilangan  a merupakan bilangan terbesar.
  • Jika  tidak  (bilangan  a tidak  lebih  besar  dari  b  atau  c)  berarti bilangan  a  sudah  pasti  bukan  bilangan  terbesar.  Kemungkinannya tinggal  bilangan  b  atau  c.  Apabila  bilangan  b  lebih  besar  dari  c, maka  b  merupakan  bilangan  terbesar.  Sebaliknya  apabila  bilangan  b tidak lebih besar dari c, maka bilangan c merupakan yang terbesar.
  • Selesai.

Flow Chart (Diagram Alir)

Selain dalam bentuk tulisan, algoritma juga dapat ditulis dalam  bentuk diagram- diagram dengan anak panah sebagai penunjuk urutan langkah algoritmanya. Algor itma yang ditulis dengan simbol-simbol demikian yang dinamakan  flow chart .

Mengenai  lambang- lambang  yang  digunakan  akan  dibahas  pada  bagian selanjutnya. Sekarang diberikan suatu contoh algoritma menentukan bilangan terbesar dar i 3 bilangan seperti yang dicontohkan sebelumnya, tetapi ditulis dalam bentuk flow chart.

 Pseudocode

Pseudo  berarti imitasi dan  code  ber arti kode yang dihubungkan dengan instruksi yang  ditulis  dalam  bahasa  komputer  (kode  bahasa  pemrograman).  Apabila diterjemahkan  secar a  bebas,  maka  pseudocode  berarti  tiruan  atau  imitasi  dari  kode bahasa pemrograman. Pada  dasarnya,  pseudocode  merupakan  suatu  bahasa  yang  memungkinkan programmer untuk berpikir terhadap per masalahan yang harus dipecahkan tanpa harus memikirkan   syntax   dar i  bahasa  pemrogr aman  yang  tertentu.  Tidak  ada  aturan penulisan   syntax   di  dalam  pseudocode.  Jadi  pseudocode  digunakan  untuk menggambarkan logika urut-urutan dari program tanpa memandang bagaimana bahasa pemrogramannya.

Walaupun pseudocode tidak ada aturan penulisan syntax, di dalam buku ini akan diberikan  suatu aturan-aturan  penulisan syntax yang cukup  seder hana  agar  pembaca dapat  lebih  mudah  dalam  mempelajari algoritma-algor itma  yang  ada  di  dalam  buku ini.  Pseudocode  yang  ditulis  di  dalam  buku  ini  akan  menyerupai  (meniru)  syntax- syntax dalam bahasa Pascal. Namun dibuat sesederhana mungkin sehingga tidak akan ada  kesulitan  bagi  pembaca  untuk  memahami  algoritma- algor itma  dalam  buku  ini walaupun pembaca belum pernah mempelajar i bahasa Pascal.

Contoh  algoritma  menentukan  bilangan  terbesar  dar i  tiga  bilangan  yang  ditulis dalam bentuk pseudocode bergaya buku ini.

  Struktur Kendali Perulangan

Perulangan :

 perulangan data atau yang biasa disebut dengan “looping” adalah proses yang dilakukan secara berulang-ulang sampai batas yang ditentukan. Biasanya bila dalam perulangan tersebut tidak disertakan batasnya maka syntax akan error karena proses itu akan berulang terus hingga tak terhingga sementara variabel dalam komputer masih terbatas.

Jenis :

  1. FOR

Syntax :  for (inisialisasi ; syarat ; penambahan) {

pernyataan}

inisialisasi        : keadaan awal dari variabel control

syarat               : ekspresi relasi yang merupakan kondisi

penambahan    : pengatur perubahan nilai variabel control

Contoh :

 for (i=0;i<10;i++)

{

p=2+i;

2.WHILE

Syntax :  while (kondisi){

pernyataan}

Contoh :

i=0

while (i<10)

{

p=2+i;

i++;

}

3. DO – WHILE

Syntax :  do {

pernyataan}

while (kondisi);

Contoh :

i=0

do

{

i++;

}

while (i<10)

Perbedaan antara FOR, WHILE, dan DO-WHILE :

 For : untuk mengulang suatu proses yang telah diketahui jumlahnya.

While : Pre Tested Loop untuk mengulang suatu proses yang belum diketahui jumlahnya. Pengecekan kondisi akan dilakukan terlebih dahulu. Jika kondisi masih bernilai true, maka looping akan terus berlanjut.

Do-while : Post Tested Loop untuk mengulang suatu proses yang belum diketahui jumlahnya. Instruksi akan dijalankan lebih dahulu, kemudian dilakukan pengecekan kondisi apabila masih bernilai true maka looping akan terus berlanjut.

Makna lainya yang sama :

PERULANGAN / LOOP

Struktur Perulangan digunakan untuk mengulang sekumpulan perintah sesuai dengan kondisi yang diberikan. Proses perulangan biasanya digunakan untuk mengulang proses pemasukan data, mengulang proses perhitungan dan mengulang untuk proses penampilan hasil pengolahan data, dengan jumlah tertentu jika sebuah kondisi belum terpenuhi.

Pada bahasa pemrograman, perulangan proses ditangani dengan suatu mekanisme yang dinamakan dengan nama loop. Dengan loop, suatu proses yang berulang dapat diimplementasikan dengan menggunakan statement-statement yang pendek, tanpa harus menuliskan statemen berulang-ulang.

Ada 3 (tiga) cara untuk melakukan perulangan di C++ yaitu :

For statement

While statement

Do while statement

PENJELASAN

  1. For Statement

Ini adalah statement perulangan yang paling sering digunakan. Statement for memiliki 3 parameter, yaitu nilai awal (initial value), tes kondisi yang menentukan akhir loop, dan penentu perubahan nilai.

Bentuk umum :

For (<init-exp> ; <test-exp> ; <inc/dec-exp> )

Statement ;

Keterangan :

Init-exp : ekspresi yang digunakan untuk melakukan inisialisasi terhadap variable-variabel tertentu, terutama variable yang digunakan untuk melakukan iterasi. Init-exp dapat berupa ekspresi maupun pendefinisian variable.

Test-exp : ekspresi yang memegang control terhadap proses perulangan tersebut, pada bagian ini akan ditentukan apakah proses perulangan akan tetap berlangsung atau tidak.

Inc/dec-exp : digunakan untuk mengatur perubahan nilai variable. Umumnya nilai variable tersebut bertambah / berkurang 1 (satu)

  1. WHILE STATEMENT

Pernyataan while adalah pernyataan yang berguna untuk memproses suatu pernyataan atau memproses pernyataan beberapa kali. Pernyataan atau aksi akan di ulang jika kondisi bernilai benar dan jika salah maka keuar dari blok perulangan (loop)

Bentuk umum While :

<Inisialisasi>

while (kondisi)

{

Pernyataan ;

}

  1. DO WHILE STATEMENT

Perulangan akan dilakukan minimal 1x terlebih dahulu, kemudian baru dilakukan pengecekan terhadap kondisi, jika kondisi benar maka perulangan masih akan tetap dilakukan. Perulangan dengan do…while() akan dilakukan sampai kondisi false.

Perbedaan dengan while statement adalah : pada do while kondisi akan dievaluasi setelah dilakukan statement/proses. Selain itu pada do while minimal akan dilaksanakan 1 (satu) kali statement/instruksinya.

Struktur Kondisi – Percabangan

Dalam pemrograman C++ dikenal 2(dua) buah jenis struktur yang digunakan untuk mengimplementasikan suatu percabangan, yaitu dengan menggunakan struktur if dan struktur switch.

statement-statement yang terdapat dalam sebuah blok percabangan akan dieksekusi hanya jika kondisi yang didefinisikan terpenuhi (bernilai benar “true”), artinya jika kondisi tidak terpenuhi (nilai salah “false”), maka statement-statement tersebut juga tidak ikut dieksekusi atau dengan kata lain akan diabaikan oleh compiler.

 

  1. Pemilihan Menggunakan Keyword If
  1. Struktur satu Kondisi

Struktur ini merupakan struktur yang paling sederhana karena hanya melibatkan satu buah ekspresi yang akan diperiksa. bentuk umum dari struktur percabangan yang memiliki satu kondisi adalah sebagai berikut:

// Jika terdapat lebih dari statement

if (kondisi) {

statement1;

statement2;

}

// jika hanya terdapat satu statement, dapat ditulis seperti di bawah:

if (kondisi) statement;

  1. Struktur Dua Kondisi

Struktur percabangan jenis ini sedikit lebih kompleks bila dibandingkan dengan struktur yang hanya memiliki satu buah kondisi. sebenarnya konsepnya sangat sederhana, yaitu pada struktur jenis ini terdapat sebuah statemen khusus yang berguna untuk mengatasi kejadian apabila kondisi yang didefinisikan tersebut tidak terpenuhi (bernilai salah “false”). adapun bentuk umum dari struktur percabangan jenis ini adalah sebagai berikut:

if (kondisi) {

statement_jika_kondisi_terpenuhi;

} else {

statement_jika_kondisi_tidak_terpenuhi;

}

  1. Struktur Tiga Kondisi

Percabangan jenis ini merupakan perluasan dari struktur yang memiliki dua kondisi di atas, yaitu dengan menambahkan satu atau lebih kondisi ke dalamnya. bentuk umum dari percabangan ini adalah sebagai berikut:

if(kondisi1) {

statement jika_kondisi1 terpenuhi;

} else if (kondisi2) {

statement jika_kondisi2 terpenuhi;

} else if (kondisi3) {

statement jika_kondisi3 terpenuhi;

else {

statement jika_semua kondisi diatas tidak terpenuhi;

}

Struktur Program C++

Cara terbaik untuk belajar pemrograman adalah membuat program. Lihatlah program di bawah ini:

//Program pertama dalam bahasa C++

#include <iostream>

using namespace std;

int main() {

cout << “Hello World!!” << endl;

return 0;

}

Program tersebut adalah sebuah program sederhana yang ditulis ketika pertama kali belajar pemrograman, dan hasilnya adalah menampilkan kalimat “Hello World!!” di layar. Meskipun terlihat sederhana, tapi program ini mengandung dasar-dasar elemen dalam pemrograman C++. Mari kita pelajari baris perbaris:

//Program pertama dalam bahasa C++

Baris ini adalah komentar mengenai program yang ditulis. Semua baris yang dimulai dengan dua tanda garis miring (//) dianggap sebagai komentar, dan tidak berpengaruh apa-apa terhadap program. Programmer bisa menggunakan komentar untuk memberikan penjelasan singkat mengenai kode yang ditulis atau algoritma dari kode yang ditulis tersebut.

#include <iostream>

Baris yang dimulai dengan tanda (#) adalah pengarah untuk preprocessor. Baris ini bukanlah baris kode yang mengandung instruksi seperti biasanya, tapi baris ini sebagai pertanda kepada prepocessor compiler. Dalam hal ini, pengarah #include <iostream> menginstruksikan kepada prepocessor untuk menyertakan standar file iostream. File khusus ini (iostream) mengandung deklarasi dari standar library input output di C++, dan kita menyertakan file ini (iostream) karena kita akan menggunakan fungsi-fungsi yang terkandung di dalamnya di dalam program kita selanjutnya.

using namespace std;

Semua elemen dari library standar C++ dideklarasikan di dalam sesuatu yang disebut namespace, dengan nama std. Jadi, untuk bisa memanfaatkan fungsi dari library tersebut, kita deklarasikan dengan perintah ini, bahwa kita akan menggunakan entitas-entitas tersebut. Baris ini sering ditemui di program C++ yang menggunakan library standar.

int main ()

Baris ini adalah awal dari definisi fungsi utama. Fungsi utama dalam C++ harus diberi nama main. Fungsi main adalah titik awal eksekusi dari semua program C++. Walaupun kita mendefinisikan fungsi sebelum definisi fungsi main, semua perintah yang didefinisikan didalam fungsi main akan selalu dieksekusi terlebih dahulu. oleh karena itu, semua progam C+ harus memiliki satu fungsi main.

Sintaks main diikuti dengan sepasang tanda kurung ( () ). Ini karena mengikuti aturan deklarasi fungsi dalam C++. Sebagai alternatif, di dalam tanda kurung ini bisa diberi beberapa parameter. Seteleh tanda kurung ini, kita akan melihat bagian utama dari fungsdi yang diapit tanda kurung kurawal ( {} ). Apa yang ada di dalam tanda kurung kurawal ini adalah apa yang akan dilakukan fungsi ketika dieksekusi.

cout << “Hello World!”;

Baris ini adalah sebuah statement dalam bahasa C++. Statement adalah sebuah instruksi sederhana yang benar-benar bisa memberikan efek pada program. Dalam program di atas, hanya statement inilah yang memberikan hasil yang nyata terlihat, yaitu mencetak tulisan “Hello World!” di layar.

cout adalah nama dari perintah output standar dalam C++, sehingga arti dari seluruh baris adalah untuk memberikan kepada output sederetan karakter, dalam hal ini urutan karakter “hello World!”, yang biasanya output adalah layar. dideklarasikan di dalam standart file iostreaMm dalam namespace std, karena itulah kita perlu meng-include file iostream tersebut. Perhatikan bahwa kita mengakhiri statement dengan tanda titik kurung atau semicolon ( ; ). Karakter ini digunakan untuk menandai akhir dari sebuah statement dan bahkan karakter ini harus ada disetiap akhir dari statement dalam program C++ (salah satu error syntax yang paling sering adalah tidak menuliskan karakter ini di akhri statement).

return 0;

Statement return akan menyelesaikan fungsi utama. return bisa diikuti dengan code return. Sebuah code return bernilai 0 dalam fungsi main secara umum berarti program bekerja sesuai dengan yang diharapkan, tanpa ada error dalam proses eksekusi. Cara ini adalah cara yang paling sering digunakan untuk mengakhiri program C++.

Seperti yang telah dijelaskan di atas, tidak semua baris dari progam ini melakukan aksi ketika progam dieksekusi. Ada baris yang hanya memberikan komentar (baris yang dimulai dengan //). Ada baris dengan pengarah untuk preprocessor compiler (baris yang dimulai dengan #). Kemudian ada baris yang merupakan awal dari deklarasi sebuah fungsi( fungsi main) dan ada baris yang merupakan statement, dimana semuanya terdapat diantara sebuah blok yang dibatasi dengan kurung kurawal ({}) dari fungsi main.

Program di atas sudah diatur sedemikian rupa sehingga mudah dibaca, tetapi dalam C++, tidak ada aturan khusus tentang bagaimana memisahkan instruksi dalam baris yang berbeda. Sebagai contoh, kita bisa saja menulis fungsi main dalam satu baris:

int main () { cout << “Hello World!”; return 0; }

Dan apabila dieksekusi akan memberikan hasil yang sama dengan program sebelumnya. Untuk pengarah preprosessor,(baris yang dimulai dengan #) tidak memerlukan tanda titk koma di setiap akhir baris, karena bukan termasuk statement. Baris-baris ini dibaca dan diproses oleh preprocessor dan tidak menghasilkan kode sendiri. Pengarah preprocessor harus dituliskan dalam baris tersendiri, dan tidak menggunakan tanda titk koma (;) di akhri baris.

Komentar bagian dari source code yang diabaikan oleh compiler, dan tidak menghasilkan apa-apa. Tujuan dari komentar hanyalah untuk menyisipkan catatan, atau penjelasan di dalam sourcecode. dalam C++ terdapat dua cara untuk menggunakan komentar:

//komentar satu baris

/*komentar dalam

satu blok baris*/

TipeData

Tipe data merupakan bagian program yang paling penting karena tipe data mempengaruhi

setiap instruksi yang akan dilaksanakan oleh computer. Misalnya saja 5 dibagi 2 bisa saja menghasilkan hasil yang berbeda tergantung tipe datanya.

Jika 5 dan 2 bertipe integer maka akan menghasilkan nilai 2, namun jika keduanya bertipe float maka akan menghasilkan nilai 2.5000000. Pemilihan tipe data yang tepat akan membuat proses operasi data menjadi lebih efisien dan efektif.

No Tipe Data Ukuran Range (Jangkauan) Format Keterangan
1 char 1 byte 128 s/d 127 %c Karakter/string
2 int 2 byte 32768 s/d 32767 %i , %d Integer/bilangan bulat
3 float 4 byte 3.4E-38 s/d 3.4E+38 %f Float/pecahan
4 double 8 byte 1.7E-308 s/d 1.7+308 %lf Pecahan presisi ganda
5 void 0 byte Tidak bertipe

Dalam bahasa C terdapat lima tipe data dasar, yaitu :

Jenis-jenis tipe data :

– Tipe data Integer

Tipe data bilangan bulat decimal yang dapat menampung angka antara -2147483648 dan 2147483647. Tipe data ini berukuran 32 bits atau 4 bytes.

– Tipe data Character

Tipe data yang hampir mirip dengan tipe data integer tetapi hanya cukup untuk menampung 1 karakter ASCII. Karena tipe data character hanya memiliki ukuran 1 byte, tipe data ini sangat sering digunakan untuk menyimpan tipe data karakter sesuai dengan namanya. Tipe data ini dikatakan ideal untuk menampung data karakter karena ukuran 1 byte cukup besar untuk menyediakan 1 slot untuk tiap karakter ASCII. Saat compile, semua tipe data karakter akan diubah ke bentuk integer kode ASCIInya.

– Tipe data Float

Float merupakan kependekan dari floating point. Tipe data ini dapat menampung bilangan real tetapi kurang presisi karena hanya dapat menyimpan single precision floating point numbers.

– Tipe data Double

Tipe data double sangat mirip dengan tipe data float tetapi tipe data double dapat menyimpan double precision floating point numbers. Biasanya memiliki ukuran 8 bytes.

– Tipe data Void

Tipe data yang tidak bertipe.

Variable

Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu di dalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap, nilai suatu

variable bisa diubah-ubah sesuai kebutuhan. Nama dari suatu variable dapat ditentukan sendiri

oleh pemrogram dengan aturan sebagai berikut :

  1. Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf.
  2. Bahasa C bersifat case-sensitive artinya huruf besar dan kecil dianggap berbeda. Jadi antara Metal, dengan metal itu berbeda.
  3. Tidak boleh mengandung spasi.
  4. Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah (underscore), seperti : $, ?, %, #, !, &, *, (, ), -, +, dsb.
  5. Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai.

Contoh penamaan yang salah : NIM, a, x, nama_mhs, f3098, f4, nilai, budi, dsb.

Contoh penamaan variable yang salah : nilai_mahasiswa, 80%mahasiswa, rata-rata, ada spasi, penting!, dsb.

Deklarasi Variable

Deklarasi diperlukan bila kita akan menggunakan pengenal (identifier) dalam program.

Identifier dapat berupa variable, konstanta dan fungsi.

Bentuk umum pendeklarasian suatu variable adalah :

Nama_tipe nama_variabel;

Contoh :

int x;

char y, huruf, nim[10];

float nilai;

double beta;

int array[5][4];

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)

  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?
    A. int funct();
    B. int funct(int x) {return x=x+1;}
    C. void funct(int) {printf( “Hello” );
    D. void funct(x) {printf( “Hello” ); }

Latihan
. Buatlah fungsi untuk menampilkan tulisan “Algoritma dan Pemrograman” sebanyak 30 kali!
. Ubahlah menjadi sebanyak n kali!
. Buatlah fungsi untuk menjumlahkan dua buah bilangan
. Tambahkanlah: mengurangi, membagi, mengkali dua buah bilangan
. Buatlah fungsi untuk menentukan bilangan terkecil dari 3 buah bilangan yang diinputkan
. Buatlah fungsi untuk mengubah nilai ke huruf (A, B, C, D, danE)
. Buatlah fungsi untuk mengubah nilai huruf ke bobotnya
. Buatlah fungsi untuk mengubah bilangan pecahan ke bilangan bulat!
. Buatlah fungsi untuk menjumlahkan deret: 1+3+5+7+… +n
. Buatlah fungsi untuk mengetahui kuadran suatu koordinat!
. Buatlah fungsi untuk menyederhanakan b/c menjadi Ab/c

Pengertian, Bentuk Umum, Contoh Progtam Array di Qbasic – Tidak jauh jauh dari hari sebelumnya yang saya share masih mengenai Qbasic, karena materi saya juga qbasic biar pada tau akan saya share beberapa option sesuai dengan judulnya.

Pengertian Array Pada QBasic
Array adalah sekumpulan data yang menggunakan nama variabel yang sama. Tiap-tiap nilai dari array disebut sebagai elemen dan memiliki index. Setiap elemen array adalah sebuah variabel juga.

Bentuk Umum Array Pada QBasic

  • Array berdimensi satu
    array satu dimensi adalah kumpulan elemen yang tersusun dalam suatu baris.  Bentuk umum : DIM NamaBarang$(50)
    DIM NamaBarang(50) AS STRING
    DIM Penyanyi(20) AS STRING * 25
  • Array berdimensi dua
    Array dua dimensi adalah array yang dapat membantu dalam pemrograman apabila array satu dimensi tidak mencukupi dalam menghasilakan suatu solusi.array dua dimensi sebenarnya adalah array yang berisi array.
  • Array dimensi banyak
    Sebuah array dimensi banyak atau multi-dimensional array didefinisikan sebagai sebuah array yang elemennya berupa array pula. Misal array B mempunyai M elemen berupa array pula, yang terdiri dari N elemen.

Contoh Program Array Pada QBasic
CLS
DIM a AS INTEGER
LOCATE 5, 23
PRINT “Menu”
LOCATE 6, 20
PRINT “1.Biodata”
LOCATE 7, 20
PRINT “2.Luas Segitiga”
LOCATE 8,20
PRINT “3.Deret”
LOCATE 9,20
PRINT “4.EXIT”
LOCATE 10, 20
INPUT “Mau Pilih Yang Mana?”, a
SELECT CASE a
CASE 1
DIM Nama AS STRING, Kelas AS STRING, NPM AS INTEGER
INPUT “Nama =”, Nama
INPUT “Kelas =”, Kelas
INPUT “NPM =”, NPM
PRINT
COLOR 1
PRINT “Nama =”; Nama
PRINT “Kelas =”; Kelas
PRINT “NPM =”; NPM
CASE 2
DIM alas, tinggi AS SINGLE
INPUT “Alas =”, a
INPUT “Tinggi =”, t
LET L = a * t / 2
COLOR 9
PRINT “Luas Segitiga = a * t / 2 =”;L
CASE 3
DIM u AS INTEGER
PRINT
INPUT “Masukan Nilai u=”, u
PRINT
FOR x = 1 TO u
FOR y = 1 TO x
COLOR 5
PRINT y:
NEXT y
PRINT
NEXT x
CASE 4
GOTO 500
END SELECT
500 END