Title: Dasar Pemrograman Komputer
1Dasar Pemrograman Komputer
Sutrisno Ismiarta Aknuranda Issa Arwani Adharul
Muttaqin Teknik Informatika - UB
2Algoritma
- 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).
3Algoritma
- Algoritma adalah sekumpulan instruksi atau
langkah-langkah 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
Data hasil olahan
Komputer
(Keluaran/Output)
(Masukan/Input)
4Algoritma
- Di pemrograman komputer, algoritma
diimplementasikan ke dalam program komputer,
yaitu - satu set instruksi atau langkah-langkah yang
dijalankan dengan komputer untuk menyelesaikan
suatu masalah.
5Pemodelan Komputer Sederhana
COMPUTER
TO COMPUTE ER
menghitung/mengolah bilangan
mengolah data
Data yg diolah
Pengolah Data (Processor)
Data hasil olahan
(Keluaran/Output)
(Masukan/Input)
(berbasis Aritmetika dan Logika)
Penyimpanan Data (Storage, e.g. memory)
6Tahap Pengembangan Algoritma
MASALAH / IDE
PEMECAHAN
SOLUSI / HASIL
Algoritma
Source Code
Executable Code
7Tahap Pengembangan Algoritma
DEFINISI MASALAH
RANCANG ALGORITMA
BUAT MODEL
TULIS PROGRAM
COMPILE
Y
Compile Error
T
Executable code gt Run
Y
Runtime Error
T
DOKUMENTASI
8Tahap Pengembangan Algoritma
DEFINISI MASALAH
RANCANG ALGORITMA
BUAT MODEL
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 gt Run
Error
DOKUMENTASI
9Tahap Pengembangan Algoritma
DEFINISI MASALAH
MEMBUAT MODEL
RANCANG ALGORITMA
TULIS PROGRAM
COMPILE
Error
Model Matematika Rumus ABC x1 (-b sqrt(b2
- 4ac))/2a x2 (-b sqrt(b2 - 4ac))/2a
Executable code gt Run
Error
DOKUMENTASI
10Tahap Pengembangan Algoritma
10
11Tahap Pengembangan Algoritma
12Tahap Pengembangan Algoritma
DEFINISI MASALAH
MEMBUAT MODEL
RANCANG ALGORITMA
TULIS PROGRAM
COMPILE
Error
Executable code gt Run
Error
DOKUMENTASI
13Tahap Pengembangan Algoritma
DEFINISI MASALAH
MEMBUAT MODEL
RANCANG ALGORITMA
TULIS PROGRAM
COMPILE
Error
Executable code gt Run
Error
DOKUMENTASI
14Tahap Pengembangan Algoritma
RANCANG ALGORITMA
DEFINISI MASALAH
MEMBUAT MODEL
TULIS PROGRAM
COMPILE
Error
Executable code gt Run
Error
DOKUMEN TASI
15Tahap Pengembangan Algoritma
DEFINISI MASALAH
MEMBUAT MODEL
RANCANG ALGORITMA
TULIS PROGRAM
COMPILE
Error
Executable code gt Run
Error
DOKUMENTASI
16Tahap Pengembangan Algoritma
DEFINISI MASALAH
MEMBUAT MODEL
RANCANG ALGORITMA
TULIS PROGRAM
COMPILE
Error
Executable code gt Run
Error
DOKUMENTASI
17Penyajian Algoritma
- Algoritma dapat diekspresikan dalam bentuk
- Tulisan, misal structured English, pseudocode,
notasi lain - Visual, misal flow chart, activity diagram
18Pseudocode
- 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)
19Contoh 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
20Contoh pseudocode
- Algoritma Berangkat Kuliah
- Mulai
- Bangun dari tempat tidur
- Mandi Pagi
- Sarapan Pagi
- Pergi Ke Kampus
- Cari Ruang Kuliah
- Masuk kelas untuk Kuliah
- Selesai
21Contoh 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
22Flow Chart
Arah
Terminator
Proses
Konektor
Input/Output
Konektor antar halaman
Dokumen
Pemanggilan Procedure
Pemilihan
Pengulangan
23Contoh flow chart
24Kriteria 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
25Kriteria 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.
26Pseudocode (lanjutan)
- Tujuh operasi dasar komputer
- Membaca data (input)
- Menampilkan data (output)
- Melakukan perhitungan aritmetika (compute)
- Memberikan nilai ke suatu identifier (store)
- Membandingkan dan memilih (compare and select)
- Melakukan pengulangan (repeat/loop)
- Procedure dan/atau Function
271. 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
282. 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
293. 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
304. 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
315. 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 Pilih1 THEN
- Discount 0.1 harga
- ELSE
- Discount 0.2 harga
- ENDIF
326. Mengulang
- Dapat menggunakan keyword WHILE dan ENDWHILE
- Contoh
- bil 0
- WHILE bil lt 10
- cetak bil
- bil bil 1
- ENDWHILE
337. 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
34Contoh pemakaian fungsi dalam pseudocode sederhana
- Algoritma Berangkat Kuliah
- Mulai
- Bangun dari tempat tidur
- Mandi Pagi
- Sarapan Pagi
- Pergi Ke Kampus
- Cari Ruang Kuliah
- Masuk kelas untuk Kuliah
- Selesai
bisa dilihat sbg pemanggilan fungsi
35Contoh 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
36Contoh 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
37Contoh pemakaian fungsi dalam pseudocode sederhana
- Algoritma Tulis di Papan (kapur, pesan)
- Mulai
- Angkat kapur
- Tulis pesan di papan tulis dengan kapur
- Selesai
38Contoh flow chart pseudocode
- READ a,b,c
- d (bb)(4ac)
- IF dlt0 THEN
- PRINT Akar imajiner
- ELSE
- x1 (-bsqrt(d))/(2a)
- x2 (-b-sqrt(d))/(2a)
- PRINT x1,x2
- ENDIF
39Paradigma pemrograman
Imperative
Declarative
Procedural e.g. C, Pascal, Fortran, Basic
Logical e.g. Prolog
Structured e.g. C, Pascal, Fortran, Basic
Functional e.g. LISP, Scheme,Objective
Domain-specific e.g. SQL,HTML,XML,CSS
Object-oriented e.g. C, Java, Smalltalk, C
40Paradigma pemrogramanImperative 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
41Paradigma pemrogramanImperative 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
42Pemrograman terstruktur
- Menggunakan tiga struktur kontrol, yaitu
- Sequence (pengerjaan berurutan)
- Selection (pemilihan)
- Repetition (pengulangan)
43Sequence
- 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).
44Contoh 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
452. 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.
46Contoh selection
- Contoh
- IF Hari1 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
473. Repetition
- Beberapa perintah dapat diulang dengan
menggunakan struktur kontrol repetition. - Perintah akan tetap diulang selama kondisi
perulangan dipenuhi (i.e. bernilai benar)
48Contoh repetition
- Contoh
- bintang 0
- WHILE bintang lt 5
- PRINT bintang
- bintang bintang 1
- ENDWHILE
49Latihan
- 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.
50Latihan
- 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.
51Latihan
- Ulangi latihan no. 1 s/d no. 5 diatas dengan
menggunakan flowchart.