Anda di halaman 1dari 51

Dasar Pemrograman Komputer

Pengantar Algoritma

Sutrisno Ismiarta Aknuranda Issa Arwani Adharul Muttaqin

Teknik Informatika - UB

Algoritma

Diambil dari nama ilmuwan asal Persia Al Khawarizmi (Abu Abdallah Muhammad ibn Musa Al Khawarizmi)
Al Khawarizmi: On Calculation with HinduArabic numeral system, 825M Tulisan di atas awalnya berbahasa Arab, lalu diterjemahkan ke Latin. Al Khawarizmi menjadi Algoritmi. Berkembang menjadi algorismus, yang berarti sistem bilangan desimal. Dalam bahasa Perancis di abad ke-17, algorismus menjadi algorithm, kemudian diadopsi dalam bahasa Inggris dengan nama sama. Mulai abad ke-19 istilah ini mulai memiliki arti yang agak berbeda (lihat halaman selanjutnya).

Pengantar Algoritma - TIF UB 2010

Algoritma
Algoritma adalah sekumpulan instruksi atau langkahlangkah yang jelas (unambiguous) dan terbatas untuk mencari solusi suatu masalah.
Untuk mendapatkan keluaran yang dibutuhkan dari masukan yang sah dalam waktu yang terbatas Algoritma sebenarnya cara, bukan hasil atau solusi

Problem
Algoritma Data yg diolah Komputer (Masukan/Input)
Pengantar Algoritma - TIF UB 2010

Data hasil olahan (Keluaran/Output)


3

Algoritma

Di pemrograman komputer, algoritma diimplementasikan ke dalam program komputer, yaitu:


satu set instruksi atau langkah-langkah yang dijalankan dengan komputer untuk menyelesaikan suatu masalah.

Pengantar Algoritma - TIF UB 2010

Pemodelan Komputer Sederhana COMPUTER TO COMPUTE + ER


menghitung/mengolah bilangan
mengolah data

Data yg diolah
(Masukan/Input)

Pengolah Data (Processor)


(berbasis Aritmetika dan Logika)

Data hasil olahan (Keluaran/Output)

Penyimpanan Data (Storage, e.g. memory) Pengantar Algoritma - TIF UB 2010

Tahap Pengembangan Algoritma

MASALAH / IDE

PEMECAHAN

SOLUSI / HASIL

Algoritma

Source Code

Executable Code

Pengantar Algoritma - TIF UB 2010

Tahap Pengembangan Algoritma

DEFINISI MASALAH

BUAT MODEL

RANCANG ALGORITMA

TULIS PROGRAM COMPILE Y Compile Error T Executable code: => Run Y Runtime Error T DOKUMENTASI 7

Pengantar Algoritma - TIF UB 2010

Tahap Pengembangan Algoritma

DEFINISI MASALAH

BUAT MODEL

RANCANG ALGORITMA

TULIS PROGRAM COMPILE

Masalah: Menentukan akar-akar dari suatu persamaan kuadrat.


Definisi: Persamaan kuadrat : ax2 + bx + c = 0 Data yg diperlukan : Nilai dari a, b dan c : tipe bilangan real

Error

Executable code: => Run

Error

Pengantar Algoritma - TIF UB 2010

8 DOKUMENTASI

Tahap Pengembangan Algoritma

DEFINISI MASALAH

MEMBUAT MODEL

RANCANG ALGORITMA

TULIS PROGRAM COMPILE

Model Matematika : Rumus ABC x1 = (-b + sqrt(b2 - 4ac))/2a x2 = (-b sqrt(b2 - 4ac))/2a

Error

Executable code: => Run

Error
Pengantar Algoritma - TIF UB 2010 9

DOKUMENTASI

Tahap Pengembangan Algoritma


DEFINISI MASALAH Start Masukkan a,b,c Error d = b2 4ac d<0 T x1=(-b+sqrt(d))/2a x2 =(-b-sqrt(d))/2a Cetak: x1, x2 DOKUMENTASI Stop
Pengantar Algoritma - TIF UB 2010 10

MEMBUAT MODEL

RANCANG ALGORITMA

TULIS PROGRAM COMPILE

Y Cetak: Akar imajiner

Executable code: => Run

Error

10

Tahap Pengembangan Algoritma


DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Error

Executable code: => Run

Error

DOKUMEN TASI
Pengantar Algoritma - TIF UB 2010 11

Tahap Pengembangan Algoritma

DEFINISI MASALAH

MEMBUAT MODEL

RANCANG ALGORITMA

TULIS PROGRAM COMPILE Error

