KODE MK: 207 PROGRAM STUDI INFORMATIKA SEMESTER GANJIL

Logika & Algoritma

Pertemuan 01 — Pengertian Dasar, Karakteristik & Notasi Komputasi Terstruktur

Dosen Pengampu
Dany Pratmanto, M.Kom
Beban Studi
Teori & Praktikum (16 Minggu)
Komposisi Sistem Penilaian
100% EVALUASI
UAS (50%)
UTS (25%)
Tugas (25%)
Kontrak Belajar

Roadmap 16 Minggu Perkuliahan

Struktur komprehensif semester ganjil yang terbagi dalam dua blok evaluasi kompetensi akademik.

1-6 Materi Dosen Teori di Kelas 07 Uji Kompetensi Evaluasi Mandiri UTS Ujian Tengah Semester Pertemuan 1–6 9-14 Algoritma Lanjut Praktik Koding 15 Uji Kompetensi Verifikasi SKKNI UAS Ujian Akhir Semester Bobot Terbesar 50%
Standar Profesi Nasional

Skema Sertifikasi Analis Program (SKKNI)

7 Unit Kompetensi Kerja Nasional Indonesia yang diintegrasikan langsung dalam capaian pembelajaran kuliah ini.

J.620100.002.01
Menganalisis Skalabilitas Perangkat Lunak
J.620100.022.02
Mengimplementasikan Algoritma Pemrograman
J.620100.023.02
Membuat Dokumen Kode Program
J.620100.025.02
Melakukan Debugging Perangkat Lunak
J.620100.032.01
Menerapkan Code Review Standar
J.620100.033.02
Melakukan Pengujian Unit Program
J.620100.034.02 · INTEGRASI AKHIR
Melaksanakan Pengujian Integrasi Program Menyeluruh
Agenda Perkuliahan

5 Pilar Utama Logika & Algoritma

Pondasi pemikiran algoritmik yang akan dipelajari secara terstruktur hari ini.

01
Definisi & Tokoh
Asal usul filosofis dari Aristoteles (Yunani Kuno) hingga Al-Khawarizmi (Persia).
02
Tahapan Masalah
Siklus transformasi dari problem dunia nyata menuju model matematika & kode mesin.
03
Karakteristik
5 kriteria mutlak: keterbatasan, kepastian, input, output, serta asas efektivitas.
04
Tahapan Analisa
Metode perancangan, validitas logika, estimasi memori/waktu, hingga fase debugging.
05
Kasus & Python
Analisis kasus nyata, notasi pseudocode, komparasi sintaks C++ vs Java vs Python.
Akar Sejarah Komputasi

Dua Tokoh Besar Peletak Dasar

Fondasi komputasi modern dibangun di atas sintesis filsafat Yunani Klasik dan matematika Persia Abad Pertengahan.

Aristoteles

384 – 322 SM · Yunani Kuno
"Memperkenalkan LOGIKA sebagai cabang filsafat yang membahas hukum penalaran deduktif & silogisme yang tepat, membentuk kaidah berpikir sahih (valid)."
— Bapak Logika Klasik (Karya: Organon)

Logika Aristoteles menjamin bahwa suatu kesimpulan yang ditarik dari premis-premis dasar terbebas dari kesalahan berpikir dan kontradiksi.

Al-Khawarizmi

~825 M · Persia (Khwarazm)
"Penulis kitab monumental Al-Jabr w'al-Muqabala (Rules of Restoration & Reduction). Namanya dilatinkan bangsa barat menjadi istilah ALGORITHM."
— Abu Ja'far Muhammad Ibnu Musa Al-Khawarizmi

Merumuskan metode sistematis langkah-demi-langkah berhingga untuk menyelesaikan persamaan matematika secara eksak dan terstruktur.

Kajian Literatur Ilmiah

Logika & Algoritma Menurut Pakar

Sintesis definisi ilmiah para pakar filsafat dan ilmu komputer terkemuka.

