Download - Program Komputer Chapter 2
PENDAHULUANPENDAHULUAN
Tujuan :1. Memperkenalkan algoritma, flow chart dan struktur bahasa
pemrograman komputer.
2. Memperkenalkan metode penjabaran proses/prosedur ke
dalam algoritma yang terstruktur dan menyusun flow chart.
3. Memperkenalkan metode penterjemahan flowchart ke
dalam bahasa pemrograman.
PENDAHULUANPENDAHULUANIsi mata kuliah: 1. Elemen dasar dalam pemrograman komputer :
Algoritma, flowchart, diagram block, conditional statement, looping, procedure, function , array/record,dll.
2. Studi kasus dalam penyusunan algoritma dan flowchart:Penentuan akar persamaan kuadrat, konversi nilai angka ke nilai
huruf, metode sorting (mengurutkan bilangan), operasi matrix, dll.
3. Pendalaman bahasa pemrograman:Struktur bahasa pemrograman, deklarasi dan statement, sistem input-
output variabel, simple statement, jenis error, jenis variabel, dll.
PENDAHULUANPENDAHULUAN
Objectives:Setelah menyelesaikan materi perkuliahan ini, anda diharapkan
mampu:1. Menjabarkan suatu proses/prosedur ke dalam algoritma yang
terstruktur dan menyusun flowchart.
2. Menterjemahkan algoritma dan flowchart ke dalam suatu
bahasa pemrograman.
ALGORITMAALGORITMA
Definisi: Urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.
Contoh:Algoritma Tukar Isi Bejana
Diberikan dua buah bejana A dan B, bejana A berisi larutan berwarna hijau, bejana B berisi larutan berwarna kuning. Pertukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan berwarna kuning dan bejana B berisi larutan berwarna hijau.
ALGORITMAALGORITMA
Contoh:Algoritma Euclidan
Diberikan dua buah bilangan bulat positif m dan n (m ≥ n). Carilah pembagi bersama terbesar dari kedua bilangan tersebut, yaitu bilangan bulat positif terbesar yang habis membagi m dan n.
misal: m = 30 dan n = 12
ALGORITMAALGORITMA
Ciri-ciri penting algoritma:Algoritma harus berhenti setelah mengerjakan sejumlah langkah
terbatas.Setiap langkah harus didefinisikan dengan tepat dan tidak
membingungkan/ambigu.Memiliki nol atau lebih masukan (input).Memiliki nol atau lebih keluaran (output).Setiap langkah harus sederhana sehingga dapat dikerjakan dalam
sejumlah waktu yang masuk akal.
ALGORITMAALGORITMA
Contoh:Diberikan 5 buah data bilangan bulat positif yang tersusun secara acak. Anda diminta menyusun sebuah algoritma untuk mengurutkan sekumpulan data tersebut sehingga tersusun terurut dari nilai yang kecil ke nilai yang besar.
a b c d e
10 15 5 17 2
ALGORITMAALGORITMAAlgoritma
Program dalam bahasa tingkat tinggi
Program dalam bahasa mesin
Translasi
Kompilasi
Intrepretasi oleh CPU
Operasi
ALGORITMAALGORITMA
Memprogram dan Bahasa PemrogramanProgram: implementasi algoritma yang ditulis dalam bahasa
pemrograman tertentu sehingga dapat dilaksanakan oleh komputer.
Belajar memprogram adalah belajar tentang metodologi pemecahan masalah, kemudian menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami.
Belajar bahasa pemrograman adalah belajar memakai suatu bahasa, aturan tata bahasanya,instruksi-instruksinya, tata cara pengoperasian compiler-nya untuk membuat program yang ditulis dalam bahasa itu saja.
ALGORITMAALGORITMA
Penulisan algoritma tidak tergantung dari spesifikasi bahasa pemrograman dan komputer yang mengeksekusinya. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
Notasi algoritma dapat berupa:Uraian kalimat deskriptif (narasi)
Algoritma kelulusan mahasiswa
Diberikan nama dan nilai mahasiswa , jika nilai tersebut lebih besar atau sama dengan 65 maka mahasiswa tersebut dinyatakan lulus dan jika nilai tersebut lebih kecil dari 65, maka mahasiswa dinyatakan tidak lulus.
ATURAN PENULISAN ALGORITMAATURAN PENULISAN ALGORITMA
Algoritma berisi langkah-langkah penyelesaian masalah.
Langkah-langkah tersebut dapat ditulis dalam notasi apapun asal mudah dibaca dan dimengerti, karena tidak ada notasi baku dalam penulisan algoritma.
Agar notasi algoritma mudah diterjemahkan ke bahasa pemrograman, maka sebaiknya notasi algoritma berkorespondensi dengan notasi bahasa pemrograman secara umum.
ATURAN PENULISAN ALGORITMAATURAN PENULISAN ALGORITMA
Teks algoritma disusun atas tiga bagian:
kepala (header)
Bagian deklarasi
Bagian deskripsi
Kepala (Header) AlgoritmaKepala (Header) AlgoritmaTerdiri atas nama algoritma dan penjelasan
(spesifikasi) tentang algoritma tersebut.Nama algortima sebaiknya singkat namun
cukup menggambarkan apa yang dilakukan algoritma.
Dibawah nama algoritma disertai penjelasan singkat (intisari) tentang apa yang dilakukan algoritma. Disebut juga spesifikasi algoritma.
Algoritma harus ditulis sesuai dengan spesifikasi yang didefinisikan.
Deklarasi AlgoritmaDeklarasi Algoritma
Bagian untuk mendefinisikan semua nama yang dipakai di dalam algoritma.
Nama tersebut dapat berupa:nama tetapannama peubah nama tipe nama prosedur nama fungsi
Contoh Deklarasi AlgoritmaContoh Deklarasi Algoritma Deklarasi {nama tetapan} const NPeg = 230 {jumlah pegawai} const phi = 3.14 {nilai Π}
{nama tipe} type Titik : record {koordinat titik di bidang cartesian} ( x: integer, y: integer )
{nama peubah} c: char {karakter yang dibaca} Q: Titik {titik dalam koordinat kartesian}
function APAKAH_B (input c: char) boolean {mengembalikan nilai true bila c adalah karakter ’B’ atau false
bila sebaliknya}
DeskripsiDeskripsiBagian inti dari suatu algoritma yang berisi
uraian langkah-langkah penyelesaian masalah.
Setiap langkah algoritma dibaca dari ’atas’ ke ’bawah’. Urutan penulisan menentukan urutan pelaksanaan perintah.
Komponen teks algoritma dapat berupa:Runtutan ( sequence)Pemilihan (selection)Pengulangan ( repetition)
Contoh Algoritma LengkapContoh Algoritma Lengkap Program nilai maksimum {menentukan nilai tertinggi dari piranti masukan dan hasilnya dicetak di
piranti keluaran}
Deklarasi hasil : integer {hasil adalah variabel untuk menampung nilai keluaran} x, y : integer {x dan ya adalah variabel untuk menampung nilai
masukan}
Deskripsi Input (x,y) {membaca x dan y dari piranti masukan} If x > y then {operasi kondisional}
hasil x {hasil di assignment oleh nilai terbsesar} else hasil y
Output (hasil) {nilai di dalam variabel hasil ke piranti keluaran}
Tipe, Nama & NilaiTipe, Nama & Nilai
Tipe
Tipe Dasar Tipe Bentukan
- bilangan logika- bilangan bulat- bilangan riil- karakter
- string- tipe dasar dengan nama tipe baru- rekaman
Bilangan LogikaBilangan LogikaNama tipe : boolean (berasal dari nama George
Boole)Ranah nilai: benar ( true,1) atau salah (false,0)Tetapan: true dan falseOperasi: operasi logika yang terdiri dari not, and,
or, xor a Not a
true false
false true
Bilangan LogikaBilangan Logika
a b a and b
a or b a xor b
true true true true false
true false
false true
false false
Bilangan LogikaBilangan LogikaContoh operasi logika:
X Y Z (X and Y) or Z
X and (Y or Z)
not (X and Z)
( Y xor Z) and Y
true false true
Bilangan BulatBilangan BulatNama tipe: integerRanah nilai: - infinite < x < infinite Dapat didefinisikan ranah tertentu untuk objek
yang kita definisikan, contoh: Objek : jam Tipe : bilangan bulat Ranah nilai : {0..23} Tetapan: ditulis tanpa mengandung titik
desimal 34 -14 8564 56
Bilangan BulatBilangan Bulat
Operasi:Operasi aritmatika : + (tambah) - (kurang) * (kali) div (bagi) mod (sisa hasil bagi)
Bilangan BulatBilangan BulatContoh:9 div 3 (hasil: 3)9 mod 3 (hasil: 0)9 + 3 (hasil : 12)9 * 3 ( hasil: 27)9-3 (hasil: 6)Dari contoh di atas 9 dan 3 disebut operandSedangkan ’+’, ’div’, ’mod’, ’*’ , ’-’ adalah
operator’-’ disebut operator uner’+’, ’div’, ’mod’, ’*’ disebut operator biner
Bilangan BulatBilangan BulatOperasi perbandingan:Dengan menggunakan operator relasional di
bawah ini menghasilkan nilai boolean ( true atau false):
< (lebih kecil) ≤ (lebih kecil atau sama dengan) ≥ (lebih besar atau sama dengan) > (lebih besar) = (sama dengan) = (tidak sama dengan)
Bilangan RiilBilangan Riil
Bilangan yang mengandung pecahan desimal misalnya:
18.0, 3.45, 0.0001, 2.60567E-7Nama tipe: realRanah nilai: - infinite < x < infiniteTetapan: ditulis dengan tanda titik desimalOperasi: aritmatika dan perbandingan
Bilangan RiilBilangan RiilOperasi aritmatika : + (tambah) - (kurang) * (kali) / (bagi)Contoh: 6.4 + 5.7 ( hasil : 12.1.) 10/3 ( hasil : 3.33...) 10/2.5 (hasil: 4.0)
Bilangan RiilBilangan RiilOperasi perbandingan : Dengan menggunakan operator relasional di
bawah ini menghasilkan nilai boolean ( true atau false):
< (lebih kecil) ≤ (lebih kecil atau sama dengan) ≥ (lebih besar atau sama dengan) > (lebih besar) = (tidak sama dengan)
KarakterKarakterJenis karakter: huruf-huruf alpabet, tanda baca,
angka ’0’, ’1’,...., ’9’ serta karakter khusus seperti ’&’, ’%’, ’#’, ...
Nama tipe: charRanah nilai: alfabet (’a’..’A’, ’A’..’Z’) angka desimal (’0’..’9’) tanda baca (’&’, ’%’, ’#’, ’?’, ’!’, dll) operator aritmatik (’+’, ’=’, ’-’, ’*’,
’/’)Tetapan: `&´ `%´ `#´ `?´ `!´
KarakterKarakterOperasi perbandingan:Dengan menggunakan operator relasional di
bawah ini menghasilkan nilai boolean ( true atau false):
< (lebih kecil) ≤ (lebih kecil atau sama dengan) ≥ (lebih besar atau sama dengan) > (lebih besar) = (sama dengan) = (tidak sama dengan)
Tipe BentukanTipe BentukanTipe yang didefinisikan sendiri oleh
pemrogram.Tersusun dari satu atau lebih tipe dasar.Tiga jenis tipe bentukan: 1. string 2. tipe dasar dengan nama tipe baru 3. rekaman (record)
StringStringDeretan karakter dengan panjang tertentuNama tipe: stringRanah nilai: deretan karakter yang telah
didefinisikan pada ranah karakterTetapan: semua tetapan string diapit tanda
petik tunggalContoh:`Jogjakarta´`ITS´` Halo, dunia´
StringStringOperasi penyambungan:Operator : +`Teknik´ + `Sipil´ = `TeknikSipil´´1´ + ´2´ = ´12´Operasi perbandingan: Dengan menggunakan operator relasional di bawah
ini menghasilkan nilai boolean ( true atau false): < (lebih kecil) ≤ (lebih kecil atau sama dengan) ≥ (lebih besar atau sama dengan) > (lebih besar) = (sama dengan) = (tidak sama dengan)
Tipe Dasar dengan Nama BaruTipe Dasar dengan Nama BaruMemberi nama baru untuk tipe dasar dengan
kata kunci type
Type BilBulat : integer
Rekaman (record)Rekaman (record)Disusun oleh satu atau lebih field yang
menyimpan data dari tipe dasar tertentu atau dari tipe bentukan lainnya yang sudah terdefinisi.
Field 1 Field 2 Field 3 Field 4
Rekaman (record)Rekaman (record)Titik dalam koordinat cartesian
X Y
Cara penulisan: type Titik : record < x: real, y : real > type Titik : record < x ,y : real > type Titik : record < x: real, y : real>
Rekaman (record)Rekaman (record)
Titik dalam koordinat cartesiantype Titik : record < x ,y : real >Didefinisikan sebagai berikut: Nama tipe: Titik Ranah nilai : (real, real) Contoh tetapan: < 2.7, 13.2 > < -2.3, -1.4> <3.0 , -10.12> Operasi : operasi aritmatika operasi perbandingan
Rekaman (record)Rekaman (record)Penanggalan dalam kalender
dd mm yy
Type Tanggal : record <dd: integer, {1..31} mm: integer {1..12} yy: integer {> 0} >
NamaNamaDituliskan di bagian Deklaraasi algoritmaDigunakan untuk memberi identifikasi objek.Objek dapat berupa: a. Peubah ( variabel) b. Tetapan (constant) c. Tipe bentukan d. Nama fungsi e Nama prosedur
Nama PeubahNama PeubahDeklarasi X, nilai_ujian, jumlah : real k : integer c : charX, nilai_ujian, jumlah, k dan c dapat diubah
nilainya dalam algoritma
Nama TetapanNama TetapanDeklarasiConst phi = 3.14Const Nmaks = 200Const sandi = `xyz´Phi, Nmaks dan sandi adalah nama tetapan
yang nilainya tidak dapat diubah dalam algoritma
Tipe BentukanTipe BentukanDeklarasi type Titik : record <x:real, y:real>
type JAM : record < hh : integer mm : integer ss : integer <
NilaiNilaiNilai adalah besaran dari tipe data yang
sudah dikenalNilai dapat dimanipulasi antara lain dengan
cara: 1. Mengisikannya ke peubah lain bertipe
sama 2. Dipakai perhitungan 3. Dituliskan ke piranti keluaran
NilaiNilaiPengisian nilai ke dalam nilai peubahSebuah nilai dapat dimasukkan ke dalam
nama peubah dengan dua cara: 1. Pengisian nilai secara langsung. 2. Dibaca dari piranti masukan.
NilaiNilaiPengisian nilai secara langsung (assignment)Memasukkan sebuah nilai ke dalam nama
peubah langsung di dalam teks algoritma.Nilai yang diisikan kepada nama peubah
dapat berupa: tetapan, nilai nama peubah lain, nilai sebuah
ekspresiNotasi algoritmik untuk pengisian langsung:
NilaiNilaiPeubah tetapanPeubah 1 peubah2Peubah ekspresi Contoh:K 45Distance 239.2Hilang falseNamaOrang `Budi´J.hh 18 J.mm 23J.ss 45
NilaiNilaiC A + BNisbah jumlah/banyak * o.5Determinan b*b-4*a*cK (i+j) div 2
M 4.5L M-3.4K L + 2.0L K/L
NilaiNilaiEkspresi:Transformasi nilai menjadi keluaran melalui
suatu cara perhitungan.Terdiri dari operand dan operator Operand dapat berupa: tetapan, peubah,
hasil dari suatau fungsi3 macam ekspresi: ekspresi aritmetik ekspresi relasional ekspresi string
NilaiNilaiEkspresi aritmetikOperand dan hasilnya bertipe numerikmisal: DEKLARASI a, b, c : real d : integer i,j,k : integerEkspresi numerik: c a*b k (i+j) div 2 (a/2.5) + c*bOperator yang lebih tinggi lebih dahulu
dikerjakan
NilaiNilaiUrutan evaluasi dapat berubah karena
penggunaan tanda kurung. a/(c+b) Tingkatan operator aritmetika adalah (dari
tertinggi ke terendah): (i) /, div, mod (ii) * (iii) +, - a/b*c tidak sama dengan a/(b*c)
NilaiNilaiNyatakan rumus-rumus di bawah ini dalam
notasi algoritmik: B = 5/9(7*A)-(D/F) Z = (2x+y)/(5w) y = 5 ((a+b)/(cd) + (m)/(p+q))
NilaiNilaiEkspresi relasionalEkspresi dengan operator <, >, ≥, ≤, =, = ,
not and, or, xorDEKLARASI ketemu, ada : boolean x,y : integer ketemu : false ada : true x : 8 y : 3.4