Linux: Debian - Version

Terdapat 2 jenis versi dalam Sistem Operasi Linux:
  • Distribution 
  • Kernel
Untuk mengetahui versi Distribution dapat dilakukan dengan perintah:

$cat /etc/debian_version

8.5

atau

$lsb_release -a

No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 8.5 (jessie)
Release: 8.5
Codename: jessie

Untuk mengetahui versi Kernel, gunakan command berikut ini:

$uname -a

Linux Gigantic 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 GNU/Linux
atau

$uname -r

3.16.0-4-amd64

Linux: Debian - File Partition

Untuk mengetahui struktur partisi dapat menggunakan command df atau lsblk:

$df

Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sdb1        8518920  5253380   2809760  66% /
udev               10240        0     10240   0% /dev
tmpfs             748708     9112    739596   2% /run
tmpfs            1871760   230912   1640848  13% /dev/shm
tmpfs               5120        4      5116   1% /run/lock
tmpfs            1871760        0   1871760   0% /sys/fs/cgroup
/dev/sdb7         368615     2226    342837   1% /tmp
/dev/sdb8      287988080  4849112 268486912   2% /home
/dev/sdb5        2817056   552740   2101500  21% /var
tmpfs             374356       20    374336   1% /run/user/1000

atau
$lsblk

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 298.1G  0 disk 
├─sda1   8:1    0   100G  0 part /home/public
├─sda2   8:2    0   100G  0 part /home/data
└─sda3   8:3    0  98.1G  0 part /home/backup
sdb      8:16   0 298.1G  0 disk 
├─sdb1   8:17   0   8.4G  0 part /
├─sdb2   8:18   0     1K  0 part 
├─sdb5   8:21   0   2.8G  0 part /var
├─sdb6   8:22   0   7.4G  0 part [SWAP]
├─sdb7   8:23   0   380M  0 part /tmp
└─sdb8   8:24   0 279.2G  0 part /home



Apllication Optimation

Optimasi server menjadi penting ketika applikasi yang dihasilkan menjadikan server bekerja pada tingkat kritis.  Beberapa hal yang perlu dipertimbangkan ketika kita menciptakan sebuah aplikasi, antara lain:
  • Bentuk dan sifat penggunaan.
  • Besar data
  • Infrastruktur.
  • Teknologi
Benyak yang melupakan empat faktor dasar tersebut, menitik-beratkan pada pengembangan applikasi saja.  Hingga pada akhirnya applikasi yang dibuat tidak dapat berjalan sebagaimana mestinya. 

Bentuk dan Sifat Pengguna

Bentuk dan sifat pengguna menuju pada apakah applikasinya membutuhkan authentikasi, berbagai proses yang dimiliki oleh sebuah applikasi.  Proses authentikasi meskipun kecil, ketika applikasi akan dipergunakan oleh sejumlah orang, harus dicarikan strategi yang tepat.

Besar Data

Semakin besar data yang dilibatkan atau diproses oleh sebuah applikasi, semakin berat sebuah applikasi yang akan tercipta.  Untuk itu perlu diteliti sifat data dan mengetahui bagamana cara mengelola data tersebut secara tepat.  Sehingga besaran data tidak akan menjadi sumber permasalahan bagi sistem.

Infrastruktur

Infrastruktur merupakan masalah utama dalam mempublikasikan sebuah applikasi.  Namun pokok permasalah dari infrastruktur adalah pada jumlah modal yang dimiliki dalam menyelenggarakan applikasi tersebut.  Untuk menciptakan sebuah applikasi yang baik, sangat membutuhkan infrastruktur yang besar.  Namun tidaklah mungkin kita menitikberatkan pada bagian ini, karena menitik-beratkan infrastruktur akan menciptakan biaya  yang tidak terhingga.

Teknologi

Bertebarnya berbagai teknologi baru sangatlah membantu kita dalam mencapai tujuan akhir kita.  Namun demikian setiap teknologi yang muncul pada dasarnya bersumber pada sebuah permasalahan.  Tidak dapat dipungkiri, sebuah teknologi hanya memecahkan  satu atau sejumlah permasalahan, akan tetapi umumnya mendatangkan permasalahan yang lain.  

Untuk mendapatkan hasil yang optimal, tidak jarang sebuah produk dihasilkan dengan menggabungkan beberapa aspek menjadi satu.  Namun proses ini dapat menjadi sumber peningkatan biaya akibat membutuhkan sumber daya yang baru.

Berikut ini proses optimasi yang harus dilakukan dalam membangun sebuah applikasi yang dapat dilakukan untuk:

  • Bentuk dan Sifat Applikasi.  
    • Aplikasi yang banyak membutuhkan material tambahan seperti: css, script dan multimedia (gambar, video, suara)  sedapat mungkin didesign dengan mendistribusikan materi tersebut pada berbagai sumber yang berbeda.  Sumber yang berbeda dapat berupa CDN atau pun alokasi server dan bandwidth yang berbeda untuk setiap material.  Ini untuk mencegah penggunaan bandwidth dan server yang berlebihan.
    • Apabila applikasi membutuhkan authentikasi, sedapat mungkin proses authentikasi tidak melibatkan proses yang panjang atau kompleks (tidak identik dengan tidak secure).  Karena authentikasi mejadi gerbang setiap proses yang datang, maka delay waktu yang sedikit ini, bila terjadi ribuan kali, akan menjadi faktor yang menghambat kerja server.  Gunakan algoritma yang paling ideal untuk proses authentikasi applikasi kita.
    • Minimalisasi transfer data pada setiap request.
  • Besar Data.  Bagian ini menjadi kritikal ketika sistem menjadi terhambat akibat perlunya memproses data secara berulang - ulang. Untuk itu terdapat beberapa metoda untuk menangani besarnya data tersebut:
    • Mengurangi akses ke database.  Database tercipta untuk mempermudah kita mengolah data. Namun sering kali applikasi tercipta tanpa melihat tujuan dari database itu sendiri.  Apa bila memungkinkan, data yang diletakkan dalam sebuah file akan jauh lebih cepat diakses dibandingkan bila data tersebut berada di dalam sebuah sistem database.  Contoh: meletakkan content berita dalam file akan lebih baik dibandingkan meletakkannya di dalam database. Efek ini dapat dirasakan ketika kita memiliki porta berita.  Dengan sumber daya yang sama, applikasi akan lebih kondusive dengan file.
    • Mengalokasi database ke beberapa server yang berbeda atau menciptakan database cluster.  Apabila tahap pertama sudah tidak memungkinkan, langkah berikutnya adalah dengan membangun beberapa server.
    • Menggunakan tehnik pemrosesan data awal atau pun data warehousing untuk menghasilkan data yang diperlukan.  Ini untuk mencegah applikasi untuk memproses data yang sama berulang - ulang dalam menjalankan fungsinya.
  • Infrastruktur.  Seperti telah dibahas di atas, apa bila memungkinkan dapat dibangun server cluster.  Tahap ini dilakukan apabila 2 tahap di atas telah optimal.  Membangun infrastruktur yang besar dengan sistem applikasi yang masih berat, tidak akan membantu banyak.  Sebaliknya Infrastruktur akan semakin berat.  Ini disebabkan Infrastruktur yang semakin besar akan membebankan sistem.  Apa bila sistemnya tidak optimal, kinerja yang diharapkan pun tidak akan meningkat secara linear.
  • Teknologi. Bagian merupakan bagian terpenting dalam membangun sebuah applikasi.  Tidak ada teknologi yang sempurna.  Untuk itu, kita perlu memanfaatkan sebuah teknologi secara tepat. Misalnya memilih web server Apache dan NginX.  Dua teknologi ini sama - sama memiliki kelebihan dan kekurangan.  Ada pertimbangan dimana Apache baik digunakan demikian pula ada kondisi dimana NginX menjadi favorit.  Dengan menggabungkan kelebihan dari 2 teknologi tersebut inilah kita dapat menciptakan kinerja applikasi yang optimal.

