Mengulas sedikit tentang bahasa pascal

Mengulas sedikit tentang bahasa pascal

1. Aturan penulisan bahasa pascal


Secara umum berikut beberapa aturan dalam program Pascal
ü  Akhir  sebuah program Pascal  ditandai  dengan tanda  baca titik (.) setelah END yang paling akhir.
ü  Tanda titik koma (;) merupakan pemisah antar instruksi satu dengan lainnya.
ü  Beberapa statement boleh ditulis menjadi satu baris dipisahkan dengan tanda baca titk koma (;)
ü  Baris komentar diletakkan diantara tanda (* dan *) atau diantara tanda { dan }.

Pascal memiliki aturan dalam penulisan programnya. Dan secara garis besar sebuah program Pascal dapat dibagi atas dua bagian utama, yaitu:

A. Blok Deklarasi
Blok deklarasi dapat didekalarsikan berbagai keperluan, seperti; deklarasi nama program, unit, variable, konstanta, prosedur dan fungsi yang akan diguanakan didalam program utama. Pendek kata, segala sesuatu yang akan digunakan di dalam program utama harus dideklarasikan pada blok deklarasi.
Berikut ini adalah kata cadangan yang digunakan pada blok deklarasi untuk mendekarasikan hal-hal yang diperlukian di dalam blok program utama.
·        Program, digunakan untuk mendeklarasikan judul program. Jika anda menggunakan compiler Pascal seperti Turbo Pascal, deklarasi judul program sifatnya optional. Artinya judul program boleh dideklasikan atau tidak. Sebuah file program Pascal memiliki satu judul program
·        Uses, digunakan untuk mendeklarasikan unit yang akan dipakai di dalam program. Jika kita ingin menampilkan output program ke layer, kita harus mendeklarasikan unit crt. Sedangkan jika kita ingin mencetak hasil program ke printer, kita harus mendeklarasikan (me-uses-kan) unit printer.
·        Var, digunakan untuk mendeklarasikan variable.
·        Const, digunakan untuk mendeklarasikan konstanta
·        Procedure, digunakan untuk mendeklarasikan prosedur
·        Function, digunakan untuk mendeklarasikan fungsi.



B. Blok Program utama
            Blok program utama merupakan blok yang menandakan blok program utama, pada program Pascal di awali dengan Begin dan diakhiri dengan End. (end titik).

Contoh :

Program LuasLingkaran;
        Uses crt;
        Var
                    L, R : Real;
        Const
                    Phi = 3.14;
        Begin
                    R := 140;
                    L := phi * R * R;
        Wire(L);

End.

2. Bentuk Umum Bahasa Pascal


Bentuk umum dari bahasa pemograman pascal terbagi menjadi 3 bagian pokok, diantaranya :

A. Nama Program
Nama Program adalah hanya sekedar menuliskan judul program, tidak mempunyai arti apa-apa dalam proses kompilasi. judul program dapat diikuti oleh file-file yang berhubungan dengan program tersebut. Pada Pascal dapat ditambahakan Klausa USES WINCRT untuk menunjukkan bahwa program menggunakan unit.
Adapun tata cara penulisan judul (Nama Variabel, Konstanta) :
•  Diawali dengan huruf
•  Diikuti oleh huruf atau angka atau karakter garis bawah(_)
•  Tidak boleh ada spasi, tanda baca,

B. Deklarasi
Deklarasi, bagian ini berisi deklarasi pengenal maupun data yang dipergunakan didalam program. walaupun tampaknya membuang-buang waktu dan tidak berguna namun sesungguhnya merupakan bagian terpenting dari rangka penyusunan sebuah program yang terstruktur.


Tata cara penulisan Deklarasi :
•  Diawali oleh nama jenis
•  Diikuti oleh pengenal

C. Identifier (bagian pernyataan)
Identifier adalah nama yang diberikan untuk elemen-elemen dalam pascal. Misalnya nama prosedur, nama tipe, nama fungsi, nama variabel, nama  label. Indentifier ini harus dideklarasikan terlebih dahulu agar dapat dikenali. Adapun persyaratan penamaan sebuah identifier adalah :
·         Dapat sepanjang apapun, namun akan mengambil 63 karakter pertama dari nama identifier.
·         Harus diawali dengan huruf atau underscore.
·         Karakter ke dua dan selanjutnya dapat  brupa huruf, angka atau underscore.
·         Tidak boleh ada 2 identifier yang sama dalam satu program.