Executable code: => Run

Error

DOKUMENTASI
Pengantar Algoritma - TIF UB 2010 12

Tahap Pengembangan Algoritma

DEFINISI MASALAH

MEMBUAT MODEL

RANCANG ALGORITMA

TULIS PROGRAM COMPILE Error

Executable code: => Run

Error

DOKUMENTASI
Pengantar Algoritma - TIF UB 2010 13

Tahap Pengembangan Algoritma

DEFINISI MASALAH

MEMBUAT MODEL

RANCANG ALGORITMA

TULIS PROGRAM COMPILE Error

Executable code: => Run

Error

DOKUMEN TASI
Pengantar Algoritma - TIF UB 2010 14

Tahap Pengembangan Algoritma

DEFINISI MASALAH

MEMBUAT MODEL

RANCANG ALGORITMA

TULIS PROGRAM

COMPILE
Error

Executable code: => Run

Error

DOKUMENTASI
Pengantar Algoritma - TIF UB 2010 15

Tahap Pengembangan Algoritma

DEFINISI MASALAH

MEMBUAT MODEL

RANCANG ALGORITMA

TULIS PROGRAM COMPILE Error

Executable code: => Run

Error

Pengantar Algoritma - TIF UB 2010

DOKUMENTASI
16

Penyajian Algoritma

Algoritma dapat diekspresikan dalam bentuk: Tulisan, misal: structured English, pseudocode, notasi lain Visual, misal: flow chart, activity diagram

Pengantar Algoritma - TIF UB 2010

17

Pseudocode

Outline dari sebuah program komputer Ditulis dalam bahasa Inggris atau Indonesia sederhana Kata kunci (keyword) digunakan untuk menjelaskan struktur kendali (misalnya: jika, ulangi, sampai,if,repeat, until)

Pengantar Algoritma - TIF UB 2010

18

Contoh pseudocode
Algoritma Menggunakan Kalkulator Mulai Nyalakan kalkulator Kosongkan memori kalkulator Ulangi Input harga Tekan tombol Plus (+) Sampai semua harga diinput Tampilkan total harga Matikan kalkulator Selesai
Pengantar Algoritma - TIF UB 2010 19

Contoh pseudocode

Algoritma Berangkat Kuliah

Mulai Bangun dari tempat tidur Mandi Pagi Sarapan Pagi Pergi Ke Kampus Cari Ruang Kuliah Masuk kelas untuk Kuliah Selesai
Pengantar Algoritma - TIF UB 2010 20

Contoh pseudocode
Algoritma Sarapan Pagi Mulai Ambil piring Masukkan nasi dan lauk dalam piring Ambil sendok dan garpu Ulangi Angkat sendok dan garpu Ambil nasi dan lauk Suapkan ke dalam mulut Taruh sendok dan garpu Kunyah Sampai (nasi dan lauk habis) ATAU kekenyangan Bereskan piring, sendok dan garpu Selesai
Pengantar Algoritma - TIF UB 2010 21

Flow Chart
Terminator Arah Konektor Konektor antar halaman Pemanggilan Procedure

Proses
Input/Output Dokumen

Pemilihan
Pengulangan
Pengantar Algoritma - TIF UB 2010 22

Contoh flow chart


Start Masukkan a,b,c d = b2 4ac Y d<0 T x1=(-b+sqrt(d))/2a x2 =(-b-sqrt(d))/2a Cetak Pesan Akar imajiner

Cetak x1,x2

Stop
Pengantar Algoritma - TIF UB 2010

23

Kriteria algoritma yang baik

Correctness (kebenaran)
Menghasilkan keluaran yang benar untuk masukan yang valid dalam waktu yang terbatas Mempunyai logika yang benar untuk memecahkan masalah.

Simplicity (kesederhanaan)
Mudah dipahami, mudah diprogram Indah

Efficiency (efisiensi)
Time efficiency (efisiensi waktu): seberapa cepat Space efficency (efisiensi ruang): seberapa banyak memori yang dibutuhkan

Pengantar Algoritma - TIF UB 2010

24

Kriteria algoritma yang baik


Generality (keumuman) Lain-lain


Ditulis dengan bahasa baku terstruktur sehingga tidak menimbulkan arti ganda atau ambigu, dan mudah diimplementasikan kedalam bahasa pemrograman.

Pengantar Algoritma - TIF UB 2010

25

Pseudocode (lanjutan)
Tujuh operasi dasar komputer: 1. Membaca data (input) 2. Menampilkan data (output) 3. Melakukan perhitungan aritmetika (compute) 4. Memberikan nilai ke suatu identifier (store) 5. Membandingkan dan memilih (compare and select)

