## ANALISIS KESALAHAN CODING PEMROGRAMAN JAVA PADA MATAKULIAH ALGORITMA PEMROGRAMAN MAHASISWA TADRIS MATEMATIKA IAIN KEDIRI

## Ahmad Syamsudin
Tadris Matematika, IAIN Kediri syamsudin@iainkediri.ac.id
Abstrak: Tujuan dari penelitian ini adalah untuk  mengetahui tingkat kesalahan yang dilakukan oleh mahasiswa Tadris Matematika dalam menulis sintaks Bahasa pemrograman  Java.  Penelitian  ini  termasuk  dalam  model  studi  kasus  bersifat kuratif, atau Studi Kasus Retrospektif dengan analisis penelitian menggunakan model Miles dan Huberman. Subjek dari penelitian ini adalah mahasiswa Tadris Matematika  semester  ganjil  Angkatan  2019/2020  sebanyak  tiga  kelas.  Setelah dilakukan analisis data, diketahui bahwa terdapat tujuh kelompok kesalahan yang sering  dilakukan  oleh  mahasiswa  tersebut  antara  lain  kesalahan  variable, kesalahan operator sambung, kesalahan blok program, kesalahan operator prefix dan  postfix,  kesalahan  import  package  dan  input  data.  Faktor-faktor  yang mempengaruhi tingkat kesalahan tersebut adalah kemampuan dasar komputer yang  masih  kurang,  mahasiswa  kurang  teliti  dalam  penulisan  sintaks,  belum adanya  semangat  kompetitif  dikalangan  mahasiswa  dalam  belajar  algoritma pemrograman,  mayoritas  mahasiswa  belajar  membuat  program  ketika  di laboratorium saja, Mutu isi panduan praktikum yang relatif sulit untuk dipahami oleh  mahasiswa  sebagai  pemula  dalam  belajar  algoritma,  materi  perkuliahan algoritma  dan  pemrograman  java  belum  memiliki  korelasi  secara  langsung terhadap materi perkuliahan matematika yang sudah dipelajari oleh mahasiswa. Solusi  yang  diperlukan  untuk  mengatasi  masalah  tersebut  adalah  dengan memberikan  tugas  setiap  pertemuan,  mengaitkan  materi  perkuliahan  dengan matakuliah lain dan mendesain metode pembelajaran kooperatif dan kompetitif.
Kata kunci: algoritma, problem solving, pemrograman, sintaks
Abstract: The purpose of this study was to determine the level of error made by Tadris  Mathematics  students  in  writing  the  syntax  of  the  Java  programming language. This research is a part of the curative case study model, or Retrospective Case Studies with research analysis using the Miles and Huberman models. The subjects of this study were three semester classes  of Tadris Mathematics IAIN Kediri. After analyzing the data, it is known that there are seven groups of errors that  are  often  made  by  these  students  including  variable  errors,  connection operator errors, program block errors, prefix and postfix operator errors, import package errors and data input. Factors that influence the error rate are the basic computer skills that are still lacking, students are not careful in writing syntax, there  is  no  competitive  spirit  among  students  in  learning  programming
algorithms,  the  majority  of  students  learn  to  make  programs  when  in  the laboratory  alone,  the  relative  quality  of  the  contents  of  practical  guidelines difficult  to  understand  by  students  as  beginners  in  learning  algorithms, algorithmic lectures and  java programming materials do not yet have a  direct correlation to mathematics lecturing material that has been studied by students. The  solution  needed  to  overcome  these  problems  is  to  give  the  task  of  each meeting, linking lecture material with other subjects and designing cooperative and competitive learning methods Keywords: problem solving, algorithm, programming, syntax

## A. Pendahuluan
Pendidikan adalah salah satu bagian  dari  rekayasa  sosial  yang dilakukan  untuk  merubah  keadaan atau  fungsi  sosial.  Secara  bersama- sama, pendidikan dapat dibentuk dan diarahkan  untuk  tujuan  tertentu (Duschl,  2008).  Salah  satu  faktor indikasi dari keberhasilan pendidikan adalah kemampuan mahasiswa dalam menyelesaikan sebuah persoalan atau problem  solving.  Kemampuan  untuk menyelesaikan  masalah  adalah  hal yang sangat penting dalam
matematika,  tidak  hanya  dalam lingkup  matematika  namun  juga untuk  integrasinya  dalam  keilmuan lain (Murdiana, 2015). Dalam (Hamalik, 1994) menjelaskan, problem solving adalah suatu proses mental  dan  intelektual  dalam
menemukan dan memecahkan
masalah  berdasarkan  data  dan informasi  yang  akurat,  sehingga dapat diambil kesimpulan yang tepat dan  cermat.  Langkah-langkah  yang harus diambil dalam problem solving adalah  memahami  permasalahan, menyusun  rencana  penyelesaian, implementasi  rencana  penyelesaian dan memeriksa kembali penyelesaian (Polya, 1957). Dalam konteks ini Polya
menjelaskan problem solving tersebut untuk permasalahan
matematis. Namun hal ini juga masih relevan  dalam  penyelesaian  masalah pemrograman  (Barnes,  Fincher,  & Thompson, 1997).
Algoritma  pemrograman  adalah matakuliah yang memberikan dasar- dasar  berfikir  logis,  sistematis  dan kemampuan  problem  solving  (Kadir, 2005). Matakuliah yang harus diambil
Ahmad Syamsudin
oleh mahasiswa Program Studi Tadris Matematika IAIN Kediri pada semester tiga ini menuntut mahasiswa  tidak  hanya  mampu membuat program dalam java namun juga mampu menyelesaikan masalah dengan  pemrograman  (IAIN  Kediri, 2018).  Dalam  Mcintosh  (McIntosh  & Janet,  2000)  menjelaskan  bahwa masalah  memiliki  dua  ciri  yaitu menantang  pikiran  dan  tidak  rutin. Selain  itu  algoritma  pemrograman merupakan  matakuliah  prasyarat yang  harus  ditempuh  sebelum mahasiswa  mengambil  matakuliah Metode  Numerik  dan  Program Komputer di IAIN Kediri.
Struktur  dasar  algoritma secara  umum  dapat  dibagi  menjadi tiga  macam  yaitu  sekuensial,  seleksi dan  pengulangan  (Kadir,  2012).  Java dipilih sebagai Bahasa pemrograman di  IAIN  Kediri  karena  ketiga  struktur tersebut  dapat  diolah  dan  ditulis kedalam  Bahasa  pemrograman  java. Java  juga  menjadi  dasar  ilmu pemrograman  yang  harus  dikuasai sebelum  belajar  mengembangkan
android  (prayoga,  n.d.).  dan  menjadi bahasa pemrograman yang  popular dan  relatif  simple  untuk  dipelajari (Priyanto, n.d.).
Ide  penelitian  ini  muncul  dari permasalahan  yang  ada  pada mahasiswa yang mengikuti matakuliah  rumpun  komputasi  yang tersebar  dalam beberapa matakuliah yaitu  algoritma  pemrograman  yang menggunakan bahasa pemrograman java, metode numerik  menggunakan mathlab dan program komputer yang menggunakan  PHP  dan  HTML.  Dari ketiga  program  komputer  tersebut masing-masing  memiliki  ciri  yang berbeda  satu  sama  lain  sehingga tingkat  keterampilan,  penguasaan konsep  pemrograman  dan  motivasi mahasiswa terhadap bahasa pemrograman  tersebut  berbeda- beda.
Dari  hasil  pengamatan  dan wawancara  yang  peneliti  lakukan kepada  mahasiswa  didapatkan  data bahwa  mahasiswa  secara  umum masih  kesulitan  dalam  proses kodifikasi  program  (coding)  dari
pseudocode menjadi bahasa pemrograman.  Hal  ini  dikarenakan proses coding
membutuhkan ketelitian, kesabaran dan kemampuan berfikir  logika  yang  baik.  Disamping itu sebagian besar  mahasiswa Tadris Matematika sebelumnya berasal dari sekolah  non  vokasi  (SMA/MA) sehingga  mereka  masih  awam dengan beberapa program komputer
sehingga ketika pembelajaran praktikum di
laboratorium, mahasiswa  masih  takut  untuk mengeksplorasi  dan  mencoba-coba untuk  mengembangkan  diri  dalam menguasai  bahasa  pemrograman tersebut.  Sementara  matematika sebagai  sebuah  ilmu  eksak  yang berbasis  pada  perhitungan  dengan permasalahan  sederhana  hingga kompleks  (numerik)  sangat  erat kaitannya dengan
komputer, sehingga  peran  aplikasi  tersebut sangat  dibutuhkan  agar  penguasaan mahasiswa  terhadap  teori,  konsep dan  aplikasi  matematika  untuk menyelesaikan persoalan dapat dikuasai dengan baik.
Berdasarkan  evaluasi  yang  dilakukan kepada  mahasiswa  ketika  praktikum di  laboratorium,  diketahui  bahwa mahasiswa sering melakukan kesalahan  dalam  penulisan  program java.  Ada  dua  jenis  kesalahan  yang sering  dilakukan  yaitu  kesalahan logika  algoritma  dan  kesalahan penulisan sintaks. seringnya mahasiswa  melakukan  kesalahan  ini membuat  mereka  mengeluh  dan semangat  untuk  belajar  menurun, yang  pada  akhirnya  penguasaan konsep  algoritma,  keterampilan  dan kompetensi mahasiswa dalam pemrograman komputer belum
memenuhi  Capaian  Pembelajaran.

