This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

Sabtu, 17 Januari 2015

Membuat apliasi menghitung umur dengan satuan Jam menggunakan pascal

Sesuai judul diatas saya akan memperlihatkan scrip yang berhasil saya copas dari blog Kang Adyt. Berikut scripnya..
===========================================
Program Menghitung_Umur_Seseorang;
Uses Wincrt;
label awal, akhir;
Var  dd,mm,yy,x1,x2,x3,Total_Jam:longint;

        ulang:char;
Begin
awal:
clrscr;
Writeln ('Masukkan Umur Anda Dalam:');
Writeln ('=========================');
Write ('Tahun = ');read (yy);
Write ('Bulan = ');read (mm);
Write ('Hari  = ');read (dd);


x1:=yy * 365 * 24;
x2:=mm * 30 * 24;
x3:=dd * 24;
Total_Jam:=x1+x2+x3;
Writeln ('==================================');
Writeln ('Anda sekarang hidup adalah ',(Total_Jam), ' Jam');
Writeln ('==================================');
Writeln('Created, Ardiansyah || 20142205026 || TI.11');
Writeln ('==================================');
Writeln ('Mau menghitung ulang? [Y/T]: ');
    ulang := readkey;
if upcase(ulang)='Y' then goto awal
else goto akhir;akhir:
     
end.
=================================================



dan Hasilnya Kurang Lebih Seperti ini..

Penggunaan Fungsi Pada Pascal

  1. Buka halaman kerja baru.
  2. Untuk program ini, berikan kode program sebagai berikut :
  3. Setelah memasukan kode, kita bisa melakukan pengecekan apakah program yang kita buat jalan atau tidak dengan menekan tombol F9 pada keyboard. Jika tidak terdapat kesalahan, maka langkah selanjutnya adalah menjalankan program dengan menekan tombol CTRL+F9 pada keyboard.
  4. Tampilan program yang sudah berjalan.
Jika nilai nilai yang dimasukan untuk nilai 1 = 54 dan nilai 2 = 48



Berikut keterangan dan logika dari tiap kode pada program

Program Fungsi;

(judul program)

uses crt;

(unit yang digunakan dalam program)

function besar (a,b : integer): integer;

(memulai proses function dengan nama ‘besar’, dimana nilai variabel a dan b yang ada dip roses tersebut bertipe integer / bilangan bulat)

begin

(awal dari blok statement function ‘besar’)

if a>b then

(memulai printah kondisi, dimana jika nilai dari variabel a lebih besar dari nilai variabel b, maka akan menjalankan perintah di bawah)

besar := a

(nilai procedure ‘besar’ akan sama dengan nilai variabel a)

else

(selain kondisi di atas, maka akan menjalankan perintah di bawah)

besar := b;

(nilai procedure ‘besar’ akan sama dengan nilai variabel b)

end;

(akhir dari blok statement function ‘besar’)

var

(pendeklarasian variabel)

a,b: integer;

(Pendeklarasian data variabel bertipe integer / bilangan bulat)

begin

(awal dari blok statement)

clrscr;

(membersihkan layar)

write(‘Nilai Bilangan 1 = ‘); readln(a);

(mencetak kalimat ‘Nilai Bilangan 1 = ’ lalu meletakan pointer ke sebelah kanan kalimat, setelah itu compiler akan membaca inputan yang kita masukan sebagai nilai variabel ‘a’)

writeln;

(menempatkan pointer di bawah baris berikutnya / berfungsi sebagai enter 1 x)

write(‘Nilai Bilangan 2 = ‘); readln(b);

(mencetak kalimat ‘Nilai Bilangan 2 = ’ lalu meletakan pointer ke sebelah kanan kalimat, setelah itu compiler akan membaca inputan yang kita masukan sebagai nilai variabel ‘b’)

writeln;

(menempatkan pointer di bawah baris berikutnya / berfungsi sebagai enter 1 x)

write(‘Bilangan Terbesar = ‘, besar (a,b):5);

(mencetak kalimat ‘Nilai Terbesar = ‘ lalu memasukan nilai procedure ‘besar’, dimana nilainya didapat dari nilai variabel a dan b yang telah dimasukan sebelumnya dengan penempatan nilai variabel setelah 5 x spasi )

readln;

(menunggu penekanan enter)

end.

(akhir program)

Looping dalam Pascal menggunakan WHILE-DO dan REPEAT-UNTIL

