Mungkin gara-gara gak tahu. (Larik Pascal)

Kehabisan akal, program lulus compile tetapi output salah. Ini terjadi saat praktikum PTI.
Permasalahan sebenarnya sangat sederhana, hanya mencari jumlah total nilai dari Array (Larik). namun mungkin karena ketidaktahuan sebelumnya, hal sepele ini jadi masalah yang tidak biasa.

Dengan sedikit eksperimen yang memakan cukup banyak waktu, akhirnya masalah ini terselesaikan.
Awalnya ada sebuah array of real disinialisasilan bernilai A[1..100] dan anggap sudah terisi, aku berpikir indeks A dimulai dari 1, memang benar indeks array dimulai dari 1. Namun apa yang terjadi ketika ada sebuah fungsi misalkan SUM(T : array of real) : real; lalu dilakukan pemangilan SUM(A); , ternyata pemikiran ini salah. Yang terjadi adalah didalam fungsi SUM, pada dasarnya array T isinya berasal dari array A dengan kata lain T = A, namun ada yang berbeda yaitu indeks awal dari array T. Pada array T indeks awal berubah menjadi 0. jadi nol??? Mengapa? idk. -_-

Lihat analogi dibawah

Array A
indeks 1  2  3  4  5  6  7  8  9  10
nilai     5  2  3  5  7  8  9  0  9  3

jika dilakukan pemanggilan SUM(A)
maka didalam fungsi SUM array T menjadi

Array T
indeks 0  1  2  3  4  5  6  7  8  9  10
nilai     5  2  3  5  7  8  9  0  9  3  –

Hal inilah yang menyebabkan perhitungan menjadi salah, karena asumsi awal, indeks dimulai dari 1 tetapi, didalam fungsi ternyata indeks dimulai dari 0, maka
jika didalam fungsi menggunakan statement dibawah
for i:= 1 to N do jumlah := jumlah + T[i];
potongan diatas hanya akan menjumlahkan nilai array A dari indeks 2 hingga N+1 , dimana indeks N+1 tidak didefenisikan, indeks N+1 akan dianggap bernilai default oleh array T sehingga pada akhirnya penjumlahan diatas hanya menghitung
SUM = A[2] + A[3] + … + A[N]
array A[1] kemana ? => hilang? o.O

Siapa yang salah ? disini diajarkan dan disarankan array dimulai dari 1, maka dari itu biasakanlah menggunakan array dengan indeks awal dari 0 (nol).

Selamat praktikum !

This entry was posted in Kampusku and tagged , , , , , , , , , . Bookmark the permalink.

3 Responses to Mungkin gara-gara gak tahu. (Larik Pascal)

  1. Whahaha, permasalahan yang sama yang aku hadapi saat praktikum kemarin dan aku belum menemukan jawabannya saat akhir dari praktikum T.T
    Btw, it’s nice post 🙂

  2. Sarumpun says:

    Ini kalo dipraktekan ke bahasa pemrograman apa mas ?

Leave a Reply to Evan Febrianto Cancel reply

Your email address will not be published. Required fields are marked *