Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

1.1. Pengertian Algoritma. Algoritma, pada dasarnya, adalah alur pikiran dalam menyelesaikan suatu pekerjaan, yang dituangkan dalam bentuk tertulis yang.

Presentasi serupa


Presentasi berjudul: "1.1. Pengertian Algoritma. Algoritma, pada dasarnya, adalah alur pikiran dalam menyelesaikan suatu pekerjaan, yang dituangkan dalam bentuk tertulis yang."— Transcript presentasi:

1 1.1. Pengertian Algoritma. Algoritma, pada dasarnya, adalah alur pikiran dalam menyelesaikan suatu pekerjaan, yang dituangkan dalam bentuk tertulis yang dapat dimengerti oleh orang lain. Yang ditekankan disini adalah alur pikiran. Alur pikiran seseorang dapat berbeda dengan alur pikiran orang lain untuk menyelesaikan suatu pekerjaan yang sama dengan hasil yang sama. 1 Bab 1 Teacher gives you one, book gives you ten Teacher opens the door, but you enter by your self, and make sure, the book is always with you Dalam pelajaran algoritma, direncanakan bahwa yang akan melaksanakan alur pikiran tadi adalah komputer. Komputer memang dirancang untuk dapat melaksanakan perintah yang diberikan oleh manusia. Perintah tersebut dapat diberikan dalam bentuk kumpulan instruksi- instruksi yang disebut program. Program ditulis dalam suatu bahasa yang disebut bahasa pemrograman (Programming Language) seperti Bahasa COBOL, Bahasa BASIC, Bahasa Pascal, Bahasa C, Bahasa Java, dan masih banyak nama lainnya. Dari sekian banyak bahasa pemrograman, penulisan instruksi dapat sama, hampir sama, atau sama sekali tidak sama, untuk suatu maksud yang sama. Dari uraian diatas, dapat dimengerti bila penulisan algoritma yang kita baca dari buku-buku literatur, walaupun satu dengan yang lainnya bisa ada perbedaan, tapi semuanya mendekatkan diri pada tata cara penulisan suatu bahasa pemrograman yang bentuknya umum. Algoritma adalah langkah langkah yang diambil dalam menyelesaikan suatu pekerjaan. Suatu pekerjaan dapat diselesaikan dalam satu langkah, dua langkah atau banyak langkah. Langkah langkah harus tersusun secara Logis agar pekerjaan dapat diselesaikan dengan benar Dalam pelajaran algoritma, yang menyelesaikan pekerjaan, adalah komputer. Tugas kita adalah memberikan perintah kepada komputer, langkah per langkah yang akan dilaksanakan oleh komputer untuk menyelesaikan pekerjaan tersebut. Dalam bentuk tertulis, maksudnya dapat berupa narasi dalam bentuk kalimat, dapat juga berbentuk gambar atau bagan, atau dalam bentuk tabel.

