Anda di halaman 1dari 77

BAB I

KONSEP DASAR ALGORITMA & FLOWCHART

I.

PENGERTIAN ALGORITMA

1. Masalah

Manusi hidup dgn segala masalah Hidup pd dasarnya adl serangkaian aktifitas menyelesaikan masalah Masalah adl pertanyaan atau tugas yg akan dicari jawabannya.

Contoh masalah:

Diberikan sebuah daftar yg berisi nama2 mah yg diterima pd PT. daftar tersbt hanya berisi no psrta ujian yg lulus. Carilah apakah seorang calon mah baru yg no psrta ujiannya diketahui terdpt dlm daftar tersbt? Jwban dr masalah ini adl Ya jika no tersbt ditemukan dlm dftr , atau tdk jika no tersbt tidak ditemukan.

2. Algoritma

Masalah dgn algoritma? Masalah dgn instansiasi kecil, solusi akan ditemukan dgn cepat dan mudah. Bgmn dgn masalah yg mempunyai instansiasi besar? Dilakukan cara menuliskan prosdur yg berisi langkah2 shg prosdur dpt dijalankan oleh komputer u/ menghasilkan solusi.

lanjutan

Prosedur yg berisi langkah2 u/ memecahkan suatu masalah disbt algoritma

Terdpt beberapa definisi lain- tetapi pada perinsipnya senada dgn definisi tersbt diatas:

lanjutan

Algoritma adl deretan langkah2 komputasi yg mentransformasikan data masukan menjd keluaran Algoritma adl deretan instruksi yg jelas u/ memecahkan mslh, yaitu u/ memperoleh keluaran yg diinginkan dr suatu masukan dlm jumlah waktu yg tak terbatas

lanjutan

Algoritma adl prosedur komputasi yg terdefinisi dgn baik yg menggunakan bbrpnilai sgb masukan dan menghasilkan bbrp nilai yg disbt keuaran. Jadi algoritma adlh deretan langkah komputasi yg mentransformasikan masukan menjadi keluaran

Dlm kehidupan sehr2 byk ditemukan langkah2 pengerjaan terhdp sesuatu, walaupun kt tdk menyebtnya sbgi algoritma, tetapi cara melakukan sesuatu,misal: Resep membuat masakah, tutorial praktikum, cara menggunting pakaian dll.

Contoh cara melakukan sesuatu


Contoh langkah2 pengerjaan dlm resp masakan: 1. Tuang 1 gls santan 2. Masukkan bumbu yg sdh dihaluskan,aduk hngga rata 3. Tambahkan garam, merica dan kecap asin 4. Masak dgn api sedang sambil di aduk

Soal masalah sederhana

Misalkan 2 buah ember (A & B), ember A berisi larutan berwarna merah, ember B berisi larutan berwarna biru. Pertukarkan ke2 isi ember tersbt, sgh ember A berisi larutan berwana biru dan sebaliknya.

3.Sejarah Algoritma?

Ditinjau dari asal usul katanya kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata Algorism yang berarti proses menghitung dengan angka arab Anda dikatakan Algorist jika anda menghitung menggunakan Angka Arab

para ahli sejarah matematika menemukan asal kata algorism yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Jafar Muhammad Ibnu Musa AlKhuwarizmi
Al-Khuwarizmi, dibaca oleh orang barat menjadi algorism Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya Buku pemugaran dan pengurangan(The book of restoration and reduction) Algorithm menjadi algorism, yang berarti metode perhitungan (komputasi) secara umum. Dalam Bahasa Indonesia, kata Algorithm diserap menjadi Algoritma.

4. Program dan Pemrograman


Algoritam efektif, bila dijalan ol pemroses (processor), Pemroses bisa manusia,komputer,robot,mesin dsb. Pemroses membaca setiap instruksi dlm algo lalu mengerjakannya

Suatu pemroses harus:


1.

2.