HAKIKAT LOGIKA
"Ilmu dalam lingkungan filsafat yang membahas prinsip-prinsip dan hukum penalaran dengan tepat."
— Rakmat (2013)
"Ilmu yang memberikan prinsip-prinsip yang harus diikuti agar dapat berpikir valid menurut aturan yang berlaku."
— Mustofa (2016)
HAKIKAT ALGORITMA
"Urutan langkah untuk menyelesaikan masalah matematika dan logika."
— Zarman & Wicaksono (2020)
"Deretan instruksi yang jelas untuk memecahkan masalah komputasional."
— Rinaldi Munir (2016)
"Sekumpulan instruksi terbatas, yang apabila dilaksanakan akan menyelesaikan tugas tertentu."
— Sjukani (2013)
Metodologi Komputasional

Tahapan Penyelesaian Masalah

Alur transformasi masalah riil menjadi program yang tervalidasi dan menghasilkan solusi akurat.

FASE 01
Masalah
Problem riil di dunia nyata
FASE 02
Model
Abstraksi & matematisasi
FASE 03
Algoritma
Langkah terstruktur logis
FASE 04
Program
Pengkodean sintaks bahasa
FASE 05
Eksekusi
Pemrosesan CPU + Data riil
FASE 06
Hasil
Output solusi terverifikasi
Studi Kasus Urutan Langkah

Urutan Logis vs Cacat Logika

Kasus Pendaftaran Kuliah di PT: Pembuktian mengapa urutan langkah menentukan validitas sebuah algoritma.

✓ KASUS 1: ALGORITMA LOGIS & BENAR Status: VALID
01 Memilih Perguruan Tinggi tujuan
02 Mengisi formulir pendaftaran
03 Mengikuti ujian tes masuk
04 Evaluasi: Jika lulus lanjut ke 05; jika tidak, selesai
05 Mendaftar ulang & membayar SPP
06 Mengambil KTM → Selesai
✕ KASUS 2: ALGORITMA CACAT LOGIKA Status: INVALID
01 Mengikuti tes masuk (Belum daftar?)
02 Memilih Perguruan Tinggi
03 Mengisi formulir pendaftaran
04 Membayar SPP (Belum tentu lulus?)
05 Jika lulus tes, kembali ke 03, jika tidak selesai
06 Mengambil KTM → Selesai
Fleksibilitas Pemecahan Masalah

Satu Masalah, Beragam Solusi Valid

Kasus 3 & 4 (Memasak Mie Instan): Algoritma membuktikan bahwa banyak jalan menuju solusi yang sama-sama benar.

Rebus Air + Masukkan Mie Jalur A: Mie ke Mangkok → Aduk Bumbu Jalur B: Bumbu ke Panci → Tuang Mangkok Mie Siap Santap Solusi Identik & Valid!
ALGORITMA A · BUMBU DI MANGKOK
1 Merebus air sampai mendidih
2 Memasukkan mie ke dalam air mendidih
3 Menuangkan mie matang ke dalam mangkok
4 Memasukkan bumbu masak ke mangkok
5 Mengaduk sampai rata → Selesai
ALGORITMA B · BUMBU DI PANCI
1 Merebus air sampai mendidih
2 Memasukkan mie ke dalam air mendidih
3 Memasukkan bumbu masak langsung ke panci
4 Mengaduk rata di dalam panci
5 Menuangkan mie matang berbumbu ke mangkok → Selesai
✨ Kaidah Penting: Suatu masalah komputasi dapat diselesaikan dengan beragam urutan alternatif. Kunci seorang Program Analyst adalah memilih variasi langkah yang paling efisien waktu dan hemat sumber daya.
Standar Donald Knuth

5 Karakteristik Mutlak Algoritma

Kriteria fundamental yang wajib dipenuhi sebuah algoritma agar layak diimplementasikan pada komputer.

