01 Algoritma - Putra Pandu A (Hikaru Yuuki) のブログ

Download Report

Transcript 01 Algoritma - Putra Pandu A (Hikaru Yuuki) のブログ

Computer Science, University of Brawijaya
Putra Pandu Adikara, S.Kom
Algoritma dan Struktur Data
Pengenalan Algoritma
Daftar Isi
Algoritma
 Langkah Algoritma, Contoh
Flowchart
 Aturan, Simbol
Pseudocode  Konvensi
Program
 Contoh, Algoritma vs Program
Pascal
 Struktur Dasar, Tipe Data,
Variabel, Konstanta, Operator
Struktur dasar Algoritma, Flowchart dan
Pemrograman
Algoritma
Suatu metode khusus yang terdiri dari
serangkaian langkah terstruktur dan
ditulis secara sistematis di dalam
menyelesaikan suatu masalah
Prosedur komputasi yang terdefinisi yang
mengambil nilai atau sekumpulan nilai
sebagai input, dan menghasilkan nilai
atau sekumpulan nilai sebagai output.
Algoritma
•
Lima ciri penting algoritma
• Selesai dalam jumlah langkah terbatas
• Tidak memiliki arti ganda
• Memiliki nol atau lebih input
• Memiliki nol atau lebih output
• Efektif
•
Implementasi Algoritma
• Langkah-langkah proses atau prosedur → Kalimat
• Skema proses atau prosedur → Pseudocode
Langkah Penyelesaian Masalah
 Pendefinisian masalah
 Analisis Algoritma
• menentukan variabel-variabel yang digunakan
• menentukan teknik penyelesaiannya
misalnya : dengan rumus
 Penulisan algoritma dan/atau flowchart
 Ubah algoritma/ flowchart ke bahasa pemrograman
 Pengujian kebenaran (test & debugging)
 Dokumentasi
Contoh Algoritma
Contoh : - Algorithma ketika seseorang menelpon :
1. Mengangkat gagang telepon, dan mendengarkan nada
panggil
2. Memutar nomor telepon yang dituju
3. Apakah ada jawaban ?
a. Jika ada jawaban, tanyakan apakah yang dituju
ada ?
a1. Jika ada, lakukan pembicaraan
a2. Jika tidak ada, titip pesan dan tutup
pembicaraan
b. Jika tidak ada jawaban, kerjakan langkah 4
4. Letakkan gagang telepon
Tahapan Pemecahan Masalah
Algoritma
Translasi
Program dalam
Bahasa Tingkat Tinggi
Kompilasi
Program dalam
Bahasa Mesin
Interpretasi oleh CPU
Operasi
(Baca, tulis, hitung,
perbandingan, dll)
Flowchart
Diagram alir yang menunjukkan aliran proses
suatu algoritma
Contoh program yg biasanya digunakan oleh
analis/developer:
 Power Designer
Contoh program yg biasanya digunakan oleh
end user:
 Visio
Aturan di dalam membuat Flowchart
1. Jalannya proses dibuat sesingkat-singkatnya. Hindari
pengulangan proses yang tidak perlu dan logika yang
berbelit-belit (dihilangkan)
2. Rangkaian proses yang sama digambarkan sekali saja
3. Jalannya proses digambarkan dari atas ke bawah, dan
dari kiri ke kanan, dan diberi arah panah
4. Sebuah flowchart diawali dengan “Mulai” (Start) dan
diakhiri dengan “Selesai” (Stop)
Simbol dalam Flowchart
Simbol dalam Flowchart (1)
Proses
- Menunjukkan suatu proses/pengolahan
- Digunakan untuk melambangkan :
- perhitungan
- perubahan nilai variabel
Operasi I/O
- Menunjukkan operasi input/ouput
- Digunakan untuk melambangkan :
- menunggu input/masukan
- mengeluarkan output/keluaran
Simbol dalam Flowchart (2)
Persiapan (Preparation)
- Menunjukkan suatu persiapan
- Digunakan untuk melambangkan :
- memberikan nilai awal pada var
- permulaan dari suatu perulangan
Keputusan (Decision)
- Menunjukkan proses pembuatan keputusan
- Digunakan untuk melambangkan :
- suatu pilihan/percabangan (ya/tidak)
Simbol dalam Flowchart (3)
Terminal (Terminator)
- Digunakan untuk menunjukkan awal
dan akhir suatu program/flowchart
Penghubung (Connector)
- Digunakan sebagai penghubung antar
simbol yang terpisah (dalam 1 hal)
Penghubung Antar Halaman (Offpage
Connector)
- Digunakan sebagai penghubung antar
simbol yang terpisah (antar hal)
Simbol dalam Flowchart (4)
Modul (Module)
- Menunjukkan suatu proses yang telah
ditentukan
- Dapat berupa suatu :
- Prosedur (Procedure)
- fungsi (Function)
Panah (Arrow)
- Menunjukkan arah dari suatu proses
Pseudocode
Kode semu yang digunakan untuk menuliskan
algoritma agar lebih jelas (mudah dipahami)
Berbeda dengan kode real (program) tapi hampir
menyerupai bahasa program
Konvensi Pseudocode
Indentasi digunakan untuk menandai struktur
blok.
Komentar ditulis untuk memperjelas baris
pseudocode
Pseudocode dinomori untuk setiap instruksinya
Mengabaikan detail teknis penulisan sintaks
kode.
Konvensi Pseudocode
Kepala algoritma
 Terdiri atas nama algoritma dan penjelasan
