Showing posts with label Bahasa Pascal. Show all posts
Showing posts with label Bahasa Pascal. Show all posts

Saturday, May 2, 2015

Operasi Terhadap File Pada Pascal


       Data yang telah disimpan pada tipe-tipe data yang telah dipelajari ada pada bab-bab sebelumnya bersifat sementara. Artinya sewaktu program selesai dijalankan data tersebut akan hilang. Pada banyak aplikasi, data yang dimasukkan meskipun program telah selesai harus disimpan. Untuk memecahkan masalah penyimpanandata yang seperti itu digunakan file.
Sebelumnya kita telah biasa menyimpan nilai pada suatu variabel. Misalnya menyimpan suatu data pada sebuah array atau record. Penyimpanan nilai pada variabel ini hanya berlaku sementara yaitu pada saat program di eksekusi saja, dan setelah program di nonaktifkan maka nilai dari variabel tersebut akan hilang. Pada beberapa program terkadang diperlukan untuk tetap menyimpan suatu nilai meskipun program telah di nonaktifkan. Oleh karena itu akan dikenalkan teknik penyimpanan dengan menggunakan file. File pada Pascal dikenal dalam 3 jenis, yaitu File Text, File bertipe, File tidak bertipe

Ada dua metode untuk mengakses komponen file :
1.             Beruntun (Sequensial)
Teknik ini relatif lebih lambat terutama jika ukuran file tersebut besar. Hal ini disebabkan karena teknik pengaksesannya dimulai dari awal file sampai akhir file secara berurutan. metode ini relatif lebih mudah dibuat dan dipelihara. File beruntun atau file teks berisi data ASCII. Tiap recordnya memiliki panjang yang bervariasi dimana setiap recordnya akan ditandai dengan EOL (End of Line). File teks hanya dapat diakses secara sequensial. Data disimpan sebagai kumpulan karakter.
Contoh deklarasinya :
var
nama_variabel_File : text

2.             Acak (Random)
Komponen diakses secara langsung, namun pembuatannya lebih susah dari pada metode berurutan. Data disimpan sebagai bilangan biner. Yang tergolong file ini adalah file bertipe dan file tidak bertipe.
Perintah-perintah
·              Assign (nama_variabel_file, string_nama) : menetapkan nama file eksternal pada variabel nama variabel file
·               reset (nama_variabel_file) : membuka file untuk input (pembacaan file)
·               rewrite (nama_variabel_file) : membuka file untuk output (penulisan file), mulai dalam file keadaan kosong. Jadi seandainya file tersebut sudah ada maka akan dihapus dan dibuat ulang, namun jika belum ada maka dia akan buat baru.
·               append (nama_variabel_file) : menambah isi file
·               eof (nama_variabel_file) : menunjukkan akhir dari file (untuk file teks saja)
·               write (nama_variabel_file, nama_variabel) : menulis ke file
·               writeln (nama_variabel_file, nama_variabel) : menulis ke file (khusus untuk teks)
·               read (nama_variabel_file, nama_variabel) : membaca file
·               readln (nama_variabel_file, nama_variabel) : membaca file
·               seek (nama_variabel_file, N); Menempatkan pointer ke posisi record ke-N
·               filepos(nama_variabel_file); Untuk menunjukkan nomor record, dimulai dari 0;
·               filesize (nama_variabel_file); Mengetahui jumlah record yang ada pada suatu file (file=0 untuk file yang baru dibuat)
·               eof(nama_variabel_file); Untuk menunjukkan akhir dari suatu kalimat.
·               truncate (nama_variabel_file); Untuk menghapus sebagian file

Berikut screen shoot dari program yang menggunakan file :



untuk source codenya silahkan download via link dibawah :
via MC | via MF


Monday, April 20, 2015

Program Linked List pada Pascal

         Secara sederhana Linked List merupakan salah satu struktur data dasar yang sangat fundamental dalam bidang ilmu komputer. Dengan menggunakan linked list maka programmer dapat menimpan datanya kapanpun dibutuhkan. Linked list mirip dangan array, kecuali pada linked list data yang ingin disimpan dapat dialokasikan secara dinamis pada saat pengoperasian program (run-time).
Pada array, apabila programmer ingin menyimpan data, programmer diharuskan untuk mendefinisikan besar array terlebih dahulu, seringkali programmer mengalokasikan array yang sangat besar(misal 100). Hal ini tidak efektif karena seringkali yang dipakai tidak sebesar itu. Dan apabila programmer ingin menyimpan data lebih dari seratus data, maka hal itu tidak dapat dimungkinkan karena sifat array yang besarnya statik. Linked list adalah salah satu struktur data yang mampu menutupi kelemahan tersebut.
Secara umum linked list tersusun atas sejumlah bagian-bagian data yang lebih kecil yang terhubung (biasanya melalui pointer). Linked list dapat divisualisasikan seperti kereta, bagian kepala linked list adalah mesin kereta, data yang disimpan adalah gerbong, dan pengait antar gerbong adalah pointer.


Berikut contoh SS Program sederhana yang menggunakan Linked List: 





Wednesday, April 15, 2015

Melihat Alamat Memori Suatu Variabel Pada Pascal


         Data akan disimpan pada sebuah variabel berdasarkan tipe data yang dimilikinya dalam memori. Setiap memori juga memiliki alamatnya masing-masing berupa gabungan dari deretan angka, mulai dari angka negatif sampai angka positif. Dalam bahasa pascal, untuk melihat alamat variabel yang digunakan untuk menyimpan suatu data dapat dilakukan dengan bantuan pointer yang menunjuk nama variabel dan menambahkan simbol @ di depan nama variabel.