Linux: Debian - Partition

Ketika kita ingin menginstal Linux, terkadang kita bingung dengan konfigurasi partisi terbaik.  Bagi pemakai Debian, berikut ini dibahas bagaimana mengatur konfigurasi terbaik untuk mesin Debian Anda.

Berbeda dengan Anda yang telah terbiasa dengan sistem operasi Microsoft, sistem operasi Linux sangat dinamis.  Performa yang dihasilkan, sangat tergantung dari bagaimana Anda mengkonfigurasikan mesin Anda.  Mengatur partisi ini terjadi berdasarkan cara kerja file sistem dari sebuah sistem operasi.

Cara kerja file sistem FAT & NTFS pada sistem operasi Microsoft menjadikan proses partisi pada sistem operasi Microsoft begitu sederhana.  Sangat bertolak belakang dengan file sistem EXT4 pada Linux.  Selama Anda tidak menggunakan SSD (Solid State Disk),  strategi membangun partisi yang baik menjadi sangat penting.

Singkat kata, pada kesempatan ini kita akan membahas strategi membangun partisi untuk mesin Anda yang menggunakan sistem operasi Debian.

Ketika kita ingin membangun sebuah mesin, kita harus memikirkan untuk apa mesin ini akan dipergunakan.  Debian memiliki 5 partisi utama yang perlu kita cermati, ketika kita akan menginstall Debian:
  • /
  • /usr
  • /var
  • /tmp
  • /home
/, merupakan direktori root atau utama dari debian.  Bagian ini menjadi tempat bagi sistem operasi dan segala konfigurasi.

/usr, merupakan direktori tempat instalasi package dan module yang akan kita install kemudian.  Singkat kata, direktori ini merupakan default tempat instalsi berbagai program.

/var, merupakan direktori data dari program yang kita install.  Direktori ini dapat juga didefinisikan sebagai direktori kerja.

/tmp, merupakan tempat sementara untuk meletakkan file (bila diperlukan) ketika sebuah proses dilakukan.  Besarnya tempat ini tergantung dari jenis proses dan besarnya file yang akan diciptakan.

/home, merupakan tempat kita meletakkan berbagai data kerja kita.  Dan apa bila diperlukan, dapat juga kita alihkan fungsikan sebagai tempat kerja, program dan lain sebagainya.  Singkat kata, inilah tempat yang paling bebas kita pergunakan atau pun untuk kita lakukan berbagai hal untuk mengoptimasikan mesin Linux kita.

Bagi Anda yang pemula, tidaklah bermasalah bila Anda meletakkan semuanya pada 1 partisi.  Tetapi bila Anda ingin membangun sesuatu yang bersifat kritikal, baik komersial atau pun non komersial, berikut ini beberapa pertimbangannya:
  • Sebagai Desktop:
    • Untuk pekerjaan kantor seperti: email, browsing internet, office dokumen.  Terdapat dua pilihan:
      • Semua direktori diletakkan pada 1 partisi.
        • /, partisi sebesar 50 GB.
        • /home, partisi sebesar sisa kapasitas media yang ada.
    • Untuk Programming
      • /, partisi sebesar 300 - 500 MB
      • /usr, hitung besar applikasi yang ingin diinstall.  Idealnya 50 GB.
      • /var, umumyan cukup dengan 500 MB.  Bila applikasinya sangat besar, alokasikan 1GB.
      • /tmp, umumnya cukup 500 MB. 
      • /home, partisi sebesar sisa kapasitas media yang ada.
    • Untuk Video Editing
      • /, partisi sebesar 300 - 500 MB
      • /usr, hitung besar applikasi yang ingin diinstall.  Idealnya 10 GB.
      • /var, umumyan cukup dengan 100 MB.
      • /tmp, alokasikan 50 - 100 GB.
      • /home, partisi sebesar sisa kapasitas media yang ada.
  • Sebagai Server
    • Untuk Web Server
      • /, partisi sebesar 300 - 500 MB
      • /usr, hitung besar applikasi yang ingin diinstall.  Idealnya 4 GB.
      • /var, umumyan cukup dengan 1 GB.
      • /tmp, alokasikan 500 MB.
      • /home, partisi sebesar sisa kapasitas media yang ada.
    • Untuk Email Server
      • /, partisi sebesar 300 - 500 MB
      • /usr, hitung besar applikasi yang ingin diinstall.  Idealnya 4 GB.
      • /var, umumyan cukup dengan 1 GB.
      • /tmp, alokasikan 4 GB.
      • /home, partisi sebesar sisa kapasitas media yang ada.  Alihkan data email ke direktori ini, bila perlu diatur dalam bentuk multi partisi.
    • Untuk Database Server
      • /, partisi sebesar 300 - 500 MB
      • /usr, hitung besar applikasi yang ingin diinstall.  Idealnya 4 GB.
      • /var, umumyan cukup dengan 1 GB.
      • /tmp, alokasikan 2 GB.
      • /home, partisi sebesar sisa kapasitas media yang ada.  Alihkan data dari database ke direktori ini.
Konfigurasi tersebut adalah contoh pembuatan direktori untuk optimasi sederhana Debian.

Linux: Debian

Debian adalah salah satu distribusi Linux yang paling tua.  Kemampuan Debian telah diakui sebagai salah satu Distro yang paling stabil dan cukup populer di kalangan pemakai linux user.  Ini dapat dilihat pada situs distrowatch, yang mana Debian dan turunannya selalu menduduki puncak teratas.

Debian merupakan sebuah Linux yang dikembangkan oleh komunitas Linux Debian yang dianggotakan para developer dari seluruh Dunia.  Besarnya komunitas dan dedikasi dari para anggotanya, menjadikan Debian begitu kokoh dan menjadi salah satu sistem operasi yang dapat digunakan hampir di semua platform.

Sifat Debian yang stabil ini disebabkan model pengembangannya Debian yang konsevatif, yang mana setiap pengembangannya akan melalui berbagai tahap uji coba yang cukup lama.  Hal ini yang menjadikan teknologi Debian dikatakan lambat untuk berkembang.  Namun demikian, bila kita ingin menggunakan versi Debian yang yang terbaru, Debian pun menyediakan versi yang mengikuti perkembangan teknologi terkini.  Namun demikian, menggunakan versi ini identik dengan adanya permasalahan / bug yang harus selalu melakukan update / patch.

Versi Debian yang stabil dalam komunitas Debian diletakkan dalam Channel Stable, sementara untuk versi Debian yang terbaru berada dalam Channel Testing.  Bagi Anda yang pemula atau menggunakan Debian sebagai tempat kerja, disarankan untuk mencoba Channel Stable.  Sementara bagi Anda yang telah lama terbiasa dengan sistem operasi ini, dapat mencoba Channel Testing.  Terdapat juga satu channel experimental yang disebut Channel Unstable.  Pada channel ini terdapat berbagi fitur - fitur yang terbaru yang sedang dalam tahap pengembangan.  Menggunakan Channel Unstable ini tidaklah disarankan.  Namun bagi Anda yang ingin mencoba melihat fitur masa depan Debian, bisa mencoba channel ini.

Cara instalasi Debian sangatlah mudah.  Anda cukup download Image File NetInstall dari debian dari situs www.debian.com.  Bentuklah file tersebut ke dalam sebuah CD.  Proses instalasi dapat segera di mulai.

Untuk melakukan instalasi Debian, pastikan internet Anda senantiasa menyala.

Kelebihan Debian adalah:
  • Merupakan distro Linux yang paling Stabil di antas semua Linux.  Namun bagi Anda yang ingin menjadi yang terdepan dalam menggunakan teknologi, dipersilakan menggunakan versi Testing.
  • Mendukung berbagi jenis arsitektur komputer.  Banyak komputer tua Anda dapat diinstall dengan Debian.
  • Proses upgrade yang sangat mudah, tidak membutuhkan reinstall.  Tidak membutuhkan proses Reinstall / Install Ulang.
