Anda di halaman 1dari 24

Review Materi Pemrograman

Prosedural,
Latihan Soal, dan Wrap Up
IF1210 Dasar Pemrograman
Sem. 2 2018/2019
Kamis, 25 April 2019
Review Materi Pemrograman Prosedural (1)
• Review konsep pemrograman prosedural menggunakan bahasa
Pemrograman Pascal
• Dekomposisi, abstraksi, dan generalisasi pola:
• Modular programming menggunakan: (1) fungsi/prosedur; (2) type bentukan;
(3) unit
• Skema Standar Program Prosedural (1):
• Skema validasi data:
• Skema validasi data 1: memeriksa apakah data valid – menggunakan analisis kasus (if-
else)
• Skema validasi data 2: menghasilkan data valid – menggunakan pengulangan

25/04/2019 IF1210/Sem. 2 2018/2019/FNA 2


Review Materi Pemrograman Prosedural (1)
• Skema Standar Program Prosedural (2):
• Skema pengulangan:
• berdasarkan jumlah pengulangan – repeat-n-times;
• berdasarkan kondisi-berhenti di akhir loop – repeat-until;
• berdasarkan kondisi mengulang di awal loop – while-do;
• berdasarkan dua kondisi – iterate-stop;
• berdasarkan pencacah – traversal
• Skema pemrosesan sekuensial:
• Skema dengan mark: skema menggunakan (1) while-do; (2) if-else + repeat-until
• Skema tanpa mark: skema menggunakan (1) repeat-until; (2) iterate-stop; (3) traversal

25/04/2019 IF1210/Sem. 2 2018/2019/FNA 3


Review Materi Pemrograman Prosedural (2)
• Skema Standar Program Prosedural (3):
• Skema pemrosesan sekuensial pada array:
• Baca dan tulis isi array
• Pencarian nilai ekstrim
• Sequential search: algoritma seq. search (1) dengan boolean; (2) tanpa boolean; (3) pada
array terurut; (4) dengan sentinel
• Pengurutan/sorting array: (1) counting-sort; (2) selection-sort; (3) insertion-sort; (4) bubble-
sort
• Skema pemrosesan file eksternal
• Membaca isi file (termasuk memindahkan isi ke array)
• Menulis file (termasuk membaca dari array; memindahkan ke file)
• EOF: disediakan oleh file system; didesain sendiri
• Skema konsolidasi file (1) dengan separator (2) tanpa separator
• Skema merging file terurut

25/04/2019 IF1210/Sem. 2 2018/2019/FNA 4


Latihan Soal
Berdasarkan Soal UAS Sem. 2 2017/2018

25/04/2019 IF1210/Sem. 2 2018/2019/FNA 5


Latihan-1 (1)

25/04/2019 IF1210/Sem. 2 2018/2019/FNA 6


Latihan-1 (2)

25/04/2019 IF1210/Sem. 2 2018/2019/FNA 7


Latihan-1 (3)
• Soal asli: Buatlah program lengkap untuk persoalan di atas. Dalam
menyusun program tersebut, gunakan dekomposisi
type/fungsi/prosedur berikut program utama yang paling baik
sepengetahuan Anda.
• Kerjakan program lengkap di rumah untuk latihan

• Untuk latihan soal ini: Identifikasilah type bentukan/fungsi/prosedur


apa saja yang Anda butuhkan (tidak perlu membuat implementasi)
dan buatlah program utamanya. Gunakan dekomposisi
type/fungsi/prosedur berikut program utama yang paling baik
sepengetahuan Anda

25/04/2019 IF1210/Sem. 2 2018/2019/FNA 8


Latihan-1: Alternatif Solusi
Program Bangun; …
{ Input: TitikAwal dan sejumlah instruksi pergerakan membentuk procedure BacaTitikAwal (var T : Titik);
bangun } { Membaca masukan T sebagai titik awal dan memvalidasi apakah T
{ Output: Kuadran mana saja yang dilewati oleh Titik } berada di kuadran 1 }
{ I.S.: T sembarang }
{ KAMUS } { F.S.: T terdefinisi dan berada di kuadran 1 }
type { Memanfaatkan fungsi Kuadran untuk pemeriksaan posisi kuadran }
Titik = record
X : integer; { Program Utama }
Y : integer; begin
end; BacaTitikAwal(T);
for i := 1 to 4 do { skema pengulangan repeat-n-times }
var begin
T : Titik; { Titik Awal dan hasil pergerakan } read(ins);
i : integer; read(n);
ins : string; { masukan instruksi } T := GeserTitik(T, ins, n);
n : integer; { masukan jumlah langkah } writeln('Kuadran dilewati: ',Kuadran(T));
end;
{ Fungsi dan Prosedur } end.
function Kuadran (T : Titik) : integer;
{ Menghasilkan kuadran posisi T dalam koordinat kartesius }

