Showing posts with label Pascal. Show all posts
Showing posts with label Pascal. Show all posts

Friday, May 15, 2009

Coding LA Pascal (18/05/09)

Ini dia coding LA pascal yang lumayan panjang dan memakan waktu buat diketik.

uses crt;
type
pointer = ^cell;
cell = record
value : integer;
next : pointer;
end;

last, belakang, q, p : pointer;
angka, nomor : integer;
jawab : char;
found : boolean;

procedure prinlist;
begin
last:=belakang;
while last <> nil do
begin
writeln (last^.value);
last:=last^.next;
end;
end;

procedure look;
begin
writeln ('Masukkan Angka Yang Akan Dicari : ');
readln (angka);
last:=belakang;
found:=false;
while (last<>nil) and (found<>true) do
begin
if last^.value=angka then
begin
found:=true;
writeln ('Angka Ditemukan ');
writeln (last^.value);
found:=true;
end
else
last:=last^.next;
end;
end;

procedure delete;
begin
writeln ('Angka Lain Dihapus?');
readln (angka);
last:=belakang;
found:=false;
while (last<>nil) and (found<>true) do
begin
last:=last^.next
if q^.value=angka then
begin
dispose (q);
found:=true;
end
else
if last^.value=angka then
begin
writeln (last^.value,' ditemukan dan dihapus');
q^.next:=last^.next;
dispose (last);
found:=true;
end;
end;
end;

begin
clrscr;
belakang:=nil;
nomor:=1;
writeln ('Nomor ',nomor);
jawab:='y';
while (jawab<>'t') do
begin
writeln ('Masukkan Angka: ');
readln (angka);
new(last);
last^.value:=angka;
last^.next:=belakang;
belakang:=last;
nomor:=nomor+1;
writeln ('Nomor ',nomor);
writeln ('Terus? Y/T');
readln (jawab);
end;
printlist;
look;
delete;
printlist;
readln (jawab);
end.

ini emang agak panjang. kalo pas di-run trus nanti hasil paling akhir ada dua angka berupa '8' dan '0', abaikan saja. :). memang begitu. coba aja. karena setiap angka, outputnya beda.
makasih.

Friday, April 17, 2009

Laporan Pendahuluan (Pointer)

teman-temanku yang sudah mulai rewel soal LP..
mav yahh atas keterlambatannya..

hhe.

ini dia jawaban LP pascal.

1. Apa yang kamu ketahui tentang tipe data pointer?
>>Tipe data pointer adalah tipe data khusus yang bersifat dinamis.

2. Sebutkan bentuk umum dari pointer!
>> type identifier : ^tipedata

3. Buatlah contoh program dengan menggunakan pointer!
>>*jawabannya lumayan panjang lhooo.. selamat mengetikk...*
uses crt;
type ptr =^data;
data = record
isi : string;
pre,
next : ptr;
end;
var baru,posisi,awal,akhir : ptr;

procedure tambah_belakang (elemen : string);
begin
new (baru);
baru^.isi :=elemen;
baru^.pre :=nil;
baru^.next :=nil;
if awal = nil then awal :=baru
else
begin
akhir^.next :=baru;
baru^.pre := akhir;
end;
akhir := baru;
akhir^.next :=nil;
end;

procedure baca_depan;
begin
posisi :=awal;
repeat
write (posisi^.isi);
posisi := posisi^.next;
until posisi = nil;
end;

procedure baca_belakang;
begin
posisi :=akhir;
repeat
write (posisi^.isi);
posisi :=posisi^.pre;
until posisi = nil;
end;


begin
clrscr;
tambah_belakang ('a');
tambah_belakang ('b');
tambah_belakang ('c');
tambah_belakang ('d');
writeln ('JIKA DIBACA DARI DEPAN ADALAH');
baca_depan;
readln;
writeln ('JIKA DIBACA DARI BELAKANG ADALAH');
baca_belakang;
readln;
end.

oia, soal nomor dua gue ga yakin bener apa ga soalnya, kalo emang soalnya salah, berarti jawabannya salah. Kalo soalnya begitu, jawabannya udah bener..
Thank You..

Wednesday, April 8, 2009

LAPORAN PENDAHULUAN (FILE)

1. Sebutkan macam-macam pendekarasian file pada Pascal!

