AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... ·...

32
Algoritma Dan Pemrograman Pengampu : Muhammad Zidny Naf’an, Lc., S.Kom., M.Kom

Transcript of AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... ·...

Page 1: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Algoritma Dan Pemrograman

Pengampu : Muhammad Zidny Naf’an, Lc., S.Kom., M.Kom

Page 2: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Algoritma Dan Pemrograman

Algoritma adalah jantung ilmu komputer dan informatika.

Banyak cabang dari ilmu komputer yang diacu dalamterminology algoritma.

Algoritma berasal dari kata algorism yang berarti proses menghitung.

Kata algorism berasal dari nama penulis buku arab

yang terkenal yaitu Abu Ja’far Muhammad

Ibnu Musa al-Khuwarizmi

2

Page 3: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Definisi Algoritma

Urutan langkah-langkah logis penyelesaian Urutan langkah-langkah logis penyelesaianmasalah yang disusun secara sistematis

Urutan logis pengambilan keputusan untukpemecahan masalah

3

Page 4: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Ciri Penting Algoritma (1)

Memiliki Input

Algoritma dapat memiliki nol atau lebih inputan dari luar.

Memiliki Output

Algoritma harus memiliki minimal satu buah output keluaran.

Definiteness (pasti)

Algoritma memiliki instruksi-instruksi yang jelas dan tidakambigu atau memilikuiarti ganda.

4

Page 5: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Ciri Penting Algoritma (2)

Finiteness (ada batas atau berakhir)

Algoritma harus memiliki titik berhenti (stopping role).

Effectiveness(efektif dan efisien)

Algoritma sebisa mungkin harus dapat dilaksanakan danefektif. Contoh instruksi yang tidak efektif adalah : A = A + 0 atau A = A * 1.

5

Page 6: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Algoritma Terbaik

Algoritma dikatakan terbaik atau The Best jika Suatualgoritma menghasilkan output yang tepat guna(efektif) dalam waktu yang relative singkat danpenggunaan memori yang relatif sedikit (efisien)dengan langkah berhingga dan prosedurnya berakhirbaik dalam keadaan diperoleh solusi ataupun tidakada solusi.

6

Page 7: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Belajar Memprogram danBelajar Bahasa Pemrograman

Belajar Memprogram :

Pemahaman persoalan, analisis, dan sintesis

Belajar Bahasa Pemrograman :

• Belajar memakai suatu bahasa

• Aturan sintaks (tata bahasa)

7

Pemecahan Masalah

-Strategi-Metodologi-Sistematika

Notasi yang telah disepakati

Page 8: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Program adalah….

Program :

Perwujudan atau implementasi algoritma yang ditulis dalam bahasa pemrograman tertentu

8

Page 9: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Pengertian Program dan Bahasa Pemrograman

Kumpulan instruksi yang digunakan untuk mengatur komputeragar melakukan suatu tindakan tertentu dinamakan program.

Instruksi yang digunakan dalam menulis program disebutbahasa pemrograman.

Orang yang membuat program komputer dinamakanpemrogram atau programmer.

9

Page 10: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Dan kegiatan merancang dan menulis program komputerdisebut pemrograman atau programming.

Suatu program ditulis dengan mengikuti kaidah bahasapemrograman tertentu (Pascal, Turbo C, Basic, Borland C++, Java, dll).

Salah satu dari sekian banyak bahasa pemrograman, dalammatakuliah ini akan memakai bahasa pemrograman C++.

10

Page 11: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Perkembangan BahasaPemrograman

• Bahasa Mesin. Bahasa yang berisi kode-kode mesin yang hanya dapat diinterpretasikan langsung oleh mesinkomputer Keuntungan: Eksekusi cepat Kerugian: Sangat sulit dipelajari manusia

• Bahasa Assembly. Bahasa simbol dari bahasa mesin Kelebihan: Eksekusi cepat, masih bisa dipelajari daripadabahasa mesin, file kecil Kekurangan: Tetap sulit dipelajari, program sangat panjang.

11

Page 12: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Perkembangan BahasaPemrograman