6. Melakukan pengulangan (repeat/loop)


7. Procedure dan/atau Function
26

1. Membaca data

Sewaktu komputer menerima informasi atau input, maka perintah yang biasa digunakan adalah READ, GET, BACA ,INPUT atau KEYIN
Contoh: READ Bilangan GET kode_pajak BACA nama_mahasiswa

27

2. Menampilkan data

Sewaktu komputer menampilkan informasi ataupun output, maka perintah yang biasa digunakan adalah PRINT, WRITE, PUT, OUTPUT, DISPLAY ataupun CETAK Contoh: PRINT Universitas Brawijaya CETAK Dasar Pemrograman Komputer OUTPUT Total

28

3. Menghitung data

Untuk melakukan operasi aritmetika digunakan pseudocode berikut: + : penjumlahan (ADD TO) - : pengurangan (SUBTRACT FROM) * : perkalian (MULTIPLY BY) / : pembagian (DIVIDE BY) () : kurung Perintah COMPUTE, CALCULATE ataupun HITUNG juga dapat digunakan. Contoh: ADD number TO total Total = Total + number
29

4. Memberikan nilai ke identifier

Beberapa cara untuk memberikan nilai ke dalam variabel : Memberikan nilai awal dengan perintah INITIALIZE, INIT atau SET Memberikan nilai sebagai hasil dari suatu proses, dengan tanda = Menyimpan suatu nilai dengan perintah SAVE atau STORE Contoh: SET Counter TO 0 Total = Harga * Jumlah
30

5. Membandingkan dan memilih

Salah satu operasi terpenting adalah membandingkan dan memilih salah satu alternatif solusi. Keyword yang dapat digunakan : IF, THEN , ELSE, dan ENDIF Contoh IF Pilih==1 THEN Discount = 0.1 * harga ELSE Discount = 0.2 * harga ENDIF
31

6. Mengulang
Dapat menggunakan keyword WHILE dan ENDWHILE Contoh bil = 0 WHILE bil < 10 cetak bil bil = bil +1 ENDWHILE

32

7. Procedure dan/atau Function

Dibentuk dengan mengelompokkan sejumlah perintah untuk mengerjakan tugas tertentu Jarang diperkenalkan di awal pelajaran pemrograman Dalam bahasa C, sebagaimana variabel, fungsi perlu dideklarasikan (dan sebaiknya didefinisikan) sebelum dipakai Mengandung: nama fungsi, parameter, dan kembalian

Pengantar Algoritma - TIF UB 2010

33

Contoh pemakaian fungsi dalam pseudocode sederhana


Algoritma Berangkat Kuliah

Mulai Bangun dari tempat tidur Mandi Pagi bisa dilihat sbg Sarapan Pagi pemanggilan fungsi Pergi Ke Kampus Cari Ruang Kuliah Masuk kelas untuk Kuliah Selesai
Pengantar Algoritma - TIF UB 2010 34

Contoh pendefinisian fungsi dalam pseudocode sederhana


Algoritma Sarapan Pagi (definisi fungsi Sarapan Pagi) Mulai Ambil piring Masukkan nasi dan lauk dalam piring Ambil sendok dan garpu Ulangi Angkat sendok dan garpu Ambil nasi dan lauk Suapkan ke dalam mulut Taruh sendok dan garpu Kunyah Sampai (nasi dan lauk habis) ATAU kekenyangan Bereskan piring, sendok dan garpu Selesai
Pengantar Algoritma - TIF UB 2010 35

Contoh pemakaian fungsi dalam pseudocode sederhana


Algoritma Mengerjakan Soal di Papan Tulis

Mulai Bangkit dari kursi Jalan mendekati papan tulis Ambil kapur Tulis di Papan(kapur,pesan) Kembali ke kursi Selesai

bisal dilihat sbg pemanggilan fungsi

Pengantar Algoritma - TIF UB 2010

36

Contoh pemakaian fungsi dalam pseudocode sederhana


Algoritma Tulis di Papan (kapur, pesan)

Mulai Angkat kapur Tulis pesan di papan tulis dengan kapur Selesai

Pengantar Algoritma - TIF UB 2010

37

Contoh flow chart & pseudocode


Start Masukkan a,b,c d = b2 4ac Y d<0 T x1=(-b+sqrt(d))/2a x2 =(-b-sqrt(d))/2a Cetak x1,x2

READ a,b,c d = (b*b)(4*a*c) IF d<0 THEN PRINT Akar imajiner ELSE x1 = (-b+sqrt(d))/(2*a) x2 = (-b-sqrt(d))/(2*a) PRINT x1,x2 ENDIF

