• Breaking News

    belajar dan berbagi

    Connect With Us

    Monday, December 3, 2012

    Makalah Algoritma dan Logika informatika


    BAB I
    PENDAHULUAN


    1.1. LATAR BELAKANG
    Bahasa program  merupakan suatu wahana untuk menuangkan pikiran manusia yang dapat dimengerti oleh mesin komputer sehingga  bernilai guna. Suatu bahasa program akan terikat aturan dari  paradigma bahasa. Ada berbagai macam paradigma bahasa :  Prosedural, Fungsional, Deklaratif, Object Oriented, Konkuren.
    Perlu diperhatikan perbedaan antara belajar bahasa program dengan belajar memprogram!!! Belajar bahasa program hanya belajar tentang sintak (aturan) dari bahasa sedangkan belajar memprogram akan tercakup beberapa hal yang didalamnya terkandung tentang belajar bahasa program itu sendiri.  Yang harus diperhatikan oleh mahasiswa yang sedang belajar memprogram, yaitu :
    ·         Simulasi , sensibilitas terhadap masalah dan kemungkinan solusi. Kegiatan dilakukan di kelas, melalui permainan. Contoh : Mengurutkan tinggi badan mahasiswa dari tinggi  ke pendek atau sebaliknya. Permainan dapat dilakukan secara manual maupun dengan komputer.
    ·         Analisis masalah secara lebih formal dan membuat spesifikasi dan algoritma dalam notasi yang ditetapkan. Mahasiswa harus menuliskan solusi algoritmiknya dalam notasi standar di kelas. Penulisan notasi algoritmik bertujuan untuk menyeragamkan  pemahaman tentang algoritma program yang terbebas dari sintak (aturan) penulisan bahasa program .
    ·         Menulis program, yaitu menterjemahkan notasi algoritmik ke dalam sintak bahasa program.
    ·         Debugging dan menguji coba program. Hal ini bertujuan untuk mendapatkan program yang benar. Program dikatakan benar jika terbebas dari salah lojik dan  sintak bahasa. Secara ideal  mahasiswa hanya diberi kesempatan untuk me-run program sebanyak 2 kali : pertama untuk membersihkan program dari kesalahan sintak dan kedua untuk mendapatkan program benar. Pada tahap ini diharapkan tidak terjadi kesalahan lojik jika analisa benar.
    ·         Mengamati peristiwa eksekusi, perlu dilakukan untuk meningkatkan kepercayaan  bahwa jika analisa benar maka sisa pekerjaan menjadi mudah. Pada pemrograman prosedural, aspek ini penting untuk memahami fenomena eksekusi dan perubahaan nilai suatu struktur data.
    ·         Membaca  program : orang akan dapat menulis dengan baik kalau sering membaca. Hal ini juga berlaku dalam memprogram. Kegiatan yang dapat dilakukan di kelas adalah dengan saling tukar menukar teks algoritma, dan saling mengkritik algoritma teman. Mahasiswa harus berlatih sendiri pada kegiatan belajar bersama.
    ·         Membuktikan kebenaran program secara formal , satu-satunya hal yang menjamin kebenaran, tetapi kontradiktif dan sulit diterapkan dalam kehidupan sehari-hari. Program yang hanya lima baris pembuktiannya bisa sehalaman, sehingga seringkali tidak pernah diterapkan dalam aplikasi nyata.
    Makalah ini akan membahas tentang algoritma dan pemrograman dalam Bahasa Pascal.

    1.2.RUANG LINGKUP
    Pada penulisan makalah ini, Saya membatasi permasalahan, yakni seputar runtunan, pemilihan (satu kasus, dua kasus, tiga kasus/lebih, case), pengulangan (for_do, while_do, repeat_until), prosedur, fungsi, dan larik.

    1.3.RUMUSAN MASALAH
    Ć¼  Bagaimana penggunaan dan penerapan runtutan dalam bahasa pemrograman pascal?
    Ć¼  Bagaimana penggunaan dan penerapan pemilihan dalam bahasa pemrograman pascal?
    Ć¼  Bagaimana penggunaan dan penerapan pengulangan dalam bahasa pemrograman pascal?
    Ć¼  Bagaimana penggunaan dan penerapan procedure dalam bahasa pemrograman pascal?
    Ć¼  Bagaimana penggunaan dan penerapan function dalam bahasa pemrograman pascal?
    Ć¼  Bagaimana penggunaan dan penerapan larik dalam bahasa pemrograman pascal?
    Ć¼  Bagaimana penggunaan dan penerapan matrik dalam bahasa pemrograman pascal?

    1.4.TUJUAN
    Adapun tujuan pembuatan makalah ini adalah :
    Ć¼  Untuk mengetahui penggunaan dan penerapan runtutan dalam bahasa pemrograman pascal.
    Ć¼  Untuk mengetahui penggunaan dan penerapan pemilihan dalam bahasa pemrograman pascal.
    Ć¼  Untuk mengetahui penggunaan dan penerapan perulangan dalam bahasa pemrograman pascal.
    Ć¼  Untuk mengetahui penggunaan dan penerapan procedure dalam bahasa pemrograman pascal.
    Ć¼  Untuk mengetahui penggunaan dan penerapan function dalam bahasa pemrograman pascal.
    Ć¼  Untuk mengetahui penggunaan dan penerapan larik dalam bahasa pemrograman pascal.
    Ć¼  Untuk mengetahui penggunaan dan penerapan matrik dalam bahasa pemrograman pascal.
    1.5. MANFAAT
    Dengan adanya makalah ini diharapkan mahasiswa/i dapat lebih memahami dan mengerti tentang Algoritma dan dapat Pemrograman.





















    BAB II
    PEMBAHASAN


    2.1. RUNTUNAN
    Algoritma merupakan runtunan (sequence) satu atau lebih instruksi, yang berarti bahwa :
    1. Tiap instruksi dikerjakan satu per satu
    2. Tiap instruksi dilaksanakan tepat sekali, tidak ada instruksi yang diulang
    3. Urutan instruksi yang dilaksanakan pemroses sama dengan urutan instruksi sebagaimana yang tertulis di dalam teks algoritmanya
    4. Akhir dari instruksi terakhir merupakan akhir algoritma
    Urutan instruksi di dalam algoritma adalah penting. Urutan instruksi menunjukkan urutan logik penyelesaian masalah. Bergantung pada masalahnya, urutan instruksi yang berbeda mungkin tidak ada pengaruhnya tehadap solusi persoalan, tetapi mungkin juga menghasilkan keluaran yang berbeda pula.
    Contoh – contoh Runtunan:
    Program Menukar Nilai
    {Mempertukarkan nilai A dan B. Nilai A dan B dibaca terlebih dahulu}
    Deklarasi
    A , B , C : integer
    Algoritma :
    { asumsikan A dan B sudah terdefinisi dengan nilai, misalnya melalui pengisian langsung atau dibaca nilainya dari papan ketik }
    {pertukaran nilai A dan B }
    C          A  { simpan nilai A ditempat penampung sementara, C }
    A         B   { sekarang A dapat diisi dengan nilai B }
    B        C    { isi B dengan nilai A semula yang tadi disimpan di C }
    { Tulis nilai A dan B setelah pertukaran , jika diperlukan}
    Program Menukar_Nilai;
    Uses WinCrt;
    var A,B,C:integer;
    Begin
      Writeln('Program Menukar Nilai A Menjadi B');
      Writeln('=================================');
      Writeln;
      Write('Masukkan Nilai A: ');readln(A);
      Write('Masukkan Nilai B: ');readln(B);
      Writeln;
      C:=A;
      A:=B;
      B:=C;
      Writeln;
      Writeln('Hasil A=',A,' B=',B);
    End.

    Output :




    Program menghitung selisih waktu
    Deklarasi
    J, m , d , h , j1 , m1 , d1 , h1, hj , hm , sl , sisa , sisa1 : longint
    Algoritma
    { program menghitung selisih waktu }
    Read (  j.jam , m.mm , d.detik )                       { jam pertama }
    Read ( j1.jam , m1.menit , d1.detik )   { jam kedua }
               {konversi masing” jam ke total detik}
    H <= ( j*3600 ) + ( m*3600 ) + d
    H1 <= ( j1*3600 ) + ( m1*3600 ) +d1
               {hitung selisih total detik}
    S1 <= ( h1 – h )
               {konversi selisih detik kedalam jam, menit, detik}
    Hj <= s1 div 3600        { mendapatkan jam}
    Sisa <= s1 mod 3600
    Hm <= sisa div 60        { mendapatkan menit }
    Sisa1 <= sisa mod 60   { mendapatkan detik}
    Write ( s1= hj.jam , hm.menit , sisa1.detik)





    Program Menghitung_Selisih_Waktu;
    Uses WinCrt;
    Var j,m,d,h,j1,m1,d1,h1,hj,hm,sl,sisa,sisa1:longint;
    Begin
      Writeln('Program Menghitung Selisih Waktu');
      Writeln('================================');
      Writeln;
      Write('Waktu ke-1 jam   : ');readln(j);
      Write('Waktu ke-1 Menit : ');readln(m);
      Write('Waktu ke-1 Detik : ');readln(d);
      Writeln('================================');
      Write('Waktu ke-2 jam   : ');readln(j1);
      Write('Waktu ke-2 Menit : ');readln(m1);
      Write('Waktu ke-2 Detik : ');readln(d1);
      h:=(j*3600)+(m*60)+d;
      h1:=(j1*3600)+(m1*60)+d1;
      sl:=h1-h;
      if (sl/3600)>0 then
        begin
         hj:=sl div 3600;
         sisa:=sl-(hj*3600);
        end
      else
        begin
         hj:=0;
         sisa:=sl;
        end;
      if (sisa/60)>0 then
        begin
         hm:=sisa div 60; 
         sisa1:=sisa-(hm*60);
        end
      else
        begin
         hm:=0;
         sisa1:=sisa;
        end;
      Writeln;
      Writeln('Selisih Waktu: ',hj,' jam ',hm,' Menit ',sisa1,' Detik');
    End.






    Output :


    2.2.        PEMILIHAN



    Suatu Struktur dasar algoritma yanmemiliki satu atau lebih kondisi tertentu dimana sebuah instruksi dilaksanakan jika sebuah kondisi/persyaratan terpenuhiAda beberapa bentuk struktur dasar pemilihan ini :

    2.2.1        PERNYATAAN if

    Sebuah pernyataan yang dapat dipakai muntuk mengambil keputusan berdasarkan suatu kondisi. Bentuk pernyataan ini ada dua macam :
    -    if saja dan

    -    else

    Bentuk umumnya satu kasus:
    If  (kondisi)
                (pernyataan);
    Pernyataan dilaksanakan jika dan hanya jika kondisi yang diinginkan terpenuhi, jika tidak program tidak memberikan hasil apa-apa.



    Contoh :
    Algoritma HURUF_VOKAL
    Text Box: DEKLARASI
 c : char
