• Tidak ada hasil yang ditemukan

DESAIN ALGORITMA PEMECAHAN OPERASI DASAR ARITMATIKA DAN IMPLEMENTASINYA MENGGUNAKAN PASCAL

N/A
N/A
Protected

Academic year: 2021

Membagikan "DESAIN ALGORITMA PEMECAHAN OPERASI DASAR ARITMATIKA DAN IMPLEMENTASINYA MENGGUNAKAN PASCAL"

Copied!
6
0
0

Teks penuh

(1)

DESAIN ALGORITMA PEMECAHAN OPERASI DASAR ARITMATIKA DAN

IMPLEMENTASINYA MENGGUNAKAN PASCAL

Burhanuddin D

Departemen Teknik Elektro, IT Telkom Bandung Email: brh@stttelkom.ac.id

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

(2)

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.

(3)

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():

(4)

write(Bil[i].Angka:2:2,' ') else write(trunc(Bil[i].Angka),' ');

Penggunaan fungsi abs() di atas disebabkan dalam beberapa kasus dihasilkan nilai negatif, sehingga nilai integernya lebih besar dari nilai realnya. Dengan pemakaian fungsi ini, penulisan nilai integer negatif tidak dilukan jika ternyata nilai tersebut memiliki bagian desimal yang tidak sama dengan nol.

Penulisan soal ini, karena akan dipakai juga untuk menuliskan sisa ekspresi setelah dilakukan satu atau lebih operasi, maka dibuat sebagai suatu prosedur tersendiri. Dalam prosedur tersebut, cara menulis soal dilakukan dengan menulis bilangan dan operator berselang-selang, sesuai jumlah operatornya.

c. Meminta jawaban soal dan mencocokkan

Tahap ketiga dari perangkat ajar ini ialah pemasukan jawaban soal. Dalam hal ini, pemakai memasukkan suatu jawaban, yang akan dibaca oleh program dalam tipe string. Tipe jawaban adalah string, karena dalam beberapa kasus ekspresi akan menghasilkan pesan kesalahan (’Error’). Jawaban ’Error’ ini juga harus dapat dibaca oleh program, untuk mendapatkan hasil ekspresi yang sesuai.

Dalam banyak kasus, jawaban dari soal adalah sebuah nilai pecahan. Karena semua jawaban pemakai dianggap bertipe string, maka untuk jawaban pecahan ini harus menggunakan titik (.) sebagai pengganti koma (,) dalam bahasa Indonesia, dan memiliki dua angka desimal. Dengan demikian, jika hasil ekspresi adalah ’2.50’, maka pemakai akan dinilai salah jika memasukkan nilai ’2.5’ atau ’2.500’.

Jawaban dari pemakai kemudian dicocokkan dengan jawaban program. Hal ini dilakukan dengan cara memanggil fungsi operasi aritmatika. Jika jawaban sama, maka akan diberikan pesan ’Betul’, dan jika tidak sama akan muncul pesan ’Salah’.

OpNum(2,4,Hasil); readln(StrBil); if StrBil=Hasil then writeln('Betul') else writeln('Salah'); d. Penjelasan soal secara bertahap

Penjelasan soal dilakukan dengan menampilkan hasil operasi tahap demi tahap, dengan memanggil fungsi operasi aritmatika dengan masukan jumlah operator yang makin berkurang. Jika ada 4 operator, maka tampilan ekspresi berikutnya adalah ekspresi dengan 3 operator. Selanjutnya 2 operator, lalu 1 operator dan kemudian hasil akhirnya. Misal, ekspresi adalah:

5 + 1 – 9 * 5 div 0

maka akan muncul penlejasan sebagai berikut: Kerjakan ekspresi: 5 + 1 = 6 (integer) = 6 – 9 * 5 div 0

Kerjakan ekspresi: 9 * 5 = 45(integer) = 6 – 45 div 0

