Sabtu, 31 Maret 2012

Open Source


Open source software adalah istilah yang digunakan untuk software yang membuka /membebaskan source codenya untuk dilihat oleh orang lain dan membiarkan orang lain mengetahui cara kerja software tersebut dan sekaligus memperbaiki kelemahan-kelemahan yang ada pada software tersebut. Salah satu keunggulan bahwa Open source software dapat diperoleh dan digunakan secara gratis tanpa perlu membayar lisensi. Saat ini sangat mudah mendapatkan open source software, keberadaan open source software ini sangat ditunjang oleh internet.

Keuntungan Open Source

Biasanya keuntungan yang dirasa pertama dari model Open Source adalah fakta bahwa ketersediaan Open Source diciptakan secara gratis atau dengan biaya yang rendah. Berikut ini beberapa keuntungan menggunakan Open Source :

1. Ketersediaan source code dan hak untuk memodifikasi

Hal ini menyebabkan perubahan dan improvisasi pada produk software, dan memunculkan kemungkinan untuk meletakkan code pada hardware baru, agar dapat diadaptasi pada situasi yang berubah-ubah, dan menjangkau pemahaman kerja sistem secara detail.

2. Hak untuk mendistribusikan modifikasi dan perbaikan pada code

Hak pendistribusian diakui dan merupakan hal yang umum, yang berpengaruh bagi sekumpulan developer untuk bekerja bersama dalam project software Open Source.

3. Hak untuk menggunakan software

Menjamin beberapa user yang membantu dalam menciptakan pasar untuk mendukung dan berlangganan software, jika software cukup berguna. Hal ini juga membantu dalam improvisasi kualitas dari produk dan improvisasi secara fungsi. Selain itu menyebabkan sejumlah user untuk mencoba produk dan mungkin menggunakannya secara reguler.

4. Legal

Penggunaan software Open Source di seluruh Indonesia akan menyebabkan tingkat pembajakan software di Indonesia menjadi turun drastis, dari 88% menjadi 0%.

5. Penyelamatan Devisa Negara

Dengan menggunakan solusi berbasis Open Source, maka dapat dilakukan penghematan devisa negara secara signifikan. Kemudian dana tersebut dapat dialokasikan ke usaha-usaha untuk kesejahteraan rakyat.

6. Keamanan Negara / Perusahaan

Software Open Source bebas dari bahaya ledakan yang disebabkan oleh software komputer proprietary / tertutup, karena bisa dilakukan audit terhadap kode programnya.

7. Keamanan Sistem

Pada software proprietary / tertutup, sangat sulit untuk dapat benar-benar yakin dengan keamanannya, karena kita tidak dapat mengetahui apa yang ada di dalamnya. Selain itu, sangat sulit untuk mendapatkan solusinya.

8. Penghematan

Perusahaan yang menggunakan Open Source untuk membuat aplikasi yang menunjang bisnisnya akan mengalami penghematan karena dana yang harusnya dialokasikan untuk proyek itu dapat ditekan dan dialihkan untuk pendanaan yang lain.

9. Mencegah Software Privacy yang Melanggar Hukum

Kerugian Open Source

Tiap software memiliki kekurangan, baik software dengan lisensi berbayar maupun software Open Source yang lisensinya gratis. Berikut beberapa kekurangan dari software Open Source :

1. Tidak ada garansi dari pengembangan

Biasanya terjadi ketika sebuah project dimulai tanpa dukungan yang kuat dari satu atau beberapa perusahaan, memunculkan celah awal ketika source code masih mentah dan pengembangan dasar masih dalam pembangunan.

2. Masalah yang berhubungan dengan intelektual property

Pada saat ini, beberapa negara menerima software dan algoritma yang dipatenkan. Hal ini sangat sulit untuk diketahui jika beberapa metode utama untuk menyelesaikan masalah software dipatenkan sehingga beberapa komunitas dapat dianggap bersalah dalam pelanggaran intelektual property.

3. Kesulitan dalam mengetahui status project

Tidak banyak iklan bagi software Open Source, biasanya beberapa project secara tidak langsung ditangani oleh perusahaan yang mampu berinvestasi dan melakukan marketing.

4. Support berbayar dan langka

Jika terdapat masalah pada software, misalnya ditemukan hole atau bug yang tidak anda pahami, maka langkah yang ditempuh adalah mencari penyelesaian masalah di forum-forum. Jika tidak diperoleh solusi, maka harus menganggarkan dana yang tidak sedikit untuk mendatangkan jasa konsultan dari pakar Open Source tersebut.

5. Versi Beta, Stabil dan Tidak Stabil

Kepastian stabil dan tidak stabil kadang menjadi keraguan pilihan para petinggi IT untuk memilih software Open Source. Bayangkan seandainya versi software yang unstable telah terinstal di server, lalu terjadi hal yang tidak diinginkan, dan patch-nya harus menunggu orang yang sukarela memperbaiki masalah yang terjadi.

6. Kerja komunitas bukan professional

Beberapa software dikembangkan oleh sebuah komunitas yang mempunya tujuan khusus, jaminan dan kepercayaan kualitas produk hasil perlu dicompare dengan produk komersil yang jauh lebih mumpuni dari segala sisi.

7.Limitasi modifikasi oleh orang-orang tertentu yang membuat atau memodifikasi sebelumnya.

8. Untuk beberapa platform, contohnya JAVA yang memiliki prinsip “write once, run anywhere”, akan tetapi ada beberapa hal dari JAVA yang tidak compatible dengan platform lainnya. Contohnya J2SE yang SWT – AWT bridgenya belum bisa dijalankan di platform Mac OS.

9. Open Source digunakan secara sharing, dapat menimbulkan resiko kurangnya diferensiasi antara satu software dengan yang lain, apabila kebetulan menggunakan beberapa Open Source yang sama.

Referensi :

http://foruminformatika.wordpress.com/2009/01/03/apa-kelemahan-open-source/

http://yudithtesalonika.blogspot.com/2011/06/kenapa-anda-dianjurkan-menggunakan.html

http://hendrolim.wordpress.com/2008/11/18/open-source-software-dan-internet/


Sabtu, 24 Maret 2012

PROFESI DI BIDANG IT

Profesi dibidang teknologi informasi (TI) tidak hanya programmer, network engineer, atau technical support, masih banyak profesi yang lain. Secara umum, pekerjaan di bidang teknologi informasi setidaknya terbagi dalam 4 kelompok sesuai bidangnya.

1. Kelompok pertama, adalah mereka yang bergelut di dunia perangkat lunak (software), baik mereka yang merancang system operasi,database maupun system aplikasi.

Pada lingkungan kelompok ini, terdapat pekerjaan-pekerjaan seperti :

· Sistem analis, merupakan orang yang bertugas menganalisa system yang akan diimplementasikan, mulai dari menganalisa system yang ada, kelebihan dan kekurangannya, sampai studi kelayakan dan desain system yang akan dikembangkan.

Job Descriptions:

1. Memperluas atau memodifikasi sistem untuk melayani tujuan baru atau meningkatkan alur kerja.

2. Menguji, memelihara, dan memantau program komputer dan sistem, termasuk koordinasi instalasi program komputer dan sistem.

3. Mengembangkan, dokumen dan merevisi prosedur desain sistem, prosedur pengujian, dan standar kualitas.

4. Menyediakan staf dan pengguna dengan membantu memecahkan masalah komputer terkait, seperti malfungsi dan masalah program.

5. Meninjau dan menganalisa hasil print-out komputer dan indikator kinerja untuk menemukan masalah kode, dan memperbaiki eror dengan mengkoreksi kode.

6. Berkonsultasi dengan manajemen untuk memastikan kesepakatan pada prinsip-prinsip sistem.

