• Tidak ada hasil yang ditemukan

PROFIL KEMAMPUAN DAN KESALAHAN MENGONSTRUKSI FUNGSI REKURSIF DI KALANGAN MAHASISWA S1 PENDIDIKAN MATEMATIKA

N/A
N/A
Protected

Academic year: 2022

Membagikan "PROFIL KEMAMPUAN DAN KESALAHAN MENGONSTRUKSI FUNGSI REKURSIF DI KALANGAN MAHASISWA S1 PENDIDIKAN MATEMATIKA"

Copied!
12
0
0

Teks penuh

(1)

37

PROFIL KEMAMPUAN DAN KESALAHAN MENGONSTRUKSI FUNGSI REKURSIF DI KALANGAN MAHASISWA S1 PENDIDIKAN MATEMATIKA

Sugiarto Pudjohartono1 Universitas Sanata Dharma1 e-mail1 : sugiartousd@gmail.com

ABSTRAK

Penelitian ini bertujuan mengungkap kemampuan dan kesalahan mahasiswa dalam mengonstruksi fungsi rekursif pada mata kuliah pemrogrman komputer. Data dipungut dari hasil pekerjaan (uraian) mahasiswa saat mengonstruksi fungsi rekursif sesuai spesifikasi yang ditentukan. Selanjutnya, hasil pekerjaa dikoreksi dan dilakukan pengelompokan kemampuan mengonstruksi fungsi rekursif. Hasil penelitian, diperoleh 6 level kemampuan berturut-turut sebesar: 3,1% (level 6); 2,1% (level 5); 6,2% (level 4); 29,9 % (level 3); 54,6% (level 2) ; dan 4,1% (level 1). Selain itu, diperoleh 3 pola kesalahan yang paling sering muncul, berturut-turut: 1) merealisasikan memakai cara iteratif; 2) kesalahan mengonstruksi bagian kondisi stop, dan 3) kesalahan mengonstruksi bagian rekurens.

Kata Kunci: fungsi_rekursif, kemampuan mengonstruksi, kesalahan mengonstruksi

PENDAHULUAN

Mahasiswa S1 Pendidikan Matematika Universitas Sanata Dharma (USD) menempuh sejumlah matakuliah terkait teknologi informasi dan komunikasi (TIK), selain matakuliah pokok bidang pendidikan matematika. Salah satu matakuliah TIK tersebut adalah pemrograman komputer.

Mata kuliah pemrograman komputer memberi bekal pengetahuan dan kemampuan mahasiswa mengembangkan program komputer sederhana untuk menyelesaikan masalah yang sederhana pula. Selain itu, mata kuliah tersebut juga membuka wawasan mahasiswa pendidikan matematika terhadap aplikasi matematika pada lingkungan pemrograman komputer. Algoritma dan pemecahan masalah menjadi inti utama pengembangan kemampuan tersebut. Selanjutnya, algoritma direalisasikan dalam bentuk program komputer yang ditulis memakai bahasa Pascal. Bahasa Pascal dipandang cukup sederhana untuk pemula. Di antara sejumlah topik bahasan yang dikembangkan dalam perkuliahan ini adalah fungsi, prosedur, dan fungsi rekursif. Fungsi rekursif dipandang cukup penting dalam lingkungan pemrograman, dan pada kasus-kasus tertentu memudahkan pengembangan program untuk memecahkan problem yang susah dipecahkan (Suprapto,…dkk, 2008, p.359). Salah satu implementasi fungsi rekursif adalah dalam menentukan penyebutan nilai angka pada transaksi keuangan sesuai bahasa yang benar sebagaimana hasil penelitian dari Asnawi Choerun, Budi Setiawan, dan

(2)

38

Chanief (2010). Di sisi lain, pembahasan fungsi rekursif bukan hal yang mudah dipahami mahasiswa. Mahmudati (2017) dalam penelitian tentang fungsi rekursif menemukan sejumlah 23 dari 39 mahasiswa memperoleh skor rendah pada uji kompetensi mengenai fungsi rekursif.

Ada 2 lingkungan bahasan fungsi rekursif yang dapat menjadi pijakan pada saat mempelajari pemrograman. Lingkungan pertama adalah matematika diskrit, yang memuat materi relasi rekursif (termasuk pula fungsi karena fungsi merupakan relasi khusus). Matematika memang ilmu yang sangat mendukung perkembangan dunia pemrograman komputer. Sedangkan lingkungan lain adalah pemrograman komputer. Menguasai fungsi rekursif secara matematis, ternyata belum menjamin dapat menguasai fungsi rekursif dalam pemrograman komputer. Masih dibutuhkan sejumlah penyesuaian, seperti: notasi, pemaknaan notasi dan proses internal komputer (piranti keras) yang perlu dipahami meski intangible (proses tidak kasat mata). Pembelajaran lebih baik bila dilakukan dengan mensinergikan kedua lingkungan tersebut, terutama bagi mahasiswa pendidikan matematika.