Yups, kali ini kita akan belajar Perulangan dalam Bahasa Pascal menggunakan thenik WHILE dan REPEAT.

Lets Code!!...

A. WHILE DO
while (condition) do (statement);
Algoritma dalam pengeksekusian scriptnya adalah sebagai berikut:
- Kondisi di cek terlebih dahulu (WHILE)
- Jika kondisi terpenuhi maka kerjakan statement (DO)

Contoh kasus:
Contoh1 : Saya ingin menampilkan bilangan genap mulai dari 10 hingga 20

Script lengkapnya : 
program contoh1;
var
   x: integer;
begin
   x := 10; // nilai awal x
   while  x <= 20  do // pengecekan while apakah x <= 20, jika iya kerjakan statment di bawah :
   begin
      if (x mod 2) = 0 then // pengecekan sisa hasil bagi 2, jika 0 maka genap
         write(x,' ');
   
      x := x + 1; // counter pertamnbahan x
   end;
   readln;
end
Hasilnya :
10 12 14 16 18 20

B. REPEAT UNTIL 
repeat
   (steatement1);
   (steatement2);
   ...
   ...
   (steatementN);
until (condition);

Algoritma dalam pengeksekusian scriptnya adalah berkebalikan dengan WHILE-DO, yaitu sebagai berikut:
- Kerjakan statement (REPEAT)
- Kemudian cek kondisi. Jika kondisi belum terpenuhi maka kerjakan statement di atas hingga kondisi terpenuhi (UNTIL)

Jadi statement akan terus di REPEAT (diulang-dikerjakan) UNTIL (hingga) kondisi terpenuhi, dan perulangan berakhir.

Contoh kasus:
Contoh2 : Saya ingin menampilkan bilangan ganjil mulai dari 1 hingga 19
program contoh2;
var
   a: integer;
begin
   a := 1;
   repeat // ulang-kerjakan
      if (a mod 2) = 1 then // pengecekan sisa hasil pembagian 2, jika 1 bilangan genap
        write(a,' ');
      a := a + 1
   until a = 20; // pembatasan repeat
end.
Hasilnya : 
1 3 5 7 9 11 13 15 17 19 

DONE!! gimana mudah kan? , yups, menggunakan WHILE-DO dan REPEAT-UNTIL memang lebih mudah.
TAPI ada yang perlu di ingat, yaitu pembatasan looping, pastikan algoritma pembatasan loopingnya benar, agar tidak terjadi infinite loop (atau disebut juga endless loop atau unproductive loop) yaitu perulangan yang tidak terbatas karena kondisi tidak mungkin terpenuhi.

contoh : 
program infinitieloop;
var
   a: integer;
begin
   a := 2;
   repeat
      write(a,' ');
      a := 2
   until a = 3;
end.
Program tersebut akan terus berulang dan tidak selesi karena nilai variable a tidak mungkin akan sama dengan 3.

Penyeleksian Kondisi

Penyeleksian Kondisi
Pernyataan ini akan memeriksa suatu persyaratan dan menentukan apakah syarat tersebut benar atau salah, maka Pernyataan ini mengandung BOOLEAN.


a. Penyeksian kondisi dengan menggunakan struktur IF-THEN.

 IF (kondisi) THEN
        AKSI;
 
    Contoh :
   
              if (x>0) then
         writeln('x bilangan positif')


 b. Penyeleksian Dua Kasus dengan menggunakan struktur IF-THEN-ELSE .
  IF (Kondisi) THEN
        Begin
           Aksi 1;
           Aksi 2;
           .............
        End;
 
    Contoh :
 
         if (x>0) then
         writeln('x bilangan positif');
         else
         writeln('x bukan bilangan positif');

Contoh Latihan :

program contoh_if_then;
uses crt;
var
   nilai :char;
   mhs: string;
   p: char;
begin
   clrscr;
   write('Masukan Nilai :');
   readln(nilai);

   if nilai = 'e'
      then ket := 'gagal'
      else if nilai = 'd' then 
         ket := 'gagal'
       else
          ket := 'lulus';
   writeln('keterangan: ',ket);
   readln
end.
 


 c. Penyeleksian Tiga Kasus atau Lebih (Penyeleksian Tersarang/NESTED IF)
       IF dan ELSE
     
        IF (Kondisi) THEN
        Begin
           Aksi 1;
           Aksi 2;
           ............
        End;
        Else
        Begin
           Aksi 1;
           Aksi 2;
           ............
        End;
   