7. Berunding dengan klien mengenai jenis pengolahan informasi atau perhitungan kebutuhan program komputer.

8. membaca manual, berkala, dan mereport secar teknis untuk belajar bagaimana mengembangkan program yang memenuhi kebutuhan staf dan pengguna.

9. Mengkoordinasikan dan menghubungkan sistem komputer dalam sebuah organisasi untuk meningkatkan kompatibilitas dan sehingga informasi bisa dibagi.

10. Menentukan software atau hardware komputer yang diperlukan untuk mengatur atau mengubah sistem.



· Programer, merupakan orang yang bertugas mengimplementasikan rancangan system analis, yaitu membuat program ( baik aplikasi maupun system operasi ) sesuai system yang dianalisa sebelumnya.

Job Descriptions:

1. Memperbaiki kesalahan dengan membuat perubahan yang sesuai dan memeriksa kembali program untuk memastikan bahwa hasil yang diinginkan yang dihasilkan.

2. Melakukan percobaan menjalankan program dan aplikasi software untuk memastikan bahwa mereka akan menghasilkan informasi yang dikehendaki dan bahwa instruksi sudah benar.

3. Menulis, mengupdate, dan memelihara program komputer atau paket perangkat lunak untuk menangani pekerjaan tertentu seperti pelacakan inventaris, menyimpan atau mengambil data, atau mengontrol peralatan lainnya.

4. Menganalisis, meninjau, dan menulis ulang program, menggunakan grafik dan diagram alur kerja, dan menerapkan pengetahuan tentang kemampuan komputer, materi pelajaran, dan logika simbolik.

5. Melakukan atau revisi langsung, perbaikan, atau perluasan program yang ada untuk meningkatkan efisiensi operasi atau beradaptasi dengan persyaratan baru.

6. Berkonsultasi dengan manajerial, teknik, dan tenaga teknis untuk memperjelas maksud program, mengidentifikasi masalah, dan menyarankan perubahan.

7. Melakukan analisis sistem dan pemrograman tugas untuk memelihara dan mengontrol penggunaan perangkat lunak komputer sistem sebagai programmer sistem.

8. Menyusun dan menulis dokumentasi pengembangan program dan revisi berikutnya, memasukkan komentar dalam kode instruksi sehingga orang lain dapat memahami program ini.

9. Penyiapan diagram alur kerja rinci dan diagram yang menggambarkan input, output, dan operasi logis, dan mengubahnya menjadi serangkaian instruksi dikodekan dalam bahasa komputer.

10. Berkonsultasi dengan dan membantu operator komputer atau analis sistem untuk mendefinisikan dan menyelesaikan masalah dalam menjalankan program-program komputer.

· Web designer, merupakan orang yang melakukan kegiatan perencanaan, termasuk studi kelayakan, analisis dan desain terhadap suatu proyek pembuatan aplikasi berbasis web.

· Web programmer, merupakan orang yang bertugas mengimplementasikan rancangan web designer, yaitu membuat program berbasis web sesuai desain yang telah dirancang sebelumnya.


2. Kelompok kedua, adalah mereka yang bergelut di bidang perangkat keras (hardware).

Pada lingkungan kelompok ini, terdapat pekerjaan-pekerjaan seperti :

· Technical engineer, sering juga disebut teknisi, yaitu orang yang berkecimpung dalam bidang teknik, baik mengenai pemeliharaan maupun perbaikan perangkat system computer.

· Networking engineer, adalah orang yang berkecimpung dalam bidang teknis jaringan computer dari maintenance sampai pada troubleshooting-nya.

3. Kelompok ketiga, adalah mereka yang berkecimpung dalam operasional system informasi.

Pada lingkungan kelompok ini, terdapat pekerjaan-pekerjaan seperti :

· EDP Operator, adalah orang yang bertugas mengoperasikan program-program yang berhubungan dengan electronic data processing dalam lingkungan sebuah perusahaan atau organisasi lainnya.

