TKAP-3-Visualisasi Selection Sort

Deskripsi

Selection Sort merupakan salah satu algoritma pengurutan yang sederhana. Ide dasarnya adalah melakukan beberapa kali pass untuk melakukan penyeleksian elemen struktur data. Untuk sorting ascending (menaik), elemen yang paling kecil di antara elemen-elemen yang belum urut, disimpan indeksnya, kemudian dilakukan pertukaran nilai elemen dengan indeks yang disimpan tersebut dengan elemen yang paling depan yang belum urut. Sebaliknya, untuk sorting descending (menurun), elemen yang paling besar yang disimpan indeksnya kemudian ditukar.

Selection Sort diakui karena kesederhanaan algoritmanya dan performanya lebih bagus daripada algoritma lain yang lebih rumit dalam situasi tertentu. Algoritma ini bekerja sebagai berikut:

  1. Mencari nilai minimum (jika ascending) atau maksimum (jika descending) dalam sebuah list
  2. Menukarkan nilai ini dengan elemen pertama list
  3. Mengulangi langkah di atas untuk sisa list dengan dimulai pada posisi kedua


Secara efisien kita membagi list menjadi dua bagian yaitu bagian yang sudah diurutkan, yang didapat dengan membangun dari kiri ke kanan dan dilakukan pada saat awal, dan bagian list yang elemennya akan diurutkan.

Contoh simulasi algoritma selection sort sbb :
jika kita memiliki elemen array sbb :  {5, 1, 12, -5, 16, 2, 12, 14}


Visualisasi


TKAP-2-Problem Solving Bebras

Kemampuan memecahkan masalah (problem solving) merupakan kemampuan yang diperlukan baik untuk belajar, maupun dalam bekerja. Menurut laporan dari World Economic Forum, kemampuan yang paling diperlukan dalam dunia kerja di tahun 2020 adalah complex problem solving. Berkaitan dengan hal tersebut, ada tiga tantangan yang dihadapi di masa depan, yaitu ketidakpastian, globalisasi, dan persaingan ide. Pendidikan harus dapat menjawab ketiga tantangan tersebut dengan memperkuat konsep 4C dalam pendidikan, yaitu creativity, comunication skills, collaborative, and critical thingking for problem solving.

Dalam dunia pendidikan, berbagai model pembelajaran dicoba untuk diterapkan dengan tujuan untuk meningkatkan kemampuan problem solving siswa. Kemampuan problem solving bisa juga diasah melalui kegiatan di luar sekolah (non kurikuler). Hampir semua aspek kehidupan sehari-hari diselesaikan dengan bantuan komputer. Oleh sebab itu, computational thinking menjadi salah satu elemen problem solving yang perlu diasah.

Bebras yang pertama kali digelar di Lithuania (www.bebras.org), merupakan aktivitas ekstra kurikuler yang mengedukasi kemampuan problem solving dalam informatika dengan jumlah peserta terbanyak di dunia. Siswa peserta akan mengikuti kompetisi bebras di bawah supervisi guru, yang dapat mengintegrasikan tantangan tersebut dalam aktivitas mengajar guru. Kompetisi ini dilakukan setiap tahun secara online melalui komputer.

Kompetisi Bebras didirikan di negara Lithuania oleh Prof. Valentina Dagiene dari University of Vilnius pada tahun 2004. Bebras adalah istilah dalam bahasa Lithuania untuk ?beaver? (dalam bahasa Indonesia adalah ?berang berang?). Bebras dipilih sebagai simbol tantangan (challenge), karena hewan beaver berusaha keras untuk mencapai target secara sempurna dalam aktivitasnya sehari ?hari. Mereka membuat bendungan dari ranting-ranting pohon di sungai atau aliran air dan membuat rumahnya sendiri. Kompetisi ini disebut Bebras untuk menunjukkan kerja keras dan kecerdasan diperlukan di dalam kehidupan.

Kompetisi Bebras dilaksanakan setiap tahun. Negara yang sudah berpartisipasi mengikuti Bebras ada 50 negara, belum termasuk Indonesia. Pada tahun 2015, jumlah peserta yang mengikuti Bebras mencapai 1,3 juta siswa dari berbagai belahan dunia. Indonesia akan mulai berpartisipasi pada tahun 2016.

Bebras task diberikan berdasarkan kelompok umur siswa, terdapat 5 kelompok umur. Kelompok Little Beavers untuk usia 8-10 tahun, kelompok Benjamins untuk usia 10-12 tahun, kelompok Cadets untuk usia 13-14 tahun, kelompok Juniors untuk usia 15-16 tahun, dan kelompok Seniors untuk usia 17-19 tahun.

Contoh – 1 

Kran Air
(Kelompok Usia: Benjamins; Tingkat Kesulitan: medium; Kategori: STRUC)

