Custom Search

Sunday, May 25, 2008

Perspektif pada Balanced Scorecard

Banyak metoda untuk mengukur keberhasilan suatu perusahaan atau organisasi. Beberapa tahun kebelakang ukuran keberhasilan itu kebanyakan dinilai dari financial performance dan atau market share saja, walaupun sekarang juga masih banyak yang mengunakan ukuran tersebut.

Di era Teknologi Informasi dan Komunikasi saat ini banyak pelaku di bisnis ini lebih mengutamakan kepada pertumbuhan (growth) dibandingkan dengan financial. Kita ketahui bahwa bisnis TIK memerlukan comunity yang menggunakan produknya (hardware/software/services/others) dan belum tentu comunity tadi membayar untuk produk tersebut secara langsung. Keuntungan akan didapat setelah comunity terbentuk menjadi loyal comunity.

Di era TIK ini, banyak pelaku bisnis yang menggunakan Balanced Scorecard dengan hasil yang sangat menakjubkan. Pendekatan yang dilakukan pada Balanced Scorecard menghubungkan strategi yang ada dalam suatu organisasi/perusahaan, mulai dari visi, critical success factor(dalam hal ini saya analogikan pada rencana strategi), dan pengukuran performansi keberhasilan. Pengukuran dalam Balanced Scorecard dibagi kedalam empat perspektif : Customer, Internal Business, Innovation and Learning, dan Financial Perspective.

Perspektif pelanggan menggunakan ukuran berapa “nilai” yang diberikan kepada pelanggan dilihat dari segi waktu, kualitas, performansi dan layanan, dan biaya. Contohnya ukuran kecepatan waktu mulai dari permintaan sampai dengan pengiriman sampai ditangan pelanggan, tingkat kepuasan pelanggan terhadap produk kita, tingkat penjualan terhadap produk baru, dan atau banyaknya service call yang dilayani.

Pada perspektif internal dapat mengevaluasi ekspektasi yang diharapkan pelanggan dapat terpenuhi melalui perbaikan proses di internal organisasi tersebut. Disini juga kita dapat mengukur tingkat keahlian dan produktifitas karyawan, kualitas yang dihasilkan oleh organisasi tersebut, dan atau sistem informasi yang baik yang berjalan dalam organisasi.

Dari sisi perspektif inovasi dan pembelajaran dari suatu organisasi kita dapat mengukurnya melalui, peningkatan dan inovasi yang berkelanjutan terhadap produk-produk yang dimiliki. Kita harus garis bawahi bahwa produk disini tidak selamanya berupa barang, pelayanan dan hal-hal lain yang bersifat jasa pun adalah produk. Ukuran yang diberikan antara lain banyaknya produk-produk baru yang dihasilkan dan persentase kebrhasilan penjualannya, tingkat penestrasi terhadap market baru, atau implementasi SCM (supply Chain Management), dll.

Apabila target-target diatas dapat terpenuhi maka efeknya akan mengimbas pada perspektif finansial juga. Finansial disini termasuk mengukur pendapatan dan pengeluaran, lebih dalamnya lagi ROI (return on investment), tingkat penjualan, pertumbuhan market share, dll.

Hal terpenting yang harus kita pahami adalah bagaimana suatu organisasi mendefinisikan apa yang ingin dicapai serta membuat ukurannya yang selanjutnya terus memonitor progres yang telah dicapai. Selanjutnya kita bisa melihat apakah tujuan kita akan tercapai atau tidak.

Balanced Scorecard diukur dalam jangka pendek dan jangka panjang dan di evaluasi setiap bagian yang ada dalam suatu organisasi yang akan memberikan kontribusi untuk mewujudkan setiap tujuan. Balanced Scorecard dapat diterapkan oleh semua jenis organisasi dan semua jenis industri baik profit maupun non-profit.


Copyright Eddy nurmanto

Sunday, March 09, 2008

Cookies on PHP

Introduction

Cookies have long been used in PHP scripts, and are a very useful function. But what exactly are cookies? Maybe you have used then, but you still don't know exactly what they are. Or you are completely new to cookies? It doesn't matter, because in this tutorial I will show you exactly what cookies are, and what they are used for.

