Jumat, 01 Januari 2010

program komputer

(1) Latihan 1
uses wincrt;
begin
write('program komputer');
end.

(2) Tugas dari blog Pak Azis
a. Program menghitung luas dan keliling persegi panjang.
Uses wincrt;
Var
p,l,K,L:real;
begin
write(‘masukkan panjang= ’);
readln(p);
write(‘masukkan lebar= ‘);
readln(l);
L:=p*l;
K:=2*(p+l);
Writeln(‘luas daerah persegi panjang= ‘,L:10:2);
Writeln(‘keliling persegi panjang= ‘,K:10:2);
End.

b. Menghitung luas permukaan dan volume kubus
program menghitung_volume_dan_luas_permukaan_kubus;
uses wincrt;
var a,b,c:real;
begin
writeln('masukkan nilai rusuk= '); read(a);
b:=a*a*a;
c:=6*a*a;
writeln('volume kubus adalah ',b);
writeln('luas permukaan kubus adalah ',c);
end.

c. Program menghitung luas daerah lingkaran dan keliling lingkaran
Uses wincrt;
Const
Phi=3.14;
Var r,L,K:real;
Begin
Writeln(‘masukkan jari-jari lingkaran= ‘);
Read(r);
L:=phi*r*r;
K:=2*phi*r;
Writeln(‘luas daerah lingkaran= ‘,L:10:4);
Writeln(‘keliling lingkaran= ‘,K:10:4);
End.

d. Program mempertukarkan nilai a dan b
Uses wincrt;
Var a,b,c:integer;
Begin
Write(‘masukkan nilai a= ‘);readln(a);
Write(‘masukkan nilai b= ‘); readln(b);
C:=a;
Writeln(‘nilai a= ‘,b);
Writeln(‘nilai b= ‘,c);
End.

e. Program menghitung luas permukaan tabung dan kerucut
Uses wincrt;
Const phi=3.14;
Var r,t,s,Lt,Lk:real;
Begin
Write(‘masukkan jari-jari= ‘);
Readln(r);
Write(‘masukkan tinggi= ‘);
Readln(t);
S:=sqrt(r*r+t*t);
Lt:=2*phi*r*(r+t);
Lk:=phi*r*(r+s);
Writeln(‘luas permukaan tabung= ‘,Lt:10:4);
Writeln(‘luas permukaan kerucut= ‘,Lk:10:4);
End.

f. Program kalkulasi
Uses wincrt;
Var
A,b,g,h:integer;
C,d,e,f:real;
Begin
Write(‘masukkan nilai a= ‘);
Readln(A);
Write(‘masukkan nilai b= ‘);
Readln(b);
C:=a+b;
D:=a-b;
E:=a*b;
F:=a/b;
G:=a div b;
H:=a mod b;
Writeln(‘hasil penjumlahan adalah ‘,c:5:2);
Writeln(‘hasil pengurangan adalah ‘,d:5:2);
Writeln(‘hasil perkalian adalah ‘,e:5:2);
Writeln(‘hasil pembagian adalah ‘,f:5:2);
Writeln(‘hasil bagi adalah ‘,g);
Writeln(‘sisa bagi adalah ‘,h);
End.

g. Program menghitung gaji karyawan
Uses wincrt;
Var
Nama:string;
Jml_istri,jml_anak:integer;
GP,tunj_anak,tunj_istri,pajak,gaji1,gaji:real;
Begin
Writeln;
Writeln(‘nama= ‘);readln(nama);
Writeln(‘gaji pokok= ‘);readln(GP);
Writeln(‘jmlah istri= ‘);readln(jml_istri);
Writeln(‘jumlah anak= ‘);readln(jml_anak);
Begin
Tunj_istri:=jml_istri*0.15*GP;
End;
Begin
Tunj_anak:=jml_anak*0.2*GP;
End;
Begin
Gaji1:=Gp+tunj_istri+tunj_anak;
End;
Begin
Pajak:=0.15*gaji1;
End;
Begin
Gaji:=gaji1-pajak;
End;
Writeln;
Writeln(‘gaji keseluruhan= ‘,gaji1:3:2);
Writeln(‘pajak= ‘,pajak:3:2);
Writeln(‘gaji yang diterima= ‘,gaji:3:2);
End.

h. Program menghitung koordinat titik tengah dan dua titik
Uses wincrt;
Var x1,x2,y1,y2:integer;
X3,y3:real;
Begin
Write(‘masukkan koordinat A(x1,y1)= ‘);
Read(x1,y1);read;
Write(‘masukkan koordinat B(x2,y2)= ‘);
Read(x2,y2);read;
X3:=(x1+x2)/2;
Y3:=(y1+y2)/2;
Write(‘koordinat titik tengah A dan B adalah(‘,x3:3:2,’,’,y3:3:2,’)’);
End.

i. Program konversi jam ke detik
Uses wincrt;
Var
Jam,detik:real;
Begin
Write
(‘masukkan waktu(jam)= ‘);
Readln(jam);
Detik:=60*60*jam;
Writeln(jam:2:2,’jam= ‘,detik: 2:2,’detik’);
End.

j. Program konversi detik ke jam
Uses wincrt;
Var
Detik,jam:real;
Begin
Write(‘masukkan waktu(detik): ‘);
Readln(detik);
Jam:=detik/3600;
Writeln(detik:2:2,’detik=’,jam:2:2,’jam’);
End.

k. Program menghitung lamanya telepon dalam detik;
Uses wincrt;
Var
Lama,jm,mm,dm,js,ms,ds,tsc,tec:longint;
Begin
Write(‘jam mulai= ‘);
Read(jm);
Write(‘menit mulai= ‘);
Read(mm);
Write(‘detik mulai= ‘);
Read(dm);
Write(‘jam selesai= ‘);
Readln(js);
Write(‘menit selesai= ’);
Read(ms);
Write(‘detik selesai= ‘);
Read(ds);
Tsc:=(jm*3600)+(mm*60)+dm;
Tec:=(js*3600)+(ms*60)+ds;
Lama:= tec-tsc;
Write(‘lamanya waktu telepon= ‘,lama;,detik);
End.

l. Program menghitung biaya telepon
Uses wincrt;
Var
Lama,jm,mm,dm,js,ms,ds,tsc,tec,P,B:longint;
Begin
Write(‘jam mulai= ‘);
Read(jm);
Write(‘menit mulai= ‘);
Read(mm);
Write(‘detik mulai= ‘);
Read(dm);
Write(‘jam selesai= ‘);
Readln(js);
Write(‘menit selesai= ’);
Read(ms);
Write(‘detik selesai= ‘);
Read(ds);
Tsc:=(jm*3600)+(mm*60)+dm;
Tec:=(js*3600)+(ms*60)+ds;
Lama:= tec-tsc;
P:=Lama div 5;
B:=P*200;
Write(‘biaya telepon=Rp ‘,B);
End.

(3) Struktur If....Then....
Latihan:
a. Program Menghitung Akar Kuadrat
Uses wincrt;
Var a,b,c:integer;
X1,x2,D:real;
Begin
Clrscr;
Write(‘baca koefisien: ‘);
Readln(a,b,c);writeln;
Writeln(A,’x*x+(‘,B,’)x+’,C);
If A=0 then writeln(‘buka persamaan kuadrat’)else
Begin
D:=(B*B)-(4*A*c);
Writeln(‘determinannya adalah= ‘,D:2:2);
If D>0 then
Begin
Writeln(‘persamaan kuadrat mempunyai 2 akar yang berbeda’);
X1:=(-B+sqrt(D))/(2*A);
X2:=(-B-sqrt(D))/(2*A);

