pengenalan algoritma & struktur data1.pdf

70
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

Upload: zelfin-zega

Post on 30-Jan-2016

79 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Pengenalan Algoritma & Struktur data1.pdf

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

Page 2: Pengenalan Algoritma & Struktur data1.pdf

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

Page 3: Pengenalan Algoritma & Struktur data1.pdf

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

Page 4: Pengenalan Algoritma & Struktur data1.pdf

4

Algoritma

&

Struktur Data

Page 5: Pengenalan Algoritma & Struktur data1.pdf

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

Page 6: Pengenalan Algoritma & Struktur data1.pdf

SISTEM PENILAIAN

Nilai Akhir : Kehadiran + Tugas + UTS +

UAS

Standar Penilaian :

– Kehadiran : 10%

– Tugas : 20%

– UTS : 30%

– UAS : 40%

6

Page 7: Pengenalan Algoritma & Struktur data1.pdf

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 :

Page 8: Pengenalan Algoritma & Struktur data1.pdf

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.

Page 9: Pengenalan Algoritma & Struktur data1.pdf

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

Page 10: Pengenalan Algoritma & Struktur data1.pdf

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.

Page 11: Pengenalan Algoritma & Struktur data1.pdf

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.

Page 12: Pengenalan Algoritma & Struktur data1.pdf

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)

Page 13: Pengenalan Algoritma & Struktur data1.pdf

EfektifTidak boleh ada instruksi yang tidak mungkin dikerjakan

oleh pemroses yang akan menjalankannya.

Harus terminateJalannya algoritma harus ada kriteria berhenti.

Output yang dihasilkan tepat.

Page 14: Pengenalan Algoritma & Struktur data1.pdf

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.

Page 15: Pengenalan Algoritma & Struktur data1.pdf

Langkah Pembuatan Program

Buat Algoritma dan Struktur Cara

Penyelesaian

• Jika masalahnya kompleks, maka dibagi ke

dalam modul-modul

Page 16: Pengenalan Algoritma & Struktur data1.pdf

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.

Page 17: Pengenalan Algoritma & Struktur data1.pdf

Langkah Pembuatan Program

Mencari Kesalahan

a. Kesalahan sintaks (penulisan program).

b. Kesalahan pelaksanaan: semantik, logika, dan

ketelitian..

Page 18: Pengenalan Algoritma & Struktur data1.pdf

Langkah Pembuatan Program

Uji dan Verifikasi Program

Dokumentasi Program

Pemeliharaan Program

Page 19: Pengenalan Algoritma & Struktur data1.pdf

STRUKTUR PENULISAN

ALGORITMA

Setiap Algoritma akan selalu terdiri dari tiga

bagian yaitu :

Judul (Header)

Kamus

Algoritma

Page 20: Pengenalan Algoritma & Struktur data1.pdf

Header (Judul)

Judul adalah bagian teks algoritma yang

digunakan sebagai tempat mendefinisikan

nama dengan menentukan apakah teks

tersebut adalah program, prosedur, fungsi.

Page 21: Pengenalan Algoritma & Struktur data1.pdf

Kamus (Deklarasi)

Kamus adalah bagian teks algoritma sebagai

tempat untuk mendefinisikan :

Nama type

Nama konstanta

Nama variabel

Nama fungsi

Nama prosedur.

Page 22: Pengenalan Algoritma & Struktur data1.pdf

Kamus (Deklarasi)

Page 23: Pengenalan Algoritma & Struktur data1.pdf

Algoritma (Deskripsi)

Algoritma adalah bagian inti dari suatu

algoritma yang berisi instruksi atau

pemanggilan aksi yang telah didefinisikan.

Page 24: Pengenalan Algoritma & Struktur data1.pdf

PENYAJIAN ALGORITMA

Bentuk penyajian untuk algoritma dibagi

menjadi 3 (tiga) bentuk penyajian, yaitu :

Algoritma dengan struktur Bahasa

Indonesia

Algoritma dengan Pseudocode

Algoritma dengan Flowchart

Page 25: Pengenalan Algoritma & Struktur data1.pdf

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.

Page 26: Pengenalan Algoritma & Struktur data1.pdf

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

Page 27: Pengenalan Algoritma & Struktur data1.pdf

Pseudo-Code

Penyajian algoritma dengan pseudocode

berarti menggunakan kode yang mirip

dengan kode pemrograman yang

sebenarnya. Pseudocode lebih rinci dari

English/Indonesia Structure.

Page 28: Pengenalan Algoritma & Struktur data1.pdf

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)

Page 29: Pengenalan Algoritma & Struktur data1.pdf

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.

Page 30: Pengenalan Algoritma & Struktur data1.pdf

Flowchart

Kegunaan:

Untuk mendesain program

Untuk merepresentasikan program

Maka, flowchartharus dapat

Merepresentasikankomponen-komponen dalam

bahasa pemrograman

Page 31: Pengenalan Algoritma & Struktur data1.pdf

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.

