Selasa, 25 Januari 2011

Perbedaan bahasa c dan bahasa paskal

.
Pascal dan C

kedua bahasa ini adalah dua bahasa yang paling banyak dipakai diantara berbagai bahasa pemrograman yang betebaran di dunia. Masing-masing memiliki ciri khas dan keunikan sendiri-sendiri. Dalam artikel kali ini saya akan memberi analisis perbandingan antara kedua pascal. So, pascal dan C, mana yang lebih baik??
Banyak ngetik vs banyak simbol
Pernyataan ini adalah pernyataan yang mempertentangkan kedua bahasa secara langsung. Bahasa Pascal memiliki lebih banyak kosakata untuk perintah-perintahnya. Sedangkan dalam C teman-teman akan menjumpai lebih banyak simbol-simbol seperti {, %, / dsb.
Sensitif nggak?


Maksud dari kalimat itu adalah sensitivitas terhadap simbol / identifier. C menganut case-sensitif. Maksudnya adalah
variabel / keyword / konstanta dibedakan besar-kecilnya huruf. Misal tanda saya tidak sama dengan SaYa. Sedangkan dalam pascal, kata-kata tidak dibedakan menurut besar-kecilanya. Misal kata saya adalah sama dengan SaYA.
Kerangka Program
Kerangka program utama adalah kerangka utama atau template yang digunakan untuk membuat setiap program. Dengan kata lain, minimal kita perlu menuliskan kode berikut untuk dapat membuat program. Dalam Pascal, kita menulis program seperti ini:
program namaprogram;
begin
writeln('Halo dunia !);
end.
Sedangkan dalam C kita menulis seperti ini:
#include <stdio.h>
void main()
{
printf("Halo dunia!");
}
penjelasan:
Dalam C, untuk melakukan input output kita menggunakan library standard bernama stdio.h sedangkan di Pascal kita tidak perlu menambahkan library tambahan karena secara otomatis ditambahkan oleh compiler.
Kemudian dalam C, setiap kali program dieksekusi baris-baris perintah pada fungsi main() akan dijalankan terlebih dahulu. Ini adalah fungsi yang wajib ada di setiap program C. Sedangkan di pascal, tidak terdapat fungsi khusus yang menandakan awal program. Namun program akan mengeksekusi baris-baris perintah di antara sintaks begin dan end.
Nah sekarang kita mencoba menuliskan kata "Halo dunia!" ke layar. Dalam C kita melakukannya dengan printf("Halo dunia); sedangkan dalam Pascal kita melakukannya dengan  writeln('Halo dunia'); . Coba perhatikan, dalam C dan Pascal terdapat perbedaan dalam mengapit string. Dalam C, string diapit dengan " sedangkan dalam pascal diapit dengan tanda '. Dalam pascal tanda ' juga berfungsi mengapit karakter, begitu juga dengan C menggunakan tanda ' untu mengapit karakter. Namun untuk string saja yang berbeda.
Deklarasi variabel
Bahasa C menganut style pre-define type (setidaknya begitulah saya menyebutnya) sedangkan pascal menganut style post-define type. Mungkin akan lebih mudah jika teman-teman langsung melihat contoh nyatanya. Kita ingin membuat variabel dengan tipe data integer (bilangan bulat).
Dalam C, variabel dideklarasikan sebagai berikut:
int namavar;
Dalam pascal, variabel dideklarasikan sebagai berikut:
var namavar : integer;
Nah, yang saya maksud sebagai pre-define type dalam C adalah tipe data disebut terlebih dahulu baru kemudian variabelnya. Sedangkan pascal menyebut variabel dahulu baru tipe data. Dan juga ada sintaks tambahan yaitu var sebelum menyebut nama variabel. Jika variabel yang dideklarasikan banyak dan beragam, kita akan menulis seperti ini:
/* C */
int var11,var12,var13;  /* 3 variabel bertipe integer*/
int var21=3, var22=2, var23;  /* 3 variabel bertipe integer, 2 diinisialisasi. 1 dibiarkan apa adanya*/
Kita dapat menyebutkan / deklarasi banyak variabel bertipe sama dalam 1 baris serta menginisialisasinya di tempat terpisah.
{ Pascal }
var
var11, var12, var13 : integer; { 3 variabel bertipe integer }
var21 : integer = 3;
var22 : integer = 2;
var23 : integer;
Pascal tidak dapat melakukan seperti yang C dapat lakukan dalam hal deklarasi. Pascal tidak bisa deklarasi dan inisialisasi beberapa variabel bersamaan. Sehingga kita harus memisah-misah nya ke dalam tempat terpisah.
Berikut tabel perbandingan antara tipe data dalam C dan Pascal
Algoritmik
Pascal
C
logika
booleah
secara khusus tidak ada
angka (bilangan bulat bulat)
integer
int
cacah (bilangan pecahan desimal)
real
float
huruf (karakter)
char
char
kata (string)
string
char*
Struktur data
Tipe struktur. Dalam C kita mendeklarasikan struktur data sebagai berikut:
typedef struct namastruktur {
tipe-data namadata;

};
Sedangkan dalam pascal untuk mendefinisikan tipe data struktur adalah:
type namastruktur = record
namadata : tipe-data;
end;
Tipe data adalah tipe data-tipe data yang digunakan untuk deklarasi bagian dalam struktur. Tidak ada perbedaan mencolok di sini.
Array
Array adalah kumpulan data bertipe sama yang terangkum dalam satu nama (pembahasan mengenai array secara umum dapat dilihat di sini). Contoh deklarasi array dalam C sebagai berikut:
int i[ n ];
dengan n adalah banyak elemen dari array yang diinginkan.
Sedangkan contoh deklarasi array integer dalam pascal adalah:
var i : array[ awal .. akhir] of integer;
Dengan awal dan akhir adalah indeks awal dan indeks akhir array. Dalam C, kita hanya menyebutkan ukuran data yang harus disediakan dalam array. Secara otomatis array dalam bahasa C berawal dari indeks 0 (bukan 1). Sementara pascal menyebutkan 2 angka dalam deklarasi array. Angka pertama adalah indeks awal atau starting index. Ini adalah indeks pertama dalam array. Sedangkan angka kedua adalah end indeks atau indeks terakhir dalam array. Sehingga pascal dapat mendeklarasikan array dengan indeks yang bebas.
Deklarasi ini valid di pascal:
var ar : array [ 3..5] of integer;
ataupun
var ar : array [ 1..3 ] of integer;
Keduanya memiliki 3 elemen namun penomoran indeks berbeda. Pertama indeks dimulai dari 3 hingga 5, yang kedua dari 1 hingga 3;
Namun meski berbeda cara deklarasi, pengaksesan data pada array kedua bahasa sama. Contoh:
ar [ n ];
dengan n adalah elemen yang dimaksud. Nilai n haruslah berada di range array atau terdefinisi di batas array. Kita tidak bisa menyebutkan indeks yang melebihi batas maksimum array (misal indeks terakhir adalah 10, maka n tidak bisa >= 11)
Operator
Operator dalam matematika adalah simbol-simbol untuk melakukan operasi-operasi dasar matematika. Dalam bahasa pemrograman definisi tersebut juga berlaku. Beberapa operator yang didukung antara lain:
penjumlahan
menjumlahkan dua bilangan dan mendapatkan nilainya. Dalam pascal dan C kita menggunakan operator +
pengurangan
mengurangkan dua bilangan dan mendapatkan nilainya. Dalam pascal dan C kita menggunakan operator -
perkalian
mengalikan dua bilangan dan mendapatkan nilainya. Dalam pascal dan C kita menggunakan operator *

pembagian
membagi dua bilangan dan mendapatkan nilainya. Dalam pascal, tardapat 2 macam pembagian yaitu pembagian yang menghasilkan bilangan bulat dan pembagian yang menghasilkan bilangan pecahan. Untuk operator yang membagi 2 bilangan dan menghasilkan nilai bilangan bulat kita menggunakan div sedangkan membagi menjadi bilangan pecahan dengan operator /. Dalam C hanya dikenal 1 pembagian saja yaitu dengan operator /.
modulo
modulo atau modulus adalah sisa dari pembagian. Misal 11 dimodulo dengan 3 akan menghasilkan 2. Jika dijabarkan, 11 adalah 3 x 3 + 2. Nah 2 inilah yang disebut sisa bagi. Dalam pascal digunakan operator mod sedangkan dalam C digunakan operator %.
assignment
Operator assignment / penugasan adalah operator yang dapat memberikan nilai terhadap variabel tertentu. Dalam C kita dapat mengisikan nilai ke dalam variabel dengan operator =. Sedangkan kita dapat lakukan hal serupa pada pascal dengan operator :=
{
}
Blok
Blok adalah bagian dari kode. Biasanya blok menandakan sisi lain program (scope). Di bagian tersebut terdapat deklarasi dsb. Dalam fungsi, kita menggunakan blok untuk menandakan terdapat bagian lain dari program. Dalam C, blok ditandai dengan kurung kurawal { dan }. Dalam Pascal blok baru ditandai dengan sintaks begin dan end. Selain itu blok baru digunakan untuk mengelompokkan statement sejenis.
Deklarasi di awal atau deklarasi di berbagai tempat?
Pascal adalah bahasa pemrograman yang sangat ketat dalam hal mendeklarasikan data. Dalam pascal, variabel apapun harus dideklarasikan di awal-awal. Sedangkan dalam C, teman-teman bisa mendeklarasikan variabel sesuai kebutuhan dan dimana saja di bagian program.
Conditional Statement
Pemilihan kondisi atau analisis kasus adalah hal yang penting. Dalam C kita melakukan analisis kasus dengan
if ( kondisi ) {
statemen;
}
maksudnya adalah, jika kondisi di dalam perintah if bernilai benar maka statement di dalam blok kurung kurawal akan dikerjakan. Jika tidak maka program akan melewatinya. Jika kondisi yang akan diuji ada 2 maka dapat menggunakan
if ( kondisi-1) {
statemen jika kondisi 1;
}
else {
statemen jika kondisi 1 salah;
}
Selain itu kita juga bisa melakukan pengecekan jika kondisi yang ditawarkan lebih dari 2
if (kondisi-1) {
statement;
}
else if ( kondisi-2 ) {
statement;
}
else {
}
Pada contoh di atas diberikan 3 analisis kasus. Untuk setiap kasus, statement-statement yang akan dieksekusi diletakkan di blok baru. Namun jika statemen terdiri dari 1 statement saja, kita tidak perlu membuat blok baru.
Sedangkan dalam pascal kita dapat melakukan dengan perintah:
if kondisi then
begin
statement;
end;
Sementara untuk kondisi 2 kita menggunakan:
if kondisi-1 then
statement
else
statement2;
Perhatikan bahwa sebelum kata 'else' tidak boleh terdapat simbol ;
Jika terdapat 3 kondisi atau lebih maka dapat digunakan
if kondisi-1 then
statement
else if kondisi-2 then
statement
else statement2;
berikut aplikasi dalam program. Menentukan bilangan apakah positif, negatif atau 0. Dalam C:
if( bilangan > 0) {
printf("Positif");
}
else if( bilangan < 0) {
printf("Negatif");
}
else {
Printf("Nol");
}
dalam pascal:
if bilangan > 0 then writeln('Positif')
else if bilangan < 0 then writeln('Negatif')
else writeln('Nol');
Untuk analisis kompleks kita dapat gunakan switch case (dalam C) atau case .. of (dalam pascal);
switch (variabel) {
case
kemungkinan-1: statement; break;

case kemungkinan-2: statement; break;
}
sedangkan dalam pascal:
case (variabel) of
kemungkinan-1: statement 1
kemungkinan-2: statement 2
end;
perlu diperhatikan, bahwa untuk mengakhiri case dalam bahasa C diperlukan perintah break sebelum menulis case berikutnya !!

Loop Instruction
Perintah perulangan sangatlah esensial dalam bahasa pemrograman. Dalam C dikenal perulangan:
for ( initializer; kondisi; increment) {
}
dimana initializer adalah suatu variabel yang diisikan nilai. Variabel ini sebagai counter atau perhitungan loop. For digunakan apabila kita sudah bisa memastikan berapa perulangan yang akan kita lakukan. Kemudian kondisi adalah kondisi ketika perulangan itu berhenti. Biasanya berupa perbandingan antara variabel yang digunakan sebagai loop counter dengan suatu nilai. Dan increment adalah banyak nilai yang ditambahkan kepada loop counter agar loop-counter mendekati kondisi berhenti. Sehingga contoh penerapannya adalah:
for( int a=0; a < 10; a++) {
}
variabel a akan dijadikan loop counter. Setiap kali perulangan akan diperiksa apakah a bernilai kurang dari 10. Jika ya maka perulangan dilanjutkan. Jika tidak maka berhenti. Jika perulangan terjadi maka variabel a akan ditambah dengan nilai 1 (a++) sehingga pada perulangan berikutnya nilai a akan mendekati nilai 10. Akhirnya a akan bernilai 10 dan kondisi a < 10 tidak terpenuhi. Increment dapat juga lebih dari 1 point. Misal a = a+3 akan menambahkan a dengan 3 di setiap loop.
while ( kondisi ) {
}
dimana perulangan ini akan terus melakukan perulangan jika kondisi bernilai benar. While akan memeriksa kondisi terlebih dahulu apakah memenuhi syarat perulangan. Jika ya maka perulangan terjadi. Jika tidak maka tidak akan ada perulangan.
do {
} while ( kondisi );
juga akan melakukan perulangan terus-menerus berdasarkan kondisi. Perbedaannya dengan while adalah pada sintaks ini akan dilakukan perulangan minimal sekali karena pemeriksaan kondisi dilakukan di akhir perulangan.
Dalam pascal, terdapat perintah-perintah yang ekivalen / serupa dengan perintah perulangan dalam C:
for initializer to nilai do
begin
end;
Dimana initializer adalah sebuah variabel yang diisikan nilai tertentu. Perulangan for pada pascal akan menjadikan variabel tersebut sebagai loop counter hingg mencapai nilai. Contoh penerapan:
for a := 0 to 9 do
begin
end;
while kondisi do
begin
end;
Serupa dengan while pada bahasa C dengan kondisi perulangan di awal-awal.
repeat
until kondisi;
Serupa dengan perulangan do while pada bahasa C dengan pemeriksaan kondisi perulangan di akhir-akhir perulangan (setelah until). Namun perlu diperhatikan, perulangan repeat dan perulangan while memiliki perbedaan. Perulangan while akan terus melakukan perulangan selama kondisi perulangan terjadi. Sementara repeat akan melakukan perulangan hanya sampai kondisi perulangan terjadi. Maksudnya adalah pada repeat until, kondisi yang diberikan adalah kondisi pemberhentian perulangan.
Contoh-contoh di atas hanyalah sekelumit perbandingan yang dapat saya paparkan. Sebenarnya masih ada banyak lagi sisi yang bisa dibandingkan, namun karena waktu yang membatasi maka saya akan akhiri sampai sini dulu. Mungkin saya akan berikan beberapa perbandingan lagi lain kali


0 komentar:

Posting Komentar

 
Design by Wordpress Theme | Bloggerized by Free Blogger Templates | coupon codes