Sabtu, 21 September 2013

Dasar Pemrograman


1.                        Dasar Teori
Dasar Teori Tentang Algoritma dan Pemrograman
Dalam Mempelajari Teori Algoritma dan Pemrograman dalam matakuliah Algoritma dan Pemrograman, maka perlulah mahasiswa terlebih dahulu mengenal akan definisi-definisi masing-masing dari kata  ‘Algoritma’ serta ‘Pemrograman’.
Beberapa definisi Algoritma adalah  seperti berikut ini :
  • Pola pikir yang terstruktur yang berisi tahap-tahap penyelesaian masalah.
  • Urutan logis pengambilan keputusan untuk pemecahan masalah.
  • Urutan langkah berhingga untuk memecahkan masalah logika dan matematika
Sedangkan definisi dari Pemrograman yaitu Proses mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dengan menggunakan suatu bahasa pemrograman.
Adapun ilustrasi proses pemrograman, terlihat dalam gambar 1.1. berikut ini :
Gambar 1.1. Diagram alir Proses Pemrograman
Algoritma disusun oleh 3 bagian (blok) yang biasanya selalu ada dalam sebuah algoritma. 3 bagian itu adalah :
1.      bagian judul (header)
2.      bagian deklarasi (declaration)
3.      bagian algoritma (sebagian menyebutnya dengan deskripsi)

Ketiga bagian tersebut secara umum ditunjukkan dalam notasi algoritmik seperti di bawah:
PROGRAM nama program
{berisi judul algoritma, singkat dan jelas}
DEKLARASI
{sebagai tempat untuk mengenalkan nama atau variabel apa saja yang digunakan dan tipe datanya serta prosedur dan fungsi yang dipakai}
ALGORITMA :
{berisi langkah-langkah penyelesaian masalah}
Bagian Judul (header)
Sesuai bagiannya, kita perlu memberi judul terhadap algoritma yang kita buat. Judul sebaiknya singkat, dan jelas serta menggambarkan apa yang dilakukan oleh program. Di bawah judul, sebaiknya juga diberikan komentar singkat tentang masalah yang ingin diselesaikan itu, dan bagaimana masukan dan keluarannya.
Contohnya :
PROGRAM ucapan selamat datang
{program untuk menampilkan ucapan selamat datang kepada pengguna dengan masukan nama pengguna}
Bagian Deklarasi (declaration)
Digunakan untuk memperkenalkan semua variabel atau nama-nama yang akan terlibat dalam algoritma termasuk tipe data dan sebagainya. Apapun nama dan variabel yang digunakan dalam algoritma harus di ‘umumkan’ terlebih dahulu di bagian deklarasi ini, jika tidak, algoritma (dan program) tidak akan bisa menyelesaikan masalah. Justru malah menjadi masalah.
Contoh deklarasi adalah :
DEKLARASI
nama : string
usia : integer
Nama atau variabel adalah satu kesatuan leksikal, sehingga nama tidak boleh mengandung spasi, tanda baca, tanda operator dan sebagainya kecuali tanda “_” (garis bawah). Pada algoritma, tidak dibedakan antara huruf besar (kapital) atau huruf kecil, semuanya dianggap sama. Lebih jelasnya akan kita lihat pada posting berikutnya…





Bagian Algoritma (deskripsi)
Bagian ini adalah inti dari program untuk menyelesaikan masalah. Berisi instruksi-instruksi untuk pemecahan masalah dengan menggunakan notasi pseudo-code. Tidak perlu berpanjang lebar, kita lihat saja contohnya.
ALGORITMA :
read(namausia)
write(‘Selamat Datang ‘, nama)
write(‘Usia Anda sekarang adalah ‘, usia, ‘tahun’)
Nah, kalau ketiga bagian di atas digabungkan menjadi 1 kesatuan algoritma akan menjadi :
PROGRAM ucapan selamat datang
{program untuk menampilkan ucapan selamat datang kepada pengguna dengan masukan nama pengguna}
DEKLARASI
nama : string
usia : integer
ALGORITMA :
read(namausia)
write(‘Selamat Datang ‘, nama)
write(‘Usia Anda sekarang adalah ‘, usia, ‘tahun’)

Karakteristik Algoritma
  1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. Sebagai contoh, dalam algoritma Euclidean, pada langkah 1, jika n = 0, algoritma berhenti, jika n tidak = 0 maka nilai n selalu berkurang sebagai akibat dari langkah 2 dan 3, dan pada akhirnya nilai n = 0. Program yang tidak pernah berhenti mengindikasikan bahwa program tersebut berisi algoritma yang salah.
  2. Setiap langkah harus di defenisikan dengan tepat dan tidak berarti dua (ambiguous). Pembaca harus mengerti apa yang di maksud dengan “m” dan “n” adalah bilangan bulat tak negatif (-). Contoh lainnya pernyataan ” bagilah p dengan beberapa sejumlah bilangan bulat positif” dapat bermakna ganda. Berapakah yang di maksud dengan “berapa” ? Algoritma menjadi jelas jika langkah tersebut di tulis “bagilah p dengan 10 buah bilangan bulat positif”
  3. Algoritma memiliki nol atau lebih masukan (input). Masukan ialah besaran yang diberikan kepada algoritma untuk di proses. Algoritma Euclidean mempunyai dua buah masukan, yaitu m dan n.
  4. Algoritma mempunya nol atau lebih keluaran (output). Keluaran dapat berupa pesan atau besaran yang memiliki hubungan dengan masukan. Algoritma Euclidean mempunyai 1 keluaran, yaitu m pada langkah 1, yang merupakan pembagi bersama terbesar dari kedua bilangan.
  5. Algoritma harus sangkil (effective). Setiap langkah harus sederhana sehingga dapat di kerjakan dalam sejumlah waktu yang masuk akal.

FLOWCHART
Flowchart adalah penggambaran secara grafik dari langkah-langkah dan
urut-urutan prosedur dari suatu program.
Flowchart berfungsi :
•    untuk memudahkan perancangan alur urutan logika suatu program,
•    memudahkan pelacakkan sumber kesalahan program,
•    untuk menerangkan logika program.
•    menolong analis dan programmer untuk memecahkan masalah kedalam segmen-segmen yang lebih kecil
•    menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian.

Flowchart biasanya mempermudah penyelesaian suatu masalah khususnya
masalah yang perlu dipelajari dan dievaluasi lebih lanjut.

PEDOMAN-PEDOMAN DALAM MEMBUAT FLOWCHART
Bila seorang analis dan programmer akan membuat flowchart, ada beberapa  
petunjuk yang harus diperhatikan, seperti :
a.    Flowchart digambarkan dari halaman atas ke bawah dan dari kiri ke
       kanan.
b.    Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan
       definisi ini harus dapat dimengerti oleh pembacanya.
c.    Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas.
d.    Setiap langkah dari aktivitas harus diuraikan dengan menggunakan
       deskripsi kata kerja, misalkan “menghitung luas lingkaran”.
e.    Setiap langkah dari aktivitas harus berada pada urutan yang benar.
f.    Lingkup dan range dari aktifitas yang sedang digambarkan harus
      ditelusuri dengan hati-hati. Percabangan-percabangan yang memotong
      aktivitas yang sedang digambarkan tidak perlu digambarkan pada
      flowchart yang sama. Simbol konektor harus digunakan dan
      percabangannya diletakan pada halaman yang terpisah atau hilangkan
      seluruhnya bila percabangannya tidak berkaitan dengan sistem.
g.   Gunakan simbol-simbol flowchart yang standar.

JENIS-JENIS FLOWCHART
 
Flowchart terbagi atas lima jenis, yaitu :
  • Flowchart Sistem (System Flowchart)
  • Flowchart Paperwork / Flowchart Dokumen (Document Flowchart)
  • Flowchart Skematik (Schematic Flowchart)
  • Flowchart Program (Program Flowchart)
  • Flowchart Proses (Process Flowchart)
FLOWCHART SISTEM

