Dasar-dasar
Pemrograman
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.
Algoritma
adalah logika, metode dan tahapan (urutan)
sistematis yang digunakan untuk memecahkan suatu
permasalahan.
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.
Program
Perwujudan atau implementasi algoritma yang ditulis
dalam bahasa pemrograman tertentu
Belajar Memprogram &
Belajar Bahasa
Pemrograman
Belajar memprogram:
pemahaman persoalan, analisis, dan sintesis
-Strategi
Pemecahan
Masalah
-Metodologi
-Sistematika
Notasi yang telah
disepakati
Belajar Bahasa Pemrograman :
Belajar memakai suatu bahasa
aturan sintaks (tata bahasa)
DASAR-DASAR
ALGORITMA dan
FLOW CHART
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
Struktur Dasar Algoritma
Runtunan (sequence)
aksi-aksi dalam algoritma yang dikerjakan secara
berurutan
contoh :
A1. Aksi 1
A2. Aksi 2
A3. Aksi 3
Struktur Dasar Algoritma(2)
Pemilihan (selection)
aksi dikerjakan jika kondisi tertentu terpenuhi
contoh :
IF kondisi THEN
aksi
IF kondisi THEN
aksi1
ELSE
aksi2
IF kondisi1 THEN
Aksi1
ELSE
IF kondisi2 THEN
Aksi2
ELSE
Aksi3
(Aksi 3 dilakukan jika kondisi 1 dan 2
tidak terpenuhi)
Struktur Dasar Algoritma (3)
Pengulangan (repetition)
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)
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)
Penulisan Algoritma
FLOW CHART
Flow chart adalah suatu bagan/diagram
yang menggambarkan aliran proses yang
dikerjakan suatu 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 dari algoritma)
TEKS ALGORITMA
berisi langkah-langkah penyelesaian masalah
yang ditulis dengan bahasa yang mudah
dipahami
Flow Chart
Input
Processing
Output (display)
Decision (untuk mengevaluasi suatu kondisi)
Procedure/subroutine
Flow Chart(2)
Flow lines
Terminator (mengawali dan mengakhiri flow chart)
On page connector
Off page connector
Annotation (memberi komentar atau keterangan
dalam flow chart)
ATURAN PENULISAN
TEKS ALGORITMA
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
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 “}”
Contoh Teks Algoritma
Judul algoritma
spesifikasi algoritma
Kata2 yg biasanya menjadi keyword bhs pemrogram diberi garis bawah
Pascal
TIPE, NAMA, DAN
NILAI
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
Tipe Data(2)
Empat hal yang harus diperhatikan dalam pendefinisian
tipe:
Nama
Domain harga
Konstanta
Operator
Tipe Data(3)
Tipe Bentukan
Tipe dasar yang diberi nama tipe baru
Nama baru untuk tipe dasar menggunakan kata
kunci type
Domain nilai, cara menulis konstanta, dan operasioperasi 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
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
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
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
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
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
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
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)
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.
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
Ekspresi (3)
Ekspresi string
Ekspresi dengan operator
penyambungan/concatenation “+”.
Menuliskan Nilai ke Piranti
Keluaran (monitor/printer)
Dilakukan dengan notasi write
Contoh:
write (nama1, nama2, …, namaN)
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)
Sumber
Algoritma dan Pemrograman dalam Bahasa Pascal
dan C (Buku 1), Rinaldi Munir, Informatika Bandung
ilmukomputer.com
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
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 “{ }”
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
Struktur Badan Algoritma (3)
Deskripsi
Berisi uraian langkah penyelesaian
Example:
read(PanjangSegitiga)
read(LebarSegitiga)
LuasSegitiga ←
½ * PanjangSegitiga *
LebarSegitiga
write(LuasSegitiga)
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)
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
Deklarasi data untuk Alamat Rumah
Deklarasi data untuk Data Pribadi <min 6 variabel>