Modul Praktikum 2 Revisi

download Modul Praktikum 2 Revisi

of 40

description

Modul

Transcript of Modul Praktikum 2 Revisi

  • 1 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    PRAKTIKUM 1PANDUAN SINGKAT DAN PETUNJUK PRAKTIKUM

    Panduan SingkatBahasa program merupakan suatu wahana untuk menuangkan pikiran manusia

    yang dapat dimengerti oleh mesin komputer sehingga bernilai guna. Suatu bahasaprogram akan terikat aturan dari paradigma bahasa. Ada berbagai macamparadigma bahasa: Prosedural, Fungsional, Deklaratif, Object Oriented,Konkuren. Paradigma yang diajarkan dalam Matakuliah Algoritma danPemrograman ini adalah paradigma prosedural.

    Perlu diperhatikan perbedaan antara belajar bahasa program dengan belajarmemprogram!!! Belajar bahasa program hanya belajar tentang sintak (aturan) daribahasa sedangkan belajar memprogram akan tercakup beberapa hal yangdidalamnya terkandung tentang belajar bahasa program itu sendiri. Yang harusdiperhatikan oleh mahasiswa yang sedang belajar memprogram, yaitu : Simulasi, sensibilitas terhadap masalah dan kemungkinan solusi. Kegiatan

    dilakukan di kelas, melalui permainan. Contoh : Mengurutkan tinggi badanmahasiswa dari tinggi ke pendek atau sebaliknya. Permainan dapat dilakukansecara manual maupun dengan komputer.

    Analisis masalah secara lebih formal dan membuat spesifikasi dan algoritmadalam notasi yang ditetapkan. Mahasiswa harus menuliskan solusialgoritmiknya dalam notasi standar di kelas. Penulisan notasi algoritmikbertujuan untuk menyeragamkan pemahaman tentang algoritma programyang terbebas dari sintak (aturan) penulisan bahasa program .

    Menulis program, yaitu menterjemahkan notasi algoritmik ke dalam sintakbahasa program.

    Debugging dan menguji coba program. Hal ini bertujuan untukmendapatkan program yang benar. Program dikatakan benar jika terbebas darisalah lojik dan sintak bahasa. Secara ideal mahasiswa hanya diberikesempatan untuk me-run program sebanyak 2 kali : pertama untukmembersihkan program dari kesalahan sintak dan kedua untuk mendapatkanprogram benar. Pada tahap ini diharapkan tidak terjadi kesalahan lojik jikaanalisa benar.

    Mengamati peristiwa eksekusi, perlu dilakukan untuk meningkatkankepercayaan bahwa jika analisa benar maka sisa pekerjaan menjadi mudah.Pada pemrograman prosedural, aspek ini penting untuk memahami fenomenaeksekusi dan perubahaan nilai suatu struktur data.

    Membaca program : orang akan dapat menulis dengan baik kalau seringmembaca. Hal ini juga berlaku dalam memprogram. Kegiatan yang dapatdilakukan di kelas adalah dengan saling tukar menukar teks algoritma, dansaling mengkritik algoritma teman. Mahasiswa harus berlatih sendiri padakegiatan belajar bersama.

    Membuktikan kebenaran program secara formal, satu-satunya hal yangmenjamin kebenaran, tetapi kontradiktif dan sulit diterapkan dalam kehidupansehari-hari. Program yang hanya lima baris pembuktiannya bisa sehalaman,

  • 2 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    sehingga seringkali tidak pernah diterapkan dalam aplikasi nyata. Aktifitas inidicakup dalam matakuliah Analisis Algoritma.

    Petunjuk PraktikumDari pengantar dapat disimpulkan bahwa pekerjaan memprogram tidak

    100 % di depan komputer (artinya mahasiswa tidak langsung memecahkanpermasalahan di komputer) melainkan ada fase sebelum di depan komputer yaitufase Analisa. Untuk program yang kecil anda bisa langsung memecahkan didepan komputer namun bagaimana untuk program yang besar? Secarakonvensional, isi fase Analisa berupa oret-oretan di kertas yang menjelaskantentang solusi permasalahan. Untuk itu maka ditetapkan langkah-langkahnya, Fase I ( analisa sederhana ): Hasil proses dari fase ini adalah oretan Notasi

    Algoritmik yang siap diterjemahkan ke dalam bahasa program pascal. Fase inidilakukan sebelum masuk ke laboratorium. Di Lab, mahasiswa hanyadiperkenankan membawa oretan Notasi Algoritmik untuk masalah yangbersangkutan ditambah Catatan kuliah dan Buku pendukung lainnya( artinyamahasiswa tidak diperkenankan membawa lembaran source code yang telahtercetak untuk masalah yang bersangkutan)

    Fase II ( pembuatan source code) : Meliputi penterjemahan notasi algoritmik,debugging dan run, dan testing program. Dilakukan di dalam Lab selamawaktu yang ditentukan untuk setiap praktikum. Hasil dari fase ini adalahSource Code yang benar dan Kasus uji.

    Fase III (dokumentasi): merupakan rekaman hasil kegiatan dari setiap fase diatas. Mahasiswa harus membuatkan laporan yang terdiri dari : AnalisaMasalah yang dilengkapi dengan Notasi Algoritmik, Source Code, KasusUji, dan Kesimpulan jika perlu. Source Code dan kasus Uji harusmerupakan hasil Print-Out Komputer di Lab, sedangkan yang lainnya bebas(boleh dengan tulisan tangan). Fase ini dilakukan di luar Lab.

    Fase IV (pengumpulan laporan): Laporan diserahkan ke Assistan untukPascal dalam waktu yang telah ditentukan. Pengumpulan laporan di luar waktuyang telah ditentukan tidak akan diterima.

    Peraturan Praktikum1. Peserta praktikum menerima dan kemudian mempelajari modul praktikum.2. Praktikan diharapkan sudah mempelajari lebih dalam materi yang diberikan

    sebelum melakukan praktikum.3. Praktikan harus menghadiri setiap sesi praktikum, tidak hadir tanpa

    keterangan akan menyebabkan hak menjadi praktikan gugur (nilai E).4. Laporan praktikum dianggap sah apabila praktikan telah melakukan

    praktikum sesuai dengan materi praktikum minggu sebelumnya dan terdapattanda tangan dosen/asisten.

    5. Isi laporan praktikum harus sesuai dengan petunjuk praktikum diatas.6. Cover laporan praktikum berupa print out dan tidak perlu dijilid, formatnya

    ada pada halaman berikutnya.7. Cover laporan berupa printout harus dibawa pada saat praktikum agar ditanda

    tangan oleh Dosen/asisten.

  • 3 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    Contoh cover laporan:LAPORAN RESMI

    PRAKTIKUM PEMROGRAMAN I

    PRAKTIKUM 2

    VARIABEL BERINDEKS (ARRAY) DIMENSI TUNGGAL

    Disusun Oleh :

    LABORATORIUM KOMPUTERJURUSAN ILMU KOMPUTER

    FAKULTAS SAINS DAN TEKNIKUNIVERSITAS NUSA CENDANA

    KUPANG 2014

    TGL. PRAKTIKUM :NAMA :NIM :DOSEN :

    (paraf Dosen/Asisten)-----------------------------------

  • 4 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    PRAKTIKUM 2VARIABEL BERINDEKS (ARRAY) DIMENSI TUNGGAL

    1. Tujuan :Praktikan bisa memahami konsep tipe data array (array 1 dimensi) dan

    menggunakannya dalam program pascal

    2. Materi Praktikum :Pengantar Array 1 Dimensi

    Variable dengan tipe data tunggal (skalar) hanya dapat digunakan untuk menyimpansebuah nilai saja sehingga untuk menyimpan beberapa nilai sekaligus dalam suatuvariable dibutuhkan suatu variable khusus yang disebut dengan variable array atauvariable berindeks.

    Variable berindeks atau array adalah variable yang mempunyai tipe data sejenis,misalnya numeric atau string. Yang mampu menampung banyak nilai, dan didefinisikandengan sebuah nama variable berindeks.Dari penjelasan di atas, sebuah larik (array) dapat diilustrasikan sebagai berikut :

    1 2 3 4 .. i .. n

    X

    X adalah data bertipe larik dengan komponen sebanyak n.Berdasarkan jumlah dimensi indeks dalam sebuah variable array, dikenal adanya

    array dimensi satu dan array dimensi banyak.Beberapa hal penting yang harus diperhatikan bila ingin memasukkan deretan data ke

    dalam variable array adalah :a. Tipe data yang akan disimpan ke dalam variable array harus diketahui sebab

    variable array numeric hanya dapat menerima data numeric dan variable arraystring hanya dapat menerima data string.

    b. Banyaknya data harus lebih kecil atau sama dengan jumlah subskrip (indeks) dariarray tersebut.

    c. Untuk memasukkan deretan data dalam suatu variable indeks dapat digunakaninstruksi perulangan.

    d. Banyaknya indeks yang ditentukan menunjukkan banyaknya ruang memori yangdialokasikan. Oleh karena itu dalam menentukan banyaknya indeks sebaiknyadisesuaikan dengan banyaknya data sehingga tidak memboroskan pengalokasianruang memori.

    Pendeklarasian Array 1 DimensiAda 2 cara untuk mendeklarasikan larik / array dimensi tunggal yaitu :

    1. Sebagai tipe data baruType Larik=Array[1..n] of datatype ;

  • 5 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    Var x : larik ;2. Langsung sebagai variabel

    Var x : Array[1..n] of datatype ;Mengakses Data Array 1 DimensiCara mengakses data larik adalah dengan menunjukkan :

    Nama_Larik[no.indeks] ;Misal : x[1] berarti kita mengakses data larik x pada no.indeks ke-1.

    Cetak Data Array 1 DimensiDisini ada dua cara atau model untuk mencetak array 1 dimensi :1. Dengan cara mencetak dengan langsung memanggil indeksnya

    Write(x[3])2. Jika hendak mencetak seluruh data array. Maka kita memanggilnya dengan

    looping . Mengapa dengan looping? Jika sebuah data yang dibutuhkan lebihdari 10 atau dengan kata lain dalam jumlah yang sangat banyak tentu sajatidak mungkin kita mencetak nya dengan mengambil data tersebut satupersatu karena hal itu akan sangat tidak efisien.

    For i:=1 to n doBeginWriteln(x[i])

    End;

    3. Kegiatan PraktikumPada saat praktikum, kerjakan tugas-tugas berikut ini :a. Buatlah program pascal dalam bentuk variabel berindeks (array) dimensi

    tunggal untuk menampung data nilai dari X jumlah mahasiswa. Dimana nilaiX diinputkan saat running time.

    b. Buatlah program pascal dalam bentuk variabel berindeks (array) dimensitunggal untuk menampung N nilai kemudian dihitung rata-ratanya . Dimananilai N diinputkan saat running time.

    4. TugasBuatlah program pascal untuk menentukan bilangan tertinggi dan terendah dari

    N bilangan bulat yang dimasukkan melalui piranti masukan. Dimana nilai Ndiinputkan saat running time

  • 6 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    PRAKTIKUM 3VARIABEL BERINDEKS (ARRAY) MULTIDIMENSI

    1. TujuanPraktikan bisa memahami konsep tipe data array (array 2 dimensi) dan

    menggunakannya dalam program pascal

    2. Materi PraktikumDalam penyelesaian beberapa masalah seperti perhitungan matriks, penentuan

    koordinat kartesius, penentuan koordinat vector tiga dimensi, dan sebagainya,array berdimensi satu kurang memadai. Maka diperlukan array multidimensi.Berikut contoh deklarasi array multidimensi :TypeNama_Array = Array[tipe-indeks1,tipe-indeks2,..., tipe-indeks ke n] of tipe data ;

    Untuk menentukan dimensi array, perhatikan contoh berikut :Matriks adalah suatu kumpulan bilangan yang disusun dalam bentuk baris dan

    kolom sehingga berbentuk persegi panjang. Untuk mendefinisikan dimensi darisuatu matriks maka harus memperhatikan jumlah baris dan kolom yangmerupakan ordo dari matriks tersebut. Misalnya :

    Untuk matriks ordo 2X3Matriks = Array[1..2, 1..3] of integer ;

    Untuk matriks ordo 5X2Matriks = Array[1..5, 1..2] of integer ;

    3. Kegiatan Praktikum- Buatlah program pascal dalam bentuk variabel berindeks (array)

    multidimensi untuk membuat suatu Matriks Transpose. Dimana jumlahBaris dan Kolom Matriks diinputkan saat running time.

    - Buatlah program pascal dalam bentuk variabel berindeks (array)multidimensi untuk menampilkan nilai pada diagonal utama. Dimanajumlah Baris dan Kolom Matriks diinputkan saat running time.

    4. TugasBuatlah program pascal dalam bentuk variabel berindeks (array) multidimensi

    untuk menghitung penjumlahan dua buah matriks. Dimana jumlah Baris danKolom Matriks diinputkan saat running time.

  • 7 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    PRAKTIKUM 4TIPE DATA REKAMAN (RECORD)

    1. TujuanPraktikan mampu membuat program pascal dalam bentuk Record.

    2. Materi PraktikumPengantar Record

    Tipe data ini merupakan perluasan dari tipe data Array, yaitu karena padaarray masing-masing komponennya harus menggunakan tipe data yang sama,maka pada record hal itu tidak berlaku lagi. Artinya diperbolehkan untukmenggunakan tipe data yang berbeda pada masing-masing komponen (field) darirecord tersebut.

    Dengan tipe data ini kita dapat mengumpulkan beberapa item data yangmasing-masing dapat mempunyai tipe data berbeda-beda. Masing-masing datadisebut field. Deklarasi tipe ini diawali kata record dan dikuti oleh suatu daftarfield dan diakhiri dengan kata cadangan end.Pendeklarasian record :

    TypeNama_record = record

    Field1: tipe data1 ;Field2: tipe data2 ;Fieldn: tipe datan ;

    End ;Contoh :

    Type Barang = recordNama : string[20] ;Jenis : string [20]Jumlah: integer ;

    End ;Memasukkan Data Ke Dalam Record

    Untuk memberikan nilai dari masing-masing field maka kita harusmenuliskan

    Nama_record.field := (nilainya);Misalkan : dari contoh diatas kita akan mengisikan nama barang dengan Piring,jenis barang yaitu barang pecah belah dan jumlah barang 3 lusin maka kita harusmenuliskan pada program utama

    Barang.Nama := Piring ;Barang.Jenis := Pecah belah ;Barang.Jumlah:= 36 ;

    Nilai-nilai dari field ini akan disimpan dalam record. Untuk melihat apakah benardata yang dimasukkan telah tersimpan dalah ecord maka pada var kitadeklarasikan suatu variable misal :

    X : array[1..n] of Nama_record ; dari soal di atas yaituX : array[1..n] of Barang ;

  • 8 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    Maka apabila nanti kita lakukan pemanggilan dengan mengetikkanWrite(X[i].nama);

    data dari field yang tersimpan dalam record tersebut akan ditampilkan.Adapula beberapa bentuk lain cara pemasukkan data record, diantara :1. Tiap-tiap komponen field dari record dapat dipergunakan dengan cara

    menuliskan:Pengenal_record.pengenal_field

    Contoh:langganan.Nama := Kurniawan;readln(langganan.Kode);writeln(langganan.Nama);writeln(langganan.Kode);

    2. Dengan menggunakan statemen withKita dapat langsung menuliskan pengenal field tanpa perlu menyertakanpengenal record-nya. Ini dapat dilakukan dengan menggunakan statemen withyang menyebutkan pengenal record.Contoh:

    with langganan dobegin

    Nama := Kurniawan;readln(Kode);

    end;with langganan dobegin

    writeln(Nama);writeln(Kode);

    end;

    Tipe data record dapat juga mempunyai field berupa tipe data record yang lainnya.Contoh:Typetgl = record

    hari : 1..31;bulan : 1..12;tahun : word;

    End;almt = record

    jalan : string[35];kota : string[25];

    End;pegawai = record

    nama : string[40];tglmasuk : tgl;alamat : almt;

    end;VarDatapegawai : pegawai;

  • 9 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    3. Kegiatan Praktikum- Buatlah program pascal dalam bentuk Record untuk menampilkan waktu dengan

    format hh:mm:ss setelah ditambah N detik. Nilai N diinputkan saat running time.- Buatlah program pascal dalam bentuk Record untuk menampung data-data

    mahasiswa, yang terdiri dari Data Nomor Mahasiswa, Nama Mahasiswa, IndeksPrestasi Mahasiswa. Dimana jumlah Mahasiswa diinputkan saat running time.

    4. TugasBuatlah program dalam bahasa pascal untuk memasukkan data belanja danmenampilkannya dalam bentuk nota Belanja. Total Harga, Total belanja, TotalBayar dan Total Kembali atau sisa didapat dengan melakukan proses perhitungankemudian hasilnya ditampilkan dalam bentuk seperti contoh dibawah ini.

  • 10 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    PRAKTIKUM 5REKURSI

    1. TujuanPraktikan mampu membuat program pascal dalam bentuk Rekursi.

    2. Materi PraktikumPengantar Rekursi

    Rekursi merupakan suatu proses di mana sebuah prosedur memanggil dirinyasendiri. Rekursi merupakan sebuah teknik pemrograman yang cukup tinggi danpenting untuk diketahui. Syarat suatu prosedur dapat disebut sebagai prosedurrekursi adalah :

    Prosedur tersebut memanggil dirinya sendiri. Terdapat anchor untuk menghentikan proses rekursi (anchor adalah

    kondisi di mana suatu fungsi rekursi selesai).Apabila suatu saat ada suatu masalah yang akan diselesaikan dengan cara

    rekursi maka untuk menyelesaikan algoritma pemecahan masalah tersebutharuslah diidentifikasi terlebih dahulu hal-hal sebagai berikut :

    Kapankah langkah-langkah rekursi terjadi. Contohnya adalah dalam kasusperhitungan faktorial secara rekursi yang akan dilaksanakan selama suatubilangan lebih besar dari 1.

    Apakah yang berbeda dalam setiap kali pemanggilan subrutin rekursi.Contohnya adalah dalam kasus perhitungan faktorial. Yang berbeda dalamsetiap kali pemanggilan subrutin adalah angka yang dimasukkan yangselalu lebih kecil satu bilangan dibandingkan pada pemanggilansebelumnya.

    Berikut ini adalah contoh penggunaan proses rekursi pada pencarian faktorialdan bilangan Fibonacci :Pencarian Bilangan Faktorial

    Factorial merupakan proses perhitungan suatu deret bilangan denganmenggunakan rumus :

    a. Untuk n > 0n! = 1 * 2 * 3 * 4 * * (n-2) * (n-1) * n

    ataun! = n * (n-1) * (n-2) * * 4 * 3 * 2 * 1

    b. Untuk n = 0n! = 0

    Sebagai contoh :2! = 1 * 2 = 2 * 1 = 25! = 1 * 2 * 3 * 4 * 5 = 5 * 4 * 3 * 2 * 1 = 1200! = 1

    Mencari Bilangan FibonacciFibonacci merupakan suatu proses penyusunan deret dengan rumus sebagai

    berikut :a) Untuk n > 2 : fibo(n-1) + fibo(n-2)

  • 11 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    b) Untuk n = 1 dan n = 2 : fibo(n) = 1Contoh deret Fibonacci :

    1 1 2 3 5 8 13

    3. Kegiatan Praktikum- Buatlah program pascal dalam bentuk Rekursi untuk penghitungan suatu

    X bilangan faktorial.- Buatlah program pascal dalam bentuk Rekursi untuk penghitungan suatu

    X bilangan fibonacci.4. Tugas

    Buatlah program pascal dalam bentuk Rekursi untuk penghitungan Tribollaci,bilangan ke N dari tribollaci adalah jumlah dari bilangan ke n-3 ditambahbilangan ke n-2 ditambah bilangan ke n-1.

    F(n) = f(n-3) + f(n-2) + f(n-1)

    1 1 1 3 5 9 17 31 57 105

  • 12 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    PRAKTIKUM 6PROCEDURE

    1. TujuanPraktikan dapat membuat program pascal dengan menggunakan prosedur

    2. Materi PraktikumDefinisi Prosedur

    Prosedur adalah modul program yang mengerjakan tugas/aktivitas yangspesifik dan menghasilkan suatu efek netto . Suatu efek netto diketahui denganmembandingkan keadaan awal dan keadaan akhir pada pelaksanaan prosedur.Oleh karena itu, pada prosedur kita harus mendefinisikan keadaan awal sebelumrangkaian instruksi di dalam prosedur dilaksanakan dan keadaan akhir yangdiharapkan setelah rangkaian instruksi dilaksanakan.

    Struktur umum prosedur adalah sebagai berikut :

    Procedure Nama_Prosedur (param_formal1:tipe_param,);{Jika prosedur tidak memiliki parameter, tanda kurung tidakdisertakan}var{bagian deklarasi prosedur, sifatnya lokal}begin

    statement-1;statement-2;Statement-n;

    end;

    Struktur blok program utama beserta prosedur, adalah sebagai berikut :

    Program judul_program;var{bagian deklarasi prosedur, sifatnya global}

    Procedure Nama_Prosedur;{Jika prosedur tidak memiliki parameter, tanda kurung tidakdisertakan}var{bagian deklarasi prosedur, sifatnya lokal}begin

    statement-1;statement-2;Statement-n;

    end;

    {program utama}begin

    Nama_Prosedur;end.

  • 13 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    Kebanyakan program memerlukan pertukaran informasi antara prosedur (ataufungsi) dan titik dimana ia dipanggil. Penggunaan parameter menawarkanmekanisme penukaran informasi tersebut. Tiap item data ditransfer antaraparameter aktual dan parameter formal yang bersesuaian. Parameter aktualadalah parameter yang disertakan ketika pemanggilan, sedangkan paramaterformal adalah parameter yang dideklarasikan di bagian header prosedur itusendiri.

    Passing ParameterProses pengiriman data dari parameter aktual ke parameter formal

    disebut dengan transfer parameter (passing parameter). Nama Parameter aktualdan parameter formal boleh berbeda, tetapi harus memiliki tipe data yang samaselain itu juga jumlah parameter aktual dan parameter formal harus sama. DiTurbo Pascal, parameter dapat dikirim/ditransfer secara nilai (by value) atausecara acuan (by reference).Pengiriman parameter secara nilai (by value)

    Jika parameter dikirim secara nilai (by value), maka parameter formal yangterletak di dalam pendefinisan prosedur akan berisi nilai yang dikirimkan dariparameter aktual, yang kemudian bersifat lokal di prosedur tersebut. Bila nilaiparameter formal di dalam prosedur tersebut berubah, maka tidak akanmempengaruhi nilai parameter aktual (nilai parameter aktual tetap). Agar lebihjelas dapat dilihat contohnya pada gambar dibawah ini:

    1 Program PersegiPanjang; {judul Program Utama}2 uses crt;

    3 Procedure Hitung_Luas(p,l,ls:integer); {Prosedur denganparameter}

    4 begin5 ls:=p*l;6 writeln('p = ',p);7 writeln('l = ',l);8 writeln('ls = ',ls);9 end;

    10 {===program utama===}11 var12 pj,lbr,luas:integer;13 begin14 clrscr;15 writeln('Program Untuk Menghitung luas persegipanjang');16 pj:=10;17 lbr:=6;18 luas:=0;19 writeln;20 Hitung_Luas(pj,lbr,luas); {Memanggil prosedur Hitung_Luas}21 writeln;22 writeln('pj = ',pj);23 writeln('lbr = ',lbr);24 writeln('luas = ',luas);25 readln;26 end.

  • 14 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    Pengiriman parameter secara acuan (by reference)Bila parameter dikirimkan secara acuan (by refence), maka perubahan-perubahan

    yang terjadi pada nilai parameter formal di prosedur akan mempengaruhi nilai parameteraktual di blok program utama. Jenis parameter ini dideklarasikan di dalam prosedurdengan menggunakan kata cadangan var. Contohnya kita modifikasi programsebelumnya dan dapat dilihat pada gambar dibawah ini:

    Kegiatan Praktikum- Buatlah program pascal dengan procedure untuk menghitung luas dan

    keliling dari persegi panjang.- Buatlah program pascal dengan menggunakan procedure untuk

    menampilkan mean dari bilangan ganjil antara 0 sampai N, gunakanparameter secara nilai. nilai N dimasukan pada saat running time.

    TugasBuatlah program pascal dengan prosedur untuk menambah suatu jam dengan

    1 detik.

    1 Program PersegiPanjang {judul Program Utama}2 uses crt;34 Procedure Hitung_Luas(p,l:integer; var ls:integer);5 begin6 ls:=p*l;7 writeln('p = ',p);8 writeln('l = ',l);9 writeln('ls = ',ls);10 end;

    11 {===program utama===}12 var13 pj,lbr,luas:integer;14 begin15 clrscr;16 writeln('Program Untuk Menghitung luas persegipanjang');17 pj:=10;18 lbr:=6;19 luas:=0;20 writeln;21 Hitung_Luas(pj,lbr,luas); {Memanggil prosedur Hitung_Luas}22 writeln;23 writeln('pj = ',pj);24 writeln('lbr = ',lbr);25 writeln('luas = ',luas);26 readln;27 end.

    2

    3

    1

  • 15 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    PRAKTIKUM 7FUNCTION

    1. TujuanPraktikan dapat membuat program pascal dengan menggunakan Fungsi

    2. Materi PraktikumPenulisan Fungsi (Function)

    Apa yang dimaksud dengan fungsi?. Fungsi tidak jauh berbeda denganprosedur, yaitu suatu modul program terpisah dari progam utama yang diletakandalam blok tersendiri yang berfungsi sebagai bagian dari program. Namun fungsimemiliki perbedaan mendasar dengan prosedur yaitu : fungsi memberikan nilaibalik (return) sedangkan prosedur tidak. Fungsi diakses dengan memanggilnamanya. Selain itu, fungsi juga dapat mengandung daftar parameter formal.Parameter pada fungsi selalu merupakan parameter masukan. Jenis parametermasukan pada fungsi disebabkan oleh kenyataan bahwa parameter pada fungsimerupakan masukan yang digunakan oleh fungsi tersebut untuk menghasilkannilai. Cara penulisan fungsi di Turbo Pascal seperti dibawah ini :

    Berikut ini adalah struktur blok program beserta fungsinya:

    Function Nama_Fungsi(param_formal:tipe_param,...):tipe_hasil;var{bagian deklarasi fungsi, sifatnya lokal}

    beginstatement-1;statement-2;Statement-n;Nama_Fungsi:=hasil;

    end;

    Program PersegiPanjang;uses crt;

    Function Luas(p,l:integer ):integer;begin

    Luas:=p*l;end;

    {===program utama===}var

    pj,lbr:integer;begin

    clrscr;writeln('Program Untuk Menghitung luas persegipanjang');writeln;write('Masukan panjang : ');readln(pj);write('Masukan lebar : ');readln(lbr);write('Luasnya = ',Luas(pj,lbr));readln;

    end.

    3

    2

    1

  • 16 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    Sama seperti prosedur, untuk mengakses setiap Fungsi kita harus memanggilnamanya. Fungsi juda dapat memiliki parameter, tetapi parameter yang terdapatdalam fungsi selalu merupakan parameter masukan (input parameter). Tipe hasildi dalam suatu fungsi merupakan tipe nilai balik (return) yang diberikan olehfungsi. Bila kita perhatikan listing program diatas, terdapat sebuahFungsi/Function dengan nama Luas yang memiliki parameter p dan l, sedangkantipe nilai balik (return) yang dihasilkan oleh fungsi tersebut adalah integer. Padacontoh diatas Luas digunakan sebagai nama fungsi, dan didalam fungsi tersebut,Luas digunakan sebagai variabel untuk menampung hasil perhitungan pada fungsitersebut.

    3. Kegiatan Praktikum1. Buatlah program pascal dengan menggunakan fungsi untuk menampilkan

    luas sebuah lingkaran jika diketahui diameternya saja.2. Buatlah program pascal untuk fungsi phytagoras yang menerima tiga buah

    bilangan bulat a, b, c dan menentukan apakah bilangan tersebut merupakantripel phytagoras.

    4. TugasBuatlah sebuah program untuk menampilkan KHS seorang mahasiswa Ilmu

    Komputer. Dengan catatan:- Deklarasikan variable dengan type record dan berbentuk larik.- Sistem penilaian mengikuti penilaian lama(A,B,C,D,E)- Gunakan fungsi rekursif untuk mendapatkan SKSN.- Buatlah beberapa sub program yang diperlukan dengan menggunakan procedure.

  • 17 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    PRAKTIKUM 8GRAFIS 1

    1. TujuanMahasiswa mampu membuat program pascal dalam bentuk Grafis.

    2. Materi PraktikumSelain digunakan untuk melakukan perhitungan-perhitungan dan

    menampilkan karakter-karakter di mana komputer bekerja dalam lingkunganmode teks, komputer juga dapat dimanfaatkan untuk membuat gambar dan grafik,baik yang diam maupun bergerak.

    Di dalam Turbo Pascal, membuat gambar atau grafik dilakukan denganmenggunakan mode grafik, yang berbeda dengan mode teks. Untuk dapat bekerjadi dalam mode grafik, harus digunakan unit graph. Unit ini merupakan unitstandar yang disediakan oleh Turbo Pascal, yang di dalamnya terdapat kumpulanprogram pembantu fungsi.

    Untuk dapat bekerja di dalam mode grafik, perlu ditentukan jenis driver danmode yang akan digunakan. Menentukan driver dapat diartikan sama denganmemberitahu computer untuk bekerja dengan monitor tertentu, misalnya CGA(Color Graphics Adapter), EGA (Enhanced Graphics Adapter), atau VGA (VideoGraphics Adapter).

    Jika telah ditentukan drivernya, misalnya CGA, maka grafik atau gambaryang telah dibuat hanya akan sesuai untuk monitor CGA. Kalaupun dipaksakandengan memakai driver yang lebih tinggi, misalnya VGA, maka gambar yangdihasilkan tidak akan sempurna; terutama pada letak dan bentuk gambar akanberbeda.

    Untuk menghindari hal semacam itu, computer dapat diperintahkan untukmenentukan sendiri drivernya. Perintah yang digunakan adalah detect.Konsekuensinya, harus dihindari pemakaian koordinat dengan angka langsung.

    Pada dasarnya setiap grafik terbentuk dari sekumpulan titik-titik, garis-garis,atau lengkungan.

    Membuat Titik

    Untuk membuat sebuah titik, dipergunakan prosedur PutPixel.

    Cara menuliskannya adalah :

    PutPixel(x,y,warna);X dan y adalah koordinat tempat titik digambar dan warna dapat dipilih

    sebanyak warna-warna yang tersedia, tetapi hal ini tentu tergantung juga padadriver dan mode yang digunakannya.

  • 18 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    Secara umum bentuk programnya dapat dilihat pada gambar berikut:

    Program titik;Uses graph,crt;Vargd,gm:integer;begin

    clrscr;gd:= detect;InitGraph(gd,gm,);PutPixel(110,90,green)Repeat until keypressed;CloseGraph;

    end.

    Membuat Garis

    Untuk membuat sebuah garis, dapat digunakan tiga buah prosedur sebagaiberikut :

    1. Prosedur Line: Line (x1,y1,x2,y2);Prosedur Line akan menggambar sebuah garis dari koordinat (x1,y1) ke

    koordinat (x2,y2).2. Prosedur LineRel : LineRel (dx,dy);

    Prosedur LineRel akan menggambar sebuah garis dengan panjang relativedari koordinat awal sepanjang koordinat (dx,dy)

    3. Prosedur LineTo : LineTo (x,y);Prosedure LineTo akan menghasilkan sebuah garis dari koordinat awal ke

    koordinat (x,y)Membuat Segiempat

    Untuk membuat sebuah segiempat, dipergunakan prosedur Rectangle.Dengan mempergunakan prosedur ini, cukup ditentukan dua buah koordinat(x1,y1) yang berfungsi sebagai titik pada sudut kiri atas dan (x2,y2) yangberfungsi sebagai titik pada sudut kanan bawah segiempat.

    Cara menuliskannya adalah :

    Rectangle (x1,y1,x2,y2);Membuat Lingkaran

    Untuk membuat suatu lingkaran, digunakan prosedur Circle. Pembuatanlingkaran dengan prosedur ini memerlukan sebuah koordinat yang berfungsisebagai pusat lingkaran dan panjang jari-jarinya.

    Cara menuliskannya adalah :

    Circle (x,y,r);x dan y adalah pusat lingkaran sedangkan r adalah jari-jari lingkaran.

  • 19 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    Membuat Ellips

    Berbeda dengan pembuatan lingkaran, selain diperlukan koordinat (x,y)sebagai pusat ellips, juga diperlukan sudut awal (s1) dan sudut akhir (s2), sertajari-jari mendatar (rx) dab jari-jari tegak (ry).

    Cara menuliskannya adalah :

    Ellipse (x,y,s1,s2,rx,ry);

    3. Kegiatan Praktikum- Buatlah program pascal untuk menampilkan titik, garis, kotak, persegi

    panjang dan lingkaran.- Buatlah program pascal dalam bentuk Grafis untuk menampilkan sebuah

    mobil mainan, gunakan kombinasi titik, garis, segi empat, lingkaran.4. Tugas

    Buatlah program pascal dalam bentuk grafis sekreatif mungkin menurut anda,gunakan kombinasi titik, garis, segi empat, lingkaran dan ellips!

  • 20 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    PRAKTIKUM 9GRAFIS 2

    1. TujuanPraktikan mampu membuat program pascal dalam bentuk grafis arsiran.

    2. Materi Praktikum

    Membuat Segiempat DiarsirUntuk membuat segiempat yang diarsir, digunakan prosedur Bar. Koordinat

    yang diperlukan sama dengan Rectangle, yaitu (x1,y1) sebagai titik pada sudutkiri atas segiempat dan (x2,y2) sebagai titik pada sudut kanan bawah segiempat.

    Cara menuliskannya adalah :Bar (x1,y1,x2,y2);

    Membuat Lingkaran DiarsirUntuk membuat lingkaran yang diarsir, digunakan prosedur PieSlice.

    Koordinat yang diperlukan adalah koordinat (x,y) yang berfungsi sebagai titikpusatnya, s1, s2 sebagai sudut awal dan akhir, serta r sebagai jari-jarinya.

    Cara menuliskannya adalah :PieSlice (x,y,s1,s2,r);

    s1 adalah sudut awals2 adalah sudut akhir

    Membuat Ellips DiarsirUntuk membuat ellips yang diarsir, digunakan prosedur Sector. Koordinat

    yang diperlukan sama dengan pada pembuatan ellips, yaitu : (x,y) yang berfungsisebagai pusatnya, s1, s2 sebagai sudut awal dan akhir, serta rx, ry sebagai jari-jarix dan y.

    Cara menuliskannya adalah :Sector (x,y,s1,s2,rx,ry);

    rx adalah jari-jari mendatar.ry adalah jari-jari tegak.

    3. Kegiatan Praktikum- Buatlah program pascal untuk menampilkan segieempat, Lingkaran danElipps yang diarsir.- Buatlah sebuah rumah sederhana beserta halaman depan menggunakanmateri grafis yang anda pelajari hari ini.

    4. TugasBuatlah program pascal sebuah pemandangan di desa atau di kota dalam

    bentuk grafis. Gunakan kombinasi materi yang ada pada Grafis 1 dan Grafis 2.

  • 21 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    PRAKTIKUM 10GRAFIS 3

    1. TujuanMahasiswa mampu membuat program pascal kreasi huruf dalam bentuk Grafis

    yang diarsir.

    2. Materi ParaktikumGrafik pascal tidak hanya dapat digunakan untuk membuat program-program

    gambar saja, akan tetapi juga dapat digunakan untuk membuat tulisan sepertidalam mode teks.CARA MENULISKAN HURUF

    Didalam mode teks, anda menuliskan tulisan dengan prosedur write. Didalammode grafik prosedur tersebut tidak dapat digunakan. Prosedur yang digunakanuntuk menuliskan tulisan di dalam mode grafik adalah prosedur OutText atauprosedur OutTextXY.

    Prosedur OutTextProsedur ini akan menuliskan tulisan pada posisi pointer yang sedang

    diaktifkan. Cara menuliskannya adalah:OutText(Ilmu Komputer)Tulisan yang akan ditampilkan harus berada di antara tanda kutip(). Prosedur

    ini akan menuliskan tulisannya pada koordinat (0,0). Agar letak tulisan sesuaidengan keinginan, maka sebelumnya perlu diberi prosedur MoveTo untukmemindahkan pointernya. Perhatikan program berikut:Program huruf_grafik;Uses Graph,Crt;Varxmax,ymax,gm,gd:integer;begin

    gd:= detect;InitGraph (gd,gm,)xmax:=GetMaxX;ymax:=GetMaxY;Rectangle(0,0,xmax,ymax);MoveTo(xmax div 2,ymax div 2);OutText(ILMU KOMPUTER);Repeat Until KeyPressed;

    CloseGraph;end.

    Prosedur OutTextXYBerbeda dengan penggunaan prosedur OutText, penggunaan prosedur ini tidak

    perlu menyertakan prosedur pemindah pinter karena koordinatnya sudah terdapatdi dalamnya. Cara penulisannya adalah:

    OutTextXY(x,y,tulisan);X dan y masing-masing adalah koordinatnya.

  • 22 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    MENGATUR JASTIFIKASIYang dimaksud dengan jastifikasi adalah pengaturan posisi tulisan berdasarkan

    posisi pointer. Terdapat dua macam jastifikasi, yaitu jastifikasi mendatar danjastifikasi tegak. Cara menuliskannya adalah sebagai berikut:

    SetTextJustify(Mendatar,Tegak);- Justifikasi Mendatar

    Yang dimaksud dengan jastifikasi mendatar adalah menggeser tulisan,secara mendatar (sesuia dengan sumbu x), sehingga pointer berada padaposisinya. Ada tiga macam justifikasi mendatar, yaitu:

    1. LeftText2. CenterText3. RightText

    Cara menuliskannya adalah sebagai berikut:SetTextJustify(LeftText,TopText);SetTextJustify(CenterText,TopText);SetTextJustify(RightText,TopText);

    - Justifikasi TegakYang dimaksud dengan jastifikasi tegak adalah menggeser tulisan, secara tegak

    (sesuai dengan sumbu y), sehingga pointer berada pada posisinya. Ada tigamacam justifikasi mendatar, yaitu:

    1. BottonText2. CenterText3. TopText

    Cara menuliskannya adalah sebagai berikut:SetTextJustify(CenterText,BottonText);SetTextJustify(CenterText,CenterText);SetTextJustify(CenterText,TopText);

    MENGATUR GAYA HURUFSelain posisinya yang dapat digerser-geser, gaya tulisan tersebut juga

    dapat diubah seperti macam hurufnya , arah penulisannya, serta besar hurufnya.Cara menuliskannya adalah:

    SetTextStyle(huruf,arah,ukuran);

    Macam-macam HurufMacam huruf yang lain biasanya dipanggil dari disket oleh SetTextStyle.

    Beberapa macam huruf yang ada adalah sebagai berikut:Konstanta Macam huruf0 DeafaultFont1 TriplexFont2 SmallFont3 SanSerifFont5 GothicFont

    Arah HurufHanya ada dua arah tampilan huruf yang tersedia dalam pascal, yaitu secara

    mendatar dan tegak.

  • 23 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    Konstanta Arah huruf0 Mendatar1 Tegak

    Ukuran HurufUkuran huruf yang digunakan dapat juga diubah. Ukuran suatu huruf dapat

    berbeda dengan yang lainnya. Untuk memperbesar ukuran huruf, anda dapatmelakukan dengan cara menentukan angka 1, 2, 3 dan seterusnya. Ukuran hurufdapat diperbesar sampai sebesar mungkin.

    3. Kegiatan Praktikum- Buatlah program pascal untuk menampilkan nama anda tepat di tengah layardalam grafis.- Buatlah program pascal untuk menampilkan nama anda secara tegak di tengahlayar dalam bentuk grafis.- Buatlah tulisan ilkom dengan bermacam-macam jenis dan ukuran huruf padalayar dalam bentuk grafis.

    4. TugasBuatlah program pascal dalam bentuk grafis untuk menampilkan menara Eiffel,

    gunakan kombinasi materi yang ada pada Grafis1, 2 dan 3.

  • 24 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    PRAKTIKUM 11FILE 1

    1. TujuanPraktikan mampu membuat program dengan menggunakan perintah File

    Teks.

    2. Materi PraktikumDalam kasus-kasus pemrograman tertentu kita sering disudutkan untuk

    menggunakan file sebagai media yang digunakan untuk menyimpan data-data,baik berupa data input (untuk masukan) maupun sebagai data output (untukkeluaran). Sebagai contoh, apabila kita menggunakan sistem operasi MicrosoftWindows maka kita akan menemukan file sistem seperti autoexec.bat, config.sys,system.ini dan lainnya. File tersebut sebenarnya digunakan untuk menyimpandata-data secara terpisah sehingga nilainya dapat diubah dengan mudah sesuaidengan kebutuhan. Sebagai seorang programmer, kita tentu dituntut untuk dapatmenggunakan (mengakses) file dari dalam prograam yang kita buat. Berdasarkanprosedur yang ada, proses pengaksesan file di dalam bahasa Pascal terdiri dariempat tahap, yaitu :

    (a) Menghubungkan file fisik yang akan dibuka atau dibuat dengan variabel file(b) Membuka file(c) Melakukan operasi file (membaca atau menulis)(d) Menutup file

    PROCEDURE DAN FUNCTION STANDARD UNTUK SEMUA TIPE FILEAssign (f:file;name:string) : digunakan untuk menghubungkan nama dari

    external file ke suatu variabel file.Rewrite (f[:file; recsize:word]): digunakan untuk membuka file yang baru atau

    yang belum pernah ada di disk.Reset (f[:file; recsize:word]) : digunakan untuk membuka file yang sudah ada.Close (f:file) : digunakan untuk menutup file yang telah dibuka

    dengan procedure standard Rewrite, Reset, atauAppend (procedure khusus untuk membuka fileteks).

    Erase (f:file) : digunakan untuk menghapus suatu external file.Dalam penggunaanya harus didahului denganprocedure standard Close.

    Rename (f:file;newname:string): digunakan untuk mengganti nama suatu externalfile.

    GetDir (d:byte; var s:string) : digunakan untuk mengetahui direktori yang aktifpada suatu drive.

    ChDir (s:string) : digunakan untuk mengubah posisi dari direktori.MkDir (s:string) : digunakan untuk membuat suatu direktori.RmDir (s:string) : digunakan untuk menghapus suatu direktori.

  • 25 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    Eof (f:file):boolean : fungsi ini akan menghasilkan status apakah filesudah berada di posisi akhir dari file atau tidak.

    FILE TEKSFile teks merupakan file yang berisi karakter yang dibentuk dalam baris-

    baris dan masing-masing baris dengan end-of-line marker berupa karaktercarriage return dan karakter line feed (CR/LF). Sedangkan akhir dari fileditunjukkan dengan karakter Ctrl-Z.

    File teks sebenarnya merupakan file dengan tipe Char, tetapi mempunyaiperbedaan, yaitu nilai yang bukan tipe Char dapat direkam dan dibaca oleh fileteks. Nilai yang bukan tipe Char ini akan secara otomatis dirubah ke atau dari tipeChar.

    Prosedur dan Fungsi Standard File TeksAppend(var f:text); : digunakan untuk membuka file yang telah

    ada untuk keperluan menambah data kedalam file.

    Write([var f:text;] v1 [v2,,vn]) : digunakan untuk merekam data ke dalamfile.

    Writeln([var f:text;] v1 [v2,,vn]) : digunakan untuk merekam data ke dalamfile dan memberikan end-of-line marker.

    Flush(var f:text) : digunakan untuk segera merekam datayang ada di dalam buffer ke dalam file teks.

    Read([var f:text;] v1 [v2,,vn]) : digunakan untuk membaca satu atau lebihnilai dari file ke dalam satu variabel ataulebih.

    Readln([var f:text;] v1 [v2,,vn]) : kegunaannya sama dengan procedure Read,tetapi procedure ini akan menggeserpembacaan ke awal baris berikutnya dalamfile.

    Eoln[(var f:text)]:boolean : digunakan untuk mengetahui apakah posisidari file berada di end-of-line marker atautidak.

    SeekEof[(var f:text)]:boolean : kegunaannya sama dengan Eof, yaitumenghasilkan status akhir dari file.

    SeekEoln[(var f:text)]:boolean : kegunaannya sama dengan Eoln, yaitumenghasilkan status akhir dari baris.

    Membuat File Teks BaruContoh program membuat file teks baru :uses Crt;var

    berkasText : Text;kodeBrg : String[5];namaBrg : String[20];unitBrg : Integer;hargaBrg : Real;lagi : Char;

    begin

  • 26 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    {hubungkan dengan external file}Assign(berkasText,'Barang.txt');

    {buka file}Rewrite(berkasText);

    Lagi:='Y';while upCase(Lagi)='Y' dobegin

    clrScr;gotoxy(5,6) ;Write('Kode Barang : ');gotoxy(5,8) ;Write('Nama Barang : ');gotoxy(5,10);Write('Unit Barang : ');gotoxy(5,12);Write('Harga Satuan Barang : ');gotoxy(27,6) ;readln(kodeBrg);gotoxy(27,8) ;readln(namaBrg);gotoxy(27,10);readln(unitBrg);gotoxy(27,12);readln(hargaBrg);

    {rekam di file}Writeln(berkasText,kodeBrg:5,namaBrg:20,unitBrg,hargaBrg:10:2);

    gotoxy(5,15);write('Ada data lagi (Y/T)? ');readln(lagi);end;

    {tutup file}close(berkasText);

    end.

    Contoh program menampilkan semua isi file:uses Crt;var

    berkasText : Text;kodeBrg : String[5];namaBrg : String[20];unitBrg : Integer;hargaBrg : Real;

    begin{hubungkan dengan external file}Assign(berkasText,'Barang.txt');

    {buka file}Reset(berkasText);

    clrScr;While not(Eof(berkasText)) dobegin

    Readln(berkasText,kodeBrg,namaBrg,unitBrg,hargaBrg);Writeln(kodeBrg,namaBrg:22,unitBrg:7,hargaBrg:10:2);

    end;

    {tutup file}close(berkasFile);

    end.

  • 27 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    3. Kegiatan Praktikum- Buatlah program pascal untuk menyimpan biodata anda kedalam sebuah

    file- Buatlah program pascal untuk menampilkan biodata yang telah anda

    simpan sebelumnya.- Buatlah program pascal untuk menambahkan nama orang tua anda

    kedalam file yang telah anda simpan sebelumnya.

    4. TugasTambahkan pada program yang anda telah buat pada kegiatan praktikum agar

    data dalam file tersebut dapat dicari, dihapus, dan diubah.

  • 28 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    PRAKTIKUM 12FILE 2

    1. TujuanPraktikan membuat program dengan menggunakan perintah file bertipe

    2. Materi PraktikumBerbeda dengan file teks yang hanya dapat diakses secara urut, file bertipe

    (typed file) disamping dapat juga diakses secara urut (sequential access), dapatjuga diakses secara acak (random access). Ini berarti komponen-komponen didalam file bertipe dapat dibaca atau direkam dari manapun di dalam file.

    Dalam file bertipe, kita dapat menambahkan variabel terdefinisi dalam unitstandard System untuk menentukan kode akses file bertipe. Adapun kodeaksesnya adalah:

    0 read only1 write only2 read/write (default)

    DeklarasiVar

    fileData : File of tipeData;begin

    end.

    tipeData dapat berupa integer, real, char, string, array, record, dan sebagainya.

    Prosedur dan Fungsi Standard File BertipeWrite (f,v1[v2,,vn]) : digunakan untuk merekam satu atau lebih

    nilai ke dalam file.Read (f,v1[v2,,v3]) : digunakan untuk membaca satu atau lebih

    nilai dari file.Seek (f; n : longint) : digunakan untuk mengarahkan penunjuk

    file ke suatu komponen tertentu, sehinggamemungkinkan kita untuk membacakomponen atau menuliskan komponensecara acak.

    Truncate(f) : digunakan untuk menghapus sejumlahkomponen atau record mulai dari posisirecord tertentu.

    FilePos(f):longint : digunakan untuk menghasilkan letak posisisekarang dari penunjuk file.

    FileSize(f):longint : digunakan untuk menghasilkan jumlah darikomponen atau record yang sudah ada difile. Fungsi ini harus digunakan setelah filedibuka.

  • 29 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    Contoh program membuat file bertipe (typed file) baru :uses crt;type

    mahasiswa = recordnomor : integer;nama : string[25];nilai : real;

    end;

    varfileMhs : File of mahasiswa;recordMhs : mahasiswa;lagi : char;

    beginassign(fileMhs,'MHS.dat');rewrite(fileMhs);

    lagi:='Y';while upcase(lagi)='Y' dobegin

    clrscr;with recordMhs do

    gotoxy(5,6) ;write('Nomor Mahasiswa : ');gotoxy(5,8) ;write('Nama Mahasiswa : ');gotoxy(5,10);write('Nilai Mahasiswa : ');

    gotoxy(27,6) ;read(nomor);gotoxy(27,8) ;read(nama);gotoxy(27,10);read(nilai);

    end;

    write(fileMhs,recordMhs);

    gotoxy(5,15);write('Memasukkan data lagi (Y/T)? ');readln(lagi);

    end;

    close(fileMhs);end.

    Contoh program menampilkan semua data di file bertipe :

    uses crt;type

    mahasiswa = recordnomor : integer;nama : string[25];nilai : real;

    end;

    varfileMhs : File of mahasiswa;recordMhs : mahasiswa;

    beginassign(fileMhs,'MHS.dat');rewrite(fileMhs);

  • 30 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    while not(Eof(fileMhs)) dobegin

    read(fileMhs,recordMhs);with recordMhs do

    write(nomor:5,nama:17,nilai:10:2);end;close(fileMhs);

    end.

    3. Kegiatan PraktikumBuatlah sebuah program pascal untuk menyimpan data mahasiswa dan

    menampilkan data tertentu di file bertipe (misalnya berdasarkan NIM)4. Tugas

    Tambahkan di program yang telah anda buat pada kegiatan praktikum agar datatersebut dapat dicari, dihapus dan diubah.

  • 31 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    PRAKTIKUM 13FILE 3

    1. TujuanPraktikan membuat program dengan menggunakan perintah file tak bertipe

    2. Materi PraktikumFile tak bertipe (untyped file) adalah channel I/O (Input/Output) level rendah

    (low level I/O channel) yang digunakan untuk mengakses langsung suatu file didisk tidak peduli bagaimana tipe dan strukturnya.

    DeklarasiFileData : File;

    Karena file tak bertipe tidak memandang tipe dan struktur filenya, makafile tak bertipe ini sifatnya kompatibel dengan file apapun dan tepat digunakanuntuk operasi-operasi mengecek keberadaan suatu file di dalam disk, menghapussuatu file, mengganti nama dari suatu file, menyalin suatu file, dan operasi-operasilainnya yang tidak langsung melibatkan operasi I/O.

    Prosedur dan fungsi standard yang dapat digunakan di file bertipe dapatjuga digunakan di file tak bertipe, kecuali prosedur standard Read dan Write yangdiganti dengan prosedur standard BlockRead dan BlockWrite. Kedua prosedur inidigunakan untuk transfer data dengan kecepatan tinggi.

    BlockRead(var f:file;var buf;countword[;result:word]);BlockWrite(var f:file;var buf;countword[;result:word]);

    Contoh Program mengganti nama file di disk :uses crt;var

    fileGantiNama : file;fileLama, fileBaru : string[139];

    beginwrite('Nama file yang akan diganti? ');readln(fileLama);write('Nama file baru ? ');readln(fileBaru);

    if (fileLama = '') or (fileBaru = '') then halt;

    Assign(fileGantiNama,fileLama);{$I-} Rename(fileGantiNama,fileBaru);{$I+};

    if IOResult 0 thenwriteln('Salah, file TIDAK DITEMUKAN atau nama baru TELAH

    ADA')else

    writeln('file telah diganti namanya');end.

  • 32 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    3. Kegiatan PraktikumBuatlah program pascal untuk mengganti nama file di disk

    4. TugasDiketahui file SURAT.DOC mempunyai ukuran file 100 Kbyte. Buatlah

    program dengan menggunakan file tak bertipe (Untyped File) untuk menghapus12 Byte pertama dari 100 Kbyte yang ada.

  • 33 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    PRAKTIKUM 14HUBUNGAN DENGAN DOS

    1. TujuanPraktikan dapat membuat program pascal dan hubugannya dengan DOS

    2. Materi Praktikum

    Untuk berhubungan dengan DOS, pada unit standar DOS menyediakanbeberapa rutin sistem operasi serta rutin untuk penanganan file yang berguna.Semua rutin ini tidak disediakan di Pascal standar, sehingga oleh Turbo Pascaldipisahkan tersendiri dalam unit standar Dos ini. Rutin-rutin ini terdiri daribeberapa prosedur standar dan fungsi standar.

    PROSEDUR STANDAR UNTUK TANGGAL DAN JAMDengan prosedur standar ini, maka tanggal dan jam sistem dapat diambil dan

    dapat dirubah. Demikian pula untuk tanggal dan jam dari suatu file.Prosedur GetdateProsedur standar ini digunakan untuk mengambil tanggal sistem yang sedangberlaku dengan sintak:GetDate(var Year, Month, Day, DayOfWeek : word);Jangkauan nilai yang akan didapatkan untuk Year adalah 1980..2099, Month1..12, Day 1..31 dan DayOfWeek 0..6 (0 menunjukkan hari Minggu, 1menunjukkan hari Senin dan seterusnya).

    Prosedur Standar SetdateProsedur ini digunakan untuk merubah tanggal sistem dengan tanggal yang barudengan sintak:SetDate(Year, Month, Day : word);Jangkauan nilai yang dapat diberikan untuk Year adalah 1980..2099, Month1..12, Day 1..31 dan DayOfWeek 0..6 (0 menunjukkan hari Minggu, 1menunjukkan hari Senin dan seterusnya). Jika tanggal yang diberikan tidak sah(diluar jangkauannya), maka akan diabaikan dan tanggal sistem tetap tidakberubah.

    Prosedur Standar GettimeProsedur standar ini digunakan untuk mengambil jam sistem yang sedang

    berlaku dengan sintak:GetTime(var Hour, Minute, Second, Sec100 : word);Jangkauan nilai yang akan didapatkan untuk Hour 0.23, Minute 0.59, Second0.59, Sect 00 (seperseratus detik) adalah 0..99.

    Prosedur Standar GetftimeProsedur standar ini digunakan untuk mengambil tanggal dan jam dari suatu

    file terakhir kali file tersebut direkamkan dengan sintak:GetFTime(var f; var Time : longint);

  • 34 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    Pada sintak f adalah file variable (dapat berupa file teks, file bertipe maupunfile tak bertipe) yang telah dihubungkan dengan external file menggunakanprosedur standar Assign dan file harus sudah dibuka dengan prosedur standarReset . Hasil yang didapatkan dari prosedur standar ini adalah nilai 4 byte(Longlnt ) pada variabel Time. Nilai variabel 4 byte ini merupakan hasilpemampatan (packed) dari nilai-nilai Year, Month, Day, Hour, Min dan Sec .Untuk menguraikan nilai 4 byte menjadi nilai-nilai Year, Month , Day, Hour,Min dan Sec dapat digunakan prosedur standar UnpackTime (lihat pada prosedurUnpackTime ). Kesalahan yang mungkin terjadi akibat prosedur standarGetFTime adalah dengan kode salah 6 (Invalid File Handle).

    Prosedur Standar UnpacktimeProsedur standar ini digunakan untuk menguraikan (mengkonversikan) nilai 4byte (LongInt) hasil dari prosedur standar GetFTime, FindFirst danFindNextmenjadi nilai-nilai Year, Month , Day, Hour, Min dan Sec dengan sintak:UnpackTime(P : lon nt; var T : DateTime);Pada sintak ini, Date Time adalah tipe record yang telah didefinisikan di unitstandar Dos sebagai berikut :Type

    DateTime = recordYear,Month,Day,HourMin,Sec : Word ;

    end;

    Prosedur Standar PacktimeProsedur standar ini mempunyai kegunaan yang berlawanan dengan

    prosedur standar UnpackTime. Prosedur standar PackTime digunakan untukmemampatkan nilai-nilai Year, Month, Day, Hour, Min dan Sec ke dalam nilai 4byte (Longlnt) dengan sintak:PackTime(var T : DateTime; var P : longint);Prosedur ini banyak digunakan pada prosedur SetFTime untuk merubah tanggaldan jam dari suatu file.

    Prosedur Standar SetftimeProsedur ini digunakan untuk merubah tanggal dan jam dari suatu file dengan

    sintak:SetFTime(var F; Time : longint);

    Pada sintak, F adalah file variable (dapat berupa file teks, file 1 berrtipemaupun file tak bertipe) yang telah dihubungkan dengan external filemenggunakan prosedur standarAssign dan file harus sudah dibuka denganprosedur standar Reset .Time adalah nilai 4 byte (LongInt) yang merupakan hasilpemampatan (packed) dari nilai-nilai Year, Month, Day, Hour, Min dan Sec.Untuk memampatkan nilai- nilai ini dapat prosedur standar PackTime .Kesalahan yang mungkin terjadi akibat prosedur standar SetFTime adalahdengan kode salah 6 (Invalid File Handle).

  • 35 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    FUNGSI STANDAR UNTUK STATUS DISKDua buah fungsi standar dapat digunakan untuk melihat status dart suatu disk,

    yaitu fungsi standar DiskSize dan DiskFree .Fungsi Standar Disksize

    Fungsi standar ini dapat digunakan untuk mengetahui total kapasitas dari disk disuatu disk drive dengan sintak:DiskSize(Drive: byte) : longint;Pada sintak, nilai 0 untuk Drive menunjukkan drive default, nilai 1 menunjukkandrive A:, 2 drive B:, 3 drive C: dan seterusnya.

    Contoh:Uses Dos;VarDrive : Byte;

    BeginWrite('Drive O Default, 1=A:,2=B:,3=C:,4=D:,5=E: (0/1/2/3/4/5) ? ');

    ReadLn(Drive);WriteLn;If DiskFree(Drive) = -1 ThenWriteln('Momor drive tidak sah !!!')ElseBeginIf Drive = 0 ThenWriteLn('Drive default:')ElseWriteln('Drive ',Chr(64+Drive),':');Writeln('Ukuran disk = ',DiskSize(Drive),' bytes');End;End.

    Fungsi Standar DiskfreeFungsi standar ini dapat digunakan untuk mengetahui sisa kapasitas dari disk

    yang belum digunakan pada suatu disk drive dengan sintak:DiskFree(Drive: byte) : longint;

    3. Kegiatan Paraktikum(a). Buatlah program untuk menampilkan hari dan tanggal saat ini(b). Buatlah program untuk menampilkan waktu saat ini4. TugasBuat program untuk menampilkan nama hari untuk tanggal yang ditanyakan

  • 36 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    PRAKTIKUM 15MEMBUAT UNIT

    1. TujuanPraktikan dapat membuat program dengan menggunakan unit buatan sendiri

    untuk menggabungkan bebarapa program terpisah

    2. Materi PraktikumStruktur Suatu unit

    Sebelum mencoba membuat sendiri suatu unit, akan diperkenalkan terlebihdahulu bagaimana struktur suatu unit tersebut. Struktur suatu unit berbeda denganstruktur suatu program biasa yang mempunyai beberapa perbedaan yang cukupsignifikan.Unit Interface{ deklarasi secara publik, bersifat global }Implementation

    { deklarasi secara pribadi, bersifat lokal }{ prosedur-prosedur dan fungsi-fungsi }

    Begin{ kode-kode initialisasi }

    End.

    Judul UnitJudul unit (unit header) diawali dengan kata cadangan Unitdiikuti oleh nama

    unit (berupa suatu indentifier) seperti nama dari program biasa.Contoh :Unit Pangkat;

    Bagian PenghubungBagian penghubung (interface section) diawali dengan kata cadangan

    Interface yang diletakkan setelah judul unit dan diakhiri dengan kata cadanganImplementation.Bagian penghubung ini digunakan untuk mendeklarasikan sesuatuyang bersifat global yaitu yang dapat digunakan oleh program lain atau unit yanglain. Hal yang dapat digunakan oleh bagian di Iuar unit ini disebut dengan public.Bilamana nanti Anda menggunakan suatu unit di dalam program Anda, makasemua konstanta, tipe data, variabel, prosedur dan fungsi yang dideklarasikan dibagian penghubung ini akan menjadi tersedia dan dapat digunakan oleh programAnda. Tentunya Anda masih ingat dengan konstanta-konstanta terdefmisi,variabel- variabel terdefinisi clan tipe-tipe data terdefmisi yang disediakan olehunit-unit standar dan ini semua di deklarasikan di bagian penghubung di masing-masing unit standar bersangkutan, sehingga program Anda dapatmenggunalcannya. Semua konstanta, tipe data, variabel, prosedur dan fungsi yangdideklarasikan di bagian penghubung ini dapat dideklarasikan seperti biasa kalauAnda mendeklarasikannya di dalam program.Contoh :Unit Contoh;InterfaceType

  • 37 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    WarnaSet = (Merah, Hijau, Biru); Desimal = 0..9;ConstNama = 'Dian Sastro';VarNamaPerusahaan : String[25];Function Mutlak(Nilai : Real) : Real;

    ImplementationFunction Mutlak;Begin

    If Nilai >= 0 Then Mutlak Nilai ElseMutlak := -Nilai;

    end;End.

    Unit yang telah dibuat ini harus dikompilasi terlebih dahulu dan sebelum dapatdipergunakan oleh program yang lain. Kalau Anda ingin mencoba unit ini,simpanlah program unit ini dengan nama filenya CONTOH.PAS dankompilasilah. Untuk sementara, nama program unit ini buatlah dengan nama yanglama dengan judul unitnya. Untuk nama program unit yang berbeda dengan judulunitnya. Dengan deklarasi di unit tersebut, pada program Anda yangmenggunakan unit ini dapat berbentuk:Contoh :Program MenggunakanUnit;Uses Contoh;

    VarNilai : Real;I : Desimal;Warna : WarnaSet;

    BeginNilai := -5;NamaPerusahaan :='P.T Tenang Saja';WriteLn(Nama);WriteLn('Nilai mutlak ',Nilai:5:2,' =',Mutlak(Niiai):5:2);WriteLn;For I:= 1 to 2 DoFor Warna := Merah To Biru Do

    WriteLn(NamaPerusahaan);End.

    Bila program ini Anda jalankan, akan didapatkan hasil:Dian SastroN l a i mutlak -5.00 = 5.00

    P.T Tenang SajaP.T Tenang SajaP.T Tenang SajaP.T Tenang SajaP.T Tenang Saja

    Pada program ini terlihat, bahwa:1. Variabel I dideklarasikan dengan tipe data Desimal. Tipe data Desimal ini tidak

    terlihat di program ini, tetapi telah dideklarasikan di unit Contoh.

  • 38 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    2. Demikian juga dengan tipe data WarnaSet juga telah dideklarasikan di unitContoh, sehingga dapat dipergunakan di program ini.

    3. Variabel NamaPerusahaan tidak dideklarasikan di program ini, tetapi dapatdipergunakan karena telah dideklarasikan di unit Contch.

    4. Konstanta Nama pada program tidak pernah dideklarasikan, tetapi mempunyainilai Dian Sastro', karena konstanta ini telah dideklarasikan di unit Contoh.

    5. Fungsi Mutlak dapat langsung dipergunakan di dalam program untukmemutlakkan suatu nilai real, karena juga telah dideklarasikan di unit Contoh.Suatu unit dapat menggunakan unit yang lain dan dapat disebutkan pada bagianpenghubung ini.

    Contoh :Unit PanggilanLain;Interface

    Uses Contoh, Contoh1, Contoh2;

    3. Kegiatan PraktikumBuatlah suatu unit Faktorial yang berisi suatu fungsi untuk menghitung suatu

    nilai N faktorial dan program untuk menggunakannya

    4. TugasBuatlah suatu unit Pangkat yang berisi suatu fungsi untuk menghitung suatu

    pangkat N dari X bilangan dan program untuk menggunakannya

  • 39 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    PRAKTIKUM 16MOUSE

    1. TujuanPraktikan mampu membuat program untuk operasi mouse

    2. Materi PraktikumMenginstal Mouse

    Supaya mouse dapat digunakan, maka program mouse driver harusdiinstall terlebih dahulu. Program mouse driver ini berada di diskette yangdiberikan bersama-sama dengan mouse yang Anda beli. Untuk Microsoftmouse, nama dari program mouse driver ini adalah MSMOUSE.COM.Untuk menginstall program ini dapat diketikkan namanya di prompt DOSsebagai berikut:

    A>asmouseMSMOUSE V4.55 - Mouse installed on COM1:A>

    Memeriksa Status Mouse Sudah terinstalBila mouse belum diinstall, maka mouse belum dapat digunakan. Di

    dalam program apakah mouse sudah diinstall atau belum dapat diketahuidengan menggunakan interupsi nomor 33h fungsi O. Register yang harusdiisi untuk interupsi ini adalah register AH dengan nilai fungsinya, yaitunilai O. Register-register yang dihasilkan adalah register AX dan BX. Bilamouse belum diinstall, maka register AX akan bernilai 0 dan bila mousesudah diinstall, register AX akan bernilai -1. Bila mouse sudah diinstall,maka informasi mengenai jumlah dari tombol yang ada di mouse juga dapatdiketahui di register BX.

    { -------------------------Interrupt nomor $33 tungsi 0-----------------------}{ Mendeteksi apakah mouse sudah diinstall atau belum }{ -------------------------------------------------------------------------------------------------}

    (* Register diisi AX := 0; *)(* Register hasil AX = 0 mouse belum diinstall *)(* AX = -1 mouse sudah diinstall *)(* BX = jumlah dari tombol di mouse *)

    Uses Dos, Crt;VarReg : Registers;BeginReg.AX := 0;

    Intr($33,Reg);If Reg.AX = 0 Then

    Writeln('Mouse belum diinstall !!!')ElseWriteLn('Mouse sudah diinstall dengan ',Reg.AX,' tombol');

    End.

    Menampilkan Kursor dari Mouse

  • 40 PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

    Setelah mouse diinstall, kursor dari mouse pertarna kali akan berada diposisi tengah-tengah layar dan dengan menggerakkan mouse di bidang datar(misalnya di meja), maka kursor dari mouse ini juga akan bergerak-gerak. Akantetapi pertama kali setelah mouse diinstall,kursor dari mouse secara defaultbelum ditampilkan. Kursor dari mouse ini dapat ditampilkan denganmenggunakan interupsi 33h fungsi 1 dengan mengisikan register AX dengannilai fungsinya.

    Bentuk kursor dari mouse yang akan ditampilkan berbeda antara di modeteks dengan di mode grafik. Di mode teks kursor dari mouse akan berbentukempat persegi panjang kecil seperti kursor keyboard biasa. Sedang di modegrafik, kursor dari mouse akan berbentuk panah yang mengarah ke atas.

    Menentukan Bentuk Kursor Mouse di Mode teksDi mode teks, terdapat 2 macam bentuk dari kursor mouse yang dapat

    digunakan, yaitu hardware cursor dan attribute cursor. Hardware cursormerupakan kursor yang sama dengan kursor yang digunakan oleh keyboard.Sedang attribute cursor merupakan kursor dari mouse yang berbeda dengankursor yang digunakan oleh keyboard. Kalau Anda menggunakan hardwarecursor, maka kursor yang digunakan oleh keyboard akan digunakan bersama-sama dengan mouse. Sedang kalau digunakan attribute cursor, maka mouse akanmenggunakan kursor tersendiri. Pemilihan kursor yang akan digunakan inidapat ditentukan melalui interupsi 33h fungsi 10. Melalui interupsi 33h fungsi10 ini juga dapat ditentukan bentuk dari kursornya dengan mengisikanregister-register sebagai berikut:

    Register AX diisi dengan nomor fungsinya, yaitu nilai 10Register BX diisi dengan:

    nilai 1 untuk memilih hardware cursornilai 0 untuk memilih attribute cursor

    Register CX diisi dengan:garis awal untuk hardware cursor

    screen mask untuk attribute cursorRegister DX diisi dengan:

    garis akhir untuk hardware cursorcursor mask untuk attribute cursor

    3. Kegiatan Praktikum- Buatlah program untuk mengubah bentuk kursor mouse!- Buatlah program untuk mengatur besarnya gerakan kursor mouse hanya

    pada area yang anda buat! Misalnya: gerakan mouse hanya terbatas padasebuah lingkaran yang anda buat.

    4. TugasTugas berupa final project berupa rangkuman praktikum 8-16. Jenis tugas akandiiformasikan pada awal praktikum 8.