2 2 An algorithm is a finite set of instructions which, if followed, accomplish a particular task. In addition every algorithm must satisfy the following criteria: 1). Input : there are zero or more quantities which are externally supplied; 2). Output : at least one quantity is produced; 3). Definiteness : each instruction must be clear and unambiguous; 4). Finiteness : if we trace out the instructions of an algorithm, then for all cases the algorithm will terminate after a finite number of steps; 5). Effectiveness : every instruction must be sufficiently basic that it can in principle be carried out by a person using only pencil and paper. It is not enough that each operation be definite as in 3), but it must also be feasible. Horowitz,Eliis and Sahni, Sartaj; FUNDAMENTAL OF DATA STRUCTUTES; Computer Science Press, Inc.; Rocville, Maryland; 1983 Salah satu buku literatur, memberikan definisi dan kriteria mengenai algoritma sebagai berikut : Secara bebas definisi diatas dapat diterjemahkan sebagai berkut : Ada atau tidak ada data yang dimasukkan dari luar. Paling tidak ada satu buah keluaran Setiap instruksi jelas maksudnya dan hanya mempunyai satu arti Algoritma baik secara keseluruhan maupun sub algoritma bila ditelusuri harus ada titik hentinya. Setiap instruksi selain jelas juga harus dapat dilaksanakan, dan juga efektif dalam arti harus menghasilkan sesuatu. Sebagai contoh A = A + 0 ( A ditambah nol) atau A = A * 1 ( A dikali satu ), adalah termasuk instruksi yang tidak efektif. Contoh-1. Misal ada sebuah persoalan yaitu mengurutkan secara menaik isi suatu array A(i); dimana 1 <= i <= n. for i  1 to n-1 do examine A(i) to A(n) and suppose the smallest integer is at A(j); then interchange A(i) and A(j). end Beberapa contoh Algoritma : Bila ditulis dalam bentuk PSEUDO-CODE, dapat ditulis sebagai berikut : Bila ditulis dalam bentuk ALGORITMA, dapat ditulis sebagai berikut : for i  1 to n-1 do j  i for k  j+1 to n do if A(k) < A(j) then j  k end t  A(i); A(i)  A(j); A(j)  t end Horowitz,Eliis and Sahni, Sartaj; FUNDAMENTAL OF DATA STRUCTUTES; Computer Science Press, Inc.; Rocville, Maryland; 1983 Algoritma adalah sekumpulan instruksi yang jumlahnya terbatas, yang apabila dijalankan, akan menyelesaikan suatu tugas tertentu. Sebagai tambahan, setiap algoritma harus memenuhi kriteria sebagai berikut : 1) 2) 3) 4) 5)

3 Dari contoh diatas, terlihat suatu pemecahan masalah dapat ditulis dalam bentuk Pseudo-Code yang sangat dekat dengan bahasa sehari-hari dan dapat juga ditulis dalam bentuk ALGORITMA yaitu susunan instruksi-instruksi yang lebih dekat dengan bahasa pemrograman komputer. Yang dimaksud dengan pseudo code, adalah kode atau tanda atau ceritera yang menyerupai atau merupakan ( pseudo ) penjelasan cara menyelesaikan persoalan. Kode atau tanda atau ceritera tersebut ditulis dalam suatu bahasa yang dimengerti oleh manusia. Catatan : Secara bahasa, pseudo dapat diterjemahkan menjadi : pura-puranya menyerupai atau pura-puranya seperti 3 Untuk menunjukkan kaitan antara Pseudo Code dan Algoritma, berikut ini diperlihatkan beberapa contoh penulisan Algoritma untuk Pseudo Code yang diberikan Pseudo Code Algoritma Nilai A ditambah dengan 5 Cetak nilai A, bila nilai tersebut lebih besar dari 5 Dari dua buah nilai A dan B cetak salah satu yang terbesar Kurangi dengan 2 nilai A terus menerus sampai nilainya lebih kecil atau sama dengan nol A = A + 5 IF(A > 5) THEN WRITE(A) IF (A>B) THEN WRITE(A) ELSE WRITE B) While(A > 0) do A = A – 2 End Do Horowitz,Eliis and Sahni, Sartaj; FUNDAMENTAL OF DATA STRUCTUTES; Computer Science Press, Inc.; Rocville, Maryland; 1983 Contoh-2 Mencari suatu nilai dalam array dengan cara Binary Search. PSEUDO-CODE Procedure BINSRCH(A,n,x,j) initialize lower and upper while there are more elements to check do let A(mid) be the middle element case : x > A(mid) : set lower to mid + 1 : X < A(mid) : set upper to mid - 1 : else : found end not found end BINSRCH Bila ditulis dalam bentuk algoritma: ALGORITMA Procedure BINSCRH(A,n,x,j) lower  1; upper  n while lower <= upper do mid  [ (lower + upper) / 2 ] case : x > A(mid) : lower  mid +1 : x < A(mid) : upper  1 : else : j  mid; return end j  0 end Bila ditulis dalam bentuk Pseudo Code : Algoritma ini ditulis secara umum, bukan ditulis menurut Bahasa Pemrograman tertentu

