Senin, 11 Januari 2010

***Membalikkan kata dengan Stuck***

program balik_kalimat_perkata;

uses wincrt;

const elemen = 255;

type s255 = string[elemen];

tumpukan = record

isi:s255;

atas: 0..elemen;

end;

var t: tumpukan;

i, k, l, m: integer;

kalimat, word: s255;

procedure awalan(var t: tumpukan);

begin

t.atas:=0;

end;

procedure push (var t:tumpukan; x: char);

begin

t.atas:=t.atas+1;

t.isi[t.atas]:= x;

end;

function pop(var t:tumpukan):char;

begin

pop:=t.isi[t.atas];

t.atas:=t.atas-1;

end;

begin

clrscr;

awalan(t);

writeln('Tumpukan untuk membalik kalimat');

writeln('*******************************');

writeln;

write('ketik kalimat: '); readln(kalimat);

clrscr;

writeln('kalimat asli: ',kalimat);

writeln;

writeln('setelah operasi push dan pop');

for i:=1 to length(kalimat) do

begin

if (kalimat[i]=' ') then

begin

for k:=(i-1) downto l do

word:=word+kalimat[k];

word:=word+kalimat[i];

end;

l:=length(word);

if i=length(kalimat) then

begin

for i:=length(kalimat) downto l do

word:=word+kalimat[i];

end;

end;

for i := 1 to (length(kalimat) + 1) do

push(t, word [i]);

for i := 1 to (length(kalimat) + 1) do

write (pop (t) );

readln;

end.


Senin, 21 Desember 2009

Tugas Untuk Menampilkan Bilangan Prima

Program Bilangan_Prima;

Uses wincrt;

Var

i,j,m,n, batas,jml: integer;

prima: boolean;

prim:array[1..100] of integer;

Begin

write('bilangan prima sampai suku ke: '); readln(n);

writeln('sebagai berikut: ');

i:=3;

prim[1]:=2;

prim[2]:=3;

m:=2;

Repeat

i:=i+1;

batas:=round(sqrt(i))+1;

prima:=true;

For j:= 2 to batas do

if i mod j = 0 then

prima:=false;

if prima = true then

Begin

m:=m+1;

prim[m]:=i;

end;

until m=n;

For i:=1 to n do

Begin

write(prim[i], ' ');

jml:=jml+prim[i];

end;

writeln;

writeln('jumlah bil prima: ',jml);

readln;

end.


Minggu, 22 November 2009

Program dengan menggunakan Record dan Looping

uses wincrt;

type biodata = record

alamat : string;

nama : string;

ttl:string;

nim : string;

end;

var

data:biodata;

n,i: integer;

begin

writeln ('Inputkan Jumlah data Mahasiswa');readln(n);

for i:=1 to n do

begin

writeln ('Data ke - ',i,':');

write ('NIM : '); readln(data.nim);

write ('Nama : '); readln(data.nama);

write ('Alamat : '); readln(data.alamat);

write ('TTL : '); readln(data.ttl);

writeln;

end;

end.

Selasa, 17 November 2009

Tugas struktur Data

uses wincrt;

const awal =1;

const akhir =5;


var

nim,nama :array [awal..akhir] of string;

nilai :array [awal..akhir] of string;

n,i :integer;

jumlah,rataan : real;

begin

write ('banyak nya data mahasiswa =');

readln(n) ;

for n :=1 to 3 do

begin

write('nim',n,':');readln(nim[n]);

write('nama',n,':');readln(nama[n]);

for i:=1 to 3 do

begin

write('nilai ke',n,'=');readln(nilai[i]);

writeln;

end;

end;

writeln;

writeln('hasil dari inputan adalah =');

writeln('=====================');

writeln('nim nama nilai1 nilai 2 nilai 3 rata-rata');

writeln('=====================');

for i:= i to 3 do

begin

writeln(nim [n],' ', nama[n],' ',nilai[1],' ',nilai[2],' ',nilai[3]);

writeln;

end;

end.


Selasa, 10 November 2009

Tugas Array dalam Struktur Data

>>>>> Listing Program Menghitung Rata-rata Nilai Mahasiswa <<<<<

