• Tidak ada hasil yang ditemukan

Algoritma dan pemrograman I

N/A
N/A
Protected

Academic year: 2017

Membagikan "Algoritma dan pemrograman I"

Copied!
143
0
0

Teks penuh

(1)

MATERI KULIAH

ALGORITMA DAN PEMROGRAMAN I (2 SKS)

DOSEN PENGAMPU:

TATI HARIHAYATI M.,M.T.

(2)

PERTEMUAN 1

PENGANTAR ALGORITMA

Algoritma dan Pemrograman I

Teknik Informatika

(3)

Sistem Komputer

Sebuah sistem komputer terdiri dari

Hardware

(perangkat keras)

,

Software

(perangkat lunak) dan

Brainware, sedangkan

Software

dapat

dikelompokkan menjadi Operating

System Software, Programming

Language Software dan

Application

(4)
(5)

Cara mendeskripsikan masalah dengan

komputer :

menjabarkan masalah

merinci langkah untuk menyelesaikan

masalah

membuat sarana interaksi

(6)

Tranformasi masalah

menjadi program

komputer diperlukan:

bentuk urutan masalah

bahasa yang dipakai

(7)

algoritma

Program

komputer

solusi

(8)

Apakah Algoritma itu?

Algorismalgorithm

• nama penulis buku Arab yaitu Abu Ja‟far Muhammad ibnu Musa Al-Khuwarizmi

Algoritma adalah:

– penyusunaan aspek proses logika dari suatu pemecahan masalah tanpa melihat karakteristik bahasa pemrograman yang akan digunakan

– urutan notasi logika yang merupakan hasil analisis dan rancangan sistematik dari strategi pemecahan

masalah, untuk menggambarkan urutan langkah kerja yang jika dikerjakan akan membawa ke tujuannya.

(9)

Notasi Algoritma

Notasi I :

untaian kalimat deskriptif

Notasi II :

diagram alir (flow chart)

Notasi III :

pseudo-code

Contoh masalah : menghitung luas

(10)

Notasi I :

Algoritma Luas_Persegipanjang

Menghitung luas persegipanjang

dengan memasukkan nilai lebar dan

panjang persegipanjang

Deklarasi

luas,panjang,lebar : bil. bulat

Deskripsi

1. Masukkan nilai lebar dan panjang

2. Hitung luas sama dengan panjang kali

lebar

(11)

Notasi II :

mulai

Input

panjang,

lebar

luas 

panjang * lebar

Output

luas

(12)

Notasi III :

Algoritma Luas_Persegipanjang

{ Menghitung luas persegipanjang

dengan memasukkan nilai lebar dan

panjang persegipanjang}

Kamus:

luas, panjang, lebar : integer

Algoritma:

input(panjang,lebar)

(13)

Definisi Program/Pemrograman

• Adalah kumpulan instruksi-instruksi tersendiri yang biasanya disebut source code yang

dibuat oleh programmer (pembuat program) • Program adalah kumpulan instruksi atau

perintah yang disusun sedemikian rupa

sehingga mempunyai urutan nalar yang tepat untuk menyelesaikan suatu persoalan.

(Menurut P. Insap Santosa)

• Instruksi (statement) yang dimaksud adalah syntax (cara penulisan) sesuai dengan bahasa pemrograman yang digunakan yang

mempunyai komponen-komponen : Input,

(14)

Belajar Memrogram Vs Belajar Bahasa Pemrograman

Belajar memprogram

adalah belajar tentang

metodologi pemecahan masalah, kemudian

menuangkannya dalam suatu notasi tertentu

yang mudah dibaca dan dipahami.

Belajar bahasa pemrograman

berarti belajar

memakai suatu bahasa, aturan-aturan tata

bahasanya, instruksi-instruksinya, tata cara

pengoperasian

compiler-

nya, dan

memanfaatkan instruksi-instruksi tersebut untuk

membuat program yang ditulis hanya dalam

(15)

Belajar Memprogram

belajar bahasa pemrograman

belajar tentang strategi pemecahan

masalah, metodologi dan sistematika

pemecahan masalah kemudian

menuliskannya dalam notasi yang

disepakati bersama

bersifat pemahaman persoalan,

analisis dan sintesis

(16)

Belajar Bahasa Pemrograman

belajar memakai suatu bahasa

pemrograman, aturan sintaks, tatacara untuk

memanfaatkan instruksi yang spesifik untuk

setiap bahasa

(17)

Bahasa Pemrograman

Adalah alat untuk membuat program

Contoh: C, C++, C#, Pascal, Basic,

Perl, PHP, ASP, JHP, Java, dll.

Perbedaan: cara memberikan instruksi

Persamaan: bertujuan menghasilkan

(18)

Syarat-syarat sebuah Program yang baik:

1. benar

2. berlaku umum untuk beragam data

(valid)

3. mudah dibaca

4. mudah dimodifikasi dan dikembangkan

5. efisiensi dalam penggunaan ruang dan

(19)
(20)

Beberapa Paradigma dalam Pemrograman

Prosedural / Terstruktur

Paradigma Fungsional

Paradigma Deklaratif / Logika

Paradigma Object-Oriented

Paradigma Konkruen

sarana object-oriented

(21)

Paradigma Pemrograman

• Pemrograman Prosedural

– 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.

• Pemrograman Fungsional

– Berdasarkan teori fungsi matematika

– Fungsi merupakan dasar utama program.

• Pemrograman Terstruktur

– Secara berurutan dan terstrukrtur.

– Program dapat dibagai-bagi menjadi prosedur dan fungsi.

– Contoh: PASCAL dan C

• Pemrograman Modular

– Pemrograman ini membentuk banyak modul.

– Modul merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri

– Sebuah program dapat merupakan kumpulan modul-modul.

(22)

Paradigma Pemrograman (lanjutan)

• 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.