Sebagai perbandingan berikut ini jenis Linux yang penulis pergunakan saat ini dimulai dari yang terbaik:
  1. Sebagai Server
    1. Debian
    2. CentOS (Turunan RedHat / Fedora)
    3. Ubuntu
    4. Fedora
  2. Sebagai Desktop Kerja
    1. Debian
    2. Mint
    3. Ubuntu
Note: Review ini bersifat subyektif atas dasar pengalaman penulis.  

Ilmu SEO - 3. Tehnik SEO

Di dalam dunia SEO terdapat dua jenis tehnik SEO, yaitu White Hat SEO dan Black Hat SEO.  Artikel ini akan membahas secara mendetail masing - masing tehnik.

Bila kita ingin mendapatkan hasil secara cepat, tehnik Black Hat SEO akan menjadi jawaban Anda.  Akan tetapi dengan Black Hat SEO, apa bila kita tidak melakukan memperbaiki konten, berjalan dengan waktu peringkat situs akan turun sendirinya, hingga akhirnya mati.


Search engine memang tidak pernah melarang metoda yang kita pergunakan.  Algoritma search engine memberikan keleluasan kepada kita dalam membangun sebuah situs.  Peringkat situs akan bergerak otomatis sesuai dengan perilaku pengunjung pada situs tersebut.


Menjadi jelas bahwa sebuah situs yang memberikan manfaat akan mendapat apresiasi dari pengunjungnya.  Mereka akan mereferensikan dan bahkan mem-bookmark-nya untuk dibaca kemudian hari.  Tindakan - tindakan tersebut dimonitor oleh search engine dan dijadikan referensi dalam menaikkan/menurunkan peringkat sebuah situs.

Kita kembali pada topik kita kali ini, Tehnik SEO.  Kita mulai dari White Hat SEO.

White Hat SEO

Seperti telah dibahas pada artikel sebelumnya tentang Metodology & Strategi SEO, pengerjaan SEO meliputi dua tahap, yaitu tahapan On Page SEO dan tahapan Off Page SEO.  Seorang penganut White Hat SEO akan memulai proses On Page SEO dengan mengikuti pedoman SEO copy writing yang benar.  Setelah pengerjaan On Page SEO selesai, White Hat SEO akan berlanjut ke tahapan Off Page SEO kepada melalui situs - situs yang berkenaan.  

Berikut ini cara kerja seorang White Hat SEO:
  1. Setelah mendapatkan keyword yang akan digunakan, White Hat SEO akan membuat artikel secara spesifik mencerminkan produk dan jasa yang akan dipromosikan.  Artikel yang dibuat tidak selalu harus panjang.  Namun usahakan, artikel yang ditulisakan informatif dan terstruktur.
  2. White Hat SEO akan membuat ringkasan atas artikel yang dijadikan sebagai description bagi kontent tersebut.  
  3. White Hat SEO kemudian akan mengumpulkan keyword tambahan yang mungkin muncul berdasarkan artikel yang dibuat.
  4. Bila dibutuhkan, White Hat SEO akan menambahkan artikel lain yang memiliki korelasi atau menarik untuk dibahas atau pun diketahui bagi pengunjung situs Anda.
  5. Apa bila semua telah selesai, White Hat SEO akan melakukan format dan tagging seperlu-nya atas kata - kata yang menjadi keyword Anda.
  6. Setelah selesai, White Hat SEO akan mempublish artikel tersebut dan kemudian menciptakan cukup beberapa backlink yang relevan dengan artikel tersebut.  
Tugas seorang White Hat SEO selesai sampai di sini.  Selanjutnya, biarkan search engine yang bekerja dan pengguna internet di seluruh penjuru dunia ini yang menilai artikel tersebut.  Bila artikel tersebut memang bermanfaat, peringkat situs tersebut akan terus meningkat tidak terbendung.

Pada kasus tertentu, sering terjadi peringkat sebuah situs kemudian turun.  Ini mungkin terjadi akibat dari pertumbuhan konten situs pada keyword yang sama.  Apa bila dipandang perlu, seorang White Hat SEO akan melakukan tindakan - tindakan khusus untuk menegakkan kembali popularitas situs tersebut.

Black Hat SEO

Seorang Black Hat SEO melakukan segala sesuatu yang bertentangan dengan White Hat SEO.  Tujuan dari seorang Black Hat SEO adalah melakukan segala cara agar volume pengunjung dan peringkat situsnya meningkat dengan cepat.  Demi menjaga keuntungan, banyak perusahaan jasa SEO menggunakan metoda ini.  Alasannya sangat mudah, mereka bisa menerima bayaran dari pelanggan mereka dan kemudian mencari pelanggan baru.  Akan tetapi, tehnik SEO ini tidak akan bertahan lama.  Ketika ternyata sang pelanggan mulai komplain atas menurunnya pengunjung & peringkat situs mereka, perusahaan jasa SEO tersebut dengan mudah akan mengajukan jasanya untuk melakukan optimasi kembali.

Berikut ini cara kerja seorang Black Hat SEO:
  1. Setelah mendapatkan keyword yang akan digunakan, seorang Black Hat SEO membuat artikel yang kandungan beritanya kurang relevan.  Keyword yang akan digunakan cenderung dipaksakan dan tidak informatif ketika dibaca.  Banyak kasus, artikel tersebut adalah hasil copy paste dari situs yang lain.
  2. Setelah artikel selesai dikerjakan, Black Hat SEO membuat description yang hanya menitik beratkan pada keyword saja.
  3. Hal yang sama dilakukan pada pengisiaan keyword artikel tersebut.
  4. Terakhir Black Hat SEO akan melakukan tagging pada sekujur tubuh artikel.
  5. Selesai artikel di publishBlack Hat SEO akan memasang back link dari semua tempat tanpa memandang korelasi artikel yang dibuatnya. 

White Hat SEO vs Black Hat SEO : Kinerja

Secara finansial, keuntungan seorang Black Hat SEO cenderung lebih menguntungkan.  Waktu bekerja seorang Black Hat SEO rata - rata kurang dari 1 jam.  Sementara seorang White Hat SEO terkadang membutuhkan waktu 1/2 hari untuk menyelesaikan sebuah proyek.  Dari sini Anda bisa membayangkan, berapa pemasukkan seorang Black Hat SEO.

Namun bila kita bandingkan dari kinerja jangka panjang, seorang White Hat SEO akan mendapatkan kepercayaan lebih, karena peringkat setiap artikel yang ia ciptakan, akan terus tumbuh dan berkembang, di mana artikel seorang Black Hat SEO akan perlahan - lahan menghilang dari peredaran.

White Hat SEO vs Black Hat SEO : Hasil Kerja 

Sebagai perbandingan kita menggunakan keyword "Bola Basket".

White Hat SEO:
  1. Menciptakan artikel tentang "Bola Basket" dengan semua hal yang memiliki relasi dengan kata kunci tersebut.  
  2. Seorang White Hat SEO, akan cenderung membuat 2 -3 artikel pendukung lain yang berhubungan dengan "Bola Basket" atau menggunakan kata kunci tambahan yang dekat dengan kata kunci "Bola Basket".  Artikel tersebut akan dilink satu dengan yang lain agar lebih informatif bagi para pengunjungnya.
  3. White Hat SEO akan membuat description yang menarik dan informatif atas artikel tersebut bagi pembaca dan search engine, seperti: "Tutorial bermain Bola Basket bagi segala usia".
  4. Berdasarkan artikelnya, White Hat SEO akan menambahkan tambahan keyword yang mungkin muncul dari artikel yang dibuatnya seperti: Bola Basket, Olah Raga, Permainan Bola.  Hal ini untuk mempermudah kerja search engine dalam melakukan pengindeksan artikel kita.
  5. Setelah mem-publish artikel tersebut, White Hat SEO akan mencari situs situs yang berhubungan dengan artikel yang dibuat atau pun komunitas yang telah tersedia untuk kategori artikel yang dibuat untuk menciptakan back link secukupnya.  

