Pengantar Algoritma dan Pemrograman ALGORITMA DAN PEMROGRAMAN IS

  • Slides: 40
Download presentation
Pengantar Algoritma dan Pemrograman ALGORITMA DAN PEMROGRAMAN [IS 6110102] Dosen: Yudha Saintika, S. T.

Pengantar Algoritma dan Pemrograman ALGORITMA DAN PEMROGRAMAN [IS 6110102] Dosen: Yudha Saintika, S. T. , M. T. I Sisilia Thya Safitri, S. T. , M. T

Let Me Introduce Myself: Yudha Saintika • Born in Purwokerto – Central Java, December

Let Me Introduce Myself: Yudha Saintika • Born in Purwokerto – Central Java, December 21, 1989, married. • IT Operation Team Leader – PT. Datacomm Diangraha, Jakarta (2012 -2017) • Lecturer – Information System, IT Telkom Purwokerto (2017 -Now) • IT Consultant – Huyula Asri Indonesia, Gorontalo (2015 -Now) • Master of Information Technology – University of Indonesia, Jakarta (2016) • Bachelor of Informatics Engineering – Telkom University, Bandung (2011) • • Oracle Certified Professional – My. SQL 5 Developer Oracle Certified Expert – Database SQL Oracle Certified Associate – Java SE 7 Developer Microsoft Certified Solution Associate – Windows Server 2012, Windows 7 • Contact Me on: 085624467025 • Send Me email to: yudha@ittelkom-pwt. ac. id

CAPAIAN PEMBELAJARAN MATA KULIAH “Setelah mengikuti mata kuliah Algoritma dan Pemrograman, Mahasiswa S 1

CAPAIAN PEMBELAJARAN MATA KULIAH “Setelah mengikuti mata kuliah Algoritma dan Pemrograman, Mahasiswa S 1 Informatika mampu membuat algoritma dalam bentuk pseudocode dan flowchart serta membangun program untuk menyelesaikan permasalahan yang sederhana/mudah. ”

Kontrak Perkuliahan • UTS = 25% • UAS = 25% • Tugas = 20%

Kontrak Perkuliahan • UTS = 25% • UAS = 25% • Tugas = 20% • Presensi = 10% • Kuis =10% • Keaktifan = 10% • Keterlambatan maksimal 15 menit. Lebih dari itu boleh masuk tetapi tidak di absen • Tidak makan/minum di dalam kelas • Tidak membuka laptop kecuali diminta

Kontrak Praktikum • Pre Test = 10% • Post Test = 30% • Laporan

Kontrak Praktikum • Pre Test = 10% • Post Test = 30% • Laporan = 25% • Tugas = 25% • Kehadiran = 10% • Keterlambatan maksimal 15 menit. Lebih dari 15 menit, boleh ikut praktikum tetapi tidak di absen • Plagiat dilihat dari waktu pengumpulan. Jika waktu pengumpulan sama, maka nilai dibagi sejumlah mahasiswa yang sama • Laporan di ketik sesuai dengan format yang telah di tentukan

Buku Referensi Pustaka Wajib: Pustaka Penunjang:

Buku Referensi Pustaka Wajib: Pustaka Penunjang:

Sub-Capaian Pembelajaran MK “Mahasiswa mampu menjelaskan dasar algoritma dan pemrograman. ”

Sub-Capaian Pembelajaran MK “Mahasiswa mampu menjelaskan dasar algoritma dan pemrograman. ”

Persoalan/Masalah

Persoalan/Masalah

Persoalan/Masalah • [KBBI] “Sesuatu yang harus diselesaikan (dipecahkan)” • [Neopolitan (1996)] “Pertanyaan atau tugas

Persoalan/Masalah • [KBBI] “Sesuatu yang harus diselesaikan (dipecahkan)” • [Neopolitan (1996)] “Pertanyaan atau tugas yang harus dicari jawabannya”

Contoh Persoalan/Masalah • “Diberikan setumpuk kartu. Urutkan kartu-kartu tersebut supaya tersusun menaik berdasarkan nomornya

Contoh Persoalan/Masalah • “Diberikan setumpuk kartu. Urutkan kartu-kartu tersebut supaya tersusun menaik berdasarkan nomornya sedemikian sehingga nomor kecil di atas dan nomor besar di bawah” • “Diberikan sebuath tabel berisi peserta ujuan yang lulus seleksi. Apakah ada peserta ujian dengan nomor X di dalam daftar tersebut? ” • “Diberikan sebuah senarai (list) yang berisi daftar kota-kota di dunia dengan temperature udaranya saat ini. Tentukan kota dengan temperature tertinggi. ” • “Diketahui sebidang tanah berbentuk persegi panjang dengan panjang dan lebar tertentu (dalam satuan meter). Hitunglah luas tanah tersebut!”

Persoalan/Masalah dalam bentuk parameter • [Persoalan pengurutan] Diberikan sebuah senarai (list) S yang berisi

Persoalan/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.

Persoalan/Masalah dalam bentuk parameter S = [15, 4, 8, 11, 2, 10, 19], n

Persoalan/Masalah dalam bentuk parameter S = [15, 4, 8, 11, 2, 10, 19], n = 7 Sebelum terurut 15 4 8 11 2 10 19 8 10 11 15 19 Setelah terurut 2 4

