Yuliant Sibaroni M.T, Abduraman !ai"al M.Kom KK Algoritma dan Kom#utasi KUG1E3/ Pemrograman Terstruktur 1 Pengantar Algoritma Tentang Mata Kulia Kasus$Kasus Pemrograman Paradigma Pemrograman Se%ara !aasa Pemrograman &otasi Algoritmik Ti#e 'asar dan (#erasin)a * +/13/1, KUG1E3/ Pemrograman Terstruktur 1 Tentang Mata Kuliah Hubungan dengan Mata Kuliah lain Mata kulia #emrograman terstruktur 1 menga%arkan konse#$ konse# #emrograman se-ara #rosedural/terstruktur Mata kulia ini memiliki keterkaitan dengan MK #ada tingkat atas Penguasaan )ang baik terada# MK ini diara#kan akan berguna sebagai sebagai bekal bagi maasis.a dalam mengambil mata kulia #emrograman #ada tingkat )ang lebi atas se#erti / MK Pemrograman Terstruktur 2, esain dan Analisis Algoritma Kom!utasi Paralel "istem Terdistribusi Gra#ika Kom!uter dan Kom!utasi Kiner$a Tinggi 3 +/13/1, KUG1E3/ Pemrograman Terstruktur 1 Tentang Mata Kuliah Titik %erat Pembela$aran Mata kulia ini menga%arkan konse# #emrograman ke#ada maasis.a, bukan !aasa Pemrograman tertentu &otasi )ang digunakan dalam kulia ini adala sebagian besar adala notasi algoritmik )ang menga-u ke#ada re0erensi 112. Titik berat/ maasis.a dia%arkan untuk men)elesaikan suatu masala dengan langka$langka )ang sistematis menggunakan notasi standar 3notasi algoritmik4 )ang tela diteta#kan , +/13/1, KUG1E3/ Pemrograman Terstruktur 1 Kasus&kasus Pemrograman '(er(ie) Kasus #emrograman menggunakan #erinta$ #erinta 'asar Kasus #emrograman dengan Pen-abangan Kasus #emrograman dengan Perulangan 'alam sub$bab ini, akan diberikan kasus$kasus )ang ter%adi dalam dunia n)ata beserta solusin)a. Solusi )ang diberikan beru#a sederetan instruksi / langka$langka untuk men)elesaikan kasus tersebut . !ebera#a kom#onen algoritma )ang terkait dengan kasus tersebut kemudian disebutkan. 5 +/13/1, KUG1E3/ Pemrograman Terstruktur 1 Kasus&kasus Pemrograman Kasus&Kasus dengan Perintah& Perintah asar* assignment, +/' ,ontoh 1-1 'imiliki * gelas 3A dan !4 dengan bentuk dan ukuran )ang sama, berisi te dan ko#i !agaimana -ara mem#ertukarkan isi * gelas tersebut 6 "olusi 'i#erlukan 1 gelas kosong berukuran sama/ 7 Tuangkan isi gelas A ke 7 3 7 sekarang berisi te4 Tuangkan isi gelas ! ke A 3 A sekarang berisi ko#i4 Tuangkan isi gelas 7 ke ! 3 ! sekarang berisi te4 8 +/13/1, KUG1E3/ Pemrograman Terstruktur 1 Kasus&kasus Pemrograman Kasus&Kasus dengan Perintah& Perintah asar* assignment, +/' ,ontoh 1-2 'imiliki 9erigen 3 liter dan 5 liter !agaimana -ara menda#atkan air te#at , liter dari sumber air )ang tak teringga an)a dengan menggunakan kedua %erigen tersebut 6 "olusi a. :si %erigen 5 liter sam#ai #enu b. Tuangkan air dari %erigen 5 liter ke %erigen 3 liter sam#ai #enu Saat ini / %erigen 5 liter berisi * liter air, %erigen 3 liter berisi 3 liter air -. !uang semua air #ada %erigen 3 liter d. Tuangkan semua air dalam %erigen 5 liter ke %erigen 3 liter Saat ini / %erigen 5 liter kosong, %erigen 3 liter berisi * liter air e. :si #enu %erigen 5 liter 0. isi %erigen 3 liter sam#ai #enu menggunakan %erigen 5 liter ; +/13/1, KUG1E3/ Pemrograman Terstruktur 1 Kasus&kasus Pemrograman Kasus Pen.abangan ,ontoh 1-3 Menentukan maasis.a )ang tertinggi dari dua orang maasis.a 3A dan !4 tan#a menggunakan #engukur "olusi a.Kedua maasis.a diminta berdiri #ada lantai )ang datar b.'iliat #osisi ke#ala kedua maasis.a, %ika A lebi tinggi maka A adala maasis.a tertinggi, %ika tidak / ! )ang tertinggi < +/13/1, KUG1E3/ Pemrograman Terstruktur 1 Kasus&kasus Pemrograman Kasus Perulangan ,ontoh 1-/ Men-ari ku#on undian )ang bernama !udi dari 1=== ku#on. "olusi a.Ambil sebua ku#on b.!a-a nama )ang tertulis, a#aka >!udi? atauka tidak -.Ulangi langka a dan b sam#ai ketemu ku#on dengan nama >!udi? atau ku#on tela abis 3 sam#ai ku#on ke$1===4 + +/13/1, KUG1E3/ Pemrograman Terstruktur 1 Kasus&kasus Pemrograman Kasus Pen.abangan dan Perulangan ,ontoh 1-0 Men-ari rute ter#endek dari kota A ke kota G, dengan asumsi / kita tidak memiliki #eta, an)a tau %arak dari satu kota ke kota lainn)a6 "olusi a.Mulai dari kota A b.7oba buat rute sembarang ke kota lainn)a sam#ai berakir ke G. %ika tidak berasil, ulangi langka a. 9ika berasil itung total %arakn)a@ -.Ulangi langka a dan b, sam#ai tidak ada rute )ang sama terulang d.Pili rute dengan %arak )ang terke-il 1= +/13/1, KUG1E3/ Pemrograman Terstruktur 1 Paradigma Pemrograman e#inisi Paradigma !emrograman 1&orman , Kurt2 "ebuah !ola 1ang ber#ungsi sebagai !anduan dalam !emrograman kom!uter Paradigma Pemrograman da!at diKlasi#ikasi&kan men$adi 1&orman , Kurt2 * A- Paradigma Pemgrograman Utama :m#eratiAe Bungsional Cogik (b%e-t$(riented %- Paradigma Pemrograman 2ainn1a 1ang Mungkin Disual Parallel 7onstraint !ased !ebera#a ali ber#enda#at, klasi0ikasi #aradigma se#erti ini sulit diim#lementasi !an)ak baasa #emrograman )ang tidak bisa digolongkan se-ara te#at dalam #aradigma tertentu teta#i meru#akan gabungan dari bebera#a #aradigma 3Multi!le Paradigm4 11 +/13/1, KUG1E3/ Pemrograman Terstruktur 1 Paradigma Pemrograman '(er(ie) Paradigma +m!erati(e 'isebut %uga #aradigma !rosedural Kata kun-i 1&orman , Kurt22/ Birst do this and neEt do that 'alam #aradigma ini, #en)elesaian kasus dilakukan dengan men)usun instruksi$ intruksi #emrograman se-ara terurut, dalam masala n)ata al ini da#at dianalogikan se#erti #rosedur$#rosedur administrasi )ang ada di suatu #erusaaan, #rosedur #emasangan alat, #rosedur #en)etelan dll !aasa #emrograman )ang menggunakan / Pas-al, 7 ,ontoh 1-3 Pen.arian 4ilai Terbesar antara a,b, dan . Cangka$langkan)a/ Asumsikan/ nilai terbesar 3Maks4 adala a !andingkan Maks dengan b, %ika b lebi besar dari Maks, maka nilai Maks F b !andingkan Maks dengan -, %ika - lebi besar dari Maks, maka nilai Maks F - Tam#ilkan Maks 1* +/13/1, KUG1E3/ Pemrograman Terstruktur 1 Paradigma Pemrograman '(er(ie) Paradigma 5ungsional :den)a berasal dari konse# matematis tentang 0ungsi, kata kun-i 1&orman , Kurt22/ E(aluate an e6!ression and use the resulting (alue #or something 'alam #aradigma ini , model kom#utasin)a adala sebagai eAaluasi eks#resi . Pemrograman 0ungsional memerlukan 0ungsi adala sebagai #irst&.lass, )aitu 0ungsi di#erlakukan sebagai nilai )ang da#at dikirim sebagai argumen ke 0ungsi lainn)a atau asil dari suatu 0ungsi 152. 7onto baasa #emrograman / (-aml, Erlang, Gaskell ,ontoh 1-7 Perhitungan 5ibona..i dengan Erlang 839 13 +/13/1, KUG1E3/ Pemrograman Terstruktur 1 Paradigma Pemrograman '(er(ie) Paradigma 2ogik Kata kun-i 1&orman , Kurt22/ Ans)er a :uestion (ia sear.h #or a solution Paradigma ini sangat -o-ok bila ditera#kan dalam masala )ang berubungan dengan ekstraksi #engetauan dari 0akta$0akta dasar dan relasi. !aasa Pemrograman / Prolog ,ontoh 1-; Pende#inisian Hubungan Keluarga dan Peman#aatann1a Cangka$langkan)a/ 'ide0inisikan relasi A)a3A,!4 H A A)a !I 'ide0inisikan relasi A)a3A,74 'ide0inisikan relasi A)a3',A4 'ide0inisikan relasi Kakek3J,K4 A)a3J,Y4 A&' A)a3Y,K4 'a#at disim#ulkan ba.a / ' kakek ! dan 7 1, +/13/1, KUG1E3/ Pemrograman Terstruktur 1 Paradigma Pemrograman '(er(ie) Paradigma 'b$e.t&'riented Kata kun-i 1&orman , Kurt22/ "end messages bet)een ob$e.ts to simulate the tem!oral e(olution o# a set o# real )orld !henomena Paradigma ini saat ini -uku# luas digunakan dalam dunia #emrograman terutama dalam #emrograman )ang menggunakan GU: 3Gra#i-al Unit :nter0a-e4 didalamn)a. 'alam #aradigma ini, sebua #rogram kom#uter di#andang sebagai ob)ek L ob)ek )ang saling berubungan. Proses #embuatan #rogram dia.ali dengan #ende0inisian semua ob)ek )ang terkait beserta o#erator$o#eratorn)a. !aasa Pemrograman / 9aAa, 7MM ,ontoh 1-< Pembuatan Kalkulator "ederhana Cangka$langkan)a/ 'ide0inisikan (b)ek Kotak+n!ut , dg o#erator utama / is!la1Kotak, ,learKotak, Get+n!ut 'ide0inisikan (b)ek Kali, dengan o#erator utama/ HitungKali 'ide0inisikan (b)ek =umlah, dengan o#erator utama/ Hitung=umlah 'ide0inisikan (b)ek %agi, dengan o#erator utama/ Hitung%agi 15 +/13/1, KUG1E3/ Pemrograman Terstruktur 1 "e$arah %ahasa Pemrograman '(er(ie) !aasa #emrograman suda berkembang -uku# #esat se%ak kom#uter #ertama dibuat. !an)ak sekali baasa #emrograman )ang tela dibuat sam#ai saat ini, biasan)a disesuaikan dengan kom#uter )ang digunakan #ada saat itu. !erikut adala #erkembangan baasa #emrograman ditin%au dari sisi #aradigma dan 0okus/#embaaruan )ang dilakukan #ada #eriode .aktu tersebut 1'enis Sureau 2 Tahun />&an* !aasa Pertama, -onto / E4+A, ,oding "1atem, A?, Assembl1 Tahun 0>&an * Pembuatan !aasa Tingkat Tinggi 3)ang lebi dekat ke baasa manusia4. 7onto / Auto.ode , +P2 3:n0ormation Pro-essing Canguage4 Tahun 3>&an* Pengembangan ke ara baasa dengan 0ungsi )ang kusus 7onto / 2+"P 3C:St Pro-essing4, ,'%'237(mmon !usiness (riented Canguage4. 18 +/13/1, KUG1E3/ Pemrograman Terstruktur 1 "e$arah %ahasa Pemrograman 2an$utan "e$arah %ahasa Pemrograman Tahun 7>&an* Pemrograman Terstruktur. 'uel antara Pas.al dan ,. 'asar #engembangan P7 sam#ai taun <=s$an. Tahun ;>&an* Eks#erimen keara #aradigma lain termasuk ob%e-ts. 7onto / ,@@, 'b$e.t Pas.al Tahun <>&an dan 2>>>&an* Generalisasi ob$e.t&oriented !rogramming dengan didukung kiner$a mi.ro.om!uters 1ang semakin .e!at- 7onto / =a(a, P1thon, Aisual %asi., %orland el!hi +nternet Programming Bdan ino(asi lainn1aC- 7onto / PHP, =a(a".ri!t, ,D Tahun 2>1>&an* 7on-urren-) dan as)n-roni-it). 7onto / ,@@11, Go, ?ust 1; +/13/1, KUG1E3/ Pemrograman Terstruktur 1 4otasi Algoritmik '(er(ie) 'idalam kulia #emrograman terstruktur 1 ini, kita tidak menggunakan baasa #emrograman tertentu &otasi )ang digunakan dalam kulia ini/ 4otasi Algoritmik Tidak di#erlukan so0t.are tertentu untuk men%alankan / me$ running #rogram )ang dibuat dengan notasi algoritmik Kebenaran sebua #rogram da#at di#eriksa berdasarkan kete#atan #enggunaan notasi algoritmik dan kebenaran logika )ang digunakan 1< +/13/1, KUG1E3/ Pemrograman Terstruktur 1 4otasi Algoritmik Kom!onen Utama Ada 3 kom#onen utama #en)usun sebua #rogram, )aitu/ =udul 'ia.ali dengan kata Program dilan%utkan dengan nama #rogram Kamus !erisi #ende0inisian T)#e, Konstanta, Dariabel, 0ungsi, dan #rosedur Algoritma !erisi instruksi$instruksi algoritmik untuk men)elesaikan suatu masala Selain 3 kom#onen utama tersebut, terda#at bagaian lain )ang disebut komentar- Pembuatan komentar dia.ali dengan >H >dan diakiri dengan >I?. Komentar berisi #en%elasan dari sebua #rogram. Komentar sangat #enting dalam #embuatan sebua #rogram 3.a%ib ada4, karena akan sangat membantu bagi kita dalam memaami alur logika sebua #rogram, terlebi untuk #rogram )ang -uku# kom#leks. 1+ +/13/1, KUG1E3/ Pemrograman Terstruktur 1 4otasi Algoritmik ,ontoh 1-1> Membuat #rogram kosong "olusi Program Kosong Kamus Algoritma *= +/13/1, KUG1E3/ Pemrograman Terstruktur 1 4otasi Algoritmik =udul &otasi / Program nama NProgram Pemberian nama #rogram tidak memiliki aturan )ang ketat, teta#i #erlu di#eratikan al$al sebagai berikut/ 'ia.ali dengn al#abeti-al Tidak menggunakan nama )ang sama dengan )ang ada dalam notasi algoritmik 'iusaakan nama #rogram sesuai dengan a#a )ang diker%akan #rogram Kalau terdiri dari * kata atau lebi, %angan di#isa dengan s#asi
*1 +/13/1, KUG1E3/ Pemrograman Terstruktur 1 4otasi Algoritmik Kamus Kamus digunakan untuk mende0inisikan segala sesuatu )ang akan digunakan dalam #rogram ini, meli#uti / Ti!e bentukan 'idalam notasi algoritmik, ada 5 ti#e dasar )ang bisa digunakan 3 integer, real, -ara-ter, boolean , string4. Kita bisa mende0inisikan ti#e lainn)a dengan -ara tertentu. Ti#e ini disebut sebagai ti#e bentukan Konstanta 9ika didalam #rogram, %ika kita #erlu menggunakan suatu nilai tertentu 3 terutama untuk nilai )ang memiliki digit besar4, kita bisa de0inisikan nilai terebut dalam bentuk konstanta Aariabel Selama #rogram di%alankan, biasan)a kita #erlu men)im#an nilai )ang diola #rogram dalam sebua .ada. Oada )ang dimaksud disebut sebagai Aariabel. 5ungsi / s#esi0ikasin)a sa%a Prosedur / s#esi0ikasin)a sa%a ** +/13/1, KUG1E3/ Pemrograman Terstruktur 1 4otasi Algoritmik Kamus* Ti!e&ti!e dasar Ketika mende0inisikan sebua Aariabel, maka %uga arus diikuti dengan #ende0inisian ti#e datan)a. Ada 5 ti#e dasar )ang bisa digunakan )aitu / ?eal Ti#e ini digunakan bila datan)a beru#a bilangan #e-aan, se#erti nilai rata$rata, data #engukuran dll +nteger Ti#e ini digunakan bila datan)a beru#a bilangan bulat, se#erti %umla orang, %umla benda , mata uang dll ,hara.ter Ti#e ini digunakan bila datan)a an)a terdiri dari satu karakter, se#erti %enis kelamin 3 C/P4 , %a.aban multi#le -oi-e dll %oolean Ti#e ini digunakan bila datan)a bernilai true/0alse, misaln)a dalam #en-arian data, dide0inisikan Aariabel 0ound berti#e boolean "tring 3 kum#ulan karakter4 Ti#e ini digunakan bila datan)a terdiri dari ban)ak karakter , se#erti nama,alamat dll *3 +/13/1, KUG1E3/ Pemrograman Terstruktur 1 4otasi Algoritmik Kamus ,ontoh 1-11 !erikut -ara mende0insikan suatu kamus berisi ti#e bentukan, konstanta dan Aariabel/ Kamus Type logika : boolean Hmende0insikan ti#e bentukan dg nama logikaI Constant Phi : Real=3.14 Hmende0inisikan konstanta bernama PiI a,b : integer Hmende0inisikan Aariabel a dan b berti#e integerI c : String H mende0inisikan - berti#e String I d : logika H mende0inisikan Aariabel d berti#e logika I ,atatan Penulisan notasi algoritmik beru#a ti#e atau instruksi lainn)a menggunakan underline, -onto integer , T1!e, dll. *, +/13/1, KUG1E3/ Pemrograman Terstruktur 1 4otasi Algoritmik Kamus* '!erasi&o!erasi !ada ti!e&ti!e dasar !ebera#a ti#e dasar )ang sia# digunakan memiliki bebera#a o#erasi 3o#erator4 )ang .a%ib diketaui / Ti#e / ?eal 7onto / *.3 1=.= ,.1 *5,8 '!erator etail Keterangan Eks!resi BTi!eC Aritmatika M , E, /, $ Pen%umlaan, #erkalian, #embagian, #engurangan a M b 3real4 a E b 3real4 a / b 3real4 Perbandingan F, P,Q,PQ Sama dengan, lebi ke-il, lebi besar, tidak sama a F b 3boolean4 a PQ b 3boolean4 PF, QF Cebi ke-il atau sama, a PF b 3boolean4 a QF b 3boolean4 *5 +/13/1, KUG1E3/ Pemrograman Terstruktur 1 4otasi Algoritmik Kamus* '!erasi&o!erasi !ada ti!e&ti!e dasar Ti#e / +nteger 7onto / * 1= *5 *1 (#erator )ang digunakan sama dengan ti#e Real, ditamba '!erator etail Keterangan Eks!resi Bti!eC Aritmatika 'iA Gasil Pembagian !ulat 1= 'iA 3 3 asiln)a 3/ integer4 Mod Sisa Pembagian !ulat 1= Mod 3 3 asiln)a 1/ integer4 *8 +/13/1, KUG1E3/ Pemrograman Terstruktur 1 4otasi Algoritmik Kamus* '!erasi&o!erasi !ada ti!e&ti!e dasar Ti#e / %oolean 7onto / True Balse 3nilain)a an)a ini sa%a4 '!erator etail Keterangan Eks!resi Bti!eC Cogika A&' !ernilai true %ika kedua #ern)ataan 3A,!4 true A A&' ! 3boolean4 (R !ernilai #alse %ika kedua #ern)ataan 3A,!4 #alse A (R ! 3boolean4 &(T &egasi / &ilain)a berla.anan dengan nilai #ern)ataan &(T A 3boolean4 ES EkuiAalen/ !ernilai true bila kedua #ern)ataan bernilai sama A ES ! 3boolean4 J(R EElusiAe (r/ bernilai true bila an)a terda#at satu #ern)ataan )ang bernilai true A J(R ! 3boolean4 *; +/13/1, KUG1E3/ Pemrograman Terstruktur 1 4otasi Algoritmik Kamus* '!erasi&o!erasi !ada ti!e&ti!e dasar Ti#e / ,hara.ter 7onto / >A? >!? >3? '!erator etail Keterangan Eks!resi Bti!eC Perbandingan F , PQ Gan)a untuk membandingkan a#aka dua karakter sama atauka tidak A PQ ! 3boolean4 Ti#e / "tring 3 arra) o0 -ara-ter4 7onto / >A#a? >!antal? >k3k1? (#erator )ang digunakan se#erti 7ara-ter, ditamba '!erator etail Keterangan Eks!resi Bti!e* booleanC Konstruksi T Konkatenasi / Menggabungkan * string A T ! >ruma? T >TUA? 3 Gasil/ rumaTUA4 *< +/13/1, KUG1E3/ Pemrograman Terstruktur 1 ?e#erensi 1. :nggriani Ciem, 'iktat Kulia :B**3 Algoritma 'an Pemrograman, 9urusan Teknik :n0ormatika !andung, 1+++ *. Rinaldi Munir, Algoritma dan Pemrograman, edisi ke$3, #enerbit :n0ormatika *==, 3. &ormark, Kurt. Overview of the four main programming #aradigms. tt#///#eo#le.-s.aau.dk/ Unormark diakses tanggal 1* Se#tember *=13. ,. tt#///....askell.org/askell.iki/Bun-tionalN#rogramming diakses tanggal 1,/=+/*=13 5. tt#///en..iki#edia.org/.iki/Bun-tionalN#rogramming , diakses tanggal 1,/=+/*=13 8. 'enis Sureau, History and Evolution of Programming Languages, tt#///....s-ri#tol.-om/#rogramming/istor).## diakses tanggal 1;/=+/*=13 *+ +/13/1, KUG1E3/ Pemrograman Terstruktur 1 THANK YOU 3= +/13/1,