01 · FINITENESS
Keterbatasan
Algoritma WAJIB berhenti setelah mengerjakan sejumlah langkah terbatas (tidak boleh infinite loop).
02 · DEFINITENESS
Kepastian
Setiap langkah terdefinisi tepat, presisi, gamblang, dan tidak menimbulkan makna ganda (unambiguous).
03 · INPUT
Masukan
Memiliki 0 (nol) atau lebih besaran masukan dari luar yang akan diproses oleh sistem.
04 · OUTPUT
Keluaran
Memiliki 1 atau lebih keluaran sebagai hasil tuntas penyelesaian masalah komputasi.
05 · EFFECTIVE
Sangkil / Efektif
Setiap langkah sederhana sehingga dapat dikerjakan secara realistis dalam waktu masuk akal.
Struktur Pemrograman Universal

3 Konstruksi Dasar Algoritma

Seluruh bahasa pemrograman di dunia dibangun di atas tiga struktur kendali logika utama ini.

01
SEQUENCE
Aksi 1 Aksi 2 Aksi 3

Runtunan (Sequence)

Instruksi dieksekusi secara berurutan baris demi baris dari atas ke bawah, tanpa ada lompatan atau langkah yang terlewat.

Aksi_1 → Aksi_2 → Selesai
02
CONTROL FLOW
IF ? True Lanjut Kuliah (05) False Selesai (04)

Percabangan (Selection)

Pemilihan jalur instruksi berdasarkan pengujian kondisi benar/salah (boolean). Contoh: if – else, switch.

IF (Lulus) THEN 05 ELSE Selesai
03
ITERATION
Aksi Berulang for / while

Perulangan (Looping)

Pengulangan sekumpulan instruksi selama suatu syarat kondisi masih terpenuhi. Contoh: for, while.

WHILE (Kondisi) DO Aksi()
Notasi Algoritma Tekstual

Penulisan dalam Pseudocode

Pseudocode adalah bahasa semu informal yang terstruktur untuk menuangkan nalar algoritma sebelum di-koding.

3 Bagian Baku Pseudocode

1. Bagian Nama (Header)
Memuat judul algoritma serta penjelasan ringkas fungsi prosedur.
2. Bagian Deklarasi
Mendefinisikan nama variabel, tipe data, dan konstanta yang dipakai (misal: a, b, c : integer).
3. Bagian Deskripsi
Inti aksi algoritma yang diawali Begin dan diakhiri End.
Pseudocode_Penjumlahan.txt STANDARD
// 1. Bagian Nama
Algoritma Penjumlahan_Dua_Bilangan

// 2. Bagian Deklarasi
Deklarasi:
  a, b, c : integer

// 3. Bagian Deskripsi
Begin
  read(a, b)
  c ← a + b
  write(c)
End
Taksonomi Abstraksi Komputer

Bahasa Komputer: Low vs High Level

Program adalah kumpulan instruksi kerja komputer. Bahasa pemrograman dikelompokkan menurut kedekatannya dengan mesin:

TINGKAT RENDAH (LOW LEVEL)

Bahasa Mesin & Rakitan

Dirancang agar instruksi langsung dieksekusi prosesor tanpa penerjemah rumit. Terdiri dari kode biner (0 dan 1) atau instruksi mnemonic assembly.

Contoh: Machine Code (01010111), Assembly Language
TINGKAT TINGGI (HIGH LEVEL)

Bahasa Berorientasi Manusia

Menggunakan kosakata bahasa Inggris dan struktur logika matematis yang mudah dibaca dan dipahami manusia. Membutuhkan compiler/interpreter.

Contoh: Python, Java, C++, PHP, Pascal, Cobol, Fortran
Manusia / Logika Bahasa Inggris Alami High-Level (Python) print("Logika Algoritma") Compiler / Assembly MOV, JMP, ADD Mesin (Hardware CPU) 0101 1100 0011
Standar Industri & Pemula

Mengapa Belajar Python?

Dirancang oleh Guido Van Rossum, Python menjadi bahasa tingkat tinggi nomor satu untuk pemula dan raksasa industri teknologi.

Keunggulan Sintaksis

Struktur sintaks rapi, lekukan (indentasi) teratur, dan minim simbol rumit (tanpa titik koma wajib). Sangat dianjurkan untuk pemula yang belum pernah menyentuh koding.