Black Hat SEO:
  1. Antara copy paste atau membuat artikel apa pun yang tidak ada hubungannya dengan "Bola Basket", tetapi kata kunci tersebut disisipkan secara paksa di antara kalimat yang ada.  Terdapat versi yang lebih brutal, dimana seorang Black Hat SEO, hanya melakukan copy paste kata "Bola Basket" berulang kali hingga ratusan kali.  
  2. Black Hat SEO akan membuat description secukupnya, bahkan hanya menyebut kata "Bola Basket".
  3. Black Hat SEO sesungguhnya tidak mengerti artikel yang sedang dia kerjakan.  Oleh sebab itu, keyword yang digunakan hanya "Bola Basket".
  4. Setelah mem-publish artikel, Black Hat SEO akan menciptakan jejak back link di mana - mana, baik tempat yang relevan atau tidak.  

Mengapa Black Hat SEO Bisa Berhasil?

Apa yang dilakukan seorang Black Hat SEO adalah melakukan manipulasi atau menipu search engine.  Dikarenakan penerapan SEO pertama kali dimulai oleh search engine atau sebuah mesin, peringkat artikel ditentukan melalui jumlah kata kunci pada sebuah artikel.  Mesin tidak dapat menilai mutu sebuah artikel.

Namun sejalan dengan waktu, ketika artikel tersebut tersentuh oleh para pembaca diseluruh dunia, bagaimana tanggapan pembaca terhadap sebuah artikel akan menjadi faktor utama dalam menentukan peringkat.

Untuk mencegah agar kita tidak jatuh dalam perangkap seorang Black Hat SEO, ada baiknya kita bertanya kepada seorang praktisi SEO, tentang bagaimana metoda dia bekerja.  Bagi kita yang tidak memiliki waktu yang banyak untuk mengerjakan artikel SEO, menggunakan profesional jasa SEO sangat membantu tercapainya tujuan kita.  Namun memberikan kuasa kepada pihak lain, tidak berarti kita tidak terlibat sama sekali.

Ilmu SEO - 2. Metodologi & Strategi

SEO
Tidak ada cara cepat dalam mengimplementasikan konsep SEO.  Selain itu para praktisi SEO menggunakan berbagai metoda dalam mengejar lalu lintas pengunjung ke situs mereka masing - masing yang terkadang kala menyalahi aturan yang ditetapkan oleh sebuah search engine.  Meskipun terjadi peningkatan jumlah pengunjung akan situs mereka, peringkat mereka akan sangat mudah turun bila terdapat sebuah situs yang mampu memberikan konten yang lebih berkualitas.

Pada artikel berikut ini, kita akan membahas metoda membuat SEO yang berkualitas yang dapat bertahan dan memberi manfaat bagi para pencari informasi.  

RUMUS KERJA SEO

Sebelum menperdayakan SEO, kita harus memikirkan 5 hal dalam perumusan SEO:
  1. Kata kunci / Keyword merupakan kata yang menjadi acuan bagi search engine untuk menghasilkan indeks.  Pilihlah kata - kata kunci yang tepat sebagai identitas atas situs kita.
  2. Konten / Artikel yang harus dibuat sesuai dengan keyword yang telah kita pilih sebelumnya.  Keyword harus terdistribusi rata pada sepanjang konten berita. 
  3. Struktur / Format konten yang disusun harus ramah bagi search engine.  
  4. Manfaat bagi pengunjung yang mengunjung konten kita.  Sebuah konten yang baik akan menumbuhkan pengunjung situs secara alami.  Manfaat yang diberikan oleh situs tersebut akan memberikan jaminan berkembangnya basis pengunjung tetapnya.  
  5. Waktu.  Beri waktu untuk menumbuhkan peringkat situs kita secara alami.  Jangan memaksakan peringkat dengan memaksakan metoda - metoda tertentu.  Search engine saat ini memiliki algoritma dalam menentukan peringkat sebuah situs secara alami.  Apa bila search engine menganggap terdapat kecurangan berhubungan dengan peringkat situs kita, search engine dapat secara otomatis menurunkan peringkat situs kita.
SEO COPY WRITING

SEO copy writing adalah metoda penulisan artikel yang dapat dibaca baik oleh kita dan juga ramah bagi proses pengindeksan search engine.

Berikut ini adalah susunan yang baik bagi pembuatan SEO copy writing:
  1. Konten Title
  2. Konten Description
  3. Konten Keyword
  4. Konten Heading
  5. Konten Berita
Bagaimana cara membuat artikel dengan mengikuti susunan tersebut, akan dibahas pada kesempatan lain.

Performa SEO dipengaruhi oleh 2 faktor: 
  1. Dalam Konten Berita / On Page SEO, yang mana kita lakukan dengan mengikuti SEO copy writing yang baik.
  2. Luar Konten Berita / Off Page SEO, yang dapat kita kembangkan dengan mendaftarkan situs kita ke search engine, memasang tautan / link dari situs lain (backlink).
Berikutnya: Tehnik SEO
Sebelumnya: Pengenalan SEO

Ilmu SEO - 1. Perkenalan SEO

SEO
SEO (Search Engine Optimation) adalah proses mengoptimasi sebuah situs agar terlihat ramah bagi sebuah mesin pencari informasi (search engine), yang tak lain saat ini didominasi oleh Google, Bing, Yahoo.

Ilmu SEO merupakan salah satu materi dalam mempelajari metoda marketing / penjualan online / daring.  Oleh sebab itu jangan heran, ketika mempelajari SEO, kita akan banyak mempelajari bagaimana mempresentasikan sebuah informasi sedemikian rupa agar ramah bagi pembaca, demikian pula bernilai bagi mesin pencari informasi.

Tujuan akhir dari penerapan SEO adalah:

  • Meningkatkan peringkat sebuah situs di mata search engine.
  • Perbaikan volume dan lalu lintas pengunjung ke situs kita.
  • Peningkatan sales dengan mengetahui karakter, sifat dan tujuan pengunjung dari situs kita.
Pada akhirnya, untuk menguasai SEO, kita harus mempelajari bagaimana cara bekerja mengetahui sebuah search engine, untuk kemudian kita selaraskan dengan cara kita mempresentasikan informasi pada situs kita.  

Meskipun semua search engine memiliki metode kerja yang berbeda-beda, terdapat persamaan cara kerja pada semua search engine.  Berikut ini dijelaskan cara kerja sebuah search engine.

Pada umumnya proses pencarian informasi dari search engine dilakukan melalui 2 (dua) tahap, yaitu proses aktif dan pasif (melalui request).  Informasi yang didapatkan dari masing - masing bagian akan kemudian dikombinasikan untuk menentukan peringkat atau pun mempertahankan peringkat pada situs tersebut. 

Proses Aktif ( Web Crawling & Indexing )

Proses aktif adalah proses pencarian informasi secara aktif oleh sebuah search engine.  Proses pencarian berita ini dilakukan oleh search engine crawler / robot dengan melakukan rekapitulasi informasi dari jaringan yang telah ada sebelumnya atau melakukan penelusuran nama domain pada server penyimpan nama domain yang tersebar luas di seluruh penjuru dunia.

Dengan metoda kerja seperti ini, sebuah server yang terisolasi pun dapat ikut terdaftar ke dalam sebuah search engine dengan sendirinya tanpa perlakukan khusus.  Akan tetapi, bila kita ingin mempercepat "pengenalan" situs kita dengan sebuah search engine, pada umumnya setiap search engine telah menyediakan sebuah script yang harus dipasang pada situs kita.  Fungsi script tersebut adalah mengundang search engine crawler melakukan rekapitulasi informasi pada situs kita.  Mengenai bagaimana cara memasang search engine crawler ini, akan dibahas pada artikel berikutnya.

Informasi yang didapat oleh search engine crawler ini akan disimpan pada search engine server.   Informasi tersebut kemudian akan diproses dan menghasilkan index berdasarkan konten yang dimiliki oleh situs kita.  Bentuk index informasi yang dihasilkan, identik dengan buku katalog produk yang sering kita jumpai atau pun daftar menu restoran.  

