Kamis, 04 Oktober 2012

Apa beda ilmu komputer dengan rekayasa perangkat lunak? Kuliah Dec 202010 Tulisan ini dibuat karena ada seorang teman yang mempertanyakan hal ini. Banyak sebenarnya penjelasan yang lebih formal bisa di cari di internet. Tapi teman saya ini ingin dijelaskan menurut kata-kata saya. Saya mengerti bedanya tapi ternyata untuk menjelaskan secara sederhana ternyata bukan hal yang mudah. Apalagi teman saya ini tidak memiliki latar belakang pendidikan komputer. Dalam bahasa Inggris, ilmu komputer dikenal sebagai computer science atau informatique, sedangkan Rekayasa perangkat lunak dikenal sebagai software engineering. Orang yang mengerti ilmu komputer belum tentu mengerti rekayasa perangkat lunak, demikian juga sebaliknya. Walau untuk mempelajari bidang ini membutuhkan tingkat pemahaman yang sama diawal. Bidang ilmu komputer dan rekayasa perangkat lunak sama-sama mencari solusi untuk penyelesaian suatu masalah dengan komputer. Tapi domain masalah yang diselesaikan tentunya berbeda. Ilmu komputer lebih menekankan pada pengembangan-pengembangan ilmu yang terkait dengan penyelesaian masalah yang menuntut optimasi solusi dengan menggunakan logika. Rekayasa perangkat lunak menekankan pada proses penyelesaian masalah. Jadi fokusnya terkait dengan aktivitas untuk pengembangan perangkat lunak, dan tentunya berhubungan dengan perencanaan sumber daya manusia, waktu dan biaya. Misalnya saja, kita ingin dibuatkan program yang bisa bermain catur. Program ini diharapkan bisa melawan seorang pemain catur manusia. Seorang ahli ilmu komputer akan tertarik menyelesaikan masalah bagaimana menemukan program yang cepat dan efisien untuk memberikan solusi dari game catur ini. Jadi program menekankan pada bagaimana game itu bisa ‘berpikir’ seperti manusia. Tapi seorang perekayasa perangkat lunak lebih tertarik untuk mencari tahu bagaimana game itu akan dibuat. Ia akan tertarik untuk menghitung berapa orang yang dibutuhkan untuk membuat game itu. Termasuk tentunya perhitungan waktu dan biaya yang dibutuhkan. Biaya ini termasuk biaya perangkat keras yang diperlukan untuk pengembangan, dan juga perangkat lunak bantu yang dibutuhkan. Dan juga biaya untuk membayar orang-orang yang diperlukan untuk pengembangan game itu. Termasuk juga perhitungan waktu yang dibutuhkan. Selanjutnya juga diperlukan perhitungan yang optimal antara biaya dan waktu. Seorang perekayasa perangkat lunak juga akan memperhatikan seberapa jauh game itu sudah selesai dibuat. Sudah selesai dibuat artinya game itu sudah selesai diuji. Pengujian harus melihat apakah solusi yang ditawarkan dari algoritma sudah memenuhi keinginan pengguna game, termasuk juga analisa apakah game itu cukup ‘enak’ dimainkan sehingga bisa membuat orang tertarik untuk memainkan game ini. Seorang ahli komputer lebih mempedulikan bagaimana solusi yang optimal dari sisi algoritma ini. Dan tentunya solusi ini menyangkut cepat atau tidaknya solusi program yang ditawarkan. Berbagai teknik program bisa di terapkan mulai dari yang bersifat mencoba setiap kemungkinan ataupun menggunakan teknik-teknik di intelegensia buatan. Jadi secara umum untuk penyelesaian program game catur ini akan dibutuhkan seorang perekayasa perangkat lunak yang akan mengembangkan program ini, dan juga seorang ahli ilmu komputer yang bisa mencari solusi optimal untuk pengembangan program. Dari contoh di atas, tentunya seorang ahli rekayasa perangkat lunak lebih diperlukan untuk pengembangan proyek perangkat lunak, sedangkan ahli ilmu komputer diperlukan untuk pencarian solusi optimal. Tapi tentunya ada saja orang yang cukup ahli di kedua bidang tersebut.