Pembelajaran memakai kajian rekursif pada matematika sebagai apersepsi untuk memulai mengonstruksi fungsi rekursif pada program komputer. Selain itu, model pembelajaran penemuan terbimbing untuk membantu mahasiswa menemukan ciri khas proses rekursif pada konteks pemrograman komputer. Setelah ciri khas ditemukan, maka kemampuan yang perlu dikembangkan adalah menerjemahkan ciri khas tersebut ke dalam fungsi rekursif yang siap dikerjakan oleh komputer, sesuai spesifikasi yang ditetapkan.

Secara khusus, dalam lingkungan pemrograman komputer penggunaan fungsi rekursif dipandang lebih efisien dibandingkan dengan penggunaan fungsi iteratif.

Keduanya sama-sama memakai perulangan, namun fungsi rekursif pada saat dikerjakan oleh piranti keras komputer akan lebih cepat dibandingkan fungsi iteratif.

Mengingat manfaat dukungan terhadap kemampuan memprogram cukup besar dari penguasaan fungsi rekursif, maka peneliti menaruh perhatian ekstra pada saat perkuliahan pemrograman komputer memasuki pembahasan fungsi rekursif.

Penelitian ini berusaha mengungkap profil kemampuan para mahasiswa peserta kuliah pemrograman serta pola kesalahan yang terjadi dalam mengonstruksi fungsi rekursif, semester gasal tahun ajaran 2020/2021.

Fungsi Rekursif, sebagai kajian matematika. Kajian fungsi rekursif memakai semua kajian tentang fungsi, ditambah dengan ciri khas sebuah fungsi rekursif. Pada saat pembelajaran fungsi, dikaji beberapa hal seperti: domain (daerah asal), kodomain (daerah kawan), range (daerah hasil), cara menyatakan fungsi (yang khas fungsi adalah disajikan dengan rumus fungsi berupa persamaan fungsi), dan nilai fungsi.

Domain dan kodomain, keduanya bukan himpunan kosong, dan biasanya didefinisikan untuk R (himpunan bilangan real).

Sebuah fungsi f disebut fungsi rekursif bila didefinisikan mengacu pada diri sendiri. Ada tambahan ciri khusus bahwa fungsi memiliki aturan untuk mendapatkan nilai-fungsi, lebih dari satu aturan yang dinamakan sebagai basis dan rekurens

(3)

39 (Munir., Widya., 2016, p.568). Aturan pertama yang langsung merujuk pada nilai tertentu, dinamakan sebagai basis. Sedangkan aturan yang lain adalah nilai fungsi diperoleh dari nilai fungsi untuk nilai argumen sebelumnya, dinamakan sebagai rekurens. Sebagai contoh yang paling sederhana dan jelas adalah p! (operasi faktorial pada bilangan non_negatif). Andaikan sebuah fungsi f(p) = p!, maka fungsi f tersebut dapat disajikan secara rekursif sebagai berikut:

𝑓(𝑝) = 𝑝! = { 1 , 𝑝 = 0 (𝐛𝐚𝐬𝐢𝐬) (𝑝 − 1)! × 𝑝 , 𝑝 > 0 (𝐫𝐞𝐤𝐮𝐫𝐞𝐧𝐬)

Bagaimana nilai fungsi rekursif p! diperoleh ?. Misal, nilai f(4) pada fungsi di atas diperoleh melalui serangkaian proses sebagai berikut:

(L1) f(4) = 4 ! = 3! X 4 (def. rekurens) (L2) 3! = 2 ! x 3 (def. rekurens) (L3) 2 ! = 1! x 2 (def. rekurens) (L4) 1! = 0! x 1 (def. rekurens) (L5) 0! = 1 (def. basis) (L6) 1! = 1 x 1 = 1 (L4 & 0! = 1) (L7) 2 ! = 1 x 2 = 2 (L3 & 1! = 1) (L8) 3! = 2 x 3 = 6 (L2 & 2! = 2) (L9) 4! = 6 x 4 = 24 (L1 & 3! = 6)

Setelah langkah ke sembilan (L9), maka nilai f(4) = 4! = 24.

Contoh lain kajian fungsi rekursif yang sering dibahas dalam matematika diskrit adalah barisan Fibonacci. Barisan Fibonacci disajikan secara rekursif sebagai:

Fk = F(k-2) + F(k-1), dan dua buah kondisi awal yaitu: F0 = 1 dan F1 = 1. Selain itu, contoh relasi rekursif yang juga dibahas adalah permutasi n unsur yang disajikan dengan P(n). P(n) disajikan dengan aturan: P1 = 1 (untuk n=1) dan untuk n > 1 Pn = n. Pn-1. (Suweken, 2017, p.27).

Fungsi Rekursif, sebagai kajian dalam pemrograman komputer. Fungsi bersama dengan prosedur merupakan subrutin yang melekat pada program komputer. Keduanya tidak dapat berdiri sendiri, namun menopang pada sebuah program komputer agar program lebih ringkas, mudah diikuti alur logika pemrosesan data. Kajian fungsi dalam program, merupakan terapan dari konsep fungsi dalam matematika. Domain pada fungsi dipahami sebagai parameter input sebuah fungsi, sedangkan codomain dipahami sebagai nilai fungsi yang dikirimkan ke pemanggil fungsi. Melekat pada fungsi dalam lingkungan pemrograman adalah definisi fungsinya sendiri, yang dikenal sebagai spesifikasi fungsi.

Contoh berikut masih memakai fungsi faktorial di atas, untuk mengulas fungsi rekursif dalam program komputer. Fungsi faktorial di atas, dapat didefinisikan ke dalam fungsi (dalam program komputer memakai bahasa Pascal) sebagai berikut.

Function NF(p: integer): longint;

{ p merupakan sebarang integer tak negatif. Fungsi NF akan }

(4)

40

{ mengirim nilai long_integer yang bermakna sebagai p! } Begin

End;

Keterangan format. NF adalah nama fungsi yang dipakai ( = f(p) di atas). P berikut tipe data integer disebut parameter formal (parameter input), sama dengan domain pada bahasan fungsi. Sedangkan nilai fungsi pada definisi di atas diwakili oleh data (luaran) bertipe longint. Agar dapat berfungsi sebagaimana didefinisikan di atas, fungsi perlu direalisasikan pada bagian badan fungsi (di antara Begin – End;). Di sini lah realisasi fungsi dilakukan, atau mengonstruksi fungsi agar sesuai spesifikasi dilakukan.

Realisasi dari fungsi di atas dapat dilakukan dengan 2 cara yaitu: cara iteratif dan cara rekursif. Cara iteratif memakai perulangan terbatas, sedangkan cara rekursif untuk mengakomodasikan ciri dari fungsi rekursif. Cara rekursif dipandang lebih ringkas, namun tidak mudah dipahami, dibandingkan cara iteratif. Untuk realisasi secara rekursif, diakomodasikan ciri khas fungsi rekursif di depan, yaitu: terdiri dari bagian basis dan bagian rekurens. Fungsi rekursif direalisasikan memakai pola: If (kondisi stop) then NF := Nilai_Tetap else NF := rumus yang memuat NF(p-1). Pola inilah yang dipakai untuk merealisasikan definisi fungsi secara rekursif.

Proses P(n) dapat didekati dengan proses rekursif bila dan hanya bila didapati 2 ciri khas, yaitu: 1) Proses ke-n dapat ditentukan dari proses ke- (n-1); dan 2) ada kondisi stop (kondisi di mana proses ke-n tidak lagi dihitung dari proses ke-(n-1) namun sudah dapat ditentukan nilainya. Kondisi stop akan mengisi bagian kondisi basis, sedangkan ciri pertama akan mengisi bagian di belakang “else”. Untuk kasus faktorial di atas, p ! kedua ciri tersebut mudah didapat. P! dapat dihitung dari (p-1)!, dengan persamaan p! = (p-1)! x p. Ciri pertama diperoleh. Selanjutnya ciri kedua, saat p = 0 maka p! = 1 (tidak perlu dihitung berdasarkan proses sebelumnya, dan sudah ada nilai fungsinya yaitu: 1). Dalam program Pascal, fungsi rekursif untuk p ! disajikan sebagai berikut:

Function NF(p: integer): longint;

{ p merupakan sebarang integer tak negatif. Fungsi NF akan } { mengirim nilai long_integer yang bermakna sebagai p! } Begin

If p = 0 then NF := 1 else NF := NF(p-1) * p;

End;

Penentuan aksi saat kondisi stop (yaitu: saat p = 0) bukan barang hafalan, namun berdasarkan definisi faktorial yang berasal dari lingkungan matematika. Demikian juga aksi saat kondisi bukan_stop (NF := NF(p-1) * p) juga bukan barang hafalan, namun sungguh didasarkan pada definisi faktorial yang berasal dari lingkungan matematika. Proses ke-p adalah p!, sedangkan proses ke-(p-1) dalam konteks ini adalah (p-1)!. Dengan demikian, per-definisi faktorial, didapat hubungan proses ke-p dengan proses ke-(p-1) sebagai: p! = (p-1)! x p. Hubungan tersebut dinyatakan pada

(5)

41 bagian aksi (di belakang “else”) sebagai : NF = NF(p-1) * p. Proses (p-1) ! sesuai spesifikasi fungsi, ditulis sebagai : NF(p-1). Itulah pemrosesan p! sebagai pemrosesan rekursif. Untuk dapat mengonstruksi menjadi fungsi rekursif diperlukan kemampuan : mengenali ciri pemrosesan rekursif dengan tepat; dan menerjemahkan ciri tersebut ke dalam pola rekursif memakai bahasa yang dipakai serta memenuhi spesifikasi fungsi yang telah ditetapkan. Kemampuan inilah yang dinamakan sebagai kemampuan mengonstruksi fungsi rekursif sesuai spesifikasi fungsi yang ditentukan.

Sedangkan kesalahan mengonstruksi dikenali sebagai hasil konstruksi fungsi yang tidak sesuai dengan spesifikasi fungsi yang ditetapkan.

Jika kepada mahasiswa diberikan definisi sebuah fungsi rekursif, maka beberapa hal harus dipikirkan. Pertama, mahasiswa harus menemukan hubungan proses ke-n dengan proses ke-(n-1) sesuai konteks permasalahan. Ini butuh kemampuan menganalisis kasus rekursif pada soal. Kedua, mahasiswa harus menemukan kondisi stop berikut nilai fungsinya. Jika 2 hal tersebut sudah ditemukan, maka mahasiswa masih harus mengonstruksinya, memakai pola percabangan, dan menuliskan kode program sebagai isi badan fungsi. Setelah itu, mahasiswa menguji kebenaran fungsi hasil konstruksi memakai komputer. Proses untuk menemukan hasil dilakukan oleh komputer memakai pola yang sama persis dengan kajian menentukan nilai fungsi rekursif di atas.

Kasus-kasus lain yang dikembangkan sebagai materi latihan adalah kasus: Xn (pemangkatan sebagai perkalian berulang); Un dan Sn(suku ke n dan jumlahan n suku pertama barisan bilangan aritmetika); p x q (perkalian didefinisikan sebagai penjumlahan berulang). Sedangkan pada saat tes diberikan kasus p x (q+2) sebagai pengembangan dari kasus p x q. Berdasarkan pekerjaan mahasiswa saat tes, profil kemampuan mengonstruksi fungsi rekursif diukur.

METODE

Penelitian ini tergolong penelitian deskriptif, yang akan mendeskripsikan kemampuan mahasiswa dalam mengonstruksi fungsi rekursif serta pola kesalahan yang terdeteksi.

Subjek penelitian terdiri dari 97 orang mahasiswa peserta perkuliahan pemrograman komputer yang menyelesaikan soal tes. Objek penelitian adalah kemampuan mengontruksi fungsi rekursif dan pola kesalahan merealisasikan fungsi rekursif. Bentuk data berupa pekerjaan mahasiswa merealisasikan fungsi rekursif sesuai spesifikasi yang diminta. Instrumen pengumpulan data berupa tes tertulis merealisasikan fungsi rekursif sesuai spesifikasi.

Pekerjaan tes dikoreksi dengan mencermati langkah-langkah merealisasikan selain ketepatan hasil kontruksi. Skoring dilakukan memakai 6 level kemampuan, dengan kriteria sebagai berikut:

Tabel 1. Rubrik Skoring Tes Uraian

(6)

42

Indikator Kemampuan Skor Level

Kemampuan Mampu merealisasi fungsi rekursif dengan: memakai pola

benar - rumusan bagian basis tepat - rumusan bagian rekurens tepat

6

Mampu merealisasi fungsi rekursif dengan: memakai pola benar - rumusan bagian basis atau bagian rekurens memuat kesalahan sintaks

5

Mampu merealisasi fungsi rekursif dengan: memakai pola benar - rumusan bagian basis atau bagian rekurens memuat kesalahan lojik

4

Mampu merealisasi fungsi rekursif: memakai pola benar, namun masih memuat kesalahan sintaks dan atau lojik pada bagian basis maupun pada bagian rekurens

3

Belum mampu merealisasi fungsi rekursif: tdk memakai pola rekursif namun pekerjaan tuntas

2

Belum mampu merealisasi fungsi rekursif: tdk memakai pola rekursif serta belum tuntas (selesai)

1

Pembedaan level kemampuan didasarkan pada ragam variasi hasil merealisasikan spesifikasi fungsi rekursif memakai pola rekursif yang benar, kebenaran menerjemahkan 2 bagian basis dan bagian rekurens, serta kesesuaian dengan definisi fungsi rekursif yang tertera sebagai spesifikasi. Pelevelan mudah dilakukan karena kemampuan yang diukur cukup spesifik dan terbatas.

Selanjutnya dihitung jumlah subjek yang tergolong pada tiap skor level, dan dinyatakan dalam persentase. Pola kesalahan akan lebih dilihat seturut dengan pola pengelompokan skor level tersebut, dan selanjutnya akan dicermati secara umum.

Setelah analisis data dilakukan, pembahasan dan simpulan dikembangkan berdasarkan hasil analisis tersebut.

HASIL

Dari data tes uraian mengonstruksi fungsi rekursif 97 mahasiswa, dapat dikelompokkan 6 level kemampuan mahasiswa, dengan sebaran frekuensi dan prosentase frekuensi tiap level sebagai berikut:

Tabel 2. Frekuensi Kemampuan Mengonstruksi Fungsi Rekursif Level

Kemampuan

Indikator Kemampuan Frekuensi (mhs)

Persen (%) 6 Mampu merealisasi fungsi rekursif

dengan: memakai pola benar - rumusan bagian basis tepat - rumusan bagian rekurens tepat

3 3,10

(7)

43 Level

Kemampuan

Indikator Kemampuan Frekuensi (mhs)

Persen (%) 5 Mampu merealisasi fungsi rekursif

dengan: memakai pola benar - rumusan bagian basis atau bagian rekurens memuat kesalahan sintaks

2 2,10

4 Mampu merealisasi fungsi rekursif dengan: memakai pola benar - rumusan bagian basis atau bagian rekurens memuat kesalahan lojik

6 6,20

3 Mampu merealisasi fungsi rekursif:

memakai pola benar, namun masih memuat kesalahan sintaks dan atau lojik pada bagian basis maupun pada bagian rekurens

29 29,90

2 Belum mampu merealisasi fungsi rekursif: tdk memakai pola rekursif namun pekerjaan tuntas

53 54,60

1 Belum mampu merealisasi fungsi rekursif: tdk memakai pola rekursif serta belum tuntas (selesai)

4 4,10

Sedangkan dari analisis terhadap kualitas hasil konstruksi, diperoleh sejumlah pola kesalahan. Berikut pola kesalahan yang dijumpai pada tiap level kemampuan.

Tabel 3. Kesalahan Realisasi Fungsi Rekursif Level

Kemampuan

Variasi Kesalahan Frekuensi (kasus)

Keterangan 6

-

0 Tidak dijumpai

kesalahan, fungsi dapat direalisasikan dg benar 5 a) Salah memakai operator (

seharusnya operator perbandingan “=” namun dipakai operator penugasan

“:=”

1 Butuh penyesuaian dengan sintaksis bahasa pemrograman yang dipakai

- b) Salah merealisasikan kondisi stop dengan pemberian nilai yang kurang sesuai kasus

1

4 - a) Penetapan kondisi stop (basis) sudah benar, namun

2 *) kesalahan

penetapan kondisi

(8)

44

Level Kemampuan

Variasi Kesalahan Frekuensi (kasus)

Keterangan aksi (pemberian nilai fungsi)

masih kurang tepat)

stop sama penting dengan kebenaran menetapkan bagian rekurens.

- b) Penetapan kondisi stop (basis) kurang tepat (mestinya yang berkurang p namun ditetapkan q)

2

- c) Penetapan kondisi stop tidak salah namun berlebih (if P = 0, mestinya berhenti saat P

= 1.)

2

3

- a) Penentapan kondisi stop yang selalu benar (if P > 0 then… else …, padahal sudah dipastikan bhw P bilangan bulat positif pada spesifikasi

16 *) sekali kondisi stop benar, maka fungsi bekerja (mengerjakan kondisi stop)selesai bekerja, sehingga perulangan bagian rekurens tidak terjadi

- b) Penetapan kondisi stop yang selalu salah (if Q = 0 then

…., atau if Q = -1 then ...)

5 *) proses rekursif akan berlangsung terus- menerus, tidak berhenti karena kondisi stop selalu salah

- c) Penentuan kondisi stop yang sama sekali tidak terkait sama sekali dg soal (if (P mod 2 = 0) then….)

5 *) seandainya pun fungsi bisa bekerja, dipastikan tidak sesuai spesifikasi - d) Penentuan kondisi stop

yang terkait namun kurang sesuai dengan soal (if P < Q then ….)

3 *) seandainya pun fungsi bisa bekerja, dipastikan tidak sesuai spesifikasi - e) Merealisasikan bagian

rekurens tidak sesuai notasi rekursif (“nggamangga := P * (Q+2)

25 *) menerjemahkan bagian rekurens memakai notasi yang sesuai.

2 - a) Mengacaukan format rekursif dengan format iteratif (misal: memakai “for

… to… do”; “repeat…until”

39 *) pemahaman tentang rekursif dan iterative terkesan masih tertukar (kacau)

(9)

45 Level

Kemampuan

Variasi Kesalahan Frekuensi (kasus)

Keterangan b) Tidak memakai format

rekursif dengan lengkap, hanya diambil bagian basis saja (misal: “if P>0 then …”

tanpa “else”)

12 *) pemahaman 2 ciri rekursif masih belum terbangun dengan baik.

- c) Sama sekali tidak mengakomodasikan pola rekursif (misal: NggaMangga := P*(Q+2)

2

1 Hasil konstruksi belum tuntas, berhenti di tengah:

a) mengarah pemakaian perulangan semata

