cover Dua Wujud Software

Kunci dalam membongkar kejahatan nonfree software ialah memahami 2 wujud software. Kunci ini bagian dari computer science, yang sering tidak dipahami dan sengaja tidak dipahamkan di masyarakat umum. Tanpa mengetahui 2 wujud software, masyarakat umum sangat mudah ditipu dan dikendalikan seenaknya oleh pengembang proprietary software. Maka tulisan ini memberi pengertian 2 wujud software yang berlaku universal untuk segala software pada segala hardware pada segala OS dalam bahasa yang mudah untuk orang awam. Tulisan ini ditujukan sebagai referensi setiap ada pembahasan software freedom.

1. Contoh-Contoh Software
Jangan Anda menyangka software itu hanya seperti Microsoft Office. Ada jendelanya, ada tombol-tombol, interaksi pakai klik mouse. Tidak, software tidak hanya itu. Jenis software itu sangat banyak dalam penampilan bermacam ragam, diciptakan untuk beragam macam hardware dan perangkat, tidak hanya yang seperti Office.

  • GUI software: seperti LibreOffice, Mozilla Firefox.
  • Console software: seperti GNU bash, FFMPEG.
  • Firmware: software yang berfungsi di dalam perangkat, seperti firmware-nya VGA, firmware-nya WLAN device.
  • Driver: software yang berfungsi di dalam OS tapi bukan di dalam perangkat, seperti driver-nya VGA, driver-nya WLAN device.
  • Library: ini juga software, dia menyediakan fungsi-fungsi (atau “mantra-mantra”) bagi software lain. Contohnya GNU C Library dan Qt Framework.
  • BIOS: ini juga software, dia berfungsi di dalam motherboard, dan dia termasuk golongan firmware.
  • OS: sistem operasi itu juga software, tepatnya kesatuan dari banyak software yang saling terintegrasi & berkomunikasi sama satu sama lain, tanpa OS sebuah komputer tidak berfungsi. Contohnya GNU atau Windows.

2. Jenis-Jenis Komputer
Jangan Anda kira komputer (hardware) hanyalah berjenis PC. Jenis komputer (diistilahkan arsitektur hardware) itu sangat banyak. PC/laptop yang Anda gunakan adalah jenis x86, di luar itu ada ARM, ada SPARC, PowerPC, MIPS, Itanium, dan lain-lain. Yang perlu Anda pahami ialah sebuah software yang sama untuk satu arsitektur tidak berjalan di arsitektur lain. Software harus di-compile ulang dari source code-nya secara khusus untuk suatu arsitektur agar terbentuk binary code (versi siap pakai) untuk arsitektur tersebut. Contohnya sebagai berikut:

  • Anggap Microsoft Office hanya dirilis untuk x86. Apabila pengguna mau membuat versi ARM-nya, maka source code Microsoft Office harus di-recompile khusus untuk ARM, akhirnya terbentuklah Microsoft Office versi ARM.
  • Anggap Windows hanya dirilis untuk x86. Apabila pengguna mau membuat versi PowerPC-nya, maka source code Windows harus di-recompile khusus untuk PowerPC, akhirnya terbentuklah Windows versi PowerPC.

3. Dua Wujud Software
Setiap software di muka bumi ini memiliki 2 wujud:

  • Wujud primer, dinamakan source code.
  • Wujud sekunder, dinamakan binary code.

Terkadang, binary code disebut juga “object code” atau “runnable code” atau di Windows disebut “executable”.

4. Apa Itu Source Code
Source code adalah teks tertulis kode-kode bahasa manusia (tampak luarnya Bahasa Inggris dicampur matematika) dalam aturan tertentu yang menentukan bagaimana komputer berperilaku apabila menjalankannya. Source code ditulis dengan ilmu yang disebut “pemrograman” dalam aturan tertentu yang disebut “bahasa pemrograman”. Source code bisa ditulis di atas kertas atau disimpan dalam bentuk data plain text. Source code tidak dapat dijalankan oleh komputer. Contoh format source code digital .txt, .cpp, .py, .sh, .html.

