Rabu, 04 Januari 2012
Loopingan dalam Pascal
Perulangan dalam Pascal
Struktur pengulangan FOR..TO..DO.. digunakan pada suatu kondisi dimana sebuah pernyataan akan dillakukan perulangan sebayak X kali tersantung statement yang akan ditentukan. sebagai contoh:
for a:= 1 to 3 do
write (‘saya’)
pada statement diatas maka akan terjadi pengulangan penulisan sebanyak 3 kali.
WHILE..DO.. digunakan pada kondisi dimana suatu pernyataan yang akan diulang belum tentu berapa kali terjadi pengulangan. pengulangan baru akan berakhir jika kondisi sudah terpenuhi.
while ( x > 0 ) do
x := x – 1
statement diatas akan terus terjadi pengulangan selama nilai x masih positif
REPEAT UNTIL : sama seperti WHILE DO hanya saja pengecekan kondisi dilakukan pada saat terakhir.
repeat
x := x – 1
until ( x = 100 )
IF THEN ELSE : digunakan untuk sebuah kondisi dimana suatu pernyataan akan di uji. jika kondisi terpenuhi maka akan lanjut ke statement berikutnya tetapi jika tidak terpenuhi maka program akan jalan ke pernyataan lainnya.
if bisa then
writeln (‘sukses’);
else
write (‘coba lagi’);
perbedaan WHILE DO dengan REPET UNTIL adalah terletak pada pengujian kondisi.
jika REPEAT UNTIL perintah dilakukan terlebih dahulu baru dilakukan pengujian.
sedangkan WHILE DO pengujian dilakukan diawal baru perintah dieksekusi.
perbedaaan lainya yaitu REPEAT UNTIL mengulang pernyataan selama kondisi belum terpenuhi sedang WHILE DO mengulang pernyataan selama kondisi masih terpenuhi.
Program Pascal Binomial
program binomial;
uses wincrt;
var p,a,b,c,d,e:real ;
i,j,k,n,x:longint;
begin
writeln ('jumlah data');readln(n);
writeln ('yang sukses');readln(x);
writeln ('persentase sukses');readln(p);
a:=1;b:=1;c:=1;d:=1;e:=1;
for i:=1 to n do
a:=a*i;
for j:=1 to x do
begin
b:=b*j;
c:=c*p;
end;
for k:=1 to (n-x) do
begin
d:=d*k;
e:=e*(1-p);
end;
writeln ('hasilnya');
writeln(a/(b*d)*c*e:0:4);
end.
uses wincrt;
var p,a,b,c,d,e:real ;
i,j,k,n,x:longint;
begin
writeln ('jumlah data');readln(n);
writeln ('yang sukses');readln(x);
writeln ('persentase sukses');readln(p);
a:=1;b:=1;c:=1;d:=1;e:=1;
for i:=1 to n do
a:=a*i;
for j:=1 to x do
begin
b:=b*j;
c:=c*p;
end;
for k:=1 to (n-x) do
begin
d:=d*k;
e:=e*(1-p);
end;
writeln ('hasilnya');
writeln(a/(b*d)*c*e:0:4);
end.
Minggu, 01 Januari 2012
Program Mencari Nilai Maksimum dan Minimum
program min_max;
uses wincrt;
var
a : array[1..100] of real;
i,n : integer;
max,min : real;
begin
writeln ('masukkan banyaknya data:'); readln(n);
max:=-9999;
min:=9999;
clrscr;
for i:=1 to n do begin
writeln ('data ke: ',i); readln (a[i]);
if max<(a[i]) then max := (a[i]);
if min>(a[i]) then min := (a[i]);
end;
writeln('nilai maksimum : ', max:6:2);
writeln('nilai minimum : ', min:6:2);
end.
uses wincrt;
var
a : array[1..100] of real;
i,n : integer;
max,min : real;
begin
writeln ('masukkan banyaknya data:'); readln(n);
max:=-9999;
min:=9999;
clrscr;
for i:=1 to n do begin
writeln ('data ke: ',i); readln (a[i]);
if max<(a[i]) then max := (a[i]);
if min>(a[i]) then min := (a[i]);
end;
writeln('nilai maksimum : ', max:6:2);
writeln('nilai minimum : ', min:6:2);
end.
Kamis, 29 Desember 2011
STATION (Statistics Competition)
STATION 2012 (Statistic Competition 2012) merupakan ajang yang diselenggarakan oleh Himpunan Mahasiswa Statistika ITS, merupakan sebuah kompetisi tingkat nasional di bidang matematika dan statistika.
STATION 2012, akan diadakan pada tanggal 29 Januari 2012, dalam lomba ini lain daripada yang lain. Karena STATION 2012 juga memiliki 3 kegiatan yang terdiri dari kompetisi, workshop untuk guru, dan lomba poster bagi para semifinalis. Untuk acara kompetisi sendiri terdiri dari tiga tahap, yaitu tahap pertama atau penyisihan, tahap semifinal, dan tahap final. Tidak perlu takut akan soal di STATION 2012 karena ini merupakan kompetisi secara tim, di mana tiap-tiap tim terdiri dari 2 orang. Masing-masing peserta yang mengikuti kompetisi STATION 2012 akan memperebutkan hadiah utama berupa uang tunai total sebesar Rp 6.000.000,00
Pesertanya tidak hanya untuk siswa/siswi SMA/SMK dan sederajat yang ada di Surabaya saja, SMA-SMA/SMK-SMK dari seluruh wilayah di Indonesia juga bisa mengikuti kompetisinya buat memenangkan hadiah utama tersebut.
Kompetisinya tidak hanya di kampus ITS aja, karena STATION 2012 juga akan bertempat di beberapa regional yang sudah dibagi-bagi. Buat yang regionalnya tidak kebagian tempat berlangsungnya acara, tidak usah bingung, karena STATION 2012 juga akan mengadakan kompetisi secara online. Cukup log-in lewat web station.statistics.its.ac.id dengan id yang akan diberikan setelah melakukan proses pendaftaran, kamu bisa ngerjain soal-soal kompetisi di mana aja. Untuk lebih lengkapnya silahkan berkunjung ke STATION 2012
Selasa, 27 Desember 2011
Program invers (Array 3 Dimensi)
uses wincrt;
label hitung;
var
mat,adj : array [1..5,1..5] of integer;
det,i,j : integer;
c:char;
begin
clrscr;
{ tampilan awal keterangan matrik }
gotoxy(20,4);
writeln('Matriks Ordo 2 x 2');
gotoxy(15,5);
writeln('-------------------------');
gotoxy(15,7);
writeln('1. Input data matrik ');
gotoxy(15,8);
writeln('2. Menentukan Adjoin Matrik');
gotoxy(15,9);
writeln('3. Mencari determinan matriks');
gotoxy(15,10);
writeln('4. Mencari Invers matriks');
readln;
if c = #13 then goto hitung;
{end tampilan awal keterangan matrik}
{mulai proses input}
hitung:
begin
clrscr;
writeln('Input Matrik Ordo 2x2');
writeln('-------------------------');
for i := 1 to 2 do begin
for j:= 1 to 2 do begin
write('matrik ke ',i,' ',j,': ');readln(mat[i,j]);
end;
writeln;
end;
for i := 1 to 2 do begin
write('|');
for j := 1 to 2 do begin
write(' ',mat[i,j],' ');
if j = 2 then write ('|');
end;
writeln;
end;
{end proses input matrik}
writeln;
writeln;
{mulai adjoin matrik dan determinan}
writeln('Adjoin matrik Ordo 2x2');
writeln('-----------------------');
adj[1,1] := mat[2,2];
adj[1,2] := mat[1,2] * -1;
adj[2,1] := mat[2,1] * -1;
adj[2,2] := mat[1,1];
for i := 1 to 2 do begin
write('|');
for j := 1 to 2 do begin
write(' ',adj[i,j],' ');
if j = 2 then write('|');
end;
writeln;
end;
writeln;
det := (mat[1,1] * mat [2,2]) - (mat[1,2] * mat[2,1]);
write('Determinan dari matrik diatas adalah ');
writeln(det);
writeln;
{end of adjoin and determinan}
{mulai menghitung invers matrik}
writeln('Invers Matrik ');
writeln('----------------');
writeln;
for i := 1 to 2 do begin
write('|');
for j := 1 to 2 do begin
write(' ',adj[i,j]/det:3:2,' ');
if j = 2 then write('|');
end;
writeln;writeln;writeln;
end;
{end of hitung invers matrik}
end;
readln;
end.
label hitung;
var
mat,adj : array [1..5,1..5] of integer;
det,i,j : integer;
c:char;
begin
clrscr;
{ tampilan awal keterangan matrik }
gotoxy(20,4);
writeln('Matriks Ordo 2 x 2');
gotoxy(15,5);
writeln('-------------------------');
gotoxy(15,7);
writeln('1. Input data matrik ');
gotoxy(15,8);
writeln('2. Menentukan Adjoin Matrik');
gotoxy(15,9);
writeln('3. Mencari determinan matriks');
gotoxy(15,10);
writeln('4. Mencari Invers matriks');
readln;
if c = #13 then goto hitung;
{end tampilan awal keterangan matrik}
{mulai proses input}
hitung:
begin
clrscr;
writeln('Input Matrik Ordo 2x2');
writeln('-------------------------');
for i := 1 to 2 do begin
for j:= 1 to 2 do begin
write('matrik ke ',i,' ',j,': ');readln(mat[i,j]);
end;
writeln;
end;
for i := 1 to 2 do begin
write('|');
for j := 1 to 2 do begin
write(' ',mat[i,j],' ');
if j = 2 then write ('|');
end;
writeln;
end;
{end proses input matrik}
writeln;
writeln;
{mulai adjoin matrik dan determinan}
writeln('Adjoin matrik Ordo 2x2');
writeln('-----------------------');
adj[1,1] := mat[2,2];
adj[1,2] := mat[1,2] * -1;
adj[2,1] := mat[2,1] * -1;
adj[2,2] := mat[1,1];
for i := 1 to 2 do begin
write('|');
for j := 1 to 2 do begin
write(' ',adj[i,j],' ');
if j = 2 then write('|');
end;
writeln;
end;
writeln;
det := (mat[1,1] * mat [2,2]) - (mat[1,2] * mat[2,1]);
write('Determinan dari matrik diatas adalah ');
writeln(det);
writeln;
{end of adjoin and determinan}
{mulai menghitung invers matrik}
writeln('Invers Matrik ');
writeln('----------------');
writeln;
for i := 1 to 2 do begin
write('|');
for j := 1 to 2 do begin
write(' ',adj[i,j]/det:3:2,' ');
if j = 2 then write('|');
end;
writeln;writeln;writeln;
end;
{end of hitung invers matrik}
end;
readln;
end.
Program Matriks Penjumlahan
Dengan menggunakan array 3 dimensi
program matrik_penjumlahan;
uses wincrt;
var a,b,c: array[1..10,1..10] of integer;
i,j,k1,k2,b1,b2,sum,r:integer;
begin
write('Masukkan baris Matrik A = ');readln(b1);
write('Masukkan kolom Matrik A = ');readln(k1);
write('Masukkan baris Matrik B = ');readln(b2);
write('Masukkan kolom Matrik B = ');readln(k2);
for i:=1 to b1 do
for j:=1 to k1 do
readln(a[i,j]);
writeln;
for i:=1 to b2 do
for j:=1 to k2 do
readln(b[i,j]);
writeln;
writeln('Matrik A');
writeln('==================');
for i:=1 to b1 do
begin
for j:=1 to k1 do
write(a[i,j],' ');
writeln;
end;
writeln;
writeln('Matrik B');
writeln('===================');
for i:=1 to b2 do
begin
for j:=1 to k2 do
write(b[i,j],' ');
writeln;
end;
writeln;
writeln('Matrik A*B');
writeln('================');
for i:=1 to b1 do
begin
for j:=1 to k2 do
begin
sum:=0;
for r:=1 to k1 do
sum:=sum+a[i,r]*b[r,j];
c[i,j]:=sum;
write(c[i,j]:2,' ');
end;
writeln;
end;
end.
program matrik_penjumlahan;
uses wincrt;
var a,b,c: array[1..10,1..10] of integer;
i,j,k1,k2,b1,b2,sum,r:integer;
begin
write('Masukkan baris Matrik A = ');readln(b1);
write('Masukkan kolom Matrik A = ');readln(k1);
write('Masukkan baris Matrik B = ');readln(b2);
write('Masukkan kolom Matrik B = ');readln(k2);
for i:=1 to b1 do
for j:=1 to k1 do
readln(a[i,j]);
writeln;
for i:=1 to b2 do
for j:=1 to k2 do
readln(b[i,j]);
writeln;
writeln('Matrik A');
writeln('==================');
for i:=1 to b1 do
begin
for j:=1 to k1 do
write(a[i,j],' ');
writeln;
end;
writeln;
writeln('Matrik B');
writeln('===================');
for i:=1 to b2 do
begin
for j:=1 to k2 do
write(b[i,j],' ');
writeln;
end;
writeln;
writeln('Matrik A*B');
writeln('================');
for i:=1 to b1 do
begin
for j:=1 to k2 do
begin
sum:=0;
for r:=1 to k1 do
sum:=sum+a[i,r]*b[r,j];
c[i,j]:=sum;
write(c[i,j]:2,' ');
end;
writeln;
end;
end.









