Pendahuluan

Pada perkuliahan mata kuliah "Algoritma dan Struktur Data" di Semester 1 di Universitas Muhammadiyah Kotabumi, mahasiswa akan diperkenalkan dengan berbagai aspek penting dalam pemrograman dan pengembangan perangkat lunak. Mata kuliah ini memiliki bobot SKS teori sebesar 2 SKS dan bobot SKS praktik sebesar 1 SKS, dan berfokus pada pembelajaran dasar-dasar algoritma, struktur data, dan pemrograman menggunakan bahasa pemrograman Python.

Pertama, dalam upaya mencapai Capaian Pembelajaran (CP), mahasiswa akan diarahkan untuk mengembangkan sikap religius, moral, dan etika yang tinggi (CP S01 dan CP S02). Selain itu, mereka akan diberikan pemahaman tentang pentingnya berusaha secara maksimal (CP S11) dan bekerja sama dengan baik dalam memanfaatkan potensi yang dimiliki (CP S12). Mahasiswa juga akan diajarkan bagaimana menunjukkan kinerja mandiri, bermutu, dan terukur (CP KU2) serta mengambil keputusan yang tepat dalam penyelesaian masalah (CP KU5) dengan mengacu pada hasil analisis informasi dan data. Selanjutnya, mereka akan diberi wawasan tentang analisis, desain, dan pengembangan perangkat lunak sesuai dengan prinsip-prinsip rekayasa perangkat lunak (CP KK4).

Sub Capaian Pembelajaran (Sub-CPMK) dari mata kuliah ini sangat luas dan mencakup pemahaman tentang sejarah dan konsep dasar algoritma serta bagaimana menghubungkannya dengan struktur data. Mahasiswa akan belajar bagaimana mengimplementasikan algoritma dan struktur data dalam perangkat lunak, menggambarkannya dalam notasi algoritma seperti kalimat deskriptif, flowchart, dan pseudo code (Sub-CPMK 1 dan Sub-CPMK 2). Mereka akan mengenal berbagai jenis bahasa pemrograman dan perbedaannya, dengan fokus pada bahasa pemrograman Python, termasuk langkah-langkah instalasinya (Sub-CPMK 3).

Selanjutnya, mahasiswa akan memahami tipe data, operator, variabel, dan nilai dalam konteks bahasa pemrograman Python dan mampu mengaplikasikannya (Sub-CPMK 4). Mereka juga akan mempelajari algoritma dasar, seperti algoritma runtutan, percabangan, dan perulangan, serta mengimplementasikannya dalam Python (Sub-CPMK 5). Dalam konteks struktur data, mereka akan menjelajahi konsep array, tuple, dan linked list, dan bagaimana mengolah data menggunakan Python (Sub-CPMK 6). Pemahaman tentang struktur data stack dan queue juga akan diajarkan, beserta dengan penerapan pengolahan data menggunakan Python (Sub-CPMK 7).

Selain itu, mahasiswa akan memahami berbagai algoritma pencarian (searching) dan pengurutan (sorting) serta bagaimana membuat aplikasi sederhana menggunakan bahasa pemrograman Python (Sub-CPMK 8 dan Sub-CPMK 9). Salah satu poin penting dalam mata kuliah ini adalah pemahaman tentang algoritma Big-O, Greedy, Backtracking, Dynamic Programming, Divide and Conquer, A*, dan Knapsack Problem (Sub-CPMK 10).

Deskripsi bahan kajian dan pokok bahasan mengindikasikan bahwa mahasiswa akan diperkenalkan pada pemrograman, analisis, dan desain perangkat lunak. Mereka akan memahami sejarah dan konsep algoritma, hubungan antara algoritma, struktur data, dan implementasi perangkat lunak, serta notasi algoritma seperti kalimat deskriptif, flowchart, dan pseudo code. Selain itu, mereka akan memahami berbagai jenis bahasa pemrograman, instalasi Python, menulis kode Python, dan bagaimana menjalankan dan menguji kode tersebut. Pemahaman tentang tipe data, operator, variabel, dan nilai dalam Python juga akan menjadi bagian dari pembelajaran, bersama dengan konsep algoritma runtutan, percabangan, dan perulangan.