Writeln (‘akar-akarnya adalah: ‘,x1:2:2,’dan’,x2:2:2);
End else
If D=0 then
Begin
Writeln(‘persamaan kuadrat memiliki akar yang sama’);
X1:=-B/(2*A);
X2:=-B/(2*A);
Writeln(‘akar-akarnya adalah: ‘,x1:2:2);
End;
Readln;
End.
b. Program menu masakan
Uses wincrt;
Var x:integer;
Begin
Writeln(‘menu masakan Warung Biru’);
Writeln(‘*************************’);
Writeln(‘1.Bakso’);
Writeln(‘2.Ayam Goreng’);
Writeln(‘3.Gongso’);
Writeln(‘4.Nasi Goreng’);
Writeln(‘5.Mie Ayam’);
Writeln(‘Menu masakan yang anda pilih adalah= ‘);readln(x);
Clrscr;
If x=1 then
Begin
Writeln(‘bakso’);
End
Else
If x=2 then
Begin
Writeln(‘Ayam Goreng’);
End
Else
If x=3 then
Begin
Writeln(‘Gongso’);
End
Else
If x=4 then
Begin
Writeln(‘Nasi Goreng’);
End
Else
If x=5 then
Begin
Writeln(‘Mie Ayam’);
End
End.

(4) Struktur Case....Of....
Latihan:
Uses wincrt;
Var x:integer;
Begin
Writeln(‘menu masakan Warung Biru’);
Writeln(‘*************************’);
Writeln(‘1.Bakso’);
Writeln(‘2.Ayam Goreng’);
Writeln(‘3.Gongso’);
Writeln(‘4.Nasi Goreng’);
Writeln(‘5.Mie Ayam’);
Writeln(‘Menu masakan yang anda pilih adalah= ‘);readln(x);
Clrscr;
Case x of
1:begin;
Writeln(‘1. Bakso’);
End;
2:begin;
Writeln(‘2. Ayam Goreng’);
End;
3:begin;
Writeln(‘3.Gongso’);
End;
4:begin;
Writeln(‘4. Nasi Goreng’);
End;
5:begin;
Writeln(‘Mie Ayam’);
End;
End;
End.

(5) Looping/Perulangan/Repetition
Latihan:
a. Struktur while...do...
uses wincrt;
var x:integer;
begin
x:=1;
while(x<6)do
begin
writeln (x,'.aku sayang kamu');
x:=x+1;
end;
readln;
end.
b. Struktur for... do...
Latihan:
- Program aku_seneng;
uses wincrt;
var n:integer;
begin
write('berapa kata akan kamu ulang= ');
read(n);
for n:=1 to n do
writeln('I miss U but I hate U,mY Boy!');
end.
- Latih 1
uses wincrt;
var x:integer;
begin
for x:=1 to 5 do
writeln(x,'.Aku Sayang kamu');
end.
- Segitiga asyik dengan penjumlahan.
uses wincrt;
var i,n,j,jum:integer;
begin
write('masukkan perulangan kata anda: '); readln(n);
for n:=1 to n do
begin
for i :=1 to n do
write (n:3);
write('=');
j:=n*n;
writeln(j);
end;
end.
- Segitiga asyik ada sama dengan tanpa hasil
uses wincrt;
var i,n,j,jum:integer;
begin
write('masukkan perulangan kata anda: '); readln(n);
for i:=1 to n do
begin
for j :=1 to i do
write(i:3);
write('=');

writeln;
end;

c. Struktur Repeat...Until...
Latihan:
uses wincrt;
var x,g:integer;
begin
x:=1;
repeat
writeln(x,'.aku sayang kamu');
x:=x+1;
until x>5;
end.

d. Latihan penggabungan looping:
- Program jum
uses wincrt;
var num,jum,y:integer;
begin
num:=1;
jum:=0;
write('masukkkan bilangan= ');read(y);
repeat
write(num);
if numwrite('+');
jum:=num+jum;
num:=num+1;
until num>y;
write('=');
write(' ' ,jum);
end.

(6) Latihan Pribadi sebelum mid semester
a. Lulus atau tidak lulus dengan input nilai
uses wincrt;
var nama:string;
nilai :real;
begin
writeln('masukkan nama anda= ');read(nama);
writeln('masukkan nilai anda= ');read(nilai);
if nilai>=60 then write('lulus')else write('tidak lulus');
end.

