44
ALGORITMA & PEMROGRAMAN PERTEMUAN 1 PENGANTAR ALGORITMA DAN PEMROGRAMAN [email protected] http://mardiana4smart.webnode.com

ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

ALGORITMA & PEMROGRAMAN

PERTEMUAN 1 PENGANTAR ALGORITMA DAN

PEMROGRAMAN

[email protected] http://mardiana4smart.webnode.com

Page 2: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Tujuan

• Mahasiswa memahami tahapan perancangan program.

• Mahasiswa memahami prinsip-prinsip algoritma

• pembuatan algoritma yang baik serta diagram alur (flowchart)

Page 3: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Sub Pokok Bahasan

• Struktur sistem komputer

• Definisi Program/pemrograman

• Definisi Bahasa Pemrograman

• Definisi algoritma

• Kriteria algoritma

• Penerapan algoritma

• Penulisan algoritma

• Desk Checking VS Plan Test

Page 4: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Bagan Sistem Komputer

Page 5: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Definisi Program/Pemrograman

• Program adalah kumpulan instruksi atau perintah yang disusun sedemikian rupa sehingga mempunyai urutan nalar yang tepat untuk menyelesaikan suatu persoalan.

• Instruksi (statement) yang dimaksud adalah syntax (cara penulisan) sesuai dengan bahasa pemrograman yang digunakan yang mempunyai komponen-komponen : Input, Output, Proses, Percabangan dan Perulangan.

• Pemrograman adalah proses menulis, menguji dan memperbaiki (debug), dan memelihara kode yang membangun sebuah program komputer.

Page 6: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Bahasa Pemrograman

• Bahasa Pemrograman merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer.

• Contoh: C, C++, C#, Pascal, Basic, Perl, PHP, ASP, JHP, Java, dll. Perbedaan dan persamaan bahasa pemrograman • Perbedaan: cara memberikan instruksi (sintaks) • Persamaan: bertujuan menghasilkan output yang sama

Page 7: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Mengapa Belajar Algoritma dan Pemrograman?

• Untuk melatih logika berpikir

• Untuk menulis kode dalam bahasa yang dimengerti komputer

• Untuk dasar matakuliah lain di Sistem Informasi

Page 8: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Niklaus Wirth

Eidgenossische Technische Hochschule

Zurich, Switzerland

Page 9: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas
Page 10: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas
Page 11: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas
Page 12: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas
Page 13: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Definisi Logika

• Logika identik dengan masuk akal dan penalaran.

• Penalaran adalah salah satu bentuk pemikiran. Pemikiran adalah pengetahuan tak langsung yang didasarkan pada pernyataan langsung pemikiran mungkin benar dan mungkin juga tak benar.

• Definisi logika sangat sederhana yaitu ilmu yang memberikan prinsip-prinsip yang harus diikuti agar dapat berfikir valid menurut aturan yang berlaku

• Pelajaran logika menimbulkan kesadaran untuk menggunakan prinsip-prinsip untuk berfikir secara sistematis.

Page 14: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Asal-usul kata algoritma

• Abu Ja’far Muhammad Ibnu Musa Al Khuwarizmi adalah seorang penulis buku Arab yang berjudul Kitab Al Jabar Wal Muqabala (Buku Pemugaran dan Pengurangan). Kata Al Khuwarizmi dibaca orang Barat menjadi algorism.

• Kata algorism berarti proses menghitung dengan angka Arab. Seseorang dikatakan algorist jika orang tersebut menggunakan angka Arab.

• Kata algorism lambat laun menjadi algorithm disebabkan kata algorism sering dikelirukan dengan kata arithmetic sehingga akhiran –sm berubah menjadi –thm. Kata algorithm diserap ke dalam bahasa Indonesia menjadi algoritma.

Page 15: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Definisi Algoritma

• Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.

• Kata logis disini berarti benar sesuai dengan logika manusia.

• Untuk menjadi sebuah algoritma, urutan langkah yang ditempuh untuk menyelesaikan masalah harus memberikan hasil yang benar.

Page 16: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Penerapan Algoritma • Algoritma merupakan jantung ilmu komputer atau informatika.

Tapi penerapan algoritma tidak selalu di identikan dengan ilmu komputer saja,

melainkan sangat luas. Dalam kehidupan sehari-hari kita sering menjumpai

kegiatan penerapan algoritma tapi tanpa di sadari.

• Misal:

* Langkah-langkah membuat kue

* Membuat pakaian

* Membuat alat musik

* Pengambilan uang di ATM dll.

Page 17: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Kriteria algoritma yang baik adalah : 1. Memiliki logika perhitungan/metode yang tepat dalam memecahkan

masalah . 2. Menghasilkan output yang tepat dan benar dalam waktu yang singkat

(output). 3. Ditulis dengan bahasa yang standar secara sistematis dan rapi sehingga

