BASIC ALGORITM CONCEPT
Muhammad Najib DS, S.Kom., M.T
Analogy
Jika seseorang ingin mengirim surat kepada kenalannya di
tempat lain, langkah apa yang harus dilakukan?
 Steps :
 Menulis Surat.
 Surat dimasukan ke dalam amplop tertutup
 Amplop diberikan alamat penerima dan pengirim
 Amplop ditempeli prangko secukupnya
 Kirim melalui kantor pos terdekat
HISTORY of ALGORITM
Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibnu Musa
al-Khowarizmi, ilmuan Persia yang menulis kitab al jabr w’al-muqabala
(rules of restoration and reduction) sekitar tahun 825 M.
WHAT’S ALGORITM
1 Definitions
 Urutan langkah-langkah untuk memecahkan masalah yang disusun
secara sistematis dan logis.
 Kamus Besar Bahasa Indonesia:
 Algoritma adalah urutan logis pengambilan putusan untuk pemecahan
masalah.
2 Algoritma dibutuhkan untuk memerintah komputer mengambil langkah-
langkah tertentu dalam menyelesaikan masalah.
WHY ALGORITM ?
Pembuatan atau penulisan algoritma tidak tergantung pada bahasa
pemrograman manapun.
Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa
pemrograman.
Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama
karena algoritmanya sama.
GOOD ALGORITM REQUIREMENT
Tingkat kepercayaannya tinggi (Reability)
 Hasil yang diperoleh dari proses harus berakurasi tinggi dan benar.
Pemrosesan yang efisien (Low Cost)
 Proses harus diselesaikan secepat mungkin dan frekuensi kalkulasi yang
sependek mungkin.
Sifatnya general
 Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi
juga untuk kasus lain yang lebih general.
GOOD ALGORITM REQUIREMENT (Cont.)
Bisa dikembangkan (expandable)
 Haruslah sesuatu yang dapat kita kembangkan lebih jauh berdasarkan
perubahan requirement yang ada.
Mudah dimengerti
 Siapapun yang melihat, dia akan bisa memahami algoritma Anda. Susah
dimengertinya suatu program akan membuat susah di-maintenance
(kelola).
Portabilitas yang tinggi (portability)
 Bisa dengan mudah diimplementasikan di berbagai platform computer.
 Precise (tepat, betul, teliti)
GOOD ALGORITM REQUIREMENT (Cont.)
Efektif
 Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses
yang akan menjalankannya.
Harus terminate
Jalannya algoritma harus ada kriteria berhenti.
Output yang dihasilkan tepat.
ALGORITM EXAMPLES
ALGORITM EXAMPLES
ALGORITM
 Dalam bidang komputer, algoritma sangat diperlukan dalam
menyelesaikan berbagai masalah pemrograman, terutama dalam
komputasi numeris. Tanpa algoritma yang dirancang baik maka proses
pemrograman akan menjadi salah, rusak, atau lambat dan tidak efisien.
 Algoritma di butuhkan untuk memerintah komputer mengambil langkah-
langkah tertentu untuk menyelesaikan masalah
 Algoritma  Pemrograman  Program
 Agar algoritma dapat memerintah (diproses) komputer, maka dirubah
menjadi bentuk program (melalui proses pemrograman).
CHARACTERS OF ALGORITM
 Algoritm Aspects :
 Finite → algoritma harus berhenti setelah mengerjakan sejumlah langkah
terbatas
 Definite → setiap langkah didefinisikan secara tepat, tidak boleh
membingungkan (ambigu)
 Input → sebuah algoritma memiliki satu/lebih input sebelum dijalankan
 Output → algoritma memiliki satu/lebih output, yang biasanya bergantung
kepada input
 Effective → setiap algoritma diharapkan memiliki sifat efektif. (setiap
langkah harus sederhana dan sehingga dapat dikerjakan dalam waktu
yang masuk akal)
1 Peran algoritma : fundamental (tidak ada algoritma tidak ada program).
2 Algoritma + struktur data = program
 Struktur data :teknik/cara penyusunan/ penyimpanan data dalam komputer
 “ memori seminim mungkin dan kecepatan eksekusi semaksimal mungkin”
ALGORITM ROLE
Problem Solving Stage
 Masalah
 Model
 Algoritma
 Program
 Eksekusi
 Hasil
 Data
 analisis
 analisis
 analisis
