Saya akan coba jawab berdasarkan pengalaman saya...
pertama secara syntax, semua syntax di C tetap disupport di C++... bedanya, di
C++ terdapat banyak sekali penambahan feature2 baru dalam bahasa
pemrogramannya... mengapa?? nah inilah yang mendasari perbedaan C dan C++
dalam melakukan programming dengan menggunakan bahasa C, pola berpikir anda
akan terpaku dengan pola pikir yang sudah mendarah-daging dalam setiap
programmer di dunia... yaitu pola berpikir modular... yang mana, dalam bahasa
pemrograman umumnya, konsep modular ini tetap ada... bahkan dalam bahasa2
modern sekalipun...
apakah pola berpikir modular itu???
saya akan memberikan jawabannya melalui sebuah contoh...
misalkan... anda diberi tugas untuk membuat animasi di layar berupa 100
bintang kelap-kelip yang berjalan melintasi layar dari kiri ke kanan...
apa yang akan anda buat??
dalam konsep berpikir modular, mungkin anda akan melakukan hal seperti
berikut:
---
int coord_x[100], coord_y[100]
for (i = 0; i < 100; i++)
initialize_star(coord_x[i], coord_y[i]);
while (!quit)
for (i = 0; i < 100; i++)
animate_star(coord_x[i], coord_y[i]);
---
anda mungkin akan membuat fungsi2 seperti initialize_star(), init_graphic(),
ataupun animate_star()...
walaupun implementasinya bisa bermacam-macam, pada intinya, anda akan membuat
fungsi2 yang sifatnya modular...
nah... bagaimana dengan C++??
dalam C++, selain program C di atas bisa dijalankan, namun sebenarnya dalam
C++, anda diperkenalkan pola berpikir baru, yaitu OOP...
lalu dalam OOP, bagaimanakah penyelesaian contoh soal diatas??
---
class c_star {
int x, y;
public:
class();
animate();
};
int main()
{
c_star star[100];
while (!quit)
for (i = 0; i < 100; i++)
star[i].animate();
}
---
bisa memahami perbedaannya?? memang sepintas keduanya mirip... tapi ada
perbedaan yang mendasar antara keduanya...
pada contoh yang pertama, pola anda berpikir adalah anda selalu berurusan
dengan data, yang mana dalam hal ini adalah koordinat x dan y, dan dalam
melakukan animasi, anda menggunakan fungsi untuk menggambarnya ke layar
dengan memberikan data berupa koordinat... jadi dalam konsep yang pertama,
program adalah kumpulan dari fungsi2 (tidak ada yang salah dalam hal ini,
saya hanya menekankan pola berpikirnya saja)
sedangkan pada contoh kedua, anda tidak berpikir bahwa anda menyimpan data
saja, tetapi anda sudah berpikir bahwa dalam melakukan animasi tersebut, anda
memiliki sekumpulan obyek berupa bintang, dan setiap obyek diperintahkan
untuk mengurus dirinya sendiri (melakukan animasi - melalui perintah
star[i].animate())... nah konsep inilah yang dimaksud dengan OOP...
jadi pada dasarnya perbedaan antara C dan C++ bukanlah terletak pada bahasa
pemrograman ataupun compilernya... (walaupun keduanya memang berbeda)...
tetapi pada dasarnya adalah cara berpikir dari programmer itu sendiri... jadi
perubahan dari C menuju ke C++ adalah didasarkan dari pola pikir anda sebagai
programmer apakah berpikir secara modular, atau secara OOP... tergantung mana
yang lebih mudah...
namun dari pengalaman saya... OOP memang pada awalnya berarti lebih banyak
menulis source code dibandingkan modular... tetapi pada pengembangan
selanjutnya... misalkan menambahkan feature, mengubah program... dsb... OOP
berarti banyak menyederhanakan penyelesaian suatu persoalan...
diluar itu ada beberapa pro-kontra dalam penggunaan C dan C++ itu sendiri...
semoga bisa memberi pencerahan...
On Thursday 30 November 2006 00:20, r0mbenx r0mbenx wrote:
> Assalammu'alaikum
>
>
> Sekedar pengin tahu dari saya yg masih newbie di
> pemrograman, ada sedikit unek2 yg mungkin para senior
> (tapi bukan Senang istri Orang ya.... :) bisa jawab.
>
> Saya sedang belajar Bhs prog C dan C++, secara
> autodidak (baca buku + tutor) setiap saya baca buku
> atau tutor pasti di bilang C++ lebih maju, lebih
> hebat, lebih mudah (weeks kenyatanya lebih susah),
> dll, dsb , dst, dkk, deh pokoknya.
>
> Tapi kenapa kernel di linux masih pake C, & yang saya
> baca di tabloid komputer termasuk Windows sendiri
> kernelnya juga pake C (kalo win saya blon bongkar2
> soalnya di rumah kompor saya sumbunya Suse 9.1), knapa
> ngga pakai C++, atau java (terlepas dari JDS ya..).
> Mungkin ada yg bisa memberikan penjelasan yg memuaskan
> saya.
>
> Thanx B 4
>
> Wassalammu'alaikum
>
>
> r0mbenx
--
Danny Kurniawan <[EMAIL PROTECTED]>
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS/CM/E/IT d+() s+:+ a- C++>+++$ UL+++(++)>++++ P!(+++) L+++>++++>$ E-- W++>$
N o-- K- w--(+++) O++@ M@ V? PS PE-@ Y+ PGP@ t++ 5+@ X+++(++) R tv+ b
+++(++) DI? D++@ G+>++ e++ h- r++ y z-
------END GEEK CODE BLOCK------
--
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis