Sunday, December 30, 2007

Standard orang "PHP"

Beberapa waktu lalu di milist id-php sempat ramai ngebahas tentang pekerjaan, gaji, dan kriteria seorang programmer PHP. Milist ini menurut gue emang cukup cuek soal OOT subject. Setiap kali ada orang posting lowongan pekerjaan pasti ajah dikomentarin. Gaji gak jelas lah, nyari superman lah, dsb.

Pada akhirnya ada orang yang bertanya sebenarnya standard seorang programmer PHP itu apa sih? Apa yang sepatutnya diperhatikan dalam merekrut seorang programmer PHP. Apakah seorang programmer PHP sebaiknya tamatan S1? Harus bisa linux? Harus ini, harus itu? Cukup panas memang, dan gue sendiri sempat menyampaikan pendapat gue dalam diskusi ini.

Saturday, December 29, 2007

Tweak the Fox

Buat gue, Firefox gak cuma sekedar sebuah Browser. Buat gue, Firefox gak cuma sekedar Aplikasi. Browser yang satu ini sudah jadi teman setia gue sejak.. hmm.. katakanlah 2004. Awalnya memang gue pakai hanya sebagai browser. Tapi, semakin gue kenal, semakin gue gak bisa lepas dari browser satu ini.

Firefox sudah membantu gue dalam bekerja membangun berbagai macam aplikasi web. Berkat berbagai macam AddOn yang dimiliki, Firefox sudah membantu gue untuk bekerja lebih efektiv dan optimal. Kesalahan dalam menulis aplikasi lebih mudah untuk ditemukan, diatasi atau bahkan mungkin dihindari.

Dalam kesempatan ini gue pengen berbagi informasi tentang beberapa Firefox AddOn yang umum gue pakai untuk menunjang kerja gue dalam membangun aplikasi web.

Wednesday, December 19, 2007

KMKI.Net 4.0

Vierte version von dem KMKI Website mit vielen neuen Feature und Konzepte. Dieses Projekt befindet sich zur zeit noch in entwicklungsphase.

Tuesday, December 18, 2007

Jobcluster

Jobcluster ist eine Jobportal der Firma Global Business Group AG mit sitzt in Fulda. Für dieses Projekt bin ich als Core Entwickler verantwortlich für Datenbank- und Softwarentwurf.

Opuzz

Opuzz ist eine marke der Firma Adaptis GmbH eine Tochterunternehmen der Personaldienstleistung Job AG mit sitzt in Fulda. Opuzz ist eine Webbasiertes Zeitwirtschaftsystem. Im rahmen eine studienbegleitende Tätigkeiten habe ich die gelegenheit dieses System mitzuentwickeln.

Monday, December 17, 2007

Gundam 3D

Gundam Seed Destiny as a 3D model. This project is a combination between a "dream comes true" ambition and "i want my credit" ambition.



On one side i give all my effort to make this project as good as it can get, but on the other side, i don't have much time for that.

I work with 2 other colleague on this project, and the main idea behind all of this, is actually a nursery or a play room or whatever you can say it. It's a room where a child used to play with his toy.

Well actually i'm expecting a space for this with lots of space station, space shuttle and something like that, but then again, i am in a group for this project, and i am not the only one that makes decision. We choose the easiest way to finish this project because for the other, the credit is more important.

Online Ticket System

Im Sommer 2005, habe ich die Gelegenheit eines Online Ticket System für ein Basketball Verein BG Karlsruhe zu entwickeln. Diese Online Ticket System sollte eines teil des gesamten Website Portal der Verein integriert werden.

KMKI.Net 3.0

Im Jahr 2004, habe ich die gelegenheit Einen Webportal für eine Indonesische Studenten Verbindung zu entwickeln. Diese Webportal sollte die statische Website des Studenten Verbindung ersetzen. Für dieses Projekt würde eine eigene Content Management System entwickelt.

COMP4site Content Management System

Im Rahmen meines Praktikums an der firma COM.Positum GmbH, habe ich die Gelegenheit die Firmeneigene Entwicklung des Content-Managament Systems "COMP4site" weiterzuentwickeln.

Weihenstephan Online Shop