Page 32: Pengenalan Algoritma & Struktur data1.pdf

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.

Page 33: Pengenalan Algoritma & Struktur data1.pdf

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.

Page 34: Pengenalan Algoritma & Struktur data1.pdf

Lambang

Page 35: Pengenalan Algoritma & Struktur data1.pdf

Lambang (2)

Page 36: Pengenalan Algoritma & Struktur data1.pdf

Lambang (3)

Page 37: Pengenalan Algoritma & Struktur data1.pdf

Lambang (4)

Page 38: Pengenalan Algoritma & Struktur data1.pdf

Lambang (5)

Page 39: Pengenalan Algoritma & Struktur data1.pdf

Contoh Flowchart

Problem:

Menghitung

Luas persegi panjang

Algoritma:

1.Masukkanpanjang(p)

2.Masukkanlebar(l)

3.Hitungluas(L),

yaitupanjangkali lebar

4.Cetakluas(L)

Page 40: Pengenalan Algoritma & Struktur data1.pdf

Contoh Flowchart

Problem:

Menentukan

Bilangan ganjil atau

Genap

Page 41: Pengenalan Algoritma & Struktur data1.pdf

STRUKTUR DASAR ALGORITMA

Struktur dasar algoritma :

1. Struktur Runtunan (Sequence Proses)

2. Struktur Pemilihan (Selection Proses)

3. Struktur Pengulangan (Iteration Proses)

Page 42: Pengenalan Algoritma & Struktur data1.pdf

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.

Page 43: Pengenalan Algoritma & Struktur data1.pdf

Struktur Runtunan

Page 44: Pengenalan Algoritma & Struktur data1.pdf

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.

Page 45: Pengenalan Algoritma & Struktur data1.pdf

Struktur Pemilihan

Notasi algoritmik :

if Syarat then

Aksi {True}

endif {False}

Page 46: Pengenalan Algoritma & Struktur data1.pdf

Struktur Pemilihan

Notasi Algoritma,

IF syarat THEN

aksi-1 {true}

ELSE

aksi-2 {false}

ENDIF

Page 47: Pengenalan Algoritma & Struktur data1.pdf

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

Page 48: Pengenalan Algoritma & Struktur data1.pdf

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.

Page 49: Pengenalan Algoritma & Struktur data1.pdf

Struktur Pemilihan

For-Next

For var=awal to akhir

…………….

instruksi-instruksi

……………..

Next var

Page 50: Pengenalan Algoritma & Struktur data1.pdf

Struktur Pengulangan

While - do

Bentuk umum :

While {kondisi} do

…………..

instruksi-instruksi

…………..

Endwhile

Page 51: Pengenalan Algoritma & Struktur data1.pdf

Struktur Pengulangan

Repeat - Until

Bentuk Umum ;

Repeat

………………..

Instruksi

………………...

Until (kondisi)

Page 52: Pengenalan Algoritma & Struktur data1.pdf

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

Page 53: Pengenalan Algoritma & Struktur data1.pdf

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

Page 54: Pengenalan Algoritma & Struktur data1.pdf

54

Jenis/Tipe Data (Data Type)

Terdiri dari

– Set nilai data

– Set operasi yang bisa diterapkan pada nilai

tersebut

Page 55: Pengenalan Algoritma & Struktur data1.pdf

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

Page 56: Pengenalan Algoritma & Struktur data1.pdf

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

Page 57: Pengenalan Algoritma & Struktur data1.pdf

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

Page 58: Pengenalan Algoritma & Struktur data1.pdf

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

Page 59: Pengenalan Algoritma & Struktur data1.pdf

59

Contoh

Constants

pi = 3.141592654

Variables

i, qty : integer

harga_satuan, harga_beli : real

status : boolean

nama : character(25)

Page 60: Pengenalan Algoritma & Struktur data1.pdf

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

Page 61: Pengenalan Algoritma & Struktur data1.pdf

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)

Page 62: Pengenalan Algoritma & Struktur data1.pdf

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

Page 63: Pengenalan Algoritma & Struktur data1.pdf

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 =

Page 64: Pengenalan Algoritma & Struktur data1.pdf

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

Page 65: Pengenalan Algoritma & Struktur data1.pdf

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

Page 66: Pengenalan Algoritma & Struktur data1.pdf

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)

Page 67: Pengenalan Algoritma & Struktur data1.pdf

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

Page 68: Pengenalan Algoritma & Struktur data1.pdf

68

Deklarasi String

Fixed-length string

Variable-length string

Variables

nama : string[5]

Variables

nama : string

Page 69: Pengenalan Algoritma & Struktur data1.pdf

69

Operasi pada String

Concatenation

– Penggabungan dua atau lebih string

– Contoh :

A = “Universitas”

B = “Gunadarma”

C = A + B

maka

C = “UniversitasGunadarma”

Page 70: Pengenalan Algoritma & Struktur data1.pdf

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”