Sebagai ilustrai, asumsikan kita memiliki sebuah situs www.xyz.com yang membahas tentang piranti lunak.  Setelah search engine crawler kemudian informasi diproses menghasilkan index.  Bentuk indexnya adalah:
  • Pirantai Lunak  
    • www.abc.com
    • www.xyz.com            << letak situs kita dari proses indexing.
    • www.ghi.com
Bila terdapat situs lain yang memiliki kontent yang sama seperti kita (www.abc.com dan www.ghi.com), maka mereka akan diletakkan dalam satu kelompoak dengan kita.  Bagaimana posisi situs kita ketika ditampilkan, tergantung pada rank yang salah satunya tergantung pada proses pasif berikutnya.  

Pertanyaannya adalah ketika terdapat ribuan situs dengan keyword yang sama, bagaimana sebuah search engine dapat menentukan informasi mana yang harus ditampilkan.  Jawabannya adalah bagi situs yang baru, sistem peringkat akan dilakukan dengan menghitung jumlah tautan / link dari situs yang lain, atau yang umum dikenal sebagai backlink.  Namun perlu diketahui, peringkat yang dihasilkan oleh backlink sangat tergantung dari tingkat popularitas situs yang menjadi sumber backlink.  Tehnik backlink ini banyak digunakan para praktisi SEO, untuk mengoptimasi situs mereka.  Namun perlu diketahui sebuah backlink hanya salah satu pendukung dalam SEO.  Kita dapat menumbuhkan faktor pendukung SEO lain untuk menggantikan backlink.

Proses Pasif ( Search Request, Evaluation & Rank )

Proses pasif adalah proses pemaduan data yang didapatkan dari proses aktif dengan perilaku pencari informasi yang lain atas hasil yang didapatkan dari proses aktif.  Bagian inilah yang paling banyak perbedaannya antara satu search engine dengan search engine yang lain.  Namun untuk mensederhanakan pembahasan kali ini, kita melakukan pendekatan logika yang dilakukan oleh hampir semua search engine.

Proses pasif banyak berperan dalam penentuan peringkat sebuah situs, dalam hal ini urutan sebuah situs ditampilkan pada hasil pencarian sebuah search engine.  Ini disebut sebagai Search Engine Result Page (SERP).  

Pada proses pasif, setiap request pencaharian, search engine akan menampilkan daftar informasi yang diasumsikan sesuai dengan keyword (kata kunci) yang kita masukkan.  Apa bila kita melakukan navigasi / klik pada daftar situs yang ditampilkan, kita secara otomatis akan melakukan navigasi kembali ke situs search engine kembali untuk kemudian diarahkan kepada situs yang kita inginkan.  Disinilah proses penilaian sebuah situs dimulai oleh search engine tersebut melalui karakteristik kita pada situs tersebut.  Apa pun yang terjadi, peringkat sebuah situs dapat naik atau turun berdasarkan sifat pengunjung sebuah situs.  

Secara singkat, pada proses pasif search engine melakukan tiga tahap: 
  1. Menampilkan SERP berdasarkan keyword yang telah dimasukkan.
  2. Menangkap navigasi yang dipilih berdasarkan SERP yang ditampilkan.
  3. Memonitor karakteristik pengunjung pada situs yang dipilih.
Hasil dari proses pasif ini kemudian digunakan untuk memperbaiki peringkat sebuah situs dan menghasilkan SERP bagi pencari informasi berikutnya.

Tutorial PHP - 1. Perkenalan PHP

 PHP
PHP adalah sebuah bahasa pemrograman yang dipergunakan untuk mengembangkan aplikasi web yang dinamis.  PHP adalah sebuah script yang berjalan pada server.  Hasil proses dari PHP dikembalikan kepada client berubah data, seperti HTML dan lain sebagainya.  Fungsi PHP adalah sebagai prosessor setiap data atau request dari client.

Berikut ini contoh posisi PHP dalam sebuah applikasi:

<HTML>
<BODY>
<?php
    echo "Selamat Datang";
?>
</BODY>
</HTML>

Ketika program tersebut dieksekusi, seorang client hanya akan menerima

<HTML>
<BODY>
Selamat Datang
</BODY>
</HTML>

PHP berpegang teguh filosofinya sebagai bahasa yang sederhana, effisien, aman, fleksible dan ramah.  Namun tidak jarang filosofi tersebut dianggap sebagai sebuah kelemahan dan alasan PHP sebagai bahasa yang tidak beraturan.

Ungkapan tersebut tidaklah sepenuhnya benar.  Dengan memahami filosofi ini, PHP dapat dirancang sebagai bahasa yang cukup mumpuni.

Berikutnya: Persiapan Server PHP

Tutorial PHP - 2. Persiapan Server PHP

Sebelum kita dapat menggunakan PHP, kita perlu terlebih dahulu melakukan persiapan awal. Berikut hal hal yang perlu dilakukan dalam mempersiapkan PHP server kita.

Terdapat berbagai cara untuk mempersiapkan PHP server.  PHP dapat digunakan hampir di semua web server.  Namun demikian, web server yang paling umum digunakan adalah Apache, NginX dan IIS.  Masing - masing memiliki kelebihan dan kekurangan sesuai dengan filosofi diciptakannya.

Berkembangnya popularitas PHP, melahirkan berbagai banyak paket yang mempermudah proses instalasi sebuah server PHP.  Berikut ini contoh paket server PHP yang sering digunakan saat ini:

  1. Windows OS
  2. Linux
    1. LAMP
    2. XAMPP
    3. AMPPS

Namun demikian, penulis lebih suka melakukan instalasi server Apache / NginX, PHP secara manual.  Semuanya kembali kepada jenis applikasi yang hendak kita kerjakan.

Untuk melakukan instalasi server PHP dengan menggunakan paket tersebut di atas, bagi pengguna Windows OS, anda cukup melakukan download file instalasi dari website masing-masing.  Sementara untuk pengguna Linux, anda dapat melakukan instalasi dengan menggunakan perintah apt-get (pada distro turunan Debian) atau yum (pada distro turunan Red Hat).

Pada distro turunan Debian, Anda bisa melakukan instruksi berikut ini:

#apt-get install apache2
#apt-get install mysql-server
#apt-get install php5 php-pear php5-mysql
#service apache2 start

Pada distro turunan RedHat/Centos, Anda bisa menjalankan instruksi berikut ini:

#yum install httpd
#install mysql-server
#install php php-mysql
#service httpd start


Untuk menguji apakah server apakah server Anda telah terinstall dengan benar, silakan coba file berikut ini di web directory Anda.

<?php
    phpinfo();
?>



Berikutnya:
Sebelumnya: Perkenalan PHP

.NET Framework Problem

.NET Framework adalah salah satu platform Microsoft yang paling fenomenal.  Semenjak dikeluarkan pertama kali, konsep virtual mesin ini seakan - akan menjanjikan sebuah applikasi yang dapat dijalankan di atas platform - platform yang berbeda di luar sistem operasi Microsoft.  Namun impian ini belum juga direalisasikan hingga saat ini. Hingga akhirnya muncullah .NET Framework yang lain yang disebut Mono.

Mono sering kali diasumsikan setara dengan .NET Framework.  Namun perlu diketahui bahwa Mono tidak sama dengan .NET Framework.  Dapat disebut Mono dan .NET Framework tidak kompatible satu dengan yang lain.

Tidak dapat dipungkiri, sebuah applikasi sederhana dapat langsung kita compile dan dijalankan langsung di atas platform Mono.  Namun untuk sebuah applikasi yang kompleks, seperti administrasi database, dibutuhkan banyak penyesuaian dari .NET Framework ke Mono.  Inilah yang menyebabkan .NET Framework tidak compatible dengan Mono.