"Readability counts — Membimbing mahasiswa fokus mengasah nalar logika, bukan terjebak kesalahan sintaks teknis."

6 Domain Penerapan Luas

1 Desktop GUI
2 Web Backend & API
3 Game & Simulasi
4 Security / Hacking
5 Internet of Things
6 Data Science & AI
Sintaks Showdown

Mencetak Teks "Logika Algoritma"

Perbandingan nyata antara C++, Java, dan Python untuk menuntaskan satu perintah output yang persis sama.

program.cpp (7 Baris)
// C++ (Verbose)
#include <iostream.h>

int main() {
  std::cout << "Logika Algoritma";
  return 0;
}
LogikaApp.java (8 Baris)
// Java (Strict OOP Boilerplate)
class LogikaalgoritmaApp {
  public static void main(String[] args) {
    System.out.println("Logika Algoritma");
  }
}
app.py (Hanya 1 Baris!)
# Python (Elegan, Cepat & Jelas)

print("Logika Algoritma")

Metodologi Rekayasa

5 Tahapan Analisa Algoritma

Metode profesional untuk menjamin rancangan algoritma bermutu tinggi sebelum diproduksi massal.

01
Merencanakan
Menentukan model atau desain matematika terbaik sebagai acuan solusi masalah.
02
Menyatakan
Menuangkan algoritma ke notasi baku terstandar: pseudocode atau diagram alir (flowchart).
03
Validitas
Memverifikasi keabsahan logika agar menghasilkan jawaban benar untuk segala kasus input.
04
Menganalisa
Menghitung efisiensi komputasi: waktu tempuh eksekusi dan konsumsi memori (RAM).
05
Menguji Program
Implementasi ke bahasa riil melalui dua fase krusial: debugging dan profiling.
Notasi Algoritma

Pseudocode vs Flowchart

Studi Kasus Nyata: Menghitung Luas Segitiga (Luas = Alas × Tinggi / 2) dalam dua representasi standar.

REPRESENTASI TEKSUAL (PSEUDOCODE)
a Masukkan Nilai Alas
b Masukkan Nilai Tinggi
c Hitung Luas = (Alas * Tinggi) / 2
d Cetak Nilai Luas → Selesai
DIAGRAM ALIR GRAFIS (FLOWCHART) Mulai Input Nilai Alas & Tinggi Luas = (Alas * Tinggi) / 2 Cetak Nilai Luas Selesai
Fase Pengujian Program

Debugging vs Profiling

Dua tahapan pengujian wajib sebelum sebuah perangkat lunak dinyatakan siap rilis.

Fase 1: Debugging

Fase saat program dieksekusi untuk mendeteksi dan memperbaiki kesalahan (bug). Melacak syntax error, runtime crash, maupun cacat nalar algoritma.

Tujuan: Menjamin program BEBAS dari error dan menghasilkan keluaran yang benar.

Fase 2: Profiling

Fase yang HANYA bekerja setelah program lolos debugging (bebas kesalahan). Mengukur waktu tempuh eksekusi dan jumlah memori yang digunakan.

Tujuan: Mengoptimalkan kecepatan eksekusi dan menghemat konsumsi RAM mesin.
Aplikasi Komputasi Medis

Pseudocode Sistem Pakar Diagnosa

Studi kasus penerapan logika algoritma pada sistem pakar diagnosa klinis (Repository BSI).

Alur Input Pasien

1 Buka menu konsultasi sistem
2 Input nama pengguna / pasien
3 Input jenis kelamin pengguna
4 Input tanggal lahir & alamat
5 Input pekerjaan & no. telepon

Mesin Inferensi Logika

IF Gejala_A = True AND Gejala_B = True
THEN Diagnosa = "Risiko Keguguran Tingkat 1"
     Rekomendasi = "Tirah baring & USG klinis"
Buka Referensi Repository BSI
Evaluasi Pemahaman · Soal 01

Latihan Soal Interaktif

Pertanyaan 01 dari 05
1. Bahasa pemrograman yang dianjurkan untuk pemula yang belum pernah coding adalah:
Evaluasi Pemahaman · Soal 02

Latihan Soal Interaktif

Pertanyaan 02 dari 05
2. Logika pertama kali diperkenalkan oleh:
Evaluasi Pemahaman · Soal 03

Latihan Soal Interaktif

Pertanyaan 03 dari 05
3. Algoritma diperkenalkan oleh Ahli matematika yang bernama:
Evaluasi Pemahaman · Soal 04

Latihan Soal Interaktif

Pertanyaan 04 dari 05
4. Abu Ja’far Muhammad Ibnu Musa Al Khawarizmi adalah tokoh yang berasal dari:
Evaluasi Pemahaman · Soal 05

Latihan Soal Interaktif

Pertanyaan 05 dari 05
5. Di bawah ini termasuk ke dalam bahasa pemrograman adalah:
Simulasi Berpasangan · 20 Menit Kelas

Battle Logika: Designer vs Stress-Tester

Sistem pengujian berpasangan mandiri: Baris kursi Anda menentukan misi yang wajib Anda rancang dan uji silang bersama rekan sebangku.

BARIS GANJIL / KURSI KIRI MISI A

Tarik Tunai Rp 100.000 di ATM

Rancang urutan instruksi dari memasukkan kartu fisik, input PIN, pilih nominal Rp 100.000, uang keluar, sampai kartu ATM kembali ke tangan nasabah.

Batasan: Wajib 6 s.d. 10 langkah terukur
BARIS GENAP / KURSI KANAN MISI B

Pesan Nasi Goreng via Ojol

Rancang urutan instruksi dari membuka aplikasi ojol, cari menu nasi goreng, konfirmasi alamat, bayar non-tunai, hingga pesanan diterima pemesan.

Batasan: Wajib 6 s.d. 10 langkah terukur
Fase 1: Tulis Mandiri (8 Menit) Fase 2: Serang & Cari Bug (7 Menit) Fase 3: Tambal IF-ELSE (5 Menit)
Fase 1 · Waktu: 8 Menit (Menulis di Kertas)

Menulis Instruksi Presisi (Versi 1.0)

Tuliskan algoritma Anda di selembar kertas. Hindari asumsi dan kata mengambang agar sistem Anda tidak mudah dijebol penguji!

3 Aturan Mutlak Perancangan

1
Batas Panjang Langkah: Wajib minimal 6 dan maksimal 10 langkah (diawali MULAI, diakhiri SELESAI).
2
Anti-Ambiguitas: Dilarang memakai kata mengambang seperti 'secukupnya', 'seperti biasa', atau 'tunggu sebentar'.
3
Spesifik pada Alat & Nilai: Sebutkan tombol apa yang ditekan, nominal yang dipilih, atau wadah yang dituju.
STANDAR KUALITAS INSTRUKSI
✕ INSTRUKSI RAPUH (GAMPANG DIJEBOL):
"1. Masukkan kartu ke ATM."
→ Celah: Arah chip ke mana? Kartu bisa tertelan jika terbalik!
✓ INSTRUKSI KOKOH (TAHAN UJI):
"1. Masukkan kartu ATM dengan posisi chip logam tembaga menghadap ke depan atas."
Fase 2 · Waktu: 7 Menit (Tukar Kertas)

3 Senjata Serangan Penguji (Tester)

Tukarkan kertas dengan rekan sebangku. Bertindaklah sebagai komputer kaku tanpa akal manusia. Jebol algoritma rekan Anda dengan 3 senjata ini:

SENJATA 1 💥 ATTACK

Uji Sumber Daya Habis

Tanyakan: "Bagaimana jika uang di mesin ATM habis, atau restoran ojol tiba-tiba tutup saat mau bayar?"

Celah: Sistem crash tanpa jalan keluar
SENJATA 2 🔀 SHUFFLE

Uji Urutan Terbalik

Tanyakan: "Bisakah langkah nomor 4 dijalankan mendahului nomor 2? Apa akibat fatalnya?"

Celah: Logika kausalitas terbalik
SENJATA 3 🔍 AMBIGUOUS

