Anda di halaman 1dari 39

STRUKTUR DATA

ALGORITMA DAN PEMROGRAMAN

Politeknik Siber dan Sandi Negara


KONTRAK PERKULIAHAN & PENDAHULUAN
STRUKTUR DATA ALGORITMA DAN PEMROGRAMAN [SDAP]

2
CPL MATAKULIAH

“Mahasiswa mampu membuat algoritma


dalam bentuk pseudocode dan flowchart
serta membangun program untuk
menyelesaikan permasalahan yang
sederhana/mudah.”

3
Buku Referensi

4
Sub Capaian Pembelajaran MK

“Mahasiswa mampu menjelaskan


dasar - dasar struktur data
algoritma dan pemrograman.”

5
Persoalan / Masalah ?

[KBBI] “Sesuatu yang harus diselesaikan (dipecahkan)”

[Neopolitan (1996)] “Pertanyaan atau tugas


yang harus dicari jawabannya”

6
Contoh Masalah
“Diberikan setumpuk kartu. Urutkan kartu-kartu
01 tersebut supaya tersusun menaik berdasarkan
nomornya sedemikian sehingga nomor kecil di atas
dan nomor besar di bawah”

“Diberikan sebuah tabel berisi peserta ujian yang


02
lulus seleksi. Apakah ada peserta ujian dengan nomor
X di dalam daftar tersebut?”

“Diberikan sebuah senarai (list) yang berisi daftar


03 kota-kota di dunia dengan temperature udaranya
saat ini. Tentukan kota dengan temperatur
Enhanced
tertinggi.”
User Experiences

“Diketahui sebidang tanah berbentuk persegi panjang


04 dengan panjang dan lebar tertentu (dalam satuan
meter). Hitunglah luas tanah tersebut!”

7
Masalah Dalam Bentuk Parameter
• [Persoalan pengurutan] Diberikan sebuah senarai (list) S yang berisi n buah nilai.
Urutkan S sehingga tersusun dalam urutan menaik!
• [Persoalan pencarian] Diberikan sebuah senarai (list) S yang berisi n buah nilai.
Apakah sebuah nilai x terdapat di dalam S?
• [Persoalan mencari nilai terbesar] Diberikan sebuah senarai (list) S yang berisi n buah nilai.
Carilah nilai terbesar di dalam S!
• [Persoalan menghitung luas persegi panjang] Diberikan sebuah persegi panjang
dengan panjang a dan lebar b (keduanya dalam satuan meter).
Hitung luas persegi panjang tersebut.

Setiap persoalan umumnya mengandung satu atau lebih parameter. Pemberian nilai untuk
semua parameter persoalan dinamakan instansiasi persoalan, dan jawaban terhadap
instansiasi persoalan disebut solusi.

8
Masalah Dalam Bentuk Parameter

S = [15,4,8,11,2,10,19], n = 7

Sebelum terurut
15 4 8 11 2 10 19

Setelah terurut
2 4 8 10 11 15 19

9
Sejarah Algorithm

v Algortima adalah jantung ilmu komputer /


informatika
v Algorithm berasal dari kata algorism yang
artinya proses menghitung dengan angka
arab
v Perubahan kata algorism menjadi
algorithm muncul karena kata algorism
sering dikelirukan dengan arithmetic,
sehingga menjadi akhiran – sm berubah
menjadi -thm

Al Khawarizmi
ahli matematika, astronomi

10/4/23 10
Algorithm
l 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.

l Algoritma dibutuhkan untuk memerintah komputer mengambil


langkah-langkah tertentu dalam menyelesaikan masalah.

11
Contoh Algorithm (Kartu)

1. Cari kartu dengan nomor terkecil, taruh kartu tersebut pada posisi
paling atas.
2. Cari kartu dengan nomor terkecil kedua, taruh kartu tersebut pada
posisi kedua dari atas.
3. Cari kartu dengan nomor terkecil ketiga, taruh kartu tersebut
pada posisi ketiga dari atas.
4. …. Demikian seterusnya sampai tersisa satu kartu saja (tidak perlu
diurutkan lagi)

12
Contoh Algorithm (Kartu)
1. Cari kartu dengan nomor terkecil di antara kartu yang tersisa.
2. Taruh kartu tersebut pada posisi yang tepat.
3. Ulangi kembali dari langkah 1 dan 2 sampai tersisa satu kartu
saja.

13
Contoh Algorithm (Pertukaran Isi Gelas)
• Tinjau sebuah masalah sederhana yakni mempertukarkan isi dari dua buah gelas.
Gelas A berisi air kopi dan gelas B berisi air susu.
• Kita ingin mempertukarkan isi kedua gelas itu sedemikian sehingga gelas A akan berisi
air susu dan gelas B berisi air kopi

14
Algorithm pertukaran isi gelas (solusi)

15
Algoritma Persoalan Mengambil Air 4 Liter

Kita diperintahkan untuk mendapatkan air


