Friday, October 23, 2009

Cara Buat Kentang Goreng (French Fries)

Ada dua cara buat Kentang Goreng:
Cara yang Pertama:
  • Pertama: Potong2 kentang kecil sesuai ukuran (dikira kira),
    kentang dipotong kecil
    Kentang dipotong Kecil kecil
  • Rebus kentang setengah matang (kasih garam sedikit biar lebih gurih ya)
    Kentang direbus Setengah Matang
    Kentang direbus Setengah Matang
  • Angkat kentang lalu tiriskan selama 15-20 menit
    Kentang ditiriskan 15 - 20  Menit
    Kentang ditiriskan 15 - 20 Menit
  • Siapkan tepung beras + soda kue (baking powder /soda 2 sendok teh kira kira), lalu campur keduanya (takaran menyesuaikan aja)
    Campur Tepung Beras dan Soda Kue
    Campur Tepung Beras dan Soda Kue
  • Campur kentang setengah matang dengan campuran soda kue plus tepung beras (diamkan selama 5 menit).
    Kentang dicampur dengan Tepung Beras + Soda Kue
    Kentang dicampur dengan Tepung Beras + Soda Kue
  • Goreng sampai matang kentangnya
    Kentang digoreng
    Kentang digoreng
  • Kentang siap di Makan 

Cara Yang Kedua (kalau ini dari demo orang KFC):
  • Potong kentang
  • Siapkan pasta (beli di toko makanan pasta buat ngeringin air)
  • Campur sedikit pasta dengan air (kata chef KFC kebanyakan menggunakan pasta bisa menyebabkan kanker)
  • Rendam kentang dalam air yang udah dikasih pasta selama 2jam atau 3 jam
  • Tiriskan kentang selama 15-20menit
  • Campurkan dengan tepung maizena
  • Lalu goreng :)
  • Jadi deh :D

Membuat trigger di SQL Server 2005 part 2: trigger ketika delete

ide dari trigger yang akan saya utarakan disini adalah supaya ketika data di tabel pembelian terhapus, otomatis data jumlah stock barang dari barang yang terhapus di tabel pembelian tadi berkurang. kode triggernya seperti ini
create trigger kurangiStockbarang on pembelian
for delete
as
update b set b.bar_stock = b.bar_stock - d.pem_jumlah
from barang b join deleted d on b.bar_id = d.bar_id

sebenarnya hampir sama dengan kode trigger ketika penambahan barang baru, saya memberi tanda yang bercetak tebal adalah kode yang saya rubah dari kode trigger dari artikel pertama
perbedaan paling mencolok adalah untuk menangkap nilai dari tabel yang dihapus anda mengunakan tabel virtual yang bernama deleted

Membuat trigger di SQL Server 2005

saya mencoba menjelaskan dengan bahasa yg paling sedergana ya, kalau diartikan langsung ke bahasa trigger itu artinya adalah pemicu, namun jika dihubungkan ke database, trigger artinya kode SQL yang dikerjakan oleh DBMS ketika suatu kejadian terjadi.n dalam hal ini jika perintah INSERT, UPDATE, atau DELETE dijalankan di DBMS, beribet ya penjelasannya? :p
OK, saya kasih contoh sederhanan saja ya.. misalnya saya punya 2 tabel..tabel barang dan tabel pembelian, untuk lebih jelasnya bisa dilihat pada gambar dibawah ini. dalam tabel barang tersebut ada nama barang dan jumlah stock , IDEnya adalah ketika tabel pembelian ditambahkan, jumlah stock barang akan terupdate secara otomatis.misalnya ketika barang A dibeli sejumlah 3 buah maka nanti stock barang akan bertambah 3 secara otomatis. proses tersebut bisa dilakukan dgn trigger
tabeltrigger
menurut MSDN, syntac dari trigger adalah sebagai berikut
Syntax
CREATE TRIGGER trigger_name
ON { table | view }
[ WITH ENCRYPTION ]
{
{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS
[ { IF UPDATE ( column )
[ { AND | OR } UPDATE ( column ) ]
[ ...n ]
| IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask )
{ comparison_operator } column_bitmask [ ...n ]
} ]
sql_statement [ ...n ]
}
}
biar lebih mengerti, kita mulai dengan contoh.. jadi kita butuh membuat 2 tabel tersebut di SQL server 2005, script sebagai berikut
create table BARANG
(
BAR_ID int not null,
BAR_NAMA varchar(255) not null,
BAR_STOCK int null
default 0,
constraint PK_BARANG primary key (BAR_ID)
)
go

create table PEMBELIAN
(
PEM_ID int not null,
BAR_ID int null ,
PEM_JUMLAH int null ,
constraint PK_PEMBELIAN primary key (PEM_ID)
)
go

create index RELATION_FK on PEMBELIAN (BAR_ID)
go

alter table PEMBELIAN
add constraint FK_PEMBELIA_RELATION_BARANG foreign key (BAR_ID)
references BARANG (BAR_ID)
go