b) mengarah pemakaian percabangan semata

4 *) pemahaman proses rekursif belum

berkembang, sehingga yang dipikir adalah pola percabangan saja atau perulangan saja.

DISKUSI

Tentang profil kemampuan mengonstruksi fungsi rekursif. Berdasarkan tabel 2, dapat dimaknai bahwa pada level kemampuan 6, mahasiswa (3,1% subjek) mampu mengonstruksi fungsi rekursif sungguh benar dan siap dikerjakan oleh komputer melalui bahasa Pascal. Dengan demikian mahasiswa pada level ini dapat dikatakan mampu mengonstruksi dengan tepat.

Mahasiswa pada level kemampuan 5 (2 mahasiswa) dan 4 berjumlah 6 mahasiswa(2,1% untuk level 5 dan 6,2% untuk level 4), mampu menerjemahkan proses rekursif dari soal ke dalam fungsi rekursif namun masih menyisakan masalah terkait dengan sintaksis (tata tulis) atau masalah logika yang masih kurang tepat.

Kelompok mahasiswa ini akan terbantu pada saat mereka melakukan penulisan teks program serta dikerjakan oleh mesin komputer. Pesan kesalahan akan menjadi bahan pembelajaran mereka agar lebih cermat lagi, sehingga kemampuan mengontruksi fungsi rekursif dapat ditingkatkan menjadi lebih tepat.

Mahasiswa pada level kemampuan 3 berjumlah 29 mahasiswa (29,9% subjek), mampu mengonstruksi fungsi rekursif dengan melibatkan pola rekursif namun masih memuat berbagai kesalahan yang mengakibatkan hasil kontruksi belum dapat menjawab persoalan dengan benar. Sekiranya mahasiswa pada kelompok ini diberikan waktu lebih untuk berlatih mengembangkan proses rekursif pada sejumlah kasus hingga realisasi pada mesin komputer, maka kemampuan mengonstruksi fungsi rekursif mereka akan lebih baik.

Sedangkan mahasiswa pada level kemampuan 2 (53 mahasiswa, atau 54,6 %) dan level kemampuan 1 (4 mahasiswa, atau 4,1%), belum menunjukkan kemampuan mengonstruksi fungsi rekursif dengan benar. Ciri rekursif dan pola realisasi rekursif

(10)

46

(bagian basis dan bagian rekurens) belum nampak pada hasil konstruksi. Pada level kemampuan 1, mahasiswa belum selesai merealisasikan fungsi rekursif yang diminta.

Tentang pola kesalahan. Berdasarkan tabel 3, nampak bahwa pola kesalahan makin kompleks sejalan dengan menurunnya level kemampuan. Teridentifikasi 3 kesalahan yang paling sering muncul.

Pertama, merealisasikan fungsi rekusif memakai pola iteratif. Kedua proses berbeda, meski pada akhirnya menghasilkan nilai fungsi yang sama untuk argumen fungsi yang sama. Kesalahan ini nampak sebanyak 39 kasus.

Kedua, kesalahan menetapkan kondisi stop. Pada spesifikasi soal diketahui P dan Q sebarang bilangan bulat positif, maka fungsi rekursif hanya didefinisikan untuk P dan Q sebagai bilangan bulat positif saja. Namun kesalahan muncul pada pendefinisian kondisi stop sub_pola: a) selalu bernilai benar (misal: “If P > 0 then … else …”, ditemukan sebanyak 16 kasus; b) selalu bernilai salah (misal: “If P = 0 then … else …”, ditemukan sebanyak 5 kasus; dan c) kurang terkait dengan substansi masalah (misal: “If (P mod 2 = 0) then ….”). Untuk kasus a), fungsi hasil konstruksi hanya akan mengerjakan bagian basis saja dan tidak akan mengerjakan bagian rekurens sama sekali, sehingga proses rekurens tidak akan pernah terjadi. Untuk kasus b), fungsi hanya akan mengerjakan bagian rekurens saja. Sekiranya bagian rekurens benar, maka akan terjadi perulangan tidak berhenti (bagian rekurens yang dikerjakan berkali-kali tiada henti). Sedangkan kasus c), nilai fungsi yang dihasilkan kurang sesuai spesifikasi, untuk kasus P dan Q tertentu mungkin benar namun untuk kasus lain ditemukan nilai yang salah. Kesalahan ini nampak sebanyak 26 kasus.