sebanyak 4 liter (tidak kurang tidak lebih)
dari sebuah danau. Sedangkan kita hanya
punya alat dua buah ember masing-
masing berkapasitas 5 liter dan 3 liter.
Nah, bagaimana caranya mendapatkan air 4
liter dengan tepat tanpa menggunakan alat
lain maupun hanya mengira-ira.

16
Algoritma Pertukaran isi Gelas
• Isi Penuh ember 3-liter dengan air.
• Tuangkan air dari ember 3-liter ke dalam ember 5 liter. {ember 5 liter sekarang berisi 3 liter
air}.
• Isi penuh ember 3 liter dengan air. {ember 3 liter berisi 3 liter air}
• Tuangkan air dari ember 3 liter ke dalam ember 5 liter hingga penuh.
{di dalam ember 3 liter sekarang tersisa 1 liter air}
• Buang seluruh air dari ember 5 liter. {ember 5 liter kosong}
• Tuangkan air dari ember 3 liter ke dalam ember 5 liter. {ember 5 liter sekarang berisi 1 liter
air}
• Isi penuh ember 3 liter dengan air. {ember 3 liter berisi 3 liter air}
• Tuangkan air dari ember 3 liter ke dalam ember 5 liter.
{ember 5 liter sekarang berisi 1+3= 4 liter air}

17
Karakteristik Algoritma
• Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas.
• Setiap langkah harus didefinisikan dengan tepat dan tidak
boleh berarti dua (ambiguous).
Contoh pernyataan “bagilah p dengan sejumlah beberapa buah bilangan bulat positif”
dapat bermakna ganda.
Berapakah yang dimaksud dengan beberapa ? akan lebih jelas jika algoritma
tersebut ditulis “bagilah p dengan 10 buah bilangan bulat positif”
• Algoritma memiliki nol atau lebih masukan (input).
• Algoritma mempunyai nol atau lebih luaran (output).
• Algoritma harus sangkil (effective). Setiap langkah harus sederhana sehingga dapat
dikerjakan dalam sejumlah waktu yang masuk akal

18
syarat algoritma yang benar

l Tingkat kepercayaannya tinggi (realibility) Hasil yang diperoleh dari proses


harus berakurasi tinggi dan benar.
l Pemrosesan yang efisien (cost rendah)
Proses harus diselesaikan secepat mungkin dan frekuensi kalkulasi yang
sependek mungkin.
l Sifatnya general
Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi juga
untuk kasus lain yang lebih general.

19
syarat algoritma yang benar

l Bisa dikembangkan (expandable)


Haruslah sesuatu yang dapat kita kembangkan lebih jauh berdasarkan
perubahan requirement yang ada.
l Mudah dimengerti
Siapapun yang melihat, dia akan bisa memahami algoritma Anda. Susah
dimengertinya suatu program akan membuat susah di-maintenance (kelola).
l Portabilitas yang tinggi (portability)
Bisa dengan mudah diimplementasikan di berbagai
platform komputer.
l Precise (tepat, betul, teliti)

20
syarat algoritma yang benar

l Efektif
Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses yang
Akan menjalankannya.
l Harus terminate
Jalannya algoritma harus ada kriteria berhenti
l Output yang dihasilkan tepat

21
Program dan Pemrograman

• Algoritma baru efektif jika dilaksanakan oleh sebuah pemroses


• (processor). Pemroses itu bisa manusia, komputer, robot, mesin, dsb.
• Supaya komputer mengerti instruksi yang dibacanya, maka instruksi tersebut harus
ditulis dalam bahasa yang dipahami oleh komputer.
• Algoritma yang ditulis dalam bahasa komputer disebut program.
• Bahasa komputer yang digunakan untuk menulis program disebut

bahasa pemrograman, sedangkan orang yang menulis program computer


dinamakan pemrogram (programmer). Kegiatan mulai dari mendesain hingga
menulis program disebut pemrograman.

22
Program dan Pemrograman

Belajar Pemrograman ≠ Belajar Bahasa Pemrograman

23
Program dan Pemrograman

24
Piranti Unit
masukan dan Pemroses Memori
keluaran Utama (CPU)

25
Bahasa Pemrograman
• Hingga saat ini terdapat puluhan bahasa pemrograman seperti:
bahasa Assembly, Fortran, Cobol, Ada, PL/I, Algol, Pascal, Basic, C,
C++, C#, Java, R, Arduino, PHP, Prolog, LISP, Phyton, dll
• Berdasarkan tujuan aplikasinya terdapat 2 jenis:
a. Bahasa pemrograman bertujuan khusus; misal Cobol (untuk bisnis
dan administrasi), Fortran (komputasi ilmiah), PHP(untuk
pemrograman web), dll
b. Bahasa pemrograman bertujuan umum; dapat digunakan untuk
berbagai aplikasi, contoh Pascal, Basic, C, C++, C#, Java.
• Berdasarkan “kedekatan” bahasa pemrograman dengan bahasa
alami (manusia) dikelompokkan menjadi:
a. Bahasa tingkat rendah (low level language)
b. Bahasa tingkat tinggi (high level language)

26
Algoritma

Translasi