Cetak Pesan Akar imajiner

Stop

Pengantar Algoritma - TIF UB 2010

38

Paradigma pemrograman
Imperative Procedural
e.g. C, Pascal, Fortran, Basic

Declarative Logical
e.g. Prolog

Structured
e.g. C, Pascal, Fortran, Basic

Functional
e.g. LISP, Scheme,Objective

Object-oriented
e.g. C++, Java, Smalltalk, C#

Domain-specific
e.g. SQL,HTML,XML,CSS

Pengantar Algoritma - TIF UB 2010

39

Paradigma pemrograman Imperative vs Declarative

Imperative: Program yang imperative: mendefinisikan urutan perintah untuk dikerjakan Proses komputasi digambarkan sebagai kumpulan pernyataan yang mengubah program state Program state: keadaan atau konfigurasi informasi dalam program pada satu saat Membutuhkan algoritma yang didefinisikan eksplisit Mirip dengan paradigma bahasa mesin
Pengantar Algoritma - TIF UB 2010 40

Paradigma pemrograman Imperative vs Declarative

Declarative: Menggambarkan logika komputasi tanpa mendeskripsikan aliran kendali seperti pada imperative programming Menggambarkan komputasi apa yang harus dikerjakan, bukan bagaimana komputasi tersebut mengerjakannya Contoh:

Logical programming dengan Prolog, berhubungan dengan logika matematika, dapat digunakan untuk aplikasi kecerdasan buatan Domain-specific scripting dengan HTML, untuk mendeskripsikan apa yang ditampilkan dalam halaman web

Pengantar Algoritma - TIF UB 2010

41

Pemrograman terstruktur

Menggunakan tiga struktur kontrol, yaitu:


1. 2. 3.

Sequence (pengerjaan berurutan) Selection (pemilihan) Repetition (pengulangan)

42

Sequence

Sequence merupakan urutan pengerjaan perintah dari perintah/pernyataan pertama sampai dengan perintah/pernyataan terakhir. Umumnya program mempunyai sequence mulai dari atas ke bawah dan dari kiri ke kanan (kecuali operasi pemberian nilai, dari kanan ke kiri).

43

Contoh sequence

Contoh: Cetak Jumlah Mahasiswa Set Jumlah to 49 Cetak Tambahan mahasiswa baru Baca mhs_baru Jumlah = Jumlah + mhs_baru Cetak Jumlah Mahasiswa Cetak Jumlah

Penjelasan Urutan pengerjaan dimulai dari urutan pertama sampai dengan urutan terakhir. Jika mhs_baru diisi dengan 2, maka Jumlah yang tercetak adalah 51
44

2. Selection
Struktur kontrol selection menggambarkan pemilihan diantara diantara dua atau lebih aksi berdasarkan kondisi atau persyaratan tertentu.

Aksi pertama akan dikerjakan jika kondisi atau persyaratan tersebut bernilai benar. Jika tidak, maka aksi kedua setelah keyword else (jika ada) akan dikerjakan.
45

Contoh selection

Contoh : IF Hari==1 THEN Cetak Senin ELSE Cetak Bukan hari Senin ENDIF Penjelasan Tulisan Senin akan ditampilkan jika Hari bernilai 1, jika tidak maka tulisan Bukan hari Senin yang akan ditampilkan
46

3. Repetition

Beberapa perintah dapat diulang dengan menggunakan struktur kontrol repetition.


Perintah akan tetap diulang selama kondisi perulangan dipenuhi (i.e. bernilai benar)

47

Contoh repetition

Contoh:
bintang = 0 WHILE bintang < 5 PRINT bintang bintang = bintang + 1 ENDWHILE

48

Latihan

1. Buatlah algoritma menggunakan pseudocode untuk menghitung luas persegi panjang


2. Buatlah algoritma menggunakan pseudocode untuk mengubah satuan waktu yang diinputkan dari detik ke satuan jam dan menit 3. Buatlah algoritma menggunakan pseudocode untuk menentukan apakah bilangan yang diinput adalah bilangan ganjil atau bilangan genap.

49

Latihan
4. Buatlah algoritma menggunakan pseudocode untuk menghitung luas lingkaran. 5. Buatlah algoritma menggunakan pseudocode untuk menginput 3 buah bilangan, kemudian tentukan bilangan terbesar, terkecil, dan rata-ratanya.

50

Latihan

Ulangi latihan no. 1 s/d no. 5 diatas dengan menggunakan flowchart.

51