Im Rahmen meines Praktikum bei Digital Advertising AG (jetzt Elephant Seven AG), habe ich die Möglichkeit eine Online Shop System für die Kunden Firma Molkerei Weihenstephan zu entwickeln. In diesem Projekt bin ich zuständig für die Realisierung der vorgegebenen Konzept und Layout.

Newsletter System

Im Rahmen meines Praktikum bei Digital Advertising AG (jetzt Elephant Seven AG), habe ich die Möglichkeit die firmeninterne Newsletter System zu entwickeln. In diesem Projekt bin ich zuständig für die Realisierung der vorgegebenen Konzept und Layout.


Das große Herausforderung liegt an die Anforderung der Kapazität des Systems, die über 3000 Empfänger belastet werden können.

KMKI.Net 2.0

Einen Präsentation Website für eine Indonesische Studenten Verbindung. Ich habe die Gelegenheit die Website neu zu entwickeln. Für diesen Projekt habe ich die Möglichkeit das gesamte Layout und Navigation neu zu Konzipieren.

Internetauftritt Firma Hoelz Software

Einen Präsentation Website für die Firma Hoelz Software.

Programmierung eines Bild Konverter

Im Rahmen meines Vorpraktikums, habe ich die Möglichkeit eine Applikation mit Programmierersprache C durchzuführen. Meine Aufgabe ist: Entwicklung eines Bild Konverters für eine CAAD Apllikation Spirit 10.

Sunday, December 16, 2007

Impressum

Verantwortliche Ansprechperson: Arthur Purnama

Für eine schnelle, elektronische und unmittelbare Kommunikation verwenden Sie bitte den Kontakt Formular.

Gemäß § 28 BDSG widerspreche ich jeder kommerziellen Verwendung und Weitergabe meiner Daten.

Hinweis auf die Verwendung von externen Links im Sinne des EGG vom 21.12.2001
In einigen Bereichen dieser Blog verweise ich zu Anschauungszwecken, beziehungsweise zu Zwecken der Verdeutlichung von Projektrealisierungen, auf Homepages Dritter. Durch einen Klick auf diese externen Links verlassen Sie den Bereich der Blog.

Datenschutzhinweis
Datenschutz Personenbezogene Daten werden nur mit Ihrem Wissen und Ihrer Einwilligung erhoben. Auf Antrag erhalten Sie unentgeltlich Auskunft zu den über Sie gespeicherten personenbezogenen Daten. Verwenden Sie bitte dazu den Kontakt Formular.

Haftungsausschluß für die Verantwortung über Links und fremde Inhalte
Die Inhalte dieses Webprojektes wurden sorgfältig geprüft und nach bestem Wissen erstellt. Aber für die hier dargebotenen Informationen wird kein Anspruch auf Vollständigkeit, Aktualität, Qualität und Richtigkeit erhoben. Es kann keine Verantwortung für Schäden übernommen werden, die durch das Vertrauen auf die Inhalte dieser Website oder deren Gebrauch entstehen.

Urheberrechtshinweis
Die meisten Illustrationen unterliegen den Urheberrechten von: Blogger
Falls Sie vermuten, dass von dieser Website aus eines Ihrer Schutzrechte verletzt wird, teilen Sie das bitte umgehend per Kontakt Formular mit, damit zügig Abhilfe geschafft werden kann. Bitte nehmen Sie zur Kenntnis: Die zeitaufwändigere Einschaltung eines Anwaltes zur für den Diensteanbieter kostenpflichtigen Abmahnung entspricht nicht dessen wirklichen oder mutmaßlichen Willen.

Friday, September 14, 2007

AJAX Tutorial

Sudah banyak tutorial tentang teknologi seperti ini di internet. Gue gak mau istilahnya "menambahkan" informasi yang sudah ada, toh isinya ya mirip-mirip semua. Katakan saja gue pengen "memperkaya" informasi dengan artikel gue ini.

Artikel ini dipublikasikan dalam edisi cetak Buletin KMKI 2006.

Aplikasi web belakangan ini memiliki banyak kelebihan dibandingkan aplikasi desktop pada umumnya. Dengan Aplikasi web kita dapat mencakup target pasar yang lebih besar. Dan terlebih lagi aplikasi web lebih mudah dalam pengembangan dan instalasinya.

Meskipun begitu, aplikasi web tidak bisa selalu kita lihat sebagai sejenis “Rich Client”.Dan dari segi kemudahan dalam penggunaan tidak selalu sama seperti aplikasi desktop pada umumnya.