· System Administrator, merupakan orang yang bertugas melakukan administrasi terhadap system, memiliki kewenangan menggunakan hak akses terhadap system, serta hal-hal lain yang berhubungan dengan pengaturan operasional sebuah system.



Profesi lain di bidang IT

1. Database Administrators


Job Descriptions:

1. Menguji program atau database, memperbaiki kesalahan dan membuat modifikasi yang diperlukan.

2. Memodifikasi database dan sistem manajemen database yang ada.

3. Merencanakan, mengkoordinasikan dan melaksanakan langkah-langkah keamanan untuk melindungi informasi dalam file komputer terhadap kerusakan, pemodifikasian atau akses yang tidak sah.

4. Bekerja sebagai bagian dari tim proyek untuk mengkoordinasikan pengembangan database dan menentukan lingkup proyek dan keterbatasan.

5. Menulis dan mengkode deskripsi database secara fisik dan logis dan menentukan pengidentifikasi dari database untuk sistem manajemen atau orang lain secara langsung dalam pengkodean deskripsi.

6. Melatih user dan menjawab pertanyaan-pertanyaan.

7. Menentukan pengguna dan tingkat akses pengguna untuk setiap segmen dari database.

8. Menyetujui, menjadwal, merencanakan, dan mengawasi pemasangan dan uji coba produk baru dan perbaikan sistem komputer seperti instalasi database baru.

9. Meninjau permintaan proyek, menggambarkan database user untuk memperkirakan waktu dan biaya yang diperlukan untuk menyelesaikan proyek.

10. Mengembangkan standar dan pedoman untuk membimbing penggunaan dan perolehan perangkat lunak dan untuk melindungi informasi yang rentan.

2. Network Systems and Data Communications Analysts


Job Descriptions:

1. Menguji dan mengevaluasi hardware dan software untuk menentukan efisiensi, reliabilitas, dan kompatibilitas dengan sistem yang ada, dan membuat rekomendasi pembelian.

2. Desain dan implementasi sistem, konfigurasi jaringan, dan arsitektur jaringan, termasuk teknologi perangkat keras dan perangkat lunak, lokasi situs, dan integrasi teknologi.

3. Membantu pengguna untuk mendiagnosa dan memecahkan masalah komunikasi data.

4. Memantau kinerja sistem dan menyediakan langkah-langkah keamanan, tips dan pemeliharaan yang diperlukan.

5. Menjaga dibutuhkan file dengan menambahkan dan menghapus file pada server jaringan dan membuat cadangan file untuk menjamin keselamatan file apabila terjadi masalah dengan jaringan.

6. Bekerja dengan engineer lain, analis sistem, programer, teknisi, ilmuwan dan manajer tingkat atas dalam pengujian, desain dan evaluasi sistem.

7. Mengidentifikasi area operasi yang perlu diupgrade peralatan seperti modem, kabel serat optik, dan kabel telepon.

8. Konsultasi pelanggan, kunjungi tempat kerja atau melakukan survei untuk menentukan kebutuhan pengguna sekarang dan masa depan.

9. Melatih pengguna dalam menggunakan peralatan.

10. Memelihara perangkat seperti printer, yang terhubung ke jaringan.

3. Web Developers


Job Descriptions:

1. Mendesain, membangun, atau memelihara situs web, menggunakan authoring atau bahasa scripting, alat penciptaan konten, alat manajemen, dan media digital.

2. Melakukan atau update situs web langsung.

3. Menulis, desain, atau mengedit konten halaman web, atau yang lain langsung memproduksi konten.

4. Berunding dengan tim manajemen atau pengembangan untuk memprioritaskan kebutuhan, menyelesaikan konflik, mengembangkan kriteria konten, atau memilih solusi.

5. Back-up file dari situs web untuk direktori lokal untuk pemulihan instan dalam kasus masalah.