5. Apa Itu Binary Code
Binary code adalah data digital yang berisi kode-kode bahasa mesin yaitu angka-angka 0 dan 1 yang dapat dijalankan langsung oleh komputer untuk melakukan tugas tertentu. Binary code diperoleh dari menerjemahkan source code dengan teknik bernama “compiling” dengan perangkat bernama “compiler”; atau teknik “interpreting” dengan perangkat “interpreter”. Contoh format binary code .exe, .deb, .rpm, .dmg.

6. Sifat Wujud Software
Dua wujud software tersebut memiliki sifat-sifat yang pasti dan universal, berlaku untuk semuanya tanpa kecuali:

  • Source code bisa diubah menjadi binary code, tetapi tidak sebaliknya.
  • Software yang berjalan di komputer itu pasti berwujud binary code.
  • Komputer hanya mampu menjalankan software dalam bentuk binary code.
  • Komputer tidak bisa menjalankan software dalam bentuk source code.
  • Yang disebut software ialah source code.
  • Tanpa source code tidak ada software.

Contoh: jika sekarang Anda sedang menjalankan Mozilla Firefox, maka program ini pasti sudah berbentuk binary, karena komputer Anda bisa menjalankannya. Adapun source code program ini harus Anda peroleh sendiri misalnya dari situs resminya.

7. Sifat Perubahan Wujud Software
Selain sifat dari masing-masing wujud, sifat dari perubahannya ada sendiri, dan semua orang berhak tahu:

  • Source code bisa diubah menjadi binary code untuk arsitektur hardware tertentu.
  • Binary code yang diproduksi untuk satu arsitektur hardware, tidak bisa disesuaikan berjalan untuk arsitektur hardware lain.
  • Source code bisa diubah menjadi binary code untuk sistem operasi tertentu.
  • Binary code yang diproduksi untuk satu sistem operasi, tidak bisa disesuaikan berjalan untuk sistem operasi lain.

Dengan kata lain ada 2 sifat utama, yakni setiap software itu bisa di-reproduksi oleh semua orang (tidak hanya pengembangnya) untuk semua jenis komputer tanpa kecuali dan untuk semua jenis OS tanpa kecuali pula. Syarat mutlaknya source code harus dipegang pengguna.

8. Pahami Compiling dan Porting
Tindakan mengubah wujud software diistilahkan compiling, dan terkadang diistilahkan porting. Kadang keduanya diistilahkan juga building. Kurang lebih maknanya sama = mengubah. Yang perlu Anda pahami ialah hak Anda atas compiling & porting tidak boleh hilang. Adapun pengertiannya:

  • Compiling: mengubah source code menjadi binary code untuk OS tertentu. Jadi seharusnya Microsoft Office misalnya bisa dibuat versi GNU/Linux dengan cara compiling source code-nya oleh pengguna dan hasilnya Microsoft Office versi GNU/Linux.
  • Porting: mengubah source code menjadi binary code untuk jenis komputer tertentu. Jadi seharusnya Windows misalnya bisa dibuat versi PowerPC, SPARC, MIPS, ARM, dll. oleh pengguna dan hasilnya Windows yang bisa berfungsi pada komputer-komputer tersebut.
  • Building: istilah ini sering dipakai untuk menyebut keduanya. Sama saja.

9. Pahami Hak Pengguna Software
Perhatikan betul-betul bagian sifat wujud software di atas. Poin yang paling penting adalah “yang disebut software ialah source code, tanpa source code tidak ada software”.

  • Bila pengguna memegang source code, maka dia bisa menjalankan software di jenis komputer apa pun, di OS apa pun, tanpa kecuali dan tanpa batas.
  • Maka tidak ada VGA/WLAN/printer/scanner yang tidak bisa difungsikan di OS apa pun atau dengan jenis komputer apa pun.
  • Pengguna bisa mengubah, mempelajari, memperbaiki, software sesuai kehendak untuk keperluan apa pun pada OS apa pun pada komputer apa pun.