function GeserTitik (T : Titik; ins : string; n : integer) : Titik;


{ Menghasilkan Titik akhir pergerakan T berdasarkan instruksi ins
yang dijalankan dengan langkah sebanyak n }
{ Alternatif: buat 4 fungsi untuk tiap instruksi }

25/04/2019 IF1210/Sem. 2 2018/2019/FNA 9


Latihan-2 (1)

25/04/2019 IF1210/Sem. 2 2018/2019/FNA 10


Latihan-2 (1)

• Untuk latihan kali ini: buatlah implementasi fungsi MaxNilaiMK.

• Sisanya kerjakan di rumah untuk latihan.

25/04/2019 IF1210/Sem. 2 2018/2019/FNA 11


Alternatif Solusi Latihan-2: MaxNilaiMK

25/04/2019 IF1210/Sem. 2 2018/2019/FNA 12


Latihan-3 (1)

25/04/2019 IF1210/Sem. 2 2018/2019/FNA 13


Latihan-3 (2)
• Untuk latihan kali ini: buatlah implementasi fungsi IsAllGood.

• Sisanya kerjakan di rumah untuk latihan.

25/04/2019 IF1210/Sem. 2 2018/2019/FNA 14


Alternatif Solusi Latihan-3 (1)

25/04/2019 IF1210/Sem. 2 2018/2019/FNA 15


Alternatif Solusi Latihan-3 (2)

25/04/2019 IF1210/Sem. 2 2018/2019/FNA 16


Latihan-4 (untuk dikerjakan di rumah)

25/04/2019 IF1210/Sem. 2 2018/2019/FNA 17


Latihan-4 (untuk dikerjakan di rumah)

25/04/2019 IF1210/Sem. 2 2018/2019/FNA 18


Wrap-Up

25/04/2019 IF1210/Sem. 2 2018/2019/FNA 19


Sampai di mana IF1210?
• Kategori Program:
• Application Software
• Bahasa:
• Haskell, Pascal
• Paradigma:
• Fungsional, Imperative/Prosedural
• Skala program:
• Program kecil
• Kompleksitas program:
• Algoritma dasar
25/04/2019 IF1210/Sem. 2 2018/2019/SA 20
Tantangan Berikutnya dalam Pemrograman
• Bagaimana jika datanya sangat... sangat besar?
• Bagaimana jika strukturnya rumit? Linier? Non-linier dalam bentuk tree
atau graph?
• Apakah ada persoalan yang tidak dapat diselesaikan?
Kategori persoalan:
• mudah dikerjakan (tractable) dengan solusi yang efisien dalam waktu yang wajar
• tidak mudah dikerjakan (intractable)
• dapat diselesaikan dengan pendekatan tetapi tidak optimal(solvable
aproximately, but not optimally)
• belum memiliki solusi yang efisien
• tidak dapat diselesaikan (not solvable)

25/04/2019 IF1210/Sem. 2 2018/2019/SA 21


Travelling Salesman Problem
• Diberikan daftar kota dan jarak
antar pasangan kota, tentukan
rute terpendek untuk
mengunjungi semua kota
masing-masing tepat hanya satu
kali dan selanjutnya kembali ke
kota asal.

25/04/2019 IF1210/Sem. 2 2018/2019/SA 22


Pemrograman di Tingkat Lanjut
• Anda akan belajar pemrograman secara bertahap di tingkat
selanjutnya dan disesuaikan dengan kebutuhan prodi masing-masing
• Khususnya di Prodi Teknik Informatika dan Sistem & Teknologi Informasi
• Pemrograman akan diajarkan secara bertahap
• Untuk program studi lain: disesuaikan dengan kebutuhan keilmuan masing-
masing; contoh:
• Di prodi EL dan BM: Pemecahan Masalah dengan Bahasa C
• Di prodi EP: Analisis numerik untuk tenaga listrik
• Di prodi ET: Pemrograman (fokus pada kebutuhan prodi)

25/04/2019 IF1210/Sem. 2 2018/2019/FNA 23


Have a great adventure...

25/04/2019 IF1210/Sem. 2 2018/2019/SA 24

Anda mungkin juga menyukai