## Tinjauan Pustaka
1. Algoritma Pemrograman
Algoritma  adalah  langkah- langkah  yang  disusun  secara  tertulis sistematis untuk menyelesaikan suatu permasalahan.  Sementara  algoritma pemrograman adalah langkah- langkah yang ditulis secara berurutan untuk menyelesaikan masalah
dengan  komputer.  Para  ahli  sejarah matematika  menemukan  asal  kata
Ahmad Syamsudin
Algoritm  berasal  dari  nama  penulis buku  Arab  yang  terkenal  yaitu  Abu Ja’far  Muhammad  Ibnu  Musa  Al Khuwarizmi  yang  menulis  kitab Al Jabar  Wal-Muqabala  (the  book  of restoration  and  reduction)  (Kadir, 2005).
2. Penelitian Kualitatif
Sugiono  dalam  bukunya “Memahami  Penelitian  Kualitatif” menjelaskan bahwa metode penelitian kualitatif merupakan metode penelitian yang berlandaskan pada  filsafat  positivisme,  digunakan untuk  memeliti  pada  kondisi  obyek yang alamiah dimana peneliti adalah
sebagai instrumen kunci, pengambilkan  sampel  sumber  data dilakukan  secara  purposive  dan
snowball, teknik pengumpulan dengan  triangulasi,  analisis  data bersifat  induktif/kualitatif  dan  hasil penelitian kualitatif lebih fokus pada makna  dari  pada  generalisasi (Sugiono, 2005).
B. Metodologi Penelitian
1. Objek Penelitian
Penelitian  ini  dilakukan  kepada seluruh mahasiswa semester 3 Tahun angkatan  2019/2020  Program  Studi Tadris  Matematika  IAIN  Kediri  yang sedang mengambil matakuliah Algoritma  Pemrograman.  Adapun jumlah  mahasiswa  tersebut  terbagi menjadi  tiga  kelas  yang  masing- masing  terdiri  36  orang  kelas  A,  36 orang kelas B, dan 35 orang kelas C.
2. Teknik Pengumpulan Data
Dalam melaksanakan penelitian  ini,  akan  digunakan beberapa  teknik  dan  alat  untuk mengumpulkan  data  antara  lain wawancara
dengan
objek, pengamatan, studi pustaka dan data pendukung  yang  diambil  dari berbagai bahan pustaka seperti buku, jurnal  ilmiah  dan  situs  online  yang memiliki kredibilitas tinggi (Afifuddin & Saebani, 2012).
3. Teknik Analisis Data
Sugiono dalam bukunya “Memahami Penelitian  Kualitatif”  menjelaskan bahwa  metode  penelitian  kualitatif merupakan  metode  penelitian  yang berlandaskan pada filsafat
positivisme, digunakan untuk memeliti  pada  kondisi  obyek  yang alamiah  dimana  peneliti  adalah sebagai instrumen kunci, pengambilkan  sampel  sumber  data dilakukan  secara  purposive  dan
snowball, teknik pengumpulan dengan  triangulasi,  analisis  data bersifat  induktif/kualitatif  dan  hasil penelitian kualitatif lebih fokus pada makna  dari  pada  generalisasi (Sugiono, 2005).
Penelitian yang dilakukan ini termasuk  dalam  model  studi  kasus berupa penyimpangan dari kewajaran yang  bersifat  kuratif,  atau  lebih
dikenal
sebagai Studi Kasus
Retrospektif.  Dalam  (Rahardjo,  2017) dijelaskan  bahwa  jenis  penelitian kualitatif  seperti  ini  studi  kasus dilakukan  secara  ilmiah,  holistik  dan mendalam.  Teknik analisis data yang digunakan  adalah  model  Miles  dan Huberman (Miles & Huberman, 1992) yang  menjelaskan  bahwa  aktivitas dalam analisis data kualitatif dilakukan  secara  interaktif  dan berlangsung  secara  terus  menerus
hingga  tuntas.  Aktivitas  yang dilakukan  adalah  1) Data reduction : Data  yang  sudah  dikumpulkan  akan dirangkum,  dipilih  hal  yang  pokok, fokus  pada  hal  yang  penting,  dicari tema  dan  pola  dan  dibuang  yang tidak  perlu.  2)  Data  display:  setelah direduksi  data  akan  diolah  dan disajikan dalam bentuk uraian singkat atau  bagan.  3)  Conclusion  Drawing: adalah  penarikan  kesimpulan  dan verifikasi.  Kesimpulan  yang  dibuat bisa saja menjawab rumusan masalah atau mungkin tidak, tergantung pada perkembangan masalah.

