Lewati ke konten utama
Beranda

Ringkasan topik

  • Setelah mengikuti kuliah ini, kamu akan memahami akan mampu merumuskan langkah-langkah untuk menyelesaikan suatu persoalan (i.e., algoritma) dan mengimplementasikannya dalam suatu bahasa pemrograman tertentu. Bahasa pemrograman JavaTM akan digunakan dalam kuliah ini, namun dengan paradigma pemrograman prosedural, alih-alih berorientasi pada objek. Konsep-konsep pemrograman yang akan dibahas adalah teknik rekursif, berbagai algoritma pengurutan dan kompleksitasnya, dan berbagai macam struktur data.

    Disclaimer: Kecuali disebutkan secara spesifik, materi, urutan penyajian, animasi, dan pertanyaan yang ada dalam kuliah ini merupakan karya Andreas Febrian dan sengaja didistribusikan dengan lisensi Creative Common BY-NC-SA 4.0 International (https://creativecommons.org/licenses/by-nc-sa/4.0/).

    • forum icon
      Pengumuman Forum

      Dapatkan informasi terkini terkait kuliah dalam forum ini! Pastikan kamu tetap subscribe forum ini agar mendapatkan notifikasi ketika ada berita baru.

      Tidak tersedia kecuali: You are a(n) Learner
    • forum icon
      Diskusi Forum

      Gunakan forum ini untuk mendiskusikan isu dan tantangan yang kamu temui ketika berinteraksi dengan sumber dan kegiatan belajar. Insya Allah, instruktur, asisten, ataupun para pejuang lainnya akan menjawab pertanyaanmu. Pastikan tidak ada informasi sensitif dalam tulisanmu karena akan dibaca oleh seluruh mahasiswa. Jangan lupa untuk menggunakan bahasa Indonesia dan etika berkomunikasi secara daring.

    • forum icon
      Pengumpulan Bukti Kegiatan di Luar Perkuliahan Forum

      Kumpulkan bukti kegiatan di luar perkuliahan yang kamu ikuti disini, dengan membuat topik diskusi baru bernama "Kegiatan [Namamu]" (e.g., "Kegiatan Fulan"). Kumpulkan semua bukti kegiatanmu dalam topik tersebut untuk mempermudah monitoring. Agar dapat diakui, kegiatanmu harus terjadi pada semester Genap 2020/2021 , yang dimulai sejak 1 Februari 2021. Pengumpulan bukti kegiatan akan ditutup pada 30 Mei 2021 pukul 23:59 WIB (i.e., satu hari sebelum minggu UAS).

    • Materi Utama

      Materi berikut menjelaskan konsep dan prinsip yang kamu butuhkan untuk menguasai target kompetensi pada Topik ini. Agar lebih optimal, materi yang diberikan harus dimanfaatkan bersama-sama kegiatan Latihan Teori, Praktikum, dan Refleksi.

    • Kali ini, kamu akan diajak untuk berkenalan dengan ?

    •   

      Rekaman Pertemuan Sinkronus Kelas A

    •   

      Rekaman Pertemuan Sinkronus Kelas B

    •    

      Latihan Teori

      Latihan Teori merupakan kegiatan belajar mandiri berbasis masalah (problem-based learning) yang disediakan untuk membantumu memonitor pemahaman teoritis dan mencatat kehadiran belajarnya. Latihan Teori bisa dikerjakan berulang kali selama masih dibuka, dengan 30 menit waktu tunggu antar percobaan. Nilai final yang akan digunakan adalah percobaan Latihan Teori dengan dengan nilai terbaik. Tipe soal yang diberikan dalam kegiatan ini adalah benar/salah, pilihan ganda, mencocokan, dan jawaban pendek.

    •    

      Praktikum

      Praktikum merupakan kegiatan belajar mandiri berbasis masalah (problem-based learning) yang disediakan untuk meningkatkan kemampuan teknis dan mencatat kehadiran belajarmu. Pada kegiatan ini, kamu diminta untuk mendesain beberapa program sesuai dengan spesifikasi yang diberikan. Soal-soal yang diberikan dalam Praktikum didesain secara bertingkat (scaffold) untuk menumbuhkan energi positifmu terkait pemrograman.

      Praktikum bisa dikerjakan berulang kali selama masih dibuka, dengan 30 menit waktu tunggu antar percobaan. Nilai final Praktikummu akan diambil dari solusi dengan nilai terbaik.

    •    

      Pertemuan Sinkronus

      Pertemuan sinkronus hanya akan diadakan jika ada isu, kendala, atau tantangan belajar yang perlu dibahas atau didiskusikan. Silahkan tulis isu, kendala, atau tantangan belajar yang kamu hadapi, baik terkait Topik yang sedang atau sudah dibahas, pada aktivitas "saya ingin lebih tahu tentang...". Tautan ke webmeeting perkuliahan hanya akan dibuka untuk kelas yang memerlukan pertemuan sinkronus.

    • hotquestion icon
      Saya dari kelas A, saya ingin lebih tahu tentang... Hot Question

      Silahkan tuliskan pertanyaan atau hal yang ingin kamu ketahui lebih jauh terkait topik minggu ini dan sebelumnya. Pertanyaan kamu akan diulas pada saat pertemuan sinkronus.

      Tidak tersedia kecuali: Anda termasuk A Class
    • hotquestion icon
      Saya dari kelas B, saya ingin lebih tahu tentang... Hot Question

      Silahkan tuliskan pertanyaan atau hal yang ingin kamu ketahui lebih jauh terkait topik minggu ini dan sebelumnya. Pertanyaan kamu akan diulas pada saat pertemuan sinkronus.

      Tidak tersedia kecuali: Anda termasuk B Class
    • url icon
      Pertemuan Sinkronus via Zoom untuk 30 Maret 2021 URL
      Tidak tersedia kecuali: You are a(n) Learner
    •    

      Refleksi

      Penelitian menunjukkan bahwa mahasiswa yang lebih reflektif dalam belajar cenderung akan lebih berhasil secara akademis (Butler & Cartier, 2005; Butler & Winne, 1995; Coutinho, 2007; Lawanto, 2010; Lawanto et al., 2013; Lawanto & Johnson, 2009; Pintrich, 2002; Schoenfeld, 1983) serta lebih baik dalam belajar dan membuat program komputer (Bergin et al., 2005; Falkner et al., 2014; Havenga, 2015; Kumar et al., 2005), jika dibandingkan dengan mahasiswa yang tidak reflektif.

      Kegiatan ini disiapkan untuk melatih kamu agar terbiasa reflektif dalam belajar, sehingga kamu bisa menggunakan keahlian ini kapan dan di mana saja, sampai tua. Jika kamu tidak mengisi refleksi atau memberikan jawaban tidak berfaedah, kamu akan mendapatkan -5 poin sikap. Kamu bisa menuliskan refleksi tambahan selama waktu pengisian belum ditutup.

    •    

      Materi Pengayaan

      Materi Utama yang diberikan, fokus pada konsep dan prinsip inti serta cara pemanfaatannya. Ada beberapa isu yang memang sengaja tidak dibahas. Jika kamu ingin mengetahui tentang hal-hal yang sengaja dilewatkan, silahkan kunjungi materi tambahan di bawah ini.

    • Algoritma Penyortiran digunakan untuk menyusun ulang elemen array atau daftar yang diberikan berdasarkan operator perbandingan pada elemen tersebut. Operator perbandingan digunakan untuk menentukan urutan baru elemen dalam struktur data masing-masing.

    • QuickSort adalah algoritma Divide and Conquer. Algoritma ini memilih elemen sebagai pivot dan membagi array yang diberikan di sekitar pivot yang dipilih. Ada banyak versi quickSort yang memilih pivot dengan cara yang berbeda.

    • Impelementasi algoritma Quick Sort secara iteratif (i.e., menggunakan struktur pengulangan).

    • Efisiensi suatu algoritma bergantung pada dua parameter, yaitu kompleksitas waktu dan ruang. Keduanya dihitung sebagai fungsi ukuran input (n).

    • Pada tautan ini, kamu bisa mencoba mengerjakan beberapa soal latihan terkait algoritma pengurutan. 

    • Penyortiran data merupakan masalah menarik yang telah menarik beberapa upaya penelitian paling intensif di bidang ilmu komputer baik karena kepentingan teoretisnya maupun penggunaannya dalam banyak aplikasi. Quicksort secara luas dianggap sebagai salah satu teknik penyortiran yang paling efisien, yang bergantung pada teknik pemilihan pivot yang tepat untuk kinerjanya. Dalam studi ini, quicksort berurutan diimplementasikan menggunakan enam skema pemilihan pivot yang berbeda untuk meminimalkan waktu eksekusi algoritma quicksort. Skema tersebut diuji bersama-sama menggunakan tipe data array integer. Dari hasil yang diperoleh, median-of-five tanpa skema pemilihan indeks acak meminimalkan waktu eksekusi algoritma quicksort sekitar 23-35% dibandingkan dengan teknik lainnya. Hasil tersebut juga menunjukkan bahwa ada overhead yang terkait dengan pemilihan indeks acak dan ini dapat memengaruhi kinerja metode tertentu. Dengan demikian, faktor ini perlu dipertimbangkan dalam memilih skema pemilihan pivot yang optimal.

    • Algoritma ini dikembangkan oleh ilmuwan komputer Inggris Tony Hoare pada tahun 1959. Nama "Quick Sort" berasal dari fakta bahwa, quick sort mampu mengurutkan daftar elemen data secara signifikan lebih cepat (dua atau tiga kali lebih cepat) daripada algoritma pengurutan umum lainnya. Ini adalah salah satu algoritma pengurutan yang paling efisien dan didasarkan pada pemisahan array (partisi) menjadi yang lebih kecil dan pertukaran (pertukaran) berdasarkan perbandingan dengan elemen 'pivot' yang dipilih. Karena itu, quick sort juga disebut sebagai pengurutan "Partition Exchange". Seperti Merge sort, Quick sort juga termasuk dalam kategori pendekatan bagi dan taklukkan dari metodologi pemecahan masalah.

loader image