Mengerti setiap langkah dlm algoritma Mengerjakan operasi yg bersesuian dengan langkah tersebut

lanjutan
Fokus pemroses dlm algo adl KOMPUTER. PROGRAM adlh algo yg ditulis dlm bhs komputer. Bhs komputer yg digunkan u/ menulis program dinamakan Bhs Pemrograman Orang yg membuat program komputer disbt Pemrogram (programmer). Kegiatan merancang dan menulis program disbt pemrograman

lanjutan

Belajar memprogram tdk sama dgn belajar bhs pemrograman Belajar memprogram: mempelajari metodologi pemecahan masalah, kmdian menuliaskan algo pemchn mslh dgn notasi tertentu. belajar bhs pemrograman: belajar menggunakan satu bhs komputer tertentu.

Bhs Pemrograman
Berdsrkn tujuan aplikasi dibagi: 1. Spesifik purpose programming language, yg termasuk dlm klompok ini adl: COBOL (terpb bisnis dan admnins), FORTRAN (aplikasi komputasi ilmiah), assemby(aplks pemrog mesin),prolog (AI), bhs2 simulasi (SIMscript) dll 2. General purpose programming language,yg dpt digunakan untuk berbgi aplikasi. Pascal,BASIC,C,C++

Berdsrkan kedekatan , bhs man /bhs mesin: 1. Bhs tingkt rendah: setiap instruksi
lgsung dikerjakanJ ol komputer. Tanpa melalui tanslator.ciri2: primitif,sgt sederhan, sgt sulit dipahami manusia. Contoh:assemby 2.tingkt tinggi: mendekati bhs manusia.ciri: butuh tanslator (kompiler/interpreter). Contoh: pascal,basic,cobol,fortran,C,C++ dsb

Tahapan pelaksanaan prog ol komp


algoritama
trasnlasi

Program dlm bhs TT


Kompilasi + lingkiing

Program dlm bhs Mesin


Interpretasi ol cpu operasi

Tahapan dlm pemrog komputer


1. 2. 3. 4. 5.

6.
7.

Mendefinisikan masalah Menentukan solusi Memilih algoritma Menulis program Menguji program Menulis dokumentasi Merawat program

5. Pemrograman prosedural

Algo berisi langkah2 penyelesaian masalah yg dinytkan dgn proses yg prosedural Pemrog prosedural adl tah pelaksanaan program yg mengikuti pola beruntun/prosedural. Contoh2 prog pros adl: basic,cobol,pascal,fortran dan C

lanjut
1. 2. 3. 4.

Paradigma pemrog yg populer : Pemrograman OOP Pemrograman fungsional Pemrograman deklratif Pemrograman konkruen

II.STRUK. DASAR ALGORITMA


Statement/pernyataan Sebuah algo:deskripsi langkah2 pelaks suatu proses. setiap langkah dlm algo dinytkn dlm sebuah pernyt. Atau istilah lainnya instruksi sebuah pernyt berisi action yg dilakukan. bila sebuah pernyt dieksekusi ol pemroses,maka aksi yg bersesuain dgn penyt akan dikerjakan.
1.

Contoh2 pernyt:

Tulis hello word : maka pernyt tersbt akan menulis pesan hello word Jika bulan=januari, maka jumlah hari=31

Pernyt tersbt dinamakan pernyt kondisi/selection

Struktur dasar algo:


1.

2. 3.

Runtunan : terdr dr 1/lbh state ditulis dlm 1 brs diantarai (;) dikerjakan secr berurutan sesuai dgn urtanya dlm algo. Instruksi dilaksanakan jika instruksi sblmnya selesai Pemilihan selection Masing2 Akan dibhs khusus pd bab 3,4 dan 5 pengulangan

Conth algo runtunan


Algo mempertukarkan isi 2 buah ember A & B 1. Tuangkan air dr ember A ke dlm ember C 2. Tuangkan air dr ember B ke dlm ember A 3. Tuangkan air dr ember C ke dlm ember B