tidak menimbulkan arti ganda. 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke

dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas. 6. Semua proses harus berakhir setelah sejumlah langkah dilakukan. Suatu Algoritma yg terbaik (The Best) : “ Suatu algoritma harus menghasilkan output yg tepat guna (efektif) dlm waktu yg relatif singkat & penggunaan memori yg relatif sedikit (efesien) dgn langkah yg berhingga & prosedurnya berakhir baik dlm keadaan dip’oleh suatu solusi ataupun tdk ada solusinya. “

Page 18: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Penulisan Algoritma Penulisan algoritma dapat di tuangkan dengan bentuk:

• Pseudo code yaitu kode atau intruksi perintah yang menyerupai penjelasan bahasa sehari-hari yang di mengerti oleh manusia.

• Algoritma pemrograman yang penulisan intruksinya lebih mendekati intruksi-intruksi bahasa pemrograman.

• Flowchart program merupakan langkah-langkah (instruksi-instruksi) program yang menceritakan kejadian suatu proses satu dengan proses lainya dalam suatu program secara mendetail yang di wakilkan dalam bentuk simbol-simbol.

Page 19: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Contoh Algoritma 1

Pseudocode

Nilai A adalah 5

Nilai B adalah 4

C diperoleh dari A ditambah dengan B

Cetak nilai C

Selesai

Diketahui dua buah bilangan masing- masing bernilai 5 dan 4. Susunlah pseudocode/agoritma untuk menjumlahkan bilangan tersebut.

Algoritma

A 5

B 4

C A + B

WRITE(C)

End

Page 20: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

TAHAPAN PERANCANGAN PROGRAM

Tujuh langkah dasar dalam perancangan/ pengembangan program : 1. Definisi Masalah 2. Outline Solusi 3. Pengembangan outline ke dalam algoritma 4. Melakukan test terhadap algoritma 5. Memindahkan algoritma ke dalam bahasa pemrograman 6. Menjalankan program pada komputer 7. Dokumentasi dan pemeliharaan program

20

Page 21: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

1. Definisi Masalah

• Pada tahap ini memerlukan pemahaman terhadap permasalahan dengan

membaca berulang kali sampai dengan mengerti apa yang dibutuhkan.

• Permasalahan dibagi kedalam tiga komponen:

• Input / Masukan

• Output / Keluaran

• Proses

21

Page 22: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Contoh : Menjumlah Tiga Angka

• Input

angka 1

angka 2

angka 3

• Proses

Read

Add

print

• Output

Total

Program diharuskan membaca tiga angka, menjumlahkannya bersamaan, lalu mencetak totalnya

Page 23: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

2. Outline Solusi • Setelah permasalahan didefinisikan, permasalahan dapat di bagi kedalam

tugas tugas atau langkah langkah yang lebih kecil dan menghasilkan outline solusi

• Outline solusi awal dapat terdiri dari:

– Proses utama

– Subtask utama

– Struktur Kontrol

– Variabel dan struktur record

– Logic utama (mainline)

23

Page 24: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

3. Pengembangan Outline Ke Dalam Algoritma

• Outline solusi pada langkah kedua dikembangkan menjadi algoritma yaitu

sebuah set langkah yang menggambarkan tugas yang akan dikerjakan dan

urutan pengerjaannya.

24

Page 25: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Menjumlah Tiga Angka

• Input

angka 1

angka 2

angka 3

• Proses

read

add

print

• Output

Total

Add_Tiga_Angka Read angka1, angka2, angka3

total = angka1 + angka 2 + angka 3 Print total

End

Page 26: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

4. Melakukan Test Terhadap Algoritma

• Tujuan utama dari melakukan test terhadap algoritma adalah adalah untuk menemukan

kesalahan utama logik sejak awal, sehingga akan lebih mudah diperbaiki.

• Data test diperlukan untuk melakukan test terhadap algoritma ini.

26

Page 27: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

5. Memindahkan Algoritma Ke Dalam Bahasa Pemrograman

Setelah ke-empat langkah sebelumnya dilakukan, maka pencodingan dapat dimulai dengan

menggunakan bahasa pemrograman yang dipilih.

Cth :

#include<stdio.h>

#include<conio.h>

#include<math.h>

#include<iostream.h>

#define phi 3.14

main(){

int r;

float luas;

cout<<"Masukan Jari-Jari Lingkaran : ";cin>> r;

luas = phi * pow(r,2);

cout<<"Luas Lingkaran = "<<luas;

getch();}

27

Page 28: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

6. Menjalankan Program Pada Komputer

• Setelah pengcodingan, maka program dapat dijalankan pada komputer.

Jika Program sudah didesain dengan baik, maka akan mengurangi tingkat

kesalahan dalam melakukan testing program.

• Langkah ini perlu dilakukan beberapa kali, sehingga program yang

dijalankan dapat berfungsi dengan benar

28

Page 29: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

