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