Flowchart Sistem merupakan bagan yang menunjukkan alur kerja atau apa yang sedang dikerjakan di dalam sistem secara keseluruhan dan menjelaskan urutan dari prosedur-prosedur yang ada di dalam sistem. Dengan kata lain, flowchart ini merupakan deskripsi secara grafik dari urutan prosedur-prosedur yang terkombinasi yang membentuk suatu sistem. Flowchart Sistem terdiri dari data yang mengalir melalui sistem dan proses yang mentransformasikan data itu. Data dan proses dalam flowchart sistem dapat digambarkan secara online (dihubungkan langsung dengan komputer) atau offline (tidak dihubungkan langsung dengan komputer, misalnya mesin tik, cash register atau kalkulator).

FLOWCHART PAPERWORK / FLOWCHART DOKUMEN
Flowchart Paperwork menelusuri alur dari data yang ditulis melalui sistem. Flowchart Paperwork sering disebut juga dengan Flowchart Dokumen. Kegunaan utamanya adalah untuk menelusuri alur form dan laporan sistem dari satu bagian ke bagian lain baik bagaimana alur form dan laporan diproses, dicatat dan disimpan.

FLOWCHART SKEMATIK
 Flowchart Skematik mirip dengan Flowchart Sistem yang menggambarkan
suatu sistem atau prosedur. Flowchart Skematik ini bukan hanya
menggunakan simbol-simbol flowchart standar, tetapi juga menggunakan
gambar-gambar komputer, peripheral, form-form atau peralatan lain yang
digunakan dalam sistem.
Flowchart Skematik digunakan sebagai alat komunikasi antara analis
sistem dengan seseorang yang tidak familiar dengan simbol-simbol
flowchart yang konvensional. Pemakaian gambar sebagai ganti dari
simbol-simbol flowchart akan menghemat waktu yang dibutuhkan oleh
seseorang untuk mempelajari simbol abstrak sebelum dapat mengerti
flowchart.

FLOWCHART PROGRAM

Flowchart Program dihasilkan dari Flowchart Sistem. Flowchart Program merupakan keterangan yang lebih rinci tentang bagaimana setiap langkah program atau prosedur sesungguhnya dilaksanakan. Flowchart ini menunjukkan setiap langkah program atau prosedur dalam urutan yang tepat saat terjadi. Programmer menggunakan flowchart program untuk menggambarkan urutan instruksi dari program komputer. Analis Sistem menggunakan flowchart program untuk menggambarkan urutan tugas-tugas pekerjaan dalam suatu prosedur atau operasi.

FLOWCHART PROSES
Flowchart Proses merupakan teknik penggambaran rekayasa industrial
yang memecah dan menganalisis langkah-langkah selanjutnya dalam
suatu prosedur atau sistem.


SIMBOL-SIMBOL FLOWCHARTSimbol-simbol flowchart yang biasanya dipakai adalah simbol-simbol
flowchart standar yang dikeluarkan oleh ANSI dan ISO.






Psoudecode
Pseudocode adalah cara untuk menuliskan sebuah algoritma secara high-level (level tingkat tinggi). Biasanya Pseudocode dituliskan dengan kombinasi Bahasa Inggris dan notasi matematika. Biasanya sebuah Pseudocode tidak terlalu detail dibandingkan dengan program. Isu-isu detail dalam program yang sifatnya teknis tidak dibahas di dalam Pseudocode.
Komponen-komponen Pseudocode, antara lain:

1. Variabel
Merupakan tempat penyimpanan sebuah nilai.
 2. Perulangan (Loop)
Teknik for-do
Teknik repeat-until
Teknik while-do
3. Percabangan (branch)
Teknik if-then
Teknik select-case
4. Modul
Procedure/Sub
Function.
Teknik Rekursif

Contoh Pseudocode, sederhana:
1. Algoritma untuk menampilkan 7 buah simbol #.
for i=1 to 7 do
display ”#”
end for

2. Algoritma untuk menghitung faktorial dari N.
iTampung=1
for i=1 to N do
iTampung=iTampung*i
end for
display ”Faktorial dari ”,N,” adalah ”,iTampung,NL