Ketiga, kesalahan merealisasikan bagian rekurens. Pada umumnya mahasiswa memakai rumus dalam notasi matematika tanpa menerjemahkan hubungan proses ke-n dengan proses ke-(n-1) yang menjadi ciri bagian rekurens.

Dalam kasus tes, kasus P x (Q+2) dan nama fungsi NggaMangga dengan parameter P dan Q. Proses ke-p disajikan sebagai: “NggaMangga := P * (Q+2)”. Sajian itu tidak menampakkan sama sekali proses rekursif (bagian rekurens dengan benar). Mestinya disajikan sebagai “NggaMangga := NggaMangga(P-1, Q) + (Q+2)”. “NggaMangga(P- 1,Q)” pada konteks soal ini adalah proses ke-(p-1). Hubungan dengan proses ke-p adalah : P x (Q+2) = (P-1) x (Q+2) + (Q+2). Hal ini diperoleh sebagai pengembangan konsep P x Q sebagai penjumlahan berulang Q sebanyak p kali. Kesalahan ini nampak sebanyak 25 kasus.

KESIMPULAN

Penelitian ini mengungkap 6 level kemampuan mengonstruksi fungsi rekursif dengan frekuensi tiap level dinyatakan dalam persen, sebagai berikut: level 6 = 3,1%;

level 5 = 2,1%; level 4 = 6,2%; level 3 = 29,9 %; level 2 = 54,6%; dan level 1 = 4,1%.

Mahasiswa pada level 2 dan level 1, menunjukkan bahwa pemahaman terhadap proses rekursif dan kemampuan mengonstruksi fungsi rekursif, masih belum berkembang dan butuh pendampingan lebih intens lagi. Untuk mahasiswa pada level 3, menunjukkan mulai muncul pemahaman proses rekursif dan kemampuan

(11)

47 mengonstruksi fungsi rekursif dengan benar. Mereka masih butuh waktu lebih untuk berlatih. Sedangkan mahasiswa pada level 4 dan 5, perlu waktu untuk mempraktikkan hasil konstruksi memakai mesin komputer, dan mereka dapat belajar memperbaiki kekurangan melalui praktik langsung dengan mesin komputer.

Sedangkan mahasiswa pada level 6 mampu mengonstruksi fungsi rekursif dengan benar, serta hasil konstruksi dapat langsung dicobakan ke mesin komputer.

Sedangkan pola kesalahan teridentifikasi sebanyak 3 pola. Pola pertama, kesalahan merealisasikan fungsi rekursif memakai pola iteratif. Meski hasil (nilai fungsi) sama, namun proses berbeda. Pola kedua, kesalahan pada saat menetapkan kondisi stop sebagai: a) kondisi yang selalu benar; b) kondisi yang selalu salah; atau c) kondisi yang kurang terkait konteks soal. Pola ketiga, kesalahan pada saat merealisasikan bagian rekurens. Proses rekurens tidak nampak pada realisasi bagian tersebut, dan hanya disajikan sebagai rumus fungsi sesuai konteks soal. Tidak nampak hubungan proses ke-n dengan proses ke-(n-1) yang sesuai konteks soal.

Hasil penelitian ini menguatkan dan melengkapi hasil penelitian Mahmudati (2017). Penelitian tersebut mendapati sejumlah 23 dari 39 mahasiswa (58,9%) S1 Teknik Informatika mengalami kesalahan dalam menyelesaikan masalah fungsi rekursif pada mata kuliah matematika diskrit. Menguatkan karena hasil penelitian ini diperoleh 58,7 % subjek penelitian (57 dari 97 mahasiswa S1 Pendidikan Matematika) belum mampu mengonstruksi fungsi rekursif pada saat memprogram. Artinya, kedua penelitian menemukan besaran masalah untuk fungsi rekursif lebih kurang sama besar. Hasil ini juga saling melengkapi untuk sebuah temuan bahwa kajian fungsi rekursif cukup penting, namun di lapangan masih ditemukan masalah cukup besar (dari 50% subjek penelitian). Terkait dengan penelitian Asnawi Choerun, dkk.