Cookies in a nutshell

Cookies are small pieces of information that is stored on the computer of your visitors. Each browser handles it differently, but most simply store the information in a small text file. Internet Explorer has a special folder, which can be found in your C:\Windows or C:\Windows\System32 folder. You can delete all your cookies, by going to the Options and 'Clearing Cookies' or deleting them by hand. I don't recommend this though.

Almost every website uses cookies. If you go to Amazon.com, you will get several cookies. The same goes for CNN.com. Even Google uses cookies! They are extremely useful for (temporarily) storing information. For example, if you have a login system for your visitors, you could save their userid and password (very heavily encrypted!) so they are automatically logged in the next time they visit your website.

Or you could remember their last visit, and highlight everything that is new. And that's just the beginning.

Using Cookies

Using cookies in PHP is extremely easy. In fact, there is nothing to it, because of PHP's inbuilt setcookie() function (http://php.net/setcookie). Have a look at the documentation, and then try the following example:


// Set a cookie
// Cookie name: name
// Cookie value: Dennis Pallett
// Cookie expire: in 24 hours

setcookie ('name', 'Dennis Pallett', time() + (60*60*24));
?>

If you run the code above, then a cookie will be set. That's all. The cookie name and value are pretty obvious. The cookie expire is when the cookie expires, or goes away. Simply use the time() function (http://php.net/time) and add the number of seconds you want to have the cookie available to it. In the example I added 60*60*24=86400 seconds, or 24 hours.

If you have looked at the documentation, you probably noticed there are additional arguments. As the documentation says, the path is to limit a cookie to a specific path on your web server. This is often used when you run multiple instances of the same script in separate directories. You can safely omit this argument when it doesn't matter if the cookie is available site-wide.

There is also the domain argument. This can be used to limit the cookie to a specific sub-domain, e.g. test.example.com. You can also safely ignore this argument, or set it to .example.com (note the beginning period, this is essential!).

Finally, there is also the secure argument. This argument is only used for cookies that are sent over a secure HTTPS connection (SSL). Just ignore this argument, unless you're working with a secure connection.

One thing that should be mentioned is that cookies must be set, before you display any HTML/text. It's probably best if you turn on output buffering by putting ob_start() (http://php.net/ob_start) at the top of your page.

Now that you have set a cookie, you probably want to retrieve the value as well. After all, that is the whole point of using cookies. Thankfully, as PHP is ever so easy, you can retrieve the same way as you retrieve a GET value. See the following example to retrieve the value of the previous example:

echo 'Your name is ' . $_COOKIE['name'];
?>

This should print "Your name is Dennis Pallett". There's nothing more to it. It's just that easy!

Finally, one thing you probably want to do as well is remove cookies. This is as easy as setting them. Simply change the value of the cookie to FALSE, and change the expire date to -3000 seconds. See the following example:

setcookie ('name', FALSE, time()-1000);
?>

Checking if cookies are enabled

Before you start using cookies, you must make sure your visitor has cookies enabled. This can be done with a simply PHP checking script. Unfortunately, the PHP page needs to reload to check for cookies. But this can be done very transparently, and your visitor should hardly notice anything.

The following example will first set a test cookie, then reload the page, and finally check whether cookies are enabled.

error_reporting (E_ALL ^ E_WARNING ^ E_NOTICE);

// Check if cookie has been set or not
if ($_GET['set'] != 'yes') {
// Set cookie
setcookie ('test', 'test', time() + 60);

// Reload page
header ("Location: checkcookies.php?set=yes");
} else {
// Check if cookie exists
if (!empty($_COOKIE['test'])) {
echo "Cookies are enabled on your browser";
} else {
echo "Cookies are NOT enabled on your browser";
}
}
?>

Run the code above, and see what the output is. Check if cookies are enabled in your browser. If they're not enabled, then you can enable them by going to your browser's options. Unfortunately, this is different from each browser, so I can't give you exact instructions. But Google can.

Storing Arrays

One feature of cookies that is often missed in articles is the ability to story arrays. Cookies can be used to store multi-dimensional arrays, which can be extremely useful to store data.

Consider the following code;

setcookie ("name[first]", "Dennis", time() + (60*60*24));
setcookie ("name[last]", "Pallett", time() + (60*60*24));
?>

You can then display these two cookies using the following code:

echo "First Name: " . $_COOKIE['name']['first'];
echo "
Last Name: " . $_COOKIE['name']['last'];
?>

The cookie 'name' is an array, and has multiple values. You can even go deeper and have multi-dimensional arrays, e.g. $_COOKIE['name']['test']['something']['value']. You could store whole arrays of data in cookies. But beware that you don't store too much data, there are certain size limits to cookies.

In Conclusion. . .

Cookies are really versatile, and can be used for a lot of different purposes. Many websites use cookies, and cookies can really make your website more personalized. Using cookies in PHP isn't hard at all, and you should be able to use them without any difficulty.

Before actively using cookies in your website, you must check whether the visitor has enabled them in their browser. If they don't have cookies enabled, you must either redirect to a non-cookies version of your website, or you can make sure your website also works without cookies.

You can download a sample script at http://www.phpit.net/demo/php%20and%20cookies/logger.zip, where cookies are used in a (somewhat) practical way. In this example, there is a logging module, called log.php and a display module, called history.php. Basically, you include the log.php in other PHP pages, and then you can view history.php to lookup all the pages you have viewed and how often. The example uses arrays, and stores them in cookies.

The examples in this article can be downloaded at http://www.phpit.net/demo/php%20and%20cookies/examples.zip.

If you have a really unique practical way of using cookies, please let me know at dennis [AT] nocertainty [DOT] com. I'd really like to hear about interesting ways of using cookies.

PHP and Cookies; a Good Mix!
by: Dennis Pallett

What is AJAX - PHP

The asynchronous JavaScript and XML technology, simply called AJAX technology is one main technology that is playing a major part in Web 2.0 revolution. Web developers are facing a major challenge from several years. They are unable to change the information on a part of the web page with out actually reloading the whole web page. This has really been a big problem over the years and it largely irritates the users while doing small changes in the information on a given web page. AJAX has solved this problem up to a great extent.

The asynchronous JavaScript and XML technology, simply called AJAX technology is one main technology that is playing a major part in Web 2.0 revolution. Web developers are facing a major challenge from several years. They are unable to change the information on a part of the web page with out actually reloading the whole web page. This has really been a big problem over the years and it largely irritates the users while doing small changes in the information on a given web page. AJAX has solved this problem up to a great extent.

With the help of AJAX, web programmers can make the web page to request web server to just change information which is on a part of the web page with out reloading the whole web page. In order to achieve this, SAJAX (Simple AJAX toolkit), which is a toolkit that is totally written in PHP programming language, has been introduced. This tool kit helps the web programmer to integrate the java Script with web server side PHP language. This will make the life of the web developer very easy.

But still, there are some down sides to this AJAX technology also just like with any other web technology, for that matter any technology. One of the major limitations of AJAX technology is related to the option of book marking. This limitation can create many hectic problems for the users of the web sites especially when the information requests to the web server are done through Post and Get methods. One another major limitation is related to the Back option on any web page. When a user presses on this option, this will take the user to first page rather than the last page which he viewed. This can surely surprise many web users who use extensively this option day in and day out.

AJAX technology can be easily used with many programming languages like java, PHP and so on. However, PHP is the most suitable web programming language to implement AJAX technology. Most of tool kits including SAJAX are also written in PHP. This should make the life of PHP programmers even easier.

GOOGLE is extensively using AJAX technology in many of its products, which includes GMail, Google Suggestions and so on. It is promoting this in a big way. So, if you are a web programmer, especially if you are a PHP developer then you should try and implement AJAX technology in your future projects to realize its real potential and power.

Copyright (c) 2006 Darren Dunner

Tuesday, March 04, 2008

How To Draw BarCode with Visual Basic 6

A barcode (also bar code) is a machine-readable representation of information (usually dark ink on a light background to create high and low reflectance which is converted to 1s and 0s).

Originally, barcodes stored data in the widths and spacings of printed parallel lines, but today they also come in patterns of dots, concentric circles, and text codes hidden within images. Barcodes can be read by optical scanners called barcode readers or scanned from an image by special software.

