ad300x250

News Update :

Mobile Ads

Blogger News

Yahoo Messenger News

Dono Ilmu News

Tampilkan postingan dengan label Open Source. Tampilkan semua postingan
Tampilkan postingan dengan label Open Source. Tampilkan semua postingan

Mengenal Jenis lisensi lain (Open Source)

Sabtu, 05 Oktober 2013 13.42

Jenis lisensi lain (Open Source) adalah jenis lisensi yang diberikan kepada software- software yang bersifat Open Source atau menggunakan hak cipta publik yang dikenal sebagai GNU Public License (GPL) yang bisa anda baca secara lengkap di http://www.gnu.org.

Adapun prinsip dasar GPL berbeda dengan hak cipta. GPL pada dasarnya berusaha memberikan kebebasan seluas-luasnya bagi pencipta software untuk mengembangkan kreasi perangkatnya dan menyebarkannya secara bebas kemasyarakat umum (publik).

Tentunya dalam penggunaan GPL ini kita masih terikat dengan norma, nilai dan etika. Misalnya sangatlah tidak etis apabila kita mengambil software GPL kemudian mengemasnya menjadi sebuah software komersial dan mengklaim bahwa software tersebut adalah hasil karya atau ciptaannya. Sebagai contoh, dengan menggunakan lisensi GPL sistem operasi Linux yang sangat banyak beredar dimasyarakat.

Linux dapat digunakan secara gratis diseluruh dunia, bahkan Listing program-nya (Source Code) dalam Bahasa C dari sistem operasi Linux tersebut secara terbuka dan dapat diperoleh secara gratis di internet tanpa dikategorikan membajak software dan melanggar hak cipta (HKI).

Memahami konsep "Free Software"

Jumat, 04 Oktober 2013 10.44

Memahami konsep Free Software ; Anda bisa menyamakannya dengan arti kebebasan mengemukakan pendapat dan gagasan anda (free speech). Namun jangan samakan dengan minuman dan makanan geratis.

Free Software ; adalah tentang kebebasan para pengguna untuk menjalankan, menyalin, mendistribusikan, mempelajari, mengubah dan meningkatkan kinerja perangkat lunak. Hal ini berarti bahwa pengguna program memiliki empat kebebasan yang mendasar: 
  • Kebebasan untuk menjalankan program, untuk tujuan apa saja.
  • Kebebasan untuk mempelajari bagaimana program itu bekerja, dan mengubahnya sesuai keinginan anda. Akses ke kode sumber program merupakan suatu prasyarat untuk poin ini.
  • Kebebasan untuk mengedarkan salinan dari perangkat lunak, sehingga Anda dapat membantu sesama
  • Kebebasan untuk memperbaiki program, dan mempublikasikan versi perbaikan Anda ke khalayak umum sehingga orang lain dapat menikmati keuntungannya Akses pada kode program merupakan suatu prasyarat juga.
 Free Software ; Lebih mementingkan  pada kebebasan, bukan harga. Free Software dan open source software mengandung pengertian yang hampir sama.

Contoh Source Code Sederhana Java JFrame

Kamis, 03 Oktober 2013 13.19


Design