3. Algoritma untuk menampilkan bilangan Fibonacci.
f1=0
f2=1
for i=1 to 8 do
iFibo=f1+f2
display ”Angka ke-”,i,” adalah ”,iFibo,NL
f1=f2
f2=iFibo
end for


Bahasa Pemrograman
Bahasa pemrograman, atau sering diistilahkan juga dengan bahasa komputer, adalah teknik komando/instruksi standar untuk memerintah komputer. Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi.
Menurut tingkat kedekatannya dengan mesin komputer, bahasa pemrograman terdiri dari:
  1. Bahasa Mesin, yaitu memberikan perintah kepada komputer dengan memakai kode bahasa biner, contohnya 01100101100110
  2. Bahasa Tingkat Rendah, atau dikenal dengan istilah bahasa rakitan (bah.Inggris Assembly), yaitu memberikan perintah kepada komputer dengan memakai kode-kode singkat (kode mnemonic), contohnya MOV, SUB, CMP, JMP, JGE, JL, LOOP, dsb.
  3. Bahasa Tingkat Menengah, yaitu bahasa komputer yang memakai campuran instruksi dalam kata-kata bahasa manusia (lihat contoh Bahasa Tingkat Tinggi di bawah) dan instruksi yang bersifat simbolik, contohnya {, }, ?, <<, >>, &&, ||, dsb.
  4. Bahasa Tingkat Tinggi, yaitu bahasa komputer yang memakai instruksi berasal dari unsur kata-kata bahasa manusia, contohnya begin, end, if, for, while, and, or, dsb.
Sebagian besar bahasa pemrograman digolongkan sebagai Bahasa Tingkat Tinggi, hanya bahasa C yang digolongkan sebagai Bahasa Tingkat Menengah dan Assembly yang merupakan Bahasa Tingkat Rendah.


2.  Langkah-langkah Pemecahan Masalah
Game Logika 1  :
-          Sediakan gelas C
-          Gelas A tuang ke gelas C
-          Gelas B Tuang ke gelas A
-          Gelas C tuang k Gelas B
-           FINISHED..!!
Game Logika 2  :
-          Ambil air dengan ember  5L lalu tuang ke ember 7L
-          Isi kembali ember 5L lalu tuang ke ember 7L dan sisa 3L pada ember 5l
-          Ember 7L dibuang dan diisi dengan ember 5L dengan sisa 3L
-          Isi kembali ember 5L kemudian tuang ke ember  7L dan menyisakan 1L
-          Tuang ember 5L dengan sisa 1L pada ember 7L
-          Isikan kembali ember 5L dan tuang ke ember 7L yang berisi 1L
-          YOU’VE GOT IT..!!
Game logika 3   :
-          Orang ke 1 dan 6 menyebrang, orang ke 1 kembali membawa lampu
-          Orang ke 1 dan 3 menyebrang, orang ke 1 kembali membawa lampu
-          Orang ke 8 dan 12 menyebrang, giliran orang ke 3 membawa lampu
-          Orang ke 1 dan 3 mnyebrang
-          PERFECT..!!
Game logika 4   :
-          2 kanibal menyebrang turun 1 dan 1 kembali membawa perahu
-          Menjemput 1 kanibal, menyebrang 2 kanibal turun 1 kembali 1
-          2 rahib menyebang turun 1, kembali dengan 1 kanibal dan 1 rahib
-          2 rahib menyebrang turun semua diganti oleh 1 kanibal
-          2 kanibal menyebrang turun 1 kembali 1
-          2 kanibal menyebrang turun semua
-          BRAVO..!!
Game logika 5   :
-          Kambing menyebrang dan petani kembali
-          Anjing menyebrang, petani kembali dengan kambing
-          Rumput menyebrang, petani kembali
-          Kambing menyebrang bersama petani
-          WELL DONE..!!

3.  Referensi
Dasar Teori Tentang Algoritma dan Pemrograman
KARATERISTIK ALGORITMA
FLOWCHART
Psoudecode
Bahasa Pemrograman