Barcodes are widely used to implement Auto ID Data Capture (AIDC) systems that improve the speed and accuracy of computer data entry. An advantage over other methods of AIDC is that it is less expensive to implement.

Making a simple barcode is not difficult at all, we just need to choose our favorite programming language, and use the simple algorithm to create it.

below is just a simple function to create a barcode, to use it you just need to call the function by send the parameters needed.

Call DrawBarcode(Text1, Picture1)
'Text1 is a component of TextBox and Picture1 is a component of PictureBox

And the function is :

Sub DrawBarcode(ByVal bc_string As String, obj As Object)

Dim xpos!
Dim Y1!
Dim Y2!
Dim dw%
Dim Th!
Dim tw
Dim new_string$
If bc_string = "" Then obj.Cls: Exit Sub

Dim bc(90) As String
bc(1) = "1 1221"

bc(2) = "1 1221"
bc(48) = "11 221"
bc(49) = "21 112"
bc(50) = "12 112"
bc(51) = "22 111"
bc(52) = "11 212"
bc(53) = "21 211"
bc(54) = "12 211"
bc(55) = "11 122"
bc(56) = "21 121"
bc(57) = "12 121"
bc(65) = "211 12"
bc(66) = "121 12"
bc(67) = "221 11"
bc(68) = "112 12"
bc(69) = "212 11"
bc(70) = "122 11"
bc(71) = "111 22"
bc(72) = "211 21"
bc(73) = "121 21"
bc(74) = "112 21"
bc(75) = "2111 2"
bc(76) = "1211 2"
bc(77) = "2211 1"
bc(78) = "1121 2"
bc(79) = "2121 1"
bc(80) = "1221 1"
bc(81) = "1112 2"
bc(82) = "2112 1"
bc(83) = "1212 1"
bc(84) = "1122 1"
bc(85) = "2 1112"
bc(86) = "1 2112"
bc(87) = "2 2111"
bc(88) = "1 1212"
bc(89) = "2 1211"
bc(90) = "1 2211"
bc(32) = "1 2121"
bc(35) = ""
bc(36) = "1 1 1 11"
bc(37) = "11 1 1 1"
bc(43) = "1 11 1 1"
bc(45) = "1 1122"
bc(47) = "1 1 11 1"
bc(46) = "2 1121"
bc(64) = ""
bc(42) = "1 1221"
bc_string = UCase(bc_string)
obj.ScaleMode = 3
obj.Cls
obj.Picture = Nothing
dw = CInt(obj.ScaleHeight / 40)
If dw < dw =" 1 tw = obj.TextWidth(bc_string)
new_string = Chr$(1) & bc_string & Chr$(2)
Y1 = obj.ScaleTop
Y2 = obj.ScaleTop + obj.ScaleHeight - 1.5 * Th
obj.Width = 1.1 * Len(new_string) * (15 * dw) * obj.Width / obj.ScaleWidth
xpos = obj.ScaleLeft
For n = 1 To Len(new_string)
c = Asc(Mid$(new_string, n, 1))
If c > 90 Then c = 0
bc_pattern$ = bc(c)
For i = 1 To Len(bc_pattern$)
Select Case Mid$(bc_pattern$, i, 1)
Case " "
obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &HFFFFFF, BF
xpos = xpos + dw
Case "1"
obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &HFFFFFF, BF
xpos = xpos + dw
obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &H0&, BF
xpos = xpos + dw
Case "2"
obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &HFFFFFF, BF
xpos = xpos + dw
obj.Line (xpos, Y1)-(xpos + 2 * dw, Y2), &H0&, BF
xpos = xpos + 2 * dw
End Select
Next
Next
obj.Line (xpos, Y1)-(xpos + 1 * dw, Y2), &HFFFFFF, BF
xpos = xpos + dw
obj.Width = (xpos + dw) * obj.Width / obj.ScaleWidth
obj.CurrentX = (obj.ScaleWidth - tw) / 2
obj.CurrentY = Y2 + 0.25 * Th
obj.Print bc_string

End Sub


I already use it and it works successfully.