Rabu, 23 Januari 2013

Tentang Programmer

Artikel Job Programmer

Dalam melakukan sesuatu harus diawali dengan niat dan usaha, apalagi saat ini dalam dunia usaha sangat sulit sekali untuk mendapatkan pekerjaan karena sangat berbanding terbalik antara lowongan pekerjaan dengan para pencari pekerjaan. Seperti yang telah diketahui angka pengangguran sangat besar di Indonesia.
Lowongan pekerjaan yang saat ini dibutuhkan adalah dalam bidang Programmer. Sebelumnya kita harus tahu terlebih dahulu apa itu programmer. Programmer   adalah   individu   yang   bertugas   dalam   hal   rincian implementasi,  pengemasan,  dan modifikasi  algoritma serta struktur data, dituliskan   dalam   sebuah   bahasa   pemrograman   tertentu. Pekerjaan ini selain sulit mendapatkannya karena harus memiliki kemampuan dalam bidang ini juga karena saingannya yang banyak. Dalam bidang Programmer, biasanya syarat-syarat yang harus di miliki adalah :
  1. Konsep dasar OOP
  2. Dasar-dasar Java
  3. Pernah menggunakan minimal 2 (dua) bahasa pemrograman
  4. Konsep struktur data, misalnya tree, list
  5. Konsep relasional termasuk join dan subquery
  6. Mengerti SQL untuk minimal satu produk database
  7. HTML dan CSS
  8. Dasar-dasar jaringan komputer
  9. Bahasa Inggris (minimal membaca)
  10. Pernah membuat minimal satu aplikasi utuh (dari tampilan depan sampai ke database, lengkap dengan validasi) dengan minimal 4 (empat) tabel yang berelasi.
Deskripsi Pekerjaan :
a)    Menulis program (coding) dengan menggunakan pemograman tertentu ( VB, VB.NET, Java ).
b)    Memahami konsep basis data.
c)    Mampu mengoperasikan aplikasi basis data.
d)    Melakukan pengujian terhadap aplikasi program.
e)    Melakukan analisis terhadap aplikasi program.
f)     Melakukan riset , desain, dokumentasi dan modifikasi aplikasi software.
g)    Melakukan analisis dan memperbaiki kerusakan (error ) pada software dengan tepat dan cara yang akurat.
h)    Menyediakan status laporan aplikasi yang diperlukan.

·      Database Programmer
Programmer yang menguasai perancangan dan pemrograman database menggunakan Aplikasi  Ms.  Access dan Ms.  Sql  Server ATAU PL/SQL dan Oracle Form Developer 10g.
·      Web Programmer
Programmer web yang menguasai pengembangan aplikasi web berbasisKelompok 1 “Etika Programmer” HTML dan ASP.Net  ATAU aplikasi web berbasis HTML dan J2EE serta Struts Framework ATAU aplikasi web berbasis MySQL dan PHP.
·      Multimedia Programmer
Programmer multimedia yang menguasai penggunaan teknologi dan pengembangan aplikasi berbasis multimedia.
·      Embedded Programmer
Programmer yang menguasai arsitektur sistem mikroprosesor, interfacing dan pemrograman embedded.

Pemrograman komputer membutuhkan sebuah kode etik, dan kebanyakan dari kode-kode etik ini disalurkan berdasarkan kode etik yang kini digunakan oleh perkumpulan programmer internasional. Kode etik seorang programmer adalah sebagai berikut :
1.    Seorang   programmer   tidak   boleh   membuat   atau   mendistribusikan Malware.
2.    Seorang programmer tidak boleh menulis kode yang sulit diikuti dengan sengaja.
3. Seorang   programmer   tidak   boleh  menulis   dokumentasi   yang   dengan sengaja untuk membingungkan atau tidak akurat.
4.    Seorang programmer   tidak boleh menggunakan ulang kode dengan hak cipta kecuali telah membeli atau meminta ijin.
5.    Tidak boleh mencari keuntungan tambahan dari proyek yang didanai oleh pihak kedua tanpa ijin.
6.    Tidak boleh mencuri software khususnya development tools.
7.   Tidak boleh menerima dana tambahan dari berbagai pihak eksternal dalam suatu proyek secara bersamaan kecuali mendapat ijin.
8.   Tidak   boleh   menulis   kode   yang   dengan   sengaja   menjatuhkan   kode programmer lain untuk mengambil keunutungan dalam menaikkan status.
9.    Tidak boleh membeberkan data-data penting karyawan dalam perusahaan.
10.  Tidak   boleh   memberitahu   masalah   keuangan   pada   pekerja   dalam pengembangan suatu proyek.
11.  Tidak pernah mengambil keuntungan dari pekerjaan orang lain.
12.  Tidak boleh mempermalukan profesinya.
13.  Tidak boleh secara asal-asalan menyangkal adanya bug dalam aplikasi.
14.  Tidak boleh mengenalkan bug yang ada di dalam software yang nantinya programmer akan mendapatkan keuntungan dalam membetulkan bug.
15.  Terus mengikuti pada perkembangan ilmu komputer.
Pada   umumnya,   programmer   harus   mematuhi   “Golden   Rule”: Memperlakukan orang  lain  sebagaimana kamu  ingin diperlakukan.   Jika  semua programmer   mematuhi   peraturan   ini,   maka   tidak   akan   ada   masalah   dalam komunitas. Pemrograman komputer membutuhkan sebuah kode etik, dan kebanyakan dari kode-kode etik ini disalurkan berdasarkan kode etik yang kini digunakan olehperkumpulan programmer internasional.

