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
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.
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.
Algoritam efektif, bila dijalan ol pemroses (processor), Pemroses bisa manusia,komputer,robot,mesin dsb. Pemroses membaca setiap instruksi dlm algo lalu mengerjakannya
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
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
Contoh2 pernyt:
Tulis hello word : maka pernyt tersbt akan menulis pesan hello word Jika bulan=januari, maka jumlah hari=31
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
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
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.
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.
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.
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
: proses menyatakan proses terhdp data : input/output menerima input a atau menampilkan output
: arus data
: dokumen
: multi dokumen
Lanjut:
:file/storage : display/monitor
: magnetik disk
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
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 = 0
bayar
stop
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
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.