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