KETERAMPILAN   YANG   HARUS   DIMILIKI   SEORANG PROGRAMMER
Membaca   kode   sumber   sebuah   program,   dari   yang   sederhana   hingga relative   kompleks,   adalah   keterampilan   yang   harus   dimiliki   oleh   seorang programmer.   Istilah   program  di   sini   digunakan   tidak   hanya   dalam  pengertian aplikasi utuh, namun juga mencakup level segmen kode, fungsi/subrutin, pustaka atau modul yang digunakan oleh sebuah aplikasi utuh. Manfaat dari terbiasanya kita membaca program adalah semakin banyaknya sumber informasi yang dapat kita gunakan untuk memecahkan masalah.
Implementasi sebuah algoritma yang memodifikasi sebentuk struktur data dalam sebuah program dapat kita adaptasikan ke dalam program yang kita buat sendiri dengan konteks dan struktur data yang sama sekali berbeda. Terlepas dari manfaat pedagogisnya, sayangnya keterampilan ini tidak banyak diajarkan namun baru terasa urgensinya saat kita disodori kewajiban memodifikasi program yang ditulis  dan  sebelumnya  dikelola oleh orang  lain.  Dengan hanya  berbekal  kode sumber   dan   dokumentasinya   (yang,   patut   disayangkan,   tidak   selalu komprehensif),   dalam  keadaan   seperti   ini   seorang   programmer   harus  mampu melanjutkan pengelolaan program tersebut tanpa menghancurkan organisasi kode yang  telah ada atau menambah kompleksitas yang  tidak perlu ada.  Di  sisi   lain keadaan  ini akan  jarang ditemui  oleh rata-rata programmer,  karena  lebih sering penulis   asli   dari   program  itulah   yang   harus  melanjutkan   pengelolaan,   setelah memindahkan perhatian pada hal lain selama beberapa waktu.
Karenanya   dapat   disimpulkan   bahwa   secara   umum,   keterampilan   yang harus   dimiliki   seorang   programmer   terkait   dengan   komprehensi   kode   sumber program, dengan derajat urgensi menurun(Hargo,2008), adalah:
1.   Memahami   kode   sumber   yang   ditulis   sendiri   pada   saat   ia   tidak   lagi mengingat detail mekanisme dari program tersebut.
2.    Melanjutkan   pengelolaan,   menyesuaikan,   mengembangkan   dan   (bila perlu)  merombaknya   untuk  menyesuaikan   program  dengan   kebutuhan pengguna tanpa mengorbankan kemudahan perawatan di masa mendatang.
3.   Memiliki kemampuan sebagaimana dijelaskan dalam point 1. dan 2. untuk program yang ditulis dan didokumentasikan oleh programmer lain.
4.   Membaca  program  untuk  memperkaya   perkakas  yang   dimiliki   seorang programmer untuk memecahkan masalah.

