Flow chart

advertisement
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>
Download