## C. Hasil Penelitian
1. Model Kesalahan
Setelah  dilakukan  uji  dan evaluasi terhadap kemampuan mahasiswa  dalam  mengembangkan aplikasi menggunakan bahasa
pemrograman java, disini mahasiswa menggunakan  Apache  Netbeans  11 sebagai IDE ( Integrated Development Environment)  nya.  Setiap  error  yang terjadi selalu ditandai dengan prompt warna  merah  pada  baris  kode  yang salah. Setelah dilakukan analisis data
Ahmad Syamsudin
sesuai  dengan  model  Miles  & Huberman  didapatkan  data  sebagai berikut:
Kesalahan Sintaks ( syntax error)
a. Variabel:  error  yang  berkaitan
dengan  variabel  antara  lain penggunaan variabel yang belum
dideklarasikan, mengisi nilai variabel  dengan  tipe  data  yang berbeda dari deklarasi sebelumnya seperti menggunakan String  untuk  operasi  matematis dan penggunaan operasi matematis  yang  tidak  sesuai dengan tipe data seperti penggunaan integer untuk operasi pembagian akan menghasilkan  nilai  yang  kurang akurat,  karena  integer  hanya
dapat  digunakan  untuk  bilangan bulat.
Gambar 1: error variabel
b. Kurung  kurawal {} :  error  yang sering  terjadi  adalah  mahasiswa tidak  membuat  kurung  kurawal penutup  pada  sintaks  java  yang bangun baik pada class, function, operasi  perulangan  dan  operasi kondisi  seperti  contoh  gambar berikut ini
Gambar 2. Error kurung kurawal
c. Operator + untuk tanda sambung: error  ini  sering  terjadi  ketika mahasiswa  ingin  menampilkan hasil  dengan  menggabungkan string  dan  variabel,  mereka  lupa tidak  menambahkan  operator  + sebagai penyambung
Gambar 3. Operator
d. Error  dalam  mengakhiri  baris program:  Pada  kondisi  normal setiap  baris  dalam  java  selalu diakhiri dengan tanda titik koma ;
String nama=”roni”; //seharusnya “Nama: ”+nama System.out.println(“Nama: ”nama);
ini  yang  sering  dilupakan  oleh pemula dalam pemrograman java.
e. Lupa  mengimport  package:  error yang  muncul  bagi  mahasiswa biasanya  karena  mereka  lupa dalam mengimport package yang akan  digunakan  sebagai  method. Package  dalam  java  ini  adalah semacam library function dengan banyak tools untuk memudahkan programmer  membuat  sebuah aplikasi.
Kesalahan Logika ( logical error)
f. Kesalahan  pemahaman  antara operator  postfix  dan  prefix: operator  ini  berfungsi  untuk menambah atau mengurangi satu angka  dari  variabel  dengan perbedaan  pada  urutan  proses penjumlahannya
Gambar 4. Prefix dan postfix
Dari gambar diatas praktikan mengira hasil output x = 45 dan y = 46, padahal x dan y adalah 46 g. Kesalahan  input  data:  Kesalahan input  data  ini  biasanya  berupa konstanta dari sebuah rumus atau variabel  lain.  Program  dengan input  yang  salah  tidak  akan muncul prompt error, namun nilai perhitungan akan salah
Dari paparan diatas dapat
dikelompokkan  tujuh  model  eror dalam  penulisan  java  oleh  praktikan sebagai  berikut:1)  variabel,  2)  blok program  dengan  kurung  kurawal,  3) operator  +  untuk  menghubungkan string  dengan  variabel,  4)  ekspresi titik  koma,  5)  import  package,  6) operator  prefix  dan  postfix,  7)  input data. Setelah dilakukan reduksi data, dianalisis dan dapat dipaparkan data tentang  fekuensi  eror  setiap  kelas sebagai berikut:
Ahmad Syamsudin

## Gambar 5. Frekuensi Kesalahan
Dari  gambar  diatas  dapat  diketahui bahwa kelas B lebih sering lupa dalam memanggil package ketika penulisan
program dan secara umum mahasiswa  mulai  terbiasa  dalam menggunakan  ekspresi  titik  koma  ; pada setiap akhir baris kode.

## Gambar 6. Ranking Jenis Kesalahan
Sementara secara umum semua kelas paling  sering  melakukan  kesalahan dalam  penulisan  penutup  blok program  dalam  bentuk  kurung kurawal {}.

## D. Pembahasan
Dari  pemaparan  diatas,  observasi  di lab  dan  hasil  wawancara  dengan
subjek  penelitian,  peneliti  membagi faktor  yang  mempengaruhi  tingkat error tersebut sebagai berikut:
a. Keterampilan  dalam  komputer dasar yang masih kurang.
Beberapa  yang  termasuk  dalam kemampuan  komputer  dasar  ini adalah  Kemampuan  mengetik cepat dengan teknik 10 jari yang masih jarang dijumpai dari ketiga kelas tersebut, sementara keterampilan  mengetik  cepat adalah  skill  penting  yang  harus dikuasai oleh programmer. Namun skill ini dapat berkembang  dengan  cepat  jika mahasiswa sering berlatih membuat program. b. Mahasiswa  kurang  teliti  dalam penulisan  sintaks  program  java. Dalam setiap praktikum, praktikan  akan  diberikan  modul untuk  dipelajari  dan  dicontoh sebagai acuan untuk menyelesaikan  masalah  yang lebih kompleks. Dalam prosesnya program  java  memiliki  syarat penulisan  koding  yang  strict
termasuk case sensitive sehingga programmer dituntut untuk teliti dalam  penulisan  sintaks  java tersebut.
c. Belum adanya semangat kompetitif dikalangan mahasiswa dalam belajar algoritma pemrograman. Semangat kompetitif sangat penting dalam
sebuah  pembelajaran,  karena setiap  peserta  didik  akan  selalu terpacu  dan  termotivasi  untuk menjadi lebih baik satu sama lain.
d. Mayoritas  mahasiswa  belajar membuat  program  ketika  di laboratorium  saja.  Mereka  tidak berusaha  untuk  mempelajari secara mendalam dan menguasai secara penuh materi yang sudah dipelajari  sebelumnya.  Hal  ini terjadi  karena  rendahnya  tingkat kesadaran akan pentingnya belajar algoritma yang merupakan aplikasi dari teori dan konsep matematika yang mereka pelajari selama ini. Selain itu ada sebagian mahasiswa yang
memiliki  kesibukan  lain  diluar
kampus  seperti  berorganisasi, mengajar les private dan mengaji di pondok.
e. Mutu  isi  modul  atau  panduan praktikum yang terlalu tinggi dan relatif  sulit  untuk  dipahami  oleh mahasiswa sebagai pemula dalam  belajar  algoritma.  Konten dari  modul  masih  dipaparkan dengan  banyak  sintaks  namun minim  penjelasan  dalam  setiap baris kodenya, sehingga mahasiswa belum mampu mensintesa konsep dan ide baru untuk menyelesaikan problematika dengan pemrograman. f. Materi perkuliahan algoritma dan pemrograman java belum memiliki korelasi secara langsung terhadap  materi  perkuliahan matematika yang sudah dipelajari oleh mahasiswa. Hal ini menyebabkan mahasiswa kurang termotivasi  untuk  mempelajari algoritma karena mereka merasa bahwa  algoritma  pemrograman yang  dipelajari  tidak  memiliki
Ahmad Syamsudin
manfaat  dan  pengaruh  bagi perkembangan pembelajaran
matematika yang mereka geluti.
2. Solusi  yang  Dilakukan  Untuk Mengatasi  Kesalahan  Penulisan Sintaks Java
dari  beberapa  faktor  tersebut  dapat ditemukan  solusi  dari  permasalahan yang ada sebagai berikut:
a. Fasilitas  dan  sarana  pendukung dari  institusi  terkait  dengan praktikum komputer sudah bagus. Jumlah komputer sebanyak 60 unit yang didukung dengan  internet  dan  spesifikasi
komputer  Core  i3,  cukup  untuk memenuhi  kebutuhan  praktikum mahasiswa.
b. Memberikan  tugas  rumah  setiap pertemuan.  Agar  mahasiswa semakin  mahir  dan  terampil dalam  membuat  program,  perlu adanya  model  tugas  yang berorientasi  pada  hasil  berupa
produk program setiap pertemuan  sesuai  dengan  tema
pembelajaran yang diberikan.
c. Membuat  materi  algoritma  yang relevan  dengan  materi  kuliah matematika  yang  lain.  Untuk meningkatkan minat dan
semangat  mahasiswa  dalam belajar  algoritma  pemrograman, sebaiknya  pembahasan  setiap tema  dikaitkan  dengan  problem matematika  seperti  matakuliah matematika  diskrit,  aljabar  linier, metode  numerik  dan  metode statistika.
Dengan begitu mahasiswa  akan  memahami konsep  dari  teori  matematika tersebut untuk dikonversi menjadi  algoritma  sehingga kemampuan mahasiswa terhadap penguasaan  teori  matematika semakin baik.
d. Mendesain  model  perkuliahan yang  kooperatif  dan  kompetitif.
Dosen  perlu  untuk  melakukan evaluasi terhadap model pembelajaran algoritma pemrograman  yang  selama  ini sudah  diterapkan.  Salah  satunya dengan menerapkan model pembelajaran  kooperatif  dan
kompetitif.  Model  pembelajaran
kooperatif  dilakukan  dengan
mengelompokkan mahasiswa menjadi beberapa kelompok dan mengarahkan masing-masing kelompok untuk saling berkompetisi untuk menyelesaikan  suatu  problem bersama-sama.