10. Hak Memeriksa Cacat Barang
Jika dianggap semua distribusi software adalah jual-beli, maka setiap pembeli berhak memeriksa cacat atau aib pada software yang dijual. Jika pembeli sudah telanjur membeli, dia harus berhak menghilangkan atau memperbaiki cacat itu. Ini mustahil dilakukan tanpa source code. Karena source code itulah software dan di dalam source code itulah tertulis seluruh cara kerjanya. Software yang sudah berbentuk binary tidak dapat diketahui dan tidak dapat diperbaiki cacatnya.

11. Hak Makhluk Sosial
Pengguna adalah manusia dan semuanya makhluk sosial. Maka antara pengguna pasti terjalin hubungan saling meminta tolong. Itulah sosial. Maka software seharusnya membebaskan pengguna menyalin dan menggandakan software, dalam bentuk source code maupun binary code, salinan maupun termodifikasi, software itu sendiri maupun perbaikannya, dengan harga berapa pun. Jika pengembang memblokir atau bahkan mengkriminalkan hak ini, pengembang itu tidak adil terhadap pengguna.

Penting: jika source code diblokir oleh pengembang, otomatis hak makhluk sosial ini hilang.

12. Kemampuan Pengguna
Pengguna yang tidak tahu ilmu software tetap berhak atas source code. Karena dengan hak ini mereka masih bisa minta orang yang berilmu untuk memeriksakannya. Jika pengembang sengaja memblokir atau bahkan mengkriminalkan hak ini, pengembang itu tidak adil terhadap pengguna.

13. Kasus Nyata
Sekarang terapkan wujud, sifat-sifat, dan hak-hak pengguna di atas kepada kasus nyata: Petunjuk

  • Petunjuk 1: bila ada source code, maka compiling bisa dilakukan.
  • Petunjuk 2: bila ada source code, maka porting bisa dilakukan.
  • Petunjuk 3: bila ada source code, maka perbaikan bisa dilakukan.
  • Petunjuk 4: bila ada source code, maka pengembangan bisa dilakukan.

Kasus

  • Microsoft Office: kenapa dia tidak tersedia untuk GNU/Linux? Jawaban: karena source code-nya tidak diberikan ke pengguna. Maka hak compiling pengguna hilang.
  • Microsoft Office: kenapa dia hanya tersedia untuk PC? Jawaban: karena source code-nya tidak diberikan ke pengguna. Jika source code ada, maka pengguna bisa membuat versi hardware lain (ARM, PowerPC, SPARC, dll.) dengan cara mem-porting source code tersebut. Maka hak porting pengguna hilang.
  • Windows semua versi: kenapa dia terbukti mengandung malware? Jawaban: karena source code-nya tidak diberikan ke pengguna maka aibnya/cacatnya tersembunyi, dan semua pengguna tidak bisa memperbaiki cacat tersebut.
  • Windows semua versi: kenapa updates hanya disediakan oleh Microsoft? Jawaban: karena source code-nya tidak diberikan ke pengguna. Cacat yang ada pada Windows hanya diketahui oleh pengembangnya sendirian, dan pengguna tidak boleh+tidak bisa memperbaiki.
  • Windows XP: kenapa dia mati dan tidak dikembangkan lagi? Jawaban: karena source code-nya tidak diberikan ke pengguna. Jika source code ada, maka pengguna bisa melanjutkan pengembangan XP. Maka hak pengembangan pengguna hilang.
  • Photoshop dan CorelDRAW dan Flash dan Premiere dan AutoCAD: kenapa mereka tidak tersedia untuk GNU/Linux? Jawaban: karena source code-nya tidak diberikan ke pengguna. Maka hak porting pengguna hilang.
  • Windows dan Photoshop dan proprietary software lain: kenapa ketika ditemukan celah keamanan dan kerusakan internal, semua pengguna tidak bisa memperbaikinya? Jawaban: karena source code-nya tidak diberikan ke pengguna. Jika source code ada, pengguna bisa melakukan perbaikan dan mengirimkan perbaikan kepada orang lain.

