inakkeji

Blog ini berisi tentang segala macam informasi, tetek bengek, hal gak jelas, dan lain-lain, pokoknya segala sesuatu yang saya sukai....

Belajar plc

By shair

Kamis, 19 Mei 2011

Software Engineering vs Electrical Engineering










                           


Tulisan ini sebagai tanggapan atas pendapat yang menyatakan bahwa programmer/coder = do-er dan programming/coding = implementation.
Sebelum bekerja diprusahaan swasta yang bergerak di bidang industri kayu lapis (PT.SMS)sebagai electrical., saya sempat mengenyam pendidikan teknik elektro (informatika) di salah satu sekolah kejuruan (smkn 2 palopo). Saya diajari menghitung rangkaian elekrik dan juga merancangnya. Rangkaian elektrik dihitung dan dirancang dengan menggunakan hukum-hukum yang berlaku, misal hukum Ampere.
Dalam merancang, digunakan gambar rangkaian elektrik. Misal gambar rangkaian penyearah arus atau di tempat kerja saya dulu (PT.NJP)juga disebut rectifire,  kita   lihat gambar seperti di bawah ini:
Rangkaian Penyearah Arus
Rangkaian Penyearah Arus
Gambar tersebut menjadi acuan kita dalam membuat sirkuit PCB (Printed Circuit Board). Misal, dari gambar tersebut, dapat menghasilkan PCB seperti gambar di bawah ini.
PCB Rangkaian Penyearah Arus
PCB Rangkaian Penyearah Arus
Dua gambar tersebut adalah desain. Yang satu desain rangkaian elektrik, yang satunya lagi desain PCB. Rangkaian elektrik dapat menghasilkan berbagai gambar PCB yang berbeda, tergantung yang merancang PCB tersebut.
Dari desain PCB, kita dapat melakukan proses manufaktur untuk membuat PCB yang sebenarnya.
Terus apa hubungannya dengan Software Engineering? Kalau di Software Engineering kita sering mendengar istilah SDLC (Software Development Life Cycle). Biasanya berisi tahapan analisis – desain – implementasi – pengujian – pemeliharaan. Tahap programming atau coding biasanya dimasukkan ke dalam tahap implementasi.
Karena masuk di tahap implementasi, maka muncul pendapat bahwa yang dilakukan hanya men-translate apa-apa yang ada di desain/perancangan menjadi source code. Dan kegiatan ini (coding) dianggap tidak membutuhkan effort yang besar.
Coba kita bandingkan dengan yang terjadi pada Electrical Engineering, setelah membuat rangkaian elektrik, insinyur elektro dapat membuat gambar PCB. Tapi saya tidak pernah mendengar satu orangpun insinyur elektro yang mengatakan bahwa gambar PCB adalah implementasi, mereka sepakat bahwa gambar tersebut adalah desain. Padahal jelas-jelas PCB dibuat dengan 100% mengacu pada rangkaian elektrik. Karena membuat PCB-pun tidak sembarangan, butuh keahlian khusus, karena antara satu komponen elektrinik dengan komponen lainnya dapat saling interferensi. Selain itu PCB yang dihasilkan dapat bervariasi tergantung desainer yang membuat.
Implementasi adalah proses ketika PCB tersebut di-manufaktur/dibuat ke papan PCB kemudian komponen-komponen elektronika yang dibutuhkan dipasang (disolder) di PCB tersebut, dan perangkat tersebut dapat berfungsi sebagaimana mestinya.
Jika analogi seperti ini yang digunakan, maka coding seharusnya bukan masuk di tahapan implementasi. Karena dalam proses coding, walaupun harus 100% mengacu pada desain (yang sifatnya lebih high-level), tetap saja ada perhitungan lain yang harus dilakukan, hal ini menjadi bagian dari proses refactoring.
Lalu siapa yang melakukan impementasi? Bisa compiler atau interpreter.
Kesimpulan saya, posisi source code setara dengan posisi gambar PCB pada electrical engineering. Baik source code maupun gambar PCB adalah desain yang paling low-level.
Pendapat yang mengatakan bahwa coding hanya urusan lulusan SMK, sedangkan coding adalah pekerjaan yang ‘menjijikkan’ untuk kalangan S1 (atau lebih tinggi), adalah pernyataan yang tidak memiliki dasar ilmiah. Ini pendapat berbau ‘feodalism’.

Tidak ada komentar: