Tuesday, June 2, 2009

Code Menara Hanoi


uses crt;
var n, langkah: integer;
asal, bantuan, tujuan: char;

procedure hanoi (jumlah:integer; asal, tujuan, bantuan: char; var langkah :integer);
begin
if jumlah=1 then
begin
langkah:=langkah+1;
writeln(' pindahkan dari ',asal,' ke ',tujuan);
end
else
begin
hanoi(jumlah-1, asal, bantuan, tujuan, langkah);
hanoi(1, asal, tujuan, bantuan, langkah);
hanoi(jumlah-1, bantuan, tujuan, asal, langkah);
end;
end;

begin
readln(n);
langkah:=0;
hanoi(n,'A','C','B',langkah);
writeln ('Diperlukan ',langkah,' langkah');
readln;
end.

Contoh Penggunaan Fungsi


Uses wincrt;
var
n:Integer;
Fuction AAA (N:Integer):Integer;
Begin
if N=0 then
AAA:=1
else
AAA:=n*AAA(N-1))
end;
Begin
readln(n)
Writeln (AAA(N));
readln();
end.

Rekursi


Rekursi (recursion) adalah proses dari suatu sub program baik fungsi maupun prosedure yang memanggil dirinya sendiri.

Contoh :

Program Rekursi_pascal;
uses Crt;
procedure rekursi(A:integer);
begin
if A < 10 then
begin
write(’Pascal’);
A:=A+1;
rekursi(A);
end;
end;

var
x:integer;
begin
clrscr;
x:=3; ———> nilai X dapat kita tentukan sendiri
rekursi(x);
readln;
end.

akan menghasilkan :


Contoh faktorial menggunakan rekursi :

Program Faktorial_pascal;
function Faktorial(a:integer):longint;
begin
if (A=1)then
Faktorial:=1
else
Faktorial:=a*faktorial(a-1);
end;
var
x:integer;
begin
writeln(’Faktorial sequence’);
write(’Berapa Faktorial :’);readln(x);
writeln(x,’faktorial ‘,’=',faktorial(x));
readln;
end.

Hasil Tampilan :


Contoh untuk indefinite dalam pascal merupakan proses rekursi yang dilakukan tanpa berhenti atau rekursi yang tidak berujung.

Program rekursi_indefinite;
procedure rekursi;
begin
write(’Pascal’);write;
rekursi;
end;
begin
rekursi;
readln;
end.

Tampilan hasil :


Selamat Mencoba…..


-------------------------------------------------------------------------


program pointer1;
uses wincrt;
type ptr = ^simpul;
simpul = record
data : string;
next : ptr;
end;
var list,baru,bantu : ptr;
i : integer;
begin
list := nil;
for i:=1 to 5 do
begin
new(baru);
write('Nama ke-',i);readln(baru^.data);
baru^.next:=list;
96
list:=baru;
end;
bantu:=list;
while bantu<>nil do
begin
writeln(bantu^.data);
bantu:=bantu^.next;
end;
end.

Laporan Array


Laporan
Project Pembukuan Kios Pulsa

A. Latar belakang
Teknologi komputer adalah sebuah sistem yang dapat mengoptimalisasi sistem kerja user atau sebuah instansi. Teknologi komputer adalah sebuah sistem pendukung yang saat ini sangat urgent bagi sebuah sistem yang berada pada operasional seseorang user atau instansi. Komputer adalah perangkat yang mendukung kreatifitas dari setiap individu ataupun kelompok yang mengharapkan kemudahan dalam operasional kerjanya. Kinerja yang di tawarkan dari sebuah sistem komputerpun termasuk salah satu dari pada kemudahan yang dapat dirasakan oleh user atau penggunanya sendiri. Namun apabila ada kerusakan pada sebuah sistem pada sebuah komputer, dampak yang terjadi adalah akan terjadiya hambatan yang akan menghambat sistem kerja seorang user atau sebuah instansi.
Seiring dengan kemajuan teknologi sekarang, banyak usaha-usaha kecil seperti kios pulsa. Kios ini telah memiliki pelanggan yang terdiri dari cabang-cabang mereka. Kios pulsa ini terletek pada depan pindad denak universitar Unjani. Kios ini didirikan pada pertengahan tahun 2007 dan usaha ini pertama memiliki tempat di Jl. Mars Raya, sekarang tempat itu menjadi salah satu cabang mereka. Setelah mereka sukses dan memiliki dana lebih, mereka membangun tempat di depan pindad dan itu adalah pusat kios yang mereka miliki.
B. Tujuan
Berdasarkan latar belakang yang kami peroleh dari hasil surfey, kami menyimpulkan bahwa pembuatan makalah kami ini antra lain :
a. Memperbaiki form pembukuan yang mereka miliki, dengan menampilkan form pembukuan tersebut dalam bentuk program dengan menggunakan bahasa paskal.
b. Menunjukan form pembukuan kios pulsa.

C. Hasil survey
Manurut hasil survey yang kami lakukan pada tanggal 25 maret, kami memperoleh banyak informasi yang sangat berguna untuk membangun program ini. Kami telah mendapatkan form pembukuan mereka.
Didalam form tersebut memiliki banyak sekali atribut, atribut-atributnya itu adalah tanggal, no HP, produk, harga jual, jenis, saldo, dan nama. Tanggal yang ada disana merupakan kapan pelanggan atau konsumen melkukan transaksi. No HP disana bertujuan untuk menandai tujuan nomor pelanggan. Produk disana bertujuan untuk manandai profider apa yang ditulis oleh penginput data dengan contoh “I10” merupakan kode untuk provider indosat dengan jenis IM3 dengan jumlah nominal Rp. 10.000,00. Harga jual tersebut untuk menuliskan harga yang kios pulsa tersebut jual kepada konsumen. Jenis yang saya maksud itu untuk menandakan apakan pulsa yang dibeli oleh konsumen tersebut berjenis voucher fisik atau elektrik. Saldo yang saya maksud disana adalah perhitungan mudur modal yang kios pulsa tersebut miliki. Nama yang saya maksud disana adalah orang-orang yang mengambil pulsa ke kios tersebut, dikarenakan banyak yang mengambil bararang terlebih dahulu.

[DolpHo] Tugas Pointer Pulsa


Uses crt;

type
p_pulsa = ^pulsa;
pulsa = record
nohp:string[15];
tgl,produk,jenis,hrg,hrgdasar,dep:string[20];
nama,ket:String[30];
next : p_pulsa;
end;
Var
fpulsadb : text;
fpulsadb2 : text;
huruf : string[100];
baris,kolom : integer;
i : integer;
head,tail,p_temp:p_pulsa;
input,input2:char;
label menu,Selesai;

{-----------Menambahkan data Record---------------}

procedure TambahData ();
Begin
clrscr;
assign(fpulsadb,'DataTrxP.txt');
append(fpulsadb);
assign(fpulsadb2,'DataTrxP2.txt');
append(fpulsadb2);
p_temp:=head;
with p_temp^ do
begin
write('Tanggal : '); Readln(tgl);
write(fpulsadb,tgl,':');
write('No.HP : '); Readln(nohp);
write(fpulsadb,nohp,':');
write('Produk : '); Readln(produk);
write(fpulsadb,produk,':');
write('Jenis Voucher :'); Readln(jenis);
write(fpulsadb,Jenis,':');
write('Harga Jual : '); Readln(hrg);
writeln(fpulsadb,hrg,':');
write('Harga Dasar : '); Readln(hrgdasar);
write(fpulsadb2,hrgdasar,':');
write('Sisa Deposit/Stock : '); Readln(dep);
write(fpulsadb2,dep,':');
write('Nama : '); Readln(nama);
write(fpulsadb2,nama,':');
write('keterangan : '); Readln(ket);
writeln(fpulsadb2,ket,':');
writeln('');
p_temp:=p_temp^.next;
end;
close(fpulsadb);
close(fpulsadb2);
end;

{-----------Menampilkan data dari Record---------------}

procedure TampilRecord ();
begin
if head<>nil then
begin
p_temp:=head;
for i := 1 to 5 do
begin
writeln('Tanggal : ',p_temp^.tgl);
writeln('Nomor HP : ',p_temp^.nohp);
writeln('Produk : ',p_temp^.produk);
writeln('Jenis Voucher : ',p_temp^.jenis);
writeln('Harga Jual : ',p_temp^.hrg);
writeln('Harga Dasar : ',p_temp^.hrgdasar);
writeln('Sisa Deposit/Stock: ',p_temp^.dep);
writeln('Nama : ',p_temp^.nama);
writeln('Keterangan : ',p_temp^.ket);
writeln('');
p_temp:=p_temp^.next;
end;
end else writeln('LinkList masih Kosong');
end;

{----------Mengambil data dari Record-------------}

procedure BacaRecord();
begin
assign(fpulsadb,'DataTrxP.txt');
reset(fpulsadb);
assign(fpulsadb2,'DataTrxP2.txt');
reset(fpulsadb2);
repeat
readln(fpulsadb,huruf);
new(p_temp);
for kolom := 1 to 9 do
case kolom of
1 : begin
i:=1;
repeat
p_temp^.tgl:=p_temp^.tgl+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
2 : begin
i:=i+1;
repeat
p_temp^.nohp:=p_temp^.nohp+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
3 : begin
i:=i+1;
repeat
p_temp^.produk:=p_temp^.produk+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
4 : begin
i:=i+1;
repeat
p_temp^.jenis:=p_temp^.jenis+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
5 : begin
i:=i+1;
repeat
p_temp^.hrg:=p_temp^.hrg+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
6 : begin
i:=1;
readln(fpulsadb2,huruf);
repeat
p_temp^.hrgdasar:=p_temp^.hrgdasar+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
7 : begin
i:=i+1;
repeat
p_temp^.dep:=p_temp^.dep+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
8 : begin
i:=i+1;
repeat
p_temp^.nama:=p_temp^.nama+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
9 : begin
i:=i+1;
repeat
p_temp^.ket:=p_temp^.ket+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
end;
if head=nil then head:=p_temp
else tail^.next:=p_temp;
tail:=p_temp;
tail^.next:=nil;
if seekeof(fpulsadb) then break;
until eof (fpulsadb);
close(fpulsadb);
close(fpulsadb2);
end;

{-----------Program---------------}

BEGIN
clrscr;
head:=nil;
huruf:='';
menu:;
clrscr;
writeln('==================(Kios Pulsa)=================');
writeln('===>>>| 1. Tambah record kedalam daftar.|<<<===');
writeln('===>>>| 2. Tampilkan Record. |<<<===');
writeln('===>>>| 3. Ambil records dari file. |<<<===');
writeln('===>>>| 4. Selesai |<<<===');
writeln('===============================================');
write('Pilihan : ');
input:=readkey;
case input of
'1' : TambahData;
'2' : TampilRecord;
'3' : BacaRecord;
'4' : goto Selesai;
end;
repeat
writeln;
write('Kembali ke menu Utama (y/t)');
input2:=upcase(readkey);
if input2='Y' then goto menu;
if input2='Y' then goto Selesai;
until input2 in['Y','T'];
Selesai:;
END.

[DolpHo] Tugas Array Pulsa


Uses crt;

type
pulsa = record
tgl : string[20];
nohp : string[15];
produk : string[20];
jenis : string[20];
hrg : string[20];
hrgdasar : string[20];
dep : string[20];
nama : string[30];
ket : string[30];

end;
Var
fpulsadb,fpulsadb2 : text;
huruf : string[100];
p : array [1..5] of pulsa;
baris,kolom,i,j : integer;

BEGIN
clrscr;
huruf:='';
assign(fpulsadb,'PulsaFT.txt');
reset(fpulsadb);
assign(fpulsadb2,'PulsaFT2.txt');
reset(fpulsadb2);
for baris := 1 to 5 do
begin
readln(fpulsadb,huruf);
j:=length(huruf);
for kolom := 1 to 9 do
case kolom of
1 : begin
i:=1;
repeat
p.tgl[baris]:=p.tgl[baris]+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
2 : begin i:=i+1;
repeat
p.nohp[baris]:=p.nohp[baris]+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
3 : begin i:=i+1;
repeat
p.produk[baris]:=p.produk[baris]+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
4 : begin i:=i+1;
repeat
p.jenis[baris]:=p.jenis[baris]+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
5 : begin i:=i+1;
repeat
if i > 50 then
begin
readln(fpulsadb2,huruf);
i:=1;
end;
p.hrg[baris]:=p.hrg[baris]+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
6 : begin i:=i+1;
repeat
if i > 50 then
begin
readln(fpulsadb2,huruf);
i:=1;
end;
p.hrgdasar[baris]:=p.hrgdasar[baris]+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
7 : begin i:=i+1;
repeat
if i > 50 then
begin
readln(fpulsadb2,huruf);
i:=1;
end;
p.dep[baris]:=p.dep[baris]+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
8 : begin i:=i+1;
repeat
if i > 50 then
begin
readln(fpulsadb2,huruf);
i:=1;
end;
p.nama[baris]:=p.nama[baris]+huruf[i];
i:=i+1;
until huruf[i]=',';
end;
9 : begin i:=i+1;
repeat
if i > 50 then
begin
huruf:='';
readln(fpulsadb2,huruf);
i:=1;
end;
p.ket[baris]:=p.ket[baris]+huruf[i];
i:=i+1;
until huruf[i]=',';
end;

end;

if seekeof(fpulsadb) then break;
end;
for i := 1 to 5 do
begin
writeln('Tanggal : ',p.tgl[i]);
writeln('Nomor HP : ',p.nohp[i]);
writeln('Produk : ',p.produk[i]);
writeln('Jenis Voucher : ',p.jenis[i]);
writeln('Harga Jual : ',p.hrg[i]);
writeln('Harga Dasar : ',p.hrgdasar[i]);
writeln('Sisa Deposit/Stock: ',p.dep[i]);
writeln('Nama : ',p.nama[i]);
writeln('Keterangan : ',p.ket[i]);
writeln('');
end;
close(fpulsadb);
close(fpulsadb2);
readln;
END.