Warung Online

Welcome

Free Download... *.DOCS / *.PAS ...NO PASS

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

February 29, 2012

PROGRAM MENENTUKAN BILANGAN GENAP ATAU GANJIL DENGAN PASCAL

program Menentukan_Bilangan_Genap_atau_Ganjil;
uses crt;
var angka : integer;
begin
clrscr;
writeln('MENENTUKAN BILANGAN GENAP ATAU GANJIL');
writeln;
write('Masukkan angka: '); readln(angka);
writeln;

if (angka mod 2 = 0) then
writeln(angka,' adalah Bilangan Genap')
else writeln(angka,' adalah Bilangan Ganjil');
readln;
end.

mod digunakan untuk mencari sisa hasil bagi. Contoh 5 mod 2 = 1 atau 4 mod 2 = 0. 





PROGRAM MENGHITUNG LUAS DAN KELILING SEGITIGA DENGAN PASCAL

program Menghitung_Luas_dan_Keliling_Segitiga;
uses crt;
var  luas, alas, tinggi, sisimiring, keliling : real;
begin
clrscr;
writeln('MENGHITUNG LUAS DAN KELILING SEGITIGA');
writeln;
write('Masukkan alas : '); readln(alas);
write('Masukkan tinggi : '); readln(tinggi);

luas:= 0.5*alas*tinggi;
sisimiring:=sqrt(sqr(alas)+sqr(tinggi));
keliling:= alas + tinggi + sisimiring;

writeln;
writeln('Luas segitiga : ', luas:0:2);
writeln('Keliling segitiga : ', keliling:0:2);
readln;
end.

Dalam program diatas, semua variabel bertipe real. 
sqrt berfungsi untuk mengakarkan dan sqr untuk mengkuadratkan.
Pada luas dan keliling terdapat :0:2, digunakan untuk membatasi angka dibelakang koma menjadi 2.



February 28, 2012

LOOPING DAN ARRAY PADA PASCAL

Di dalam Pascal terdapat beberapa perintah pengulangan (Looping), salah satunya adalah REPEAT….UNTIL…. dan FOR…DO atau FOR….DOWNTO…DO… .
Contoh program dengan perintah REPEAT UNTIL :
Ketikkan syntax berikut dibawah ini




 
Pada program diatas dapat dilihat :
1.       Menggunakan USES CRT,
2.       Mendeklarasikan variable I sebagai INTEGER,
3.       BEGIN, CLRSCR dan variabel I diberi nilai 0,
4.       Memulai pengulangan dengan REPEAT  dengan statement (lihat diatas)agar nilai I bertambah 1 setiap pengulangan,
5.       WRITE untuk menampilkan nilai pada I,
6.       UNTIL untuk membatasi pengulangan hingga nilai I = 10,
7.       READLN dan END untuk mengakhiri program.  
Outputnya :




Contoh program dengan perintah FOR DOWNTO DO dan FOR TO DO :
Ketikkan syntax berikut dibawah ini





Pada program diatas dapat dilihat :
1.       Menggunakan USES CRT,
2.       Mendeklarasikan variable I, J, N, M, dan B sebagai INTEGER,
3.       BEGIN, CLRSCR dan WRITE untuk menampilkan ‘MASUKKAN ANGKA : ’ , READLN(I); untuk membaca nilai yang yang diberi oleh user dan diwakili dengan variable I, 
4.       Memulai pengulangan dengan FOR J sebagai pencacah, I pada baris ini sebagai batas atas pencacah dan DOWNTO 1 sebagai batas bawah pencacah.
5.       BEGIN dan FOR N untuk pengulangan N didalam proses pengulangan J,
6.       WRITE untuk menampilkan nilai N,
7.       END; mengakhiri pengulangan, READLN dan END untuk mengakhiri program. 

Output dengan memasukkan angka 5 : 

 
Contoh program Array :
Ketikkan syntax berikut dibawah ini