uses wincrt;
const
line='**********************************************';
var nil1,nil2,nil3:array[1..10] of 0..100;
nim:array[1..10] of string[8];
nama:array[1..10] of string[15];
n,i,bar:integer;
jum:real;
tulis:char;
begin
clrscr;
write('Masukkan Jumlah Data :');readln(n);
for i:=1 to n do
begin
clrscr;
GotoXY(30,4+1);write('Data Ke-:',i:2);
GotoXY(10,5+i);write('NIM:');readln(nim[i]);
GotoXY(10,6+i);write('Nama:');readln(nama[i]);
GotoXY(10,7+i);write('Nilai 1:');readln(nil1[i]);
GotoXY(10,8+i);write('Nilai 2:');readln(nil2[i]);
GotoXY(10,9+i);write('Nilai 3:');readln(nil3[i]);
end;
clrscr;
GotoXY(5,4);write(line);
GotoXY(5,5);write('No');
GotoXY(9,5);write('NIM');
GotoXY(18,5);write('Nama');
GotoXY(34,5);write('Nilai 1');
GotoXY(41,5);write('Nilai 2');
GotoXY(47,5);write('Nilai 3');
GotoXY(54,5);write('Rata');
GotoXY(61,5);write('Abjad');
GotoXY(5,6);write(line);
bar:=7;
for i:=1 to n do
begin
jum:=(nil1[i]+nil2[i]+nil3[i]/3);
if jum>=90 then tulis:='A' else
if jum>80 then tulis:='B' else
if jum>60 then tulis:='C' else
if jum<50>
GotoXY(5,bar);writeln(i:2);
GotoXY(9,bar);writeln(NIM[i]);
GotoXY(18,bar);writeln(Nama[i]);
GotoXY(34,bar);writeln(nil1[i]:4);
GotoXY(41,bar);writeln(nil2[i]:4);
GotoXY(47,bar);writeln(nil3[i]:4);
GotoXY(54,bar);writeln(jum:5:1);
GotoXY(61,bar);writeln(tulis);
bar:=bar+1;
end;
GotoXY(5,bar+1);writeln(line);
readln;
end.




Selasa, 03 November 2009

Toegas Struktur Data part I

>>ARRAY<<

  • Pengertian
Array merupakan tipe data tersetruktur dimana di dalamnya terdiri dari komponen–komponen yang mempunyai tipe data yang sama. Di dalam suatu array jumlah komponen banyaknya adalah tetap. Di dalam suatu larik atau array setiap kompoenen ditunjukan oleh suatu index yang unik. Index dari setiap komponen array menunjukan urutan data atau identitas yang mewakili data yang ada didalamnya.

Logika sederhananya array itu bisa disamakan dengan dua orang dengan nama yang sama didalam suatu komunitas, untuk membedakan antara nama yang satu atau dengan nama yang lain maka diberikan initial tambahan untuk setiap nama.

  • Soal: Buatlah rata-rata dari 5 buah nilai menggunakan Array....!!
  • Penyelesaian :

program rata-rata;

uses wincrt;

var nilai:array[1..5] of integer;

jml,rata:real;

begin

clrscr;

writeln('Menghitung rata-rata 5 nilai');

write('Masukkan Nilai Ke-1 =');readln(nilai[1]);

write('Masukkan Nilai Ke-2 =');readln(nilai[2]);

write('Masukkan Nilai Ke-3 =');readln(nilai[3]);

write('Masukkan Nilai Ke-4 =');readln(nilai[4]);

write('Masukkan Nilai Ke-5 =');readln(nilai[5]);

jml:=nilai[1]+nilai[2]+nilai[3]+nilai[4]+nilai[5];

rata:=jml/5;

writeln;

writeln('Jumlah Semua Nilai =',jml:9:2);

writeln('Rata-rata dari 5 Nilai =',rata:9:2);

end.


>>LOOPING<<

  • Pengertian
Pernyataan Repeat digunakan untuk pengulangan proses yang jumlahnya belum diketahui. tetapi minimal proses akan dikerjakan sekali. Pengujian kondisi pengulangan pada Repeat dilakukan setelah proses dikerjakan. Selama ungkapan nalar yang dijadikan kondisi bernilai salah, maka proses dikerjakan terus.

  • Soal: Buatlah program untuk mencari rata-rata dari 3 nilai dengan Looping...!!

  • Penyelesaian:

uses wincrt;

var nilai:array[1..3]of integer ;

jumlah,rata:real;

i:integer;

begin

writeln;

for i:=1 to 3 do

begin

clrscr;

write('Nilai ke-1:');readln(nilai[1]);

write('Nilai ke-2:');readln(nilai[2]);

write('Nilai ke-3:');readln(nilai[3]);

jumlah:=nilai[1]+nilai[2]+nilai[3];

rata:=jumlah/3;

writeln;

writeln('Rata-ratanya adalah :',rata:6:3);

readln;

end;

end.