·         Tidak boleh berupa reserved word. reserved word adalah kata yang telah dikenal oleh pascal yang telah mempunyai kegunaan tertentu.

Membuat aplikasi sederhana VB 6 (Menghitung balok)

Membuat aplikasi sederhana VB 6 (Program perhitungan)


1.  Buatlah form dengan beberapa object seperti di bawah ini


2.  Setiap object tentukan property masing masing.

No
Object
Properties
Value
1
Form1
Caption
startupPosition
hitung_balok
2-CenterScreen
2
Label1
Caption
BackStyle
Panjang
0 – Tranparent
3
Label2
Caption
BackStyle
Lebar
0 – Tranparent
4
Label3
Caption
BackStyle
Tinggi
0 – Tranparent
5
Label4
Caption
BackStyle
Volume
0 – Tranparent
6
Label5
Caption
BackStyle
Luas Permukaan
0 – Tranparent
7
Text1
Name
Text
Text_panjang
<kosong>
8
Text2
Name
Text
Text_lebar
<kosong>
9
Text3
Name
Text
Text_tinggi
<kosong>
10
Text4
Name
Text
Text_volum
<kosong>
11
Text5
Name
Text
Text_lp
<kosong>
12
Command1
Name
Caption
Cmd_hitung
Hitung
13
Command2
Name
Caption
Cmd_exit
Exit

Sehingga form terlihat seperti di bawah ini


3.   List Code command
Double click pada command “hitung”, dan isikan code list seperti dibawah ini : 


Private Sub cmd_hitung_Click()
    Dim P, L, T, V, LP As Integer
       
        P = CSng(Text_panjang.Text)
        L = CSng(Text_lebar.Text)
        T = CSng(Text_tinggi.Text)
       
        V = P * L * T
        LP = 2 * (P + L + T)
       
    Text_volume.Text = CStr(V)
    Text_lp.Text = CStr(LP)
End Sub

Double click pada command “Exit”, dan isikan code list seperti dibawah : 

Private Sub cmd_exit_Click()
Unload Me

End Sub


Berikut output dari program diatas :


-- Thanks and Regards --


By : Hendri Pratama
17 April 2014 

Metode Algoritma Pengurutan (sort)

Metode Algoritma Pengurutan (sort)


1.     Heap Sort
Heapsort merupakan salah satu bentuk dari selection sort yang memiliki kompleksitas algorima O(n log(n)) yang menggunakan struktur data heap. Algoritma ini bekerja dengan menentukan elemen terbesar (atau terkecil) dari sebuah daftar elemen, dan diletakkan pada akhir (atau awal) dari daftar tersebut. Heap sort menyelesaikan sebuah pengurutan menggunakan struktur data yang disebut heap. Heap merupakan sebuah pohon biner hampir lengkap dimana isi dari simpul ayah selalu lebih besar dari isi simpul anak-anaknya sehingga simpul akar selalu merupakan elemen terbesar.

Metode Heap Sort :
·         Metode UpHeap
o   bandingkan kunci terakhir dengan parentnya apabila parent < kunci maka lakukan pertukaran.
o   ulangi langkah g g 1 dengan membandingkan dengan parent selanjutnya sampai posisi parent di level 1 selesai dibandingkan
·         Metode DownHeap
o   Bandingkan parent dengan leftchild dan rightchild apabila parent < leftchild atau rightchild maka lakukan pertukaran.
o   Ulangi langkah 1 dengan membandingkan dengan leftchild dan rightchild pada posisi level dibawahnya sampai posisi di level terakhir selesai dibandingkan.

Prosedur :
function heapSort(a, count) is
input: sebuah larik tidak terurut a dengan panjang length
(pertama letakkan a dalam max-heap) heapify(a, count)
end := count -1
while end > 0 do
remove ( )
reheapify ( )
end := end – 1

2.     Shell sort
Pengertian :
Metode ini disebut juga dengan metode pertambahan menurun (diminishing increment). Metode ini dikembangkan oleh Donald L. Shell pada tahun 1959, sehingga sering disebut dengan Metode Shell Sort. Metode ini mengurutkan data dengan cara membandingkan suatu data dengan data lain yang memiliki jarak tertentu, kemudian dilakukan penukaran bila diperlukan. Proses pengurutan dengan metode Shell dapat dijelaskan sebagai berikut :
Pertama-tama adalah menentukan jarak mula-mula dari data yang akan dibandingkan, yaitu N / 2. Data pertama dibandingkan dengan data dengan jarak N / 2. Apabila data pertama lebih besar dari data ke N / 2 tersebut maka kedua data tersebut ditukar. Kemudian data kedua dibandingkan dengan jarak yang sama yaitu N / 2. Demikian seterusnya sampai seluruh data dibandingkan sehingga semua data ke-j selalu lebih kecil daripada data ke-(j + N / 2).     