III. Notasi Algoritmik Adlh Notasi yg digunkn menuliskan Algoritma. terdiri atas: 1. deskriptif 2. Pseudo-code 3. flowchart untuk

1. Deskriptif
Kalimat

deskriptif merupakan suatu notasi algoritma yang berupa kalimat deskriptif atau narasi yang hanya nerupa kata-kata atau kalimat-kalimat yang menjelaskan stuktur penyelesaian :

ALGORITMA Kelulusan_mhs
Diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa tersebut dinyatakan lulus jika nilai lebih kecil dari 60 maka dinyatakan tidak lulus.
DESKRIPSI : baca nama dan nilai mahasiswa. jika nilai >= 60 maka keterangan = lulus tetapi jika tidak, maka keterangan = tidak lulus. tulis nama dan keterangan

2. pseudo-code

Mempunyai korespondensi dgn notasi bhs pemrog shg proses penerjemahan dr pseudo-code ke kd program lbh mudah. Tdk ada aturan baku membuat pseudo-code Tdk direpotkan dgn tanda (;), indeks,dll

Formula pseudo-code
PROGRAM nama_prog Bag. Judul {penjelasan spesifikasi program} DEKLARASI Bag. Deklarasi ALGORITMA Bag. Algoritma

Bagian Judul

Terdr atas Nama Program dan penjelasan spesifikasi program Diawali dgn kata kunci PROGRAM & nama_program PROGRAM bkn instruksi bhs komp, ttp hy menytkan sdng menulis algo u/ prog pemecahan masalah Nama prog singkt sj,ckp menggambrkan program apa yg mau dibuat

Contoh:

PROGRAM hitung luas segitiga {program untuk menghitung luas segitiga dgn meng-input alas dan tinggi segitia}

Bag. Deklarasi

Mengumumkan semua nama yg digunakan dlm algo nama tersbt berupa: type data,var.konst,label,prosedur dan fungsi. Semua nama tersbt hrs dikenal sblm digunakan Bag deklarasi mgkn kosong jika tdk ada penggunaan nama

Contoh:
DEKLRASI Alas,tinggi : Real Nama mah : string

Contoh dek.konst,type,var
Deklarasi Const npeg =100 Const phi = 3.14 Type mah=record < nama,npm:string > C : char A,b,c : integer;
konstanta

type

variabel

Bagian Algoritma

Bag inti dr sebuah program Berisi instruksi pemecahan masalah dlm notasi pseudo-code Contoh: Read (alas,tinggi) luas (alas * tinggi)/2 write luas

Contoh1 ditulis lengkap

PROGRAM hitung luas segitiga {program untuk menghitung luas segitiga dgn meng-input alas dan tinggi segitia} DEKLRASI Alas,tinggi : Real Nama mah : string ALGORITMA Read (alas,tinggi) luas (alas * tinggi)/2 write luas

Contoh 2

Buat algoritma dgn pseudo-code untuk menghitung luas lingkaran Algoritmanya adalah:

PROGRAM hitung luas lingkaran {program untuk menghitung luas lingkaran dgn meng-input jarijari}
DEKLRASI Jari, luas : Real Const phi = 3.14 ALGORITMA Read (jari) luas (3.14 * jari* jari ) write luas

Contoh 3

Buat algoritma dgn pseudo-code untuk melakukan konversi dari suhu Farenheit ke Celcius.

PROGRAM konversi FC {program untuk mengonversi Suhu Farenheit ke Celcius }


DEKLRASI F, C : Real ALGORITMA Read (F) C (F-32)* 5/9 write

Contoh 4
Buat algoritma untuk menentukan luas halaman yg harus ditanami rumput. Lebar tanah 20 mtr, panjang tanah 30 mtr, lebar rumah 15 mtr dan panjang rumah 15 mtr.

Algoritma dgn pseudo-code adalah:

PROGRAM luas halaman {program untuk menghitung luas halaman dgn menginput Lbt,Lbr,Pt,Pr} DEKLRASI Lbt,Lbr,Pt,Pr: Real ; Lt,Lr,Lh :Real ALGORITMA Read (Lbt,Lbr,Pt,Pr) Lt lbt + Pt Lr Lbr + Pr LH Lt + Lr write ( Lh)

Tugas Anda
1.

2.

3.

Buat algoritma untuk menukarkan isi dua buah variabel Buat pseudo code untuk menampilkan Biodata Mahasiswa Buat algoritma untuk menghitung panjang dan keliling sebuah persegi panjang

3. Flowchart
Flowchart (Bagan Alir) : bagan (chart) yang menunjukkan alir (flow) didlm program/prosedur sistem secara logika Flochart digunakan terutama untuk alat bantu komunikasi & untuk dokumentasi Flowchart = Diagram Alir yang berbentuk diagram yang dapat mengalirkan sesuatu.

Lanjut:

Flowchart adlh teknik untuk menyusun rencana program telah dipergunakan oleh kalangan programmer komputer sebelum algoritma menjadi populer. Flowchart adlh uraian simbol gambar yg menunjukkan aliran dari proses terhadap data.

Pedoman2 pembuatan flowchart:


a.

b. c.

d.

BA sebaiknya digambar dr atas ke bawah dr bg.kiri suatu hal Kegiatan dlm BA hrs ditunjukkan dgn jelas Hrs ditunjukkan dr mana keg akan dimulai & akan berakhitnya Masing2 keg.sebiknya digunakan suatu kata yg mewakili suatu pekerjaan,misal:persiapkan dok, hitung gaji dsb

lanjut
e. masing2 keg. Hrs dlm urutan yg

semestinya f. Keg yg terpotong yg akan disambung ditempt lain hrs ditunjukkan dgn jelas menggunakan simbol penghubung g. Gunakan simbol2 BA yg standar

Simbol program flowchart:


: terminator u/ mulai & selesai

: proses menyatakan proses terhdp data : input/output menerima input a atau menampilkan output

: Seleksi u/ memilih aliran berdsrkan syarat

: predefined data definsi awal dr var atau data

: predefined proses lambang fungsi/sub program

: connector penghubung pd hal

: oof-page connector penghubung hal yg berbeda

: arus data

Simbol system flowchart


: keyborad

: dokumen

: multi dokumen

Lanjut:

:file/storage : display/monitor

: magnetik disk

Ada 5 macam Bagan Alir yaitu:


1.

2. 3. 4. 5.

BA Program ( program flowchart) BA system (system flowchart) BA Dokumen (document flowchart) BA Skematik ( schematic flowchart) Bagan Alir proses ( proses flowchart)

System flowchart

Menunjukkan arus pekerjaan secara keseluruhan dr sistem. Menjelaskan urutan2 dr prosedur yg ada dlm sistem Menunjukkan apa yg dikerjakan di sistem Menggunakan simbol2 yg khusus/tertentu

1. Dokumen flowchart
Disebut jg bagan alir formulir /paperwork Menunjukkan arus dr laporan dan formulir termsk tembusan2nya Menggunakan simbol2 yang sama dengan system flowchart

2. Schematik flowchart:

Bagan alir yg mirip dgn bagan alir sistem, yaitu menggambarkan prosedur di dlm sistem Yg berbeda: skematika selain menggunakan simbol BA sistem, ttp jg menggunakan gambar komp & perlatan lainnya. Penggunaan gambar betujuan : memudahkan komunikasi kpd orang yg krng paham dgn simbol2 BA. Pengg.gambar2 memudahkan untuk dipahami, ttp sulit dan lama menggambarnya.

3. Program flowchart
Bagan yg menjelaskan secara rinci langkah2 dr proses program Dibuat dr derivikasi bagan alir sistem Dibuat dgn menggunakan sombol2 tertentu

