pengenalan algoritma & struktur data1.pdf
TRANSCRIPT
BIOGRAFI
Nama : Theopilus Bayu Sasongko
(T.Bayu Sasongko, S.Kom., M.Eng)
TTL : Sragen, 27 Februari 1990
Pendidikan : SD N 6 Sragen, SMP N 6 Sragen,
SMA Xaverius, Universitas Kristen Dutawacana
(SI), Universitas Gadjah Mada (TI)
Pekerjaan : Software Engineering PT. Semis IT
Consultant, Dosen Tetap D-IV TI Politeknik
Harapan Bersama.
Bidang Minat : Software Engineering (Web based,
Desktop), Data mining
Nomor Kontak : 089647726345, 570F56F5 1
2
VISI & MISI PRODI D-IV TI
Visi
Menjadi Program Studi di Jawa Tengah
yang unggul dalam bidang Pengkajian,
Penerapan, dan Pengembangan
Perangkat Lunak berbasis vokasional
yang mampu berkompetisi secara
nasional pada tahun 2020
Misi
Menerapkan kurikulum Kerangka kualifikasi
Nasional Indonesia (KKNI)
Meningkatkan Kompetensi bagi tenaga pendidik,
tenaga kependidikan, dan mahasiswa baik
berskala nasional maupun internasional
Meningkatkan kerjasama dengan institusi, industri,
dan komunitas masyarakat dalam bidang
perangkat lunak di dalam maupun diluar negeri
Meningkatkan Kegiatan penelitian dan pengabdian
masyarakat dalam bidang perangkat lunak dari
sumber-sumber penyedia dana hibah.3
4
Algoritma
&
Struktur Data
TATA TERTIB PERKULIAHAN
Keterlambatan maksimal 20 menit
Wajib menggunakan sepatu
Berpakaian sopan dan menggunakan
baju berkerah
Tidak diperbolehkan titip absen
Kuliah diselenggarakan min 12 x
pertemuan dari 14 x pertemuan
5
SISTEM PENILAIAN
Nilai Akhir : Kehadiran + Tugas + UTS +
UAS
Standar Penilaian :
– Kehadiran : 10%
– Tugas : 20%
– UTS : 30%
– UAS : 40%
6
Jika seseorang ingin mengirim suratkepada kenalannya di tempat lain, langkah yang harus dilakukan adalah:
Langkah : Menulis surat
Surat dimasukkan ke dalam amplop tertutup
Amplop dikasih alamat penerima dan pengirim
Amplop ditempeli perangko secukupnya.
Pergi ke Kantor Pos terdekat untuk mengirimkannya
Analogi :
Apa Itu Algoritma ?
Definisi :
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.
Algoritma dibutuhkan untuk memerintah
komputer mengambil langkah-langkah
tertentu dalam menyelesaikan masalah.
Apa Itu Program/Pemrograman?
Definisi
Kumpulan instruksi-instruksi tersendiri
yang biasanya disebut source code yang
dibuat oleh programmer (pembuat
program).
Program : Realisasi dari Algoritma.
Program = Algoritma + Bahasa
Mengapa Algoritma ?
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.
Syarat Algoritma Baik?
Tingkat kepercayaannya tinggi (realibility) Hasil yang diperoleh dari proses harus berakurasi
tinggi dan benar.
Pemrosesan yang efisien (cost rendah)Proses harus diselesaikan secepat mungkin dan
frekuensi kalkulasi yang sependek mungkin.
Sifatnya generalBukan sesuatu yang hanya untuk menyelesaikan satu
kasus saja, tapi juga untuk kasus lain yang lebih
general.
Bisa dikembangkan (expandable)Haruslah sesuatu yang dapat kita kembangkan lebih
jauh berdasarkan perubahan requirement yang ada.
Mudah dimengertiSiapapun 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 komputer.
Precise (tepat, betul, teliti)
EfektifTidak boleh ada instruksi yang tidak mungkin dikerjakan
oleh pemroses yang akan menjalankannya.
Harus terminateJalannya algoritma harus ada kriteria berhenti.
Output yang dihasilkan tepat.
Langkah Pembuatan Program
Mendefinisikan masalah
a. Kondisi awal, yaitu input yang tersedia.
b. Kondisi akhir, yaitu output yang diinginkan.
c. Data lain yang tersedia.
d. Operator yang tersedia.
e. Syarat atau kendala yang harus dipenuhi.
Langkah Pembuatan Program
Buat Algoritma dan Struktur Cara
Penyelesaian
• Jika masalahnya kompleks, maka dibagi ke
dalam modul-modul
Langkah Pembuatan Program
Menulis program
Pilihlah bahasa yang mudah dipelajari, mudah
digunakan, dan lebih baik lagi jika sudah dikuasai,
memiliki tingkat kompatibilitas tinggi dengan
perangkat keras dan platform lainnya.
Langkah Pembuatan Program
Mencari Kesalahan
a. Kesalahan sintaks (penulisan program).
b. Kesalahan pelaksanaan: semantik, logika, dan
ketelitian..
Langkah Pembuatan Program
Uji dan Verifikasi Program
Dokumentasi Program
Pemeliharaan Program
STRUKTUR PENULISAN
ALGORITMA
Setiap Algoritma akan selalu terdiri dari tiga
bagian yaitu :
Judul (Header)
Kamus
Algoritma
Header (Judul)
Judul adalah bagian teks algoritma yang
digunakan sebagai tempat mendefinisikan
nama dengan menentukan apakah teks
tersebut adalah program, prosedur, fungsi.
Kamus (Deklarasi)
Kamus adalah bagian teks algoritma sebagai
tempat untuk mendefinisikan :
Nama type
Nama konstanta
Nama variabel
Nama fungsi
Nama prosedur.
Kamus (Deklarasi)
Algoritma (Deskripsi)
Algoritma adalah bagian inti dari suatu
algoritma yang berisi instruksi atau
pemanggilan aksi yang telah didefinisikan.
PENYAJIAN ALGORITMA
Bentuk penyajian untuk algoritma dibagi
menjadi 3 (tiga) bentuk penyajian, yaitu :
Algoritma dengan struktur Bahasa
Indonesia
Algoritma dengan Pseudocode
Algoritma dengan Flowchart
Struktur Bahasa Indonesia
Sifat: Umum
Tidak menggunakan simbol atau sintaks dari suatu
bahasa pemrograman.
Tidak tergantung pada suatu bahasa
pemrograman.
Notasi-notasinya dapat digunakan untuk seluruh
bahasa manapun.
Struktur Bahasa Indonesia
Contoh : Menghitung rata-rata tiga buah data
Algoritma dengan struktur bahasa Indonesia :
1) Baca bilangan a, b, dan c
2)Jumlahkan ketiga bilangan tersebut
3)Bagi jumlah tersebut dengan 3
4)Tulis hasilnya
Pseudo-Code
Penyajian algoritma dengan pseudocode
berarti menggunakan kode yang mirip
dengan kode pemrograman yang
sebenarnya. Pseudocode lebih rinci dari
English/Indonesia Structure.
Pseudo-Code
Contoh (1) : Menghitung rata-rata tiga
buah data
Algoritma dengan struktur pseudocode :
1) input (a, b, c)
2) Jml = a+b+c
3) Rerata = Jml/3
4) Output (Rerata)
Flowchart
Flowchart adalah penggambaran secara grafik dari
langkah-langkah dan urut-urutan prosedur dari
suatu program. Flowchart menolong analis dan
programmer untuk memecahkan masalah kedalam
segmen-segmen yang lebih kecil dan menolong
dalam menganalisis alternatif-alternatif lain dalam
pengoperasian.
Flowchart
Kegunaan:
Untuk mendesain program
Untuk merepresentasikan program
Maka, flowchartharus dapat
Merepresentasikankomponen-komponen dalam
bahasa pemrograman
Mengapa Flowchart
a. Relationship
Flowchart dapat memberikan gambaran
yang efektif, jelas, dan ringkas tentang
prosedur logic. Teknik penyajian yang
bersifat grafis jelas akan lebih baik
daripada uraian-uraian yang bersifat teks
khususnya dalam menyajikan logika logika
yang bersifat kompleks.
Mengapa Flowchart
b. Analysis
Dengan adanya pengungkapan yang jelas
dalam model atau chart, maka para
pembaca dapat dengan mudah melihat
permasalahan atau memfokuskan
perhatian pada area-area tertentu sistem
informasi.
Mengapa Flowchart
c. Communication
Karena simbol-simbol yang digunakan
mengikuti suatu standar tertentu yang
sudah diakui secara umum, maka
flowchart dapat merupakan alat bantu
yang sangat efektif dalam
mengkomunikasikan logika suatu masalah
atau dalam mendokumentasikan logika
tersebut.
Lambang
Lambang (2)
Lambang (3)
Lambang (4)
Lambang (5)
Contoh Flowchart
Problem:
Menghitung
Luas persegi panjang
Algoritma:
1.Masukkanpanjang(p)
2.Masukkanlebar(l)
3.Hitungluas(L),
yaitupanjangkali lebar
4.Cetakluas(L)
Contoh Flowchart
Problem:
Menentukan
Bilangan ganjil atau
Genap
STRUKTUR DASAR ALGORITMA
Struktur dasar algoritma :
1. Struktur Runtunan (Sequence Proses)
2. Struktur Pemilihan (Selection Proses)
3. Struktur Pengulangan (Iteration Proses)
Struktur Runtunan
Sebuah runtunan terdiri dari satu atau lebih
‘instruksi’. Tiap-tiap instruksi dilaksanakan
secara berurutan sesuai dengan urutan
penulisannya; sebuah instruksi baru bisa
dilaksanakan setelah instruksi sebelumnya
selesai dilaksanakan.
Struktur Runtunan
Struktur Pemilihan
Pada struktur ini, jika kondisi terpenuhi
maka salah satu aksi akan dilaksanakan
dan aksi yang ke dua diabaikan.
Kondisi adalah persyaratan yang dapat dinilai benar atau
salah sehingga akan memunculkan ‘aksi’ yang berbeda
dengan ‘kondisi’ yang berbeda.
Struktur Pemilihan
Notasi algoritmik :
if Syarat then
Aksi {True}
endif {False}
Struktur Pemilihan
Notasi Algoritma,
IF syarat THEN
aksi-1 {true}
ELSE
aksi-2 {false}
ENDIF
Struktur Pemilihan
CONTOH :
Menentukan bilangan terbesar diantara 3 bilangan:
‘if’ x > y ‘then’
‘if’ x > z ‘then’
tulis x sebagai bilangan terbesar
‘else’
tulis z sebagai bilangan terbesar
‘else’
‘if’ y > z ‘then’
tulis y sebagai bilangan terbesar
‘else’
tulis z sebagai bilangan terbesar
Struktur Pengulangan
Digunakan untuk program yang pernyataannya akan
dieksekusi berulang-ulang. Instruksi dikerjakan selama
memenuhi suatu kondisi tertentu. Jika syarat (kondisi)
masih terpenuhi maka pernyataan (aksi) akan terus
dilakukan secara berulang.
Struktur Pemilihan
For-Next
For var=awal to akhir
…………….
instruksi-instruksi
……………..
Next var
Struktur Pengulangan
While - do
Bentuk umum :
While {kondisi} do
…………..
instruksi-instruksi
…………..
Endwhile
Struktur Pengulangan
Repeat - Until
Bentuk Umum ;
Repeat
………………..
Instruksi
………………...
Until (kondisi)
Struktur Pengulangan
Contoh :
Algoritma Cetak_Angka
{mencetak 1, 2, .., 8 ke piranti keluaran}
Deklarasi :
K: integer
Deskripsi :
K 1 {inisialisasi}
while k <= 8 do
write (k)
k k + 1
endwhile
Contoh :
Algoritma Cetak_Angka
{mencetak 1, 2, .., 8 ke piranti keluaran}
Deklarasi :
K: integer
Deskripsi :
K 1 {inisialisasi}
repeat
write (k)
k k + 1
until k > 8
Diketahui sebuah algoritma berikut ini :
Deklarasi :
i, m : integer
Deskripsi :
i = 0
m = 0
while i < 9 then
m = i * i
cetak m
i = i + 1
endwhile.
Tulis output yang dihasilkan algoritma di atas !
LATIHAN SOAL
54
Jenis/Tipe Data (Data Type)
Terdiri dari
– Set nilai data
– Set operasi yang bisa diterapkan pada nilai
tersebut
55
Klasifikasi Jenis Data
Simple Data Type (Jenis Data
Sederhana)
– Item data individual
Data Structures / data aggregates
(struktur data)
– Kombinasi dari item data individual
– Membentuk item data lain
56
Jenis Data Sederhana
Numerik, terdiri dari :– Numerik integer (bilangan bulat)
– Numerik real (bilangan riil)
Karakter, terdiri dari :– Alfabet : a .. z, A .. Z
– Angka : 0 .. 9
– Simbol khusus : + ? ‘ ! [ ] { } … dll
Boolean (logika), terdiri dari :– True
– False
57
Identifier
Dalam bahasa pemrograman, item data diidentifikasi menurut namanya, bukan menurut alamat lokasinya dalam memori
Identifier akan merupakan konstanta jika ia selalu dikaitkan dengan nilai data yang sama
Identifier akan merupakan variabel jika nilai datanya yang terkait bisa berubah
Literal, nilai data yang tertera dalam program namun bukan sebagai identifier
58
Deklarasi Data
Jenis data konstanta dan variabel harus didefinisikan dalam program sehingga :– operasi yang tepat dapat dijalankan pada nilai
data dan
– Jumlah ruang penyimpanan yang tepat bisa ditentukan
Statement untuk mendefinisikan jenis data disebut declarative statement
Beberapa bahasa pemrograman memiliki sintaks pendeklarasian yang berbeda
Beberapa contoh program (pendeklarasian data) yang akan diberikan ditulis dalam pseudo-code
59
Contoh
Constants
pi = 3.141592654
Variables
i, qty : integer
harga_satuan, harga_beli : real
status : boolean
nama : character(25)
60
Struktur Data
Kelompok item data yang terorganisasi yang dianggap sebagai suatu unit
Disebut juga sebagai jenis data kompleks (complex data type) atau data aggregates
Beberapa struktur data :– Array (larik)
– String
– Record
– List (daftar)
– Tree
61
Array (Larik)
Set item data yang disusun secara baik menjadi rangkaian dan diacu atau ditunjuk oleh satu identifier
Contoh : Nilai = (56 42 89 65 48)
Item data individual dalam array bisa ditunjuk secara terpisah dengan menyatakan posisinya dalam array itu– Nilai(1) menunjuk 56
– Nilai(2) menunjuk 42
Bilangan yang ditulis dalam tanda kurung menandakan posisi item individual dalam array (disebut juga subscript / indeks)
62
Array (Larik) [2] Variabel bisa digunakan sebagai subscript,
misalnya Nilai(i). – Jika i = 2 maka menunjuk ke Nilai(2) yaitu 42
– Jika i = 4 maka menunjuk ke Nilai(4) yaitu 65
Item data individual dalam suatu array sering disebut elemen
Matriks– Array yang hanya berisi bilangan dan tidak ada
data alfabetisnya
Klasifikasi Array– Array 1 dimensi
– Array multi dimensi
63
Array Multi Dimensi Mempunyai elemen-elemen yang disusun ke
dalam baris dan kolom dan digunakan sebagai tabel data
Contoh : Nilai ujian dari mahasiswa satu kelas untuk beberapa mata kuliah bisa ditempatkan dalam array 2 dimensi
Siswa ke
(no.
baris)
B. Inggris
(kolom 1)
Matematik
a (kolom 2)
1
2
3
4
5
A(1,1) = 56
A(2,1) = 42
A(3,1) = 89
A(4,1) = 65
A(5,1) = 48
A(1,2) = 44
A(2,2) = 36
A(3,2) = 73
A(4,2) = 86
A(5,2) = 51
56 44
42 36
89 73
65 86
48 51
A =
64
Deklarasi Array
Array 1 dimensi
Array 2 dimensi
Variables
Nilai: array [1..5] of integer
A : array [1..4] of real
Variables
A : array [1..5, 1..2] of integer
65
Penanganan Array
Metode dasar penanganan array :– Mencari nilai terbesar
– Mencari nilai terkecil
– Menghitung nilai rata-rata
– Menghitung nilai total
– Menghitung jumlah nilai di bawah rata-rata
Menyortir Array (Sort)– Buble sort
– Straight selection sort
Mencari/Meneliti Array (Search)– Linear search
66
Penanganan Array [2]
Contoh : Nilai ujian mahasiswa akan dibaca dalam array. Kemudian akan ditampilkan nilai terbesar, nilai terkecil, nilai rata-rata, nilai total, dan jumlah nilai di bawah rata-rata.
Tahapan penanganan array– Input nilai data ke dalam array
– Mengkalkulasi nilai terbesar, terkecil, total, dan rata-rata
– Mengkalkulasi jumlah nilai di bawah rata-rata
– Menampilkan hasilnya (output)
67
String
Rangkaian karakter yang ditangani sebagai unit data tunggal
Contoh (string literal) : – “ABC, 32fl2. 3h”
– “Kucing dalam karung”
Contoh (variabel string) :– A = “Politeknik”
– B = “Harapan Bersama”
Berada dalam bentuk array karakter 1 dimensi
68
Deklarasi String
Fixed-length string
Variable-length string
Variables
nama : string[5]
Variables
nama : string
69
Operasi pada String
Concatenation
– Penggabungan dua atau lebih string
– Contoh :
A = “Universitas”
B = “Gunadarma”
C = A + B
maka
C = “UniversitasGunadarma”
70
Operasi pada String [2]
Substring
– Mengambil bagian dari suatu string
– Contoh A = “Universitas”
B = “Gunadarma”
C = Left(A, 3)
D = Right(B, 5)
E = Substr(A, 4, 5)
maka
C = “Uni”
D = “darma”
E = “versi”