Jumat, 31 Mei 2013

Membuat Proyek sederhana BerSubProgram dengan Menggunakan 'LABEL' dalam Pascal

Hi teman-teman,, how are you? I hope you all fine :D
Seperti pada judul di atas, kali ini kita akan belajar membuat subprogram atau program-program kecil di dalam proyek program kita.

Bingung?

Sebagai contoh kali ini saya akan membuat program/aplikasi untuk menghitung 3 jenis bangun datar, yaitu Persegi, Segi Tiga dan Lingkaran, dalam 1 buah aplikasi saja.

Sebenarnya ada banyak cara untuk membuat aplikasi seperti ini, bisa menggunakan Decision Conditional (percabangan) yang kemain, menggunakan Label yang akan kita bahas kali ini dan menggunakan Fungsi/Procedure (ini akan di bahas di artikel selanjutnya :D )

Penasaran gimana cara bikin nya? yuk langsung aja .. :D
A. Design Program
Yang pertama adalah perancangan design aplikasi yang akan kita buat.
Kali ini saya akan membuat aplikasi dengan 5 sub program, yaitu :

  1. Menu
  2. Menghitung Luas Persegi 
  3. Menghitung Luas Segi Tiga
  4. Menghitung Luas Lingkaran
  5. Keluar

B. Membuat Program/Aplikasi Bagian - perbagian
Sebenarnya tidak ada cara/terori baku dalam membuat suatu program yang mempunyai banyak subprogram. kita bisa saja langsung menulis seluruh code sub program berbarengan atau memisah nya / mengerjakanya 1 per satu. menurut saya agar tidak bingung dan mudah dipelajari juga lebih baik kita membuatnya secara terpisah terlebih dahulu.
sebagai contoh
Saya akan membuat tampilan untuk menu terlebih dahulu
Berikut ini potokan sub program untuk Menu :
Begin
   Writeln('Menu Menghitung Luas');
   Writeln('1. Luas Persegi');
   Writeln('2. Luas Segi Tiga');
   Writeln('3. Luas Lingkaran');
   Writeln('4. Keluar');
   Write('Masukkan Pilihan Menu [1-4] : ');readln(s);
   Writeln();

   Case (s) of
    1: // run sub program Luas Persegi
    2: // run sub program Segi Tiga
    3: // run sub program Lingkaran
    4: // keluar
   end;
End;
Kemudian membuat program untuk menghitung luas :
a. Persegi
Begin
   Writeln('Menghitung Luas Persegi');
   Write('Masukkan Panjang     : ');read(p);
   Write('Masukkan Lebar       : ');read(l);
   luasP := p * l;
   Write('Luas Persegi Panjang : ',luasP);
   Writeln();
   Writeln();
   // kembali ke menu
 End;
b. Segi Tiga
Begin
   Writeln('Menghitung Luas Segi Tiga');
   Write('Masukkan Alas   : ');read(a);
   Write('Masukkan Tinggi : ');read(t);
   luasS := 0.5 * a * t;
   Write('Luas Segitiga   : ',luasS:3:2);
   Writeln();
   Writeln();
   //kembali ke menu
 End;
c. Lingkaran
Begin
   Writeln('Menghitung Luas Lingkaran');
   Write('Masukkan Jari-jari : ');read(r);
   luasL := Phi * r * r;
   Write('Luas Lingkaran     : ',luasL:3:2);
   Writeln();
   Writeln();
   // kembali ke menu
 End;
Untuk menu keluar nantinya program cukup kita arahkan ke akhir baris (end)

C. Kemudian menggabungkannya dengan menggunakan LABEL
Penulisan GOTO-LABEL
Label 
<label name>
goto <label name>;
   ...
   ...
<label name>: statement;
Label berfungsi sebagai penanda dimana dimulainya sub program yang kita buat, penamaan label boleh dnegan angka/huruf asalkan tidak mengandung spasi.
Fungsi GOTO adalah mengarahkan alur program ke tujuan (dalam hal ini label yang sesuai dengan namanya)
Kemudian kita satukan dan sesuaikan program-program yang kita buat menjadi
Program contohLabel;
Uses
 crt;