Beaver membuat sistem pipa untuk menyirami pohon apelnya.
Sistem pipa terdiri dari 4 kran, yaitu A,B,C, dan D. Digunakan ekspresi yang memakai variabel A, B, C, D, yang dapat bernilai true (benar) atau false (salah). Suatu variabel bernilai true, jika kran yang berhubungan terbuka, sebaliknya variabel bernilai false, jika kran tersebut tertutup.

Tentukan dalam kasus yang mana, pohon apel akan mendapat air ?

Pilihlah jawaban yang paling tepat :

  • A) A = false, B = true, C = false, D = false
  • B) A = true, B = true, C = false, D = false
  • C) A = true, B = false, C = false, D = true
  • D) A = false, B = false, C = false, D = true
Jawaban yang paling tepat adalah A, penjelasannya sebagai berikut.


  • A: Jika B terbuka dan A tertutup, maka air dapat mengalir menyirami pohon.
  • B: Jika A terbuka, maka air yang mengalir melalui B akan dialirkan melalui A, sehingga tidak menyirami pohon.
  • C: Jika B tertutup, maka tidak ada air yang berasal dari sumber di sebelah kiri. Karena C juga tertutup, air dari sumber di sebelah kanan tidak dapat mengalir.
  • D: Jika B tertutup, maka tidak ada air yang berasal dari sumber di sebelah kiri. Karena C juga tertutup, air dari sumber di sebelah kanan tidak dapat mengalir

Aspek informatika yang hendak disampaikan dalam persoalan ini adalah bahwa program komputer memproses struktur data yang memodelkan kondisi sebenarnya. Model adalah suatu abstraksi, yaitu gambaran persoalan nyata yang disederhanakan. Dalam persoalan kran air, kran dimodelkan sebagai variabel yang dapat bernilai true (kran terbuka) atau false (kran tertutup). Ini suatu contoh abstraksi, dalam hal ini sifat-sifat lain dari suatu kran air diabaikan dahulu untuk menyederhanakan persoalan.

Contoh - 2

Pertemanan
(Kelompok usia : Juniors; Tingkat kesulitan: medium; Kategori: STRUC, SOC)

Lucia dan teman-temannya terdaftar dalam suatu jaringan sosial, seperti dalam gambar berikut ini. Suatu garis menunjukkan hubungan pertemanan antara dua orang. 
Misalnya Monica adalah teman Lucia sedangkan Alex bukan teman Lucia.

Aturan yang berlaku :
  • Jika seseorang berbagi foto dengan beberapa temannya, maka teman-temannya tersebut dapat memberikan komentar.
  • Jika seseorang memberikan komentar untuk suatu foto, maka semua temannya dapat melihat foto dan komentarnya, tetapi tidak dapat memberikan komentar kecuali jika pada awalnya bisa.

Lucia meng-upload suatu foto. Dengan siapa saja dia dapat berbagi foto, jika dia tidak mau fotonya dilihat oleh Jacob ?

Pilihlah jawaban yang paling tepat :
  • A) Dana, Michael, Eve
  • B) Dana, Eve, Monica
  • C) Michael, Eve, Jacob
  • D) Micheal, Peter, Monica

Jawaban yang benar adalah A.

Penjelasannya, Lucia mempunyai 6 teman, yaitu Dana, Michael, Monica, Eve, Peter, dan Jacob. Dari keenam orang tersebut, yang tidak berteman dengan Jacob adalah Dana, Michael dan Eve. Aturannya adalah jika X memberi komentar untuk sebuah foto, maka semua teman X dapat melihat foto dan komentarnya. Jadi karena Dana, Michael dan Eve tidak berteman dengan Jacob, maka Jacob tidak bisa melihat foto tersebut.

Salah satu aspek informatika yang hendak disampaikan melalui soal ini adalah mengenai struktur. Struktur yang digunakan untuk menggambarkan relasi pertemanan dari Lucia menggunakan bentuk yang disebut graf. Graf merupakan sarana dalam informatika untuk menggambarkan jaringan sosial. Graf sederhana terdiri dari node (menyatakan orang) dan garis (menyatakan relasi teman).

Referensi :

  • http://www.bebras.uk/programming.html
  • http://www.scratchmypi.co.uk/sorting-algorithms-in-key-stage-2/#
  • https://www.youtube.com/watch?v=T9ddJNm_gX8
  • https://scratch.mit.edu/projects/89122691/
  • https://scratch.mit.edu/studios/880696/
  • https://edu.google.com/resources/programs/exploring-computational-thinking/
  • http://interactivepython.org/runestone/static/pythonds/index.html
  • https://projecteuler.net/archives
  • http://www.cs.uni.edu/~schafer/outreach/cs4hs/
  • https://www.youtube.com/watch?v=1jWfG_0J-qU&index=11&list=PL99XwQ3slYF1Azru0Ppe6bDvC59-3GoQs
  • https://www.youtube.com/watch?v=S_eOTuRICQk
  • https://www.youtube.com/watch?v=T9ddJNm_gX8
  • https://www.youtube.com/watch?v=nbbfz-xXSOc