Pada program diatas dapat dilihat :
  1. Menggunakan USES CRT,
  2. NPM : ARRAY [1..20] OF STRING [8], berarti array NPM mempunyai 20 buah elemen yaitu dari 1 sampai 20 dengan tipe data string sebatas 8 karakter dst.,
  3. Variabel BANYAK untuk menentukan banyak data yang diinginkan User, dan variabel I sebagai variabel index dengan menggunakan pengulangan FOR I := TO BANYAK DO
  4. WRITE NPM, NAMA, NILAI, UMUR untuk menampilkan data apa saja yang akan dimasukkan oleh User , READLN untuk membaca nilai yang yang dimasukan oleh user dan diwakili dengan variabel masing – masing ditambah variabel indeks I, 
  5. WRITELN untuk menampilkan kata NPM, NAMA, dst. dengan masing – masing spasi yang ditentukan (lihat diatas),
  6. FOR I dan WRITELN merupakan pengulangan yang kedua untuk menampilkan data yang sudah dimasukkan sebanyak data yang dimasukkan (I) oleh User,
  7. END; mengakhiri pengulangan, READLN dan END untuk mengakhiri program.Output 
Dengan BANYAK DATA = 1 :



February 27, 2012

KONDISI PADA PASCAL

KONDISI PADA PASCAL
Di dalam Pascal terdapat beberapa perintah kondisi, salah satunya adalah IF…THEN… dan Case….Of….. .
Contoh program dengan perintah IF THEN :
Ketikkan syntax berikut dibawah ini



Pada program diatas dapat dilihat :
  1. Ketik USES CRT, lalu deklarasikan variabel X  sebagai real, dan variable Y sebagai string.
  2. Lalu BEGIN, CLRSCR, dan variabel Y diberi nilai ‘TIDAK LULUS’
  3. WRITE akan menampilkan ‘NILAI ANDA :  ’, dan readln(X) akan membaca angka yang ditulis oleh User,
  4. Kondisi IF X > 60 akan membuat nilai Y dari ‘TIDAK LULUS’ menjadi ‘LULUS’, apabila Y < 60 maka nilai Y tetap ‘TIDAK LULUS’,
  5. WRITELN(Y) akan menampilkan hasil proses kondisi sebelumnya, lalu READLN DAN END,
  6. Jalankan program dengan NILAI ANDA : 70, maka outputnya adalah sebagai berikut


Contoh program dengan perintah CASE OF :
Ketikkan syntax berikut



  1. Dimulai dengan USES CRT, lalu deklarasikan variable NILAI sebagai CHAR,
  2. BEGIN,CLRSCR, WRITELN NILAI ANDA dan READLN(NILAI) untuk membaca character yang ditulis oleh User,
  3. CASE (NILAI) OF untuk membuat variabel NILAI mempunyai 3 pilihan. ‘a’ sebagai Tshirt, ‘b’ sebagai Sepatu, ‘c’ sebagai Topi,
  4. END; untuk mengakhiri CASE OF, lalu READLN dan END. untuk mengakhiri program. 
Dengan memasukkan a pada NILAI ANDA  maka outputnya akan seperti berikut



Sumber : Laporan Akhir ( LA ) Praktikum Pascal - Kondisi pada Pascal


 

February 26, 2012

PROGRAM SEDERHANA PASCAL

BAHASA PEMROGRAMAN PASCAL

Pascal adalah salah satu bahasa pemrograman tingkat tinggi. Sebelum menuliskan statement  pada Pascal, harus mendeklarasikan terlebih dahulu variabel – variabelnya.

Contoh Program 1 :
 Jalankan TURBO.EXE, lalu ketikkan syntax berikut 





Pada program ini akan dibuat program biodata sederhana. Pertama, ‘USES CRT’ menerangkan bahwa program tersebut menggunakan unit crt. Seperti yang telah disebutkan sebelumnya, kita harus mendeklarasikan variabel yaitu ‘NAMA’ dan ‘NPM’ sebagai variabel string. ‘BEGIN’ sebagai awal dari blok program yang akan diproses, dan ‘CLRSCR’ sebagai instruksi untuk menghapus layar setelah output dikeluarkan. ‘WRITELN’ digunakan untuk menampilkan kata BIODATA dengan kursor berganti baris, ‘WRITE’ untuk menampilkan kata di tempat yang sama dan ‘READLN’ untuk membaca masukan dari keyboard. 