• Bahasa Tingkat Tinggi (3rd GL) Bahasa pemrograman yang lebihtinggi dari bahasa assembly Keuntungan:• Mudah dipelajari• Mendekati permasalahan yang akan dipecahkan• Kode program pendek Kerugian: Eksekusi lambat Contoh: C, C++, Pascal, Basic, dan java

• Bahasa yang berorientasi pada masalah spesifik(4th GL) Digunakan langsung untuk memecahkan masalah tertentu Contoh: SQL untuk database

12

Page 13: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Translator

• Assembler. Source code: bahasa assembly, Object code: bahasa mesin

• Interpreter. Source code: bahasa scripting seperti php, ASP, javascript, Perl. Tidakmenghasilkan object code hanya translasi internal

• Kompiler. Source code: bahasa program spt C, C++, pascal Object code: bahasa assembly

13

Page 14: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Tahap Penyelesaian Masalah

14

Page 15: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Proses Translasi-Kompilasi-Intrepretasi

15

Algoritma

Program dalamBahasa Tingkat Tinggi

Program dalamBahasa Mesin

Operasi(Baca, tulis, hitung, perbandingan, dll)

Translasi

Interpretasi oleh CPU

Kompilasi

Page 16: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Paradigma Pemrograman (1)

Prosedural (imperatif) Program = Struktur + DataMisalnya : Pascal, C, Basic

Object Oriented data dan instruksi dibungkus menjadi satu, disebut: kelas, kelas pada saat run-time disebut objek. Misalnya : C++, Java

16

Page 17: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Paradigma Pemrograman (2)

Fungsional konsep pemetaan dan fungsi pada matematikaMisalnya : Matlab

Deklaratif pendefinisian relasi antar individu yang dinyatakan sebagaipredikatMisalnya : Prolog

17

Page 18: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Jenis Proses Algoritma

Sequence Process

merupakan instruksi yang dikerjakan secara sekuensialatau berurutan.

Selection Process

merupakan instruksi yang dikerjakan jika memenuhikriteria tertentu.

18

Page 19: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Jenis Proses Algoritma

Iteration Process

merupakan instruksi dikerjakan yang selama memenuhisuatu kondisi tertentu.

Concurrent Process

merupakan beberapa instruksi yang dikerjakan secarabersama.

19

Page 20: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Algoritma Pengerjaan didalam ResepMakanan

Algoritma Pengerjaan didalam ResepMakanan

1. Tuangkan satu gelas santan ke dalam wajan.

2. Masukkan bumbu-bumbu yang sudah dihaluskan.

3. Aduk hingga merata.

4. Tambahkan garam, merica dan kecap asin.

5. Masak dengan api sedang, sambil diaduk-aduk.

Page 21: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Algoritma Dalam Mengerjakan PraktikumKimia

1. Siapkan tabung reaksi ukuran 100cc.

2. Teteskan 50 cc larutan H2SO4 ke dalam tabung.

3. Campurkan 20 cc larutan NaOH kedalamnya, aduk hinggatercampur merata.

Page 22: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Algoritma Mengirim Surat Kepada Teman

1. Tulis surat pada secarik kertas surat.

2. Ambil sampul surat.

3. Masukkan surat ke dalam sampul.

4. Tutup sampul surat menggunakan perekat.

5. Jika kita ingat alamat teman tersebut, maka tulis alamatpada sampul surat.

6. Jika tidak ingat, lihat buku alamat, kemudian tulis alamatpada sampul surat.

7. Tempel perangko pada surat.

8. Bawa surat ke kantor pos untuk diposkan.

Page 23: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Algoritma Mencari Kuadrat SuatuBilangan

1. Masukkan bilangan A yang akan dkuadratkan

2. Kalikan A dengan A

3. Selesai

Page 24: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Latihan Soal

• Tiga pasang suami istri sedang menempuh perjalanan sampai ke sebuah sungai. Disitu mereka menemukan sebuah perahu kecil yang hanya bisa membawa tidak lebih dari 2 orang. Penyebrangan air sungai itu dirumitkan oleh kenyataan para suami tersebut pencemburu. Tuliskan algoritmanya agar ketiga pasang suami istri tersebut dapat menyeberangi sesuaidengan ketentuan di atas!

Page 25: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Latihan Soal

Tiga buah cakram yang masing-masing berdiameter berbeda mempunyai lubang dititik pusatnya.Ketiga cakram tersebut dimasukan pada sebuah batang besi A sedemikian sehingga cakram yang berdiameter lebih besar selalu terletak dibawah cakram yang berdiameter lebih kecil.

Tulislah Algoritma untuk memindahkan seluruh cakram tersebut ke batang besi B; setiap kali hanya satu cakram yang boleh dipindahkan, tetapi pada setiap perpindahan tidak boleh ada cakram yang ebih besar berada diatas cakram kecil.Batang besi C dapat dipakai sebagai tempat peralihan dengan tetap memegang aturan yang telah disebutkan.

25

Page 26: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Latihan Soal

Ada sebuah algoritma program pemutar kaset tape recorder:

1. Pastikan tape power ON

2. Tekan tombol play

3. 3.masukkan kaset dalam tape recorder

Dimanakah letak kesalahan logika algoritma tersebut?

26

Page 27: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Latihan Soal

Seorang salesman (petugas pemasaran) suatu perusahaan minuman harusmengunjungi 5 warung untuk memperkenalkan produk minuman terbaru. Kelima warung tersebut adalah: P, Q, R, S, dan T. Dia hanya akan mengunjungi masing-masing satu kali saja, satu warung per hari, Senin s/d Jumat, dengan aturan berikut:

• Tidak boleh mengunjungi warung R pada hari Senin.

• Harus mengunjungi warung P sebelum mengunjungi S.

• Harus mengunjungi warung Q sebelum mengunjungi T.

Mana jadwal yang memenuhi syarat?A. Q, S, P, T, RB. R, Q, T, P, SC. R, S, P, Q, TD. T, R, Q, P, SE. P, S, R, Q, T

27

Jika ia mengunjungi R lebih dahulu daripada P, mana yang pasti benar?A. Q dikunjungi pertama kaliB. R dikunjungi pada hari SelasaC. P dikunjungi pada hari RabuD. T dikunjungi pada hari KamisE. S dikunjungi terakhir kali

Page 28: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Tiga orang dewasa Roni(pria), Susi(wanita), dan Vina(wanita) bersama dengan lima anak-anak Fredi(pria), Heru(pria), Jono(pria), Lisa(wanita) dan Marta(wanita) akan pergi berdarmawisata ke Kebun Binatang dengan menggunakan sebuah kendaraan minibus. Minibus tersebut memiliki satu tempat di sebelah pengemudi, dan dua buah bangku panjang di belakang yang masing-masing terdiri dari 3 tempat duduk, sehingga total terdapat delapan tempat duduk di dalam minibus tersebut, termasuk pengemudi.Setiap peserta wisata harus duduk sendiri, masing-masing di sebuah kursi yang ada dan susunan tempat duduk harus disesuaikan dengan beberapa ketentuan sebagai berikut:

• Pada masing-masing bangku harus terdapat satu orang dewasa yangduduk

• Salah satu di antara Roni dan Susi harus duduk sebagai pengemudi

• Jono harus duduk bersebelahan dengan Marta

Pertanyaan:

Jika Fredi duduk bersebelahan dengan Vina, siapakah penumpang pria yang duduk di paling depan? Jawab: .......

28

Page 29: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Tugas

Buatlah algoritma untuk menghitung luas dankeliling lingkaran. Dengan masukan jari-jarilingkaran.

Page 30: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Menghitung Luas Lingkaran

1. Start

2. Menetapkan nilai Phi yaitu 3.14

3. Masukan jari-jari lingkaran

4. Menghitung luas lingkaran dengan rumus L=phi x r x r

5. Mencetak nilai Luas

6. Finish

Page 31: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Menghitung Keliling Lingkaran

1. Start

2. Menetapkan nilai Phi yaitu 3.14

3. Masukan jari-jari lingkaran

4. Menghitung keliling lingkaran dengan rumus K=2 x phi x r

5. Mencetak nilai Keliling

6. Finish

Page 32: AlgoritmaDan Pemrogramanzidny.dosen.st3telkom.ac.id/wp-content/uploads/sites/29/2016/09/... · Misalnya: Matlab Deklaratif pendefinisianrelasiantarindividuyang dinyatakansebagai predikat

Terimakasih

32