## E. Kesimpulan
Berdasarkan  penelitian  yang telah  dilakukan,  maka  dapat  ditarik
kesimpulan sebagai berikut:
1. Kesalahan  penulisan  algoritma pemrograman  java  pada  program studi tadris matematika iain kediri adalah:
a. Berbagai kesalahan yang muncul karena cara penggunakan  variabel  yang
salah.
b. Lupa  menutup  blok  program dengan kurung kurawal,
c. Lupa  menambahkan  operator +  untuk  menghubungkan string dengan variabel,
d. Lupa  menambahkan  ekspresi titik  koma  di  akhir  baris program,
e. Lupa melakukan import package,
f. Kurang  memahami  operator prefix dan postfix,
g. Salah melakukan input data
Solusi  yang  diperlukan  untuk mengatasi  masalah  tersebut  adalah dengan  memberikan  tugas  setiap pertemuan, mengaitkan materi perkuliahan  dengan  matakuliah  lain dan mendesain metode pembelajaran kooperatif dan kompetitif

## Daftar Pustaka
Afifuddin,  &  Saebani,  B.  A.  (2012). Metodologi  Penelitian  Kualitatif.  Bandung: Pustaka Setia.
Barnes, D. J., Fincher, S., & Thompson, S. (1997). Introductory Problem Solving in Computer  Science. 5th  Annual  Conference  on  Teaching  Of  Computing (Pp.36-39), 5. Dublin, Ireland: Dublin City University.
Ahmad Syamsudin
Duschl,  R.  (2008).  Science  Education  in  Three-Part  Harmony:  Balancing Conceptual, Epistemic, and Social Learning Goals. Review of Research in Education, 32(1), 268 – 291. https://doi.org/10.3102/0091732X07309371 Hamalik, O. (1994). Media Pendidikan. Bandung: Cipta Aditya Bakti. IAIN Kediri, B. A. (2018). Pedoman Akademik Program Studi Strata Satu IAIN Kediri 2018/2019. Kediri: IAIN Kediri.
Kadir,  A. (2012). Algoritma dan Pemrograman Menggunakan Java. Yogyakarta:
Andi.
Kadir,  A.,  &  Heriyanto.  (2005). Algoritma  Pemrograman  Menggunakan  C++. Yogyakarta: C.V ANDI OFFSET.
McIntosh,  R.,  &  Janet,  D.  (2000). Teaching  Mathematical  Problem  Solving: Implementing the Vision. New York: NWREL.
Miles,  M.  B.,  &  Huberman,  A.  M.  (1992). Analisis  Data  Kualitatif:  Buku  Sumber Tentang Metode-Metode Baru. Jakarta: UI-Press.
Murdiana,  I.  N.  (2015).  PEMBELAJARAN  PEMECAHAN  MASALAH  DALAM PEMBELAJARAN  MATEMATIKA. Aksioma  Jurnal  Pendidikan  Matematika, 4(1), 11.
Polya, G. (1957). How To Solve It “A New Aspect Of Mathematical Method” (2nd ed.). New York: Princeton University Press.
prayoga,  cepi. (n.d.). 10 Tips Dasar untuk Menjadi Android Developer. Retrieved
November 29, 2019, from CodePolitan.com website: https://www.codepolitan.com/10-tips-dasar-untuk-menjadi-android- developer-598d72131d1df Priyanto,  A.  (n.d.).  10  Bahasa  Pemrograman  Populer  di  Indonesia.  Retrieved November 21, 2019, from CodePolitan.com website: https://www.codepolitan.com/10-bahasa-pemrograman-populer-di- indonesia
Rahardjo,  M.  (2017). STUDI  KASUS  DALAM  PENELITIAN  KUALITATIF:  KONSEP DAN PROSEDURNYA. UIN Maulana Malik Ibrahim Malang. Sugiono. (2005). Memahami Penelitian Kualitatif. Bandung: CV. Alfabeta.