DESKRIPSI
 read(c)
 if (c=’a’) or (c=’i’) or (c=’u’) or (c=’e’) or (c=’o’) then
    write(‘huruf hidup’)
 endif

{ mencetak pesan “huruf vokal” bila sebuah karakter yang dibaca merupakan huruf hidup, asumsikan karakter yang dibaca adalah huruf kecil }







    program HURUF_VOKAL;
    uses wincrt;
    var
                c : char;
    Begin
                writeln('masukkan huruf');read(c);
                if (c='a') or (c='i') or (c='u') or (c='e') or (c='o') then
                   write('huruf hidup')
            end.



    Program DataPegawai;
    Uses Wincrt;
    Type Pegawai = record
         NIP       : String[9];
         Nama      : String[30];
         Golongan  : Char;
         Jamkerja  : Real;
    End;
    Var
      Data                  : Pegawai;
      Gapok                 : Real;
      Insentif,Gaber        : Real;
      Ul                    : Char;
    Begin 
      Repeat
        Clrscr;
        Writeln('Entry Data Pegawai PT. XYZ');
        Writeln('==========================');
        Writeln;
        Write('NIP          : ');Readln(Data.NIP);
        Write('Nama         : ');Readln(Data.Nama);
        Write('Golongan     : ');Readln(Data.Golongan);
        Write('Jam Kerja    : ');Readln(Data.Jamkerja);
        Writeln;
        Writeln;
        Case Data.Golongan of
          '1'  : Gapok:=1000000;
          '2'  : Gapok:=1500000;
          '3'  : Gapok:=2000000;
        Else
          Gapok:=0;
        End;

        if Data.Jamkerja>200 then
          Insentif:=(Data.Jamkerja-200)*10000
        else
          Insentif:=0;

        Gaber:=Gapok+Insentif;

        Clrscr;
        Writeln('Laporan Gaji Pegawai');
        Writeln('PT. XYZ');
        Writeln;
      
    Writeln('=========================================');
        Writeln('|NIP       | Nama                    | Golongan | Jam
    Kerja | Gaji         |');
      
    Writeln('=========================================');
      
    Writeln('|',Data.NIP:10,'|',Data.Nama:25,'|',Data.Golongan:10,'|',Data
    .Jamkerja:11:0,'|',Gaber:14:2,'|');
      
    Writeln('=========================================');
        Writeln;
        Write('Mau Ulang Lagi? [Y/T]: ');Readln(Ul);
      Until Upcase(Ul)<>'Y';
    End.

    Maka menghasilkan output sebagai berikut :

    2.3.PERULANGAN DALAM PASCAL

    Dalam hampir setiap program yang kompleks mutlak memerlukan suatu perulangan dan percabangan. Tujuan perulangan disini adalah  untuk mengulang statemen atau blok statemen berulang kali sesuai  sejumlah yang ditentukan pemakai. Dalam materi ini akan memberikan  gambaran konsep dasar dari pengertian diatas.
               
    2.3.1.      Perulangan For

    Perulangan dengan statement for digunakan untuk mengulang statemen atau suatu blok statemen berulang kali. Perulangan dengan bentuk statement for dapat dapat dibedakan menjadi 2, yaitu:
    1.      Perulangan for positif, contoh perulangan for untuk satu satetment adalah:
    Uses Crt;
    Var
    i : Integer;
    Begin
    For i := 1 To 5 Do Writeln ('Belajar Pascal’);
    END.
    Maka bila program diatas hasilnya :
    Belajar Pascal
    Belajar Pascal
    Belajar Pascal
    Belajar Pascal

    2.      Perulangan for negative, adalah perulangan dengan menghitung (counter) dari besar ke kecil. Contoh statement yang digunakan adalah for-DownTo-do yaitu:
    Uses Crt;
    Var
    i : Integer;
    Begin
    For i := 10 DownTo 1 Do Write (i:3);
    End.
    Hasil :
    10     8 7 6 5 4 3 2 1


    2.3.2.      Perulangan For Tersarang

    Perulangan for tersarang adalah perulangan for yang berada pada perulangan yang lainnya. Perulangan yang lebih dalam akan diproses terlebih dahulu sampai habis, kemudian perulangan yang lebih luar baru akan bertambah, mengerjakan perulangan yang lebih dalam lagi mulai dari nilai awalnya dan seterusnya.
    Contoh :
    Var
    a,b : Integer;
    Begin
    For a := 1 To 3 Do
    Begin
    For b := 1 To 2 Do Write (a :4,b:2);
    Writeln;
    End;
    End.
    Hasilnya adalah sebagai berikut:
    1 1 1 2
    2        1 2 2
    3        1 3 2


    2.3.3.      Perulangan While-Do 

    Penyeleksian kondisi digunakan untuk agar program dapat menyeleksi kondisi, sehingga program dapat menentukan tindakan apa yang harus dikerjakan, tergantung dari kondisi yang diseleksi tersebut. Perulangan while-do tidak dilakukan jika kondisi tidak terpenuhi.
    Contoh :
    Uses Crt;
    Var i : Integer;
    Begin
    i := 0;
    While < 5 do
    Begin
    Write (i:3);
    Inc (i); { sama dengan i:=i+1 }
    End;
    End.
    Hasilnya adalah sebagai berikut:
    0        1 2 3 4


    2.3.4.      Perulangan While – Do tersarang

    Perulangan while – do tersarang (nested while - do) merupakan perulangan while-do yang satu di dalam perulangan while–do yang lainnya. Contoh :
    Uses Crt;
    Var
    a, b : Integer;
    Begin
    ClrScr;
    a:=1;
    b:=1;
    While a < 4 Do{ loop selama a masih lebih kecil dari 4 }
    Begin
    a := a+1;
    While b < 3 Do{ loop selama b masih lebih kecil dari 3 }
    Begin
    Write (a:3,b:2);
    b:=b+1;
    End;
    End;
    Readln;
    End.


    2.3.5.       Perulangan Repeat - Until
    Repeat – Until digunakan untuk mengulang statemen-statemen atau blok statement sampai (until) kondisi yang diseleksi di until tidak terpenuhi. Contoh  dari statement ini adalah :
    Var
    i : Integer;
    Begin
    i:=0;
    Repeat
    i:= i+1;
    Writeln (i);
    Until i=5;
    End.
    Hasilnya adalah :
    1
    2
    3
    4
    5


    2.3.6.       Repeat – Until tersarang
    Repeat – Until tersarang adalah suatu perulangan Repeat - Until yang satu berada didalam perulangan Repeat – Until yang lainnya. Contoh :
    Var
    a,b,c : Real;
    Begin
    Writeln('========================================');
    Writeln(' sisi A sisi B Sisi C ');
    Writeln (' =====================================');
    a:= 1;
    Repeat { perulangan luar }
    b := 0;
    Repeat{ perulangan dalam }
    c:=Sqrt (a*a+b*b);
    Writeln (a:6:2, b:9:2, c:9:2);
    b:=b+5;
    Until b>25; { berhenti jika b lebih besar dari 5 untuk
    perulangan dalam }
    a:=a+1;
    Until a>3; { berhenti jika a lebih besar dari 3 untuk
    perulangan luar }
    Writeln(' =======================================');
    End.
    2.4. PROCEDURE dan FUNCTION
    Ketika program yang dibuat sudah terlalu panjang ratusan bahkan puluhan ribu baris, sehingga kita mengalami kesulitan untuk memahami jalannya program secara keseluruhan, maka ada baiknya bila program tersebut dipecah menjadi beberapa bagian yang biasanya disebut modul, subprogram atau subrutin. Konsep semacam ini biasa disebut dengan pemrograman prosedural. Dalam tulisan ini selanjutnya akan digunakan kata modul supaya lebih ringkas.
    Memecah program menjadi modul-modul tentunya akan lebih memudahkan dalam mencari kesalahan, memperbaiki serta membuat dokumentasinya. Pembuatan modul  di Turbo Pascal dibagi dua jenis yaitu : Prosedur dan Fungsi. Prosedur atau Fungsi adalah suatu modul program yang terpisah dari program utama, diletakan dalam blok tersendiri yang berfungsi sebagai bagian dari program. Setiap prosedur diawali dengan kata cadangan (reserver word) Procedure, sedangkan  Fungsi diawali dengan kata cadangan Function.
    Prosedur atau Fungsi banyak digunakan pada program terstruktur, karena :
    1.      Merupakan penerapan konsep modular, yaitu memecah program menjadi modul-modul atau subprogram-subprogam yang lebih sederhana.
    2.      Untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan.

    2.4.1.      Penulisan Prosedur (Procedure)
    Prosedur memiliki struktur yang sama dengan struktur program, yaitu terdiri dari nama prosedur, deklarasi-deklarasi dan bagian deskripsi (statement atau aksi di dalam prosedur). Semua deklarasi di dalam prosedur bersifat lokal sehingga hanya bisa digunakan oleh prosedur itu saja, sedangkan deklarasi di dalam program utama bersifat global sehingga dapat dikenali di seluruh bagian program. Struktur umum prosedur adalah sebagai berikut :






    Penulisan Prosedur di dalam Turbo Pascal



    Procedure Nama_Prosedur (param_formal1:tipe_param1,
    param_formal2:tipe_param2,…);
    {Jika prosedur tidak memiliki parameter, tanda kurung tidak disertakan}
    var
    {bagian deklarasi prosedur, sifatnya lokal}
    begin
        statement-1;
        statement-2;
        …………
        Statement-n;
    end;
     
     





















    Struktur blok program utama beserta prosedur, adalah sebagai berikut  :
     


















     Struktur blok program beserta prosedur tanpa parameter

    2.4.1.1.Bagaimana jika tanpa prosedur ?
    Apakah dalam suatu program harus selalu terdapat prosedur? Jawabannya adalah tidak. Bila kita membuat program yang sangat sederhana, misalnya program untuk menampilkan kata “hallo world” di layar, maka boleh saja tidak menggunakan prosedur. Untuk lebih jelasnya berikut disajikan contoh program untuk menghitung luas dan keliling persegipanjang yang menggunakan prosedur dan tanpa prosedur.
    Contoh Program Persegipanjang tanpa prosedur :

    Program PersegiPanjang;             {Judul Program Utama}
    uses crt;
    var                                                      {deklarasi variabel global}
      p,l:byte;                                             {p :panjang, l:lebar}
      ls,kel:integer;                                     {ls:luas, kel:keliling}
    begin
      clrscr;
      writeln('Program Untuk Menghitung luas dan keliling persegipanjang');
      writeln;
      write('Masukan panjang : ');readln(p);
      write('Masukan lebar   : ');readln(l);
      writeln;
      ls:=p*l;                                  {luas=panjang x lebar}
      Kel:=(2*p)+(2*l);                  {keliling=(2 x panjang) + (2 x lebar)}
      writeln('Luas     : ',ls);
      writeln('Keliling : ',kel);
      readln;
    end.
     
     















    Bila dituliskan di Editor Turbo Pascal kira-kira tampilannya seperti dibawah ini. Untuk melihat hasilnya silahkan tekan Ctrl + F9.


    Setelah dirunning (Ctrl + F9), maka hasilnya seperti dibawah ini, kemudian cobalah untuk menginputkan data , misal : 4 untuk panjang dan 6 untuk lebar maka hasilnya adalah, Luas   =  24 dan  Keliling = 20.
    Tampilan setelah dirunning
    Silahkan anda bisa mencoba dengan menginputkan angka yang berbeda, yang penting tidak melebihi 255, karena type data byte yang digunakan oleh variabel p dan l seperti pada contoh program diatas hanya mampu menampung data berupa angka sampai dengan 255, sedangkan variabel luas & keliling hanya mampu menampung angka -32768 s/d 32767 karena menggunakan tipe data integer. Mengapa demikian, bagaimana cara mengetahui jangkauan suatu tipe data?, Untuk mengetahui jangkauan (range) tipe data, anda bisa melihat di bagian help. Caranya : Help > Index, kemudian cari kata integer, lalu tekan enter maka akan muncul tampilan sebagai berikut :
    Tampilan Help di turbo pascal ketika menampilkan tipe data

    Oh ya! di Turbo Pascal, terdapat fasilitas untuk mengatur warna tampilan, misalnya warna Sintaks (sintax), bila anda ingin mencoba silahkan masuk ke menu Option > Environment > Color. Di bagian Group cari kata Syntax, selanjutnya di bagian Item, terdapat item-item : Whitespace, Comments, Reserver Words, Identifiers, Symbols, Strings, Numbers, Assembler  yang dapat diatur warna tampilannya, caranya pilih salah satu Item kemudian pilih warna apa yang dikehendaki pada bagian Foreground untuk warna depan sedangkan Background untuk warna latar belakang.
    Tampilan menu Colors


    Pengaturan tampilan warna sintax pada Editor Turbo Pascal memang bukan suatu kewajiban, dan tidak akan berpengaruh terhadap proses program. Tetapi hal ini bermanfaat pada saat proses pembuatan/pengetikan program, dimana perbedaan warna  item-item sintax akan membantu kita dalam pembacaan program.
    2.4.1.2.Menggunakan prosedur

    Selanjutnya kita modifikasi program tadi, dengan menambahkan prosedur sehingga menjadi seperti dibawah ini :
    Program Persegipanjang menggunakan prosedur
    Program PersegiPanjang;         {judul Program Utama}
    uses crt;
    var                                                                                {deklarasi variabel global}
        p,l:byte;                                                    {p :panjang, l:lebar}
        ls,kel:integer;                                           {ls:luas, kel:keliling}
    Procedure Hitung_Luas;           {Prosedur untuk menghitung luas}
    begin
     ls:=p*l;
     writeln('Luas     :',ls);
    end;
    Procedure Hitung_Keliling;                  {Prosedur untuk menghitung keliling}
    begin
     kel:=(2*p)+(2*l);
     writeln('Keliling :',kel);
    end;
    {===program utama===}
    begin
      clrscr;
      writeln('Program Untuk Menghitung luas dan keliling persegipanjang');
      writeln;
      write('Masukan panjang : ');readln(p);
      write('Masukan lebar   : ');readln(l);
      writeln;
      Hitung_Luas;                                           {Memanggil prosedur Hitung_Luas}
      Hitung_Keliling;               {Memanggil prosedur Hitung_Keliling}
      readln;
    end.
     
     





















    Pada program tanpa prosedur maka seluruh statement dituliskan di dalam blok program utama, sehingga ketika program semakin besar maka blok program utama semakin padat. Tetapi bila menggunakan prosedur maka di dalam blok program utama akan lebih sedikit, karena hanya berisi nama prosedur yang dibutuhkan dan statement tambahan lainnnya yang dibutuhkan. Pada contoh diatas nama prosedur yang dipanggil di dalam blok program utama yaitu  Hitung_Luas dan Hitung_Keliling dan arah pemanggilan prosedur digambarkan dengan garis putus-putus berwarna merah agar lebih jelas.
    Bila dituliskan di Editor Turbo Pascal kira-kira tampilannya seperti dibawah ini. Untuk melihat hasilnya, seperti biasa silahkan tekan Ctrl + F9. Bila program sudah dieksekusi maka kedua program tersebut (program dengan prosedur atau tanpa prosedur) akan memberikan hasil yang sama, tetapi dari teknik pembuatan program jelas berbeda.
     Tampilan di Editor Turbo Pascal,
    Program Persegipanjang menggunakan prosedur
    Ketika kita membuat suatu program tanpa prosedur maka seluruh statement yang terdapat di dalam program utama akan dieksekusi secara beruntun (sequential) dari atas ke bawah, sedangkan bila menggunakan  prosedur, maka program utama hanya akan mengeksekusi prosedur-prosedur yang dipanggil, bila prosedur tersebut dipanggil di dalam  program utama, jadi bila untuk sementara kita tidak membutuhkannya, maka cara mudah yang dapat kita lakukan yaitu tidak usah menghapusnya tetapi cukup dengan tidak memanggilnya di dalam blok program utama.
    {program utama}
    begin
       statement-1;
       statement-2;
       Prosedur1;
       statement-3;
       statement-4;
       statement-5;
       Prosedur2;
       Statement-6;
       statement-n;
    end.
     


    Text Box: 1


    Oval: 6
    Procedure Prosedur2;
    begin
       statement-1;
       statement-2;
       ...
       Statement-n;
    end;
     
     


    8


    Arah eksekusi program utama ketika terdapat prosedur, maka akan memanggil prosedur dan melakasanakan statement yang terdapat di dalam prosedur

    2.4.1.3.Variabel Global dan Variabel Lokal
    Untuk lebih memudahkan kita memahami variabel lokal dan variabel global, mari kita modifikasi listing prorgram di atas, perubahannya hanya sedikit yaitu, memindahkan penulisan variabel ls ke dalam Procedure Hitung_luas , dan variabel kel dipindahkan ke dalam Procedure Hitung_keliling, sehingga menjadi seperti dibawah ini.
    Program Persegipanjang menggunakan prosedur dengan variabel lokal

    Variabel p dan l pada listing program di diatas, bersifat global sehingga dapat dikenali baik di program utama maupun didalam Procedure Hitung_luas dan Procedure Hitung_keliling, variabel semacam itulah yang dimaksud dengan variabel global. Sedangkan variabel ls dan variabel kel bersifat lokal dan hanya dikenali oleh program itu sendiri, variabel seperti itu disebut variabel lokal. Bila variabel lokal dipanggil diluar prosedur tersebut maka tidak akan dikenali dan program menjadi error, sebagai bukti mari kita sedikit modifikasi listing program di atas, output program yang terdapat pada masing-masing program kita pindahkan ke dalam blok program utama, sehingga di dalam setiap prosedur hanya terdapat satu statement saja,  hasilnya seperti dibawah ini.
    Program Persegipanjang , bila variabel lokal dipanggil dari luar

    Bila program tersebut dicompile maka akan terjadi error karena variabel ls dan kel tidak dikenali (unknown identifier) di dalam blok program utama. Prosedur yang terdapat di dalam program pada listing diatas adalah contoh prosedur tanpa parameter.. Bila prosedur tidak memiliki parameter maka tanda kurung setelah nama prosedur tidak perlu disertakan. Agar listing program di atas tidak terjadi error ketika dicompile, maka dapat dilakukan  cara sebagai berikut :
    1.      Dibuat bersifat global
    Supaya suatu variabel bersifat global, maka harus dideklarasikan di atas modul yang menggunakannya.
    2.      Dikirim sebagai parameter ke modul yang membutuhkannya.
    Bagaimana caranya?, apa yang dimaksud dengan parameter?, semoga tulisan berikut ini bisa menjawab kedua pertanyaan tersebut.
    2.4.2.      Penulisan Fungsi (Function)
    Apa yang dimaksud dengan fungsi?. Fungsi tidak jauh berbeda dengan prosedur, yaitu suatu modul program terpisah dari progam utama yang diletakan dalam blok tersendiri yang berfungsi sebagai bagian dari program. Namun fungsi memiliki perbedaan mendasar dengan prosedur yaitu : fungsi memberikan nilai balik (return) sedangkan prosedur tidak. Cara penulisan fungsi di Turbo Pascal seperti dibawah ini :
    Cara Penulisan Fungsi
    Function Nama_Fungsi(param_formal:tipe_param,...):tipe_hasil;
    var
    {bagian deklarasi fungsi, sifatnya lokal}
    begin
       statement-1;
       statement-2;
       …………
       Statement-n;
       Nama_Fungsi:=hasil;
    end;
     
    sdf,sdf,sdf
     
























    Struktur blok program beserta Fungsi

    Jika kita ketikan di editor Turbo Pascal, kira-kira tampilannya seperti terlihat pada gambar dibawah ini :
     Tampilan di Editor Turbo Pascal,

    2.4.2.1. Program Persegipanjang dengan Fungsi
    Sama seperti prosedur, untuk mengakses setiap Fungsi kita harus memanggil namanya. Fungsi juda dapat memiliki parameter, tetapi parameter yang terdapat dalam fungsi selalu merupakan parameter masukan (input parameter). Tipe hasil di dalam suatu fungsi merupakan tipe nilai balik (return)  yang diberikan oleh fungsi. Bila kita perhatikan listing program diatas, terdapat sebuah Fungsi/Function dengan nama  Luas yang memiliki parameter p dan l, sedangkan tipe nilai balik (return) yang dihasilkan oleh fungsi tersebut adalah integer. Pada contoh diatas Luas digunakan sebagai nama fungsi, dan didalam fungsi tersebut, Luas digunakan sebagai variabel untuk menampung hasil perhitungan pada fungsi tersebut.
    Apakah suatu modul program harus dibuat menjadi fungsi atau prosedur ?, jawabannya adalah terserah anda, karena ini semua tergantung dari kebutuhan dan kemampuan seorang programmer. Namun biasanya fungsi digunakan bila suatu modul program mengembalikan suatu nilai sedangkan prosedur digunakan untuk menghasilkan sekumpulan aksi.
    2.5.      LARIK (ARRAY)
    Larik (Array) adalah suatu bentuk struktur data yang menampung satu atau lebih dari satu data yang sejenis (bertipe data sama), yang diwakili oleh satu nama variabel.
    Setiap elemen atau anggota larik dapat dikenali atau diakses melalui suatu indeks.
    Larik berdimensi satu disebut vektor.
    Larik berdimensi dua disebut matriks.
    Larik berdimensi lebih dari dua disebut tensor.

    Mendefinisikan Larik :

    a nama_array : array [1..n] of tipe_data;
    contoh : A : array [ 1..10] of integer;

    b tipe_data nama_array [n];
    contoh : integer A[10];

    c type larik : array [1..n] of tipe_data;
    nama_array : larik;
    contoh : type larik : array [1..10] of integer; A : larik;

    Operasi Larik :

         membaca / mengisi larik
         mencetak / menampilkan  larik
         menggeser  isi larik
         menggabungkan  beberapa larik
         menguraikan  satu larik
         mengurutkan  isi larik
         mencari elemen dalam larik

    2.5.1. Membaca / mengisi Larik

    Proses membaca atau mengisi suatu larik, dimulai dengan mendefinisikan array disertai dengan jumlah elemen yang akan disimpan, kemudian dengan memakai instruksi perulangan satu persatu elemen diisi dengan indeks yang berurutan mulai dari 1 hingga indeks maksimum.

    Berikut ini disajikan dua algoritma untuk mengisi suatu larik. Algoritma yang pertama tidak menggunakan prosedur, algoritma yang kedua menggunakan pro sedur.
      Algoritma IsiLarik_1
    { membaca atau mengisi larik tanpa menggunakan prosedur }

    Deklarasi
    const N = 10; integer A[N]; integer indeks;

    Deskripsi
    for ( indeks = 1 to N step 1)
    write ( Masukkan elemen ke-“, indeks)
    read ( A[indeks] );
    endfor.




    Algoritma IsiLarik_2
    { membaca atau mengisi larik dengan menggunakan prosedur }

    Deklarasi
    const N=100; integer A[N]; integer K;
    prosedur Baca_Larik ( input integer M, output integer A[ ] );

    Deskpripsi
    write ( Masukkan Jumlah Elemen Larik ( < 100 ) : );
    read ( K ); Baca_Larik ( K, A);



    prosedur Baca_Larik ( input integer M, output integer A[ ] )
    { prosedur membaca / mengisi larik }

    Deklarasi
    integer indeks;

    Deskripsi
    for ( indeks = 1 to M step 1 )
    write ( Masukkan elemen ke-“, indeks );
    read ( A[indeks] );
    endfor.
    2.5.2.      Menampilkan Isi Larik

    Berikut ini disajikan sebuah prosedur untuk menampilkan isi suatu larik dengan M buah elemen. Prosedur ini dapat dipanggil oleh algoritma yang memerlukan prosedur untuk menampilkan sebuah larik.

    prosedur Cetak_Larik ( input integer M, input integer A[ ] )
    { prosedur untuk menampilkan isi suatu larik atau array }

    Deklarasi
    integer indeks;

    Deskripsi
    for ( indeks = 1 to M step 1 )
    write ( A[indeks] );
    endfor.

    2.6.      Matriks / Larik Dua Dimensi

    Salah satu struktur data larik yang juga banyak digunakan dalam berbagai aplikasi adalah matriks atau larik 2D (dua dimensi), satu untuk menunjukkan baris dan yang lainnya menunjukkan kolom. Susunan angka berikut ini menunjukkan matriks 4 x 5 ( 4 baris dan 5 kolom).
    10
    12
    7
    9
    16
    8
    15
    10
    11
    25
    13
    8
    34
    23
    7
    45
    27
    6
    5
    17

    Mengisi suatu matriks berdimensi 4 x 5 dilakukan baris demi baris, mulai dari baris 1 dengan mengisi kolom 1 sampai dengan kolom 5, kemudian pindah ke baris 2 dan mengisi kolom 1 sampai dengan kolom 5, dst.
    Algoritma Isi_Matriks_4x5
    { algoritma mengisi suatu matriks 4 x 5 }

    Deklarasi
    const
    baris=4, kolom=5;
    integer brs, kol;
    integer A[baris] [kolom];
    Deskripsi
    for ( brs=1 to baris step 1 )
    for ( kol=1 to kolom step 1 )
    write ( “elemen baris-, brs, kolom-“, kol );
    read ( A[brs][kol] );
    endfor.
    endfor.




    Menampilkan isi dari matriks 4x5 diatas adalah sebagai berikut.

    Algoritma Tampilkan_Isi_Matriks
    { algoritma menampilkan isi matriks 4 x 5 }

    Deklarasi
    const baris=4, kolom=5;
    integer brs, kol;
    integer A[baris] [kolom];

    Deskripsi
    for ( brs=1 to baris step 1 )
    for ( kol=1 to kolom step 1 ) write ( A[brs] [kol] ); endfor.
       write ( );
    endfor.
    Prosedur untuk mengisi dan menampilkan elemen-elemen matriks berdimensi N x M
    disajikan berikut ini.
    prosedur Isi_Matriks ( input integer N, input integer M, output integer A[ ] )
    { prosedur untuk mengisi matriks berdimensi N x M }

    Deklarasi
    integer brs, kol;

    Deskripsi
    for ( brs=1 to N step 1 )
    for ( kol=1 to M step 1 )
    write ( “elemen baris-, brs, kolom-“, kol );
    read ( A[brs][kol] );
    endfor.
    endfor.
    prosedur Tampil_Matriks ( input integer N, input integer M, input integer A[ ] )
    { prosedur untuk menampilkan isi matriks berdimensi N x M }

    Deklarasi
    integer brs, kol;

    Deskripsi
    for ( brs=1 to N step 1 )
    for ( kol=1 to M step 1 ) write ( A[brs] [kol] ); endfor.
    endfor.














    BAB III
    PENUTUP


    3.1.KESIMPULAN

    3.2.SARAN

               

















    DAFTAR PUSTAKA


    -       Jogianto Hartono, MBA, Ph. D., “Konsep Dasar Pemrograman Bahasa C”, Andi Yogyakarta, 2003
    -       Rinaldi Munir, “Algoritma dan Pemrograman dalam Bahasa Pascal dan C Buku 1”, Informatika Bandung, 2004.
    -       Rinaldi Munir, “Algoritma dan Pemrograman dalam Bahasa Pascal dan C Buku 2”, Informatika Bandung, 2001.
    -       Ir. Abdul kadir, “Pemrograman Pascal Menggunakan Turbo Pascal 7.0/Borland Pascal 7.0 Membahas Pemrograman Berorientasi Objek Buku 2”, Andi Yogyakarta, 2002.
    -       IlmuKomputer.com

    No comments:

    Post a Comment

    Fashion

    Beauty

    Travel