b. Input Nama, nim,nilai hasil nya nilai huruf
uses wincrt;
var a,b,c:string;
nilai:integer;
begin
writeln('masukkan nama anda');readln(A);
writeln('masukkan nim anda');read(b);
writeln('masukkan nilai anda');read(c);
begin
write('nilai');read(nilai);
if nilai >=80 then write ('A=Lulus')else
if nilai >=65 then write('B=lulus')else
if nilai >=41 then write ('C=tidak lulus')else
if nilai >=26 then write('D-tidak lulus')else
write('E');readln
end;
end.

c. Huruf vokal
uses wincrt;
var x:char;
begin
writeln('masukkan huruf anda= ');readln(x);
if x='a' then write('vokal')else
if x='i' then write ('vokal')else
if x='u' then write ('vokal')else
if x='e' then write ('vokal')else
if x='o' then write('vokal')else write('konsonan');
readln;
end.

(7) Soal Ujian
1. Program Memilih Hari
uses wincrt;
var x,b:integer;
begin
writeln('1.senin');
writeln('2.selasa');
writeln('3.rabu');
writeln('4.kamis');
writeln('5.jumat');
writeln('6.sabtu');
writeln('7.minggu');
writeln('hari ini hari apa ?');read(x);
clrscr;
begin
if x=1 then
begin
writeln('senin')
end else
if x=2 then
begin
writeln('selasa')
end else
if x=3 then
begin
writeln('rabu')
end else
if x=4 then
begin
writeln('kamis')
end else
if x=5 then
begin
writeln('jumat')
end else
if x=6 then
begin
writeln('sabtu');
end else
if x=7 then
writeln('minggu')
end ;
end.
2. Program Mencari Nilai Terbesar
uses wincrt;
function terbesar (x,y:real):real;
begin
if x>y then
terbesar :=x
else
terbesar :=y;
end;
var
a,b:real;
begin
writeln('masukkan bilangan pertama= ');readln(a);
writeln('masukkan bilangan kedua= ');readln(b);
writeln('nilai terbesar= ', terbesar (a,b):2:2);
end.

(8) Soal Remidi
1. Soal 1
uses wincrt;
var d1,d2,d3,m1,m2,y1,y2,h,i,j,k,d4,d5,d6,d7,d8:integer;
begin
writeln('masukkan tanggal lahir anda= ');readln(d1);
writeln('masukkan bulan lahir anda= ');readln(d2);
writeln('masukkan tahun anda= '); readln(d3);
writeln('masukkan berapa hari= '); readln(d4);
d5:=d4 div 360;
d6:=d4 mod 360;
d7:=d6 div 30;
d8:=d6 mod 30;
i:=d7+d2;
k:=d1+d8;


writeln('masukan anda adalah ',d5,'tahun ',d7,'bulan ',d8,'hari ');
writeln('sekarang adalah ',k,'hari ',i,'bulan ',d3,'tahun ');
end.

2. Soal 2
uses wincrt;
var i,n,j,jum:integer;
begin
write('masukkan perulangan kata anda: '); readln(n);
for i:=1 to 5 do
begin
for j :=i to 5 do
write(5:3);
writeln;
end;
end.
3. Soal 3
program max_min_mean;
uses wincrt;
var
bil:array[1..1000] of integer;
k,n,l,max,min,imax,imin,tot:integer;
mean:real;
begin
writeln('masukkan banyak data yang anda inginkan ; ');read(n);
for k:=1 to n do
begin
write('data ke ', k:3,' : ');readln(bil[k]);
tot:=tot+bil[k];
end;
max:=bil[k];
min:=bil[k];
mean:=tot/n;
for k:=1 to n do
begin
if bil[k]>max then
begin
max:=bil[k];
imax:=k;
end;
begin
end;
if bil[k]min:=bil[k];
imin:=k;
end;
writeln('hasil perhitungan rata- ratanya: ');writeln(mean:2:3);
writeln('bilangan terbesar dari data adalah ',max{,'pada data ke ', imax});
writeln('bilangan terkecil dari data adalah ',min{,'pada data ke ',min});
end.
(9) Tipe Data Array(Larik)
Latihan:
a. Latihan array 1
uses wincrt;
type
larik = array[1..10]of integer;
var
x:larik;
tot,i,n:integer;
begin
write('masukkan jumlah data: ');readln(n);
writeln;
tot:=0;
for i:=1 to n do
begin
write('masukkan data ke-',i,'',' anda: ');readln(x[i]);
end;
for i:=1 to n do
begin
write('data anda adalah ');
writeln(x[i]);
end;
end.