Program dalam Bahasa Tingkat


Tahapan Program Tinggi

Kompilasi

Program dalam Bahasa Tingkat


Rendah

Interpretasi oleh CPU

Operasi (baca, tulis, hitung, dsb)


27
Notasi Algoritma
Notasi 1: Menggunakan langkah-langkah algoritma dalam kalimat
deskriptif

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

28
Notasi 2: Menggunakan bagan alir (flowchart)

Notasi Algoritma

29
Notasi Algoritma

Notasi 2: Menggunakan bagan alir (flowchart)

Contoh:
Menghitung Luas persegi panjang

10/4/23 30
Notasi Algoritma
Notasi 3: Menggunakan
pseudocode

Contoh:
Menghitung Luas persegi panjang

10/4/23 31
Pemrograman Prosedural
Prosedur menurut KBBI:
1. Tahap-tahap kegiatan untuk menyelesaikan suatu aktivitas.
2. Metode langkah demi langkah secara eksak dalam memecahkan
suatu masalah.

• Pada pemrograman prosedural, program dibedakan antara bagian


data
dan bagian instruksi.
• Selain paradigma pemrograman prosedural, paradigma
pemrograman yang popular saat ini adalah pemrograman
berorientasi objek (OOP). Pada paradigma ini data dan instruksi
dibungkus menjadi satu (kelas).

10/4/23 32
LATIHAN
1. Perhatikan persoalan petani, kambing, serigala,
dan sayur kubis.

Ada seorang petani yang membawa seekor kambing,


seekor serigala, dan sekeranjang sayur. Mereka berada di
tepi sebuah pulau dan ingin menyebrang ke pulau
seberang. Di tepi pulau itu hanya ada sebuah perahu yang
cukup untuk dua penumpang. Situasinya dipersulit dengan
kenyataan bahwa kambing tidak boleh ditinggal berdua
dengan serigala tanpa adanya petani karena serigala akan
memakan kambing, kemudian kambing tidak boleh
ditinggal bersama sayur, karena kambing akan memakan
sayurnya. Kemudian, yang bisa menggunakan perahu
hanyalah petani. Bagaimana caranya agar mereka semua
bisa menyebrang ke pulau seberang dengan utuh?

33
LATIHAN

2. Buatlah algoritma menggunakan flowchart untuk menghitung luas lingkaran!

3. Buatlah algoritma menggunakan pseudocode untuk menentukan bilangan yang


diinput adalah bilangan ganjil/genap!

34
LATIHAN

35
1. Petani menyebrangkan kambing dari sisi A ke sisi B
{sisi A: (-,S,-,Y) sisi B: (P,-,K,-)
2. Petani menyeberang kembali dari B ke A
{sisi A: (P,S,-,Y) sisi B: (-,-,K,-)}
3. Petani menyeberangkan serigala dari sisi A ke B
{sisi A: (-,-,-,Y) sisi B: (P,S,K,-)}
4. Petani menyebrangkan kambing dari sisi B ke A
{sisi A: (-,-,-,Y) sisi B: (P,S,K,-)}
5. Petani menyebrangkan sayur dari sisi A ke B
6. Petani menyebrang sendiri dari B ke A
7. Petani menyebrangkan kambing dari sisi A ke B

36
Kesimpulan
• Untuk memahami apa itu algoritma terlebih dahulu kita harus memahami
persoalan.
• Algoritma adalah urutan langkah-langkah untuk menyelesaikan suatu persoalan
• Algoritma memiliki beberapa karakteristik supaya dapat disebut sebagai
algoritma yang baik.
• Algoritma yang ditulis dalam bahasa komputer dinamakan program dan kegiatan
mulai dari mendesain hingga menulis program dinamakan pemrograman.
• Bahasa pemrograman menurut tujuan aplikasinya dapat dibedakan menjadi bahasa
pemrograman yang bertujuan khusus dan umum sedangkan menurut kedekatan
dengan bahasa manusia dibagi menjadi bahasa tingkat rendah dan bahasa tingkat
tinggi.
• Notasi algoritma dapat dituliskan menggunakan kalimat deskriptif, pseudocode, dan
flowchart

37
Referensi
1. Inggriani Liem, Diktat Kuliah IF223 Algoritma Dan Pemrograman, Jurusan Teknik Informatika
Bandung, 1999
2. Rinaldi Munir, Algoritma dan Pemrograman, edisi ke-3, penerbit Informatika 2004
3. Normark, Kurt. Overview of the four main programming paradigms.
http://people.cs.aau.dk/ ~normark diakses tanggal 12 September 2013.
4. http://www.haskell.org/haskellwiki/Functional_programming diakses tanggal
14/09/2013
5. http://en.wikipedia.org/wiki/Functional_programming , diakses
tanggal 14/09/2013
6. Denis Sureau, History and Evolution of Programming Languages,
http://www.scriptol.com/programming/history.php diakses tanggal 17/09/2013

38
THANK YOU
Darsono Nababan S.Kom.,M.Kom.

Anda mungkin juga menyukai