4 1.2. Algoritma dan Bahasa Pemrograman. Perhatikan kembali algoritma yang digunakan untuk mengurutkan isi array A(i) seperti yang dicontohkan sebelumnya sebagai berikut : for i  1 to n-1 do j  i for k  j+1 to n do if A(k) < A(j) then j  k end t  A(i); A(i)  A(j); A(j)  t end Algoritma diatas, terdiri dari instruksi-instruksi. Walaupun instruksi-instruksi tersebut ditulis dalam kode-kode yang mendekati bahasa pemrograman komputer, tapi komputer tidak mengerti dan tidak dapat melaksanakan instruksi tersebut. Komputer hanya mengerti bila instruksi tersebut ditulis dalam suatu bahasa yang disebut bahasa pemrograman atau programming language. Berikut ini diberikan contoh beberapa bahasa pemrograman sebagai padanan algoritma diatas : a. Bahasa BASIC b. Bahasa PASCAL FOR I=1 TO N-1 J = 1 FOR K=J+1 TO N IF A(K)< A(J)THEN J = K END IF NEXT K T=A(I): A(I)=A(J): A(J)=T NEXT I FOR I := 1 TO N-1 Begin J := 1; FOR K := J+1 TO N Begin IF A[K] < A[J] J := K; End; T:=A[I]; A[I]:=A[J]; A[J]:=T; End; c. Bahasa C atau C++ for(I=1; I <= N-1; I++) { J = 1; for(K = J+1; K <= N; K++) { if(A[K] < A[J] ) J = K; } T=A[I]; A[I]=A[J]; A[J]=T; } d. Bahasa Java for(I=1; I <= N-1; I++) { J = 1; for(K = J+1; K <= N; K++) { if(A[K] < A[J] ) J = K; } T=A[I]; A[I]=A[J]; A[J]=T; } Terlihat bahwa instruksi instruksi dalam Algoritma sengaja dibuat mendekati instruksi yang digunakan dalam bahasa pemrograman. Sehingga apabila telah ditulis algoritma penyelesaian suatu masalah, maka dengan mudah algoritma tersebut dikonversi ke dalam bentuk bahasa pemrograman. 4 Dalam buku ini, penulisan algoritma akan langsung ditulis dalam Bahasa C, C++ dan/atau Bahasa Java. Banyak instruksi yang sama atau mudah dikonversi antara Bahasa C, C++ dan Java. Sehingga dalam buku ini, untuk hal yang sama cukup ditulis dalam Bahasa C.

5 1.3. Program Flowchart. Salah satu bentuk untuk menyatakan alur pikiran dalam menyelesaikan suatu pekerjaan adalah dalam bentuk gambar atau bagan yang biasa disebut program flowchart atau bagan alir suatu program. Berikut ini diperlihatkan contoh sebuah program flowchrat. START JUM  0 READ I  1 I  I + 1 JUM  JUM + 1 NIL >= 60 NIL I <= 100 WRITE JUM END yes no while if yes no Flowchart ini menggambarkan alur pikiran yang akan dituangkan kedalam suatu bahasa pemrograman. Melalui bahasa pemrograman tersebut komputer diperintahkan untuk menyelesaikan suatu pekerjaan yaitu : Menginput sampel 100 nilai ujian mahasiswa dan mencetak ada berapa orang mahasiswa yang lulus dari 100 sampel tersebut. Dinyatakan lulus apabila nilai ujian lebih besar atau sama dengan 60. Flowchart diatas, bila dituangkan ke dalam bentuk algoritma, dapat dibuat sebagai berikut : JUM  0 I  1 WHILE I <= 100 DO READ(NIL) IF NIL >= 60 THEN JUM  JUM + 1 ENDIF I  I + 1 ENDDO WRITE(JUM) Bila dituangkan kedalam Bahasa C menjadi : #include void main() { int JUM, I, NIL; JUM = 0; I = 1; while(I<= 100) { scanf(“%i”, &NIL); if (NIL >= 60) JUM = JUM + 1; I = I + 1; } printf(“\n %i”, JUM); } 5 Simbol dalam Flowchart ini menggunakan standar ANSI (American National Standard Institute) Terminal untuk menyatakan START dan END PROSES, untuk menyatakan Assignment Statement I/O, Input/Output operation, untuk menyatakan proses Baca (READ) dan proses tulis (WRITE) Decision, untuk menyatakan pengambilan keputusan sesuai dengan suatu kndisi Garis untuk menyatakan urutan pelaksanaan, atau alur proses