b. Latihan maatriks 1
uses wincrt;
var tabel:array[1..3,1..2]of byte;
i,j:byte;
begin
tabel[1,1]:=50;
tabel[1,2]:=55;
tabel[2,1]:=21;
tabel[2,2]:=26;
tabel[3,1]:=10;
tabel[3,2]:=1;
for i:=1 to 3 do
begin
for j:=1 to 2 do
write(tabel[i,j]:5);
writeln;
end;
end.

c. Latihan matriks 2
uses wincrt;
var m,n,i,j:integer;
x:array[1..100,1..100]of integer;
begin
clrscr;
write('masukkan baris matriks yang anda inginkan= ',' ');read(m);
write('masukkan kolom matriks yang anda inginkan= ',' ');read(n);
writeln('matriks anda berukuran', ' ',m,'x',n,' ');
for i:=1 to m do
for j:=1 to n do
begin
write('nilainya:', ' ');readln(x[i,j]);
end;
writeln;
writeln('matriksnya:',' ');
for i:=1 to m do
begin
for j:=1 to n do
write(x[i,j]:3);writeln;
end;
readln;
end.

d. Penjumlahan matriks
program Matrix;
uses wincrt;
const
lbaris =1;
ubaris=10;
lkolom=1;
ukolom=10;
type
range_baris =lbaris..ubaris;
range_kolom=lkolom..ukolom;
matriks=array [range_baris,range_kolom] of real;
var
mat1:matriks;
mat2:matriks;
mat3:matriks;
jum_baris:integer;
jum_kolom:integer;
PROCEDURE baca_matriks (var a: matriks;baris,kolom:integer);
var
i,j:integer;
begin
for i:=1 to baris do
begin
for j:= 1 to kolom do
begin
write('A[',i,',',j,']:');
readln (a[i,j]);
end;
end;
end;
PROCEDURE tulis_matriks(var a:matriks;baris,kolom:integer);
var
i,j:integer;
begin
writeln;
for i:=1 to baris do
begin
for j:=1 to kolom do
begin
write(a[i,j]:8:1,' ');
end;
writeln;
end;
end;
procedure kali_matriks (a,b:matriks; baris, kolom :integer; var c:matriks);
var i,j,k,l : integer;
begin
l:=i+1;
k:=j+1;
for i:=1 to baris do
begin
for l:=1 to baris do
begin
for j:=1 to kolom do
begin
for k:=1 to kolom do
begin
c[i,j]:=a[i,j]*b[i,j]+a[l,j]*b[i,k];
end;end;end;
end;
end;
begin
repeat
clrscr;
writeln('Masukkan ukuran matriks anda (baris,kolom),maximum 10x10 : ');
write('masukkan baris = ');
readln(jum_baris);
write('masukkan kolom = ');
readln(jum_kolom);
until (jum_baris > 0) and (jum_baris <=10) and (jum_kolom >0) and (jum_kolom <=10) ;
writeln;
writeln('Masukkan elemen2 matrix pertama ');
baca_matriks(mat1,jum_baris,jum_kolom);
writeln;
writeln('masukkan elemen2 matriks kedua');
baca_matriks(mat2,jum_baris,jum_kolom);
writeln;
writeln('Hasil penjumlahan matrix 1 dan matrix 2');
kali_matriks(mat1,mat2,jum_baris,jum_kolom,mat3);
tulis_matriks(mat3,jum_baris,jum_kolom);
end.