Contoh Latihan : 
        program konversi_dari_angka_ke_huruf;
        uses crt;
        var
        nilai:integer;
        begin
        clrscr;
        write ('masukkan nilai :');readln(nilai);
        if nilai > 21 then
           begin
        if (nilai>21) and (nilai<=40) then
           begin
           writeln('D') ;
           end;
        if (nilai>41) and (nilai<=60) then
           begin
           writeln('C')  ;
           end;
        if (nilai>61) and (nilai<=80) then
           begin
           writeln('B')   ;
           end;
        if (nilai>81) and (nilai<=100) then
           begin
           writeln('A')   ;
        end;      
        end
        else
           begin
           writeln('E');
        end;
        readln;
        end. 

REPEAT..UNTIL

perulangan ini hampir sama dengan pernyataan pengulangan while, dan biasanya digunakan bila jumlah belum dapat ditentukan pada saat program ditulis. Perbedaan pernyataan reeat... until dan while terletak pada pengecekkan kondisi. 

  Jika pada pernyataan while, kondisi di cek pada awal kalang, sedangkan pada pernyataan repeat..until, kondisi di cek pada akhr kalang.

    Perbedaan yang lain, bila pernyataan selama kondisi masih terpenuhi, sedangkan pernyataan repeat ..until mengulang pernyataan selama kondisi belum terpenuhi. Bentuk umum pernyataan repeat..until adalah sebagai berikut

repeat  (pernyataan - pernyataan yang akan di ulang) until kondisi 


CONTOH LATIHAN:


uses crt;
var
   awal,akhir,rpbunga   : real;
   bunga, lama, i       : integer;
   mau                  : char;
begin
     repeat
       clrscr;
       writeln('*******************************');
       writeln('**    Nama  : Muh. Deni    **');
       writeln('**    Kelas : TI.12          **');
       writeln('**    NIM   : 20142205062    **');
       writeln('*******************************');
       writeln;
       writeln;
       write('Pinjaman Awal = Rp. ');readln(awal);
       write('Bunga [%] = ');readln(bunga);
       write('Lamanya Pinjaman [Periode] = ');readln(lama);
       writeln('------------------------------------------------');
       writeln(' Periode Bunga [%] Pinjaman Pinjaman Bunga [Rp] ');
       writeln('                    Awal      Akhir');
       writeln('------------------------------------------------');
       for i:=1  to lama do
       begin
            akhir:=awal + ((bunga/100) * awal);
            rpbunga:=0.1 * awal;
            writeln(i:5, bunga:9, awal:11:0, akhir:11:0, rpbunga:10:0);
            awal:=akhir;
       end;
       writeln('Mau Menghitung Lagi ? [Y/N] : ');readln(mau);
       until mau='0';
readln;
end.




 HASIL...... :)


REPEAT..UNTIL TERSARANG 
   Repeat until bersarang adalah suatu perulangan repeat..until yang satu berada di dalam perulangan repeat unti yang lainnya.
 
contoh 
uses crt; var
  a,b,c : real;
  begin
  clrscr;
  writeln('================================');
  writeln(' sisi a     sisi b      sisi c  ');
  writeln('================================');
  a := 1;
  repeat
  b := 0;
    repeat
     c := sqrt (a * a + b * b);
     writeln (a:6:2, b:11:2, c:12:2);
     b := b + 5;
     until b > 25;
       a := a+1;
       until a > 3;
 writeln('=================================');
 readln;
 
 end.

PROCEDURE DAN FUNCTION


     Dalam bahasa pemrograman Pascal atau pada bahasa pemrograman umumnya, procedure dan function digunakan untuk memisahkan barisan kode program yang memiliki fungsi dan tujuan yang sama kedalam blok-blok tersendiri.perbedaan antara procedure dan function adalah: kalau procedure tidak mengembalikan nilai/ hasil, sedangkan function mengembalikan nilai/ hasil.

      Procedure adalah suatu program yang terpisah dalam blok tersendiri yang berfungsi sebagai subprogram. Penggunaan prosedur diawali dengan kata cadangan procedure dalam bagian deklarasi prosedur. Pemanggilan prosedur dapat dilakukan dengan menggunakan judul prosedur.
Pada program terstruktur banyak menggunakan prosedur karena :

  • Sebagai penerapan program yang modular yaitu memecah program yang rumit menjadi program-program bagian yang lebih sederhana dalam bentuk prosedur.
  • Untuk beberapa perintah yang sering digunakan berulang, cukup dituliskan sekali dalam prosedur dan dipanggil sewaktu-waktu.