Selanjutnya, jalankan program diatas ( gunakan menu Run > Run atau tekan CTRL + F9 ), maka akan muncul outputnya. Pada ‘NAMA’ dan ‘NPM‘ isi dengan nama dan npm kita. Lalu tekan enter maka akan muncul hasilnya seperti dibawah ini
         




Contoh Program 2 :
Ketikkan syntax berikut





Program yang kedua ini lebih sederhana daripada program yang pertama, yaitu menampilkan output ‘HALLOWORLD’. Berbeda dengan program pertama, program ini tidak memakai variabel sehingga tidak perlu mendeklarasikan variabel. ‘USES CRT’. ‘BEGIN’ mengawali blok program dan ‘WRITE’ untuk menampilkan ‘HALLOWORLD’. Selanjutnya jalankan program (CTRL + F9), maka output akan muncul sebagai berikut







Sumber : Laporan Akhir ( LA ) Praktikum Pascal - Intro Pascal



January 09, 2012

PROGRAM MULTI LIST DENGAN PASCAL

Program ini disebut Multi List, karena program ini menggunakan 2 record dengan masing - masing data yang berbeda. Kemudian kedua record tersebut disatukan dengan menggunakan NIRM sebagai primary key sehingga gabungan data menjadi akurat. Program ini juga dapat menghasilkan 3 buah file, yaitu file Biodata, file NIRM, dan file Daftar Mahasiswa.


LISTING PROGRAM :


PROGRAM MULTI_LIST;

USES CRT;

TYPE RBDT = RECORD

NPM : ARRAY [1..10] OF STRING [18];

NIRM : ARRAY [1..10] OF STRING [8];

NAMA : ARRAY [1..10] OF STRING [15];

ALM : ARRAY [1..10] OF STRING [15];

END;

TYPE RNIRM = RECORD

NIRM2 : ARRAY [1..10] OF STRING [8];

TM2 : ARRAY [1..10] OF STRING [10];

TH2 : ARRAY [1..10] OF STRING [10];

END;

VAR FBDT : ARRAY [1..10] OF RBDT;

FNIRM : ARRAY [1..10] OF RNIRM;

FILES,FILES2,FILES3 : TEXT;

PIL : CHAR;

N : INTEGER;

LABEL RETURN;

PROCEDURE LINES;

VAR K : INTEGER;

BEGIN

FOR K := 1 TO 80 DO

WRITE('-');

END;

PROCEDURE LINES2;

VAR K : INTEGER;

BEGIN

FOR K := 1 TO 50 DO

WRITE('-');

END;

PROCEDURE LINES3;

VAR K : INTEGER;

BEGIN

FOR K := 1 TO 49 DO

WRITE('-');

END;

PROCEDURE INPUT_DATA;

VAR I,J : INTEGER;

BEGIN

CLRSCR;

ASSIGN(FILES,'FILE_BIODATA.TXT');

REWRITE(FILES);

WRITELN(' FILE BIODATA');

WRITELN;

WRITE(' BANYAKNYA DATA : ');READLN(N);

FOR I := 1 TO N DO

BEGIN

WITH FBDT[I] DO

BEGIN

WRITELN(' ');

WRITELN(' DATA KE-',I);

WRITE(' NPM : ');READLN(NPM[I]);WRITELN(FILES,NPM[I]);

WRITE(' NIRM : ');READLN(NIRM[I]);WRITELN(FILES,NIRM[I]);

WRITE(' NAMA : ');READLN(NAMA[I]);WRITELN(FILES,NAMA[I]);

WRITE(' ALAMAT : ');READLN(ALM[I]);WRITELN(FILES,ALM[I]);