KEWAJIBAN PROGRAMMER
Buat para programmer, Coding adalah kewajiban. Sama halnya menghafal obat-obatan   bagi   dokter,  maupun  menghafal   undang-undang   bagi   pengacara. Sebagian programmer menganggap dirinya spesial, karena tidak semua orang IT dapat menguasai salah satu (atau bahkan beberapa) bahasa pemrograman. Seorang programmer memiliki kewajiban sebagai berikut :
1.    Memahami konsep dasar sistem operasi.
Kebanyakan   dari   programmer   Indonesia   biasanya  membuat   aplikasi   di atas sistem operasi, sehingga banyak yang berpendapat bahwa tidak perlu memahami   cara   kerja   sistem  operasi.  Untuk   programmer   profesional, pemahaman   ini   akan  membuat   programmer   lebih   siap  untuk  membuat aplikasi server yang biasanya  multithreaded  dan harus efisien digunakan dalam waktu   yang   lama.   Pemahaman  mendalam  di   salah   satu   sistem operasi juga merupakan nilai tambah yang signifikan. Dengan mengetahui struktur   internal   sistem  operasi   (misalnya   Linux),   programmer   dapat mengetahui berbagai pertimbangan dalam merancang aplikasi besar yang terus berkembang.
2.    Memahami konsep dasar jaringan.
Sebuah aplikasi tidak dapat berjalan sendiri. Aplikasi tersebut pasti harus berhubungan   dengan   internet,   melayani   banyak   pengguna,   atau berhubungan dengan perangkat lain seperti handphone atau PDA. Untuk itu, pemahaman atas konsep jaringan sangat penting.
3.    Memahami konsep dasar relational database.
Setiap   aplikasi   pasti   memiliki   sebuah   database   dalam   penyimpanan datanya   untuk   itu   programmer   khususnya   Database   Programmer ditekankan menguasai relational database.
4.    Karena sekarang jaman internet, maka wajib memahami protokol HTTP, FTP,  POP3,  SMTP,  SSH.  Protokol  HTTP sekarang adalah prokol  yang paling banyak digunakan di internet.
5.    Karena   sekarang   jaman   globalisasi,  maka  wajib  memahami  Unicode. Unicode  itu penting supaya aplikasi  kita  tetap bisa diinstal  di  komputer mana saja.
6.    Lebih dari satu bahasa pemrograman.
Pemahaman lebih dari satu bahasa itu penting agar wawasan programmer lebih  terbuka.  Bahwa  tidak ada bahasa yang one-fit-all,  bahwa ada cara berpikir  yang berbeda dalam  tiap bahasa,  bahwa komunitas  tiap bahasa berbeda   budayanya.  Semua   ini   akan   berkontribusi   dalam  pendewasaan seorang   programmer   dalam   berdiskusi   dan   menanggapi   perbedaan (terutama pendapat).
7.    Cara menggunakan Version Control.
Dalam dunia kerja, penggunaan version control adalah wajib. Ini standar (de   facto)   internasional.   Jika  mempunyai   project   opensource,   baik   di Sourceforge,  Apache,  Codehaus,  dan semua hosting project  opensource, pasti programmer akan diberikan version control.

SIKAP PROGRAMMER TERHADAP KLIEN
1.    Mempunyai   sikap & kepribadian baik,  komunikatif,  mudah beradaptasi dengan lingkungan kerja, cetakan dan fleksibel.
2.    Mampu bekerja berorientasi jadwal, mengatur pekerjaan multiple project dan nerkerja sama dalam team.
3.    Membuat kontrak kerja dengan klien.
4.    Menyukai dan mengerti dasar-dasar pemrograman.

Kamis, 01 November 2012

Artikel Tentang Proxy


Kata Proxy berasal dari bahasa Latin proximus, yang berarti dekat. Proxy server adalah sebuah server yang membantu kita untuk mempertahankan privasi kita dalam mengakses Internet. Saat kita mengakses Internet menggunakan proxy, web page yang kita kunjungi tidak akan dapat melihat kita. Web page tersebut hanya akan melihat proxy yang kita gunakan saja. Proxy server beroperasi sebagai berikut.
Client tersambung dengan proxy server, dan meminta layanan tertentu seperti file, koneksi, akses web page ataupun lainnya. Proxy server kemudian mengevaluasi permintaan layanan tersebut sesuai dengan aturan filter nya.
Sebagai contoh, proxy server dapat menyaring traffic berdasarkan IP address atau protocol. Jika permintaan tersebut divalidasi oleh filternya, maka proxy akan menyediakan apa yang diminta dengan menyambungkan ke server yang diminta dan meminta layanan dari server tersebut untuk client nya.
Proxy server dapat digunakan untuk berbagai macam keperluan antara lain:
  1. Untuk menyembunyikan server tertentu dari publik demi keamanan
  2. Untuk mempercepat akses ke resources yang diperlukan
  3. Untuk membuka situs-situs yang diblokir ditempat-tempat seperti sekolah, kantor, dan sebagainya.
  4. Untuk melewati kontrol keamanan/parental
  5. Untuk melindungi identitas saat sedang online