package javaapplication4;
import javax.swing.JFrame;
public class NewJFrame extends javax.swing.JFrame {
    public NewJFrame() {
        initComponents();
    }
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();
        jLabel6 = new javax.swing.JLabel();
        jTextField1 = new javax.swing.JTextField();
        jTextField2 = new javax.swing.JTextField();
        jTextField3 = new javax.swing.JTextField();
        jTextField4 = new javax.swing.JTextField();
        jComboBox1 = new javax.swing.JComboBox();
        jTextField5 = new javax.swing.JTextField();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        jLabel7 = new javax.swing.JLabel();
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setBackground(javax.swing.UIManager.getDefaults().getColor("InternalFrame.borderShadow"));
        setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        setLocationByPlatform(true);
        setName("Biaya Inap"); // NOI18N
        jLabel1.setText("No.KTP");
        jLabel2.setText("Nama");
        jLabel3.setText("Tipe Kamar");
        jLabel4.setText("Harga/Hari");
        jLabel5.setText("Lama Inap");
        jButton1.setText("Hitung");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        jLabel6.setText("Total Bayar");
        jTextField3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField3ActionPerformed(evt);
            }
        });
        jTextField4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField4ActionPerformed(evt);
            }
        });
        jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Tipe :", "A", "B", "C" }));
        jComboBox1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jComboBox1ActionPerformed(evt);
            }
        });
        jTextField5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField5ActionPerformed(evt);
            }
        });
        jButton2.setText("Batal");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });
        jButton3.setText("Keluar");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });
        jLabel7.setFont(new java.awt.Font("Comic Sans MS", 1, 17));
        jLabel7.setText("Biaya Inap Hotel");
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jLabel4)
                                    .addComponent(jLabel5)
                                    .addComponent(jLabel3)
                                    .addComponent(jLabel1)
                                    .addComponent(jLabel2)
                                    .addComponent(jLabel6))
                                .addGap(26, 26, 26)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jTextField5, javax.swing.GroupLayout.DEFAULT_SIZE, 124, Short.MAX_VALUE)
                                    .addComponent(jTextField2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 124, Short.MAX_VALUE)
                                    .addComponent(jTextField4, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 124, Short.MAX_VALUE)
                                    .addComponent(jTextField3, javax.swing.GroupLayout.DEFAULT_SIZE, 124, Short.MAX_VALUE)
                                    .addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 124, Short.MAX_VALUE)
                                    .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jButton1)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jButton3, javax.swing.GroupLayout.DEFAULT_SIZE, 65, Short.MAX_VALUE)))
                        .addGap(23, 23, 23))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addComponent(jLabel7)
                        .addGap(45, 45, 45))))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(12, Short.MAX_VALUE)
                .addComponent(jLabel7)
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel4)
                    .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel5)
                    .addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton1)
                    .addComponent(jButton2)
                    .addComponent(jButton3))
                .addGap(7, 7, 7)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel6)
                    .addComponent(jTextField5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(19, 19, 19))
        );
        pack();
    }// </editor-fold>
    private void jTextField4ActionPerformed(java.awt.event.ActionEvent evt) {                                           
   
    }                                          
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        String HrgHari,Lanap,Hasil;
        int HrgH,Lamnap,Hasil1;
        HrgHari= jTextField3.getText();
        Lanap=jTextField4.getText();
        HrgH=Integer.parseInt(HrgHari);
        Lamnap=Integer.parseInt(Lanap);
        Hasil1=HrgH*Lamnap;
        Hasil=Integer.toString(Hasil1);
        jTextField5.setText(Hasil);
    }                                       
    private void jTextField5ActionPerformed(java.awt.event.ActionEvent evt) {                                           
   
    }                                          
    private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
        if (jComboBox1.getSelectedItem().equals("A")){
            jTextField3.setText("1500000");
        }
        if (jComboBox1.getSelectedItem().equals("B")){
            jTextField3.setText("2000000");
        }
            if (jComboBox1.getSelectedItem().equals("C")){
            jTextField3.setText("2500000");
        }
       
    }                                         
    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        System.exit(0);
    }                                       
    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        jTextField1.setText("");
        jTextField2.setText("");
        jTextField3.setText("");
        jTextField4.setText("");
        jTextField5.setText("");
    }                                       
    private void jTextField3ActionPerformed(java.awt.event.ActionEvent evt) {                                            
   
    }                                          
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NewJFrame().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JComboBox jComboBox1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;
    private javax.swing.JTextField jTextField3;
    private javax.swing.JTextField jTextField4;
    private javax.swing.JTextField jTextField5;
    // End of variables declaration

Pengertian Compiler

12.55

Komplier memerlukan waktu untuk membuat suatu program dapat di eksekusi oleh computer, program yang dieksekusi oleh compiler adalah dapat berjalan lebih cepat disbanding program yang diperoduksi oleh interpreter, disamping itu juga bersifat independen. Contoh program yang menggunakan compiler adalah Visual Basic, Visual Delvi, dan Pascal.
 