6. Mengidentifikasi masalah yang ditemukan oleh umpan balik pengujian atau pelanggan, dan memperbaiki masalah masalah atau merujuk pada personalia yang tepat untuk koreksi.

7. Evaluasi kode untuk memastikan bahwa itu adalah sah, benar terstruktur, memenuhi standar industri dan kompatibel dengan browser, perangkat, atau sistem operasi.

8. Menjaga pemahaman teknologi web saat ini atau praktek pemrograman melalui melanjutkan pendidikan, membaca, atau partisipasi dalam konferensi profesional, workshop, atau kelompok.

9. Menganalisis kebutuhan pengguna untuk menentukan persyaratan teknis.

10. Mengembangkan atau memvalidasi tes routine dan jadwal untuk memastikan bahwa uji kasus meniru antarmuka eksternal dan alamat semua jenis browser dan perangkat.

4. IT Project Managers


Job Descriptions:

1. Mengembangkan dan mengelola work breakdown structure (WBS) proyek teknologi informasi.

2. Mengembangkan atau memperbarui rencana proyek untuk proyek-proyek teknologi informasi termasuk informasi seperti tujuan proyek, teknologi, sistem, spesifikasi informasi, jadwal, dana, dan staf.

3. Mengelola pelaksanaan proyek untuk memastikan kepatuhan terhadap anggaran, jadwal, dan ruang lingkup.

4. Menyiapkan laporan status proyek dengan mengumpulkan, menganalisis, dan meringkas informasi dan tren.

5. Menetapkan tugas, tanggung jawab, dan rentang kewenangan kepada personil proyek.

6. Mengkoordinasikan rekrutmen atau pemilihan personil proyek.

7. Mengembangkan dan mengelola anggaran tahunan untuk proyek-proyek teknologi informasi.

8. Mengembangkan rencana pelaksanaan yang mencakup analisis seperti biaya-manfaat atau laba atas investasi.

9. Secara langsung atau mengkoordinasikan kegiatan personil proyek.

10. Menetapkan dan melaksanakan rencana komunikasi proyek.


5. Computer Systems Engineers


Job Descriptions:

1. Berkomunikasi dengan staf atau klien untuk memahami persyaratan sistem tertentu.

2. Memberikan saran pada biaya proyek, konsep desain, atau perubahan desain.

3. Dokumen desain spesifikasi, petunjuk instalasi, dan sistem informasi terkait lainnya.

4. Verifikasi stabilitas, interoperabilitas, portabilitas, keamanan, atau skalabilitas arsitektur sistem.

5. Berkolaborasi dengan engineer atau pengembang perangkat lunak untuk memilih solusi desain yang tepat atau memastikan kompatibilitas komponen sistem.

6. Mengevaluasi teknologi yang muncul saat ini untuk mempertimbangkan faktor-faktor seperti biaya, portabilitas, kompatibilitas, atau kegunaan.

7. Memberikan bimbingan teknis atau dukungan untuk pembangunan atau tips sistem.

8. Mengidentifikasi sistem data, perangkat keras, atau komponen perangkat lunak yang diperlukan untuk memenuhi kebutuhan pengguna.

9. Memberikan pedoman untuk menerapkan sistem yang aman untuk pelanggan atau tim instalasi.

10. Memonitor operasi system untuk mendeteksi masalah potensial.

6. Network and Computer Systems Administrators


Job Descriptions:

1. Menjaga dan mengelola jaringan komputer dan lingkungan komputasi terkait termasuk perangkat keras komputer, perangkat lunak sistem, perangkat lunak aplikasi, dan semua konfigurasi.

2. Melakukan backup data dan operasi pemulihan kerusakan.

3. Mendiagnosa, memecahkan masalah, dan menyelesaikan perangkat keras, perangkat lunak, atau jaringan lainnya dan masalah sistem, dan mengganti komponen yang rusak bila diperlukan.

4. Merencanakan, mengkoordinasikan, dan melaksanakan langkah-langkah keamanan jaringan untuk melindungi data, perangkat lunak, dan perangkat keras.