4. Program flowchart dibagi atas:


1.

BA logika program (program logic flowchart): digunakan untuk menggambarkan tiap2 langkah didlm program komputer secara logika. BA logika dipersiapkan oleh analis sistem

lanjut
2. BA program komputer terinci ( detailed computer program flowchart) : digunakan untuk menggambarkan instruksi2 program komputer secara rinci. Bagan alir ini dipersiapkan oleh pemrogram.

5. Process fowchart:
Bagan alir yg banyak digunakan di industri Berguna bg analis sistem untuk menggambarkan proses dlm suatu prosedur Menggunakan lima buah simbol tersendiri.

Lanjut:

Soal2 latihan
1.

2.

3.

Gambar flowchart dr proses pemilihan satu bilangan yg lebh besar dr 2 buah bilangan x & y. Proses memilih satu bilangan terbesar dari tiga bilangan Suatu swalayan memberikan diskon sebesar 10% bg yg berbelanja Rp.100.000 /lebih.

star

input X,Y

X>Y
N

Cetak = X

Cetak = Y

stop

star

input X,Y,Z
n n

X>Y
y n

y> z

Cetak Y

Cetak Z
X>z

Cetak X

stop

star

input pembelian

Y Pembelian >=100000

Diskon = 10% * pembelian

Diskon = 0

Bayar= pembelian- diskon

bayar

stop

Translasi notasi algo dlm bhs pascal


Teks algo adl desain penyelsaian masalah Agar dpt dieksekusi ol komputer, maka hrs diterjemhkan dlm notas bhs pemrog Penerjemahan dr notasi algoritmik kedlm bhs pemrog disbt translasi Bhs prog yg dipilih adl pascal krn notasinya mirip dgn bhs inggris standar

Contoh2

translasi dr 3 kasus dn notasi flowchart diatas

Algoritmik/pseudo-code
Program terbesar
{ {mencari bilangan yg terbesar diantara 2 bil X dan Y} Deklarasi X,y : real; Algoritma: Read (X,Y) If X > Y then write (terbesar = X) Else write (terbesar =y);

Program pascal
Program terbesar; Uses wincrt; var X,y : real; begin Write (bilangan 1=); Readln(X) Write (bilangan 2=); Readln(y) If X > Y then writeln (bilangan terbesar =, X) Else write (bilangan terbesar =,y); End.

algoritmik
Program bilangan
{mencari bilangan yg terbesar diantara 3 bil X,Y,Z}

Deklarasi X,y,Z : real; Algoritma: Read (X,Y,Z) If X > Y then if (X > Z) then write (terbesar=,X) else write (terbesar =,Z) Endif Else if (Y>Z) then write (terbesar =;,Y) else write (terbesar =, z) endif endif

Program pascal
Program bilangan; Uses wincrt; var X,y,Z : real; begin Write (input bilangan 1 =);Readln (X); Write (input bilangan 2 =);Readln (Y); Write (input bilangan 3 =);Readln (Z); If X > Y then if (X > Z) then writeln (terbesar=,X) else writeln (terbesar =,Z) Else if (Y>Z) then writeln (terbesar =;,Y) else write (terbesar =, z) End.

algoritmik
Program belanja
{menentukan pe,bayaran menurut pembelian dan discon}

Deklarasi Beli,dc,bayar : real; Algoritma: Read (beli) If beli >=100000 then dc Else dc 0; Endif Bayar beli-dc Write (bayar)

0.1 * 100000

pascal
Program belanja;
Uses wincrt

var Beli,dc,bayar : real; begin Write (jumlah pembelian =,);Readln (beli); If beli >=100000 then dc:=0.1 * 100000 Else dc:=0; Bayar :=beli-dc; Writeln (jumlah bayar=,bayar); End.

Anda mungkin juga menyukai