(23)

Pemrograman Prosedural

Algoritma berisi urutan langkah-langkah

penyelesaian masalah 

proses yang

prosedural.

Definisi Prosedural menurut Kamus Besar

Bahasa Indonesia:

1. Tahap-tahap kegiatan untuk menyelesaikan

suatu aktivitas.

(24)

program dibedakan antara bagian data

dengan bagian instruksi.

Bagian

instruksi

terdiri atas runtutan

(

sequence

) instruksi yang dilaksanakan

satu per satu secara berurutan oleh

pemroses. Alur pelaksanaan instruksi

dapat berubah karena adanya

pencabangan kondisional.

Data

yang disimpan di dalam memori

dimanipulasi oleh instruksi secara

(25)

Paradigma Object-Oriented

• mengkonstruksi program dari objek-objek dalam ruang lingkup masalahnya.

• sekumpulan objek yang mempunyai sifat yang sama. Dapat menjadi sebuah kelas. Sebuah kelas mempunyai attribute (sekumpulan

sifat/ciri).

(26)

Pemrograman Berorientasi Objek (PBO)

Kerangka berpikir PBO berbeda dengan

pemrograman tradisional.

Pemrograman tradisional

:

memisahkan antara data, dan

prosedur yang mengolah data

tersebut.

PBO

: data dan prosedur ini

(27)

PERTEMUAN 2

NOTASI ALGORITMIK

Algoritma dan Pemrograman I

Teknik Informatika

(28)

Algoritma disusun berdasarkan 3 bagian,

antara lain :

1. Judul Algoritma

2. Kamus / Deklarasi

(29)

Format Syntax Algoritma

JUDUL

ALGORITMA DEKLARASI/ KAMUS

{Lokal / Umum} ALGORITMA TUBUH ALGORITMA/ DESKRIPSI URAIAN ALGORITMA Nama Algoritma

Type namatipe : tipe [subrange]

Type namatipe : array [min..maks] of tipe Namavar : tipe

Namavar : array [ min..maks] of tipe Const nama = nilai

Procedure namaproc(daftar_nama_parameter:tipe)

Notasi Assigment

Notasi Kondisional/Pemilihan Notasi Pengulangan

Notasi Pemanggilan

(30)

Algoritma untuk menulis Hello world:

Algoritma Hello_world

{ program untuk mencetak “Hello world”}

Kamus:

{tidak ada}

Algoritma:

(31)

Algoritma untuk menghitung luas segitiga:

LuasSegi3

{algoritma untuk menghitung luas segitiga dengan diketahui alas dan tingginya}

KAMUS:

panjang,lebar : integer luas : real

ALGORITMA: panjang  10 lebar  5

luas  0.5*alas * tinggi

(32)

Translasi Teks Algoritma ke dalam Teks Program Bahasa C++

Translasi Notasi Kamus

No Algoritma C++

1 #include <nama_unit> 2 CONST

namaconst = nilai

#define namaconst nilai

3 TYPE namatipe :

tipedata

Typedef tipedata namatipe;

4 namavar : tipedata namavar : namatipe

tipedata namavar;

namatipe namavar;

1 #include <iostream.h>

2 CONST

phi = 3.14

#define phi 3.14

3 TYPE

jumlah : integer

Typedef int jumlah;

4 n : integer n : jumlah

int n;

jumlah n;

(33)

Translasi Notasi Pengendalian (lanjutan)

No Algoritma C++

(34)

Algoritma C++

6 DEPEND ON <ekspresi> <ekspresi 1> : aksi_1 <ekspresi 2> : aksi_2

:

<ekspresi n> : aksi_n ENDDEPEND

atau

CASE namavarcase OF expkonstan 1 : aksi_1 expkonstan 2 : aksi_2

:

expkonstan n : aksi_n ELSE aksi_lain ENDCASE Switch (ekspresi) { case nilai1: aksi_1; break; case nilai2: aksi_2; break; : case nilain: aksi_n; break; default: aksi_lain; }

(35)

Translasi Notasi Pengendalian (lanjutan)

Algoritma C++

7 [inisialisasi]

WHILE (kondisi_ulang) DO

daftar_aksi

{ada aksi thd var kondisi} ENDWHILE

[inisialisasi]

while (kondisi_ulang) {

daftar_aksi;

/*ada aksi thd var kondisi*/ }

8 [inisialisasi] REPEAT

daftar_aksi

{ada aksi thd var kondisi} UNTIL (kondisi_stop)

[inisialisasi] do