(spesifikasi) tentang algoritma tersebut
Deklarasi
 Mendefinisikan semua nama (konstanta, peubah, tipe,
prosedur atau fungsi) yang dipakai dalam algoritma
Deskripsi
 Berisi uraian langkah-langkah penyelesaian
 Komentar ditulis diantara tanda kurung “{“ dan “}”
atauy “//”
Contoh Pseudocode
Program
Instruksi/perintah yang dimasukkan ke komputer
dan diterjemahkan oleh compiler agar bisa
dieksekusi oleh komputer.
Instruksi/perintah mempunyai syntax tertentu
tergantung dr bhs pemrograman (walau hampir
sama)
Algoritma vs Program
Algoritma menekankan pada logika
penyelesaian masalah dan mengabaikan aturan
(sintaks) baku penulisan kode program.
Program merupakan instruksi dengan aturan
(sintaks) penulisan yang baku agar dapat
dieksekusi oleh komputer.
Bahasa Pemrograman
 Bahasa pemrograman dibagi atas 2 (dua) golongan yaitu:
 Bahasa tingkat rendah ( low level languages )
• sedikit/tanpa abstraksi, “dekat dgn hardware”
• tanpa interpreter atau compiler
• contoh: bahasa mesin (machine code), Assembly
 Bahasa tingkat tinggi ( high level languages )
• bahasa yang berorientasi pada bahasa manusia (natural
language)
• abstraksi kuat, lebih mudah digunakan, bisa portable
lintas OS & hardware
• perlu interpreter atau compiler
• contoh: Pascal, C++,dsb
Contoh Bahasa Pemrograman
Banyak macam bahasa pemrograman/scripting:
Contoh Pemrograman Desktop:
 C++,Pascal/Delphi,C#,Java,VB
Contoh Pemrograman Web:
 Server: ASP, ASP.NET (VB.NET/C#), PHP, Java
Servlet,
 Client: Javascript
Contoh Scripting:
 Perl, Python, RoR (Ruby on Rail), Shell Scripting
Pascal
 Bahasa pemrograman Pascal diciptakan oleh Niklaus
Wirth. Bahasa Pascal adalah salah satu dari bahasa
tingkat tinggi.
 Komputer hanya mengenal kode 0 dan 1 (kode binary),
sehingga diperlukan sebuah alat untuk melakukan
penerjemahan.
 Penerjemah sebuah bahasa pemrograman ke dalam
bentuk kode binary disebut dengan istilah interpreter
atau kompiler.
 Kompiler yang biasanya digunakan untuk bahasa Pascal
yaitu Turbo Pascal, Borland Pascal, Free Pascal.
Struktur Dasar Pascal
 Statement program
 Menyatakan nama program, misal program exec;
 Statement uses
 menyertakan file tertentu (crt.pas, math.pas) yang
mengandung fungsi-fungsi dasar Pascal, misal uses crt,
math;
 Deklarasi global
 Terdiri dari deklarasi konstanta (const), variabel (var),
prosedur (procedure), fungsi (function). Bersifat global
shg bisa diakses oleh semua bagian program
 Bagian utama program
 bagian pokok dari struktur program/kendali utama program
Tipe Data
Tipe data dasar/primitif:
 Integer (bilangan bulat)
• Integer, Byte, ShortInt, LongInt, Word
 Float (bilangan desimal)
• Real, Single, Double, Extended
 Char (karakter)
 Boolean
• True,False
 String (rangkaian karakter)
Variabel
 Variabel (Variable) adalah penampung data di memori,
nilai yg bisa ditampung tergantung dari Tipe Data.
 Di Pascal, deklarasi variabel:
 [nama variabel]: [tipe data]
 Contoh:
 var
• isValid: boolean;
• Sentence: string;
• Number: int;
Konstanta
 Variabel yang mempunyai nilai yang selalu tetap / tidak
dapat diubah setelah dideklarasikan selama
pengeksekusian program
 Di Pascal, deklarasi konstanta:
 const [nama_konstanta] = [nilai_konstanta];
 Contoh
 const pi = 3.14;
 Const kata = 'ini konstanta';
Operator
 Simbol yg menentukan operasi (misal pada variabel) yg
dilakukan dlm suatu expression (perintah)
 Contoh operator:





Aritmatika
: + - * div
Logika (boolean): true false or and not
Relasi
: == <> < > <= >=
Assignment
: :=
Akses member : .
 dsb
Struktur dasar Algoritma, Flowchart dan Pemrograman
Runtunan (Sequence)
Pemilihan atau Keputusan (Selection or
Decision)
Pengulangan atau Iterasi (Looping or
Iteration)
Pencacah (Counter)