Apa beda ilmu komputer dengan rekayasa perangkat lunak?


Tulisan ini dibuat karena ada seorang teman yang mempertanyakan hal ini. Banyak sebenarnya penjelasan yang lebih formal bisa di cari di internet. Tapi teman saya ini ingin dijelaskan menurut kata-kata saya.
Saya mengerti bedanya tapi ternyata untuk menjelaskan secara sederhana ternyata bukan hal yang mudah. Apalagi teman saya ini tidak memiliki latar belakang pendidikan komputer.
Dalam bahasa Inggris, ilmu komputer dikenal sebagai computer science atau informatique, sedangkan Rekayasa perangkat lunak dikenal sebagai software engineering. Orang yang mengerti ilmu komputer belum tentu mengerti rekayasa perangkat lunak, demikian juga sebaliknya. Walau untuk mempelajari bidang ini membutuhkan tingkat pemahaman yang sama diawal.
Bidang ilmu komputer dan rekayasa perangkat lunak sama-sama mencari solusi untuk penyelesaian suatu masalah dengan komputer. Tapi domain masalah yang diselesaikan tentunya berbeda. Ilmu komputer lebih menekankan pada pengembangan-pengembangan ilmu yang terkait dengan penyelesaian masalah yang menuntut optimasi solusi dengan menggunakan logika. Rekayasa perangkat lunak menekankan pada proses penyelesaian masalah. Jadi fokusnya terkait dengan aktivitas untuk pengembangan perangkat lunak, dan tentunya berhubungan dengan perencanaan sumber daya manusia, waktu dan biaya.
Misalnya saja, kita ingin dibuatkan program yang bisa bermain catur. Program ini diharapkan bisa melawan seorang pemain catur manusia.
Seorang ahli ilmu komputer akan tertarik menyelesaikan masalah bagaimana menemukan program yang cepat dan efisien untuk memberikan solusi dari game catur ini. Jadi program menekankan pada bagaimana game itu bisa ‘berpikir’ seperti manusia.
Tapi seorang perekayasa perangkat lunak lebih tertarik untuk mencari tahu bagaimana game itu akan dibuat. Ia akan tertarik untuk menghitung berapa orang yang dibutuhkan untuk membuat game itu. Termasuk tentunya perhitungan waktu dan biaya yang dibutuhkan. Biaya ini termasuk biaya perangkat keras yang diperlukan untuk pengembangan, dan juga perangkat lunak bantu yang dibutuhkan. Dan juga biaya untuk membayar orang-orang yang diperlukan untuk pengembangan game itu. Termasuk juga perhitungan waktu yang dibutuhkan. Selanjutnya juga diperlukan perhitungan yang optimal antara biaya dan waktu.
Seorang perekayasa perangkat lunak juga akan memperhatikan seberapa jauh game itu sudah selesai dibuat. Sudah selesai dibuat artinya game itu sudah selesai diuji. Pengujian harus melihat apakah solusi yang ditawarkan dari algoritma sudah memenuhi keinginan pengguna game, termasuk juga analisa apakah game itu cukup ‘enak’ dimainkan sehingga bisa membuat orang tertarik untuk memainkan game ini.
Seorang ahli komputer lebih mempedulikan bagaimana solusi yang optimal dari sisi algoritma ini. Dan tentunya solusi ini menyangkut  cepat atau tidaknya solusi program yang ditawarkan. Berbagai teknik program bisa di terapkan mulai dari yang bersifat mencoba setiap kemungkinan ataupun menggunakan teknik-teknik di intelegensia buatan.
Jadi secara umum untuk penyelesaian program game catur ini akan dibutuhkan seorang perekayasa perangkat lunak yang akan mengembangkan program ini, dan juga seorang ahli ilmu komputer yang bisa mencari solusi optimal untuk pengembangan program.
Dari contoh di atas, tentunya seorang ahli rekayasa perangkat lunak lebih diperlukan untuk pengembangan proyek perangkat lunak, sedangkan ahli ilmu komputer diperlukan untuk pencarian solusi optimal.  Tapi tentunya ada saja orang yang cukup ahli di kedua bidang tersebut.

Tidak ada komentar:

Posting Komentar