Pengertian Compiler
Compiler adalah suatu program yang menerjemahkan bahasa program ( source code) kedalam bahasa objek (obyek code). Compiler menggabungkan keseluruhan bahasa program, mengumpulkannya dan kemudian menyusunnya kembali.

Tahap Kompilasi:
  1. Pertama source code (program yang ditulis) dibaca kememori computer).
  2. Source code tersebut diubah menjadi objek code (bahasa Assembly).
  3. Objek code di hubungkan dengan liberary yang dibutuhkan untuk membentuk file yang bisa dieksekusi.

Pengertian GNU, dan sejarah-nya

11.44

GNU dilafalkan dengan “genyu”. Varian dari sistem operasi GNU, yang menggunakan kernel Linux, dewasa ini telah digunakan secara meluas. 

Ada salah satu fitur atau kemampuan yang sangat menarik dari GNU/Linux yang belum ada pada sistem operasi populer lainnya, yaitu menjalankan sistem operasi dan aplikasi lengkap tanpa menginstalnya di hard disk. Dengan cara ini dengan mudah kita dapat menggunakan GNU/Linux di komputer orang lain karena tak perlu menginstalnya (tak perlu mengutak-atik hard disk dan partisinya).

GNU/Linux adalah sebuah sistem operasi yang diciptakan oleh Linus Benedict Torvalds seorang mahasiswa Universitas Helsinki Finlandia di tahun 1991.

