Perbedaan Pascal dan C

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.

5 Comments

  1. makasih! it’s really helpful!😀

  2. mega

    thx yaa…🙂

  3. arif

    mantap gan,,tugas gw jdi beres nih karena blog u!! huahuahuahua

  4. thanks gan atas sharenya, kebetulan ane lagi nyari bahan bacaan tentang ini walau masih awam…

Trackbacks

  1. Seri Belajar Pemrograman #3 « Another Satria's Project

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: