Progr a m Program: sed e retan peri n ta h - peri n tah yang harus d i k erjakan oleh k o m puter untuk m e nyelesai k an masala h . 3 l e vel ba h asa pemr o graman: 1. Bahasa t i n g kat rendah 2. Bahasa t i n g kat men e n g ah 3. Bahasa t i n g kat t i n g gi • •
Bahasa Ting k at Rendah Bahasa m e sin Beri si : k o d e - k o d e m e s in yg hanya d ap a t d i i nterpreta s ikan lan gs u ng oleh mesin k omp u te r . Ber u pa k o d e nu m erik 0 d an 1 M i cr o c o de: sek u mpulan i n struksi da l am ba h asa me s in (+) : Eksek u s i cepat ( - ) : S u lit d ipelajari m an u s i a
Bahasa Ting k at Bahasa Ass e mbly Baha s a s im b ol d ari baha s a m e s in C onto h : AD D , MUL, SUB, d ll Macro i n struksi: sek u mpulan k ode Menengah d alam ba h asa ass e mbly (+) : Eksek u s i cepat, m a s ih d ap a t d i p elajari d ari p ada b aha s a m e s i n , file k ecil ( - ) : T etap sulit d ipelajar i , program s a ngat panjang
Bahasa Ting k at Tinggi The 3rd G e nerat i on Program m i n g La n guage Le b ih d ekat d engan bah a s a man u s ia Me m b eri b anyak fa s i l itas k e mud ahan dalam pem bu atan pro g ram, mis.: variabel, ti p e d ata, k onstanta, s tru k tur k ontrol, loo p , f u ng si , pro s e d u r , d ll Contoh: Pa s cal, Ba s ic, C++, J a va (+) : Mudah d i pelajar i , mendekati permasalahan yang akan d i pecahka n , k ode program pendek ( - ) : E k sekusi lam b at
T ran s lator T rans l ator: penerje m ah dari ba h asa t i n g kat t i n g gi ke ba h asa t i n g kat renda h . Ass e mble r , I n terprente r , dan C o mpi l er Ass e mbler mer u pa k an penerje m ah ba h asa Ass e mbly ke ba h asa me s i n . • • •
Interpre t er P erin t ah d i terjemahkan bar i s demi baris jadi program t i dak d i ana l is i s selur u h n ya dulu ta p i bersamaan dengan ja l an n ya program. (+) : m u d ah b agi u se r , de b u gg i ng cepat ( - ) : eksek u s i pro g ram l a m b a t , tidak lan gs u ng m e nja d i pro g ram exec u table C o n t oh: B asic, List
C ompiler Seluruh pr o gram d i terjemahka n . Sem u a peri n tah (pascal, C + +) d i rubah da l am ben t uk exe atau ba h asa ase m b l y .
P aradigma Bahasa P emr o graman
Sejarah A lgoritma Ditinj a u d ari a s al u s ul ka t a n y a kata A l goritma sendiri mempu n yai sejarah ya n g a n e h . Ora n g han y a me n emuk a n ka t a A l g o r i sm ya n g berarti pr o ses me n gh i t un g dengan a n gka ara b . Anda d i katakan A l gor i st j i ka a n da meng h itung menggun a kan Angka A ra b . Para ahli ba h asa berusaha me n em u kan as a l ka t a ini n a m un hasi l n ya kura n g m e m u a s k a n. A kh i r n ya para ahli sejarah m a te m a t i k a me n em u kan as a l kata terse b ut y a ng be r asal d a ri n a ma seorang ahli matematika dari Uzbe k istan Abu Abdu l lah M u ham m ad I b n u Musa A l ‐ Khuw a r i z m i ( 77 0‐ 84 0) . A l ‐ Khuwa r i z m i di b aca ora n g barat me n j a di A l g o r is m . Al ‐ Khuwa r iz m i me n u l i s buku yang berj u dul Kit a b Al J a bar Wal‐Mu q ab a la y a n g arti n y a “ B u ku pemugaran d an p engura n ga n ” (T h e book o f r e st o ration a n d r e ductio n ) . Dari judul buku itu k i ta juga memperoleh akar ka t a “ A l jaba r ” (A l geb r a ) .
Sejarah A lgoritma P erubahan ka t a ka t a dari Al g orism menja d i Algor i thm mu n c u l ka r ena Alg o rism se ri ng d i k e l irukan dengan Arithme t ic, seh i n g ga a k hiran – sm b e r u bah me n jadi – th m. Karena p e r h i tungan de n gan an g ka Arab sudah menjadi hal ya n g bi a s a . M a ka lam b at laun ka t a A lgor i thm perhitungan berangsu r ‐ a n g sur d i pa k ai sebagai met o de ( k o m putasi) se c a ra u m u m , sehi n gga k ehi l a n gan mak n a ka t a as l i n y a . Da l am Bahasa menja d i Algoritm a . I n donesia, kata Al g ori t hm d i se r ap
Definisi A lgorit m a Ki t a b i sa mende f i n is i kan al g oritma se b agai beri k u t : “ A l gori t ma adalah logika, meto d e dan tahapan (uruta n ) sis t ematis yang digunakan untuk memecahkan suatu pe r masalaha n .” Dan kamus besar ba h asa I n donesia (B alai Pustaka 1 9 88) se c ara f o rmal mende f i n is i kan al g oritma sebagai berikut: “ A l goritma adalah uru t an logis pengambil a n putusan untuk p e mec a han masa l a h.”
Definisi A lgorit m a Al g or i tm a : d i su s un se c ara masala h . sed e retan sist e mat i s la n g k a h -l an g kah log i s ya n g suatu unt u k me m ec a h k an D i s e but L o g i s ka r ena setiap l a n gkah b i sa d i k e ta h ui dengan pa s t i . Al g or i tma le b ih merupakan al u r pemik i ran untuk menyelesai k an suatu pe k erjaan at a u suatu masala h .
Ciri Ciri A lgorit m a Al g or i tma harus berhe n ti s e tel a h mengerjakan sej u mlah la n g k ah terba t as. Se t iap la n g kah harus d i de f ini s i k a n dengan t e p at dan t i dak berar ti - dua (Ambiguita s ). Al g oritma me m i l i k i nol atau leb i h mas u k k a n . Al g oritma me m i l i k i satu atau leb i h k eluara n . Al g or i tma harus efek t if (se t iap lan g kah harus s ed e rhana seh i n g ga d apat d i k er j akan da l am wa k tu yang ma su k aka l ). 1. 2. 3. 4. 5.
P enger t ian S truktur Data S t ruktur da t a ad a l ah cara da l a m menyimpan atau bisa mer e pres e n t a s i k an d a ta di k o m p uter agar d i pa k a i s e c ara e f is i en Seda n g k an data ad a lah repr e sent a si dari fak t a dun i a n y at a . Fakta d i s impa n , atau k eteran g an te n tang k enyat a an yang ben t uk d irekam atau d i repr e senta s i k an da l am tul i sa n , s u ara, gamba r , si n yal atau simbol
T y p e Data 1. T ype da t a sede r hana a. T ype data s e d e rha n a t u ng g a l , mi s alnya Intege r , re a l, bo o le a n dan ka r akter b. T ype d ata s e d e rha n a maj e m u k , mi s alnya S t r ing 2. Struk t ur Da t a, mel i puti a. Strukt u r data s e d e rha n a, mi s alnya arr a y dan record b. Struktur data m a jemu k , ya n g ter d iri dari Lini e r : S t ack, Q u e u e, serta List dan M u ltilist N o n Linier : P o h on Biner dan G r aph P emak a ian s t ruktur data yang te p at di dal a m proses pemrogram a n akan me n g has i l k an algor i t m a yang l e bih je l as dan tepa t , se h i n g g a menjadikan p r ogram seca r a k eselur u han l e bih ef i sien dan sede r han a . .
Belajar Mempr o gram dan Belajar Bahasa P emrog r am a n B e la j ar met o dologi me m p r ogr a m pemecahan ada l ah belajar te n ta n g k emudi a n masalah, menuangk a n n ya da l am suatu d i baca dan d i pa h am i . not a si te r te n tu yang m udah B e la j ar ba h asa pem r ograman adalah belajar me m akai suatu ba h a s a , aturan ta t a ba h asanya, i n s truks i -i ns t ruksi n y a , ta t a cara pengoperas i an compi l e r- nya unt u k me m b uat program ya n g d i tu l is da l am ba h asa it u saj a .
Notasi A lgoritma P enulisan al g oritma t i dak terga n tung dari spesifikasi ba h asa pemr o graman dan k o m puter yang mengekseku s i n y a . Not a si al g ori t ma buk a n no t asi ba h asa pemrograman • • teta p i dapat d i terjemahkan ke pemr o grama n . da l am berbagai bahasa
Notasi A lgorit m a Urai a n kal i mat deskriptif ( naras i ) C on t o h : A l gor i t m a K e l ulusan_mhs Dib e ri k an n a ma dan n i l a i ma h a s isw a , ji k a nil a i t e rse b ut le b ih b e s a r atau s a ma dengan 60 ma k a ma h a s iswa t e rse b ut diny a ta k an lulus ji k a nil a i le b ih k ecil d a ri 60 ma k a diny a ta k an tidak lu l us. DES K RI P SI : 1. baca n a m a dan n i l ai m a hasis w a . 2. j i ka n i l ai >= 60 m a ka 3. Berikan k etera n gan “ l ulus” 4. te t api j i ka tidak 5. Berikan k etera n gan “ tidak lu l us” 6. t u l i s n a m a dan k etera n gan 1.
M ulai No t asi Algo r itma B a ca N a m a , nilai 2. Flow Chart Ya Ni l ai >= 60 Tidak T u l is N a m a , K eter a ng a n S e l e sai K eter a ng a n “ Ti d a k Lu l u s ” K eter a ng a n “ L ul u s”
Notasi A lgoritma Ps e udo C o de Ada 3 bag i a n : Judu l , Dekl a rasi, Deskri p si. Al g oritma k elulu s an Dek l arasi nama, keterangan : string 3. nilai Deskri p si read : integer ( nam a , nila i ); if nila i > = 60 then keterangan := “lulus”; else keterangan := “tidak write ( nam a , keteranga n ); lulus”;
A turan Pseudo C ode Judul algoritma Bagian yang terd i ri atas nama al g oritma dan penjelasan (spesifikasi) ten t ang al g oritma ters e bu t . Nama sebai k n y a si n g k at dan meng g ambar k an apa y a n g d i la k ukan o leh a l gori t ma ters e but. Deklarasi Bagian un t uk mende f i n is i kan atau mendeklarasi k an sem u a apa y a n g d i gun a kan a t au di b utuh k an da l am pemr o graman. De s kripsi Bagian in i berisi uraian la n g k a h - la n g k ah penyelesaian masala h .
Operator Ar i tmatik /, * , d i v , m o d l e vel t i n g gi +, - l e vel rendah Mod dan d i v h a n y a untuk b i la n gan bula t !!! • • • • • • • C o n t oh : 5 – 2 + 1 = ? 5 – 2 * 3 = ? (6 + 3 * 2 ) / 6 – 2 * 3 = ?
T y p e Data Bila n gan bulat ( S h orti n t , I n tege r , Long i n t , Byte, W ord) B o olean (B o olean, B yt eBoo l , W ord B o o l, LongBo o l) Bila n gan real ( R eal, S i n g le, Kara k ter S t ri n g Lar i k (Array) P oin t er Double, Ex t ended, C o m p )
Out l i n e A lg o r i tma dan S truktur Data • • • • • • • • • • Logi k a P emr o graman P engert i an Al g oritma dan Flowchart Arra y , R e co rd dan poi n ter Fungsi dan Pros e dur Searchi n g dan sorti n g S t ack dan queue L i n k ed l i st R ekur s if T ree H ash i ng da s ar al g oritma