{

daftar_aksi;

(36)

Translasi Notasi Pengendalian (lanjutan)

Algoritma

9 namavar TRAVERSAL [awal..akhir]

daftar_aksi;

atau

FOR var  awal TO/DOWNTO akhir STEP counter DO

daftar_aksi

ENDFOR

C++

for(awal;kondisiulang;step) {

daftar_aksi;

(37)

Contoh Algoritma

Algoritma Luas_Lingkaran

{menghitung luas lingkaran diketahui jari-jarinya}

Kamus:

Const

phi = 3.14 r : integer

Luas : real

Algoritma:

r  5

Luas  phi * r * r

output(”Jari –jari = ”,r);

(38)

Contoh program C++

#include <iostream.h> #define phi 3.14

main () {

int r;

float Luas; r = 5;

Luas = phi * r * r;

cout << ”Jari-jari : ” << r;

(39)

PERTEMUAN 3

KONSEP TIPE DATA, OPERATOR DAN IDENTIFIER

Algoritma dan Pemrograman I

Teknik Informatika

(40)

IDENTIFIER

(pengenal)

Nama tipe (di bagian deklarasi Type)

Tempat penyimpanan suatu data :

variable jika isinya dapat berubah dalam kisaran

tertentu

konstanta jika isinya selalu tetap.

file, penyimpanan data di storage, dan sifatnya menetap.

Fungsi dan Prosedur

(41)

Penamaan pengenal :

1. Berupa satu atau beberapa karakter • Huruf (A s/d Z, a s/d z)

• Angka (0 1 2 3 4 5 6 7 8 9 ) • Garisbawah/underscore (_)

diawali huruf dan tidak diawali angka

2. Menggunakan kata yg berarti dan mudah dibaca dan interpretatif

3. Tidak boleh ada simbol-simbol khusus kecuali

underscore

(42)

OPERATOR

Operator adalah notasi yang dipakai untuk

melaksanakan suatu operasi terhadap data

(43)
[image:43.720.9.719.23.516.2]

Tabel Pengelompokan Operator

JENIS OPERATOR NOTASI KEGUNAAN Algoritma Bahasa C++

Negasi - - Mengubah data angka menjadi -/+ Aritmatika + -* / div mod  + -* / / % = Penjumlahan Pengurangan Perkalian Pembagian Pembagian dibulatkan Sisa Pembagian Pemberi nilai Relasional < > = <= >= <> < > == <= >= != Kurang dari Lebih dari Sama dengan

(44)

JENIS OPERATOR NOTASI KEGUNAAN Algoritma Bahasa C++ Logika not and or xor ! && || tdk ada

Negasi terhadap nilai Boolean

Operasi And thd dua nilai Boolean Operasi Or thd dua nilai Boolean Operasi Xor thd dua nilai Boolean Bit shl shr sot and or xor << >> ~ & | ^

Geser satu bit ke kiri Geser satu bit ke kanan Komplemen suatu bit

Operasi And terhadap dua bit Operasi Or terhadap dua bit Operasi Xor terhadap dua bit

Address  & Menunjukkan alamat memori suatu variable yang menyatakan nilai

[image:44.720.13.715.25.516.2]

yang ditunjuk oleh pointer

(45)

Operator Not

Not

True : False

Not

False : True

Arg 1 Arg 2 Arg 1 AND Arg 2 True

True False False

True False

True False

True False False False

(46)

TIPE DATA

1. Tipe Data Dasar

Integer (bilangan bulat), Real (bilangan pecahan), Boolean (bilangan logik) dan Char (karakter)

2. Tipe Data Bentukan

String (kumpulan dari beberapa karakter), Array (larik), Record (rekaman), Pointer (penunjuk alamat), File

(47)
[image:47.720.11.720.21.520.2]

TABEL PENGELOMPOKAN TIPE DATA DASAR pada ALGORITMA

Tipe Data

Karakteristik

Nama Domain Konstanta Operator yang

digunakan Hasil

Boolean Boolean True dan false

True False .T. .F.

y n

Operasi logic (And, Or, Not, Xor, Eq, NEq)

Boolean Integer Integer (bil. bulat) Semua data yang berisi bilangan bulat 0,-25,100 Aritmatika (+,-,*,/,Mod, Div) Relasional

(=,<>, >=, >=, <, <=) Integer Boolean Real Riil (bil. pecahan) Semua data yang berisi bilangan pecahan

1, 5.2, 100, 0.1

Aritmatika (+,-,*,/,^)

Relasional (,>,>=,<,<=)

Riil

(48)

Tipe

Karakteristik

Nama Domain Konstanta

Operator yang digunakan

Hasil

Char Karakter Semua data berupa

karakter

“d”, “g”,

[image:48.720.12.718.37.526.2]

“%”, “!”,”4” Relasional Boolean

(49)

PERTEMUAN 4 DAN 5

DASAR-DASAR ALGORITMA

Algoritma dan Pemrograman I

Teknik Informatika

(50)

Pernyataan dan Aksi

langkah penyelesaian

pernyataan (Statement)

aksi (action) dieksekusi

(51)

Contoh Pernyataan dan Aksi

:

Pernyataan pada algoritma :

Tulis “Hello, world”

• menggambarkan aksi menuliskan “Hello,

world” ke piranti keluaran (layar).

efek dari aksi ini, dilayar akan tertera tulisan

Hello, world

(52)

Struktur Dasar Algoritma

1. Runtunan (Sequence)

2. Pemilihan (

Selection

)

(53)

Runtunan (

Sequence

)

Algoritma merupakan runtunan (

sequence

)

satu atau lebih instruksi/pernyataan,

setiap pernyataan dikerjakan secara

berurutan sesuai dengan urutan

penulisannya. Sebuah instruksi dilaksanakan

setelah instruksi sebelumnya selesai

dilaksanakan.

(54)

Contoh 1 (Runtunan) :

Diberikan 2 buah gelas, A dan B;

gelas A berisi air berwarna merah, gelas

B berisi air berwarna biru. Pertukarkan isi

kedua gelas itu sedemikian sehingga

gelas A berisi air berwarna biru dan gelas

B berisi air berwarna merah.

(55)

ALGORITMA:

Tuangkan air dari gelas A kedalam

gelas B

Tuangkan air dari gelas B kedalam

gelas A

Caranya

:

(56)

ilustrasi

A C

A

C

B

A

(57)

ilustrasi

C

B

C

(58)

Algoritma Tukar_isi

{Diberikan 2 buah gelas, A dan B; gelas A berisi air berwarna merah, gelas B berisi air berwarna biru. Isi kedua gelas A dan B ditukar sedemikian sehingga gelas A berisi air berwarna biru dan gelas B berisi air berwarna merah}

Kamus :

gelas A,gelas B, gelas C : air Algoritma:

Tuangkan air dari gelas A kedalam gelas C Tuangkan air dari gelas B kedalam gelas A Tuangkan air dari gelas C kedalam gelas B

(59)

Contoh 2 (runtunan):

Misal nilai A=8, B=5. Tukarkan nilai A dan B, sehingga menjadi A=5, B=8.

Algoritma :

B

A

A

B

Algoritma :

C

A

(60)

Pemilihan (

Selection

)

If (kondisi)

then

aksi

endIf

If (kondisi)

then

aksi1

else

aksi2

(61)

Contoh (Pemilihan) :

If (A>B)

then

Max A

endIf

If (B>A)

then

Max B

endIf

If (A>B)

then

Max A

else

(62)

Pengulangan (

Repetition)

for var  awal to akhir do

aksi

endfor

repeat

aksi

until kondisi_stop

while kondisi_ulang do

aksi

(63)

Contoh (Pengulangan) :

For i  1 to 5 do output(“UNIKOM) EndFor

i1

Repeat

output(“UNIKOM”) ii+1

Until (i>5)

i1

While (i<=5) do

output(“UNIKOM”) ii+1

(64)

PERTEMUAN 5

STATEMENT PEMILIHAN

Algoritma dan Pemrograman I

Teknik Informatika

(65)

Analisis Satu Kasus

Menggunakan konstruksi IF-THEN (jika-maka)

dalam bentuk pernyataan :

if (

kondisi)

then

pernyataan

(66)

Contoh Masalah satu kasus :

Buatlah algoritma untuk menentukan apakah

suatu bilangan yang dimasukkan oleh user itu

bilangan genap atau bilangan ganjil.

Penyelesaian :

(67)

Analisis Dua kasus :

• Menggunakan konstruksi IF-THEN-ELSE (jika-maka-kalau tidak) dalam bentuk pernyataan :

if (kondisi)

then

pernyataan1

else

pernyataan2

(68)

Contoh masalah analisis dua kasus :

Tulislah algoritma yang membaca sebuah bilangan bulat, lalu

menuliskan pesan “genap” jika bilangan tersebut adalah genap atau “ganjil” jika bilangan tersebut adalah bilangan

ganjil, dengan menggunakan analisis dua kasus.

Penyelesaian :

Misalkan bilangan yang dibaca adalah bil. Hanya ada dua kemungkinan jenis untuk bil, yaitu bilangan genap atau

(69)

Analisis Tiga Kasus atau Lebih :

Tiga Kasus :

if kondisi1 then

pernyataan1 else

if kondisi2 then

pernyataan2 else

if kondisi3 then

pernyataan3 endif

endif endif

Empat Kasus :

if kondisi1 then

pernyataan1 else

if kondisi2 then

pernyataan2 else

if kondisi3 then

pernyataan3 else

if kondisi4 then

pernyataan4 endif

(70)

Struktur Depend On

Konstruksi Depend On adalah sebagai berikut :

Depend On (

ekspresi)

nilai

1 :

pernyataan

1

nilai

2 :

pernyataan

2

nilai

3 :

pernyataan

3

. . .

nilai

n :

pernyataan

n

else :

pernyataan

x

EndDepend

(71)

Struktur Case

Konstruksi CASE adalah sebagai berikut :

case (

ekspresi) of

nilai

1 :

pernyataan

1

nilai

2 :

pernyataan

2

nilai

3 :

pernyataan

3

. . .

nilai

n :

pernyataan

n

else :

pernyataan

x

endcase

(72)

Konstruksi CASE yang ekivalen dengan konstruksi IF-THEN-ELSE

if (ekspresi = nilai1) then

pernyataan1 else

if (ekspresi = nilai2) then

pernyataan2 else

if (ekspresi = nilai3) then

pernyataan3 . . .

if (ekspresi = nilain) then

pernyataann else { otherwise }

pernyataanx endif

endif endif

(73)

Contoh Masalah :

Buatlah algoritma yang membaca sebuah

bilangan bulat yang nilainya terletak antara 1

sampai 4, lalu mencetak teks angka tersebut.

Misalkan bila dibaca angka 1, maka tercetak

tulisan “satu”, bila dibaca 2, maka tercetak di

layar tulisan “dua”, demikian seterusnya. Jika

angka yang dimasukkan selain 1 sampai 4,

(74)

Penyelesaian :

ALGORITMA KonversiAngkaTeks

{ Mencetak kata untuk angka 1 sampai 4 } Kamus :

angka : integer { angka yang dibaca } Algoritma :

input(angka)

if angka = 1 then output(“satu”) else

if angka = 2 then output(“dua”) else

if angka = 3 then output(„tiga‟) else

if angka = 4 then output(„empat‟) else

output(„angka yang dimasukkan salah‟) endif

(75)

Dengan konstruksi CASE, algoritma untuk masalah di atas dapat dibuat menjadi lebih singkat sebagai berikut :

ALGORITMA KonversiAngkaTeks

{ Mencetak kata untuk angka 1 sampai 4 }

Kamus :

angka : integer { angka yang dibaca }

Algoritma :

input(angka) case angka

1 : output(“satu”) 2 : output(“dua”) 3 : output(“tiga”) 4 : output(“empat”)

(76)

Tugas

Buatlah Algoritma untuk menu

pilihan sebagai berikut :

Menu Pilihan

1.Menghitung Luas Persegipanjang

2.Menghitung Luas Segitiga

(77)

KUIS

(78)

PERTEMUAN 7

STATEMENT PENGULANGAN

Algoritma dan Pemrograman I

Teknik Informatika

(79)

Secara umum struktur pengulangan dibagi dua bagian :

Kondisi pengulangan

Yaitu ekspresi

Boolean

yang harus

dipenuhi untuk melaksanakan

pengulangan. Kondisi ini dinyatakan secara

Explisit

( oleh pemrogram ) dan

Implisit

(

dikelola oleh komputer ).

Badan (

body

) pengulangan

(80)

Format Sintaks Algoritma

Stuktur pengulangan biasanya disertai dengan :

Inisialisasi

Aksi yang dilakukan sebelum pengulangan dilakukan pertama kali.

Terminasi

Aksi yang dilakukan setelah pengulangan selesai dilaksanakan.

Struktur pengulangan secara umum :

<inisialisasi>

<terminasi>

awal dan akhir pengulangan dinyatakan sebagai kata kunci yang bergantung pada struktur pengulangan yang dipakai.

(81)

Tiga macam notasi struktur pengulangan :

• Struktur FOR atau TRAVERSAL ( Pengulangan tanpa kondisi / Unconditional Looping ).

• Struktur WHILE..DO ( Pengulangan dengan kondisi / Conditional Looping )

(82)

FOR

• Statement for digunakan untuk mengulang eksekusi suatu ungkapan dengan jumlah pengulangan yang sudah tertentu.

• Bentuk sintaksnya dalam algoritma :

FOR var  awal to/downto akhir step counter DO

pernyataan

ENDFOR

atau

FOR var  awal to/downto akhir DO

pernyataan

ENDFOR

atau

namavar TRAVERSAL [awal..akhir]

(83)

Contoh dalam algoritma :

Algoritma Tulisan_10kali

{ Menampilkan tulisan ”Algoritma” sepuluh kali } Kamus :

pencacah : integer Algoritma :

(84)

Tugas

1. Buatlah Algoritma untuk menghitung : a. S = 1 + 2 + 3 + .. + n

b. S = 1 – 2/3 + 3/5 – 4/7

2. Buatlah Algoritma untuk menghitung faktorial 3. Buatlah Algoritma untuk menentukan suku

ke-n dari deret fibbonancy

4. Buatlah Algoritma untuk perkalian m dengan n menggunakan operator +

(85)

PERTEMUAN 8

(86)

PERTEMUAN 9-10

STATEMENT PENGULANGAN (lanjutan)

Algoritma dan Pemrograman I

Teknik Informatika

(87)

WHILE.. DO

• Bentuk umum struktur WHILE..DO dalam algoritma adalah :

[inisialisasi]

while (kondisi) do

pernyataan

{ada aksi thd var kondisi}

(88)

Cara kerja loop dengan while..do

melakukan inisialisasi, yaitu memberikan nilai

awal yang ada kaitannya dengan nilai

condition

(kondisi)

memeriksa nilai kondisi.

1. Bila nilainya

true

, maka laksanakan loop

yaitu mengerjakan instruksi yang ada

dalam loop.

(89)

Perbedaan FOR dengan WHILE..DO

FOR digunakan untuk proses

pengulangan yang

jumlah

pengulangannya dapat diketahui di

awal.

WHILE..DO selain dapat berfungsi

seperti FOR juga dapat digunakan

untuk proses yang

jumlah

(90)
(91)

REPEAT…UNTIL

Bentuk umum struktur REPEAT…UNTIL

dalam algoritma :

[inisialisasi] Repeat

pernyataan

{ada aksi thd var kondisi}

(92)

Contoh dalam algoritma :

Algoritma Tulisan_10kali

{ Menampilkan tulisan ”Algoritma” sepuluh kali }

Kamus :

pencacah : integer Algoritma :

pencacah  1 repeat

output(“Algoritma”)

(93)

Tugas

1. Buatlah Algoritma untuk menghitung :

a. S = 1 + 2 + 3 + .. + n

b. S = 1

2/3 + 3/5

4/7

menggunakan bentuk while_do dan

repeat_until.

2. Buatlah Algoritma untuk menghitung

faktorial, menggunakan while_do dan

repeat_until.

3. Buatlah Algoritma untuk perkalian m

dengan n menggunakan operator +,

menggunakan while_do dan

(94)

PERTEMUAN 11

PROSEDUR

Algoritma dan Pemrograman I

Teknik Informatika

(95)

Prosedur dan struktur prosedur

PROSEDUR :

Modul program yang mengerjakan tugas / aktivitas yang spesifik dan menghasilkan suatu

efek netto.

Suatu efek netto diketahui dengan

membandingkan keadaan awal dan keadaan akhir pada pelaksanaan sebuah prosedur.

Mendefinisikan prosedur :

Menuliskan nama prosedur

Mendeklarasikan nama-nama konstanta, peubah

(variabel) dan tipe ( jika ada ).

(96)

Prosedur dan struktur prosedur (lanjutan)

Struktur Prosedur

:

Bagian Judul (header)

Terdiri atas Nama prosedur dan deklarasi parameter ( jika ada ).

Bagian deklarasi (kamus)

Untuk mengumumkan nama-nama.

Bagian deskripsi (badan algoritma) Disebut juga badan prosedur.

Nama prosedur sebaiknya diawali dengan kata kerja karena prosedur berisi suatu aktivitas, misalnya

(97)

Prosedur yang baik

adalah

Prosedur yang

independent

dari program

pemanggilannya. Prosedur yang tidak

menggunakan peubah- peubah global di

dalam badan prosedurnya.

Jika program utama perlu

mengkomunikasikan nilai peubah global ke

dalam prosedur, maka ada satu cara untuk

melakukannya yaitu dengan menggunakan

(98)

Parameter

Parameter

adalah :Nama- nama peubah yang

dideklarasikan pada bagian

header

prosedur

1.

Parameter aktual ( argument ) adalah :

Parameter yang disertakan pada waktu

pemanggilan prosedur.

2. Parameter formal

adalah :

(99)

Parameter actual dan Parameter formal

Aturannya

:

Jumlah parameter aktual pada pemanggilan

prosedur harus sama dengan jumlah

parameter formal pada deklarasi rosedurnya.

Tiap parameter aktual harus bertipe sama

dengan tipe parameter formal yang

bersesuaian.

Tiap parameter aktual harus diekspresikan

(100)

Tiga Jenis Parameter formal

1. Parameter masukan ( Input parameter ).

Parameter yang nilainya berlaku sebagai masukan untuk prosedur.

Dalam bahasa pemrograman, istilah parameter masukan ini sering dinamakan parameter nilai

(value parameter atau parameter by value). 2. Parameter keluaran ( Output parameter).

Parameter yang menampung keluaran yang

dihasilkan oleh prosedur, parameter ini sering juga disebut parameter referensi (parameter by

reference).

3. Parameter masukan / keluaran ( Input/Output parameter ).

Parameter yang berfungsi sebagai masukan

(101)

Program dengan Prosedur atau Tanpa Prosedur?

Sangat dianjurkan menulis program yang modular. Program yang dipecah menjadi beberapa prosedur ( fungsi ) menunjukan teknik pemrograman yang baik dan terstruktur.

Prosedur dengan Parameter atau Tanpa Parameter?

Sangat dianjurkan menulsikan prosedur dengan parameter. Parameter berfungsi sebagai media komunikasi antara modul

dengan program pemanggil. Selain itu, parameter dapat mengurangi kebutuhan penggunaan peubah global.

Parameter Masukan atau Parameter Keluaran?

(102)

Procedure pada Algoritma

Prosedur Dengan Parameter Masukan

Prosedur Dengan Parameter Keluaran

Prosedur Dengan Parameter

(103)

Prosedur Dengan Parameter Masukan Pada Algoritma

1. Cara memanggil (dari algoritma/program utama)

Kamus :

Procedure namaprosedur(input namaparameter : type) Algoritma :

namaprosedur(parameter_aktual)

2. Cara mendifinisikan:

Procedure namaprosedur(input namaparameter : type)

{ I.S.(kondisi awal) : … } { F.S.(kondisi akhir) : … } Kamus :

{deklarasi/kamus lokal}

Algoritma :

{aksi-aksi dalam satu prosedur}

(104)

Prosedur Dengan Parameter Keluaran

pada Algoritma

1. Cara memanggil (dari algoritma/program utama)

Kamus :

Procedure namaprosedur(output namaparameter : type) Algoritma :

namaprosedur(parameter_aktual)

2. Cara mendifinisikan:

Procedure namaprosedur(output namaparameter : type)

{ I.S.(kondisi awal) : … } { F.S.(kondisi akhir) : … } Kamus :

{deklarasi/kamus lokal}

Algoritma :

{aksi-aksi dalam satu prosedur}

(105)

Prosedur Dengan Parameter Masukan/Keluaran Pada Algoritma

1. Cara memanggil (dari algoritma/program utama)

Kamus :

Procedure namaprosedur(input/output namaparameter : type) Algoritma :

namaprosedur(parameter_aktual)

2. Cara mendifinisikan:

Procedure namaprosedur(input/output namaparameter : type) { I.S.(kondisi awal) : … }

{ F.S.(kondisi akhir) : … } Kamus :

{deklarasi/kamus lokal}

Algoritma :

{aksi-aksi dalam satu prosedur}

(106)

1. Contoh translasi prosedur dengan parameter masukan

procedure HitungLuasSegitiga(input alas, tinggi : real)

{ I.S. : alas dan tinggi sudah terdefinisi nilainya } { F.S. : menampilkan luas segitiga }

Kamus :

luas : real { luas segitiga, dalam cm2 }

Algoritma :

luas  (alas * tinggi)/2 output(luas)

(107)

Algoritma utama yang memanggil prosedur HitungLuasSegitiga

Algoritma_Segitiga

{ Menghitung luas N buah segitiga. } Kamus :

i, N : integer a, t : real

Procedure HitungLuasSegitiga(input alas, tinggi : real)

{ Menghitung luas segitiga dengan rumus L =(alas x tinggi)/2 } Algoritma :

input (N) { tentukan banyaknya segitiga } for i  1 to N do

input (a,t)

HitungLuasSegitiga(a,t) endfor

EndProcedure ALGORITMA :

(108)

2. Contoh translasi prosedur dengan parameter keluaran

Procedure HitungLuasSegitiga(input alas, tinggi : real, output luas : real)

{ I.S. : alas dan tinggi sudah terdefinisi nilainya } { F.S. : menghasilkan luas segitiga. }

Kamus :

{ tidak ada }

Algoritma :

luas  (alas * tinggi)/2

(109)

Algoritma_Segitiga

{ Menghitung luas N buah segitiga. }

Kamus :

i, N : integer a, t : real

L : real { luas segitiga }

Procedure HitungLuasSegitiga(input alas, tinggi : real , output luas : real) Algoritma :

input (N) { tentukan banyaknya segitiga }

for i  1 to N do input (a,t) HitungLuasSegitiga(a,t,L) output (L) endfor EndProcedure ALGORITMA : {Algoritma utama}

(110)

3. Contoh translasi prosedur dengan parameter masukan / keluaran

Procedure Tukar(input/output A,B : integer)

{ I.S. : nilai A dan B sudah terdefinisi. }

{ F.S : A berisi nilai B, B berisi nilai A semula. }

Kamus :

temp : integer { peubah Bantu }

Algoritma :

temp  A { simpan nilai A ke dalam temp }

A  B { isikan nilai B ke dalam A }

(111)

Algoritma_SelisihXY

{Prog. untuk menghitung selisih nilai X dan Y,dengan syarat X ≥ Y jika X < Y,ma ka X dan Y dipertukarkan dengan memanggil prosedur Tukar. }

Kamus :

X, Y, Z : integer

Procedure Tukar(input/output A,B : integer) { mempertukarkan nilai A dan B }

Algoritma :

input(X,Y) { baca nilai X dan Y terlebih dahulu }

{Jika X < Y, pertukaran nilai X dan Y dengan memanggil prosedur Tukar } If (X < Y)

then

Tukar(X,Y) endif

Z  X – Y { hitung selisih x dan Y } output(Z)

EndProcedure

{ Algoritma utama}

(112)

Tugas

Buat Algoritma untuk menghitung faktorial

dengan menggunakan dua prosedur (prosedur memasukkan harga N dan prosedur

(113)

PERTEMUAN 12

(114)

PERTEMUAN 13

FUNCTION

Algoritma dan Pemrograman I

Teknik Informatika

(115)

Definisi Fungsi

Fungsi/function adalah bagian dari

program yang memiliki nama

tertentu, digunakan untuk

mengerjakan suatu pekerjaan

tertentu, serta letaknya dipisahkan

dari bagian program yang

(116)

Keuntungan menggunakan fungsi

• Program besar dapat dipisah menjadi program-program kecil.

• Dapat dikerjakan oleh beberapa orang sehingga koordinasi mudah.

• Kemudahan dalam mencari kesalahan-kesalahan karena alur logika jelas dan kesalahan dapat dilokalisasi dalam suatu modul tertentu saja.

• Modifikasi program dapat dilakukan pada

suatu modul tertentu saja tanpa mengganggu program keseluruhan.

• Mempermudah dokumentasi.

(117)

Sifat-sifat modul/fungsi yang baik

Nilai

fan-in

tinggi, artinya semakin

sering suatu modul dipanggil oleh

pengguna semakin tinggi nilai

fan-in

Fan-out

rendah, artinya semakin

spesifik fungsi suatu modul akan

semakin rendah nilai

fan-out

(118)

Kategori Function

Standard Library Function

Yaitu fungsi-fungsi yang telah disediakan oleh Compiler dalam file-file header atau library.

Misalnya: clrscr(), printf(), getch(),writeln(),readln()

Programmer-Defined Function

Adalah function yang dibuat oleh programmer sendiri. Function ini memiliki nama tertentu yang unik dalam program, letaknya terpisah dari

(119)

Bentuk Umum Fungsi

Function namafungsi(daftar parameter formal) tipehasil

{I.S. : ………….} {F.S. : …………}

Kamus :

{deklarasi/kamus lokal} Algoritma :

(120)

Contoh Fungsi untuk memutlakan nilai negatif

Function Absolut(Input X : integer) integer /* definisi fungsi */ {I.S. : Harga X sudah terdefinisi}

{F.S. : menghasilkan fungsi absolut dari x} Kamus :

Algoritma :

if (X<0) then

Absolut -1 * X { atau return( X ) } EndIf

EndFunction

{Algoritma utama}

Algoritma_Nilai_Absolut

{membuat nilai absolut dari X} Kamus :

Function Absolut(Input X : integer) integer Nilai : integer

Algoritma :

Nilai Absolut(-123,45) {memasukkan secara langsung angka -123.45 ke variabel Nilai}

(121)

Latihan 1

Sebuah fungsi rumus matematika

didefinisikan sebagai berikut:

F(x)=3*x1+x2

Dimana nilai x1 dan x2 adalah

bilangan bulat, buatlah algoritma

fungsi dari rumus matematika

tersebut

(122)

Latihan 2

Antrian di kasir mempunyai urutan nomor dari

1..10 urutan 10 adalah seorang ibu hamil yang

akan melahirkan, Seorang Satpam ingin

merubah urutan antrian tersebut menjadi 10..1

Buatlah algoritma fungsi untuk satpam

(123)

Latihan 3

Sebuah bioskop terdapat antrian

penonton berjumlah 10 orang diskon

diberikan pada tiap orang berdasarkan

urutan nomor (misal nomor 10

mendapat diskon 5% dibagi 10) buatlah

fungsi penghitung diskon yang akan

mengembalikan total diskon yang

diberikan kepada 10 orang tersebut dan

penggunaan fungsi pada algoritma

(124)

Tugas

Sebuah fungsi matamatika akan

mengembalikan hasil perhitungan dari

5 buah bilangan dengan deret urutan

sebagai berikut 3,6,7,8,0 rumus dari

fungsi tersebut adalah

F(x)=nilai terbesar/2

Buatlah algoritma dan penggunaan

(125)

PERTEMUAN 14

ARRAY (LARIK)

Algoritma dan Pemrograman I

Teknik Informatika

(126)

ARRAY

Array

atau

larik

adalah

koleksi data

dimana setiap elemen memakai

nama

yang sama

dan

bertipe sama

dan setiap

elemen diakses melalui

indeks

arraynya.

Array adalah

variabel berindeks

. Indeks

harus bertipe yang memiliki keturutan (ada

succesor dan predesor), misal integer,

(127)

Deklarasi Array Dimensi Satu

Bentuk Umum : 1. Kamus :

NamaVarArray : Array[range_indeks] of tipedata 2. Kamus :

Const

maks_array = ….

NamaVarArray : Array[1..maks_array] of tipedata 3. Kamus :

Const

maks_array = ….

Type

NamaTipeArray = Array[1..maks_array] of tipedata NamaVarArray : NamaTipeArray

(128)

Deklarasi Array Dimensi Satu

Contoh :

Kamus :

X : Array [1..10] of integer

Artinya : mendefinisikan 10 variabel bertipe integer Yaitu : X(1), X(2), X(3), .. X(10)

Contoh lain :

(129)

Deklarasi Array Dimensi Satu

Cara Memberikan Nilai/Harga pada Array

NilaiMka : Array[1..10] of Char

NilaiMka(1) 

’A’

(130)

Algoritma_Array1D Kamus :

N : array[1..5] of integer i : integer

Algoritma :

N(1)  25 N(2)  12 N(3)  17 N(4)  10 N(5)  15

For i  1 to 5 do Output (N(i)) EndFor

(131)

Latihan

1. Buat algoritma untuk menentukan bilangan genap pada Array bilangan(1..N).

2. Buatlah algoritma untuk menampilkan daftar nilai yang terdiri dari NIM(1..N), Nama(1..N), Nilai

Kehadiran(1..N), Nilai Tugas(1..N), Nilai UTS(1..N), Nilai UAS(1..N), Nilai Akhir(1..N) dan Indeks

Nilai(1..N). Dimana Nilai Akhir dihitung dari 10% Nilai Kehadiran, 20% Nilai Tugas, 30% Nilai UTS dan 40% Nilai UAS. Yang dimasukan oleh user

NIM, Nama, Nilai Kehadiran, Nilai Tugas, Nilai UTS dan Nilai UAS. Buat dalam bentuk modular terdiri dari fungsi menghitung Nilai Akhir, fungsi

(132)

PERTEMUAN 15

RECORD (REKAMAN)

Algoritma dan Pemrograman I

Teknik Informatika

(133)

Definisi Record

Record

atau rekaman adalah salah satu

tipe data terstruktur/bentukan yang

terdiri dari beberapa elemen (

field

).

Setiap

field

menggambarkan informasi

tertentu, dan tipe data dari setiap

field

sudah dikenal, baik itu tipe data dasar

maupun tipe data bentukan lainnya

(134)

Deklarasi Record

Bentuk Umum : Kamus :

Type

NamaTipeRecord = Record < field_1 : tipedata_1,

field_2 : tipedata_2, ..

field_n : tipedata_n > EndRecord

(135)

Contoh

:

Kamus : Type

RecMahasiswa = Record < NIM, Nama : string,

Nilai : integer, Indeks : char > EndRecord

Mhs : RecMahasiswa

Artinya : mendefinisikan record Mahasiswa dengan field-fieldnya : NIM dan Nama bertipe data string, Nilai bertipe data integer, dan Indeks nilai bertipe char, dan

(136)

Mhs : RecMahasiswa

Mhs.NIM

’10109005’

Mhs.Nama 

’Ujang’

Mhs.Nilai

70

Mhs.Indeks 

‘B’

(137)

Algoritma_Record_Mahasiswa Kamus :

Kamus : Type

RecMahasiswa = Record < NIM, Nama : string,

Nilai : integer,

Indeks : char > EndRecord

Mhs : RecMahasiswa Algoritma :

Mhs.NIM  ’10109005’ Mhs.Nama  ’Ujang’ Mhs.Nilai  70

Mhs.Indeks  ‘B’

Output (Mhs.NIM,Mhs.Nama,Mhs.Nilai,Mhs.Indeks)

(138)

Latihan

Buat algoritma untuk menghitung luas

segitiga menggunakan record, dimana

field dari record segitiga adalah alas, dan

tinggi. Gunakan sebuah fungsi untuk

menghitung luas segitiga dan sebuah

prosedur untuk memasukkan harga alas

dan tinggi oleh user beserta menampilkan

luas segitiga yang sudah dihitung oleh

(139)

Array of Record

Elemen-elemen larik/array bisa juga bertipe terstruktur. Contohnya akan mengolah data mahasiswa sebanyak 100 mahasiswa yang terdiri dari NIM, Nama, dan IPK. Struktur logik dari larik Mahasiswa adalah :

NIM Nama IPK

1 2 .. 100

Dari tabel terlihat setiap elemen larik bertipe terstruktur (Record). Tiap Record terdiri dari NIM, Nama dan IPK.

10109002 Asep 3.04

10109011 Sari 2.78

..

(140)

Deklarasi Array of Record

Struktur larik yang menyimpan keseluruhan data

Mahasiswa tersebut dapat dideklarasikan sebagai berikut : Kamus :

Const :

maks_array = 100 Type

RecMahasiswa = record < NIM, Nama : string,

IPK : real > EndRecord

(141)

• Cara mengakses suatu elemen array of record Mahasiswa :

Mhs(indeks).field_record

• Cara Memberikan Nilai/Harga pada array of record Mahasiswa :

Mhs(1).NIM ‘10109002’

Mhs(1).Nama ‘Asep’

(142)

Latihan

Buat algoritma untuk data berikut :

Daftar Nilai Mahasiswa

Gunakan min. 2 fungsi dan min. 2 prosedur beserta pengendalinya (algoritma utama)

No NIM NAMA N.HADIR N.TUGAS N.UTS N.UAS N A INDEKS

1

..

(143)

PERTEMUAN 16

Gambar

Tabel Pengelompokan Operator
Tabel Pengelompokan Operator (lanjutan)
TABEL PENGELOMPOKAN TIPE DATA DASAR pada ALGORITMA
TABEL PENGELOMPOKAN TIPE DATA DASAR pada ALGORITMA

Referensi

Dokumen terkait

Translator notasi algoritmik dapat membantu mahasiswa memecahkan masalah di bidang pemrograman dasar tanpa belajar bahasa program yang rumit, seperti kerangka pikir

Bahasa algoritmik (pseudo-code) adalah sebuah bahasa penengah antara manusia dan komputer. Pseudo-code dibuat untuk memudahkan algoritma dengan logika manusia diubah

Pemecahan masalah tidak harus dengan langsung menulis program dengan bahasa pemrograman tertentu1. Disain pemecahan masalah

Dengan memanfaatkan E-Learning berbasis website maka pengetahuan, pemahaman, serta kemampuan logika terhadap algoritma dan bahasa pemrograman tidak mudah terlupakan oleh

diterjemahkan ke dalam notasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis program sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin

Algoritma adalah urutan langkah adalah urutan langkah ––  langkah untuk menyelesaikan suatu masalah  langkah untuk menyelesaikan suatu masalah menggunakan komputer..

Praktikan membuat program dengan bahasa pemrograman yang sesuai pada kasus di Latihan dengan bimbingan Instruktur.. Setelah itu, praktikan mengerjakan Tugas Praktikum

• Pemrograman adalah suatu kumpulan urutan instruksi yang dibuat menggunakan bahasa yang dimengerti oleh komputer untuk mengerjakan suatu perintah, • Instruksi yang dibuat