DESK CHECKING ALGORITMA

Setelah algoritma solusi dibuat, maka algoritma tersebut harus di cek untuk mengetahui apakah algoritma solusi yang dirancang sudah benar atau belum.

Pengecekan ini biasanya disebut dengan desk checking atau tehnik manual untuk memeriksa logika algoritma.

29

Page 30: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Desk Checks vs Test Plans

Desk Check menekankan pada nilai variabel dan logika. Contoh : Berapakah nilai variabel x setelah pernyataan; Apa pernyataan berikutnya yang akan dieksekusi ?

Test Plan fokus pada nilai input dan output yang dibutuhkan untuk menguji program tanpa memperdulikan kinerja internal. Contoh : Apa output yang benar dari sebuah input ?

Page 31: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Tahapan Pengecekan Algoritma

31

1. Pilih data sederhana yang valid. Dua atau tiga data biasanya sudah mencukupi.

2. Tentukan hasil output yang diharapkan untuk setiap set data.

3. Buatlah tabel yang nama variabel yang ada pada algoritma di sebuah kertas

4. Jalankan test satu persatu mengikuti algoritma yang ada, mulai dari perintah / statement pertama sampai dengan selesai

5. Ulangi langkah tersebut menggunakan set data yang lain.

6. Cek apakah hasil dari langkah 5, sesuai dengan hasil yang diharapkan di langkah kedua

Page 32: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Contoh • Algoritma solusi:

program_kalkulator

baca bil_1, bil_2

jumlah = bil_1 + bil_2

selisih = bil_1 – bil_2

kali = bil_1 * bil_2

bagi = bil_1 / bil_2

cetak jumlah, selisih, kali, bagi

END

Page 33: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Contoh

• Plan Test :

• Data input:

Data 1 Data 2

Bil_1 10 20

Bil_2 5 10

Page 34: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Contoh

• Plan Test

• Hasil yang diharapkan:

Data 1 Data 2

Jumlah 15 30

Selisih 5 10

Kali 50 200

Bagi 2 2

Page 35: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Contoh

• Tabel desk checking

cetak bil_1 bil_2 jumlah selisih kali bagi

Data ke - 1

Baca 10 5

jumlah 15

selisih 5

kali 50

bagi 2

cetak ya ya ya ya

Data ke-2

Baca 20 10

jumlah 30

selisih 10

kali 200

bagi 2

cetak ya ya ya ya

Page 36: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

7. Dokumentasi & Pemeliharaan Program

• Dokumentasi melibatkan eksternal dokumentasi (hierarchy chart,

algoritma solusi, dan hasil data test) dan internal dokumentasi (coding

program)

• Pemeliharaan program meliputi perubahan yang dialami oleh program

(perbaikan ataupun penambahan modul, dll)

36

Page 38: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Latihan 2

• Ada 2 buah gelas. Satu berisi teh dan satunya lagi berisi kopi. Bagaimana caranya menukar isi masing-masing gelas?

teh kopi

Page 39: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Jawaban Latihan 2

Algoritma • Siapkan gelas cadangan X

• Tuangkan gelas yang berisi teh ke gelas cadangan

• Tuangkan gelas yang berisi kopi ke gelas yang awalnya dipakai teh

• Tuangkan isi gelas cadangan ke gelas yang awalnya berisi kopi

teh

kopi teh

X

X

kopi X

Page 40: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Latihan 3

• Buatlah pseudocode/algoritma untuk menghitung luas lingkaran (data masukan diinput)

Page 41: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Latihan 4

• Algoritma untuk menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan genap.

Page 42: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Latihan 5

Susun algoritma untuk menginput 3 buah bilangan bulat yang masing-masing menyatakan panjang sebuah garis. Kemudian periksa ketiga buah garis tersebut, apakah dapat membentuk sebuah segitiga. Bila ketiga buah garis tersebut dapat membentuk sebuah segitiga, maka cetak perkataan “SEGITIGA”, tapi bila ketiga buah garis tersebut tidak dapat membentuk sebuah segitiga, maka cetak perkataan “BUKAN SEGITIGA”. Pada sebuah segitiga berlaku suatu kepastian bahwa : Total panjang dua buah sisi selalu lebih besar dari panjang satu sisi yang lain.

Page 43: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Tugas Buatlah algoritma :

1. Untuk mengurutkan 3 bilangan acak!. Misal 3 bilangan adalah 35, 12, 27

2. Ada 2 gelas kosong berukuran: 5 liter dan 3 liter

Bagaimana cara kita mendapatkan air berukuran 4 liter?

3. Menentukan apakah tahun yang diinputkan termasuk tahun kabisat/bukan.

4. Menghitung ekivalensi bilangan dalam detik menjadi berapa hari, jam berapa menit dan berapa detik

Page 44: ALGORITMA & PEMROGRAMAN · 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisi dengan jelas

Questions?