6 Dilihat dari cara kerjanya, atau tugas yang dikerjakannya,, ada tiga macam atau tiga kategori pokok komponen instruksi dalam algoritma, yaitu : 1.4. Struktur Alur Algoritma. 1. Assignment Statement, 2. Input / Output Statement, dan 3. Control Statement. yang masih dapat ditambah satu macam lagi yaitu 4. Call Statement, dan return statement. Tapi bila dilihat dari struktur alur atau urutan pelaksanaan instruksi untuk ketiga komponen diatas, bagaimana mereka tersusun atau terangkai menjadi suatu algoritma, atau program sedemikian rupa sehingga akan terbentuk tiga macam struktur flow yaitu : 1. Sequential flow, (aliran yang dikerjakan urut sesuai urutan penulisan ) 2. Branch flow, (aliran yang melakukan pencabangan) - Uncoditional Branch flow, - Conditional Branch flow, atau Conditional Selection flow. 3. Repetition flow atau Iteration flow atau Loop flow, atau pengulangan - Unconditional Repetition flow, - Conditional Repetition flow Struktur sequential Pada struktur ini, instruksi-instruksi dilaksanakan secara berurutan (sequential flow) sesuai letak urutan penulisannya. Contoh : 1) 2) 3) 4) 5) 6) 7) Statement no 6) terdiri dari tiga instruksi yang dilaksanakan secara berurutan (sequential ) Ketiga instruksi ini dapat disusun sebagai berikut: t  A(i) A(i)  A(j) A(j)  t Contoh lain: READ(A) READ(B) T  A + B WRITE(T) Keempat instruksi ini dilaksanakan secara berurutan atau sekuen sehingga membentuk struktur sequential flow for i  1 to n-1 do j  i for k  j+1 to n do if A(k) < A(j) then j  k end t  A(i); A(i)  A(j); A(j)  t end 6 Statement no 1) dan pasangannya no. 7), serta statement no 3) dan pasangannya no 5) adalah dua statement yang membentuk pengulangan (repitition atau loop). Sedangkan statement no 4) adalah statement pencabangan (branch).

7 Struktur Conditional Branch / Selection. Struktur ini, memperlihatkan alur pencabangan, akibat adanya alternatif pilihan instruksi atau kelompok instruksi yang dikerjakan. Ada dua macam : Contoh : IF-THEN-ELSE Statement READ(A) READ(B) IF A > B THEN WRITE(A) ELSE WRIE(B) ENDIF 1) 2) 3) 4) 5) 6) Statement no 3, 4, 5, dan 6) membentuk struktur pencabangan tergantung kondisi apakah A>B (A lebih besar dari B). Bila A>B maka (then) yang dicetak adalah A, selainnya (else), yaitu bila A tidak lebih besar dari B yang dicetak adalah B. Disini terjadi suatu pilihan atau seleksi. Atau disini ada dua alternatif, mencetak A atau mencetak B. Sehingga struktur ini sering juga disebut strukstur : A. Simple Conditional Branch (menggunakan IF Statement) - Selection Branch (menggunakan IF-THEN-ELSE Statement) - Condition Branch (menggunakan IF-THEN Statement) B. Multiway Conditional Branch (menggunakan CASE Statement) Contoh : IF-THEN Statement READ(N) IF N >= 60 THEN WRITE(“LULUS”) ENDIF 1) 2) 3) 4) Statement no 2, 3, dan 4) membentuk struktur pencabangan tergantung kondisi apakah N >= 60 (Nilai lebih besar atau sama dengan 60). Bila N lebih besar atau sama dengan 60, maka (then) mencetak perkataan “LULUS”, dan control dilanjutkan ke instruksi dibawah EndIf. Tapi bila N lebih kecil dari 60, maka control langsung ke instruksi dibawah EndIf, tidak mengerjakan suatu instruksi. Terlihat disini, mengerjakan sesuatu hanya bila kondisi terpenuhi. Sehingga struktur ini sering juga disebut strukstur KONDISI (Condition) Contoh : CASE Statement READ(Nilai) CASE : Nilai = “A” : WRITE(“Bagus Sekali”) : Nilai = “B” : WRITE(“Bagus”) : Nilai = “C” : WRITE(“Cukup”) : Nilai = “D” : WRITE(“Kurang”) : else : WRITE(“Kurang Sekali”) EndCase READ(Nilai) CASE Nilai OF “A” : WRITE(“Bagus Sekali”) “B” : WRITE(“Bagus”) “C” : WRITE(“Cukup”) “D” : WRITE(“Kurang”) else : WRITE(“Kurang Sekali”) EndCase atau SELEKSI (selection), atau ALTERNASI (alternation). 7

