Technology

Optimasi Kode Anda untuk Meningkatkan Performa Aplikasi Berbasis PHP

 

   

Jika Anda adalah seorang programmer dan selalu berkutat akan bahasa pemrograman, ada suatu saat Anda akan memperhatikan beberapa faktor agar kode Anda mudah dibaca dan hanya sedikit resource yang dipakai. Kali ini, saya akan berbagi hal-hal yang dapat Anda lakukan agar kode PHP Anda lebih bersih dan resource yang dipakai pun optimal.

Faktor-faktor yang akan diperhatikan dalam hal ini adalah:

  1. Kemudahan kode untuk dibaca
  2. Resource yang dipakai untuk eksekusi kode

Saya punya contoh kode seperti dibawah ini, kode ini akan kita optimasi sedemikian rupa sehingga mampu memenuhi kriteria diatas.

<?php

$x = 'gufron';
$y = 'hai, apa kabar?';

print $x.' : '.$y;

Penamaan variabel

Kode diatas mungkin menurut Anda, itu sudah paling simpel dan sudah tidak bisa dioptimasi kembali. Tapi mengingat kebutuhan kita adalah mudah untuk dibaca, maka orang lain yang membaca kode ini tentu tidak langsung paham maksud Anda. Anda harus memberikan komentar atau membuat variabel yang Anda buat mudah ditebak dan mudah dibaca. Untuk itu kita rubah variabel diatas agar mudah dibaca

<?php

$people = 'gufron';
$action = 'hai, apa kabar?';

print $people.' : '.$action;

Variabel sering digunakan, maka dari itu gunakan nama variabel yang mudah ditebak dan mudah dibaca. Pastikan variabel benar-benar mewakili maksud Anda secara jelas.

Reusable code

Setelah kode diatas mudah dibaca, ada pertanyaan lain yang harus anda jawab terlebih dahulu. Apakah kode diatas akan sering digunakan atau tidak? Jika sering, maka setidaknya anda akan membuat kode seperti dibawah ini dengan kode diatas.

<?php

$people = 'gufron';
$action = 'hai, apa kabar?';

print $people.' : '.$action;

$people2 = 'bot';
$action2 = 'hallo, saya baik-baik saja. bagaimana denganmu?';

print $people2.' : '.$action2;

Diatas dapat dilihat bahwa terjadi kode yang tidak efisien, terjadi duplikasi kode diatas. Padahal, fungsinya sama. Maka dari itu, perlu Anda tuliskan sebuah fungsi yang mudah dan tidak perlu terjadi adanya duplikasi fungsi. Kita bisa optimasi kode diatas seperti dibawah ini.

<?php

function action($people='gufron', $action='hello')
{
	print $people.' : '.$action;
}

action('gufron','hai apa kabar?');
action('bot','hallo, saya baik-baik saja. bagaimana denganmu?');

Optimasi Logika

Kemudian suatu ketika, anda ingin menambah logika tertentu pada fungsi diatas. Misalkan saja, apabila orang tersebut bernama gufron, maka Anda mengganti warna pesannya menjadi biru, lainnya berwarna hitam.

<?php

function action($people='gufron', $action='hello')
{
	if($people == 'gufron')
	{
		print '<span style="color:blue">'.$people.'</span> : '.$action;
	}
	else
	{
		print '<span style="color:black">'.$people.'</span> : '.$action;
	}
}

action('gufron','hai apa kabar?');
action('bot','hallo, saya baik-baik saja. bagaimana denganmu?');

Kode diatas masih bisa dioptimasi. Perhatikan pada logic If…else. Ada suatu aksi yang sama dan hanya satu aksi yang dilakukan, serta if else yang berlaku hanya satu saja, tidak terjadi lebih dari satu if…elseif…else. Anda bisa optimasi seperti berikut.

<?php

function action($people='gufron', $action='hello')
{
	$color = 'black';
	if($people == 'gufron')
		$color = 'blue';

	print '<span style="color:'.$color.'">'.$people.'</span> : '.$action;
}

action('gufron','hai apa kabar?');
action('bot','hallo, saya baik-baik saja. bagaimana denganmu?');

Kode diatas masih sedikit dangerous, karena ada beberapa titik yang akan mempersulit kita apabila terjadi error. perhatikan pada line If yang dirubah.

<?php

function action($people='gufron', $action='hello')
{
	$color = 'black';
	if('gufron' == $people)
		$color = 'blue';

	print '<span style="color:'.$color.'">'.$people.'</span> : '.$action;
}

action('gufron','hai apa kabar?');
action('bot','hallo, saya baik-baik saja. bagaimana denganmu?');

Hal diatas ditujukan, ketika if diatas hanya mengandung satu sama dengan saja, anda bisa dengan mudah mengetahuinya.

Optimasi Logika didalam Looping / Perulangan

Anggap saja, ketika anda memanggil fungsi action, fungsi tersebut akan memberikan output sebanyak 10 kali dengan output yang sama. Namun, ada beberapa angka, misalkan 4 dan 7 yang akan anda skip atau tidak perlu ditampilkan. Biasanya kode diatas akan berubah menjadi seperti ini.

<?php

function action($people='gufron', $action='hello')
{
	$color = 'black';
	if('gufron' == $people)
		$color = 'blue';

	for($increment = 1; $increment<=10; $increment++)
	{
		if($increment != 4 and $increment != 7)
			print $increment.'. <span style="color:'.$color.'">'.$people.'</span> : '.$action;
	}
}

action('gufron','hai apa kabar?');
action('bot','hallo, saya baik-baik saja. bagaimana denganmu?');

Hal diatas, akan melakukan sesuai keinginan kita. Tapi kode diatas masih bisa dioptimasi kembali. Jika menggunakan kode diatas, maka ketika looping berjalan dan mencapai angka 4 atau 7, logika akan tetap dijalankan, meskipun tidak masuk dalam kriteria. Tujuannya adalah, kita harus benar-benar skip atau melompati angka 4 dan 7. Pada loop, ada keyword continue, untuk skip looping dengan kondisi tertentu. Dan juga logika diatas juga masih kita optimasi, angka 4 dan 7 bisa kita masukkan pada array lalu, kita gunakan fungsi in_array() untuk mengetahui apakah angka looping masuk dalam array atau tidak. Kode diatas akan menjadi seperti dibawah ini.

<?php

function action($people='gufron', $action='hello')
{
	$color = 'black';
	if('gufron' == $people)
		$color = 'blue';

	for($increment = 1; $increment<=10; $increment++)
	{
		if(in_array($increment, array(4, 7)))
			continue;
			
		print $increment.'. <span style="color:'.$color.'">'.$people.'</span> : '.$action;
	}
}

action('gufron','hai apa kabar?');
action('bot','hallo, saya baik-baik saja. bagaimana denganmu?');

Nah, sampai disini dulu tentang optimasi kode PHP Anda. Jika ada yang ingin Anda tanyakan atau kritik dan saran, Anda dapat menyampaikannya melalui kolom komentar dibawah artikel ini. Semoga bermanfaat. :)


Artikel Terkait

4 komentar

Berikan Komentar

Your email address will not be published. Required fields are marked *