END;

END;

CLOSE(FILES);

CLRSCR;

ASSIGN(FILES2,'F_NIRM.TXT');

REWRITE(FILES2);

WRITELN(' FILE NIRM');

WRITELN;

WRITELN(' BANYAKNYA DATA : ',N);

FOR J:= 1 TO N DO

BEGIN

WITH FNIRM[J] DO

BEGIN

WRITELN('');

WRITELN(' DATA KE-',J);

WRITE(' NIRM : ');READLN(NIRM2[J]);WRITELN(FILES2,NIRM2[J]);

WRITE(' TANGGAL MULAI : ');READLN(TM2[J]);WRITELN(FILES2,TM2[J]);

WRITE(' TANGGAL HABIS : ');READLN(TH2[J]);WRITELN(FILES2,TH2[J]);

END;

END;

CLOSE(FILES2);

END;

PROCEDURE VIEW_BIODATA;

VAR I,J : INTEGER;

BEGIN

CLRSCR;

RESET(FILES);

FOR I := 1 TO N DO

BEGIN

WITH FBDT[I] DO

BEGIN

GOTOXY (20,2);WRITELN('FILE BIODATA');

GOTOXY (1,4);LINES2;

GOTOXY (2,5);WRITELN('NO NPM NIRM NAMA ALAMAT ');

GOTOXY (1,6);LINES2;

GOTOXY (2,6+I);WRITE(I:2);

GOTOXY (7,6+I);WRITE(NPM[I]);

GOTOXY (17,6+I);WRITE(NIRM[I]);

GOTOXY (29,6+I);WRITE(NAMA[I]);

GOTOXY (41,6+I);WRITE(ALM[I]);

END;

END;

GOTOXY (1,7+I);LINES2;

CLOSE(FILES);

READLN;

END;

PROCEDURE VIEW_NIRM;

VAR J : INTEGER;

BEGIN

CLRSCR;

RESET(FILES2);

FOR J := 1 TO N DO

BEGIN

WITH FNIRM[J] DO

BEGIN

GOTOXY (19,2);WRITELN('FILE NIRM');

GOTOXY (1,4);LINES3;

GOTOXY (2,5);WRITELN('NO NIRM TGL MASUK TGL HABIS');

GOTOXY (1,6);LINES3;

GOTOXY (2,6+J);WRITE(J:2);

GOTOXY (7,6+J);WRITE(NIRM2[J]);

GOTOXY (20,6+J);WRITE(TM2[J]);

GOTOXY (37,6+J);WRITE(TH2[J]);

END;

END;

GOTOXY (1,7+J);LINES3;

CLOSE(FILES2);

READLN;

END;

PROCEDURE VIEW_DAFTAR_MAHASISWA;

VAR I,J : INTEGER;

BEGIN

CLRSCR;

ASSIGN(FILES3,'DAFTAR_MAHASISWA.TXT');

REWRITE(FILES3);

FOR I := 1 TO N DO

BEGIN

WITH FBDT[I] DO

BEGIN

FOR J := 1 TO N DO

BEGIN

WITH FNIRM[J] DO

BEGIN

GOTOXY (31,2);WRITELN('DAFTAR MAHASISWA');

GOTOXY (1,4);LINES;

GOTOXY (2,5);WRITELN('NO NPM NIRM NAMA ALAMAT TGL MASUK TGL HABIS');

GOTOXY (1,6);LINES;

GOTOXY (2,6+I);WRITE(I:2);

GOTOXY (7,6+I);WRITE(NPM[I]);

GOTOXY (17,6+I);WRITE(NIRM[I]);

GOTOXY (29,6+I);WRITE(NAMA[I]);

GOTOXY (41,6+I);WRITE(ALM[I]);

IF NIRM[I] = NIRM2[J] THEN

BEGIN

GOTOXY (54,6+I);WRITE(TM2[J]);

GOTOXY (69,6+I);WRITE(TH2[J]);

END;

END;