INSERT INTO BARANG (BAR_ID,BAR_NAMA) VALUES (1,’AQUA’);
INSERT INTO BARANG (BAR_ID,BAR_NAMA) VALUES (2,’TOTAL’);
INSERT INTO BARANG (BAR_ID,BAR_NAMA) VALUES (3,’AQUADES’);

setelah anda menjalankan script tersebut, maka anda akan mempunyai 2 tabel, yaitu tabel barang dengan isi 3 buah data, dan tabel pembelian dengan data masih kosong.3 data di tabel barang tersebut secara defaut stocknya adalah 0
kemudian saatnya kita buat trigger sehingga ketika kita menambahkan data di tabel pembelian dengan jumlah pembelian barang tertentu, maka stock di tabel barang akan bertambah sesuai dengan barang yg dibeli, syntac trigger tersebut adalah sebagai berikut
create trigger tambahStockbarang on pembelian
for insert
as
update b set b.bar_stock = b.bar_stock + i.pem_jumlah
from barang b join inserted i on b.bar_id = i.bar_id

arti dari kode tersebut adalah sebagai berikut
create trigger tambahStockbarang on pembelian
membuat trigger dengan nama tambahStockBarang dimana trigger tersebut akan terpicu jika ada perubahan di tabel pembelian
for insert
as

perubahan tersebut adalah penambahan(insert) di tabel pembelian , selain penambahan bisa juga diisi dengan perubahan(update) atau penghapusan(delete)
for disini juga bisa rubah isinya jadi after atau instead of . perbedaanya adalah waktu trigger dikerjakan, biasaya yg sering digunakan adalah for
update b set b.bar_stock = b.bar_stock + i.pem_jumlah
from barang b join inserted i on b.bar_id = i.bar_id

ini adalah kode yg dikerjakan ketika kejadian trigger terpicu, kode diatas bertujuan merubah nilai bar_stock pada tabel barang dengan menambahkan nilai bar_stock yg sekarang dengan jumlah barang yg dibeli (pem_jumlah). perhatikan disini ada tabel yang bernama inserted, tabel tersebut merupakan tabel logika yg digunakan untuk menyimpan data yang memicu terjadinya trigger, dalam hal ini nilai data yg dimasukkan(insert) kedalam tabel pembelian, selain inserted, tabel logika lainnya adalah deleted, tabel logika ini digunakan untuk trigger yg terpicu dengan kejadian delete
kita coba masukkan kode berikut
INSERT INTO PEMBELIAN (PEM_ID, BAR_ID, PEM_JUMLAH) VALUES (1,1,4);
INSERT INTO PEMBELIAN (PEM_ID, BAR_ID, PEM_JUMLAH) VALUES (2,3,2);
INSERT INTO PEMBELIAN (PEM_ID, BAR_ID, PEM_JUMLAH) VALUES (3,1,1);

arti kode tersebut
pem_id haruslah beda karena merupakan primary key
beli aqua(kode bar_id=1) sebanyak 4
beli aquades (kode bar_id=3) sebanyak 2
beli aqua lagi sebanyak 1
sehingga secara keseluruhan yg dibeli aqua sebanyak 5 dan aquades sebanyak 2
karena default nilai stock barang adalah 0, maka seharusnya nilai aqua 5 dan aquades 2 adalah jumlah stock barang sekarang ini
dan kita lihat data barang… walah
hasil trigger

Tuesday, October 20, 2009

Using ExtJS Form to store data to mysql database using PHP

1. simple-form.html
<html>
 <head>
  <title>Extjs Form Example</title>
  
  <link rel="stylesheet" href="ext-2.2/resources/css/ext-all.css" />
 
  
  <script type="text/javascript" src="ext-2.2/adapter/ext/ext-base.js"></script>
 
  
  <script type="text/javascript" src="ext-2.2/ext-all.js"></script> 
 
  
  <script type="text/javascript" src="simple-form.js"></script>
 </head> 
 <body>
 
  
  <div id="simple-form"></div>
 
 </body>
</html>

2. simple-form.js
Ext.onReady(function(){
 
 Ext.QuickTips.init();
 
 var simpleForm = new Ext.FormPanel ({
  labelWidth: 75,   // label settings here cascade unless overridden
        url:'save-form.php', // when this form submitted, data goes here
        frame:true,
        title: 'Add Pirates Crew',
        bodyStyle:'padding:5px 5px 0',
        width: 350,
        defaults: {width: 230},
        defaultType: 'textfield',
 
        items: [{
    /*
     here same as  in HTML
    */
                fieldLabel: 'Name',
                name: 'name',
                allowBlank:false
            },{
                fieldLabel: 'Position',
                name: 'position'
            },{
                fieldLabel: 'Ambition',
                name: 'ambition'
  }],    
 
        buttons: [{
            text: 'Save',   
   handler: function () {
    // when this button clicked, sumbit this form
    simpleForm.getForm().submit({
     waitMsg: 'Saving...',  // Wait Message
     success: function () {  // When saving data success
      Ext.MessageBox.alert ('Message','Data has been saved');
      // clear the form
      simpleForm.getForm().reset();
     },
     failure: function () {  // when saving data failed
      Ext.MessageBox.alert ('Message','Saving data failed');
     }
    });
   }
        },{
            text: 'Cancel',
   handler: function () {
    // when this button clicked, reset this form
    simpleForm.getForm().reset();
   }
        }]
 
 });
 
 // finally render the form
 simpleForm.render ('simple-form'); // render form to simple-form element (see simple-form.html)
 
});
 
3. save-form.php

 $conn = mysql_connect ("localhost", "root", "") or die (mysql_error ());
 mysql_select_db ("extjs") or die (mysql_error ());
 
 $q=mysql_query ("
  INSERT INTO strawhats (name, position, ambition) VALUES ('".$_POST['name']."','".$_POST['position']."','".$_POST['ambition']."')
 ") or die ('{"success":"false"}');
 
 // json output to notify the insert is success or not
 if ($q) {
  echo '{"success":"true"}';
 }
 else {
  echo '{"success":"false"}';
 }
 
?>

 

Paging Grid with PHP and MySql

1. modify data.php

 $conn = mysql_connect("localhost", "root", "") or die (mysql_error ());
 $db = mysql_select_db ("extjs") or die (mysql_error ());
        $num_result = mysql_query ("SELECT * FROM strawhats") or die (mysql_error());         
        $totaldata = mysql_num_rows($num_result);
        $result=mysql_query ("SELECT * FROM strawhats ORDER BY id LIMIT ".$_POST['start'].", ".$_POST['limit']."") or die (mysql_error ()); 
$data = array();
 
 while ($row=mysql_fetch_object($result))
 {
  $data [] = $row;
 }

echo '({"total":"'.$totaldata.'","results":'.json_encode($data).'})';  
?>
 
2. modify db-grid.js ( rename it to paging-grid.js )
Ext.onReady(function(){
 
    // create the data store
    var store = new Ext.data.JsonStore({ 
totalProperty: 'total', // total data, see json output
  root: 'results', // see json output 
  url: 'data.php',    
        fields: [
           {name: 'id', type: 'int'},
     'name', 'position', 'ambition'
        ]
    }); 
store.load({params:{start: 0, limit: 10}});
 
// create the Grid
    var grid = new Ext.grid.GridPanel({
        store: store,
        columns: [
            {id:'id',header: "ID", width: 30, sortable: true, dataIndex: 'id'},
   {header: 'Name', width: 100, sortable: true, dataIndex: 'name'},
   {header: 'Position', width: 100, sortable: true, dataIndex: 'position'},
   {header: 'Ambition', width: 250, sortable: true, dataIndex: 'ambition'} 
        ],
        stripeRows: true,
        height:250,
        width:500,
        title:'Paging Grid' 
bbar: new Ext.PagingToolbar({
   pageSize: 25,
   store: store,
   displayInfo: true,
   displayMsg: 'Displaying topics {0} - {1} of {2}',
   emptyMsg: "No topics to display"   
  })
    });
 
 // render this grid to paging-grid element
    grid.render('paging-grid');
 
});
 
3. modify db-grid.html ( rename it to paging-grid.html )
<html>
 <head>
  <title>PAGING GRID EXAMPLE</title>
  
  <link rel="stylesheet" href="ext-2.2/resources/css/ext-all.css" />
 
  
  <script type="text/javascript" src="ext-2.2/adapter/ext/ext-base.js"></script>
 
  
  <script type="text/javascript" src="ext-2.2/ext-all.js"></script> 
 
  
  <script type="text/javascript" src="paging-grid.js"></script>
 </head> 
 <body>
 
  
  <div id="paging-grid"></div>
 
 </body>
</html> 

Building Grid with Json data store

1. Create the table first dan insert some sample data
CREATE TABLE IF NOT EXISTS `strawhats` (
`id` TINYINT(4) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(25) NOT NULL,
`POSITION` VARCHAR(25) NOT NULL,
`ambition` TEXT NOT NULL,
PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
 
INSERT INTO `strawhats` (`id`, `name`, `POSITION`, `ambition`) VALUES
(1, ‘Monkey D Luffy’, ‘Captain’, ‘I Will become the pirate king’),
(2, ‘Roronoa zoro’, ‘Swordman’, ‘Become greatet swordman’),
(3, ‘Sanji’, ‘Cook’, ‘Find all blue’),
(4, ‘Nami’, ‘Navigator’, ‘Draw map of the world’),
(5, ‘Usopp’, ‘Sniper’, ‘Become greatest warrior’);

2. db-grid.html
<html>
 <head>
  <title>DB GRID SAMPLE</title>
  
  <link rel="stylesheet" href="ext-2.2/resources/css/ext-all.css" />
 
  
  <script type="text/javascript" src="ext-2.2/adapter/ext/ext-base.js"></script>
 
  
  <script type="text/javascript" src="ext-2.2/ext-all.js"></script>
 
  
  <script type="text/javascript" src="db-grid.js"></script>
 </head>
 <body>
 
  
  <div id="db-grid"></div> 
 </body>
</html>
 
3. db-grid.js
Ext.onReady(function(){
 
 // create the data store
 var store = new Ext.data.JsonStore({
  url: ‘data.php,
  fields: [
   {name: ‘id’, type: ‘int’},name, ‘position’, ‘ambition’
  ]
 });
 
 // load data from the url ( data.php )
 store.load();
 
 // create the Grid
 var grid = new Ext.grid.GridPanel({
  store: store,
  columns: [
   {id:’id’,header: “ID”, width: 30, sortable: true, dataIndex: ‘id’},
   {header:Name, width: 100, sortable: true, dataIndex:name},
   {header: ‘Position’, width: 100, sortable: true, dataIndex: ‘position’},
   {header: ‘Ambition’, width: 250, sortable: true, dataIndex: ‘ambition’}
  ],
  stripeRows: true,
  height:250,
  width:500,
  title:’DB Grid’
 });
 
 // render grid
 grid.render(’db-grid’);
 
}); 
 
4. data.php
the result of this code is the data form database in json format

 $conn = mysql_connect(”localhost”, “root”, “”) or die (mysql_error ());
 $db = mysql_select_db (”extjs”) or die (mysql_error ());
 
 $result=mysql_query (”SELECT * FROM strawhats”) or die (mysql_error ());
 
 $data = array();
 
 while ($row=mysql_fetch_object($result))
 {
  $data [] = $row;
 }
 
 echo json_encode($data);
?>

 

Building Simple Array Grid

First time i using Ext JS, i think how difficult to use this library. and at the first time i try to build my first grid i fail :D what i see is a blank page and i dont know what the error. but i am not give up :D, when i am surfing on the internet i found firebug. firebug is tools that integrates with Firefox. With this tool you can debug error in your javascript code. you can download firebug here
so, before we start this tutorial make sure you already install Firefox and firebug. and you already have the Ext JS library of course :). if you dont have the ExtJS library yet you can download here
lets start with the array grid (grid that the data is load from array). I use Ext-2.2 for this tutorial.
1. write the html first (array-grid.html)

<html>
<head>
<title>Array Grid Sample</title>

<link rel=”stylesheet” type=text/css” href=”ext-2.2/resources/css/ext-all.css” />
 

<script type=text/javascript” src=”ext-2.2/adapter/ext/ext-base.js”></script>
 

<script type=text/javascript” src=”ext-2.2/ext-all.js”></script>
 
code here ( see part 2 ) –>
<script type=text/javascript” src=”array-grid.js”></script>
</head>
 
<body>
 

<div id=”grid-example”></div>
</body>
</html>
 
2. write the javascript (array-grid.js)
make sure your code to build grid is inside this code:

Ext.onReady (function () {
// place your code here
});
 
here the javascript code:
// make sample array data
 
var myData = [
[’3m Co’,71.72,0.02,0.03,9/1 12:00am’],
[’Alcoa Inc’,29.01,0.42,1.47,9/1 12:00am’],
[’Altria Group Inc’,83.81,0.28,0.34,9/1 12:00am’],
[’American Express Company’,52.55,0.01,0.02,9/1 12:00am’],
[’American International Group, Inc.’,64.13,0.31,0.49,9/1 12:00am’],
[’AT&T Inc.’,31.61,-0.48,-1.54,9/1 12:00am’],
[’Boeing Co.’,75.43,0.53,0.71,9/1 12:00am’],
[’Caterpillar Inc.’,67.27,0.92,1.39,9/1 12:00am’],
[’Citigroup, Inc.’,49.37,0.02,0.04,9/1 12:00am’],
[’E.I. du Pont de Nemours and Company’,40.48,0.51,1.28,9/1 12:00am’],
[’Exxon Mobil Corp’,68.1,-0.43,-0.64,9/1 12:00am’],
[’General Electric Company’,34.14,-0.08,-0.23,9/1 12:00am’],
[’General Motors Corporation’,30.27,1.09,3.74,9/1 12:00am’],
[’Hewlett-Packard Co.’,36.53,-0.03,-0.08,9/1 12:00am’],
[’Honeywell Intl Inc’,38.77,0.05,0.13,9/1 12:00am’],
[’Intel Corporation’,19.88,0.31,1.58,9/1 12:00am’],
[’International Business Machines’,81.41,0.44,0.54,9/1 12:00am’],
[’Johnson & Johnson’,64.72,0.06,0.09,9/1 12:00am’],
[’JP Morgan & Chase & Co’,45.73,0.07,0.15,9/1 12:00am’],
[’McDonald\’s Corporation’,36.76,0.86,2.40,9/1 12:00am’],
[’Merck & Co., Inc.’,40.96,0.41,1.01,9/1 12:00am’],
[’Microsoft Corporation’,25.84,0.14,0.54,9/1 12:00am’],
[’Pfizer Inc’,27.96,0.4,1.45,9/1 12:00am’],
[’The Coca-Cola Company’,45.07,0.26,0.58,9/1 12:00am’],
[’The Home Depot, Inc.’,34.64,0.35,1.02,9/1 12:00am’],
[’The Procter & Gamble Company’,61.91,0.01,0.02,9/1 12:00am’],
[’United Technologies Corporation’,63.26,0.55,0.88,9/1 12:00am’],
[’Verizon Communications’,35.57,0.39,1.11,9/1 12:00am’],
[’Wal-Mart Stores, Inc.’,45.45,0.73,1.63,9/1 12:00am’]
];
 
// create the data store
var store = new Ext.data.SimpleStore({
fields: [
{name: ‘id’, type: ‘int’},
{name:name},
{name: ‘position’},
{name: ‘ambition’}
]
});
 
// load data
 
store.loadData(sampleData);
 
// create the grid
var grid = new Ext.grid.GridPanel({
store: store,
columns: [
{id:’id’,header: “ID”, width: 30, sortable: true, dataIndex: ‘id’},
{header:Name, width: 100, dataIndex:name},
{header: ‘Position’, width: 100, dataIndex: ‘position’},
{header: ‘Ambition’, width: 250, dataIndex: ‘ambition’}
],
stripeRows: true,
height:180,
width:500,
title:’Straw Hats Crew’
});
 
// render grid to the grid-example element (see p array-grid.html)
grid.render(’grid-example’); 

 

Menggunakan JavaScript di SMARTY TEMPLATE

Menggunakan JavaScript di SMARTY

Untuk menggunakan javascript di smarty template tidak bisa hanya menaruhkan perintah javascript yang ingin di gunakan kedalam file html-nya. Di Smarty harus di tembahkan sebuah tanda agar javascript yang kita gunakan bisa di baca oleh smarty.
Sebelum menulis javascript kita harus menggunakan tanda {literal}, dan di akhiri dengan {/literal}.

Contoh :
{literal}

{/literal}

PHP Maker dan PHP Report Maker

PHPMaker 


 PHPMaker adalah otomatisasi alat canggih yang dapat menghasilkan set lengkap PHP dengan cepat dari database MySQL. Menggunakan PHPMaker, Anda dapat segera membuat situs Web yang memungkinkan pengguna untuk melihat, mengedit, mencari, menambahkan dan menghapus records di Web. PHPMaker dirancang untuk fleksibilitas tinggi, banyak pilihan bagi Anda untuk membuat aplikasi PHP yang paling sesuai dengan kebutuhan anda. Kode yang dihasilkan bersih, jelas dan mudah untuk menyesuaikan. PHP script yang dapat dijalankan baik pada Windows atau Linux / Unix server. PHPMaker ton Anda bisa menghemat waktu dan sangat cocok untuk pemula dan keduanya sama-sama mengalami develpers. Untuk mendapatkanya silahkan download di alamat ( http://www.hkvstore.com/phpmaker/ )


Dalam pengembangan suatu perangkat lunak sistem informasi, dimana didalamnya
terdapat beberapa proses utama yakni insert, view, update dan delete ke suatu database atau
yang biasa disebut dengan manipulasi database,disamping juga beberapa urutan proses lain
yang diperlukan. Berrbagai macam tool telah tersedia saat ini tinggal bagaimana Kita bisa
memanfaatkan tool yang telah tersedia dengan maksimal sehingga dapat meng-efisiensi
waktu dan daya dalam pengerjaan suatu proyek sistem informasi.
Diantara tool-tool yang tersedia untuk pembangunan suatu sistem informasi,
terdapat salah satu tool yang sangat powerfull yakni PHPmaker. PHPmaker adalah suatu
tool yang berguna untuk meng-generate query atau proses-proses utama dalam
pembentukan sistem informasi seperti yang telah dibahas diatas, dimana Kita dapat dengan
mudah meng-generate dari suatu database menjadi file-file php yang nantinya digunakan
untuk proses manipulasi database tersebut yang termasuk didalamnya adalah proses insert,
view, update dan delete.

PHP Report Maker



PHP Report Maker adalah alat yang dapat menghasilkan dinamis PHP Web laporan dari database MySQL. Anda dapat langsung membuat hidup detail dan ringkasan laporan atau crosstabs laporan untuk Website Anda. Flash charting (kolom, bar, line, pie, area, doughnut, multi-seri dan tampan grafik) juga didukung. PHP Lapor Maker dirancang untuk fleksibilitas tinggi, banyak opsi memungkinkan anda untuk menghasilkan laporan yang paling sesuai dengan kebutuhan anda. Kode yang dihasilkan bersih dan mudah untuk menyesuaikan. PHP Lapor Maker ton Anda bisa menghemat waktu dan sangat cocok untuk pemula dan keduanya sama-sama mengalami pengembang. Untuk mendapatkanya silahkan download di alamat ( http://www.hkvstore.com/phpreportmaker/ )


Monday, October 19, 2009

Branding, solusi para freelancer baru

Sebagian besar freelancer yang mengandalkan Freelance Market macam Elance, GetAFreelancer, RentAcode, dan Scriptlance untuk mendapatkan pekerjaan, pasti sudah mengerti bagaimana kerasnya persaingan. Terutama persaingan untuk memenangkan lelang pekerjaan.
Tak jarang lelang proposal kita dikalahkan oleh freelancer dari luar negeri yang jelas-jelas kita tahu mereka minta bayaran dan deadline lebih dari kita, contoh:
untuk pekerjaan membuat aplikasi website anda meminta bayaran $50 dan deadline 1 hari, mereka meminta bayaran $70 dengan deadline 2 hari.

Melihat keadaan seperti ini kadang kita sudah merasa proposal kita-lah yang akan dipilih. Tetapi kenyataan berkata lain, esoknya Anda mendapat email dari freelance market yang isi nya mengatakan bahwa proyek sudah ditutup, dan yang dipilih employer bukan kita, melainkan mereka.
Kenapa? kadang kita bingung kenapa tawaran kita ditolak, padahal Anda tahu pekerjaan tersebut bisa Anda lakukan, dan memang tidak memerlukan waktu yang lama sampai 2 hari seperti yang ditawarkan mereka. Bisa jadi dikarenakan :

Portfolio

Karena rata-rata employer membutuhkan pembuktian yang nyata seperti hasil kerja kita dulu-dulu, dan sebagian besar freelancer yang baru memulai pasti belum mempunyai portfolio atau apapun itu.

Profil

Anda pasti pernah melihat profil-profil dari freelancer-freelancer yang sering memenangkan lelang proyek. Di profil nya kadang ditulis pengalaman-pengalaman mereka. Ada yang menulis hasil-hasil pekerjaannya, dan tidak jarang juga ditulis tempat bekerja dia sebelum nya, atau tempat sekolah dia dahulu.
Tempat bekerja dia sebelumnya? Ya, hal inilah yang saya maksud, sebagai contoh,
Dalam suatu lelang pekerjaan membuat kalkulator, detail proyek sudah anda baca, dan anda merasa ini pekerjaan mudah, karena saya sudah pernah membuat program seperti ini sebelumnya, tetapi ada seseorang dari luar negeri yang mengaku dahulu dia developer di Microsoft atau Google (misalnya :D ) tetapi sekarang sudah resign, atau dia lulusan dari Harvard.
Apakah anda masih percaya kalau misalkan anda memberi penawaran proposal, proposal Anda bakal menang? walaupun harga yang Anda tawarkan mungkin sangat murah. Kalau saya jujur, lebih memilih mencari yang lain saja, secara saingannya mantan developer Microsoft. Daripada capek-capek nulis proposal pakai bahasa inggris, kan mending buat facebook-an hehehehe :D . Jadi intinya meskipun kita belum tahu kalau Ia mantan developer Microsoft beneran, secara nggak langsung mental kita turun kalau sudah dengar begitu, terus kalau misal kita yang jadi employer pasti lebih memilih dia, yang sudah terbukti kualitas nya.
Dari cerita di atas kita tahu satu hal, Nama atau Brand sangat berpengaruh pada penilaian klien. Coba bayangkan enak mana coklat buatan swiss atau coklat buatan tetangga sebelah? secara tidak langsung kita pasti langsung memberi penilaian kalau coklat dari swiss lebih enak daripada coklat buatan tetangga sebelah,  ya kan?
Padahal kita belum mencoba coklat nya. Bisa saja lebih enak coklat tetangga sebelah, soal nya rasa nya manis, coklat swiss kan biasa nya pahit. Back to topic, jadi mungkin kita bisa mempertimbangkan untuk membuat suatu perkumpulan/organisasi freelancer, yang anggota orang-orang Indonesia. Anggota dari perkumpulan nanti nya bisa memakai nama organisasi waktu dia memberi penawaran proposal. Kalau setiap freelancer dari Indonesia mengaku anggota dari oraganisasi itu lama kelamaan pasti timbul branding sendiri di antara para pemberi pekerjaan, yang tentunya sangat membantu buat freelancer baru agar bisa segera mendapat pekerjaan dan juga tentu nya mengharumkan nama Indonesia di mata pemberi pekerjaan.
Rencana ini mungkin masih menjadi wacana, karena jujur, saya pribadi masih kurang pengalaman di hal seperti ini. Tetapi mungkin dari anda ada yang tertarik, bisa menghubungi saya melalui e-mail, atau tinggalin komentar saja di bawah sini.
Kritik, saran dan masukkan yang membangun sangat diharapkan :D

12 Langkah Menjadi Web Developer

Tentu anda sudah mengenal apa web itu. Namun mungkin ada yang belum mengerti bagaimana sih membuat web tersebut. Apa yang harus dipelajari untuk menjadi web developer, dan bagaimana untuk hidup dari profesi web developer. Saya mencoba membuat daftar langkah-langkah yang dapat anda tempuh untuk menjadi seorang web developer berdasarkan pengalaman saya sebagai web developer. Semoga daftar ini dapat membantu anda untuk memulai karir sebagai web developer. Tidak panjang lebar inilah langkah-langkah menjadi seorang web developer:

Belajar bahasa pemrograman web

untuk memulainya tentu anda harus menguasai bahasa pemrograman web. Dan bahasa yang dikuasai tidak cukup 1 bahasa pemrograman saja karena web dibangun diatas beberapa faktor pendukung. Bahasa yang sebaiknya anda pelajari untuk menjadi web developer adalah:
  1. HTML, merupakan bahasa pemrograman web paling dasar dan mutlak harus dikuasai. HTML adalah bahasa untuk menciptakan tampilan web yang anda lihat di browser. HTML membangun struktur tampilan web seperti header, content, footer, menu, dan sebagainya. Namun untuk menciptakan tampilan yang lebih baik tidak cukup dengan HTML saja masih diperlukan bahasa lain untuk menciptakan tampilan yang lebih baik.
  2. CSS, inilah bahasa pelengkap HTML. Tanpa CSS kita tak akan dapat menciptakan tampilan yang indah. CSS adalah bahasa yang mengatur layout dan tampilan dari web tersebut misalnya warna background, tulisan, font, ukuran, dan sebagainya. Dengan kombinasi HTML dan CSS maka kita dapat menciptakan tampilan yang baik dan indah.
  3. Bahasa scripting web misalnya PHP, ASP, ColdFusion, Python, dan lainnya. Bahasa pemrograman ini adalah bahasa yang akan kita gunakan untuk membangun aplikasi web. Kalau tadi HTML dan CSS merupakan pembangun tampilan dari web tersebut maka bahasa scripting ini adalah pengontrol logika aplikasi web. Bahasa ini menghubungkan aplikasi web kita dengan database dan mengolah input output dari aplikasi kita. Sebaiknya anda memilih salah satu bahasa untuk didalami. Saya menyarankan menggunakan PHP karena bahasa inilah yang paling banyak digunakan untuk membuat aplikasi web. Dengan sifatnya yang terbuka dan bebas biaya maka kita dengan mudah mempelajari dan membuat aplikasi web dengan mudah. Kelengkapan dokumentasi dan tutorial PHP juga sangat banyak sehingga anda tidak akan kesulitan mempelajari bahasa yang satu ini.
  4. SQL, merupakan bahasa scripting database. Database adalah aplikasi pengolah data yang menyimpan data untuk digunakan bersama aplikasi web kita. Database ada bermacam-macam misalnya MySQL, SQLite, Oracle, PostgreSQL, SQL Server, dan database lainnya. Sangat disarankan untuk memilih salah satu untuk didalami. Walaupun SQL merupakan standar bahasa scripting database namun dengan mempelajari salah satu scripting database yang ada maka kita akan dimudahkan dalam menyimpan, mengelola, dan memberikan output data dengan tersedianya fungsi-fungsi yang akan membantu anda bekerja dengan database.
  5. Javascript, bahasa scripting yang berjalan di browser. Bahasa ini tidak mutlak dipelajari, namun kalau anda ingin membuat web dengan efek animasi, dan web yang lebih interaktif maka javascript akan membantu anda. Dibandingkan dengan flash untuk membuat efek tertentu, saya lebih memilih Javascript. Kenapa, karena Flash masih memerlukan installasi plugin sedangkan Javascript sudah didukung secara default oleh browser modern.

Pelajari teknik penyelesaian kasus-kasus pemrograman web

Misalnya bagaimana pemrograman yang berhubungan dengan tanggal, bagaimana menghubungkan web dengan aplikasi lainnya, bagaimana mengakses database, dan beragam teknik lainnya. Dengan mengetahui teknik pemrograman dan penyelesaian kasus-kasus pemrograman web maka anda dapat lebih efektif dalam pemrograman aplikasi web anda.

Pelajari metode pengembangan web yang baik

Ada banyak metode pengembangan seperti RUP, Agile, dan USDP tapi pada dasarnya mengfokuskan pada analisa, perancangan, pengembangan, dan pengujian. Lakukan pengembangan aplikasi dengan tahapan-tahapan diatas. Lakukan analisa apa yang diperlukan oleh aplikasi ini, kemudian rancang terlebih dahulu aplikasi anda sebelum melakukan coding, lakukan pengembangan atau coding, dan uji coba terlebih dahulu sebelum dirilis atau didelivery. Anda dapat kembali ketahap sebelumnya bila diperlukan. Yang penting, tentukan sendiri metode yang paling baik seusai dengan diri anda.

Belajar mengolah gambar

Buat apa? Karena dengan gambar maka kita dapat memberikan informasi lebih cepat dan efektif dibandingkan dengan mendeskripsikan dalam text yang panjang. Cukup pelajari Adobe Photoshop atau Adobe Firework yang merupakan software paling umum untuk keperluan gambar web. Pelajari bagaimana membuat gambar seperti icon, background, patern, dan gambar lainnya. Sebenarnya bukan merupakan keharusan karena untuk menciptakan gambar untuk tampilan web karena hal ini lebih cenderung merupakan pekerjaan web designer. Namun bila anda bs membuat gambar untuk web maka akan lebih membantu dibandingkan anda harus meminta tolong teman anda untuk keperluan gambar web anda.

Gunakan framework

framework merupakan sekumpulan fungsi dan library yang dapat memudahkan pemrograman anda. Gunakan framework sesuai dengan bahasa pemrograman anda. Misalnya ASP menggunakan .NET Framework. Ruby dengan Rails Framework, Python dengan Django Framework, dan PHP yang lebih banyak lagi seperti Prado, Symfony, CakePHP, dan framework lainnya. Lakukan riset dan tentukan pilihan anda framework mana yang akan anda gunakan dan dalami framework tersebut. Jangan terlalu banyak berpindah-pindah framework karena anda tidak akan memperoleh manfaat maksimal karena pemahaman yang terpecah-pecah. Jadi tentukan framework pilihan anda sesuai minat, dan teknik yang anda senangi.

Pelajari teknik-teknik mengoptimalkan aplikasi anda

Agar aplikasi anda dapat berjalan lebih cepat dan responsif maka anda harus dapat melakukan tuning atau optimalisasi. Pelajari teknik pemrograman web yang baik, pemecahan masalah programming yang efektif, tuning dan optimalisasi database, serta optimasi web server.

Pelajari web server

akan sangat bermanfaat bila anda mempelajari web server agar anda dapat mengetahui bagaimana menjalankan aplikasi anda di web server. Atau bagaimana cara mengoptimalkan aplikasi di web server. Misalnya penggunaan module caching seperti APC, eAccelerator, dan sebagainya. Atau penggunaan file .htaccess untuk menciptakan friendly URL atau URL yang lebih enak dibaca. Dengan mempelajari web server maka anda dapat mengoptimalkan dan menambahkan feature aplikasi anda di server.

Pelajari penggunaan control panel hosting

Karena anda akan banyak berhubungan dengan control panel bila anda menyewa hosting untuk web anda. Control panel yang banyak digunakan antara lain Cpanel, Pleks, ISPConfig, dan sebagainya. Dengan memahami penggunaan control panel maka anda dapat mengoptimalkan aplikasi anda di provider hosting anda.

Ikuti perkembangan teknologi web terbaru

Teknologi web selalu berkembang misalnya munculnya teknologi RSS, PODCasting, dan teknologi lainnya. Pelajari bagaimana membuat dan menggunakan teknologi tersebut di aplikasi anda. Karena aplikasi yang ketinggalan jaman akan ditinggalkan penggunanya juga.

Pelajari manajemen proyek

Suatu pengembangan aplikasi merupakan suatu proyek yang harus di atur, direncanakan, dan dilakukan dengan baik. Dengan mempelajari manajemen proyek maka anda dapat melakukan kolaborasi dengan yang lain dalam mengembangkan aplikasi. Anda juga dapat memperoleh efektifitas dan efisiensi waktu dalam menyelesaikan suatu proyek.

Untuk meningkatkan kemampuan anda, selalu asah kemampuan anda dengan mengerjakan aplikasi web

Entah pekerjaan, atau proyek pribadi. Karena makin banyak aplikasi yang anda buat maka kemampuan anda akan makin baik. Kembangkan ide anda dan realisasikan menjadi suatu aplikasi.Yang terakhir, jangan mau selalu menjadi web developer yang hanya mengerjakan proyek orang lain.

Anda harus membuat suatu aplikasi yang dapat dijadikan produk atau layanan anda sebagai wujud kemampuan anda

Produk dan layanan ini dapat anda jual sehingga anda dapat memperoleh hasil dari kemampuan anda dan menikmati hasilnya. Dibandingkan dengan mengerjakan proyek orang lain secara terus-terusan dan dibayar per-proyek tentu akan lebih baik bila anda mengerjakan 1 produk namun anda memperoleh hasil terus-terusan dengan syarat produk anda memiliki nilai jual yang baik.
Itulah langkah-langkah dasar untuk menjadi seorang web developer menurut pengalaman saya. Langkah diatas tidaklah cukup, hanya langkah dasar saja. Semoga daftar diatas dapat menjadi pembimbing anda dan bahkan dapat menjadikan anda web developer yang lebih baik lagi. Anda harus terus belajar dan berlatih terus serta selalu menerima perkembangan yang ada agar kemampuan anda terus terasah.