Mata kuliah Algoritma dan Pemrograman bertujuan untuk memberikan pemahaman konsep algoritma dan penerapannya dalam pembuatan program menggunakan bahasa pemrograman tertentu. Mahasiswa akan mempelajari logika berpikir komputer, prinsip kerja program, dan membuat program sederhana menggunakan bahasa C.
Hingga saat ini, komputer digunakan di hampir semua bidang kehidupan
manusia, mulai dari pendidikan, bisnis, sampai dengan permainan. Komputer
sendiri tidak lepas dari pemrogaman computer, karena kita harus memberikan
serangkaian instruksi kepada komputer agar dapat memecahkan suatu masalah.
Dalam memberikan instruksi kepada komputer untuk memecahkan masalah inilah
yang dinamakan pemrogaman komputer. Adapun langkah-langkah pemrogaman
komputer adalah sebagai berikut: mendefinisikan masalah, menentukan solusi,
memilih algoritma, menulis program, menguji program, menulis dokumentasi,
serta merawat program. Sebelum membuat program, kita wajib membuat Flow
Chart atau Pseudocode, guna memudahkan kita untuk memahami algoritma dalam
membuat program. Program yang ditulis juga harus jelas, nyata, dan lengkap.
http://agsurono.blogspot.com/search?q=logika
Hingga saat ini, komputer digunakan di hampir semua bidang kehidupan
manusia, mulai dari pendidikan, bisnis, sampai dengan permainan. Komputer
sendiri tidak lepas dari pemrogaman computer, karena kita harus memberikan
serangkaian instruksi kepada komputer agar dapat memecahkan suatu masalah.
Dalam memberikan instruksi kepada komputer untuk memecahkan masalah inilah
yang dinamakan pemrogaman komputer. Adapun langkah-langkah pemrogaman
komputer adalah sebagai berikut: mendefinisikan masalah, menentukan solusi,
memilih algoritma, menulis program, menguji program, menulis dokumentasi,
serta merawat program. Sebelum membuat program, kita wajib membuat Flow
Chart atau Pseudocode, guna memudahkan kita untuk memahami algoritma dalam
membuat program. Program yang ditulis juga harus jelas, nyata, dan lengkap.
http://agsurono.blogspot.com/search?q=logika
3. Kompetensi Matakuliah
ī´ Mahasiswa mampu:
ī´ menjelaskan logika berpikir komputer (computational
thinking),
ī´ menjelaskan alasan-alasan komputer dapat mengerjakan
perintah-perintah yang diberikan,
ī´ menjelaskan prinsip kerja program,
ī´ menggambarkan logika jalannya program secara tertulis
dengan algoritma (pseudo code) dan dilengkapi dengan
diagram alir (flow chart) menggunakan suatu bahasa
pemrograman tertentu
ī´ menjelaskan konsep pemrograman terstruktur
ī´ membuat program sederhana dengan bahasa C
5. Mengapa Belajar Algoritma dan
Pemrograman?
ī´ Untuk menulis kode dalam bahasa yang dimengerti
komputer
ī´ Untuk melatih logika berpikir
ī´ Untuk dasar matakuliah lain di Teknik Informatika dan
Sistem Informasi
6. Apakah belajar programming
itu sulit?
ī´ Hanya butuh waktu / âjam terbangâ
ī´ Hanya butuh semangat dan kemauan
ī´ Hanya butuh sering mencoba / latihan!
ī´ Kuncinya latihan dan diskusi!
7. Referensi
ī´ Referensi
ī´ Algoritma dan Pemrograman dalam Bahasa
Pascal dan C (Buku 1), Rinaldi Munir, Informatika
Bandung
ī´ Algoritma dan Pemrograman dalam Bahasa
Pascal dan C (Buku2), Rinaldi Munir&Leoni Lidya,
Informatika Bandung
11. Definisi Program
ī´ Perwujudan atau implementasi algoritma yang ditulis dalam bahasa
pemrograman tertentu
ī´ A computer program is just a collection of the instructions necessary
to solve a specific problem
ī´ Program adalah kumpulan instruksi atau perintah yang disusun
sedemikian rupa sehingga mempunyai urutan nalar yang tepat untuk
menyelesaikan suatu persoalan.
ī´ Adalah kumpulan instruksi-instruksi tersendiri yang biasanya disebut
source code yang dibuat oleh programmer (pembuat program)
ī´ Instruksi (statement) yang dimaksud adalah syntax (cara penulisan)
sesuai dengan bahasa pemrograman yang digunakan yang
mempunyai komponen-komponen : Input, Output, Proses,
Percabangan dan Perulangan.
12. Algoritma
ī´ Penemunya adalah seorang ahli matematika dari
uzbekistan yang bernama Abu Abdullah Muhammad Ibn
Musa al-Khwarizmi (770-840).
ī´ Di literatur barat dia lebih terkenal dengan sebutan
Algorizm. Panggilan inilah yang kemudian dipakai untuk
menyebut konsep algorithm yang ditemukannya. Dalam
bahasa Indonesia kita kemudian menyebutkannya sebagai
algoritma.
ī´ Algoritma adalah kunci dari bidang ilmu komputer, karena
banyak bidang di bawah ilmu komputer yang lahir
berdasarkan konsep algoritma ini.
ī´ Pada hakekatnya algoritma juga adalah kunci dari
kehidupan kita.
ī´ Cara membuat masakan (resep masakan) adalah juga
sebuah contoh nyata dari algoritma.
13. Algoritma
ī´ adalah logika, metode dan tahapan
(urutan) sistematis yang digunakan untuk
memecahkan suatu permasalahan.
ī´urutan langkah logis untuk
menyelesaikan masalah tertentu
14. Algoritma
ī´Ketika manusia berusaha memecahkan
masalah, metode atau teknik yang
digunakan untuk memecahkan masalah
itu ada kemungkinan bisa banyak (tidak
hanya satu).
ī´Dan kita memilih mana yang terbaik
diantara teknik-teknik itu.
ī´Hal ini sama juga dengan algoritma,
yang memungkinkan suatu
permasalahan dipecahkan dengan
metode dan logika yang berlainan.
15. Komunikasi Manusia dan
Komputer
ī´ Proses komunikasi antara manusia dengan komputer adalah sebagai
berikut:
ī´ Manusia mendesain Algoritma
ī´ Manusia menterjemahkan Algoritma tersebut ke dalam bahasa
pemrograman yang dipilih sehingga menjadi sebuah program
ī´ Komputer menjalankan program hasil penterjemahan algoritma menjdi
bahasa pemrograman diatas
ī´ Komputer mengeluarkan respon kepada manusia
16. ī´ User : Masukkan user name
ī´ User : Masukkan Password
ī´ Sistem :Cek apakah username terdaftar?
ī´ Sistem :Jika tidak terdaftar, maka sistem akan
mengeluarkan peringatan adanya kesalahan. Jika terdaftar
maka, selanjutnya sistem akan mengecek apakah username
dan password cocok (sesuai dengan database)?
ī´ Sistem :Jika Username dan password cocok maka user
diperbolehkan masuk ke Facebook ybs. Jika tidak cocok
maka sistem akan mengeluarkan peringatan adanya
kesalahan
ī´ User : Dapat mengakses halaman facebook ybs
Algoritma Login ke Facebook
17. Belajar Memprogram & Belajar
Bahasa Pemrograman
ī´ Belajar memprogram:
ī pemahaman persoalan, analisis, dan sintesis
ī´ Belajar Bahasa Pemrograman :
ī´ Belajar memakai suatu bahasa
ī aturan sintaks (tata bahasa)
Pemecahan Masalah
-Strategi
-Metodologi
-Sistematika
Notasi yang telah
disepakati
18. Bahasa Pemrograman
ī´ Adalah alat untuk membuat program
ī´ Contoh: C, C++, C#, Pascal, Basic, Perl, PHP, ASP, JHP,
Java, dll.
ī´ Perbedaan: cara memberikan instruksi (sintaks)
ī´ Persamaan: bertujuan menghasilkan output yang sama
19. Bahasa C di tingkat dunia
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
20. Paradigma Pemrograman
ī´ Pemrograman Prosedural / Terstruktur
ī´ Berdasarkan urutan-urutan, sekuensial
ī´ Program adalah suatu rangkaian prosedur untuk
memanipulasi data. Prosedur merupakan kumpulan instruksi
yang dikerjakan secara berurutan.
ī´ Harus mengingat prosedur mana yang sudah dipanggil dan
apa yang sudah diubah.
ī´ Program dapat dibagai-bagi menjadi prosedur dan fungsi.
ī´ Contoh: PASCAL dan C
ī´ Pemrograman Fungsional
ī´ Berdasarkan teori fungsi matematika
ī´ Fungsi merupakan dasar utama program.
ī´ Pemrograman Modular
ī´ Pemrograman ini membentuk banyak modul.
ī´ Modul merupakan kumpulan dari prosedur dan fungsi yang
berdiri sendiri
ī´ Sebuah program dapat merupakan kumpulan modul-modul.
ī´ Contoh: MODULA-2 atau ADA
21. Paradigma Pemrograman
ī´ Pemrograman Berorientasi Obyek
ī´ Pemrograman berdasarkan prinsip obyek, dimana obyek
memiliki data/variabel/property dan
method/event/prosedur yang dapat dimanipulasi
ī´ Contoh: C++, Object Pascal, dan Java.
ī´ Pemrograman Berorientasi Fungsi
ī´ Pemrograman ini berfokus pada suatu fungsi tertentu saja.
Sangat tergantung pada tujuan pembuatan bahasa
pemrograman ini.
ī´ Contoh: SQL (Structured Query Language), HTML, XML
dan lain-lain.
ī´ Pemrograman Deklaratif
ī´ Pemrograman ini mendeskripsikan suatu masalah dengan
pernyataan daripada memecahkan masalah dengan
implementasi algoritma.
ī´ Contoh: PROLOG
23. Siklus Hidup Perangkat
Lunak (Waterfall Model)
ī´ Dilihat dari Siklus diatas, Algoritma Pemrograman menempati
posisi dibagian Code / implementasi karena bagian implementasi
merupakan bagian dimana pemrogram melakukan proses coding
(pembuatan program).
24. Aksi dalam algoritma
ī´ Kejadian yang terjadi pada waktu yang terbatas dan
menghasilkan efek yang memang direncanakan
ī´ Dari waktu0 ke waktuN
ī´ Contoh: âaksi Bu Ani mengupas kentang untuk makan
malamâ
ī´ Batasan:
ī´Apa kentang harus dibeli dulu atau sudah ada?
ī´Apakah mengupas berarti sampai kentang terhidang?
ī´Apakah setelah kentang selesai dikupas, harus ada kegiatan
lain seperti dibuat sup atau digoreng?
ī´ Berarti harus ada kejadian awal = start dan kejadian akhir =
finish
ī´ Kejadian bu Ani dapat juga diterapkan pada ibu-ibu
yang lain, yang juga akan mengupas kentang
ī´ Cara (Metode) sebisa mungkin harus bersifat universal
25. Contoh kasus
ī´ Ada 2 gelas kosong berukuran: 5 liter dan 3 liter
ī´ Bagaimana cara kita mendapatkan air berukuran 4
liter?
ī´ Bagaimana cara mendapatkan air berukuran 2 liter?
26. Cara
ī´ Masukkan air ke 3 liter hingga penuh
ī´ Masukkan air 3 liter ke 5 liter, sisa 2 liter
kosong
ī´ Masukkan air ke 3 liter hingga penuh
ī´ Tuangkan air 3 liter ke sisa 2 liter, berarti sisa
1 liter di gelas 2 liter
ī´ Buang seluruh air di gelas 5 liter tadi
ī´ Tuangkan air 1 liter yg ada di gelas 3 liter tadi
hingga ke 5 liter kosong
ī´ Masukkan air ke 3 liter hingga penuh
ī´ Tuangkan 3 liter ke gelas 5 liter yang sudah
ada 1 liter tadi, hingga kita dapat 4 liter
28. Proses, Instruksi, dan Aksi
ī´Algoritma merupakan deskripsi urutan
pelaksanaan suatu proses
ī´Algoritma tersusun oleh sederetan
langkah instruksi yang logis
ī´Tiap langkah instruksi akan mengerjakan
suatu tindakan (Aksi)
ī´Bila Aksi dilaksanakan, maka sejumlah
operasi yang bersesuaian akan
dikerjakan oleh CPU
29. Struktur Dasar Algoritma
ī´ Runtunan (sequence)
ī´ aksi-aksi dalam algoritma yang dikerjakan secara
berurutan
ī´ contoh :
A1. Aksi 1
A2. Aksi 2
A3. Aksi 3
30. Struktur Dasar Algoritma(2)
ī´Pemilihan (selection)
ī´ aksi dikerjakan jika kondisi tertentu terpenuhi
ī´ contoh :
IF kondisi1 THEN
Aksi1
ELSE
IF kondisi2 THEN
Aksi2
ELSE
Aksi3
(Aksi 3 dilakukan jika kondisi 1 dan 2
tidak terpenuhi)
IF kondisi THEN
aksi
IF kondisi THEN
aksi1
ELSE
aksi2
31. Struktur Dasar Algoritma (3)
ī´ Pengulangan (repeatition)
ī´ aksi-aksi yang dikerjakan berulang kali
ī´ contoh :
ī´ FOR pencacah pengulangan dari a sampai b DO
Aksi
(aksi dilakukan sebanyak hitungan pencacah pengulangan, yaitu
dari a sampai bī yakni sebanyak b-a+1 kali)
ī´ REPEAT
Aksi
UNTIL kondisi
(pengulangan aksi dilakukan sehingga kondisi/persyaratan
berhenti terpenuhi)
ī´ WHILE kondisi DO
Aksi
(selama kondisi/persyaratan pengulangan masih benar, maka
aksi dikerjakan)
32. Flow Chart
ī´Flow chart suatu bagan/diagram yang
menggambarkan aliran proses yang
dikerjakan program dari awal sampai
akhir.
ī´Flow chart adalah algoritma yang
digambarkan dengan diagram
ī´Fungsi dari flow chart adalah
mendeskripsikan urutan pelaksanaan
suatu proses (sama dengan fungsi
algoritma)
37. Teks Algoritma
ī´Teks algoritma berisi langkah-langkah
penyelesaian masalah
ī´Tidak ada notasi baku tapi sebaiknya
berkorespondensi dengan bahasa
pemrograman umum, supaya mudah
ditranslasikan ke dalam bahasa
pemrograman
ī´Notasi yang digunakan untuk menulis
algoritma disebut notasi algoritmik
38. Teks Algoritma
ī´ Struktur teks algoritma
ī´ Kepala algoritma
terdiri atas nama algoritma dan penjelasan
(spesifikasi) tentang algoritma tersebut
ī´ Deklarasi
mendefinisikan semua nama (konstanta, peubah,
tipe, prosedur atau fungsi) yang dipakai dalam
algoritma
ī´ Deskripsi
Berisi uraian langkah-langkah penyelesaian
Komentar ditulis diantara tanda kurung â{â dan â}â
39. Contoh Teks Algoritma
Judul algoritma
spesifikasi algoritma
Kata2 yg biasanya menjadi keyword bhs pemrogram diberi garis bawah
42. Tipe Data
Tipe data terdiri dari tipe:
ī´ Tipe dasar
ī´ Tipe yang dapat langsung dipakai (disediakan
oleh bahasa pemrograman)
ī´ Contoh: boolean, integer, real, char, string (?)
ī´ Tipe bentukan
ī´ Tipe yang didefinisikan sendiri oleh pemrogram
ī´ Tipe yang dibentuk dari tipe dasar atau dari tipe
bentukan lain yang sudah didefinisikan
ī´ Contoh: tipe dasar yang diberi nama tipe baru,
record
43. Tipe Data(2)
Empat hal yang harus diperhatikan dalam pendefinisian tipe:
ī´ Nama
ī´ Domain harga
ī´ Konstanta
ī´ Operator
45. Tipe Bentukan
ī´ Tipe dasar yang diberi nama tipe baru
ī´ Nama baru untuk tipe dasar menggunakan kata kunci type
ī´ Domain nilai, cara menulis konstanta, dan operasi-operasi
yang dapat dijalankan pada tipe baru tersebut tidak
berubah, sama seperti tipe dasarnya.
ī´ Contoh: type BilanganBulat: integer
ī´ Rekaman (record)
ī´ Rekaman disusun atas satu atau lebih field
ī´ Tipe field menyimpan data dan tipe dasar tertentu atau dari
tipe bentukan lain yang sudah didefinisikan sebelumnya
ī´ Nama rekaman ditentukan oleh pemrogram
ī´ Rekaman disebut juga tipe terstruktur
46. Contoh Record
DEKLARASI
type MataKuliah : record <KodeMK : string, {kode matakuliah}
NamaMK : string, {nama matakuliah}
Nilai : char {indeks nilai}
>
type Mahasiswa : record <NIM : integer, {nomor mhs}
NamaMhs : string, {nama mhs}
MK : array[1..4] of MataKuliah
>
LarikMhs : array[1..100] of Mahasiswa
47. Nama
ī´ Untuk mengidentifikasikan dan membedakan obyek
ī´ Unik dan tidak boleh sama
ī´ Dalam algoritma nama diberikan pada:
ī´ Variabel
ī´ Tempat penyimpanan data/informasi di memori yang nilainya
dapat diubah selama pelaksanaan program
ī´ Konstanta
ī´ Tempat penyimpanan di memori yang nilainya tidak dapat diubah
selama pelaksanaan program
ī´ Tipe bentukan
ī´ Tipe data baru yang didefinisikan oleh program dari tipe data
yang sudah ada
ī´ Prosedur
ī´ Modul program (sederetan instruksi) yang ditulis terpisah dari
badan program utamadan dapat dipanggil berulang dari program
utama
ī´ Fungsi
ī´ Prosedur yang mengembalikan suatu nilai dengan tipe data
sederhana
48. Aturan Penulisan Nama
ī´ Harus dimulai dengan huruf alfabet, tidak boleh
dimulai dengan angka, spasi, atau karakter
khusus lainnya.
ī´ Tidak case sensitif (beda dengan bahasa
pemrograman)
ī´ Karakter penyusun nama hanya boleh: huruf
alfabet, angka dan â_â (underscore)
ī´ Tidak boleh dipisahkan dengan spasi
ī´ Panjang nama tidak terbatas
ī´ Semua nama yang dipakai harus dideklarasikan
dulu pada bagian deklarasi
49. Contoh Penamaan
ī´ SALAH
ī´ 6titik {dimulai dg angka}
ī´ nilai ujian {dipisahkan spasi}
ī´ PT-1 {mengandung operator kurang}
ī´ hari! {mengandung karakter khusus}
ī´ BENAR
ī´ titik6 atau titik_6
ī´ nilai_ujian atau nilaiUjian
ī´ PT_1 atau PT1
ī´ hari
50. Nilai
ī´ Merupakan besaran dari tipe data yang sudah
didefinisikan (tipe dasar maupun tipe bentukan)
ī´ Nilai dapat berupa:
ī´ Isi variabel atau konstanta
ī´ Nilai dari hasil perhitungan
ī´ Nilai yang dihasilkan oleh fungsi
ī´ Nilai yang disimpan di variabel dimanipulasi
dengan cara:
ī´ Mengisikan ke variabel lain yang bertipe sama
ī´ Dipakai untuk perhitungan
ī´ Dituliskan ke piranti keluaran
51. Nilai(2)
Pengisian nilai ke variabel:
ī´ Pengisian nilai secara langsung(assignment)
ī´ Memasukkan sebuah nilai ke dalam nama
variabel langsung di dalma teks algoritma
ī´ Syaratnya nilai yang didisikan harus bertipe
sama dengan tipe peubah
ī´ Notasi: ī
ī´ Contoh:
variabel ī konstanta NoMhs ī 1234
variabel1 īvariabel2 Nil_prev ī Nil_cur
variabel ī ekspresi Luas ī 0.5 * p * l
52. Nilai(3)
ī´ Pembacaan nilai dari piranti masukan
ī´ Nilai untuk nama variabel dapt diisi dari piranti
masukan, misalnya dari keyboard.
ī´ Dinamakan dengan operasi pembacaan data
ī´ Notasi dalam teks algoritma: read
ī´ Contoh:
ī´read (nama1, nama2,âĻnamaN)
53. Ekspresi
ī´ Ekspresi terdiri atas: operand dan operator
ī´ Operand adalah nilai yang dioperasikan dengan
operator tertentu
ī´ Operand dapat berupa konstanta, nama
variabel, nama konstanta, atau hasil suatu
fungsi
ī´ Hasil evaluasi dari sebuah ekspresi adalah nilai
di dalam domain yang sesuai dengan tipe
operand yang dipakai, ada tiga macam: ekspresi
aritmetik, ekspresi relasional, ekspresi string.
54. Ekspresi(2)
ī´ Ekspresi Aritmetika
ī´ Ekspresi yang baik operand dan hasilnya berupa
numerik
ī´ (ingat: tingkat prioritas operator)
i. / , div, mod
ii. *
iii.+, -
ī´ Ekspresi relasional
ī´ Ekspresi dengan operator <,â¤,>,âĨ,=,â , not, and, or,
dan xor
ī´ Hasil evaluasi adalah nilai bertipe boolean
ī´ Ekspresi string
56. Menuliskan Nilai ke Piranti
Keluaran (monitor/printer)
ī´ Dilakukan dengan notasi write
ī´ Contoh:
ī´write (nama1, nama2, âĻ, namaN)
57. Contoh Algoritma
Algoritma Hello_World
{mencetak string Hello World diikuti nama orang. Nama
orang diinputkan dari piranti masukan}
DEKLARASI
const ucapan = âHello Worldâ
namaUser : string
DESKRIPSI
read(namaUser)
write(ucapan + â â + namaUser)
58.
59.
60.
61. Dasar Algoritma
ī´ Dalam penulisan Algoritma ada beberapa
ketentuan yaitu:
ī´Program atau metode penyelesaian
masalah harus sesuai tahapan / urutan
ī´Tahapan tersebut tidak baku, yang
penting efektif
ī´Program bersifat terstruktur
ī´Tidak bermakna ganda
62. Struktur Badan Algoritma
ī´ Kepala Program
ī´Berisi judul program dan keterangan tentang
program
ī´Bahasa Algoritma : Algoritma judul_program
ī´Ex. Algoritma menghitung_luas_segitiga
ī´Ex. Algoritma MenghitungLuasSegitiga
ī´Bisa ditambahkan komentar tentang program
dengan menggunakan operator â{ }â
63. Struktur Badan Algoritma (2)
ī´ Deklarasi
ī´Berisi variabel yang digunakan dalam
program
ī´Bahasa Algoritma : nama_variabel : Tipe
Data
ī´Ex. AlasSegitiga : integer
ī´Ex. TinggiSegitiga : integer
ī´Ex. LuasSegitiga : integer
65. Struktur Badan Algoritma (4)
Algoritma menghitung_luas_segitiga
{menghitung luas segitiga dengan inputan alas dan tinggi
segitiga berasal dari keyboard}
DEKLARASI
AlasSegitiga : Integer
TinggiSegitiga : Integer
LuasSegitiga: Integer
DESKRIPSI
read(AlasSegitiga)
read(TinggiSegitiga)
LuasSegitiga â ÂŊ * AlasSegitiga * TinggiSegitiga
write(LuasSegitiga)
66. Kasus
ī´ Deklarasi data untuk mobil
ī´Merk : String {Contoh: Honda}
ī´NoKendaraan : String {Contoh: KH1A}
ī´TahunProduksi : Integer {Contoh: 2007}
ī´ Deklarasi data untuk Mata kuliah
ī´ Deklarasi data untuk Waktu
68. Tugas di kumpul minggu depan
ī´ Buatlah algoritma lengkap tentang perhitungan konversi
dari jam ke detik
ī´ Inputan berupa jam. Misalnya
Masukan jam : 1
ī´ Ouput
Detik : 3600