Permasalahan lain dengan .NET Framework adalah kompabilitas antar versi .NET itu sendiri (backward compatibilty).  Ini kami alami sendiri ketika melakukan upgrade produk kami dari versi .NET 1.1 ke .NET 2.0.  Kemudian dari .NET 2.0 ke .NET 3.5.  Hingga yang terakhir .NET 3.5 ke .NET 4.0.

Kami menemukan adanya beberapa sintax yang berbeda yang membutuhkan penyesuaian menurut aturan yang berlaku pada masing - masing versi.  Untuk sebuah aplikasi skala kecil, hal demikian bukanlah sebuah masalah, tetapi permasalahan ini timbul ketika produk kita memiliki sejumlah library yang terpisah dan berkaitan dengan puluhan hingga ratusan modul lainnya.

Inilah permasalahan .NET Framework yang hingga saat ini tidak terlihat penyelesaiannya.  Ini menjadikan sebuah perusahaan pengembangan piranti lunak, harus ekstra hati - hati dalam memilih metoda ketika ingin mengembangakan sebuah produk.

Proprietary vs Open Source

Sering kali pertanyaan ini muncul ketika kita memulai proyek IT kita.  Namun demikian, perlu diingat bahwa apa pun pilihan teknologi yang akan kita adopsi, masing - masing memiliki kelebihan dan kekurangan.  

Proprietary

Umumnya teknologi proprietary menggunakan support sebagai keunggulan utamanya.  Selain itu produk proprietary umumnya pengembangannya lebih terarah sesuai dengan kebutuhan yang ada di pasar.  

Kelebihan produk proprietary adalah
  • Produk didukung oleh sebuah perusahaan, oleh sebab itu segala permasalahan berhubungan dengan sebuah produk dapat dialamatkan pada sang pembuat.
  • Umumnya produk dibagi dalam berbagai paket sesuai dengan kebutuhan kita.
Kekurangan produk proprietary adalah
  • Biaya produk yang lebih mahal.
  • Memiliki keterbatasan dalam pengembangannya, berdasarkan ketentuan dari perusahaan yang membuatnya, 
  • Bila terdapat masalah dengan produknya, kita harus menunggu proses perbaikannya yang terkadang membutuhkan waktu hingga berbulan - bulan.
  • Usia produk yang relative lebih singkat.

Open Source

Dasar bergerakanya sebuah produk Open Source adalah didorong oleh keinginan berbagai sebuah produk yang seluas - luasnya.  Saat ini motivasi sebuah proyek open source lebih dituju pada komunitas pengguna yang saling membantu dalam mengembangkan produk dan jasa yang sama.  Oleh sebab itu support yang diperoleh dari produk open source berasal dari komunitas produk tersebut.  

Kelebihan dari produk open source adalah
  • Dikarenakan produk open source dikembangkan oleh sebuah komunitas, pada umumnya stabilitas sebuah produk tergantung pada besar dan tingkat aktivitas sebuah komunitas.
  • Biaya adopsi teknologi relative lebih kecil atau bahkan tidak ada.
  • Produk dapat kita kembangkan sendiri sesuai dengan kebutuhan kita.
  • Stabilitas produk yang tinggi, karena ketika sebuah permasalahan muncul, akan segera diperbaiki oleh ribuan atau bahkan jutaan kontributornya.
Kekurangan dari produk open source adalah
  • Dikarenakan produk open source dikerjakan oleh sejumlah orang dengan latar belakang yang berbeda-beda, pada umumnya implementasi produk open source diperlukan seseorang yang benar - benar ahli / memahami produk tersebut.
  • Dukungan support yang terkadang agak sulit didapatkan.
Demikian sekilas perbedaan Open Source dan Proprietary.  Bila ingin ditelusuri lebih jauh, masih banyak lagi kelebihan dan kekurangan masing - masing kelompok.  Namun apa pun pilihannya, tetap berdasarkan keputusan kita sebagai pemilik sebuah proyek.

Microsoft Windows XP Migration

Meskipun berakhirnya dukungan tehnis pada Microsoft Windows XP telah lama diumumkan oleh Microsoft, seperti dapat dibaca pada link berikut ini, pemakai setia sistem operasi ini masih cukup besar.  Banyak perusahaan yang menunda migrasi ke versi berikutnya dengan alasan stabilitas, biaya hingga ketakutan akan proses migrasi dapat mengganggu operasional sebuah perusahaan.

Bagi pengguna individu, proses migrasi tentulah tidak rumit.  Berbeda permasalahan yang dihadapi oleh sebuah perusahaan.  Proses migrasi membutuhkan sejumlah perencanaan yang harus dilakukan dengan hati - hati, terlebih bagi mereka yang menggunakan sistem informasi tertentu.  Inilah alasan mengapa Microsoft kemudian melakukan penundaan terhadap penghentian dukungan pada Windows XP pada tahun sebelumnya.  

Sebagai pengembang piranti lunak, mau tidak mau, harus selalu mengikuti pergerakan teknologi yang ada saat ini.  Bila kami menentang arus ini, ini berarti kita harus mengembangkan segala sesuatunya seorang diri.  Proses ini akan sangat membuang waktu dan tenaga dalam proses pengembang piranti lunak.  

Contoh permasalahan yang timbul akibat dari dihentikannya dukungan pada Window XP:
  • Perangkat keras baru tidak lagi dapat berjalan pada Windows XP.  
  • Windows XP hanya dapat menggunakan .NET Framework 4.0 dengan beberapa keterbatasan.
  • Berbagai komponen piranti lunak tidak lagi dapat berjalan di Windows XP, mengakibatkan mengembangkan sebuah produk untuk Windows XP.
Saat ini tidak ada lagi cara untuk menghindari permasalahan yang ditimbulkan dari berhentinya support pada Windows XP, selain dengan melakukan migrasi secepatnya.

Software Version


Bagaimana kita dapat mengontrol distribusi software yang telah susah payah kita buat adalah inti dari konsep software version.  Semua piranti lunak yang kita terbitkan, tidak ada satu pun perusahaan pengembang mampu memberikan jaminan bahwa piranti tersebut bebas dari kesalahan program (bug).  Satu - satunya jaminan yang dapat diberikan kepada penggunanya adalah serangkaian dukungan tehnis atas piranti tersebut.  Inilah nilai ekonomis dari sebuah piranti lunak.

Namun perlu diketahui, dukungan tehnis pada sebuah piranti lunak tidaklah terbatas pada perubahaan beberapa baris perintah pemrograman saja, melainkan tergantung tingkat kompleksitas dari sebuah applikasi.  Sebagai contoh, melakukan perawatan atas sebuah sepeda motor tidaklah serumit perawatan pada mobil.  Oleh sebab itu, semakin tinggi kompleksitas sebuah piranti lunak, perlu direncanakan secara baik perihal bagaimana proses permetaan perbaikan pada piranti lunak tersebut.

Kontrol versi adalah salah satu masalah yang sering dilewatkan dan diabaikan.  Versi sebuah piranti lunak sering kali hanya dipergunakan untuk memberitahukan tingkat "baru" saja.  Sekiranya perlu diperhatikan kontrol versi piranti lunak dapat memberikan informasi yang lebih lengkap lebih dari hanya seberapa baru piranti tersebut, melainkan juga sifat piranti tersebut, proses pengembangannya hingga berbagai informasi lain yang dipandang perlu oleh pihak pengembangnya.  Apabila konsep kontrol versi ini dipergunakan dengan tepat, kontrol versi dapat sangat membantu seluruh proses yang ada pada piranti lunak tersebut.

Pada umumnya, format versi sebuah piranti mengikuti format berikut ini:

    major.minor.status

Major menandakan status perombakan teknologi sebuah piranti lunak.  Karena suatu hal, tidak jarang sebuah software harus dibuat ulang guna mengikuti teknologi saat ini.  Sebagai contoh, perombakan software dari .NET Framework 1.0 ke .NET Framework 2.0 atau Java AWT menjadi Java Swing.

Minor menandakan, modifikasi atau perbaikan yang terjadi pada sebuah piranti lunak.  Setiap kali kita melakukan perubahan, meskipun sedikit, kita menaikkan nilai minor satu kali.

