Pertemuan minggu 1 pengantar MK pemr web lanjut.pdf
Size: 380.09 KB
Language: none
Added: Oct 20, 2025
Slides: 28 pages
Slide Content
Mata Kuliah Pemrograman Lanjut
“Pengantar Mata Kuliah”
Bella Dwi Mardiana, M.Kom
Dosen Program Studi Informatika
Fakultas Teknik (Universitas Muhammadiyah Malang)
Email: [email protected]
Do’a Awal Perkuliahan
“Rodhitu billahi robba, wabi islaamidina, wabimuhammadin nabiyya
warasulla Robbi zidni ilman nafi'a warzuqni fahma”
Artinya: “Aku ridha Allah SWT sebagai Tuhanku, dan Islam sebagai agamaku, dan
Muhammad SAW sebagai Nabi dan Rasulku. Ya Allah tambahkanlah kepadaku ilmu dan
berikanlah aku pemahaman yang baik”
Capaian Pembelajaran
CPL
●Menguasai konsep teoritis matematika dan algoritma untuk mendukung
keilmuan di bidang Informatika
CMPK
●Mahasiswa mampu mengaplikasikan ilmu pengetahuan dan teknologi
dalam bidang informatika berlandaskan nilai-nilai humaniora secara kritis
Kemampuan akhir tiap tahapan belajar (Sub-CPMK)
●Sub-CPMK 1: Mahasiswa mampu mengoperasikan program verification dan
program spesification
●Sub-CPMK 2: Mahasiswa mampu merumuskan kebenaran program
computer melalui system formal Hoare Triple
●Sub-CPMK 3: Mahasiswa mampu membuat program verification dan
program spesification
●Sub-CPMK 4: Mahasiswa mampu menjalankan modern program
environment pada pengkodean program
●Sub-CPMK 5: Mahasiswa mampu melakuakan perbaikan eror dan
penerpan concept of specification, excepcetion handling pada program
Deskripsi Singkat MK
Mata kuliah ini berfokus pada proses mendefinisikan dan memvalidasi
persyaratan sistem untuk memastikan perangkat lunak yang dibangun sesuai
dengan kebutuhan pengguna. Mahasiswa akan belajar cara membuat
spesifikasi yang jelas, lengkap, dan tidak ambigu yang menjadi acuan utama
sepanjang siklus pengembangan.
Materi Perkuliahan
●Program Correctness
●Program Verification
●Program Specification
●Code Review
●Code Search
●Testing Fundamentals
●Test Case Generation
●Unit Testing
●Refactoring
●Modern Programming Environment
●Development Type
●Documentation and Programming Style
Kontrak Perkuliahan
●Materi disampaikan oleh Dosen sesuai dengan RPS
●Kuliah tatap muka di kelas
●Tugas dan proyek dikerjakan sendiri kecuali ditentukan berkelompok
●Mengikuti peraturan yang ditetapkan oleh kampus dan dosen
○Hadir (presensi hanya dibuka 15 menit via online)
○Berdiskusi
○Etika berpakaian & komunikasi dijaga baik secara langsung maupun daring
○Tidak ada susulan UTS & UAS, kecuali ada kebijakan dari panitia
○Praktikum didemokan sesuai jam praktikum
○Tidak hadir = presensi dianggap ALPA, kecuali sakit dengan surat dokter
○Hadir (Tidak Boleh 3x ALPA)
○Titip absen teman = nilai E
Proses Perkuliahan
●Kelas Teori
○Penjelasan yang berkaitan dengan praktikum
●Kelas Praktikum
○Mempraktekan serta mempertajam ilmu dengan praktek langsung
Materi dan nilai berkesinambungan
Praktikum tidak lulus = Mata kuliah tidak lulus
Penilaian Perkuliahan
●Kehadiran (10%)
●Tugas (20%)
○Tugas pribadi
○Tugas kelompok
○Kuis
○Tugas besar
●UTS (20%)
●UAS (20%)
●Praktikum (30%)
●Pertimbangan penilaian dapat dilakukan berdasarkan ketepatan waktu,
kesesuaian dalam penyelesaian tugas, keaktifan di kelas
Remidi dan Penilaian Khusus
●Bisa dilakukan hanya 1 minggu sebelum UAS dimulai
●Pada saat UAS dimulai tidak ada remidi
●Maksimal nilai remidi adalah C
●Penilaian khusus bisa diberikan kepada Mahasiswa yang memiliki prestasi
lain di luar kampus, minimal tingkat provinsi (dengan aturan penilaian
khusus)
Tentang Mata Kuliah
●Mata kuliah pemrograman lanjut adalah mata kuliah yang membahas
konsep, teknik, dan praktik pengembangan perangkat lunak secara
sistematis dan berkelanjutan.
●Kita akan memahami bagaimana menggunakan struktur coding yang tepat
sehingga mendapatkan hasil program yang juga benar-benar tepat sesuai
dengan fungsi dan tujuan program.
Irisan Mata Kuliah : Pemrograman Dasar | Pemrograman Berorientasi Objek | Struktur Data | Algoritma
Tujuan
●Secara garis besar yang akan kita pelajari pada matkul ini berhubungan
dengan pengujian perangkat lunak/software, dimana kita akan melakukan
dan mempelajari berbagai macam testing code.
●Untuk memastikan pemrograman yang anda buat sudah sesuai dan siap
untuk launching.
Program
Correctness
Penjelasan
●Merupakan sebuah kegiatan pengujian untuk mengukur sejauh mana
program sesuai dengan ketepatan, fungsi, tujuan, dan spesifikasinya
●Sebelum melakukan kegiatan pengujian, kita perlu mengerti mengenai
error / kesalahan ketidaktepatan yang terjadi pada code
Review: Logika Dasar
●Operator logika:
○AND (∧), OR (∨), NOT (¬), IMPLIKASI (→)
●Truth table dapat membantu analisis kondisi
●Proof by induction → membuktikan sifat pada program dengan loop
○Kaitannya ke program:
■rekursi ↔ basis + langkah induksi,
■loop invariant ↔ induksi per iterasi,
■analisis kompleksitas ↔ induksi pada solusi rekurensi.
Proof by Induction
Contoh: Jumlah bilangan 1..n = n(n+1)/2
●Basis: n=1 → benar (1=1(1+1)/2)
●Asumsi: benar untuk n=k
●Tunjukkan benar untuk n=k+1
●Perlu tunjukkan:
●Mulai dari ruas kiri:
●Dengan asumsi induksi, bagian 1+2+⋯+k bisa diganti:
●Samakan penyebut
●Faktorkan (k+1)
Proof by Induction
Karena sudah benar untuk:
●Basis (n = 1),
●Jika benar untuk n = k maka benar juga untuk n = k+1,
Maka, dengan induksi matematika, rumus berlaku untuk semua n ≥ 1
Kenapa Program Correctness Penting??
●Bug dalam software bisa menyebabkan kerugian besar
●Correctness = program harus sesuai spesifikasi, bukan hanya “asal jalan”
Program Correctness
●Partial correctness: hasil benar jika program berhenti
●Total correctness: program berhenti dan hasil benar
Contoh:
infinite loop meski logika benar = hanya partial correctness
Program Specification
●Precondition: kondisi sebelum eksekusi
●Postcondition: kondisi setelah eksekusi
Contoh:
int max(int a, int b) {
if (a > b) return a;
else return b;
}
○Precondition: dua bilangan integer telah diberikan
○Postcondition: hasil adalah bilangan terbesar
Pseudocode
●Bahasa yang menyerupai bahasa
pemrograman
●Mudah dimengerti
●Dapat ditulis dengan cara yang
berbeda / tidak baku
●Bahasa artifisial yang
memudahkan programmer
●Biasa ditulis dengan indentasi
●Fleksibel
Contoh:
Algoritma Menghitung_luas_dan_Volume_balok
(nama fungsi/procedure)
Deklarasi
Kamus (deklarasi dan inisialisasi)
P,L,T : int Luas,
Volume : int
Deskripsi
Input (P) (input)
Input (L) (input)
Input (T) (input)
Luas (2*p*l)+(2*p*t)+(2*l*t) (proses)
Volume p*l*t (proses)
Output(Luas) (output)
Output(Volume) (output)
End
Syntax
●Aturan menulis yang dimengerti
oleh Bahasa Pemrograman
●Aturan bersifat baku untuk setiap
Bahasa Program
●Saat sudah menggunakan Bahasa
C maka terasa mudah saat
menggunakan Bahasa C++
ataupun Java
●Contoh menggunakan untuk tanda
semicolon (“;”) pada Java
Contoh:
if (x > y) {
return x;
} else {
return y;
}
Semantic
●Makna dari kalimat
●Pada Bahasa program hanya memiliki satu arti misalkan
●Cout << “ “;
●Cout << “ “;
●Sama sama berupa output an
Contoh Program Salah
int factorial(int n) {
int result = 1;
for (int i = 1; i <= n; i++)
result *= i;
return result;
}
●Masalah: tidak ada validasi n < 0
●Perbaikan: tambahkan precondition n ≥ 0
1.Buat precondition dan postcondition dari pseudocode yang telah
disediakan (buat minimal 2 untuk masing-masing)
Tugas
FUNCTION find_maximum(array, n):
IF n <= 0 THEN
PRINT "Array kosong!"
RETURN null
max_value ← array[0]
FOR i FROM 1 TO n-1 DO
IF array[i] > max_value THEN
max_value ← array[i]
RETURN max_value
Do’a Penutup Majelis
Subhaanakallaahumma wa bihamdika asyhadu alaailaha illa
'anta astagfiruka wa 'atubu ilaik
Artinya: “Mahasuci Engkau, ya Allah, aku memuji-Mu. Aku bersaksi bahwa tiada
Tuhan selain Engkau, aku memohon ampun dan bertobat kepada-Mu”