e. Perkalian matriks
program perkalian_matriks;
uses wincrt;
type
larik=array[1..25,1..25] of real;
var
i,j,k,m,n,l:byte;
a,b,c:larik;
jawab:char;
label 10;
begin
10: clrscr;
writeln('perkalian matriks');
writeln('------------------');
write('baris matriks pertama :');readln(m);
write('kolom matriks pertama/baris matriks kedua :');readln(n);
write('kolom matriks kedua :');readln(l);
writeln;
writeln('komponen matriks yang pertama');
for i:=1 to m do
begin
for j:=1 to n do
begin
write('nilai[', i , ' , ' , j , ']=');readln(a[i,j]);
end;
writeln;
end;
writeln('komponen matriks yang kedua');
for i:=1 to n do
begin
for j:=1 to l do
begin
write('nilai[' , i , ' , ' , j , ']=');readln(b[i,j]);
end;
writeln;
end;
for i:=1 to m do
begin
for j:=1 to l do
begin
c[i,j]:=0;
for k:=1 to l do
c[i,j]:=c[i,j]+a[i,k]*b[k,j];
end;
end;
writeln;
writeln('hasil perkalian matriks ');
writeln;
for i:=1 to m do
begin
writeln;
for j:=1 to l do
begin
write(c[i,j]:5:1);
end;
end;
writeln;
write('mau coba lagi?(Y/N):');
readln(jawab);
if (jawab='Y') or (jawab='y') then goto 10;
end.

(10) Procedure dan Function
Latihan:
a. program prosedur1;
uses wincrt;
procedure tanya_hitung;
var
x,y:real;
begin
write ('nilai x?');readln(x);
y:=x*x;
write('nilai y:= ', y:6:2);
end;
begin
tanya_hitung;
end.
b. Menghitung penjumlahan, pengurangan dan perkalian dengan procedure.
program Menghitung_dengan_procedure;
(*objektif: menghitung *)
uses wincrt;
var
pilihan:integer;
s,a:real;
jawab:char;
procedure jumlah (s,a:real); (*menghitung penjumlahan*)
var
L: real;
begin
L:= s+a;
writeln ('jumlahnya adalah =',L:10:5);
end;
procedure kurang (s,a:real);
var
V:real;
begin
V:= s-a;
writeln ('hasil pengurangannya adalah= ',V:10:5);
end;
procedure perkalian (s:real);
var
K:real;
begin
K:=a*s;
writeln (' jumlah kalinya adalah =',K:10:5);
end;
begin
repeat
REPEAT
clrscr;
writeln (' MENU PILIHAN ANDA' );
writeln ('---------------------------------------');
writeln ('1. menghitung penjumlahan ');
writeln ('2. menghitung pengurangan ');
writeln ('3. menghitung perkalian ');
writeln ('---------------------------------------');
write ('masukkan pilihan anda : ');
readln (pilihan);
UNTIL (PILIHAN>=1) AND(PILIHAN<=3);
clrscr;
writeln;
write ('masukkan nilai pertama');
readln (s);
write('masukkan nilai kedua= ');
readln(a);
case pilihan of
1: jumlah(s,a) ;
2: kurang (s,a) ;
3: perkalian(s);
end;
writeln('mau lagi?? (Y/T)' );
readln (jawab);
until (jawab='t');
end.

c. Funnction 1
program fungsi;
uses wincrt;
var a,b,c:integer;
function tukar (var a,c:integer):integer;
var temp:integer;
begin
write('nilai a= ');readln(a);
write('nilai b= ');readln(b);
write('nilai c= ');readln(c);
writeln;
temp:=a;
a:=c;
c:=temp;
end;
begin
clrscr;
tukar(a,c);
writeln('a','= ',a);
writeln('b','= ',b);
writeln('c','= ',c);

end.
d. Function 2
program Menentukan_faktorial;
uses wincrt;
var
n,k:integer;
fak:real;
begin
writeln('menentukan faktorial bilangan');
writeln('dengan rumus');
writeln('n!=nx(n-1)x(n-2)x...x3x2x1');
writeln;
writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
write('masukkan bilangan n (maks 33) ');readln(n);
fak:=1;
for k:=1 to n do
fak:=fak*k;
write('jadi ',n,'! adalah ');
writeln(fak:38:2);
writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end.

Tidak ada komentar:

Posting Komentar