Pada proses berikutnya, digunakan jarak (N / 2) / 2 atau N / 4. Data pertama dibandingkan dengan data dengan jarak N / 4. Apabila data pertama lebih besar dari data ke N / 4 tersebut maka kedua data tersebut ditukar. Kemudian data kedua dibandingkan dengan jarak yang sama yaitu N / 4. Demikianlah seterusnya hingga seluruh data dibandingkan sehingga semua data ke-j lebih kecil daripada data ke-(j + N / 4).

Pada proses berikutnya, digunakan jarak (N / 4) / 2 atau N / 8. Demikian seterusnya sampai jarak yang digunakan adalah 1.  

Algoritma metode Shell dapat dituliskan sebagai berikut :  

1. Jarak = N    
2. Selama (Jarak > 1) kerjakan baris 3 sampai dengan 9     
3. Jarak = Jarak / 2. Sudah = false     
4. Kerjakan baris 4 sampai dengan 8 selama Sudah = false 
5. Sudah = true           
6. j = 0
7. Selama (j < N – Jarak) kerjakan baris 8 dan 9       
8. Jika (Data[j] > Data[j + Jarak] maka tukar Data[j],           
   Data[j + Jarak].       
   Sudah = true
9. j = j + 1                   

Di bawah ini merupakan prosedur yang menggunakan metode Shell:        

void ShellSort(int N)   
{
int Jarak, i, j;  
bool Sudah;    
Jarak = N;       
while(Lompat > 1)      
{
Jarak = Jarak / 2;        
Sudah = false; 
while(!Sudah)
{
Sudah = true;  
for(j=0; j<N-Jarak; j++)           
{
i = j + Jarak;    
if(Data[j] > Data[i])    
{
Tukar(&Data[j], &Data[i]);    
Sudah = false; 
} } } } }

Metode Shell Sort :

3.     Quick Sort
Pengertian :
Metode Quick sering disebut juga metode partisi (partition exchange sort). Metode ini diperkenalkan pertama kali oleh C.A.R. Hoare pada tahun 1962. Untuk mempertinggi efektifitas dari metode ini, digunakan teknik menukarkan dua elemen dengan jarak yang cukup besar. Proses penukaran dengan metode quick dapat dijelaskan sebagai berikut:               

Mula-mula dipilih data tertentu yang disebut pivot, misalnya x. Pivot dipilih untuk mengatur data di sebelah kiri agar lebih kecil daripada pivot dan data di sebelah kanan agar lebih besar daripada pivot. Pivot ini diletakkan pada posisi ke j sedemikian sehingga data antara 1 sampai dengan j-1 lebih kecil daripada x. Sedangkan data pada posisi ke j+1 sampai N lebih besar daripada x. Caranya dengan menukarkan data diantara posisi 1 sampai dengan j-1 yang lebih besar daripada x dengan data diantara posisi j+1 sampai dengan N yang lebih kecil daripada x.

---( Metode Quick Sort Non Rekursif      

Implementasi secara non rekursif memerlukan dua buah tumpukan (stack) yang digunakan yang digunakan untuk menyimpan batas-batas subbagian. Pada prosedur ini menggunakan tumpukan yang bertipe record (struktur) yang terdiri dari elemen kiri (untuk mencatat batas kiri) dan kanan (untukmencatat batas kanan. Tumpukan dalam hal ini dideklarasikan sebagai array.                     

Algoritma quick sort non rekursif dapat dituliskan sebagai berikut :          

1. Tumpukan[1].Kiri = 0
2. Tumpukan[1].Kanan = N-1     
3. Selama ujung ≠ 0 kerjakan baris 4 sampai dengan 22  
4. L = Tumpukan[ujung].Kiri       
5. R = Tumpukan[ujung].Kanan
6. ujung = ujung – 1       
7. Selama (R > L) kerjakan baris sampai 8 dengan 22        
8. i = L   
9. j = R  
10. x = Data[(L + R) / 2] 
11. Selama i <= j kerjakan baris 12 sampai dengan 14      
12. Selama (Data[i] < x), i = i + 1
13. Selama (x < Data[j]), j = j – 1               
14. Jika (i <= j) maka kerjakan baris 15 sampai dengan 17, jika tidak ke baris 11    
15. Tukar Data[i] dengan Data[j]               
16. i = i + 1          
17. j = j –1           
18. Jika (L < i) maka kerjakan baris 19 sampai dengan 21
19. ujung = ujung + 1     
20. Tumpukan[ujung].Kiri = I      
21. Tumpukan[ujung].Kanan = R              
22. R = j               

Di bawah ini merupakan prosedur yang menggunakan metode quick dengan non rekursi:     

      
void QuickSortNonRekursif(int N)           

{
const M = MaxStack;     
struct tump       
{
int Kiri; 
int Kanan;           
}
Tumpukan[M];
int i, j, L, R, x, ujung = 1;
Tumpukan[1].Kiri = 0;    
Tumpukan[1].Kanan = N-1;        
while (ujung!=0)             
{
L = Tumpukan[ujung].Kiri;           
R = Tumpukan[ujung].Kanan;    
ujung--;
while(R > L)       
{
i = L;      
j = R;     
x = Data[(L+R)/2];           
while(i <= j)       
{
while(Data[i] < x)            
i++;
while(x < Data[j])            
j--;
if(i <= j)               
{
Tukar(&Data[i], &Data[j]);          
i++;
j--;
}
}
if(L < i) 
{
ujung++;
Tumpukan[ujung].Kiri = i;            
Tumpukan[ujung].Kanan = R;    
}
R = j;     
}
}
}

---( Metode Quick Sort Rekursif               

Algoritma quick Rekursif dapat dituliskan sebagai berikut :           

1. x = Data[(L + R) / 2]    
2. i = L   
3. j = R  
4. Selama ( i <= j) kerjakan baris 5 sampai dengan 12       
5. Selama (Data[i] < x) kerjakan i = i + 1 
6. Selama (Data[j] > x) kerjakan j = j – 1
7. Jika (i <= j) maka kerjakan baris 8 sampai 10; jika tidak kerjakan baris 11            
8. Tukar Data[i] dengan Data[j] 
9. i = i + 1             
10. j = j –1           
11. Jika (L < j) kerjakan lagi baris 1 dengan R = j  
12. Jika (i < R) kerjakan lagi baris 1 dengan L = i   

Dibawah ini merupakan prosedur yang menggunakan metode quick dengan rekursi:     

void QuickSortRekursif(int L, int R)          
{
int i, j, x;              
x = data[(L+R)/2];           
i = L;      
j = R;     
while (i <= j)      
{
while(Data[i] < x)            
i++;
while(Data[j] > x)            
j--;
if(i <= j)               
{
Tukar(&Data[i], &Data[j]);          
i++;
j--;
}
}
if(L < j) 
QuickSortRekursif(L, j);
if(i < R) 
QuickSortRekursif(i, R);
}

4.     Merge Sort
Pengertian :
Merge sort merupakan salah satu teknik sorting yang menurutkan suatu data dengan cara penggabungan. Merge sort juga menggunakan proses divide and conquer pada rekursi. Berikut adalah langkah kerja merge sort :
Devide       : Memilah elemen – elemen dari data menjadi dua bagian.
Conquer    : Menyelesaikan setiap bagian dengan memanggil prosedur merge sort secara rekursif.
Kombinasi : Mengkombinasikan dua bagian tersebut secara rekursif untuk mendapatkan rangkaian data berurutan.
Proses rekursi akan berhenti jika telah mencapai lemen dasar, atau artinya jika bagian yang diurutkan menyisakan tepat satu elemen. Sisa pengurutan satu elemen tersebut menandakan bahwa bagian tersebut telah sesuai rangkaian.

Metode penggabungan biasanya digunakan pada pengurutan berkas. Prinsip dari metode penggabungan sebagai berikut :         

Mula-mula diberikan dua kumpulan data yang sudah dalam keadaan urut. Kedua kumpulan data tersebut harus dijadikan satu table sehingga dalam keadaan urut. Misalnya kumpulan data pertama (T1) adalah sebagai berikut :         
 
3 11 12 23 31
Sedangkan kumpulan data kedua (T2) adalah sebagai berikut :
 
9 15 17 20 35
 
Proses penggabungan ini dapat dijelaskan sebagai berikut : mula-mula diambil data pertama dari T1 yaitu 3 dan data pertama dari T2 yaitu 9. Data ini dibandingkan, kemudian yang lebih kecil diletakkan sebagai data pertama dari hasil pengurutan, misalnya T3. Jadi T3 akan memiliki satu data yaitu 3. Data yang lebih besar yaitu 9 kemudian dibandingkan dengan data kedua dari T1, yaitu 11. Ternyata 9 lebih kecil dari 11, sehingga 9 diletakkan sebagai data kedua dari T3. Demikian seterusnya
sehingga didapat hasil sebagai berikut :

3 9 11 12 15 17 20 23 31 35
 
Algoritma penggabungan dapat dituliskan sebagai berikut :

1. i = 0
2. j = 0
3. J3 = 0
4. Kerjakan baris 5 sampai dengan 7 selama (i < J1) atau (j < J2)
5. J3 = J3 + 1
6. Jika (T1[i] < T2[j]) maka T3[J3] = T1[i], i = i + 1
7. Jika (T1[i] >= T2[j]) maka T3[J3] = T2[j], j = j + 1
8. Jika (i > J1) maka kerjakan baris 9, jika tidak kerjakan baris 15
9. i = j
10. Selama (i < J2) kerjakan baris 11 sampai dengan 13
11. J3 = J3 + 1
12. T3[J3] = T2[i]
13. i = i + 1
14. Selesai
15. j = i
16. Selama (j < J1) kerjakan baris 17 sampai dengan 19
17. J3 = J3 + 1
18. T3[J3] = T1[j]
19. j = j + 1

Di bawah ini merupakan prosedur penggabungan dua kumpulan data yang sudah dalam keadaan urut:

void MergeSort(int T1[],int T2[],int J1,int J2, int T3[],int *J3)
{
int i=0, j=0;
int t=0;
while ((i<J1)||(j<J2))
{
if(T1[i]<T2[j])
{
T3[t] = T1[i];
i++;
}
else
{
T3[t] = T2[j];
j++;
}t++;
}
if(i>J1)
for(i=j; i<J2; i++)
{
T3[t] = T2[i];
t++;
}
if(j>J2)
for(j=i; j<J1; j++)
{
T3[t] = T1[j];
t++;
}
*J3 = t;
}


5.    Radix Sort
Pengertian :
Radix sort adalah salah satu algoritma sorting yang dilakukan tanpa melakukan perbandingan antardata yang dijadikan sebagai input. Makna harfiah Radix dapat diartikan sebagai posisi dalam angka. Dalam system decimal, radix adalah digit dalam angka decimal. Misalkan angka 37 mempunyai nilai radix 3 dan 7. Berdasarkan urutan pemrosesan radix-nya, ada 2 macam Radix sort. Pertama adalah LSD (Least Significant Digit) yaitu proses dimulai dari radix yang paling tidak signifikan(digit yang paling kanan). Kedua adalah MSD (Most Significant Digit), yaitu proses dimulai dari radix yang paling signifikan (digit yang paling kiri).

Radix Sort merupakan salah satu algoritma Non-Comparasion Sort (pengurutan tanpa pembandingan). Proses yang dilakukan dalam metode ini adalah mengklasifikasikan data sesuai dengan kategori terurut yang tertentu, dan tiap kategori dilakukan pengklasifikasian lagi, dan seterusnya sesuai kebutuhan, lalu subkategori-kategori tersebut digabungkan kembali.          

Secara harfiah Radix dapat diartikan sebagai posisi dalam angka, karena metode ini pertamakalinya mengurutkan nilai-nilai input berdasarkan radix pertamanya, lalu pengurutan dilakukan berdasarkan radix keduanya, dan begitu seterusnya. Pada system desimal, radix adalah digit dalam angka desimal. Dalam system bilangan desimal, digit – digit suatu bilangan dapat dikelompokkan menjadi 10 kelompok, yaitu kelompok “0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, dengan demikian harga suatu bilangan dapat diidentifikasikan ke dalam kelompok – kelompok digit tersebut.    

Ide dasar dari metode Radix sort ini adalah mengkategorikan data – data menjadi subkumpulan data sesuai dengan nilai radixnya kemudian mengkategorikannya kembali berdasar nilai radix lainnya.

Contact Us

Name

Email *

Message *