Kemudian, mahasiswa akan mendalami struktur data seperti array, tuple, linked list, stack, dan queue, serta bagaimana mengelola dan memanipulasi data menggunakan bahasa pemrograman Python. Mereka akan belajar tentang algoritma pencarian dan pengurutan, termasuk berbagai algoritma terkenal seperti Big-O, Greedy, Backtracking, Dynamic Programming, Divide and Conquer, A*, dan Knapsack Problem.

Mata kuliah ini akan didukung oleh berbagai pustaka utama dan pendukung, termasuk sumber-sumber buku dan referensi yang relevan, serta sumber-sumber online dan media pembelajaran yang mendukung pemahaman materi. Media pembelajaran akan mencakup perangkat lunak seperti Python, Visual Studio Code, dan Google Colab, serta perangkat keras seperti komputer/laptop dan LCD Projector. Berikut ini adalah rangkuman perkuliahan Algoritma dan Struktur Data.

Capaian Pembelajaran (CP):
  1. CP S01: Bertakwa kepada Tuhan Yang Maha Esa dan mampu menunjukkan sikap religius.
  2. CP S02: Menjunjung tinggi nilai kemanusiaan dalam menjalankan tugas berdasarkan agama, moral, dan etika.
  3. CP S11: Berusaha secara maksimal untuk mencapai hasil yang Sempurna.
  4. CP S12: Bekerja sama untuk dapat memanfaatkan semaksimal mungkin potensi yang dimiliki.
  5. CP KU2: Mampu menunjukkan kinerja mandiri, bermutu, dan Terukur.
  6. CP KU3: Mampu mengkaji implikasi pengembangan atau implementasi ilmu pengetahuan teknologi yang memperhatikan dan menerapkan nilai humaniora sesuai dengan keahliannya berdasarkan kaidah, tata cara, dan etika ilmiah dalam rangka menghasilkan solusi, gagasan, desain, atau kritik seni.
  7. CP KU5: Mampu mengambil keputusan secara tepat dalam konteks penyelesaian masalah di bidang keahliannya, berdasarkan hasil analisis informasi dan data.
  8. CP KK4: Mampu menganalisis, merancang, dan membangun perangkat lunak dengan menggunakan prinsip-proses rekayasa perangkat lunak untuk menghasilkan perangkat lunak yang memenuhi kualitas baik secara teknis dan manajerial.

Sub Capaian Pembelajaran (Sub-CPMK):

  1. Sub-CPMK 1: Mahasiswa mampu menjelaskan sejarah dan konsep algoritma dan struktur data, mengasosiasikan dan membedakan hubungan antara algoritma dan struktur data, dan mampu mencontohkan atau mengilustrasikan implementasi algoritma dan struktur data pada perangkat lunak.
  2. Sub-CPMK 2: Mahasiswa mampu mengaplikasikan input, process, dan output serta merancang algoritma untuk menyelesaikan kasus sederhana menggunakan notasi algoritma seperti kalimat deskriptif, flowchart, dan pseudo code.
  3. Sub-CPMK 3: Mahasiswa mampu menjelaskan jenis-jenis dan perbedaan bahasa pemrograman dan mampu menggunakan bahasa pemrograman Python, mulai dari instalasi, menulis kode, dan menjalankan kode.
  4. Sub-CPMK 4: Mahasiswa mampu menjelaskan tentang tipe data, operator, variabel, dan nilai serta mampu mengaplikasikan tipe data, operator, variabel, dan nilai tersebut pada bahasa pemrograman Python.
  5. Sub-CPMK 5: Mahasiswa mampu menganalisis konsep algoritma runtutan, percabangan, dan perulangan serta mampu mengaplikasikan algoritma-algoritma tersebut pada bahasa pemrograman Python.
  6. Sub-CPMK 6: Mahasiswa mampu menjelaskan konsep struktur data array, tuple, dan linked list serta mengaplikasikan pengolahan data array, tuple, dan linked list menggunakan bahasa pemrograman Python.
  7. Sub-CPMK 7: Mahasiswa mampu menjelaskan konsep struktur data stack dan queue serta mengaplikasikan pengolahan data stack, queue menggunakan bahasa pemrograman Python.
  8. Sub-CPMK 8: Mahasiswa mampu menjelaskan konsep dan jenis-jenis algoritma pencarian (searching) dan mampu menghasilkan aplikasi pencarian sederhana menggunakan bahasa pemrograman Python.
  9. Sub-CPMK 9: Mahasiswa mampu menjelaskan konsep dan jenis-jenis algoritma pengurutan (sorting) dan mampu menghasilkan aplikasi pengurutan sederhana menggunakan bahasa pemrograman Python.
  10. Sub-CPMK 10: Mahasiswa mampu menjelaskan konsep algoritma Big-O, Greedy, Backtracking, Dynamic Programming, Divide and Conquer, A*, dan Knapsack Problem.