Proxy server yang melanjutkan permintaan dan jawaban tanpa modifikasi biasanya disebut dengan gateway atau tunneling proxy. Sebuah proxy server dapat ditaruh di komputer client, atau di beberapa lokasi diantara client dan server-server yang dituju.
Reverse proxy adalah sebuah proxy yang digunakan sebagai front-end, dengan maksud untuk mengontrol dan melindungi akses ke sebuah server atau private network. Biasanya reverse proxy melakukan hal-hal seperti load-balancing, authentication, decryption, atau caching.

OSI dan Fungsi-fungsinya


OPEN SYSTEM INTERCONNECTION (OSI)
I. PENGERTIAN
Masalah utama dalam komunikasi antar komputer dari vendor yang berbeda adalah karena mereka mengunakan protocol dan format data yang berbeda-beda. Untuk mengatasi ini, International Organization for Standardization (ISO) membuat suatu arsitektur komunikasi yang dikenal sebagai Open System Interconnection (OSI) model yang mendefinisikan standar untuk menghubungkan komputer-komputer dari vendor-vendor yang berbeda.
Model-OSI tersebut terbagi atas 7 layer, dan layer kedua juga memiliki sejumlah sub-layer (dibagi oleh Institute of Electrical and Electronic Engineers (IEEE)). Perhatikan tabel berikut:

7th
- Layer : Application
Services
6th
- Layer : Presentation
Services
5th
- Layer : Session
Communications
4th
- Layer : Transport
Communications
3rd
- Layer : Network
Communications
2nd
- Layer : Data-link
Physical connections
1st
- Layer : Physical
Physical connections
Tabel MODEL OSI
Layer-layer tersebut disusun sedemikian sehingga perubahan pada satu layer tidak membutuhkan perubahan pada layer lain. Layer teratas (5, 6 and 7) adalah lebih cerdas dibandingkan dengan layer yang lebih rendah; Layer Application dapat menangani protocol dan format data yang sama yang digunakan oleh layer lain, dan seterusnya. Jadi terdapat perbedaan yang besar antara layer Physical dan layer Application.
II. FUNGSI LAYER
1. Layer Physical
Ini adalah layer yang paling sederhana; berkaitan dengan electrical (dan optical) koneksi antar peralatan. Data biner dikodekan dalam bentuk yang dapat ditransmisi melalui media jaringan, sebagai contoh kabel, transceiver dan konektor yang berkaitan dengan layer Physical. Peralatan seperti repeater, hub dan network card adalah berada pada layer ini.
2. Layer Data-link
Layer ini sedikit lebih “cerdas” dibandingkan dengan layer physical, karena menyediakan transfer data yang lebih nyata. Sebagai penghubung antara media network dan layer protocol yang lebih high-level, layer data link bertanggung-jawab pada paket akhir dari data binari yang berasal dari level yang lebih tinggi ke paket diskrit sebelum ke layer physical. Akan mengirimkan frame (blok dari data) melalui suatu network. Ethernet (802.2 & 802.3), Tokenbus (802.4) dan Tokenring (802.5) adalah protocol pada layer Data-link.
3. Layer Network
Tugas utama dari layer network adalah menyediakan fungsi routing sehingga paket dapat dikirim keluar dari segment network lokal ke suatu tujuan yang berada pada suatu network lain. IP, Internet Protocol, umumnya digunakan untuk tugas ini. Protocol lainnya seperti IPX, Internet Packet eXchange. Perusahaan Novell telah memprogram protokol menjadi beberapa, seperti SPX (Sequence Packet Exchange) & NCP (Netware Core Protocol). Protokol ini telah dimasukkan ke sistem operasi Netware. Beberapa fungsi yang mungkin dilakukan oleh Layer Network
  • Membagi aliran data biner ke paket diskrit dengan panjang tertentu
  • Mendeteksi Error
  • Memperbaiki error dengan mengirim ulang paket yang rusak
  • Mengendalikan aliran
4. Layer Transport
Layer transport data, menggunakan protocol seperti UDP, TCP dan/atau SPX (Sequence Packet eXchange, yang satu ini digunakan oleh NetWare, tetapi khusus untuk koneksi berorientasi IPX). Layer transport adalah pusat dari mode-OSI. Layer ini menyediakan transfer yang reliable dan transparan antara kedua titik akhir, layer ini juga menyediakan multiplexing, kendali aliran dan pemeriksaan error serta memperbaikinya.
5. Layer Session
Layer Session, sesuai dengan namanya, sering disalah artikan sebagai prosedur logon pada network dan berkaitan dengan keamanan. Layer ini menyediakan layanan ke dua layer diatasnya, Melakukan koordinasi komunikasi antara entiti layer yang diwakilinya. Beberapa protocol pada layer ini: NETBIOS: suatu session interface dan protocol, dikembangkan oleh IBM, yang menyediakan layanan ke layer presentation dan layer application. NETBEUI, (NETBIOS Extended User Interface), suatu pengembangan dari NETBIOS yang digunakan pada produk Microsoft networking, seperti Windows NT dan LAN Manager. ADSP (AppleTalk Data Stream Protocol). PAP (Printer Access Protocol), yang terdapat pada printer Postscript untuk akses pada jaringan AppleTalk.
6. Layer Presentation
Layer presentation dari model OSI melakukan hanya suatu fungsi tunggal: translasi dari berbagai tipe pada syntax sistem. Sebagai contoh, suatu koneksi antara PC dan mainframe membutuhkan konversi dari EBCDIC character-encoding format ke ASCII dan banyak faktor yang perlu dipertimbangkan. Kompresi data (dan enkripsi yang mungkin) ditangani oleh layer ini.
7. Layer Application
Layer ini adalah yang paling “cerdas”, gateway berada pada layer ini. Gateway melakukan pekerjaan yang sama seperti sebuah router, tetapi ada perbedaan diantara mereka. Layer Application adalah penghubung utama antara aplikasi yang berjalan pada satu komputer dan resources network yang membutuhkan akses padanya. Layer Application adalah layer dimana user akan beroperasi padanya, protocol seperti FTP, telnet, SMTP, HTTP, POP3 berada pada layer Application.
III. KOMPONEN JARINGAN DAN PROTOKOL LAYER
  1. Layer 1 – Physical

Network components:
  • Repeater
  • Multiplexer
  • Hubs(Passive and Active)
  • TDR
  • Oscilloscope
  • Amplifier
Protocols:
  • IEEE 802 (Ethernet standard)
  • IEEE 802.2 (Ethernet standard)
  • ISO 2110
  • ISDN
  1. Layer 2 – Datalink

Network components:
  • Bridge
  • Switch
  • ISDN Router
  • Intelligent Hub
  • NIC
  • Advanced Cable Tester
Protocols:
Media Access Control:
Communicates with the adapter card
Controls the type of media being used:
  • 802.3 CSMA/CD (Ethernet)
  • 802.4 Token Bus (ARCnet)
  • 802.5 Token Ring
  • 802.12 Demand Priority
Logical Link Control
  • error correction and flow control
  • manages link control and defines SAPs
802.2 Logical Link Control
3. Layer 3 (Network)

Network components:
  • Brouter
  • Router
  • Frame Relay Device
  • ATM Switch
  • Advanced Cable Tester
Protocols:
  • IP; ARP; RARP, ICMP; RIP; OSFP;
  • IGMP;
  • IPX
  • NWLink
  • NetBEUI
  • OSI
  • DDP
  • DECnet
4. Layer 4 – Transport

Network components:
  • Gateway
  • Advanced Cable Tester
  • Brouter
Protocols:
  • TCP, ARP, RARP;
  • SPX
  • NWLink
  • NetBIOS / NetBEUI
  • ATP
5. Layer 5 – Session

Network components:
  • Gateway
Protocols:
  • NetBIOS
  • Names Pipes
  • Mail Slots
  • RPC
  1. Layer 6 – Presentation

Network components:
  • Gateway
  • Redirector
Protocols:
  • None
  1. Layer 7 – Application

Network components:
  • Gateway
Protocols:
  • DNS; FTP
  • TFTP; BOOTP
  • SNMP; RLOGIN
  • SMTP; MIME;
  • NFS; FINGER
  • TELNET; NCP
  • APPC; AFP
  • SMB

Postingan Lebih Baru Postingan Lama Beranda