Sejarah Algoritma • Algoritma adalah jantung ilmu computer/informatika • Algoritma berasal dari kata algorism

Sejarah Algoritma • Algoritma adalah jantung ilmu computer/informatika • Algoritma berasal dari kata algorism yang artinya proses menghitung dengan angka arab. • Perubahan kata algorism menjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm berubah menjadi -thm Al Khawarizmi ahli matematika, astronomi

Algoritma l Definisi : ¡Urutan langkah-langkah untuk memecahkan masalah yang disusun secara sistematis dan

Algoritma 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.

Algoritma Persoalan Kartu 1. Cari kartu dengan nomor terkecil, taruh kartu tersebut pada posisi

Algoritma Persoalan 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)

Algoritma Persoalan Kartu 1. Cari kartu dengan nomor terkecil, taruh kartu tersebut pada posisi

Algoritma Persoalan 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)

Algoritma Persoalan Kartu (2) 1. Cari kartu dengan nomor terkecil di antara kartu yang

Algoritma Persoalan Kartu (2) 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.

Algoritma Pertukaran isi Gelas • Tinjau sebuah masalah sederhana yakni mempertukarkan isi dari dua

Algoritma 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

Algoritma Pertukaran isi Gelas - Solusi

Algoritma Pertukaran isi Gelas - Solusi

Algoritma Persoalan Mengambil Air 4 Liter Kita diperintahkan untuk mendapatkan air sebanyak 4 liter

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 berkapasitas 5 liter dan 3 liter. Nah, bagaimana caranya mendapatkan air 4 liter dengan tepat tanpa menggunakan alat lain maupun hanya mengira-ira.

Algoritma Pertukaran isi Gelas • Isi Penuh ember 3 -liter dengan air. • Tuangkan

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}

Karakteristik Algoritma • Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. • Setiap langkah

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 ditulus “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

Syarat Algoritma Baik? l Tingkat kepercayaannya tinggi (realibility) Hasil yang diperoleh dari proses harus

Syarat Algoritma Baik? 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.

Syarat Algoritma Baik? (2) l Bisa dikembangkan (expandable) Haruslah sesuatu yang dapat kita kembangkan

Syarat Algoritma Baik? (2) 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)

Syarat Algoritma Baik? (3) l Efektif Tidak boleh ada instruksi yang tidak mungkin dikerjakan

Syarat Algoritma Baik? (3) 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.

Program dan Pemrograman • Algoritma baru efektif jika dilaksanakan oleh sebuah pemroses (processor). Pemroses

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.

Program dan Pemrograman Belajar Pemrograman ≠ Belajar Bahasa Pemrograman

Program dan Pemrograman Belajar Pemrograman ≠ Belajar Bahasa Pemrograman

Program dan Pemrograman

Program dan Pemrograman

Bagaimana Komputer Menjalankan Program? Piranti masukan dan keluaran Unit Pemroses Utama (CPU) Memori

Bagaimana Komputer Menjalankan Program? Piranti masukan dan keluaran Unit Pemroses Utama (CPU) Memori

Bahasa Pemrograman • Hingga saat ini terdapat puluhan bahasa pemrograman seperti: bahasa Assembly, Fortran,

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)

Tahapan Pelaksanaan Program oleh Komputer Algoritma Translasi Program dalam Bahasa Tingkat Tinggi Kompilasi Program

Tahapan Pelaksanaan Program oleh Komputer Algoritma Translasi Program dalam Bahasa Tingkat Tinggi Kompilasi Program dalam Bahasa Tingkat Rendah Interpretasi oleh CPU Operasi (baca, tulis, hitung, dsb)

Notasi Algoritma Notasi 1: Menggunakan langkah-langkah algoritma dalam kalimat deskriptif Contoh: Menghitung rata-rata tiga

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

Notasi Algoritma (2) Notasi 2: Menggunakan bagan alir (flowchart)

Notasi Algoritma (2) Notasi 2: Menggunakan bagan alir (flowchart)

Notasi Algoritma (3) Notasi 2: Menggunakan bagan alir (flowchart) Contoh: Menghitung Luas persegi panjang

Notasi Algoritma (3) Notasi 2: Menggunakan bagan alir (flowchart) Contoh: Menghitung Luas persegi panjang

Notasi Algoritma (4) Notasi 3: Menggunakan pseudocode Contoh: Menghitung Luas persegi panjang

Notasi Algoritma (4) Notasi 3: Menggunakan pseudocode Contoh: Menghitung Luas persegi panjang

Pemrograman Prosedural • Prosedur menurut KBBI: 1. Tahap-tahap kegiatan untuk menyelesaikan suatu aktivitas. 2.

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).

Latihan 1. Perhatikan persoalan petani, kambing, serigala, dam sayur kubis. Ada seorang petani yang

Latihan 1. Perhatikan persoalan petani, kambing, serigala, dam 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?

Latihan 2. Buatlah algoritma menggunakan flowchart untuk menghitung luas lingkaran! 3. Buatlah algoritma menggunakan

Latihan 2. Buatlah algoritma menggunakan flowchart untuk menghitung luas lingkaran! 3. Buatlah algoritma menggunakan pseudocode untuk menentukan bilangan yang diinput adalah bilangan ganjil/genap!

Kesimpulan • Untuk memahami apa itu algoritma terlebih dahulu kita harus memahami persoalan. •

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