Untuk memecahkan masalah ini, sudah ada teknologi yang dapat digunakan. Teknologi yang sebenarnya tidak terlalu baru di bidang aplikasi web yang ingin kita bahas disini adalah AJAX.

AJAX bukan hanya tim sepakbola dari Amsterdam, tapi juga merupakan singkatan dari Asynchronous JavaScript And XML. AJAX bukanlah semata-mata sebuah bahasa pemrogramman baru, akan tetapi adalah sebuah tehnik (mungkin kita bisa bilang trik) untuk membuat aplikasi web lebih baik, cepat dan lebih interaktiv.

Kenapa dibilang trik? Karena AJAX menggunakan standard teknologi umum di bidang Aplikasi web, antara lain: Javascript, XML, HTML dan CSS. Standard-standard ini sudah di definisikan secara baik dan didukung oleh browser-browser umum. Maka dari itu Teknologi AJAX juga merupakan teknologi yang tidak tergantung pada browser atau operating system tertentu (Cross-Platform, Cross-Browser Technology).

Tehnik ini membantu Website untuk menjadi lebih responsif dengan cara berkomunikasi dengan web-server lewat "jalan belakang". Hal ini lebih baik daripada kita harus meminta web-server mengirimkan seluruh informasi dalam satu halaman.

Sebuah Client dalam Aplikasi web pada umumnya akan mengirimkan request ke web-server. Setelah request tersebut di proses, web-server akan mengirimkan satu halaman website utuh ke Client. Karena web server selalu mengirimkan halaman web yang utuh maka aplikasi web bisa menjadi cukup pelan dan mengurangi kemudahan dalam penggunaan aplikasi tersebut.

Dengan AJAX kita dapat mengirim dan menerima data tanpa harus me-reload seluruh halaman web. Hal ini dapat dilakukan dengan mengirimkan HTTP Request (lewat jalan belakang) pada web server, dan merubah sebagian dari halaman web menggunakan Javascript setelah webserver mengirimkan kembali data yang telah diproses. XML adalah Format yang digunakan dalam penerimaan data dari web server, meskipun Text biasa dapat juga digunakan.

Untuk lebih jelasnya marilah kita mencoba membuat sebuah Website kecil yang menggunakan AJAX.

Pertama-tama kita membuat satu halaman html yang berisikan sebuah tombol. Kita namakan index.html

[index.html]
<html>
  <head>
    <title>Ayo Belajar AJAX</title>
  </head>
  <body>
    <input type="button" name="tombol" value="tekan disini"
        onclick="doAJAX('container')" />
    <div id="container"></div>
  </body>
</html>
Baris ke 6 adalah tombol kita. Baris ke 8 adalah sebuah container dimana kita akan menaruh informasi baru yang akan kita terima dari web-server. Tombol kita memiliki sebuah onclick attribut dimana apabila kita menekan tombol tersebut fungsi javascript doAJAX akan dipanggil dan diproses.

Sekarang kita buat lagi satu html file, akan tetapi dalam file ini kita hanya membuat sebagian dari sebuah file html utuh. Kita beri nama biru.html

[biru.html]
<table width="100" height="100" style="background-color: blue;">
  <tr>
    <td align="center" valign="middle">
      Biru
    </td>
  </tr>
</table>
Disini kita membuat sebuah table dengan lebar 100 pixel dan tinggi 100 pixel, berlatar belakang biru dan berisikan tulisan "Biru" yang terletak pada posisi tengah baik horizontal maupun vertikal.

Kita akan mencoba dengan AJAX memasukkan sebagian informasi yang diberikan oleh biru.html ke dalam index.html, lebih tepatnya ke dalam div yang kita beri nama "container". Untuk itu kita sekarang akan membuat javascript untuk penggunaan AJAX. Kita beri nama javascript.js. jangan lupa untuk menambahkan link ke javascript.js di bagian head dari index.html sebagai berikut:

[index.html]
<html>
  <head>
    <title>Ayo Belajar AJAX</title>
    <script language="javascript" type="text/javascript" 
        src="javascript.js" />
  </head>
  ...
</html>
[javascript.js]
var detect = navigator.userAgent.toLowerCase();

function checkIt(string){
  place = detect.indexOf(string) + 1;
  thestring = string;
  return place;
}

