mencari nilai modus suatu data menggunakan turbo pascal
TRANSCRIPT
Mencari Nilai suatu Modus Menggunakan TPW
Program diatas merupakan program mencari nilai modus
Berikut proses yang dilakukan komputer saat program di atas di-run :
Pertama-tama setelah program di atas di-run maka komputer akan menampilkan kalimat “ masukkan banyak data : “ , kemudian komputer menunggu input data dari user yang ditandai dengan kursor aktif dan setelah itu komputer akan melakukan proses looping terhadap formula “ for i:=1 to n do “ hingga “ end; .“
{note : misalkan n=3 , x[1]= 3 ; x[2] = 2 ; x[3]= 3 }
Proses looping tersebut ialah sebagai berikut.
For i=1, maka
Komputer akan menampilkan kalimat “ data ke-1 : “
Kemudian komputer akan menampilkan kalimat yang sama untuk i dengan nilai berbeda.
Contoh :
N = 3, x[1]= 3 ; x[2] = 2 ; x[3]= 3
C : Qonitha Amalia, Pendidikan Matematika 2014 Universitas Sriwijaya
For i:=1 to n do, artinya
For 1 to 3 do { untuk 1 sampai 3 laksanakan}
Maka selanjutnya komputer akan menampilkan
data ke-1 : {kursor aktif}
Setelah user meng-input data pada kursor aktif maka komputer akan menghitung frekuensi masing masing data ,begitu pula proses selanjutnya
data ke-1 : 3
data ke-2 : 2
data ke-3 : 3
Kesimpulan
Anda akan mendapatkan tampilan sebagai berikut ketika coding tersebut success di-run.
Masukkan banyak data: 3
data ke-1 : 3
data ke-2 : 2
data ke-3 : 3
Dan yang terdapat didalam memori komputer adalah :
fx[1] = 1
fx[2] = 1
fx[3] = 1
Menurut coding di atas, komputer tidak akan menampilkan sebuah tulisan apapun dilayar monitor, namun coding di atas meng-isyaratkan bahwa komputer melakukan proses looping.
For i:=1 to n-1 do
Misalkan n=3, maka n-1 = 3-1 = 2 ,
For 1 to 2 do
For i =1 , j = i + 1 = 1+1 = 2 ; for i=2, j = 2+1 = 3
C : Qonitha Amalia, Pendidikan Matematika 2014 Universitas Sriwijaya
Maka proses loopingnya adalah
Untuk i bernilai 1
- x[1] = x [2]
komputer akan memeriksa apakah data ke-1 sama dengan data ke 2 di memori, jika iya maka berlaku conditional diatas , jika tidak maka diabaikan saja.
Input data di dalam memori ialah x[1]= 3 dan x[2] = 2 , artinya x[1] tidak samadengan x[2], dan conditional if then di atas diabaikan.
- x[1] = x[3]
di dalam memori, x[1]= 3 dan x[3]= 2, artinya x[1] = x[3], dan berlaku conditional if then di atas.
If x[1] = x[3] then f x[1]=1=1 =2
Mengapa Fx[1]=2 ? karena didalam memori telah tersimpan bahwa fx[1]=1, ketika meng- update fx[1] maka didapatkan bahwa fx[1] + 1 = 1+1 , artinya fx[1] = 2 setelah di-update.
Untuk i bernilai 1 cukup sampai 2 kali looping.
Untuk i bernilai 2
- x[2] = x[3]
di memori x[2] = 2 dan x[3]=3 , maka x[2] tidak samadengan x[3] dan conditional diabaikan. Untuk i bernilai 2 hanya terjadi 1 kali looping. Karena sesuai dengan nilai i dan j yang telah disepakati diatas.
Data ter-update dalam memori :
fx[1] = 2
fx[2] = 1
fx[3] = 1
C : Qonitha Amalia, Pendidikan Matematika 2014 Universitas Sriwijaya
For i:=1 to n do
For 1 to 3 do
If fx[i] > ftinggi then ftinggi:=fx[i]
Artinya jika fx[i] lebih besar ftinggi maka ftinggi sama dengan fx[i] tersebut.
Proses loopingnya sebagai berikut.
-Untuk i bernilai 1
fx[i] > ftinggi
2 > 1 {benar}
Maka ftinggi = 2 {meng-update ftinggi}
-Untuk i bernilai 2
fx[2] > ftinggi
1 > 2 {salah}
Maka ftinggi tetap 2 karena tidak ter-update.
-Untuk i bernilai 3
fx[3] > ftinggi
1 > 2 {salah}
Maka ftinggi tetap 2 karena tidak ter-update.
Coding di atas dimaksudkan untuk meng-update nilai j .
Dimemori diketahui j = 0,
Maka untuk i=1 to 3 do,
Pemeriksaan conditional sentence
C : Qonitha Amalia, Pendidikan Matematika 2014 Universitas Sriwijaya
- I = 1
Fx[1]= ftinggi
2 = 2 (karna proses sebelumnya telah meng-udate nilai fx[1] dan ftinggi)
Then j = 0 + 1 j = 1
Modus [ j ] : = x[1]
- I = 2Fx[2]=ftinggi1 tidak sama dengan 2Maka tidak berlaku conditional sentence tersebut dan nilai j tetap 1
- I=3Fx[3]= ftinggi 1 tidak sama dengan 2Maka tidak berlaku conditional sentence tersebut dan nilai j tetap 1
Dari proses di atas didapat nilai j = 1. Perintah selanjutnya adalah sebagai berikut.
Perintnbvah menuliskan hasil , apakah angka yang di-input user meruakan msuatu modus atau bukan.
Conditional yang pertama :
Jika j = n maka ditulis “ tidak ada modus”
C : Qonitha Amalia, Pendidikan Matematika 2014 Universitas Sriwijaya
Dalam konteks ini j= 1 dan n= 3, maka j tidak samadengan n , dan tidak dapat ditulis “Tidak ada Modus”.
Lalu ketika conditional ertama tidak berlaku maka dilanjutkan dengan pengecekkan dengan conditional kedua.
Conditional kedua ialah:
Jika ftinggi = n dibagi j ,maka dituliskan “ Tidak ada Modus “
Ftinggi = 2
2 = 3 dibagi 1 , {salah} maka tidak berlaku conditional kedua ini. Karna conditional pertama dan kedua ialah mencari kemungkinan tidak adanya modus
dalam suatu data, dan teryata kemungkinan tersebut tidak ditemukan , maka secara langsung komputer menyimpulkan bahwa data yang di-inut user memiliki nilai modus.
Setelah diketahui adanya Modus ,maka dilanjutkan perintah selanjutnya, yaitu perintahyang terdaat diantara perintah begin dan end.
Perintah tersebut adalah perintah menuliskan banyak modus dari suatu data dan melakukan proses looping untuk menamilkan nilai modus tersebut.
For i to j do
For 1 to 1 do, {hanya terdapat satu kali proses looping} Then, write( modus[i]:0:0)
Write (modus[1])Atau komputer akan menampilkan angka 3 sebagai nilai modus.Karna nilai modus[1] = 3
*Perintah berakhir*
Secara keseluruhan
program nilaimodus;
uses crt;
var n,i,j: integer;
ftinggi: real;
fx: array[1..100]of integer;
modus,x: array[1..100]of real;
begin
C : Qonitha Amalia, Pendidikan Matematika 2014 Universitas Sriwijaya
clrscr;
write ('masukan banyak data: '); readln (n);
for i:=1 to n do
begin
write ('data ke-',i,' : '); readln(x[i]);
fx[i]:=1;
end;
for i:=1 to n-1do
for j:=i+1 to n do
if x[i]=x[j] then fx[i]:=fx[i]+1;
ftinggi:=1;
for i:=1 to n do
if fx[i]>ftinggi then ftinggi:=fx[i];
writeln;
writeln ('Frekuensi tertinggi adalah: ',ftinggi:0:0);
writeln;
j:=0;
for i:=1 to n do
if fx[i]=ftinggi then
begin
j:= j+1;
modus[j]:=x[i];
end;
writeln;
if j=n then
writeln('Tidak ada Modus')
else
C : Qonitha Amalia, Pendidikan Matematika 2014 Universitas Sriwijaya
if ftinggi=n div j then
writeln('Tidak ada Modus')
else
begin
writeln ('Banyak modusnya ',j,' buah, yaitu: ');
for i:=1 to j do
writeln (modus[i]:0:0);
end;
end.
Tampilan yang keluar
C : Qonitha Amalia, Pendidikan Matematika 2014 Universitas Sriwijaya