5. Mengkonfigurasikan, memonitor, dan memelihara aplikasi email atau virus software perlindungan.

6. Mengoperasikan master konsol untuk memonitor kinerja sistem komputer dan jaringan, dan untuk mengkoordinasikan komputer akses jaringan dan penggunaan.

7. Memuat rekaman komputer dan disk, dan menginstal perangkat lunak dan kertas printer atau form.

8. Desain, mengkonfigurasi, dan perangkat keras uji komputer, jaringan lunak dan perangkat lunak sistem operasi.

9. Memonitor kinerja jaringan untuk menentukan apakah penyesuaian perlu dibuat, dan untuk menentukan di mana perubahan harus dibuat di masa depan.

10. Berunding dengan pengguna jaringan tentang bagaimana untuk memecahkan masalah sistem yang ada.SimakBaca secara fonetik.

7. Web Administrators


Job Descriptions:

1. Back up atau memodifikasi aplikasi dan data yang terkait untuk menyediakan pemulihan kerusakan.

2. Menentukan sumber halaman web atau masalah server, dan mengambil tindakan untuk memperbaiki masalah tersebut.

3. Meninjau atau memperbarui konten halaman web atau link pada waktu yang tepat, menggunakan tool-tool.

4. Memonitor sistem untuk intrusi atau serangan denial of service, dan melaporkan pelanggaran keamanan untuk personil yang tepat.

5. Menerapkan langkah-langkah keamanan situs web, seperti firewall atau enkripsi pesan.

6. Mengelola internet / intranet infrastruktur, termasuk komponen seperti web, file transfer protocol (FTP), berita dan server mail.

7. Berkolaborasi dengan tim pengembangan untuk membahas, menganalisis, atau menyelesaikan masalah kegunaan.

8. Test backup atau pemulihan rencana secara teratur dan menyelesaikan masalah.

9. Memonitor perkembangan web melalui pendidikan berkelanjutan, membaca, atau partisipasi dalam konferensi profesional, workshop, atau kelompok.

10. Menerapkan update, upgrade, dan patch pada waktu yang tepat untuk membatasi hilangnya layanan.

8. Computer Security Specialists


Job Descriptions:

1. Mengenkripsi transmisi data dan membangun firewall untuk menyembunyikan informasi rahasia seperti sedang dikirim dan untuk menahan transfer digital tercemar.

2. Mengembangkan rencana untuk melindungi file komputer terhadap modifikasi disengaja atau tidak sah, perusakan, atau pengungkapan dan untuk memenuhi kebutuhan pengolahan data darurat.

3. Meninjau pelanggaran prosedur keamanan komputer dan mendiskusikan prosedur dengan pelanggar untuk memastikan pelanggaran tidak terulang kembali.

4. Memonitor penggunakan file data dan mengatur akses untuk melindungi informasi dalam file komputer.

5. Monitor laporan saat ini dari virus komputer untuk menentukan kapan untuk memperbarui sistem perlindungan virus.

6. Memofifikasi keamanan file komputer untuk memasukkan software baru, memperbaiki kesalahan, atau mengubah status akses individu.

7. Melakukan penilaian risiko dan melaksanakan tes pengolahan data sistem untuk memastikan fungsi pengolahan data kegiatan dan langkah-langkah keamanan.

8. Berunding dengan pengguna untuk membahas isu-isu seperti akses data komputer kebutuhan, pelanggaran keamanan, dan perubahan pemrograman.

9. Melatih pengguna dan meningkatkan kesadaran keamanan untuk memastikan keamanan sistem dan untuk meningkatkan efisiensi server dan jaringan.

10. Mengkoordinasikan pelaksanaan rencana sistem komputer dengan personil pendirian dan vendor luar.

Referensi :

http://www.onetonline.org/

http://images.ekiazalah.multiply.multiplycontent.com

http://blogkublogku.blogspot.com/