Kamis, 25 November 2010


1.        Program menentukan bilangan genap yang habis dibagi 3, beserta banyak dan jumlahnya antara a dan b.
1.1   Flowchart


 











N
 
Y
 
i ← i + 1
 
                                                 







Y
 
N
 


N
 


Y
 


jml ← jml + i
byk ← byk + 1

 
Flowchart: Data: Output  : i                       

1.2 Tracing Flowchart
      Input
           a = 10
           b = 24
      Proses
           i = 11 12 13 14 15 16 17 18 19 20 21 22 23 24
           jml = 0 12 30
           byk = 0 1 2
      Output
         i = 12  18
         jml = 30
         byk = 2

1.3 Script Program :
program Menentukan_Bilangan_Genap_Yang_Habis_Dibagi_3;
uses crt;
var
   x,y,bil,sum,count : Integer;
   u : string;
Begin
     repeat
     clrscr;
     writeln('++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
     writeln('+----Selamat Datang di Program Penenentuan Bilangan----+');
     writeln('+--------Antara Bilangan x dan y akan ditentukan-------+');
     writeln('+----------bilangan genap yang habis dibagi 3----------+');
     writeln('++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
     writeln(' ');
     write('Tekan ENTER untuk memulai');
     readln;
     writeln(' ');
     write('Masukkan x (Bilangan Awal) : ');
     readln(x);
     write('Masukkan y (Bilangan Akhir) : ');
     readln(y);
     sum := 0;
     count  := 0;
     writeln(' ');
     writeln('KESIMPULAN : ');
     write('Bilangan yang memenuhi antara lain ');
     for bil:=x+1 to y-1 do
         Begin
              if bil mod 2 = 0 then
                 Begin
                      if bil mod 3 = 0 then
                         Begin
                              write(bil,' ');
                              sum := sum + bil;
                              count  := count + 1;
                         End;
                 End;
         End;
     writeln(' ');
     write('Banyak bilangan : ',count);
     writeln(' buah bilangan');
     writeln('Jumlah bilangan : ',sum);
     readln;
     writeln('Ingin mengulang? (Ya / Tidak)', u);
     readln(u);
     until u ='Tidak';
     readln;
End.

1.4 Printsreen  program
1.4.1 Areal kerja
1.3.2  Saat di-Run (ctrl+F9)


























2.      Program menyelesaikan akar-akar persamaan
2.1 Flowchart program      
 















Y
 




N
 


Y
 



N
 

















2.2. Trace
        2.2.1 Untuk Kondisi D>0
                 Input
                 a = 1
                 b = -9
                 c = 20
                 Proses
                        D = 1
                 Output
                 x1 = 5
                 x2 = 4
                 x1i = -
                 x2i = -

      2.2.2 Untuk Kondisi D = 0
                 Input
                 a = 1
                 b = 4
                 c = 4
                 Proses
                        D = 0
                 Output
                 x1 = -2
                 x2 = -2
                 x1i = -
                 x2i = -

        2.2.3 Untuk Kondisi D<0
                 Input
                 a = 3
                 b = 2
                 c = 1
                 Proses
                        D = -8
                 Output
                 x1 = -
                 x2 = -
                 x1i = 0,14
                 x2i = -0,80

2.3 Script Program

program Mencari_Akar_Persamaan_Kuadrat;
uses crt;
var
   a,b,c,D,x1,x2,x1i,x2i:real;
Begin
     clrscr;
     writeln('********************************************************');
     writeln('*--Selamat Datang di Program Pencarian Akar Persamaan--*');
     writeln('*-------Bentuk umum persamaan kuadrat = ax^2+bx+c------*');
     writeln('********************************************************');
     writeln(' ');
     write('Tekan ENTER untuk mulai memasukkan nilai a, b, c');
     readln;
     writeln(' ');
     write('input nilai a : ');
     readln(a);
     write('input nilai b : ');
     readln(b);
     write('input nilai c : ');
     readln(c);D:=b*b-4*a*c;
     write('Maka didapat nilai D adalah ', D:0:2);
     readln;
     if D > 0 then
        Begin
             x1:=(-b+(sqrt(D)))/(2*a);
             x2:=(-b-(sqrt(D)))/(2*a);
             writeln(' ');
             writeln('KESIMPULAN : ');
             write('Akar-akarnya antara lain : x1 = ', x1:0:2);
             write(' dan x2 = ', x2:0:2);
             readln;
        End;
     if D = 0 then
        Begin
             x1:=(-b)/(2*a);
             x2:=x1;
             writeln(' ');
             writeln('KESIMPULAN : ');
             write('x1 = x2 yaitu ', x1:0:2);
             readln;
        End;
     if D < 0 then
        Begin
             x1:=(-b+(sqrt(-D)))/(2*a);
             x2:=(-b-(sqrt(-D)))/(2*a);
             writeln(' ');
             writeln('KESIMPULAN : ');
             write('Akar-akarnya imajiner antara lain : x1i = ', x1:0:2);
             write(' dan x2i = ', x2:0:2);
             readln;
        End;
End.

2.4 Printsreen  program
2.4.1 Areal kerja
2.4.2  Saat di-Run (ctrl+F9)
2.4.2.1 Untuk Kondisi D>0
2.4.2.2 Untuk Kondisi D=0
2.4.2.3 Untuk Kondisi D<0

Variable Constanta Function Procedure Pascal


                                                                           
Soal :
1.        Jelaskan pengertian tentang konstanta, variable, function, dan procedure, beserta contoh!
2.        Jelaskan dan berikan contoh tentang :
-          Variabel Global !
-          Variabel Lokal !
3.        Jelaskan tentang passing parameter, beserta perbedaan antara pass by reference dengan pass by value, beserta contohnya !

Jawaban :
1.        Pengertian dari konstanta, variable, function, dan procedure :
1.1     Konstanta
Konstanta merupakan variabel yang mempunyai nilai tetap meskipun telah beberapa kali dipakai dalam operasi aritmatika ataupun logika. Untuk mendeklarasikan sebuah konstanta, kata baku yang digunakan dalam Pascal adalah const.
Contoh :
Program menghitung_luas_lingakran;
uses crt;
const
     phi=3.14;
var
   r,luas:real;
begin
     clrscr;
     writeln('Program menghitung luas lingkaran');
     writeln(' ');
     write('input jari2 lingkaran ');
     read(r);
     luas:=phi*r*r;
     readln;
     writeln('luas lingkaran yaitu : ',luas:0:2);
     readln;
end.
1.2. Variable
Variabel adalah suatu tempat di dalam memory yang dapat dipesan melalui bahasa pemrograman dan diberikan nama yang digunakan untuk menyimpan menyimpan nilai dengan tipe tertentu, dimana nilai tersebut bias berubah – ubah selama program tersebut dijalankan.. Definisi variable pada pascal diawali dengan kata baku Var diikuti dengan kumpulan identifier yang diikuti dengan tipe data yang dibutuhkan.
Contoh :
Program menghitung_luas_lingakran;
const
     phi=3.14;
var
   r,luas:real;
begin
     clrscr;
     writeln('Program menghitung luas lingkaran');
     writeln(' ');
     write('input jari2 lingkaran ');
     read(r);
     luas:=phi*r*r;
     readln;
     writeln('luas lingkaran yaitu : ',luas:0:2);
     readln;
end.
1.3. Function
Function merupakan module atau kumpulan pernyataan yang mengembalikan hasil berupa nilai tunggal. Dalam procedure nilai yang dikembalikan bisa terdiri dari beberapa nilai, tetapi function mengembalikan nilai tunggal. Function digunakan untuk melakukan operasi matematika seperti perhitungan faktorial.
Contoh :
Program menentukan_luas_keliling_lingkaran;
uses crt;
const
     phi=3.14;

Function Luas_lingkaran(r,luas:real) :real;
begin
     luas:=phi*r*r;
     writeln('Luasliangkaran adalah ',luas:0:2);
     readln;
end;

{program utama}
var
   r,luas:real;
begin
     clrscr;
     writeln('Program menghitung luas lingkaran');
     writeln(' ');
     write('input jari2 lingkaran ');
     read(r);
     luas:=Luas_lingkaran(r,luas);
     readln;
end.
1.4  Procedure
Prosedure ini digunakan untuk aktivitas yang harus dilakukan lebih dari satu kali dan untuk menghindari penulisan teks program yang sama secara berulang kali. Prosedur ini cukup ditulis sebanyak satu kali namun dapat dipanggil dari bagian program utama. Pada dasarnya, struktur prosedur sama dengan struktur program yang sudah kita kenal, hanya saja bagian judul (header) ditulis PROSEDURE (bukan lagi PROGRAM)
Contoh :
   Program menentukan_luas_keliling_lingkaran;
uses crt;
const
     phi=3.14;
var
   r:real;

Procedure Luas_lingkaran;
var
   luas:real;
begin
     luas:=phi*r*r;
     writeln('Luasliangkaran adalah ',luas:0:2);
     readln;
end;

{program utama}
begin
     clrscr;
     writeln('Program menghitung luas lingkaran');
     writeln(' ');
     write('input jari2 lingkaran ');
     read(r);
     writeln;
     Luas_lingkaran;
     readln;
end.

2.        Pengertian, Contoh Variabel Global dan Variabel Lokal
       2.1 Variabel Global
Variabel yang dikenal diseluruh daerah di dalam program, di dalam dan luar fungsi. Variabel ini dideklarasikan di luar suatu blok statemen atau di luar fungsi-fungsi yang menggunakannya. Variabel global dapat dideklarasikan kembali di dalam fungsi (redeclare)
2.2 Variabel Lokal
Variabel yang hanya dikenal di daerah yang lokal saja, misalnya di dalam sebuah fungsi/prosedur tertentu saja dan tidak dikenal di daerah lainnya.  Harus dideklarasikan di dalam blok yang bersangkutan. Variabel lokal dibentuk ketika fungsi dipanggil dan akan dihapus dari memori bila eksekusi terhadap fungsi selesai. Tidak ada inisialisasi otomatis
2.3  Contoh Variabel Global dan Variabel Lokal
Program menentukan_luas_keliling_lingkaran;
uses crt;
const
     phi=3.14;
var
   r:real;          {Variabel Global}

Procedure Luas_lingkaran;
var
   luas:real;       {Variabel Lokal}
begin
     luas:=phi*r*r;
     writeln('Luasliangkaran adalah ',luas:0:2);
     readln;
end;

{program utama}
begin
     clrscr;
     writeln('Program menghitung luas lingkaran');
     writeln(' ');
     write('input jari2 lingkaran ');
     read(r);
     writeln;
     Luas_lingkaran;
     readln;
end.

3.        Definisi Passing Parameter dan Perbedaan antara Pass by Reference dan Pass by Value
3.1  Passing Parameter
          Passing Parameter yaitu suatu proses pengiriman data dari parameter aktual ke parameter formal. Parameter aktual yaitu parameter yang dikirmkan dari modul/program utama ke modul prosedur disebut dengan parameter nyata dan parameter formal adalah parameter yang dituliskan pada modul prosedur. Nama Parameter aktual dan parameter formal boleh berbeda, tetapi harus memiliki tipe data yang sama selain itu juga jumlah parameter aktual dan parameter formal harus sama. Di Turbo Pascal, parameter dapat dikirim/ditransfer secara nilai (by value) atau secara acuan (by reference).
3.1.1 Parameter Pass by Reference          
Dengan menggunakan parameter pass by reference (secara acuan), maka proses – proses yang terjadi pada modul prosedur, akan mempengaruhi nilai pada parameter di program utama.
Contoh Program dengan parameter passing by reference :
Program Volume_Balok;
uses crt;

procedure mencari_volume_balok (var p,l,t,vol:integer);
begin
     vol:=p*l*t;
     writeln('panjang : ',p);
     writeln('lebar :  ',l);
     writeln('tinggi :  ',t);
     writeln('Volume :  ',vol);
end;

{program utama}
var
   pjng,lbr,tg,volume:integer;
begin
     clrscr;
     pjng:=10;
     lbr:=12;
     tg:=5;
     volume:=0;
     mencari_volume_balok (pjng,lbr,tg,volume);
     writeln;
     writeln('panjang : ',pjng);
     writeln('lebar : ',lbr);
     writeln('tinggi : ',tg);
     writeln('volume : ',volume);
     readln;
end.

Dengan menggunakan menu debug > add watch > volume, maka akan muncul nilai volumenya yaitu 600 , sesuai dengan hasil perkalian p*l*t. Berikut adalah print screennya :

Dari print screen tersebut dapat dilihat bahwa nilai volume yang muncul adalah 600, padahal pada program utama parameter yang dimasukkan untuk volume adalah 0. Maka dapat disimpulkan bahwa dalam parameter pass by reference nilai yang dihasilkan pada program utama, dipengaruhi oleh proses-proses yang terjadi pada modul procedure.
Kemudian buat kondisi berikutnya, dengan membedakan tipe data pada parameter di program utama dengan parameter pada procedure. Misalnya ganti tipe data parameter di program utama dengan real, dimana awalnya memiliki tipe data integer, maka akan muncul :
          Maka akan muncul error dengan seruan “Error 26: Type mismatch”. Dapat ditarik kesimpulan bahwa tipe data parameter di program utama maupun di prosedur harus sama.
          Ketika parameter di program utama saat memanggil prosedur diisi dengan angka seperti yang ditunjukkan pada gambar berikut :
Akan muncul “Error 20: Variable Identifier Expected”. Jadi dapat ditarik kesimpulan bahwa tidak boleh memasukkan nilai atau angka langsung ke dalam parameter.
3.1.2  Parameter Pass by value
          Pada pengiriman nilai dengan pass by value maka nilai pada parameter di prosedur akan diisi dengan nilai pada parameter di program utama. Proses – proses yang terjadi di prosedur tidak akan mengubah nilai parameter di program utama.
            Contoh Program dengan parameter passing by value:
Program Volume_Balok;
uses crt;

procedure mencari_volume_balok (p,l,t,vol:integer);
begin
     vol:=p*l*t;
     writeln('Dalam Procedure');
     writeln('panjang : ',p);
     writeln('lebar :  ',l);
     writeln('tinggi :  ',t);
     writeln('Volume :  ',vol);
end;

{program utama}
var
   pjng,lbr,tg,volume:integer;
begin
     clrscr;
     pjng:=10;
     lbr:=12;
     tg:=5;
     volume:=0;
     mencari_volume_balok (pjng,lbr,tg,volume);
     writeln;
     writeln('Pada Program Utama');
     writeln('panjang : ',pjng);
     writeln('lebar : ',lbr);
     writeln('tinggi : ',tg);
     writeln('volume : ',volume);
     readln;
end.
            Dengan menggunakan menu debug > add watch > volume, maka akan muncul nilai volumenya yaitu 0 karena nilai yang dideklarasikan untuk volume pada parameter di program utama adalah 0. Berikut adalah print screennya :
            Dari print screen tersebut dapat dilihat bahwa nilai volume yang muncul adalah 0,sesuai dengan nilai yang dideklarasikan pada parameter di program utama. Maka dapat disimpulkan bahwa dalam parameter pass by value nilai yang dihasilkan pada program utama, tidak dipengaruhi oleh proses-proses yang terjadi pada modul procedure.
Kemudian buat kondisi berikutnya, dengan membedakan tipe data pada parameter di program utama dengan parameter pada procedure. Misalnya ganti tipe data parameter di program utama dengan real, dimana awalnya memiliki tipe data integer, maka akan muncul :
          Maka akan muncul error dengan seruan “Error 26: Type mismatch”. Dapat ditarik kesimpulan bahwa tipe data parameter di program utama maupun di prosedur harus sama.
Ketika parameter di program utama saat memanggil prosedur diisi dengan angka seperti yang ditunjukkan pada gambar berikut :
Maka parameter nilai yang ada dalam procedure akan berubah menjadi angka yang ada di parameter program utama. Jadi variabel p (dalam procedure) menjadi 400, dan variabel l (dalam procedure) menjadi 200. Tetapi tetap tidak akan merubah nilai pada parameter program utama. Agar lebih jelas, berikut gambar setelah di-run :

                 Terlihat jelas bahwa panjangnya berubah menjadi 400 dan lebarnya menjadi 200 (sesuai perubahan yang dilakukan pada parameter pemanggilan prosedur di program utama). Namun pada program utamanya terlihat tidak terjadi perubahan, , karena dalam pass by value proses – proses pada prosedure yang mengakibatkan perubahan nilai tidak mempengaruhi parameter actual (pada program utam) hal inilah yang disebut passing by value.
3.2  Perbedaan antara Pass by Reference dan Pass by Value
Jika menggunakan parameter passing by value maka nilai dari variabel yang ada di parameter aktual (parameter di program utama) akan dikirim ke parameter prosedur. Dengan parameter pass by value (secara nilai) ini, proses yang ada dalam procedure tidak akan mengubah nilai pada parameter program utama (parameter aktual). Sedangkan jika menggunakan konsep passing by reference, maka yang dikirim bukan nilai melainkan alamat (reference) dari nilai tertentu yang dilewatkan. Oleh karena itu, jika ada suatu proses yang mengakibatkan perubahan terhadap nilai oleh prosedur maka nilai pada parameter di program utama (parameter aktual) pun ikut berubah.
4.        Membuat File Tipe .txt, Menambah Tulisan pada File .txt dan Membuka File .txt pada Pascal
4.1  Membuat File Tipe .txt dengan Pascal
Program untuk membuat file dengan ekstensi .txt dengan menggunakan pascal
Script program :
Program membuat_file_txt_dengan_pascal;
uses crt;
var
   kata:text;
begin
     clrscr;
     assign(kata,'ariana.txt');
     rewrite(kata);
     writeln(kata,'Jadwal Kuliah hari Selasa');
     writeln(kata,'1. Paket Aplikasi Komputer dan Internet');
     close(kata);
end.
Print screen program :
Setelah dijalankan (Ctrl+F9) maka akan ada file tipe bernama ariana.txt

4.2  Menambah Isi pada File .txt yang Sudah Ada dengan Pascal
Program untuk menambah teks pada  file tipe .txt yang sudah ada.
Script Program
Program menambah_teks_pada_file_txt;
uses crt;
var
   kata:text;
   a:string;
begin
     clrscr;
     assign(kata,'ariana.txt');
     append(kata);
     writeln(kata,'2. Dasar Elektronika');
     writeln(kata,' ');
     writeln(kata,'Jadwal Kuliah hari Rabu');
     writeln(kata,'1. Kalkulus');
     close(kata);
end.
Print screen program
Setelah dijalankan (Ctrl+F9) maka file ariana.txt akan berubah menjadi :

4.3  Menampilkan File Tipe .txt yang ada dengan Pascal
Program untuk membaca file tipe .txt ke dalam pascal
Script program
Program membaca_teks_pada_file_txt;
uses crt;
var
   kata:text;
   a:string;
begin
     clrscr;
     assign(kata,'ariana.txt');
     reset(kata);
     while not eof (kata) do
           begin
                readln(kata,a);
                writeln(a);
           end;
     readln;
end.

Print screen program :






Setelah dijalankan (Ctrl+F9) maka akan muncul :

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Best WordPress Web Hosting