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)