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