Uji Kata Mengambang

Tanyakan: "Apakah ada langkah yang tidak ada batas ukurnya (misal: 'tunggu' tanpa batas durasi)?"

Celah: Mesin macet selamanya
Aturan Wajib Penguji: Anda WAJIB menuliskan minimal 1 celah bug nyata di kertas rekan Anda untuk mendapatkan nilai tugas sebagai QA Tester!
Fase 3 · Waktu: 5 Menit (Perbaikan Logika)

Menambal Bug dengan IF-ELSE (Versi 2.0)

Kertas dikembalikan ke pembuat. Dilarang berdebat lisan! Satu-satunya cara memperbaiki adalah menyisipkan logika percabangan.

FORMULA TAMBALAN LOGIKA

Sintaks Percabangan Darurat

JIKA (Kondisi Masalah Terjadi)
  MAKA (Aksi Penanganan Darurat & Hentikan)
LAINNYA
  LAKUKAN (Lanjut ke Langkah Normal Berikutnya)

Dengan menambahkan blok percabangan ini, algoritma Anda menjadi kebal terhadap kegagalan sistem (*Fault-Tolerant*).

CONTOH PENAMBALAN BUG REALISTIS
SERANGAN REKAN (BUG):
"Di langkah 4 kamu langsung suruh mesin keluarkan Rp 100.000, bagaimana kalau saldo rekening nasabah cuma Rp 25.000?"
TAMBALAN LOGIKA VERSI 2.0:
4. Masukkan pilihan nominal Rp 100.000.
5. JIKA Saldo < Rp 100.000 MAKA:
    a. Tampilkan 'Saldo Tidak Cukup'.
    b. Keluarkan kartu & SELESAI.
   LAINNYA: Lanjut Langkah 6 (Dispenser Uang).
Format Submit LMS · Laporan Mandiri

Struktur Laporan & Rubrik Penilaian

Hasil battle kelas diformalkan menjadi dokumen PDF mandiri untuk asesmen formatif 100 poin.

4 Blok Dokumen Laporan PDF

1 Spesifikasi: Judul Aktivitas, Masukan (Input), dan Keluaran (Output).
2 Algoritma Awal (v1.0): Draf asli sebelum diuji rekan sebangku.
3 Tabel Log Bug Rekan: Nama Penguji | Celah Bug | Solusi Tambalan.
4 Algoritma Final (v2.0): Algoritma kebal error setelah ditambal IF-ELSE.
Wajib cantumkan identitas resmi: Nama Lengkap · NIM · Kelas di lembar cover.

Rubrik Penilaian Transparan (100 Poin)

Alur Logika Dasar (Runtut & Berhingga) 30%
Kualitas Pengujian Rekan (Tabel Log Bug) 25%
Ketepatan Tambalan Percabangan IF-ELSE 25%
Kerapian Dokumen PDF & Ketepatan Waktu 20%
Refleksi Akhir Pertemuan 01

Dari Nalar Sehari-hari Menuju Kode Komputer

Pondasi berpikir algoritmik adalah keahlian utama yang membedakan software engineer handal dari pengetik kode biasa.

PESAN FILOSOFIS HARI INI
“Komputer tidak pernah salah mengeksekusi instruksi. Jika sistem crash atau menghasilkan bug, itu adalah cermin dari logika perancangnya yang belum tuntas.”

Simulasi battle hari ini membuktikan bahwa membuat langkah yang 'kelihatannya benar' sangatlah mudah, tetapi membuat langkah yang 'kebal dari segala kemungkinan salah' membutuhkan ketajaman logika tingkat tinggi.

PERTEMUAN 01 TUNTAS · SAMPAI JUMPA

Materi Minggu Depan:

Tipe Data, Variabel & Operator Komputasi

Sempurnakan dokumen tugas Versi 2.0 Anda dan kumpulkan tepat waktu di portal LMS sebelum sesi kedua dimulai!

Dosen Pengampu: Dany Pratmanto, M.Kom
Peta Slide · Logika & Algoritma P01