Deskripsi Bahan Kajian dan Pokok Bahasan:

Bahan Kajian:

  • Pemrograman
  • Analisis
  • Desain

Pokok Bahasan:

  1. Sejarah dan Konsep Algoritma
  2. Hubungan Algoritma, Struktur Data, dan Implementasi pada Perangkat Lunak
  3. Notasi Algoritma: Kalimat Deskriptif, Flowchart, dan Pseudo Code
  4. Jenis-jenis Bahasa Pemrograman dan Perbedaannya
  5. Instalasi Python dan Menulis Kode Python
  6. Menjalankan Kode Python dan Nilai dalam Python
  7. Tipe Data, Operator, dan Variabel dalam Python
  8. Konsep Algoritma Runtutan, Percabangan, dan Perulangan
  9. Konsep Struktur Data: Array, Tuple, dan Linked List
  10. Pengolahan Data dalam Python: Array, Tuple, dan Linked List
  11. Konsep Struktur Data: Stack dan Queue
  12. Konsep Algoritma Big-O
  13. Algoritma Greedy, Backtracking, Dynamic Programming, Divide and Conquer
  14. Algoritma A* dan Knapsack Problem
  15. Latihan-latihan

Pustaka Utama:

  1. Khoirudin, K. (2019). Algoritma dan struktur data dengan Python 3. Universitas Semarang Press.
  2. Mahali, M. I., & Cs, M. (t.t.). Algoritma dan Struktur Data.
  3. Meidyan, M., Barovih, G., & Saputra, A. (2022). Algoritma dan struktur data. Widina Media Utama.
  4. Umam, K., & Kom, S. (2021). ALGORITMA DAN PEMROGRAMAN KOMPUTER DENGAN PYTHON.
  5. Zein, A., & Eriana, E. S. (t.t.). ALGORITMA DAN STRUKTUR DATA.
  6. Romzi, M., & Kurniawan, B. (2020). Pembelajaran Pemrograman Python Dengan Pendekatan Logika Algoritma. JTIM: Jurnal Teknik Informatika Mahakarya, 3(2), 37-44.
  7. Suryawan, F., Thamrin, H., Anggoro, D. A., Supriyanti, W., & Ardiyanto, Y. (2020). Modul Praktikum Algoritma & Struktur Data Versi 4.3. Muhammadiyah University Press.
  8. Siahaan, V., & Sianipar, R. H. (2019). Konsep dan Implementasi Pemrograman Python. SPARTA PUBLISHING|.
  9. Marleny, F. D., & Zulfadhilah, M. Algoritma Pemrograman Menggunakan Python.

Pustaka Pendukung:

  1. https://github.com/TheAlgorithms/Python
  2. https://www.tutorialspoint.com/Python_data_structure/Python_algorithm_design.htm
  3. https://www.geeksforgeeks.org/Python-data-structures-and-algorithms/

Media Pembelajaran:

Perangkat Lunak:

  • Python
  • Visual Studio Code
  • Google Colab
  • Canva
  • Zoom/Google Meet

Perangkat Keras:

  • Komputer/Laptop
  • LCD Projector

Last modified: Thursday, 7 September 2023, 11:34 AM