Kerjakan ekspresi: 45 div 0 = Error: Pembagian dengan nol !

Jika soal yang dimunculkan tidak meada kesalahan, maka akan didapatkan hasil akhir yang benar.

e. Algortima prosedur ekspresi aritmatika

Prosedur ekpresi aritmatika merupakan inti dari program ini. Prosedur ini bertugas untuk menyelesaikan ekspresi aritmatika, dengan urutan yang sesuai.

f. Penentuan Tipe hasil

Suatu ekspresi aritmatika akan menghasilkan nilai dengan tipe tertentu, yang menentukan apakah operasi berikutnya merupakan ekspresi yang valid. Penentuan tipe hasil, dengan asumsi tipe operand awal adalah integer, akan menghasilkan tipe integer. Pengecualian

(5)

dilakukan jika dalam perjalanannya menuju hasil akhir, ternyata didapatkan hasil bertipe real. Jika suatu nilai bertipe real, maka hasil operasi dengan bilangan tersebut juga akan bertipe real.

if ((Bil[i].Tipe=2) or (Bil[i+1].Tipe=2)) then Bil[i].Tipe:=2;

Selain itu, sesuai dengan aturan dasar, maka hasil dari operasi pembagian akan menghasilkan nilai bertipe real.

if Opr[i] = 3 then Bil[i].Tipe:= 2;

Untuk semua operasi yang berdasar pada pembagian (div, mod atau /), maka operand kedua tidak boleh nol.

if Bil[i+1].Angka=0 then begin

hasil:='Error';

writeln('Error: Pembagian dengan nol'); end;

Jika pesan kesalahan ini muncul, maka program akan dihentikan. g. Penentuan urutan operasi

Perhitungan hasil ekspresi aritmatika dilakukan dengan algortima sebagai berikut: a. Lihat operator pertama

1). Jika merupakan salah satu operator dari {*,/, div dan mod}, lakukan operasi dari dua bilangan pertama

2). Jika tidak, lihat operator kedua:

a). Jika operator kedua merupakan salah satu operator dari {*,/, div dan mod}, lakukan operasi dari bilangan kedua dan ketiga

b). Jika tidak, lakukan operasi dari dua bilangan pertama b. Untuk operasi selanjutnya, reduksi jumlah operand dan operator

1). Operand berkurang satu, yaitu operand dari ekspresi yang dikerjakan sebelumnya menjadi hasil operasi

2). Operator berkurang satu: operator dari ekspresi yang dikerjakan sebelumnya dihilangkan

3). Geser agar indeks operand dan operator mulai dari 1 lagi c. Ulangi langkah (1) dan (2) sampai hanya tinggal 1 operator saja d. Lakukan operasi untuk ekspresi terakhir

2. Implementasi dan Pengujian Program

Dalam mengimplementasikan algoritma, digunakan Pascal for Windows versi 1.2. Beberapa hal yang dilakukan adalah:

a. Implementasi Modul Fungsional, yaitu membuat prosedur yang digunakan untuk implementasi algortima. Terdapat 3 buah prosedur, yaitu:

1). Prosedur TulisPers, untuk menulis persamaan

2). Prosedur PilihOpr, untuk melakukan perhitungan operasi sesuai dengan operator, dan 3). Prosedur OpNum, untuk operasi numerik yang akan memanggil PilihOpr dan

TulisPers

TulisPers digunakan pertama kali untuk menampilkan soal. Selanjutnya, dia akan digunakan jika pemakai memilih mode penjelasan soal secara bertahap.

Pada implementasi ini, digunakan sebuah label Out yang diletakkan pada akhir dari prosedur OpNum. Label ini akan dituju, jika pada saat operasi ternyata hasil yang dilakukan menghasilkan nilai kesalahan (’Error’), karena ekspresi tidak valid atau pembagian oleh bilangan nol.

b. Pengujian program

Program diuji menggunakan beberapa skenario, untuk melihat jalan tidaknya fungsi-fungsi dari program.

(6)

1). Pengujian operasi aritmatika

Pengujian dilakukan dengan memaksa prosedur OpNum dengan masukan-masukan tertentu. Masukan ini terdiri dari nilai-nilai sederhana untuk operand dan kode-kode untuk operator. Dari hasil pengujian, didapat hasil seperti Tabel 1.

Tabel 1: Hasil pengujian operasi aritmatika

Hasil

pengujian memberikan kesimpulan bahwa operasi dapat dijalankan dengan baik. 2). Pengujian fungsi alat bantu pengajaran

Pengujian program sebagai alat bantu pengajaran dilakukan dengan menjalankan beberapa fungsi sebagaimana Tabel 2.

Tabel 2: Pengujian fungsi alat bantu pengajaran

No Fungsi Hasil Catatan

1 Pembuatan soal Soal dengan operand dan operator acak

Setiap kali membuat soal, didapat soal yang berbeda

2 Hasil akhir soal Hasil sesuai dengan aturan Termasuk menghasilkan pesan ’Error’ 3 Pencocokan jawaban Memberikan pesan ’Betul’ atau

’Salah’ Untuk bentuk real, jawaban harus dimasukkan menggunakan titik. Error harus ditulis ’Error’ 4 Penjelasan solusi Tahapan bisa diberikan dengan

menampilkan hasil ekspresi setelah operasi dilakukan

Pengujian program tersebut telah sesuai dengan spesifikasi awal sebagai program untuk membantu proses pembelajaran operasi aritmatika.

c. Tampilan running program

Program dijalankan pada lingkungan Windows, mengingat Pascal yang digunakan adalah Pascal for Windows versi 1.2. Hasil tampilan lengkap untuk mode soal otomatis adalah seperti Gambar 1.

No Oprd1 Opr Oprd2 Hasil

1 Bil≠0, Integer Semua Bil≠0, Integer Sesuai aturan

2 Bil=0 Semua Bil≠0,Integer Sesuai aturan

3 Bil≠0 +,-,* Bil=0 Sesuai aturan

4 Bil≠0 /,div,mod Bil=0 Error, sesuai aturan

5 Bil≠0, Real +,-,*,/ Bil≠0, Real / Integer Sesuai aturan 6 Bil≠0, Real Div, mod Bil≠0, Real / Integer Error, sesuai aturan 7 Bil≠0, Integer Div, mod Bil≠0, Real / Integer Error, sesuai aturan

Gambar

Tabel 1: Hasil pengujian operasi aritmatika

Referensi

Dokumen terkait

[r]

The AGCJC will support the Annual Events of the AGCs of Brunei Darussalam, Malaysia and Singapore and shall in particular-.. a. organize programs for the Annual events of the AGCs

Tujuan penelitian ini adalah untuk mengidentifikasi gambaran pengetahuan ibu mengenai sibling rivalry pada anak usia toddler di Kelurahan Cikutra Kecamatan

Sumbangan Pihak Ketiga kepada Pemerintah Daerah yang selanjutnya disebut Sumbangan adalah Pemberian pihak ketiga secara ikhlas / sukarela, tidak mengikat, yang

Asuhan Keperawatan Keluarga Aplikasi dan Praktik Diperoleh pada website http://repository.upi.edu pada tanggal 10 Juli 2015.. Suherman,

Keberhasilan dalam proses pembelajaran biasanya tercermin dari hasil evaluasi baik yang bersifat hasil tes maupun observasi proses pembelajaran itu

Pinjaman Dana Bergulir kredit usaha adalah dana Pemerintah Daerah atau Pemerintah yang berasal dari Anggaran Pendapatan dan Belanja Daerah (APBD) Kabupaten Banjar

Dalam rangka meningkatkan kualitas Output yang akan digunakan dalam penyusunan RKA-K/L, rumusan Output yang sudah ditetapkan saat ini dapat dilakukan perubahan atau