Suatu Algoritma yg terbaik (The Best):
“Suatu algoritma harus menghasilkan output yg tepat guna (efektif) dlm
waktu yg relatif singkat & penggunaan memori yg relatif sedikit (efesien) dgn
langkah yg berhingga & prosedurnya berakhir baik dlm keadaan diperoleh
suatu solusi.“
WRITING ALGORITM
Menggunakan bahasa natural (Bahasa manusia: Indonesia, Inggris)
 Kelemahannya masih sering membingungkan (ambigu) / sulit dipahami.
Menggunakan Flowchart
 Baik karena alur algoritma dapat dilihat secara visual, tetapi repot
pembuatannya jika algoritma panjang .
Menggunakan Pseudocode
 Sudah dekat dengan bahasa pemrograman, tetapi sulit dimengerti oleh
orang yang belum tahu pemrograman
USE NATURAL LANGUAGE
Write an algorithm to perform addition of two number.
Step 1: read the first number say a
Step 2: read the second number say b
Step 3: add the two number and store the result in a variable c
Step 4: display the result
USE PSEUDOCODE
Algorithm sum(a, b)
//problem description: this algorithm perform addition of two //number
//input: two integers a and b
//output: addition of two integers
C 
a+b
Write c
USING FLOWCHART
Start
Stop
 Start Statement
 Transition
 Processing / Assignment Statement
 Input / Output Statement
 Conditional Statement
 Stop Statement
USING FLOWCHART (cont.)
 Symbol Predefined Process (Simbol
untuk mempersiapkan penyimpanan
yang akan digunakan sebagai tempat
pengolahan di dalam storage)
 Symbol Off-line Connector ( Simbol
untuk keluar/masuk prosedure atau
proses dalam lembar/halaman yang
lain)
 Symbol Connector (Simbol untuk
keluar/masuk prosedur atau proses
dalam lembar/halaman yang sama)
USING FLOWCHART (cont.)
Start
Input the
value of a
c= a + b
Input the
value of b
Display the
value of c
Stop
 Buatlah flowchart untuk
menampilkan semua bilangan
kelipatan 7 dari 1 – 50 dengan
menggunakan pengulangan
do while.
 Deskripsi
 x ← 7
 Do
The Important of Program Analysis
Suppose, if we want to build a house we do not directly start constructing the
house. Instead we consult an architect, we put our ideas and suggestion,
accordingly he draws a plan of the house, and he discussed it with us.
Finally, the blue print of house gets ready. Now it becomes very easy and
systematic for construction of desired house.
Designing is just a paper work and it can be easily modified on the paper.
Before actual implementation of the program, designing an algorithm is very
important step.
Steps of Program Analysis
Bagaimana merencanakan algoritma?
Bagaimana menyatakan suatu algoritma (menulis algoritma)?
Bagaimana validitas suatu algoritma?
Bagaimana menganalisa suatu algoritma?
Bagaimana menguji program dari suatu algoritma?
Ad.1. Bagaimana merencanakan
algoritma
Dengan Mendefinisikan masalah.
Contoh : Permasalahan menghitung
luas lingkaran, dengan data yang
diketahui adalah diameter lingkaran.
Ad.2. Bagaimana menyatakan suatu algoritma
(menulis algoritma)
• Dengan psudocode
Suatu cara penulisan algoritma agar ide dan logika dari
algoritma dapat disampaikan/diekspresikan menggunakan
gaya bahasa pemrograman tertentu.
Phi  3.14
Input (diameter)
Radius  diameter / 2
Luas  phi * radius * radius
Output (Luas)
End
• Dengan
flowchart
/ diagram
alir
Program
Flowchart, yaitu
bagan yang
menggambar-kan
urutan logika dari
suatu prosedur
pemecahan
masalah.
 Start
 Phi = 3.14
 Input
 (diameter)
 Radius = diameter/2
 Luas = phi * radius * radius
 Output
 Luas
 Stop
 Tahap Proses Uji Algoritma
1. Pengujian Tahap Debuging
Untuk mengecek kesalahan program, Baik sintaksis maupun logika.
2. Pengujian Tahap Profiling
Untuk menentukan waktu tempuh dan banyaknya memori program yang
digunakan.
ALGORITM ANALYSIS
Untuk melihat effisiensi dan efektifitas dari suatu algoritma, dapat dilihat dari:
1. Waktu Tempuh dari Suatu Algoritma
2. Jumlah memori yang digunakan
 Hal-hal yang dapat mempengaruhi waktu tempuh adalah :
1. Banyaknya langkah.
2. Besar dan jenis input data.
3. Jenis Operasi.
4. Komputer dan kompilator
Langkah-langkah yang membentuk suatu algoritma dapat
dibagi menjadi 3 kelompok proses:
Sequence Process
 Instruksi dikerjakan secara berurutan satu persatu dimulai dari langkah
