Berlatih Membuat Program Pascal Bagian 10

Kali ini kita akan berlatih untuk membuat program yang berurusan dengan file. File yang banyak dijumpai biasanya berupa file .txt. File ini menyimpan data berupa teks yang dapat kita buat, baca, dan ubah menggunakan pascal. Untuk mengakses file pascal memerlukan uses ke sistem utility, sehingga perlu memanggil Sysutils dibagian uses.

Pada kesempatan kali ini, saya menggunakan Compiler Free Pascal untuk membuat program. Langsung saja kodenya sebagai berikut:

program latihan10;

uses Sysutils,crt;
var
f:textfile;
s:string[20];

BEGIN
clrscr;
writeln('Ketik nama file yang anda inginkan: ');readln(s);
Assign(f,s+'.txt');
rewrite(f);
writeln(f,'Hai Semua!');
writeln(f,'Coba ditulis ya');
close(f);
writeln('File ',s,'.txt telah berhasil dibuat');
readln;
END.

Tampilan programnya sebagai berikut:
Berlatih Membuat Program Pascal Bagian 10
Hasil .exe dari program diatas dapat anda unduh disini


Berlatih Membuat Program Pascal Bagian 9

Latihan kali ini merupakan lanjutan latihan bagian 8 yang menggunakan tipe data record. Maka dari itu langsung saja contoh kodenya sebagai berikut:
program latih9;

uses crt;
type
pegawai = record
nip     : string[6];
nama    : string[15];
gpokok  : real;
case status:char of
'b'     : (tunj_jbt : real);
'k'     : (tunj_jabatan,tunj_istri,tunj_anak : real);
end;

var
karyawan        : pegawai;
total_gaji      : real;

function upstring(s:string):string;
var
i:integer;
begin
for i:=1 to length(s) do
  s[i]:=upcase(s[i]);
  upstring:=s;
end;

procedure inputData;
begin
writeln('=============================================');
writeln('          Program Hitung Gaji');
writeln('=============================================');
  with karyawan do
  begin
    fillchar(karyawan,sizeof(karyawan),0);
    write('Nomor pegawai                    : ');readln(nip);
    write('Nama pegawai                     : ');readln(nama);
    write('Status pegawai (b)bujang/(k)kawin: ');readln(status);
    write('Gaji pegawai                     : ');readln(gpokok);

    if upstring(status) = 'B' then
    begin
      write('Tunjangan Jabatan                : ');readln(tunj_jbt);
    end
    else
    begin
      write('Tunjangan Jabatan                : ');readln(tunj_jabatan);
      write('Tunjangan Istri                  : ');readln(tunj_istri);
      write('Tunjangan Anak                   : ');readln(tunj_anak);
    end;
  end;
end;

procedure tampilData;
begin
  with karyawan do
  begin
    writeln('=============================================');
    writeln('NIP     Nama Pegawai        Gaji');
    writeln('=============================================');
    writeln(nip:7-length(nip),'  ',nama:16-length(nama),'      ',gpokok:5:0);
    writeln('=============================================');
    if upstring(status)='B' then
    begin
      writeln('Tunjangan jabatan                : Rp. ',tunj_jbt:6:0);
      writeln('Tunjangan Istri                  : Rp. ',tunj_istri:6:0);
      writeln('Tunjangan Anak                   : Rp. ',tunj_anak:6:0);
      total_gaji:= gpokok+tunj_jbt;
    end else
    begin
      writeln('Tunjangan jabatan                : Rp. ',tunj_jbt:6:0);
      writeln('Tunjangan Istri                  : Rp. ',tunj_istri:6:0);
      writeln('Tunjangan Anak                   : Rp. ',tunj_anak:6:0);
      total_gaji:= gpokok+tunj_jbt+tunj_istri+tunj_anak;
    end;
    writeln('=============================================');
    writeln('Total Gaji                       : Rp. ',Total_gaji:6:0);
  end;
end;

BEGIN
clrscr;
inputData;
tampilData;
readln;
END.

Tampilannya program diatas sebagai berikut:
Berlatih Membuat Program Pascal Bagian 9
Hasil .exe dari program diatas dapat anda unduh disini

Berlatih Membuat Program Pascal Bagian 8

Pada bagian ini kita akan berlatih membuat kumpulan variabel yang terdiri dari element tidak sama. Bila dibagian 7 anda memahami array yang merupakan kumpulan variabel dengan tipe sama. Kali ini lebih bebas sebab boleh menggunakan elemen data yang tidak sama disebut record.

Record memiliki masing-masing item data yang disebut dengan field. Setiap field dapat dibentuk dari variabel bertipe standar seperti real, integer, char, atau string tetapi boleh juga bila dibentuk dari array ataupun record yang lain.

Contohnya seperti berikut:
Type
Siswa = RECORD
    nama:string[20];
    usia:integer;
    jeniskelamin:char;
end;