END;

WITH FNIRM[J] DO

BEGIN

WRITELN(FILES3,NPM[I]);

WRITELN(FILES3,NIRM[I]);

WRITELN(FILES3,NAMA[I]);

WRITELN(FILES3,ALM[I]);

WRITELN(FILES3,TM2[J]);

WRITELN(FILES3,TH2[J]);

END;

END;

END;

GOTOXY (1,7+I);LINES;

CLOSE(FILES3);

READLN;

END;

BEGIN

REPEAT

RETURN:

CLRSCR;

GOTOXY (9,3);WRITELN('<<< MENU FILE >>>');

GOTOXY (4,5);WRITELN('1. FILE BARU DAN INPUT DATA');

GOTOXY (4,6);WRITELN('2. TAMPILKAN FILE BIODATA');

GOTOXY (4,7);WRITELN('3. TAMPILKAN FILE NIRM');

GOTOXY (4,8);WRITELN('4. TAMPILKAN DAFTAR MAHASISWA');

GOTOXY (4,9);WRITELN('5. SELESAI');

GOTOXY (4,12);WRITE('PILIHAN ANDA : ');READLN(PIL);

IF NOT (PIL IN ['1'..'5']) THEN

BEGIN

WRITELN(CHAR(7));

GOTOXY (23,13);WRITELN('PILIHAN SALAH !!!');

READLN;

GOTO RETURN;

END;

CASE PIL OF

'1' : INPUT_DATA;

'2' : VIEW_BIODATA;

'3' : VIEW_NIRM;

'4' : VIEW_DAFTAR_MAHASISWA;

END;

UNTIL PIL = '5';

END.



CATATAN :

NPM : Nomor Pokok Mahasiswa

NIRM, NIRM2 : Nomor Induk Registrasi Mahasiswa

ALM : Alamat

RBDT : Record BIODATA

RNIRM :Record NIRM

FBDT : FILE BIODATA

FNIRM : FILE NIRM



OUTPUT :


MENU PROGRAM



MENU 1 :

INPUT FILE BIODATA
(Dalam pengisian NIRM pada FILE BIODATA, harus diingat agar data 'sama' dengan NIRM pada FILE NIRM)





INPUT FILE NIRM
(Seperti FILE BIODATA, dalam pengisian NIRM, harus 'sama' dengan NIRM pada FILE BIODATA)




MENU 2 :

TAMPILAN FILE BIODATA




MENU 3 :

TAMPILAN FILE NIRM



MENU 4 :

TAMPILAN FILE DAFTAR MAHASISWA





November 06, 2011

PROGRAM PASCAL SAVE & SORTIR

Program pascal_save_sortir ;
uses crt;
label z,l;
var textfile:text;
a,b,c:array[1..20] of string;
i,j,k:integer;
temp,temp1,temp2:string;
q:char;

procedure sort; (* membuat block program untuk menyortir data *)
begin
clrscr;
writeln('1.Nama');
writeln('2.Npm');
writeln('3.Kelas');
writeln('Pilih yang ingin di sortir : ');readln(q);
if q = '1' then
begin
for i := 1 to k-1 do (* untuk membandingkan angka sesudahnya untuk mengetahui nilai yang lebih kecil*)
for j:=i+1 to k do
if a[j]
begin
temp:=a[i] ; temp1:=b[i] ; temp2:=c[i];
a[i]:=a[j] ; b[i]:=b[j] ; c[i]:=c[j];
a[j]:=temp ; b[j]:=temp1 ; c[j]:=temp2;
end;
end;
if q = '2' then
begin
for i := 1 to k-1 do
for j:=i+1 to k do
if b[j]
begin
temp:=a[i] ; temp1:=b[i] ; temp2:=c[i];
a[i]:=a[j] ; b[i]:=b[j] ; c[i]:=c[j];
a[j]:=temp ; b[j]:=temp1 ; c[j]:=temp2;
end;
end;