Sedangkan Proyek GNU ini diluncurkan pada tahun 1984 untuk mengembangkan sebuah sistem operasi lengkap mirip U N I X berbasis perangkat lunak bebas: yaitu sistem GNU (GNU merupakan akronim berulang dari “GNU’s Not Unix”; 
Walau pun sistem ini sering dirujuk sebagai “Linux”, sebetulnya lebih tepat jika disebut sistem GNU/Linux.


  Sejarah sistem operasi Linux berkaitan erat dengan proyek GNU,
proyek program bebas freeware terkenal diketuai oleh Richard Stallman. Proyek GNU diawali pada tahun 1983 untuk membuat sistem operasi seperti Unix lengkap — kompiler, utiliti aplikasi, utiliti pembuatan dan seterusnya — diciptakan sepenuhnya dengan perangkat lunak bebas. Pada tahun 1991, pada saat versi pertama kerangka Linux ditulis, proyek GNU telah menghasilkan hampir semua komponen sistem ini — kecuali kernel. Torvalds dan pembuat kernel seperti Linux menyesuaikan kernel mereka supaya dapat berfungsi dengan komponen GNU, dan seterusnya mengeluarkan Sistem operasi yang cukup berfungsi. Oleh karena itu, Linux melengkapi ruang terakhir dalam rancangan GNU.
Beberapa distro Linux Live CD yang banyak dipakai antara lain Knoppix, SUSE Live Eval, Mandrake Move, Gentoo Live CD, Slackware Live CD dll. Meskipun bentuknya Live CD, tetapi distro tersebut memiliki fungsi yang sama dengan distro-distro terinstal. Di dalam CD tersebut, sudah terdapat paket-paket umum yang biasa kita jumpai di distro Linux besar, seperti: OpenOffice, KOffice, XMMS, GIMP, Konqueror, dan sebagainya. Namun ada beberapa pengecualian, yaitu beberapa paket yang memang sangat besar dan kiranya tidaklah umum digunakan oleh home user, mengingat kapasitas CD yang terbatas, yaitu sekitar 700MB.
Kepraktisan itu ada batasnya karena selama operasionalnya, Linux Live CD tidak mempunyai sebuah tempat khusus di dalam harddisk. Linux Live CD hanya memiliki tempat di memori utama (RAM), sehingga setelah di-restart, semua isi RAM akan dikosongkan dan Linux Live CD harus melakukan inisialisasi ulang untuk mendeteksi semua perangkat keras yang dimiliki oleh user. Selain itu, kinerja dari Linux Live CD sendiri juga tidak bisa maksimal, karena kecepatan komputer untuk mengakses CD-ROM jauh lebih lambat dibandingkan dengan kecepatan mengakses harddisk.
Dalam ilmu komputer, kernel adalah suatu perangkat lunak yang menjadi bagian utama dari sebuah sistem operasi. Tugasnya melayani bermacam program aplikasi untuk mengakses perangkat keras komputer secara aman. Istilah Linux sebetulnya hanya mengacu pada kernel dari suatu sistem operasi. 
Kernel adalah Jembatan antara hardware dan aplikasi-aplikasi yg menterjemahkan bahasa software sehingga mampu dimengerti dan diproses oleh hardware sesuai dengan permintaan. Karena akses terhadap perangkat keras terbatas, sedangkan ada lebih dari satu program yang harus dilayani dalam waktu yang bersamaan, maka kernel juga bertugas untuk mengatur kapan dan berapa lama suatu program dapat menggunakan satu bagian perangkat keras tersebut. Hal tersebut dinamakan sebagai multiplexing. Akses kepada perangkat keras secara langsung merupakan masalah yang kompleks, oleh karena itu kernel biasanya mengimplementasikan sekumpulan abstraksi hardware. Abstraksi-abstraksi tersebut merupakan sebuah cara untuk menyembunyikan kompleksitas, dan memungkinkan akses kepada perangkat keras menjadi mudah dan seragam. Sehingga abstraksi pada akhirnya memudahkan pekerjaan programer. Sebuah kernel sistem operasi tidak harus ada dan dibutuhkan untuk menjalankan sebuah komputer. Program dapat langsung dijalankan secara langsung di dalam sebuah mesin (contohnya adalah CMOS Setup) sehingga para pembuat program tersebut membuat program tanpa adanya dukungan dari sistem operasi atau hardware abstraction. Cara kerja seperti ini, adalah cara kerja yang digunakan pada zaman awal-awal dikembangkannya komputer (pada sekitar tahun 1950). Kerugian dari diterapkannya metode ini adalah pengguna harus melakukan reset ulang komputer tersebut dan memuatkan program lainnya untuk berpindah program, dari satu program ke program lainnya. Selanjutnya, para pembuat program tersebut membuat beberapa komponen program yang sengaja ditinggalkan di dalam komputer, seperti halnya loader atau debugger, atau dimuat dari dalam ROM (Read-Only Memory). Seiring dengan perkembangan zaman komputer yang mengalami akselerasi yang signifikan, metode ini selanjutnya membentuk apa yang disebut dengan kernel sistem operasi.
Selanjutnya, para arsitek sistem operasi mengembangkan kernel sistem operasi yang pada akhirnya terbagi menjadi empat bagian yang secara desain berbeda, sebagai berikut:
  • Monolithic Kernel. Monolithic kernel mengintegrasikan banyak fungsi di dalam kernel dan menyediakan lapisan abstraksi perangkat keras secara penuh terhadap perangkat keras yang berada di bawah sistem operasi.
  • Microkernel. Microkernel menyediakan sedikit saja dari abstraksi perangkat keras dan menggunakan aplikasi yang berjalan di atasnya—yang disebut dengan server—untuk melakukan beberapa fungsionalitas lainnya.
  • Hybrid kernel. Hybrid kernel adalah pendekatan desain microkernel yang dimodifikasi. Pada hybrid kernel, terdapat beberapa tambahan kode di dalam ruangan kernel untuk meningkatkan performanya.
  • Exokernel. Exokernel menyediakan hardware abstraction secara minimal, sehingga program dapat mengakses hardware secara langsung. Dalam pendekatan desain exokernel, library yang dimiliki oleh sistem operasi dapat melakukan abstraksi yang mirip dengan abstraksi yang dilakukan dalam desain monolithic kernel.
open source adalah sistem pengembangan yang tidak dikoordinasi oleh suatu orang/lembaga pusat, tetapi oleh para pelaku yang bekerja sama dengan memanfaatkan kode sumber (source-code) yang tersebar dan tersedia bebas (biasanya menggunakan fasilitas komunikasi internet). Pola pengembangan ini mengambil model ala bazaar, sehingga pola Open Source ini memiliki ciri bagi komunitasnya yaitu adanya dorongan yang bersumber dari budaya memberi, yang artinya ketika suatu komunitas menggunakan sebuah program Open Source dan telah menerima sebuah manfaat kemudian akan termotivasi untuk menimbulkan sebuah pertanyaan apa yang bisa pengguna berikan balik kepada orang banyak. Pengembangan Linux bersifat open source artinya source code dari aplikasi pembentuk sistem dan aplikasi lainnya diberikan secara terbuka sehingga setiap orang dapat melakukan modifikasi atau kustomisasi sesuai dengan kebutuhan masing-masing.
Pola Open Source lahir karena kebebasan berkarya, tanpa intervensi berpikir dan mengungkapkan apa yang diinginkan dengan menggunakan pengetahuan dan produk yang cocok. Kebebasan menjadi pertimbangan utama ketika dilepas ke publik. Komunitas yang lain mendapat kebebasan untuk belajar, mengutak-ngatik, merevisi ulang, membenarkan ataupun bahkan menyalahkan, tetapi kebebasan ini juga datang bersama dengan tanggung jawab, bukan bebas tanpa tanggung jawab. Pada intinya konsep sumber terbuka adalah membuka “kode sumber” dari sebuah perangkat lunak. 
 Konsep ini terasa aneh pada awalnya dikarenakan kode sumber merupakan kunci dari sebuah perangkat lunak. Dengan diketahui logika yang ada di kode sumber, maka orang lain semestinya dapat membuat perangkat lunak yang sama fungsinya. Sumber terbuka hanya sebatas itu. Artinya, dia tidak harus gratis. Definisi sumber terbuka yang asli adalah seperti tertuang dalam OSD (Open Source Definition)/Definisi sumber terbuka. Pergerakan perangkat lunak bebas dan sumber terbuka saat ini membagi pergerakannya dengan pandangan dan tujuan yang berbeda. Sumber terbuka adalah pengembangan secara metodelogi, perangkat lunak tidak bebas adalah solusi suboptimal. Bagi pergerakan perangkat lunak bebas, perangkat lunak tidak bebas adalah masalah sosial dan perangkat lunak bebas adalah solusi.

Mengenal Open Source, Apa Itu Open Source ?

11.12

Sebagai tenaga yang bergerak di bidang TI, tentunya kita tidak boleh hanya menjadi End User (pemakai) yang hanya mampu memanfaatkan hasil kerja orang lain. Sebab dengan demikian sampai selama – lamanya bidang TI kita akan tertinggal dari negara – negara lain.
Jika diartikan menurut arti kata, – Open Source- dalam bahasa Indonesia berarti Kode Terbuka. Kode yang dimaksud disini bukanlah kode morse, ataupun kode barang, tetapi yang kode yang dimaksud disini adalah Kode Program. Kode Program yang dimaksud adalah perintah – perintah yang diketikkan berdasarkan logika yang benar.
Suatu program dengan lisensi Open Source berarti program tersebut membuka Kode Programnya bagi siapa saja yang ingin mempelajarinya, caranya dengan menyertakan kode program bersama dengan distribusi paket program yang sudah jadi (hasil kompilasi). Dengan penyertaan kode program tersebut, pembeli atau pengguna program dapat membedah program tersebut, melakukan modifikasi sesuai dengan kebutuhannya, bahkan memperbaiki -Bug- atau kesalahan logika dalam program tersebut. Contoh program yang Open Source adalah Linux. Dalam setiap distribusinya vendor Linux juga menyertakan Kode Program Linux.

Software Open Source tidak selalu tersedia secara gratis!!!. Tetap ada biaya yang dikeluarkan untuk membeli program tersebut. Contoh, misalnya Sistem Operasi RedHat Linux, program Linuxnya tetap dibeli dengan harga yang murah.

Lalu, apa bedanya Open Source dengan -Closed Source (Kode tertutup), seperti Windows "microsoft"

Pada program yang -Closed Source-, paket program tidak dapat didistribusikan lagi selain oleh pembuat / vendor program tersebut. Jika ada distribusi yang bukan oleh vendor program tersebut, maka itu dianggap sebagai pembajakan software. Atau dengan kata lain program yang -Closed Source- tidak dapat didistribusikan secara bebas, kecuali oleh vendor program tersebut.

Sedangkan software yang Open Source, dapat didistribusikan secara bebas oleh siapapun. Paket program juga dapat digandakan secara bebas.
Tujuan Open Source sebenarnya adalah ingin menghilangkan ketergantungan terhadap vendor program, dimana vendor bisa saja bertindak seenaknya. Dalam program yang -Closed Source- vendor bisa saja menyisipkan kode – kode yang mungkin dapat membahayakan pengguna program, dan menghilangkan privasi pengguna.
Selain itu, Open Source juga bertujuan menyediakan software yang mudah dijangkau oleh masyarakat luas, dan menghindari pengerukan keuntungan yang berlebihan oleh vendor.

Bagi kalangan IT khususnya di Indonesia, dengan adanya software yang Open Source dapat mendorong semangat untuk mengembangkan program bagi tenaga – tenaga TI di Indonesia. Sebab dengan mempelajari kode program, dapat dianalisa dimana kelemahan program, apa sesungguhnya proses yang berlangsung dalam kerja program, dan sekaligus mencari solusi terhadap kelemahan program yang ditemui. Atau yang lebih extreem adalah memodifikasi program sedemikian rupa agar lebih ergonomis / pas digunakan sesuai dengan keperluan.

Hal inilah yang masih belum disadari oleh kebanyakan Pengajar maupun mahasiswa bidang Teknologi Informasi di Indonesia. Seorang S.Kom bukan dipersiapkan untuk menjadi pengguna, melainkan dipersiapkan untuk menjadi Analis Sistem yang dapat merancang baik software maupun hardware.

Dengan menggunakan program yang Open Source bukankah telah terbuka jalan yang sangat lebar untuk menuju ke arah tersebut ?????

Dengan mempelajari kode program yang Open Source kita dapat menganalisa teknik yang digunakan dalam pembuatan software tersebut, yang nantinya pengetahuan tersebut dapat dimanfaatkan untuk merancang aplikasi yang berguna ?????

Harus diakui bahwa jika kita bekerja sebagai Software Developer yang Open Source, akan mengurangi jumlah pendapatan yang akan diterima jika dibandingkan dengan Software Developer yang -Closed Source-, sebab software yang kita buat dapat di distribusikan secara bebas oleh orang lain tanpa membayar lisensi kepada kita.
Namun, ada yang jauh lebih berarti dibandingkan dengan uang tersebut. Yaitu Perbuatan Amal. Dengan mengeluarkan program yang Open Source, dimana pengguna dapat melihat, mempelajari, dan memodifikasi Kode Program, dapat dibayangkan berapa banyak orang yang memperoleh pengetahuan dari program kita, berapa banyak mahasiswa yang dapat meningkatkan kemampuannya dengan mempelajari software yang kita buat. Belum lagi umpan balik yang diberikan oleh pengguna
yang mengetahui kelemahan program kita dan memberikan solusinya, yang dapat meningkatkan kemampuan dan pengetahuan kita.

Lagipula, vendor seperti RedHat yang selama ini bergerak sebagai Software Developer yang Open Source tidak menjadi bangkrut malahan semakin maju. Mengapa ????? Sebab, pengguna yang awam dengan sistem komputer tetap akan menghubungi vendor program jika terjadi masalah dengan program. Karena mereka menganggap bahwa vendor tentu lebih memahami programnya dibandingkan dengan teknisi yang lain.
Namun, pilihan untuk mengikuti Open Source atau tidak tetap bergantung pada diri kita masing – masing. Seandainya anda berkeinginan menjadi Software Developer yang kaya raya seperti Bill Gates, mungkin anda memilih menjadi Software Developer yang -Closed Source-.
Sebaliknya, jika anda adalah seorang yang senang berbagi ilmu dan pengalaman tentunya anda lebih senang menjadi Software Developer yang Open Source, namun itu tentunya kemungkinan kecil dapat menjadikan anda sekaya Bill Gates. Well, pilihan tetap berada pada diri kita masing – masing.

Friendster News

 

© Copyright Area L I N U X 2010 -2011 | Design by Herdiansyah Hamzah | Published by Borneo Templates | Powered by Blogger.com.