Penulisn record harus diawali dengan Type dan ditutup dengan end. Pada record bisa juga dibentuk dari alternatif pilihan item yang telah dibuat atau disebut dengan invariate. Contohnya sebagai berikut:
Type
Siswa = RECORD
   nama: string[20];
   case kelas:char of
    'A' :(... );
    'B' :(... );
end;

Contoh kode programnya sebagai berikut:

program latih8;

uses crt;

type
pegawai = record
nip      : string[6];
nama   : string[15];
gaji     : real;
end;

var
karyawan : pegawai;

procedure inputData;
begin
  with karyawan do
  begin
    write('Nomor pegawai        :'); readln(nip);
    write('Nama pegawai         :'); readln(nama);
    write('Gaji pegawai (angka) :'); readln(gaji);
  end;
end;

procedure tampilkanData;
begin
  with karyawan do
  begin
    writeln('=======================================');
    writeln('nip    nama            gaji');
    writeln(nip:7-length(nip),' ',nama:16-length(nama),' ',gaji:5:0);
  end;
end;

BEGIN
clrscr;
inputData;
tampilkanData;
readln;
END.

Hasil tampilan program diatas sebagai berikut:
Berlatih Membuat Program Pascal Bagian 8
Hasil .exe dari kode diatas dapat anda unduh disini

Berlatih Membuat Program Pascal Bagian 7

Untuk latihan kali ini, kita akan mempelajari data yang dikumpulkan dalam satu variabel yang disebut array. Array di Pascal memiliki ciri khas yaitu terdiri dari sekumpulan data dalam satu type data. Agar array dapat dimanfaatkan maka array terlebih dulu harus dideklarasikan dengan suatu identifier dan ditentukan dulu tipe datanya serta indexnya.
Contohnya:
Nilai : array[1..10] of integer;

Array sebenarnya membuat proses data lebih cepat dari pada variabel yang dipanggil satu persatu. Array menempati memory komputer dalam satu jenis tipe data yang sama dengan nilai yang dapat berbeda-beda. Array biasa juga disebut sebagai tipe data larik yang bisa dibuat lebih dari satu dimensi. Setiap elemen array ditandai dengan index.

Langsung saja kita ke contoh programnya:
program latih7;

uses crt;

var
i,j,k : integer;
a,b : array[1..10] of integer;

BEGIN
clrscr;
writeln('Program Pengurutan Nilai');
writeln('------------------------');
for i:=1 to 10 do
begin
  write('Masukkan nilai ke ',i,' :');readln(a[i]);
end;

b:=a;
repeat
  j:=1;
  repeat
    if a[j]>a[j+1] then
    begin
      k      := a[j];
      a[j]   := a[j+1];
      a[j+1] := k;
    end;
    if b[j]<b[j+1] then
    begin
      k      := b[j];
      b[j]   := b[j+1];
      b[j+1] := k;
    end;
    inc(j);
  until j=10;
  dec(i);
until i=1;
writeln;
writeln('------------------------');
writeln('Setelah diurutkan dari kecil ke besar');
write('adalah: ');
for i:=1 to 10 do write(a[i]:5);
writeln;
writeln;
writeln('Setelah diurutkan dari besar ke kecil');
write('adalah: ');
for i:=1 to 10 do write(b[i]:5);
readln;
END.

Maka bila dijalankan tampilan dari program diatas sebagai berikut:
Berlatih Membuat Program Pascal Bagian 7
Hasil .exe dari program diatas dapat anda unduh disini

Berlatih Membuat Program Pascal Bagian 6

Kali ini kita akan berlatih membuat tipe data scalar yang dapat anda buat sendiri. Di pemrograman pascal, selain tipe data standar yang sudah kita pelajari seperti String, Integer dan lainnya, sebenarnya masih banyak tipe data yang lain. Tipe data yang akan kita pelajari pada bagian ini adalah tipe data scalar yang dapat didefinisikan sendiri oleh programmer.

Untuk mendeklarasikan tipe data anda sendiri, anda dapat menuliskannya dibagian type diatas deklarasi variabel. Contohnya seperti ini:
Type
angka = (nol,satu,dua,tiga,empat,lima,enam,tuju,delapan,sembilan);
hari    = (senin,selasa,rabu,kamis,jumat,sabtu,ahad);
var
nama:String[15];

Langsung saja, implementasi programnya seperti berikut:
program latih6;

uses crt;

type
bulan = (januari,februari,maret,april,mei,juni,juli,agustus,september,oktober,nopember,desember);
hari = (minggu,senin,selasa,rabu,kamis,jumat,sabtu);

var
ujian : bulan;
bab,hariprak : hari;
BEGIN
clrscr;
bab:=senin;
writeln(ord(bab));
hariprak:=succ(bab);
writeln(ord(hariprak));
ujian:=agustus;
writeln(ord(ujian));
ujian:=pred(ujian);
writeln(ord(ujian));
writeln(ord(succ(ujian)));
readln;
END.

Maka hasilnya dapat dilihat sebagai berikut:
Berlatih Membuat Program Pascal Bagian 6
Hasil .exe dari kode diatas dapat anda unduh disini