if q = '3' then
begin
for i := 1 to k-1 do
for j:=i+1 to k do
if c[j]
begin
temp:=a[i] ; temp1:=b[i] ; temp2:=c[i];
a[i]:=a[j] ; b[i]:=b[j] ; c[i]:=c[j];
a[j]:=temp ; b[j]:=temp1 ; c[j]:=temp2;
end;
end;

Assign(textfile,'NAMA.TXT');
Rewrite(textfile);
for i:= 1 to k do writeln(textfile,a[i]);
close(textfile);
Assign(textfile,'NPM.TXT');
Rewrite(textfile);
for i:= 1 to k do writeln(textfile,b[i]);
close(textfile);
Assign(textfile,'KELAS.TXT');
Rewrite(textfile);
for i:= 1 to k do writeln(textfile,c[i]);
close(textfile);
(* untuk menulis hasil sortir ke format .txt *)
end;

procedure tulis; (* membuat block program menulis data baru *)
Begin
clrscr;
writeln('Masukkan Banyaknya Data : ');readln(k);
Assign(textfile,'NAMA.TXT');
Rewrite(textfile);
for i:= 1 to k do
begin
clrscr;
Writeln('Masukkan nama ke-',i,' : ');readln(a[i]);
writeln('Masukkan npm ke-',i,' : ');readln(b[i]);
writeln('Masukkan kelas ke-',i,' : ');readln(c[i]);
writeln(textfile,a[i]);
end;
Close(textfile);

Assign(textfile,'NPM.TXT');
Rewrite(textfile);
for i:= 1 to k do writeln(textfile,b[i]);
close(textfile);

Assign(textfile,'KELAS.TXT');
Rewrite(textfile);
for i:= 1 to k do writeln(textfile,c[i]);
close(textfile);
(* untuk menulis hasil data yang di input ke format .txt *)
End;

procedure output; (* untuk membuat block program untuk hasil *)
begin
clrscr;
writeln('************************************************************************');
writeln('* no * Nama * Kelas * NPM *');
writeln('************************************************************************');
for i:=1 to k do
writeln('*',i:2,'. ','*':1,a[i]:15,'*':10,c[i]:11,'*':7,b[i]:16,'*':7);
writeln('************************************************************************');

assign(textfile,'HASIL.TXT');
rewrite(textfile);
writeln(textfile,'************************************************************************');
writeln(textfile,'* no * Nama * Kelas * NPM *');
writeln(textfile,'************************************************************************');
for i:=1 to k do
writeln(textfile,'*',i:2,'. ','*':1,a[i]:15,'*':10,c[i]:11,'*':7,b[i]:16,'*':7);
writeln(textfile,'************************************************************************');
close(textfile);
(*untuk memcetak ke layar hasil sortir atau yang belum di sortir ke layar dan membuatnya ke format .txt *)
end;


begin
clrscr;
writeln('Mulai baru(y/t) : ');readln(q);
if (q='t') or (q='T') then
begin
k:=1;
assign(textfile,'NAMA.TXT');
reset(textfile);
repeat
readln(textfile,a[k]);
k :=k+1;
until a[k] ='';
close(textfile);
(* untuk membaca jumlah data yang di miliki *)

assign(textfile,'KELAS.TXT');
reset(textfile);
for j := 1 to k do readln(textfile,c[j]);
close(textfile);

assign(textfile,'NPM.TXT');
reset(textfile);
for j := 1 to k do readln(textfile,b[j]);
close(textfile);
end;

z: clrscr;
writeln('******************');
writeln('Program Sorting');
Writeln('******************');
writeln('1.Masukkan Data');
writeln('2.Sortir Data');
writeln('3.Output');
writeln('4.Exit');
writeln('Masukkan (1,2,3,4) : ');readln(q);
case q of
'1' : tulis;
'2' : sort;
'3' : output;
'4' : goto l;
end;
writeln('Selesai(press Enter)');readln;
goto z;
l: end.


OUTPUT :


Menu



Data Sebelum Sortir


Sortir Menurut NPM