Dear all.

Kayaknya penjelasan pak Danny ini mencampuradukkan modular dan OOP
sebagai teknik kemudian C dan C++ sebagai bahasa.

C bisa digunakan untuk implementasi OOP, jika kita mempunyai pola pikir
yang tepat. C++ juga bisa untuk implementasi program gaya modular jika
memang itulah pola pikir kita.

Bisa kita argumen kalau untuk implementasi OOP di C++ lebih mudah
daripada di C atau sebaliknya, tapi itu another discussion for another
day. 

Kalau untuk menjawab pertanyaan mana yang lebih (mudah|hebat|maju|dll)
yang diajukan, kayaknya jawabannya masih tetap sama: No Silver Bullet. 

Tergantung kitanya mau melakukan apa.
C bisa hebat banget untuk bikin program server database misalnya, tapi
untuk mrogram GUI, sebagian orang berpikir lebih mudah membuatnya pakai
C++. Dst.


Salam hangat.
-arief



On Thu, 2006-11-30 at 16:09 +0700, Danny Kurniawan wrote:
> 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

Kirim email ke