Status menandakan kondisi piranti lunak yang dibuat.  Status dapat berbentuk apa saja, tergantung pada kebutuhan.  Pada umumnya sebuah status menandakan bahwa piranti itu adalah versi alpha, beta atau pun produk akhir.

Namun demikian, manajemen versi sebuah piranti tidaklah banyak membantu proses pengembangan sebuah piranti lunak.  Akan tetapi penetapan versi sebuah software merupakan salah satu mekanisme dalam manajemen pengembangan piranti lunak.


Memilih Linux Server

Linux
Ketika kita membutuhkan server bagi kebutuhan teknologi informasi, kita sering bingung dihadapkan dengan pilihan yang ada.  Bila kita memilih platform Microsoft Windows, mungkin tugas kita tidak akan terlalu berat, berhubung pilihan yang ada tidaklah banyak.  Namun bila pilihan kita jatuh kepada platform Linux, kita akan dihadapkan dengan berbagai versi Linux yang banyak beredar.  Kita mulai dari Red Hat, Fedora Core, Debian, Ubuntu, Centos, Gentoo, Slackware dan masih banyak lagi versi lain yang beredar.

Ketika kita masih dalam tahap belajar, ada baiknya kita mencoba satu Linux yang mana paling sesuai dengan selera kita.  Dari segi performa, hampir semua Linux memiliki kinerja yang sama.  Perbedaan yang paling jelas terletak pada cara mengubah konfigurasi, instalasi, upgrade dan update software-nya.  Untuk mempersempit ruang lingkup, pembahasan ditujukan pada 2 jenis distribusi (distro), yaitu Debian dan Red Hat.
per satu, untuk sekedar mengetahui jenis

Debian merupakan induk dari berbagai versi Linux yang cukup popular digunakan, seperti: Ubuntu, Mint, Knoppix.  Debian merupakan distro yang cukup populer digunakan dikarenakan sifatnya yang konservatif.  Tidak seperti distro Linux lainnya, filosofi Debian menitik beratkan pada kestabilan sistem operasi, menjadikan Debian tidak mengadopsi teknologi baru secepat distribusi yang lain. Alasan inilah yang menjadikan Debian banyak digunakan sebagai server di berbagai perusahaan.  

Red Hat memiliki keturunan beberapa distro popular lainnya, seperti: Fedore Core dan Centos.  Distribusi Linux ini umum dipergunakan oleh perusahaan yang mana perusahaan tersebut membutuhkan sebuah jaminan dukungan tehnis dari sebuah perusahaan yang dapat dipercaya.  Berbeda dengan Debian, Rat Hat termasuk distribusi yang bergerak aktif dalam mengembangkan sistem operasi mereka.  Akibatnya, ada kemungkinan munculnya sebuah permasalahan dalam penggunaannya.  Di sinilah peranan penting perusahaan pendukungnya untuk melakukan perbaikan atas sistem operasi mereka.

Distribusi mana yang terbaik untuk kita, jawabannya tergantung pada situasi kita.  Pada dasarnya semua distribusi Linux adalah sama.  Penulis sendiri adalah pengguna Debian.  Alasan utama adalah stabilitas dan kemudahan melakukan upgrade atas server yang dimiliki.  Distribusi lain yang pernah penulis gunakan adalah Centos.

Benchmark - Perl vs PHP vs Python

Setelah cukup lama membaca berbagai artikel tentang bagaimana performa bahasa scripting PERL, PHP, PYTHON, akhirnya saya mencoba untuk melakukan pembuktian sendiri terhadap kebenaran informasi yang ada.

Telah lama pula saya mencoba mencari bahasa scripting yang paling ideal dalam membuat sebuah applikasi berbasiskan web.  Mengikuti pertentangan pada kubu masing - masing bahasa pada kelebihan dan kekurangan yang ada, sulit bagi saya untuk memutuskan mana yang terbaik.

Tujuan saya melakukan perbandingan ini adalah untuk mengetahui kelebihan dan kekurangan sebuah bahasa scripting, kemudian bagaimana cara mengoptimasi, menutupi kekurangan tersebut dengan membandingkan performanya pada bahasa pemrograman yang lain.

Saya telah mencoba berbagai skenario untuk menguji ketiga bahasa tersebut.  Namun pada kesempatan ini saya akan membahas 2 tehnik perbandingan yang saya lakukan.

Web Service Responsive 

Latar belakang dari skenario ini adalah untuk mencari bagaimana mempercepat response terhadap request data kepada client.

Dalam PHP

<?php
    echo validate($_POST["key"]);
?>


Dengan Python

import cgi;
rq = cgi.FieldStorage();
print validate(rq["key"]);

Dengan Perl

#!/usr/bin/perl
use CGI;

$rq = new CGI;
print validate($rq->param("key"));

Applikasi dijalankan pada server Linux dengan web server: Apache dan NGinX.  Proses evaluasi menggunakan konfigurasi FastCGI saja.

Tehnik pengambilan data dengan cara mencatat waktu awal dan akhir ketika sebuah script dijalankan.   pada Server yang sama.  Masing-masing dijalankan dalam rentang waktu 1 minggu bergantian.  Proses memakan waktu 6 minggu.  Data yang diambil kemudian dirata-ratakan.

Pokok dari fungsi validate pada program di atas adalah mengambil data POST key, melakukan validasi dan akhirnya mengeluarkan data JSON hasil validasi tersebut.  Fungsi validasi hanya memuat fungsi identifikasi keberadaan sebuah file berukuran 50 bytes.

Berikut rata - rata yang didapatkan dalam percobaan di atas dalam satuan seconds:

              PHP    PERL  PYTHON

MAX         0.155   0.011   0.074
AVERAGE     0.084   0.005   0.053
MIN         0.076   0.007   0.043

Dari data tersebut tanpa diragukan lagi, PERL adalah engine yang paling optimize.

Application Scheduled Task

Latar belakang dari skenario ini adalah melakukan optimasi pada background service sebuah applikasi.  Applikasi dijalankan menggunakan Linux CRON yang berjalan setiap 5 menit sekali.

Applikasi menggunakan database pada MySQL.  Berikut pseudocode program yang dijalankan:

Open Database Connection
Query Data 
While (Not EOF)
Begin
     Summary = Calculate (Data)
     Insert Summary Into Table Summary 
End


Besar database yang diproses adalah 10 Megabytes dalam 1.2 juta records.  Hasil yang didapat adalah: (dalam satuan second)

              PHP    PERL  PYTHON  GNU C

MAX         8.273  10.355  16.670  1.012
AVERAGE     6.472   7.274  12.181  0.729
MIN         5.776   6.608  10.925  0.573


Skenario kedua menunjukkan PHP lebih optimize.

Kesimpulan

Masih terlalu dini untuk menyimpulkan mana yang terbaik di antara PERL, PHP dan PYTHON.  Namun dari data percobaan di atas, kita dapat melihat masing - masing bahasa memiliki keunggulan dalam menangani skenario tertentu.

Seperti terlihat pada data di atas, apabila kita ingin menciptakan sebuah applikasi yang memiliki performa tinggi, hanya bahasa C menjadi solusi terbaik.  Namun demikian, kita harus memperhitungkan pula produktifitas kita dengan menggunakan bahasa pemrograman tersebut.

Corporate Hosting Service

Proses hosting menjadi sebuah dilema ketika kita tidak memiliki dasar pertimbangan yang jelas atas tujuan dari sebuah hosting dimiliki.  Namun bagi perusahaan besar, dimana masalah finansial tidak menjadi masalah besar, mereka cukup memilih paket hosting yang termahal.  Mereka mengasumsikan, paket hosting tersebut pastilah dapat mencukupi segala hal yang mereka perlukan.  Asumsi ini tidaklah sepenuhnya salah demikian pula benar.

Memilih hosting yang tepat harus diimbangkan dengan berbagai pertimbangan dari dalam perusahaan, seperti kebutuhan operasional, strategi dan sumber daya yang dimiliki sebuah perusahaan.  Menciptakan sinergi adalah kata kunci ketika sebuah perusahaan memutuskan untuk memanfaatkan teknologi informasi.  Tidak jarang terjadi memiliki hosting adalah sebuah formalitas memiliki untuk menempatkan situs atau email khusus perusahaan.  Bila hanya dua ini kebutuhan yang dimiliki oleh perusahaan, mengapa tidak perusahaan tersebut menggunakan email hosting dari perusahaan hosting yang telah ada sekarang, sebagai contoh gmail.com.  Apa bila kita memandang, email dengan domain gmail.com tidak mencerminkan tingkat eksklusif perusahaan kita, kita cukup memberi DNS dan mengasosiasikan alamat gmail kita kepada DNS tersebut.  Hasilnya: kapasitas email yang jauh lebih besar, server email yang lebih baik, dukungan tehnis yang sangat baik, yang mana semua itu tercapai dengan harga yang jauh lebih murah.  Dengan demikian, untuk apakah kita harus memiliki jasa hosting?

Tidak pula jarang sebuah perusahaan membayar mahal jasa hosting setiap bulannya, hanya untuk meletakkan situs perusahaan yang telah disusun dengan anggaran yang tidak murah.  Hasilnya, hanya sejumlah kecil atau bahkan tidak tidak ada satu pun pengunjung membuka situsnya tersebut.  Bila demikian yang terjadi, kita dapat menggunakan berbagai hosting gratis yang tersedia banyak.  Seperti halnya email, kita dapat membeli sebuah DNS yang menggambarkan nama perusahaan, sehingga situs kita terlihat lebih elegan.  Harga yang lebih murah, namun kualitas situs kita jauh lebih baik.

Agar tidak terasa sia - sia, memiliki jasa hosting harus diikuti dengan perencanaan atas bagaimana sebuah perusahaan akan dikelola.  Pemanfaatan teknologi informasi dipertimbangkan bagaimana membawanya sebagai alat bantu bagi perusahaan untuk menunjang operasional dan pengembangannya.  Janganlah menjadikan teknologi informasi hanya sebagai simbol identitas belaka, dan pada akhirnya TI dipandang sebagai beban dan komponen yang tak bernilai.

Sebelum membeli sebuah paket hosting adalah penting bagi kita untuk mempertimbangkan jenis aplikasi apa yang akan kita pergunakan, ditunjang dengan hosting kita, tidak hanya email atau situs perusahaan.  Inilah pertimbangan utama bagi kita.  Memiliki situs perusahaan adalah penting bagi sebuah perusahaan, tetapi bila kita tidak mampu memanfaatkan situs tersebut, situs tersebut tidak akan bernilai apa pun.  Penggunaan alasan branding atau citra perusahaan pun tidak akan bermanfaat, bahkan tidak jarang berakibat melemahkan citra perusahaan.

Hal berikutnya adalah bagaimana aplikasi tersebut bermanfaat bagi internal atau operasional perusahaan.  Internet adalah alasan utama terciptanya mobilitas bagi kita.  Sebuah perusahaan harus mempertimbangkan, bagaimana tingkat mobilitas yang ingin diadopsi perusahaan.  Sesuaikan kebutuhan perusahaan dengan paket hosting yang ditawarkan.

Hal terakhir adalah bagaimana manfaat hosting bagi strategi marketing perusahaan.  Poin terakhir inilah yang menciptakan citra perusahaan.

Apa bila kita belum mampu menjawab tiga hal tersebut di atas, ada baiknya kita menunda memiliki sebuah hosting.  Bila sekira kita tetap ingin memilikinya, mulailah dengan jasa hosting yang paling sederhana.


NAT: Virtual Server vs DMZ

Ketika kita perlu membuka akses server kepada jaringan internet, sering kali kita bingung bagaimana melakukannya dan jenis konfigurasi mana yang sesuai dengan kita.  Router saat ini telah cukup baik, meringkaskan serangkaian pekerjaan yang diperlukan dengan hanya beberapa klik.  Namun demikian, kita tetap perlu teliti melakukannya.  Kesalahan dalam mengkonfigurasi NAT dapat berakibat fatal bagi keamanan jaringan / server anda.

Fasilitas NAT telah menjadi hal yang harus dimiliki oleh sebuah Router saat ini.  Pada umumnya sebuah router memberikan pilihan NAT sebagai Virtual Server atau DMZ.  

DMZ (De-Militarized Zone)

DMZ adalah jenis NAT yang membuka server kita sepenuhnya / terbuka untuk diakses dari internet.  DMZ dipandang cocok bagi kita yang memiliki server dengan berbagai service yang harus dibuka di Internet (publish).

NAT: De-Militerized Zone

Yang perlu dicermati ketika memilih jenis konfigurasi ini adalah, kita harus memastikan bahwa server kita telah aman dari berbagai tindakan penetrasi keamanan (security hack).  Jenis konfigurasi ini umumnya rawan dari exploitasi kejahatan internet.  Umumnya pilihan ini dipakai ketika topologi jaringan yang cukup kompleks atau oleh suatu pertimbangan dari rancangan sistem yang kita miliki.  Pastikan pula kita tidak menyimpan data sensitif / kritikal pada server tersebut.  

Proses konfigurasi sebuah DMZ hanya membutuhkan IP lokal dari server terhadap sebuah IP publik.

Virtual Server

Berbeda dengan DMZ, jenis konfigurasi ini hanya membuka port tertentu sesuai dengan kebutuhan.  Server akan tetap berada di belakang router.  Oleh sebab itu tindakan pengamanan kita, cukup terfokus pada service yang akan kita buka.   


NAT: Virtual Server
Yang perlu diperhatikan  dalam konfigurasi ini adalah skala service yang akan kita buka.  Bila service yang akan kita buka memiliki skala pengguna besar, kita perlu mempertimbangkan jenis router yang tangguh.

Proses konfigurasi sebuah Virtual Server membutuhkan IP Lokal dan Port Server terhadap sebuah IP publik.

Reborn

Sebagai praktisi tehnologi, saya telah berulang kali tergoda untuk menyelesaikan segala sesuatu secara mandiri. Sepintas pemikiran ini dirasakan sebagai pilihan terbaik.  Namun batin saya terus bergejolak, tidak  jarang pemiikiran tersebut menjadi salah setelah dicermati berulang kali.

Sebagai perbandingan, diambilkan contoh saat kita hendak membangun atap sebuah rumah dari bahan dasar genteng.  Terdapat dua pilihan untuk menyediakan gentengnya:

  1. Membuat sendiri genteng yang diperlukan.
  2. Membeli genteng yang telah jadi pasar

Dilema muncul dengan asumsi seperti:

  • Genteng yang kita buat sendiri akan lebih baik kualitasnya.
  • Genteng yang kita buat sendiri dapat kita buat sesuai dengan gaya dan kebutuhan kita.
  • Biaya yang dibutuhkan untuk genteng akan relatif lebih murah.

Dalam rekayasa piranti lunak, permasalahan genteng tersebut serupa dengan penyediaan sebuah komponen dalam sistem yang ingin kita buat.  Pergolakan muncul ketika munculnya kebutuhan sebuah komponen yang telah tersedia oleh pihak lain, baik gratis (open source)  atau pun berbayar (commercial).  Apa pun pilihan kita, akan selalu terdapat faktor yang merugikan pada akhirnya.

Memang benar, idealnya, apa pun keputusan akhirnya, kita harus mempertimbangan relasi komponen tersebut dengan kelangsungan produk kita.  Semakin kritikal fungsi komponen tersebut, semakin baik bila komponen tersebut kita buat sendiri.  Namun demikian, keputusan ini akan menambah beban waktu dan biaya untuk mengembangkannya.

Tidak ada jawaban pasti dalam memecahkan masalah ini.  Inilah yang menyebabkan proses rekayasa piranti lunak merupakan hal yang sangat kritikal dan penuh dengan ketidak-pastian.