Microsoft Windows itu adalah malware. Baca https://gnu.org/proprietary/malware-microsoft.html.

14. Malware dan Virus
Untuk lebih memahami ini, kita perlu melihat dunia malware & virus. Segala jenis malware termasuk virus, trojan, spyware, dan ransomware tidak memberikan source code-nya kepada pengguna. Semua virus ialah software berwujud binary. Karena tidak ada software bisa dijalankan oleh komputer kecuali dia berbentuk binary. Yang perlu Anda pahami di sini adalah kerugian pengguna oleh malware selalu diawali dari pemblokiran source code. Kasus

  • Semua jenis virus yang menyerang Windows pasti berwujud binary code.
  • Semua ransomware yang mengunci data pengguna pasti berwujud binary code & tidak memberikan source code dirinya sendiri ke pengguna.
  • Demikian pula semua malware lain seperti trojan, ransomware, worm, spyware, adware, drm, dan jail.

Dampak

  • Sengaja memblokir source code dari pengguna adalah cara terbaik mencelakakan pengguna.
  • Sengaja memblokir source code adalah cara menutupi aib/cacat barang secara mutlak.
  • Tidak ada source code, tidak bisa diketahui aib/cacatnya.
  • Tidak ada source code, tidak bisa dipelajari cara kerjanya, tidak bisa diubah sifatnya, tidak bisa diperbaiki, dan tidak bisa ditolak perilakunya.

Maka curigai semua software yang sengaja tidak memberikan pengguna source code-nya. Jangan taruh kepercayaan sedikit pun. Ini termasuk Windows dan Microsoft Office.

Kesimpulan

  • Dua wujud software itu ialah source code dan binary code.
  • Binary code dihasilkan dari source code.
  • Wujud software terpenting adalah source code, dan ini fatal bagi pengguna apabila diblokir oleh pengembang.
  • Dengan source code pengguna memegang seluruh haknya yang fundamental yaitu hak menjalankan, mempelajari, mengubah (termasuk compiling dan porting), mendistribusikan; tanpa source code pengguna kehilangan keempat haknya tersebut.
  • Memblokir hak pengguna atas source code adalah perilaku tidak adil yang merugikan pengguna secara fatal.
  • Memblokir source code = antisosial, menghapus hak sosial pengguna.
  • Memblokir source code = menghilangkan terlalu banyak hak-hak pengguna. Hilang hak compiling, hak porting, hak memeriksa cacat, hak memperbaiki, dan hilang hak jual-beli.
  • Jika source code diblokir, maka hak-hak fundamental pengguna beralih penuh ke tangan pengembang.

Ringkasan Hak-Hak Pengguna
Apabila pengguna berhak atas source code, hak-hak pengguna sangat banyak sebagai berikut:

  • compiling untuk OS apa pun
  • interpreting untuk OS apa pun dengan interpreter apa pun
  • porting untuk arsitektur hardware apa pun
  • bugfixing bila software punya cacat
  • patching atas cacat yang ditemukan
  • mengubah cara kerja software sesuai keinginan
  • menjalankan software tanpa batas waktu & tanpa batas fungsi
  • mendistribusikan binary code (hasil compiling/porting) ke orang lain
  • mendistribusikan source code (asli/termodifikasi) ke orang lain
  • jual-beli software dalam bentuk binary maupun source
  • meminta orang lain mengerjakan aktivitas di atas

Apabila pengguna diblokir haknya atas source code, semua hak-hak itu hilang.

Sumber : https://restava.wordpress.com/2017/04/01/dua-wujud-software/