(2010), kemampuan mengonstruksi fungsi rekursif di kalangan mahasiswa memang harus ditingkatkan agar lebih mendukung kemampuan untuk menghasilkan aplikasi- aplikasi pemrosesan data seperti dicontohkan pada penelitian Asnawi Choerun, dkk.

Saran terhadap temuan ini. Penelitian dilakukan pada masa pandemi dan pembelajaran bermodus jarak-jauh (PJJ). Durasi waktu untuk mengolah kasus diduga masih kurang (tatapmuka hanya 2 kali, @ 100 menit) untuk sejumlah 58,7 % mahasiswa pada level kemampuan 1 dan 2. Mereka butuh waktu lebih banyak untuk menganalisis soal sebagai proses rekursif (mendapatkan ciri kondisi stop dan kondisi rekurens, serta nilai fungsi pada tiap kondisi), serta mendapatkan kemampuan mengonstruksi kedua ciri tersebut dengan tepat. Jika perlu ditambah tatapmuka maya ekstra untuk mereka agar menjadi lebih terbantu. Selain itu, bisa pula dilibatkan tutor sebaya dengan memanfaatkan mahasiswa yang memiliki kemampuan level 6 untuk mendampingi mereka berlatih. Sedangkan untuk mahasiswa level kemampuan 5, 4 , dan 3, perlu diberikan waktu untuk mempraktikkan hasil konstruksi memakai mesin secara mandiri dan mengonsultasikan masalah yang muncul kepada dosen pada saat tatapmuka maya.

LAMPIRAN

(12)

48

Soal Tes Uraian. Kasus yang diajukan pada tes sebagai berikut (disajikan memakai bahasa Pascal). Mahasiswa diminta mengonstruksi / merealisasikan fungsi sesuai dengan soal yaitu: P x (Q+2), memakai bahasa Pascal.

Function NggaMangga(P,Q : integer): integer;

{ P dan Q keduanya bilangan bulat positif }

{ Fungsi akan mengirim nilai P * (Q+2), secara rekursif } Begin

End.

DAFTAR PUSTAKA

Asnawi, Choerun., Budi Setiawan, Chanief. (2010). Perancangan Fungsi Terbilang Generik Menggunakan Teknik Rekursi. Jurnal Teknomatika Vol.3, No.1, Juli 2010. ISSN: 1979 – 7656.

Mahmudati, Rina. (2017). Analisis Kesalahan Mahasiswa Dalam Menyelesaikan Permasalahan Fungsi Rekursif Pada Mata Kuliah Matematika Diskrit Menurut Newman. Jurnal PPKM III (2017) 207 – 212. ISSN: 2354-869X.

Munir, Rinaldi., Lidya, Leony. (2016). Algoritma dan Pemrograman. Dalam Bahasa Pascal, C, dan C++. Edisi Keenam. Bandung: Informatika.

Suprapto., Tejo Yuwono, Kadarisman., Sukardiyono, Totok., Dewanto, Adi. (2008).

Bahasa Pemrograman Untuk Sekolah Menengah Kejuruan. Jakarta: Direktorat Pembinaan Sekolah Menengah Kejuruan, Departemen Pendidikan Nasional.

Suweken, Gede. (2017). Matematika Diskrit. Depok: RajaGrafindo Persada.

Referensi

Dokumen terkait

Hal ini dapat ditunjukkan dengan melihat skor rasa syukur pada subjek yang diteliti, berdasarkan hasil analisis deskriptif menunjukan bahwa 92 % lanjut usia di

Oleh karena itu, penelitian ini dilakukan sebagai sarana informasi untuk mengetahui lebih dalam terkait persepsi petani di Kecamatana mojolaban terhadap pupuk

Salah satu postulah Hill yang menyatakan bahwa penyebab penyakit harus konsisten dengan ilmu biologi dan medis, adalah..

pemberian pakan campuran rumput gajah dengan daun gliricidia dengan penambahan pakan sumber energi 5 jam setelah pemberian hijauan menunjukkan jumlah bahan kering sel mikroba

Penelitian ini bertujuan untuk menguji kembali pada Asset (ROA), Return on Equity (ROE), penghasilan Per Saham (EPS) efek signifikan untuk kembali di PT.. Bank

Trans Studio Makasar dibangun di atas lahan seluas 2.7 Hektar yang menyajikan 21 wahana permainan dan bermacam bentuk hiburan yang terdapat dalam 4 kawasan dengan tema

current ratio, quick ratio, total asset turn over dan kebijakan dividen tidak berpengaruh terhadap perubahan laba pada perusahaan Food and Beverage yang

menggunakan narkotika terhadap orang lain atau memberikan narkotika Golongan III untuk digunakan orang lain, dipidana dengan pidana penjara paling lama 5 (lima) tahun dan denda