Label
 menu,luasPersegi,luasSegiTiga,luasLingkaran,keluar;
Const
 Phi = 3.14;
var
 s         : integer;
 p,l,luasP : integer;
 a,t,luasS : real;
 r,luasL   : real;
Begin
 clrscr;
 goto menu;

 menu:
  Begin

   Writeln('Menu Menghitung Luas');
   Writeln('1. Luas Persegi');
   Writeln('2. Luas Segi Tiga');
   Writeln('3. Luas Lingkaran');
   Writeln('4. Keluar');
   Write('Masukkan Pilihan Menu [1-4] : ');readln(s);
   Writeln();

   Case (s) of
    1: goto luasPersegi;
    2: goto luasSegiTiga;
    3: goto luasLingkaran;
    4: goto keluar;
   end;

  End;

 luasPersegi:
  Begin
   Writeln('Menghitung Luas Persegi');
   Write('Masukkan Panjang     : ');read(p);
   Write('Masukkan Lebar       : ');read(l);
   luasP := p * l;
   Write('Luas Persegi Panjang : ',luasP);
   Writeln();
   Writeln();
   goto menu;
  End;

 luasSegiTiga:
  Begin
   Writeln('Menghitung Luas Segi Tiga');
   Write('Masukkan Alas   : ');read(a);
   Write('Masukkan Tinggi : ');read(t);
   luasS := 0.5 * a * t;
   Write('Luas Segitiga   : ',luasS:3:2);
   Writeln();
   Writeln();
   goto menu;
  End;

  luasLingkaran:
  Begin
   Writeln('Menghitung Luas Lingkaran');
   Write('Masukkan Jari-jari : ');read(r);
   luasL := Phi * r * r;
   Write('Luas Lingkaran     : ',luasL:3:2);
   Writeln();
   Writeln();
   goto menu;
  End;

  keluar:
End.
Dan hasilnya adalah :
Menu Menghitung Luas
1. Luas Persegi
2. Luas Segi Tiga
3. Luas Lingkaran
4. Keluar
Masukkan Pilihan Menu [1-4] : 1

Menghitung Luas Persegi
Masukkan Panjang     : 10
Masukkan Lebar       : 20
Luas Persegi Panjang : 200

Menu Menghitung Luas
1. Luas Persegi
2. Luas Segi Tiga
3. Luas Lingkaran
4. Keluar
Masukkan Pilihan Menu [1-4] : 2

Menghitung Luas Segi Tiga
Masukkan Alas   : 30
Masukkan Tinggi : 10
Luas Segitiga   : 150.00

Menu Menghitung Luas
1. Luas Persegi
2. Luas Segi Tiga
3. Luas Lingkaran
4. Keluar
Masukkan Pilihan Menu [1-4] : 3

Menghitung Luas Lingkaran
Masukkan Jari-jari : 7
Luas Lingkaran     : 153.86

Menu Menghitung Luas
1. Luas Persegi
2. Luas Segi Tiga
3. Luas Lingkaran
4. Keluar
Masukkan Pilihan Menu [1-4] : 4

DONE!!! Hore... kita sekarang sudah bisa membuat prtogram yang lumayan kompleks :D dari yang kita pelajari kali ini bisa kita kembangkan menjadi aplikasi profesional yang bermacam-macam,, keren.. hehehe

Cukup sekin dulu pembahasan kita kali ini, semoga bermanfaat dan see you on the next article :D

4 komentar:

  1. Saya mau tanya itu bahasa C,C# atau C++ ya makasih atas pemberitahuan nya

    BalasHapus
  2. Terima kasih gan atas ilmunya! Saya sudah terapkan pada program kecil2an saya .

    BalasHapus
  3. Gan kok selalu eror di cese (s) of nya..?

    BalasHapus