a. File Bertipe
b. File Teks
c. File Tak Bertipe

2. Apa yang dimaksud dengan Binary File?

Binary fila adalah sebuah file dalam komputer yang berisi semua jenis data. Binary file yang hanya berisi data tekstual disebut teks file. Secara struktur, Binary file biasanya diartikan sebagai urutan byte, yang berarti angka biner (bit) yang juga dikelompokkan seperdelapan kertas.

3. Contoh program File pada pascal!

uses crt;
var
nama_file : string [14];
variabel_file : text;
baris : string [80];
begin
clrscr;
writeln ('Membaca File Text');
write ('Nama File: ');
readln (nama_file);
assign (variabel_file,nama_file);
reset (variabel_file);
while not eof (variabel_file) do
begin
readln (variabel_file,baris);
writeln (baris);
end;
close (variabel_file);
readln;
end.

LAPORAN AKHIR PASCAL (FUNCTION & PROCEDURE)

1. Membuat program faktorial!

uses crt;
function fak (var a: integer):integer;
begin
fak := a-1;
end;
var tot,x : integer;
begin
clrscr;
writeln ('Masukkan Angka');
readln (x);
tot :=x;
while x>1 do
begin
tot:=tot*fak(x);
x:=x-1;
end;
writeln (tot);
readln;
end.

2. Buat pemrograman untuk mencari bilangan terbesar!

uses crt;
function besar (a,b:integer):integer;
begin
if a>b then
besar:=a
else
besar:=b;
end;
var nil1,nil2:integer;
begin
write ('Bilangan Pertama: '); readln (nil1);
write ('Bilangan Kedua : '); readln (nil2);
writeln ('Bilangan Terbesar Adalah ',besar(nil1,nil2):2);
readln;
end.

Saturday, April 4, 2009

CODING LAPORAN AKHIR PASCAL (RECORD)

buat temen-temen gue yang ngerasa coding yang gue kasih kemarin ga jalan, ini dia coding aslinya:

uses crt;
type
recPegawai=record
nama,kode,alamat,gaji:string;
end;
var
pegawai:recPegawai;
begin
with pegawai do
begin
clrscr;
kode:=’10108833’;
nama:=’fissheal’;
alamat:=’depok’;
gaji:=’10000000’;
writeln (‘Kode Pegawai : ’,pegawai.kode);
writeln;
writeln (‘Nama Pegawai : ’,pegawai.nama);
writeln;
writeln (‘Alamat Pegawai : ’,pegawai.alamat);
writeln;
writeln (’Gaji Pegawai : ’,pegawai.gaji);
end;
readln;
end.

sebenarnya secara teknis, gue cuman lupa mencantumkan 'end;' di bawah daftar fieldnya (nama,gaji,kode,alamat:string;). Jadi kalo lo pada nge-run program ini, bakal keluar identifier expected. jadi, gue cuma lupa naroh 'end;' ajja. hhe. mav yahh semua.

Friday, April 3, 2009

LAPORAN PENDAHULUAN PASCAL (060409)

1.Apa yang dimaksud dengan procedure dan function?
Procedure dan function adalah suatu program yang terpisah dalam blok sendiri yang berfungsi sebagai modul program yang merupakan sebuah program kecil untuk memproses sebagian dari program utama.

2.Berikan BU procedure dan function!
Procedure:
Procedure nama;
atau
Procedure nama (formal parameter : jenis);

Function:
Function pengenal parameter : tipe pengenal ;

3. Contoh program!
Function:

program contoh_function;
uses wincrt;
var n:integer;

function jumgan(var y:integer):integer;
xx:integer;
begin
:=0;
while y>=1 do
begin
xx:=xx+y;
y:=y-2;
end;
jumgan:=xx;
end;

begin
write('masukkan bilangan bulat = ');readln(n);
if (n mod 2 = 0) then n:=n-1;
writeln(' JUMLAH GANJIL DARI ',n:5,' adalah ', jumgan(n):8);
end.


Procedure:

uses wincrt;
procedure ubah(var a:integer);
begin
a := 10;
writeln('ubah menjadi=',a);
end;
{main program}
var bil : integer;
begin
bil := 1;
writeln('bil sebelum=',bil);
ubah(bil);
writeln('bil sesudah=',bil);
end.