Sebagaimana halnya sebuah program, suatu procedure juga memiliki header dan block.
Perbedaan bentuknya dengan program hanyalah pada bagian header-nya saja.
Bentuk Umum header suatu procedure adalah :

PROCEDURE nama; 
    atau 
  PROCEDURE nama (formal parameter : jenis);  


contoh program:

 program subprogram;
uses crt;
var
   hasil, nilai1, nilai2 : integer;
   hasilbagi : real;

procedure tambah;
begin
     hasil := nilai1 + nilai2;
     writeln('nilai x + y = ',hasil);
     end;
procedure kurang (p,q: integer);
begin
     hasil := nilai1 - nilai2;
     writeln('nilai x - y = ',hasil);
     end;
function kali : integer;
begin
     kali := nilai1 * nilai2;
     end;
function bagi (p,q : integer): real;
begin
     bagi := p / q;
end;
procedure tukar (var p,q:integer);
var r : integer;
begin
     r := p;
     p := q;
     q := r;
end;
var pilih : integer;


Begin

     pilih := 0;
     while (pilih <>5) do
     begin
          writeln;
          writeln('masukkan pilihan proses');
          writeln;
          writeln('1. penjumlahan');
          writeln('2. pengurangan');
          writeln('3. perkalian');
          writeln('4. pembagian');
          writeln('5. selesai');
          writeln;
          repeat
                write('masukkan pilihan anda : ');readln(pilih);
                until pilih in [1,2,3,4,5];
          if pilih = 5 then exit;
          write('masukkan nilai x : ');readln(nilai1);
          write('masukkan nilai y : ');readln(nilai2);
          case pilih of
          1 : tambah;
          2 : begin
            if nilai1 < nilai2 then
            tukar (nilai1, nilai2);
            kurang(nilai1, nilai2);
          end;
          3 : writeln('hasil x * y = ', kali);
          4 : begin
            hasilbagi := bagi(nilai1,nilai2);
            writeln('hasil x / y = ',hasilbagi:10:4);
          end;
     end;
end;
end.

hasil dari program di atas :

RECORD

Sebuah record rekaman disusun oleh beberapa field. Tiap field berisi data dari tipe dasar / bentukan tertentu. Record mempunyai kelebihan untuk menyimpan suatu sekumpulan elemen data yang berbeda-beda tipenya (di banding array). Contoh , sebuah record dengan empat buah field.

Cara pendeklarasian dari record adalah sbb:
• Mendefinisikan tipe dari record (jumlah field, jenis tipe data yang dipakai),
• Mendefinisikan variabel untuk dilakukan operasi.

Perbedaan Record dan Array

  • Elemen record bersifat heterogen, yaitu campuran beberapa tipe data, sedangkan elemen array bersifat homegen
  • Elemen record didefisinisikan dengan simbol/identifer sedangkan elemen array diidentifikasi dengan indeks.
Bentuk umum record
type
nama_record = record
identifier_1 : tipe_data_1;
identifier_n : tipe_data_n;
end;
var variabel : nama_record;
CONTOH:
program nilai;
uses crt;
type mahasiswa = record
     nim : string[10];
     nama: string[35];
     nh,nt,nm,nf : integer;
     na:real;
end;
var
   mhs: mahasiswa;


 
Pengaksesan Elemen Record
      Nama variable disertai nama field.
x.Nama
x.Usia
x.Kota
x.Kodepos
CONTOH LATIHAN:
program nilai;
uses crt;
type mahasiswa = record
     nim : string[10];
     nama: string[35];
     nh,nt,nm,nf : integer;
     na:real;
end;
var
   mhs: mahasiswa;
   begin
   clrscr;
   writeln('aplikasi perhitungan nilai : ');
   write('masukkan nim : ');readln(mhs.nim);
   write('masukkan nama : ');readln(mhs.nama);
   write('masukkan nilai hadir : ');readln(mhs.nh);
   write('masukkan nilai tugas : ');readln(mhs.nt);
   write('masukkan nilai mid : ');readln(mhs.nm);
   write('masukkan nilai final : ');readln(mhs.nf);
   mhs.na := (0.10 * mhs.nh)+(0.25 * mhs.nt)+(0.30 * mhs.nm)+(0.35 * mhs.nf);
   write('total nilainya = ',mhs.na:10:2);
   end.