Contoh:

pointer_nama := @nama;

Untuk contoh programnya bisa download lewat link dibawah.





Sunday, April 12, 2015

Pointer Pada Pascal

        Untuk mendefinisikan struktur data dinamis, digunakan tipe pointer. Pointer adalah variabel yang digunakan untuk menyimpan lokasi data pada memori. Karena setiap tipe data membutuhkan ukuran memori yang berbeda untuk menyimpannya, maka pointer dan tipe data acunya harus ditentukan terlebih dahulu. Hal ini dilakukan dengan mendefinisikan sebuah pointer yang menunjuk pada sebuah tipe data tertentu. Berikut ini aturan pendeklarasian pointer : 

Type
     nama_pointer = ^tipe_data;

atau

Var
     nama_variabel : ^tipe_data;

    
          Tanda caret (^), pada pendeklarasian tersebut dibaca "mengacu pada" dan menunjukan bahwa tipe pointer tersebut mengacu pada tipe data uang digunakan . Sebelum menggunakan tipe pointer, pada program perlu menggunakan perintah  new(nama_pointer);. Hal tersebut diperlukan  untuk melakukan pengalokasian memori (memory allocation).

Contoh program sederhana menggunakan pointer, silahkan
unduh disini

Saturday, April 4, 2015

Sequential dan Binary Search Dalam Pascal



           Pada postingan kali ini saya akan membahas tentang metode searching sequential dan juga binary. Seperti yang kita tahu bahwa pencarian digunakan untuk memudahkan kita untuk mencari sebuah atau beberapa data di antara banyaknya data yang ada. Agar kita tidak susah dalam melakukan pencarian data tersebut, maka di gunakanlah metode pencarian. Langsung saja ke penjelasan tentang sqeuntial search dan binary search dibawah :



SEQUENTIAL SEARCH



    Algoritma sequential search adalah salah satu algoritma yang digunakan untuk memecahkan masalah pencarian data pada suatu data larik/array. Cara kerja dari algoritma ini adalah dengan menelusuri elemen-elemen array dari awal sampai akhir, dimana data tidak perlu diurutkan terlebih dahulu. Kemungkinan terbaik(best case) dari algoritma ini adalah jika data yang dicari berada pada elemen array yang terdepan sehingga waktu yang dibutuhkan untuk pencarian data semakin singkat. Sebaliknya, akan mencapai kondisi terburuk(wors case) apabila data yang dicari berada pada elemen akhir.


Metode pencarian beruntun atau linear (sequential search) dapat dipergunakan apabila:



  1. Nilai-nilai tersebut belum berurutan.
  2. Nilai-nilai tersebut sudah berurutan, tetapi struktur data yang dipergunakan untuk menyimpan nilai-nilai tersebut adalah linked list. 

Berikut contoh implementasinya dalam bahasa Pascal : 


function sequen(xx: integer): integer;
var i: integer;
begin
        i:=1;
        while ((i<n) and (tabint[i]<>xx)) do
        i:= i+1;
                if tabint[i]= xx then
                        sequen:=i
                else
                        sequen:=0;
end;


BINARY SEARCH

        Binary search adalah algoritma pencarian untuk data yang terurut. Pencarian dilakukan dengan cara menebak apakah data yang dicari berada ditengah-tengah data, kemudian membandingkan data yang dicari dengan data yang ada ditengah. Bila data yang ditengah sama dengan data yang dicari, berarti data ditemukan. Namun, bila data yang ditengah lebih besar dari data yang dicari, maka dapat dipastikan bahwa data yang dicari kemungkinan berada disebelah kiri dari data tengah dan data disebelah kanan data tengah dapat diabai. Upper bound dari bagian data kiri yang baru adalah indeks dari data tengah itu sendiri. Sebaliknya, bila data yang ditengah lebih kecil dari data yang dicari, maka dapat dipastikan bahwa data yang dicari kemungkinan besar berada disebelah kanan dari data tengah. Lower bound dari data disebelah kanan dari data tengah adalah indeks dari data tengah itu sendiri ditambah 1. Demikian seterusnya.
Metode pencarian beruntun (sequential) maupun metode pencarian biner (binary search)dapat dipergunakan, jika:
  1. Nilai-nilai tersebut sudah tersusun secara berurutan.
  2. Nilai-nilai tersebut disusun ke dalam bentuk array atau struktur data sejenis yang masing-masing nilai tersimpan dalam bagian-bagian yang mempunyai indeks yang unik dan indeksnya berurutan dari yang paling kecil hingga yang paling besar (bersifat ordinal).

Berikur contoh implementasi binary search dalam bahasa Pascal :

function binary(xx: integer):integer;
var

        ats,bwh,tngh: integer;
        ketemu:boolean;
        indeksxx: integer;
begin
        ats:= 1;
        bwh:= n;
        ketemu :=false;
        indeksxx := 0;

while ((ats <= bwh) and (not ketemu)) do
begin
        tngh:= (ats+bwh) div 2;
        if xx = tabint[tngh] then
        begin
                ketemu := true;
                indeksxx := tngh;
        end
        else
        begin
                if xx = tabint[tngh] then
                   bwh :=  tngh-1
                else
                   ats := tngh+1;
        end;
end;
binary:=indeksxx;
end;



Untuk versi lengkapnya bisa download pada link di bawah:
atau