Garis besar topik

    • 1.1. Tujuan Pembelajaran
      a. Mampu memahami suatu masalah dan mampu mencari solusi pemecahannya dan
      mampu menuangkan langkah-langkah pemecahan masalah tersebut dalam bentuk
      algoritma
      b. Mampu manganalisa masalah dan menerjemahkannya dalam bentuk algoritma
      deskriptif

      1.2. Dasar Teori
      Algoritma adalah urutan langkah langkah logis yang menyatakan suatu tugas dalam
      menyelesaikan suatu masalah yang disusun secara sistematis atau bisa juga diartikan dengan
      urutan aksi-aksi yang jelas dan tidak rancu untuk menyelesaikan suatu masalah.
      a. Ciri Algoritma
      Ciri-ciri Algoritma :
      1. Algoritma harus memiliki paling tidak satu keluaran
      2. Masukan algoritma dapat nol (tidak ada) atau banyak masukan
      3. Setelah selesai mengerjakan langkah-langkah penyelesaian masalah, algoritma
      harus berhenti
      4. Setiap langkah yang dibuat harus sederhana dan efektif
      5. Setiap langkah dalam algoritma harus didefinisikan dengan tepat dan jelas.
      b. Notasi Algoritma
      Algoritma dalam penulisannya memiliki aturan penulisan sendiri yang disebut dengan
      Notasi Algoritma.
      Jenis-jenis Notasi Algoritma
      a. Algoritma Deskriptif, yaitu langkah-langkah algoritma dengan rangkaian kalimat
      deskriptif.
      Contoh :
       Mencari bilangan terbesar dari tiga buah bilangan yang di inputkan
      Jawab!

    • 1. Struktur Data Lanjut

      • Tree (BST, AVL, Heap)

      • Graph (Representasi, DFS, BFS)

      • Implementasi dengan Python




    • 2. Analisis Kompleksitas Algoritma

      • Notasi Big-O, Omega, Theta

      • Analisis waktu dan ruang

      • Studi kasus perbandingan efisiensi algoritma


    • 3. Algoritma Divide and Conquer

      • Konsep rekursif dan pemecahan masalah

      • Implementasi Merge Sort, Quick Sort

      • Studi kasus: algoritma pencarian dan pengurutan


    • 4. Algoritma Greedy

      • Prinsip optimalitas lokal

      • Studi kasus: Huffman Coding, Dijkstra Algorithm


    • 5. Algoritma Dynamic Programming

      • Konsep overlapping subproblems dan optimal substructure

      • Implementasi: Fibonacci, Knapsack, Matrix Chain Multiplication


    • 6. Backtracking dan Branch & Bound

      • Penyelesaian masalah kombinatorial

      • Studi kasus: N-Queens, TSP, Sudoku Solver


    • 7. Pemrograman Fungsional untuk Sains Data

      • Konsep pure function, immutability, recursion

      • Lambda, map, filter, reduce di Python


    • Pertemuan 9: Struktur Data Non-Linear - Stack dan Queue

      • Implementasi dengan list & class

      • Studi kasus: undo-redo, antrian bank


    • Pertemuan 10: Struktur Data - Linked List (Singly, Doubly)

      • Implementasi dari nol

      • Operasi tambah, hapus, dan cari

      • Perbandingan dengan list biasa


    • Pertemuan 11: Algoritma Pencarian dan Pengurutan

      • Linear & binary search

      • Bubble, selection, insertion sort

      • Perbandingan kompleksitas


    • Pertemuan 12: Algoritma Greedy dan Divide & Conquer

      • Studi kasus: coin change, merge sort

      • Konsep pemecahan masalah optimal


    • Pertemuan 13: Pengenalan Algoritma Graf (Graph)

      • Representasi graf: adjacency matrix & list

      • DFS dan BFS

      • Studi kasus: rute kampus, jaringan sosial


    • Pertemuan 14: Studi Kasus Proyek Mini

      • Perancangan program berbasis OOP dan struktur data

      • Contoh: sistem informasi peminjaman buku


    • Pertemuan 15: Presentasi Proyek Mini

      • Mahasiswa mempresentasikan hasil programnya

      • Review dan masukan


    • UTS Praktikum dan UTS Teori

      • Mahasiswa mempresentasikan hasil programnya

      • Review dan masukan