pertama sampai terakhir.
Selection Process
 Instruksi pemilihan proses (percabangan), sehingga apabila
memenuhi persyaratan tertentu maka instruksi akan dikerjakan.
Contoh : jika pembayaran tunai diberi diskon 10%
Jika dilakukan secara kredit maka diskon 0 %.
(dalam pernyataan diatas, hanya boleh melakukan 1 instruksi dari 2
alternatif instruksi.
Langkah-langkah yang membentuk suatu algoritma dapat
dibagi menjadi 3 kelompok proses (cont.)
Iteration Process
Suatu instruksi yang dikerjakan berulang-ulang selama beberapa kali selama
masih memenuhi suatu kondisi.
PROGRAM LANGUAGE
Program harus ditulis dalam suatu bahasa yang dimengerti oleh
komputer yaitu dalam Bahasa pemrogram dibedakan menjadi :
 Bahasa tingkat rendah (low level language) : bahasa yang berorientasi ke
mesin.
 Bahasa tingkat tinggi (high level language) : bahasa yang berorientasi ke
manusia (seperti bahasa inggris) contoh bahasa Pascal, bahasa C dll.
PROGRAM LANGUAGE
Program yang ditulis dalam bahasa pemrograman akan diterjemahkan
kedalam bahasa mesin (kenal dengan biner digit) dengan
menggunakan penterjemah.
 Interpreter : menterjemahkan baris per baris instruksi.
 Contoh bahasa Basic.
 Compiler : Menterjamahkan setelah seluruh instruksi ditulis.
 Contoh bahasa Pascal, C, C++, dll.
HOME WORK
1. Buatlah algoritma untuk menghitung konversi suhu.dari
Celcius menjadi Reamur dan Farenheit.
 Input: suhu dalam Celcius
 Proses: R = 4/5 * C dan F = 9/5 * C + 32
 Output
2. Buatlah algoritma untuk menentukan suatu bilangan genap
atau ganjil
 Input: suatu bilangan
 Ouput: genap / ganjil
HOME WORK
1. Buatlah algoritma untuk menghitung gaji karyawan .
 Input : Nama, Jam Lembur
 Output : Nama, Bonus, Total Gaji
 Ket : Gaji Pokok = Rp. 2.000.000.,
 Bonus = 50.000 / Jam
Thank You ..

Chapter 2 - Konsep Dasar Algoritma.pptx

  • 1.
    BASIC ALGORITM CONCEPT MuhammadNajib DS, S.Kom., M.T
  • 2.
    Analogy Jika seseorang inginmengirim surat kepada kenalannya di tempat lain, langkah apa yang harus dilakukan?  Steps :  Menulis Surat.  Surat dimasukan ke dalam amplop tertutup  Amplop diberikan alamat penerima dan pengirim  Amplop ditempeli prangko secukupnya  Kirim melalui kantor pos terdekat
  • 3.
    HISTORY of ALGORITM Asalkata Algoritma berasal dari nama Abu Ja’far Mohammed Ibnu Musa al-Khowarizmi, ilmuan Persia yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction) sekitar tahun 825 M.
  • 4.
    WHAT’S ALGORITM 1 Definitions Urutan langkah-langkah untuk memecahkan masalah yang disusun secara sistematis dan logis.  Kamus Besar Bahasa Indonesia:  Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah. 2 Algoritma dibutuhkan untuk memerintah komputer mengambil langkah- langkah tertentu dalam menyelesaikan masalah.
  • 5.
    WHY ALGORITM ? Pembuatanatau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman. Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.
  • 6.
    GOOD ALGORITM REQUIREMENT Tingkatkepercayaannya tinggi (Reability)  Hasil yang diperoleh dari proses harus berakurasi tinggi dan benar. Pemrosesan yang efisien (Low Cost)  Proses harus diselesaikan secepat mungkin dan frekuensi kalkulasi yang sependek mungkin. Sifatnya general  Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang lebih general.
  • 7.
    GOOD ALGORITM REQUIREMENT(Cont.) Bisa dikembangkan (expandable)  Haruslah sesuatu yang dapat kita kembangkan lebih jauh berdasarkan perubahan requirement yang ada. Mudah dimengerti  Siapapun yang melihat, dia akan bisa memahami algoritma Anda. Susah dimengertinya suatu program akan membuat susah di-maintenance (kelola). Portabilitas yang tinggi (portability)  Bisa dengan mudah diimplementasikan di berbagai platform computer.  Precise (tepat, betul, teliti)
  • 8.
    GOOD ALGORITM REQUIREMENT(Cont.) Efektif  Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses yang akan menjalankannya. Harus terminate Jalannya algoritma harus ada kriteria berhenti. Output yang dihasilkan tepat.
  • 9.
  • 10.
  • 11.
    ALGORITM  Dalam bidangkomputer, algoritma sangat diperlukan dalam menyelesaikan berbagai masalah pemrograman, terutama dalam komputasi numeris. Tanpa algoritma yang dirancang baik maka proses pemrograman akan menjadi salah, rusak, atau lambat dan tidak efisien.  Algoritma di butuhkan untuk memerintah komputer mengambil langkah- langkah tertentu untuk menyelesaikan masalah  Algoritma  Pemrograman  Program  Agar algoritma dapat memerintah (diproses) komputer, maka dirubah menjadi bentuk program (melalui proses pemrograman).
  • 12.
    CHARACTERS OF ALGORITM Algoritm Aspects :  Finite → algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas  Definite → setiap langkah didefinisikan secara tepat, tidak boleh membingungkan (ambigu)  Input → sebuah algoritma memiliki satu/lebih input sebelum dijalankan  Output → algoritma memiliki satu/lebih output, yang biasanya bergantung kepada input  Effective → setiap algoritma diharapkan memiliki sifat efektif. (setiap langkah harus sederhana dan sehingga dapat dikerjakan dalam waktu yang masuk akal)
  • 13.
    1 Peran algoritma: fundamental (tidak ada algoritma tidak ada program). 2 Algoritma + struktur data = program  Struktur data :teknik/cara penyusunan/ penyimpanan data dalam komputer  “ memori seminim mungkin dan kecepatan eksekusi semaksimal mungkin” ALGORITM ROLE
  • 14.
    Problem Solving Stage Masalah  Model  Algoritma  Program  Eksekusi  Hasil  Data  analisis  analisis  analisis
  • 15.
    Suatu Algoritma ygterbaik (The Best): “Suatu algoritma harus menghasilkan output yg tepat guna (efektif) dlm waktu yg relatif singkat & penggunaan memori yg relatif sedikit (efesien) dgn langkah yg berhingga & prosedurnya berakhir baik dlm keadaan diperoleh suatu solusi.“
  • 16.
    WRITING ALGORITM Menggunakan bahasanatural (Bahasa manusia: Indonesia, Inggris)  Kelemahannya masih sering membingungkan (ambigu) / sulit dipahami. Menggunakan Flowchart  Baik karena alur algoritma dapat dilihat secara visual, tetapi repot pembuatannya jika algoritma panjang . Menggunakan Pseudocode  Sudah dekat dengan bahasa pemrograman, tetapi sulit dimengerti oleh orang yang belum tahu pemrograman
  • 17.
    USE NATURAL LANGUAGE Writean algorithm to perform addition of two number. Step 1: read the first number say a Step 2: read the second number say b Step 3: add the two number and store the result in a variable c Step 4: display the result
  • 18.
    USE PSEUDOCODE Algorithm sum(a,b) //problem description: this algorithm perform addition of two //number //input: two integers a and b //output: addition of two integers C  a+b Write c
  • 19.
    USING FLOWCHART Start Stop  StartStatement  Transition  Processing / Assignment Statement  Input / Output Statement  Conditional Statement  Stop Statement
  • 20.
    USING FLOWCHART (cont.) Symbol Predefined Process (Simbol untuk mempersiapkan penyimpanan yang akan digunakan sebagai tempat pengolahan di dalam storage)  Symbol Off-line Connector ( Simbol untuk keluar/masuk prosedure atau proses dalam lembar/halaman yang lain)  Symbol Connector (Simbol untuk keluar/masuk prosedur atau proses dalam lembar/halaman yang sama)
  • 21.
    USING FLOWCHART (cont.) Start Inputthe value of a c= a + b Input the value of b Display the value of c Stop
  • 22.
     Buatlah flowchartuntuk menampilkan semua bilangan kelipatan 7 dari 1 – 50 dengan menggunakan pengulangan do while.  Deskripsi  x ← 7  Do
  • 23.
    The Important ofProgram Analysis Suppose, if we want to build a house we do not directly start constructing the house. Instead we consult an architect, we put our ideas and suggestion, accordingly he draws a plan of the house, and he discussed it with us. Finally, the blue print of house gets ready. Now it becomes very easy and systematic for construction of desired house. Designing is just a paper work and it can be easily modified on the paper. Before actual implementation of the program, designing an algorithm is very important step.
  • 24.
    Steps of ProgramAnalysis Bagaimana merencanakan algoritma? Bagaimana menyatakan suatu algoritma (menulis algoritma)? Bagaimana validitas suatu algoritma? Bagaimana menganalisa suatu algoritma? Bagaimana menguji program dari suatu algoritma?
  • 25.
    Ad.1. Bagaimana merencanakan algoritma DenganMendefinisikan masalah. Contoh : Permasalahan menghitung luas lingkaran, dengan data yang diketahui adalah diameter lingkaran.
  • 26.
    Ad.2. Bagaimana menyatakansuatu algoritma (menulis algoritma) • Dengan psudocode Suatu cara penulisan algoritma agar ide dan logika dari algoritma dapat disampaikan/diekspresikan menggunakan gaya bahasa pemrograman tertentu. Phi  3.14 Input (diameter) Radius  diameter / 2 Luas  phi * radius * radius Output (Luas) End
  • 27.
    • Dengan flowchart / diagram alir Program Flowchart,yaitu bagan yang menggambar-kan urutan logika dari suatu prosedur pemecahan masalah.  Start  Phi = 3.14  Input  (diameter)  Radius = diameter/2  Luas = phi * radius * radius  Output  Luas  Stop
  • 28.
     Tahap ProsesUji Algoritma 1. Pengujian Tahap Debuging Untuk mengecek kesalahan program, Baik sintaksis maupun logika. 2. Pengujian Tahap Profiling Untuk menentukan waktu tempuh dan banyaknya memori program yang digunakan.
  • 29.
    ALGORITM ANALYSIS Untuk melihateffisiensi dan efektifitas dari suatu algoritma, dapat dilihat dari: 1. Waktu Tempuh dari Suatu Algoritma 2. Jumlah memori yang digunakan  Hal-hal yang dapat mempengaruhi waktu tempuh adalah : 1. Banyaknya langkah. 2. Besar dan jenis input data. 3. Jenis Operasi. 4. Komputer dan kompilator
  • 30.
    Langkah-langkah yang membentuksuatu algoritma dapat dibagi menjadi 3 kelompok proses: Sequence Process  Instruksi dikerjakan secara berurutan satu persatu dimulai dari langkah pertama sampai terakhir. Selection Process  Instruksi pemilihan proses (percabangan), sehingga apabila memenuhi persyaratan tertentu maka instruksi akan dikerjakan. Contoh : jika pembayaran tunai diberi diskon 10% Jika dilakukan secara kredit maka diskon 0 %. (dalam pernyataan diatas, hanya boleh melakukan 1 instruksi dari 2 alternatif instruksi.
  • 31.
    Langkah-langkah yang membentuksuatu algoritma dapat dibagi menjadi 3 kelompok proses (cont.) Iteration Process Suatu instruksi yang dikerjakan berulang-ulang selama beberapa kali selama masih memenuhi suatu kondisi.
  • 32.
    PROGRAM LANGUAGE Program harusditulis dalam suatu bahasa yang dimengerti oleh komputer yaitu dalam Bahasa pemrogram dibedakan menjadi :  Bahasa tingkat rendah (low level language) : bahasa yang berorientasi ke mesin.  Bahasa tingkat tinggi (high level language) : bahasa yang berorientasi ke manusia (seperti bahasa inggris) contoh bahasa Pascal, bahasa C dll.
  • 33.
    PROGRAM LANGUAGE Program yangditulis dalam bahasa pemrograman akan diterjemahkan kedalam bahasa mesin (kenal dengan biner digit) dengan menggunakan penterjemah.  Interpreter : menterjemahkan baris per baris instruksi.  Contoh bahasa Basic.  Compiler : Menterjamahkan setelah seluruh instruksi ditulis.  Contoh bahasa Pascal, C, C++, dll.
  • 34.
    HOME WORK 1. Buatlahalgoritma untuk menghitung konversi suhu.dari Celcius menjadi Reamur dan Farenheit.  Input: suhu dalam Celcius  Proses: R = 4/5 * C dan F = 9/5 * C + 32  Output 2. Buatlah algoritma untuk menentukan suatu bilangan genap atau ganjil  Input: suatu bilangan  Ouput: genap / ganjil
  • 35.
    HOME WORK 1. Buatlahalgoritma untuk menghitung gaji karyawan .  Input : Nama, Jam Lembur  Output : Nama, Bonus, Total Gaji  Ket : Gaji Pokok = Rp. 2.000.000.,  Bonus = 50.000 / Jam
  • 36.