if (checkIt('msie')){
  browser="ie"
}else{ 
  browser="other";
}
Baris 01 sampai baris 13 merupakan code yang akan membantu kita dalam menciptakan HTTP Request Object karena Internet Explorer menggunakan panggilan yang berbeda dengan Browser lainnya.
function createRequestObject() {
  var requestObject;
  requestObject = false;
  if(browser == "ie"){
    if( window.ActiveXObject ){
      for( var i = 5; i; i-- ){
        try{
          if( i == 2 ){
            requestObject = new ActiveXObject( "Microsoft.XMLHTTP" );
          } // try to use the latest msxml dll
          else{
            requestObject = new ActiveXObject( 
                "Msxml2.XMLHTTP." + i + ".0" );
          }
          break;
        } catch( excNotLoadable ){
          requestObject = false;
        }
      }
    }
  }else{
    requestObject = new XMLHttpRequest();
  }
  return requestObject;
}
var ajaxObject = createRequestObject();
Disini membuat sebuat fungsi Javascript dengan nama createRequestObject. Dimana pada akhirnya akan dipanggil dan disimpan di variable ajaxObject. Fungsi ini mempersiapkan HTTP Request Object untuk digunakan dalam memberikan request pada web server. Karena internet explorer menggunakan ActiveX dalam HTTP request object maka diperlukan code dari baris 17 hingga baris 33.

Langkah selanjutnya adalah menuliskan fungsi doAjax yang akan dipanggil ketika kita menekan tombol. Fungsinya didefinisikan sebagai berikut:
var containerId = null;
function doAJAX(getContainerId) {
  containerId = getContainerId;
  ajaxObject.open('GET', 'biru.html');
  ajaxObject.onreadystatechange = handleResponseDoAJAX;
  ajaxObject.send(null);
}
Disini kita dapat melihat pada baris ke 43 kita mencoba membuka komunikasi dengan webserver, dan meminta informasi tentang data biru.html. baris ke 42 memberitahu kita untuk memanggil fungsi handleResponseDoAJAX apabila kita mendapat respons dari webserver.
Fungsi handleResponseDoAJAX didefinisikan sebagai berikut:
function handleResponseDoAJAX() {
  if (ajaxObject.readyState == 4) {
    results = ajaxObject.responseText;
    document.getElementById(containerId).innerHTML = results;
  }
}
Disini kita dapat melihat bahwa apabila web server merespons dengan status bernilai 4 maka itu berarti proses sudah selesai dan kita dapat memanggil hasilnya. Baris ke 50 menunjukkan pengambilan data dari biru.html dan menyimpannya dalam variable results. Dan pada baris 48 kita memasukkan hasil tersebut ke dalam container.

Buat kalian yang suka serverside scripting seperti php, asp atau jsp kalian bisa membuat ajax memanggil script kalian, sehingga kalian bebas untuk menentukan apa yang akan kalian masukkan ke container. Sebagai contoh:
var containerId = null;
function doAJAX(getContainerId, modulId, modulName) {
  containerId = getContainerId;
  ajaxObject.open('GET', 'index.php?mod='+modulName+'&id='+modulId);
  ajaxObject.onreadystatechange = handleResponseDoAJAX;
  ajaxObject.send(null);
}
So selamat mencoba.

Semua file dalam tutorial ini juga bisa di download disini.

Tuesday, September 11, 2007

Hello World

Hello World! Welcome to my Blog. Finally i'm finish polishing, designing, scripting and tweaking this Blog. Honestly i can't hold it, the last few months i just stick on this blog try to tweak it the way i pleased. For now i'm staisfied with the result. Now its the time to fill it with some content huh? Well i hope you enjoy it.

digitalXPerience is more like a concept for me. The concept of sharing your experiences on a blog. The definition of "experience" is in my opinion very wide, that suits perfectly to what i want to write. I can write almost everything, considering that was my experience. I don't want to write some "copy and paste" thing here, because it will be against the concept itself.

Language will be the next thing worth to consider. Well, i will write in 3 Languages: Indonesia, English and Deutsch. I don't care. My Blog is my opportunity to learn how to write, and I will write it with languages i can cope with. Which language i choose will depends on many aspects.

Once again i hope you enjoy it. Feedback will be very welcome.


Arthur Purnama