8 Struktur Loop Loop adalah sekelompok instruksi yang dikerjakan secara berulang-ulang. Instruksi Loop adalah instruksi yang menyebabkan terbentuknya suatu loop. Struktur Loop adalah struktur penulisan instruksi dimana terdapat instruksi loop, yang menyebabkan sekelompok instruksi yang dikerjakan secara berulang-ulang. Ada dua macam loop: unconditional loop dan conditional loop. Contoh : Unconditional LOOP T  0 FOR I  1 TO 100 DO READ(A) T  T + A ENDDO WRITE(T) Algoritma ini melaksanakan instruksi no 4 dan 5) sebanyak 100 kali, sehingga algoritma ini menginput 100 buah nilai, menghitung serta mencetak totalnya. Loop ini dikatakan unconditional, karena pengulangannya dipastikan sebanyak 100 kali, (sengaja dibuat 100 kali) tidak tergantung suatu kondisi tertentu (unconditional) Pada beberapa buku literatur, loop dengan menggunakan FOR statement ini dimasukkannya kedalam kategori conditional loop, karena bagaimanapun jumlah pengulangan tergantung kondisi nilai I. 1) 2) 3) 4) 5) 6) 7) Contoh : Conditional LOOP T  0 WHILE T <= 100 DO READ(A) T  T + A ENDDO WRITE(T) 1) 2) 3) 4) 5) 6) 7) 8 Dalam Bahasa C, kedua algoritma yang menyatakan loop diatas ditulis sebagai berikut : T = 0; for(I=1; I <= 100; I=I+1) { scanf(“%i”, &A); T = T + A; } printf(“%i”, T); T = 0; I = 1; while( I <= 100) { scanf(“%i”, &A); T = T + A; I = I + 1; } printf(“%i”, T); Uncoditional Loop Akan mengerjakan loop tanpa dipengaruhi oleh suatu kondisi tertentu. T  0 I  0 While I <= 100 DO READ(A) T  T + A I  I + 1 ENDDO WRITE(T) Disini dicontohkan 2 algoritma yang memperlihatkan unconditional loop. Pertama menggunakan FOR dan yang kedua menggunakan While. For dan While adalah instruksi pembentuk loop. Coditional Loop Akan mengerjakan loop berdasarkan kondisi tertentu. Berapa kali loop dikerjakan tidak dapat dipastikan, karena semata-mata tergantung kondisi tertentu tadi. Dalam contoh diperlihatkan bahwa loop akan dikerjakan selama nilai T lebih kecil atau sama dengan 100. Loop akan selesai bila T lebih besar dari 100. Berapa kali loop dikerjakan, tentunya tidak dapat dipastikan. Unconditioanal loop T = 0; while( T <= 100) { scanf(“%i”, &A); T = T + A; } printf(“%i”, T); Conditioanal loop


Download ppt "1.1. Pengertian Algoritma. Algoritma, pada dasarnya, adalah alur pikiran dalam menyelesaikan suatu pekerjaan, yang dituangkan dalam bentuk tertulis yang."

Presentasi serupa


Iklan oleh Google