desain algoritma pemecahan operasi dasar aritmatika dan ...

44 downloads 219 Views 271KB Size Report
Departemen Teknik Elektro, IT Telkom Bandung. Email: [email protected] ... mampu membuat soal secara mandiri, mencocokkan jawaban pemakai dan ...
Seminar Nasional Aplikasi Sains dan Teknologi 2008 – IST AKPRIND Yogyakarta

DESAIN ALGORITMA PEMECAHAN OPERASI DASAR ARITMATIKA DAN IMPLEMENTASINYA MENGGUNAKAN PASCAL Burhanuddin D Departemen Teknik Elektro, IT Telkom Bandung Email: [email protected]

ABSTRACT Arithmatic expression must be understood by programmers, even novice ones. In many case, novice programmers do not understand about the rule of arithmatic expression, especially because of div and mod operators. This paper will describe the process of algorithm design dan implementation. The algorithm can be able to solve arithmatic expression, make an expression by it self, compare the answer with the solution dan describe the process to find the solution. Keyword: arithmatic expression, arithmatic operators, programming INTISARI Ekspresi aritmatika merupakan suatu hal yang harus dipahami oleh semua pemrogram, bahkan pemrogram pemula. Sering terjadi, pemrogram pemula kesulitan untuk memahami aturan ekspresi aritmatika, khsususnya karena adanya operator div dan mod. Penelitian ini mencoba untuk merancang dan mengimplentasikan sebuah algortima dalam memecahkan ekspresi aritmatika, mampu membuat soal secara mandiri, mencocokkan jawaban pemakai dan menjelaskan jawaban secara bertahap. Kata kunci: ekspresi aritmatika, operator aritmatika, pemrograman

PENDAHULUAN Operasi aritmarika merupakan operasi dasar matematika. Operasi ini diajarkan pada tingkat sekolah dasar, yang terus dipergunakan sampai akhir hayat. Dalam pengajaran pemrograman, operator dasar aritmatika (+, -, x dan /) ditambah dengan dua operator, yaitu hasil pembagian (div) dan sisa pembagian (mod). Penambahan kedua operator ini dalam kenyataannya tidak dapat segera dipahami dengan mudah oleh siswa/mahasiswa yang baru belajar memprogram. Untuk itu, program alat bantu pemahaman operasi aritmatika layak untuk dibuat. Pembuatan program bantu ini diawali dengan pembuatan algoritma, yang dapat memecahkan solusi operasi aritmatika. Program diharapkan dapat berdiri secara mandiri, dalam arti dapat membuat soal, mencocokkan jawaban dan menjelaskan tahapan dalam penyelesaian soal. Semua dilakukan oleh program sendiri, tanpa bantuan orang lain. Pemakai memilih mode program berdasarkan keinginannya sendiri. Dengan program ini, siswa/mahasiswa yang masih perlu belajar operasi dasar aritmatika dapat terbantu dan menggunakannya jika belum menguasai. Program bantu diharapkan juga dapat dimodifikasi sesuai dengan level pemakai. Karena itu, penjelasan singkat mengenai algortima yang dipakai diharapkan dapat membantu proses modifikasi tersebut. Program bantu operasi aritmatika dibuat sebagai sarana belajar mandiri, yang tidak perlu bantuan guru untuk mengoperasikannya. Program juga diharapkan tidak perlu menyimpan basisdata soal, sehingga tidak perlu proses upgrade soal. Selain itu, program juga mampu menilai dan menjelaskan jawaban yang diberikan oleh pemakai. Secara teknis, spesifikasi program sebagai alat bantu pengajaran dapat dituliskan sebagai berikut: 1. Mampu membuat soal secara mandiri 2. Mampu menilai jawaban angka akhir dari soal yang dibuat, 3. Mampu menerangkan langkah demi langkah secara sederhana jawaban dari soal Dalam membuat soal, program diharapkan dapat menentukan angka-angka dan operator pada suatu ekspresi aritmatika. Tiap kali program membuat soal, maka nilai bilangan dan operator untuk ekspresi aritmatika tersebut hampir selalu berbeda. Nilai bilangan dan operatornya ditentukan secara acak. Hal ini perlu dilakukan agar soal yang dibuat tidak dapat dihafalkan oleh pemakai. Ketika pemakai menggunakan program ini, setiap kali muncul soal yang dikerjakan, pemakai harus memasukkan jawaban untuk ekspresi aritmatika tersebut. Program dapat menetukan bahwa

59

Seminar Nasional Aplikasi Sains dan Teknologi 2008 – IST AKPRIND Yogyakarta

jawaban pemakai betul, jika nilai yang dimasukkan sama dengan hasil perhitungan program, Jika tidak, maka program dapat menilai bahwa jawaban dari pemakai adalah jawaban yang salah. Sebagai alat bantu pengajaran, program juga dapat menjelaskan tahap-tahap untuk mendapatkan jawaban yang benar. Hal ini penting mengingat pada umumnya untuk memahami suatu ekspresi aritmatika, seseorang diharapkan dapat mengerjakan tahap-tahap yang terstruktur. Selain itu, sebagai alat untuk mempelajari operasi aritmatika, program juga diharapkan: 1. Mengerti urutan operasi aritmatika 2. Mengerti tipe operand dan hasil dari operasi aritmatika 3. Dapat memberikan pesan kesalahan jika ekspresi aritmatika tidak valid Urutan operasi aritmatika harus sesuai dengan aturan standar, yaitu: 1. Kali (*), bagi (/), hasil bagi (div) dan sisa bagi (mod) merupakan operator yang memiliki urutan lebih tinggi dari tambah (+) dan kurang (-). 2. Kali (*), bagi (/), hasil bagi (div) dan sisa bagi (mod) sejajar. Demikian juga dengan tambah (+) dan kurang (-). 3. Untuk operator yang sejajar, jika muncul secara berurutan, maka operasi dilakukan berdasarkan kemunculan yang dimulai dari kiri. Sebagai contoh, jika terdapat suatu ekspresi: 1 + 2 – 3 * 4 div 5 mod 6 / 7 maka, urutan operasi adalah: 1. 1+2, hasilnya disebut sebagai Hasil1 2. 3 * 4, hasilnya disebut Hasil2 3. Hasil2 dioperasikan dengan div 5, hasil disebut dengan Hasil2 4. Hasil2 dioperasikan dengan mod 6, hasil disebut dengan Hasil2 5. Hasil2 dibagi 7, hasil disebut dengan Hasil2 6. Hasil1 dikurangi dengan Hasil2, ditemukan hasil akhir Untuk penentuan tipe operand dan hasil, yang diperlukan untuk pemahaman konsep pemrograman, terdapat aturan baku sebagai berikut: 1. Operasi (*), (+), dan (-) dapat memiliki operand bertipe integer atau real. Sedangkan hasil operasi sesuai dengan tipe operand tersebut, dengan catatan jika salah satu operand bertipe real, maka hasil operasi juga bertipe real. 2. Operasi (/) dapat memiliki operand bertipe integer atau real, namun selalu menghasilkan nilai bertipe real. Operator ini akan menghasilkan kesalahan jika operand kedua memiliki nilai nol. 3. Operasi (div) dan (mod) harus memiliki operand yang semuanya bertipe integer, dan akan menghasilkan nilai yang bertipe integer juga. 4. Jika tipe operand tidak sesuai, maka akan terjadi kesalahan (error) terhadap oprasi tersebut. Pesan kesalahan ini juga dapat ditampilkan sebagai hasil dari ekspresi aritmatika yang dihasilkan oleh program. Jika ekspresi ternyata menghasilkan kesalahan semacam ini, maka pemakai akan memasukkan jawaban ‘Error’ dan program akan memberikan nilai benar.

HASIL DAN PEMBAHASAN Desain Algoritma Program bantu dirancang dengan 2 spesifikasi, yaitu sebagai perangkat bantu pengajaran dan operasi aritmatika. Kedua spesifikasi tersebut akan dibuat terpisah, dan kemudian digabung dalam sebuah program. Program utama akan berisi hal-hal berkenaan dengan perangkat bantu pengajaran, sedangkan ekspresi aritmatika dibuat sebagai suatu fungsi. 1. Algoritma perangkat ajar Algortima perangkat ajar dibuat untuk menangani beberapa tugas. Tugas-tugas tersebut adalah: membuat soal secara acak, menampilkan soal, meminta jawaban dari soal, mencocokkan dengan jawaban, dan menerangkan pemecahan jawaban soal tahap demi tahap. a. Pembuatan soal Soal dibuat dengan model ekspresi aritmatika sebagai berikut: Bil1 Opr1 Bil2 Opr2 Bil3 Opr3 Bil4 Opr4 Bil5, Jumlah operand dan operator pada dasarnya dapat dilakukan dengan jumlah tak terbatas, namun untuk pembelajaran, 5 buah bilangan dengan 4 buah operator dirasa cukup memadai.

60

Seminar Nasional Aplikasi Sains dan Teknologi 2008 – IST AKPRIND Yogyakarta

Semua operator merupakan operator biner, mengingat tidak banyak operator uner yang tersedia. Algoritma pembuatan soal dimulai dengan pemilihan tipe operand. Dari keenam operator, tipe hasil operasi tergantung pada tipe operand-nya, kecuali operasi pembagian yang selalu menghasilkan tipe real. Dengan pertimbangan bahasa pemrograman yang digunakan, Pascal, menggunakan aturan tipe real bisa diisi dengan bilangan bertipe integer, maka variabel operand dipilih bertipe real. Bilangan-bilangan operand dan operator dibuat dalam sebuah array, untuk memudahkan pelaksanaan operasi. Operand memiliki dua komponen, yaitu komponen harga dan komponen tipe. Komponen tipe digunakan untuk menjelaskan tipe dari komponen harga. Hal ini digunakan pada kasus harga bilangan adalah bilangan bulat, namun merupakan hasil dari operasi pembagian, misal 4=8/2. Dengan demikian, deklarasi operand dan operator adalah: type Bilangan = record Angka: real; Tipe: integer; end; Bil: array [1..5] of Bilangan; Opr: array[1..4] of integer; Tipe operator adalah integer, yang merupakan kode bilangan dari operator-operator yang digunakan. Tipe ini mudah untuk dioperasikan, dibanding jika menggunakan tipe string, misalnya. Selanjutnya, pembuatan nilai-nilai operand dan operator dengan menggunakan fungsi random(). for i:=1 to JmlOpr do begin j:=random(10); Bil[i].Angka:=j; Bil[i].Tipe:=1; k:=random(5); Opr[i]:= k; End; Tipe untuk semua bilangan pada awalnya dibuat integer, dengan kode 1. Sedangkan operatornya bebas, dengan kode antara 0 sampai 5, yang mewakili +,-,*,/,div dan mod. b. Penampilan soal Soal yang dibuat dalam bentuk kode, harus ditampilkan sesuai dengan ekspresi yang lazim digunakan manusia. Secara sederhana, penampilan soal memanfaatkan variabel bertipe string, untuk membentuk soal lengkap. for i:=1 to JmlOpr do begin Str(Bil[i].Angka,Str1); StrOut:=StrOut+Str1; case Opr[i] of 0: StrOpr:= ' + '; 1: StrOpr:= ' - '; 2: StrOpr:= ' * '; 3: StrOpr:= ' / '; 4: StrOpr:= ' div '; 5: StrOpr:= ' mod '; end; StrOut:= StrOut+StrOpr; end; Bilangan operand, mengingat bertipe asalnya real, sebaiknya dapat ditulis seperti bilangan integer. Hal ini dapat dilakukan dengan menggunakan fungsi internal trunc(): if (trunc(abs(Bil[i].Angka))