2

Pemahaman tentang Position pada CSS

Posted by JIMBOSTRUGGLE on 9:25 PM

Pemahaman di dalam CSS sangat penting diketahui khususnya buat kalian sebagai web designer yang sering bergelut dalam masalah mengatur layout, tata letak, peletakan suatu elemen di halaman web dan lain-lain…

Beberapa properti yang berperan banyak dalam CSS untuk masalah layout antara lain:

  • Position
  • Float
  • Margin
  • Padding
  • Position
  • Top, Left, Right, Bottom
  • Display

Mungkin ada beberapa properti lainnya, yaa secara umum seperti yang disebutin di atas lah :P .

Nah, kali ini Cheyuz mw ngejelasin tentang position pada CSS…
Selain Float, Position juga sangat berperan penting buat layout, terutama layout yang mempunyai banyak embel-embel ga penting (peace :P ) di dalamnya, misalnya ketika gambar ketika dihover keluar tooltip, gambar berbingkai, membuat taskbar, dan lain-lain…

OK, kita jelasin atu atu ye…

position: static

Position static adalah position default suatu elemen, bisa disebut statis (?) maksudnya dia diam, tata letak normal seperti div biasa, dan pada posisi initop, left, right, dan bottom tidak mempengaruhi posisi elemen tersebut, contohnya:

#wrap{
width:150px;
background:black;
height:75px;
}
.pertama {
width:55px;
background:gray;
position:static;
top:20px;
left:20px;
}
.kedua{
width:55px;
background:red;
top:100px;
left:100px;
clear:both;
}
Ini adalah div pertama
Ini adalah div kedua

Penjelasan:

Jadi, di situ terlihat ada 3 elemen div, yaitu wrapper, div pertama dan div kedua… di situ tidak ada posisi yang terdefinisi terlebih dahulu. Div pertama dan kedua memakai position static. Top dan Left di div kedua tidak berpengaruh terhadap posisi elemen tersebut, karena sifatnya yang statis, dan ngebentuk pola vertical (maksudnya garis baru setelah div sebelumnya) secara normal, kalo pengen nge-horizontal, berikan property float dengan nilai left…

position: relative

Nah, ini dia position yang sering digunakan pada seorang web designer… kalo pake position ini, kamu bisa memanfaatkan left dan top buat ngubah posisi tersebut.. tetapi perlu diingat, sifat position:relative ini adalah dia bakal pindah kalo kita beri nilai top atau left, tetapi relative terhadap dirinya sendiri… (pusing?) kasi contoh daah…

#wrap{
width:150px;
background:black;
height:75px;
}
.pertama{
width:55px;
background:gray;
position:static;
top:10px;
left:15px;
position:relative;
}
.kedua{
position:relative;
width:55px;
background:red;
top:15px;
left:5px;
clear:both;
}
Ini adalah div pertama
Ini adalah div kedua

Penjelasan

Pada contoh di atas, div pertama telah digeser sejauh 10px dari atas (top) dan 15px dari kiri (left). Div kedua tergeser 15px dari atas (top) dan 5px dari kiri (left). Jadi, elemen bakal tergeser kalo dia punya boundary (div pembungkus, wrapper), kita ga bisa menggeser elemen tanpa boundary,,gimana caranya supaya kita bisa menggeser div pertama jauh lebih bawah (dengan menaikkan topnya) hingga menembus garis batas wrap? coba ganti nilai top dari div pertama menjadi 100px. Apa yang terjadi? wow ternyata si div kedua juga ikut tergeser! posisi div kedua akan disesuaikan dengan posisi div yang pertama, terbatas… untuk kasus sperti ini, gunakan absolute.

position: absolute

Kalo kita menggunakan position ini, kita bisa mengatur left, top, right, dan bottom sesuai dengan parent yang mempunyai position relative… jadi elemen yang pake position absolute ini bisa diatur posisinya tergantung parent maupun screen browser.. Contoh CSSnya sperti brikut:

#wrap{
width:150px;
background:black;
height:200px;
position:relative;
}
.ketiga {
position:absolute;
background:red;
width:100px;
bottom:0px;
left:15px;
}
ini adalah div 3 dengan position absolute

position: absolute (terhadap layar)

Kalo kita pake position absolute terhadap layar, maka parent dari div ini jangan memakai position yang “relative”, tetapi statis.. supaya tidak absolute terhadap parent, tapi terhadap layar… contohnya seperti gambar kotak di sudut kanan atas, coba dilihat, hehe….
CSS nya seperti ini:

.kotak {
position:absolute;
background:red;
width:100px;
height:100px;
right:0px;
top:50px;
}
ini contoh CSS yang absolute terhadap screen

Penjelasan

Kotak yang ada di kanan atas adalah kotak yang sudah diberi position absolute (tidak relative terhadap parent) yang relative terhadap screen/layar browser… kalo kita ngeset bottom = 0 dan menghapus top = 50px, maka letak si kotak bakal pindah ke bawah, jadi left, right, top, dan bottom berpengaruh untuk posisi berdasarkan screen

position: fixed

Naah klo yang ini baru beda sama yang lain… yaa sebenernya sama sih.. :P , lebih mirip ke position:absolute.. sama seperti position absolute yang berdasarkan screen browser, tetapi bedanya, state/letak si kotak bakal tetep berada di posisi screen sebelumnya, walaupun browser discroll… contohnya lihat gambar kotak warna hitam di sebelah kanan, dan contoh lain adalah taskbar di bawah :D

.kotak_fixed {
position:fixed;
background:red;
width:100px;
height:100px;
right:0px;
top:250px;
color:white;
}
Ini adalah contoh kotak yang diberi position:fixed

Penjelasan

jadi div yang diberi class kotak_fixed itu diberi position fixed, jadi left, right, bottom, dan top nya mempengaruhi posisi berdasarkan layar browser, dan posisinya selalu tetap, walaupun halaman discroll ke bawah…

Nah, paling itu aja temen2 pembahasannya… :)
teori-teori yang lain tentang CSS juga bakal disampein lagi…

Pokoknya sekarang kita fokus ke web developing.. jadi mulai dari CSS, Javascript, PHP, hingga framework pun bakal dibahas di blog ini…

Mudah-mudahan bermanfaat buat kita sebagai web developing…



0

pengertian JAVA

Posted by JIMBOSTRUGGLE on 9:22 PM
istilah2 d java:
  • J2EE = Java 2 Enterprise Edition, buat server programming
  • J2SE = Java 2 Standard Edition, buat keperluan programming umum
  • J2ME = Java 2 Mobile Edition, buat mobile device kaya HP atau PDA
  • SDK = Software Development Kit
  • JDK = Java Development Kit (penting buat develop aplikasi Java)
  • JRE = Java Runtime Environment (cuma buat jalanin aplikasi Java)
  • NetBeans = IDE buat Java
  • Eclipse = IDE juga
  • IDE = Integrated Development Environment (editor + compiler + debugger + built automation tool + versioning system + dst dst, pokoknya tool all in one buat bikin aplikasi)
  • Swing = library GUI punya Java
  • Struts = framework buat java web application
  • Catalina = servlet container basic-nya Tomcat
  • Servlet = interface yang digunakan java server buat berkomunikasi dengan aplikasi via protokol web
  • Servlet Container = semacem server buat naro servlet, gampangnya sih kalo analoginya itu servlet container itu apache, trus servlet itu file php yang dirender
  • Java Application Server = lebih dari sekedar servlet container, berupa sebuah server buat naro berbagai aplikasi berbasis server, service dan lain sebagainya
  • JBOSS = salah satu brand buat java based application server
  • Tomcat = salah satu brand buat java application server juga
  • hibernate
  • iBATIS
  • API = Application Programming Interface
  • Deprecated
  • JDBC :Java Database Connectivity --> untuk akses ke database dg XAMPP APACHE.

nyomot dr trit sebelah:
kalo mau liat source class java: masuk ajah ke dir instalasi java, cari file src.zip trus d extract.. keliatan semua class2 java n lib nya yang dipake..


link
Code:
* good start 4 newbie (saran ku, baca tutorialnya harus bener2 step by step, biar gag bingung)
http://java.sun.com/docs/books/tutorial/

* sedikit pencerahan bagi yang bener2 buta (bikin app "Hello World!")
(contoh)http://java.sun.com/docs/books/tutorial/getStarted/cupojava/index.html
(solusi)http://java.sun.com/docs/books/tutorial/getStarted/problems/index.html
(pembahasan)http://java.sun.com/docs/books/tutorial/getStarted/application/index.html

0

Flash facebook apps!

Posted by JIMBOSTRUGGLE on 9:12 PM
Banyak sekali aplikasi2 di facebook sekarang ini bermunculan dan dari aplikasi tersebut dibuat dengan berbagai macam bahasa pemrograman, salah satunya aplikasi dengan Flash. Aplikasi Flash untuk Facebook sangatlah menarik dan potensial untuk dikembangkan. Jadi saya coba menulis tutorial ini untuk share2 ilmu yang udah didapat. Silahkan bila ada pertanyaan dan saran, baik mengenai materi/penulisan

Pada tutorial ini, kita akan belajar membuat aplikasi Flash sederhana yang berkomunikasi dengan akun Facebook kita, dan mengambil data diri seperti biodata dan foto. Langsung saja kita mulai…

Untuk membuat Flash berkomunikasi dengan Facebook, ada beberapa cara yang bisa kita gunakan. Tapi untuk tutorial kali ini, kita akan menggunakan Facebook Actionscript API, API official dari Adobe untuk berkomunikasi dengan Facebook yang bisa diunduh di http://code.google.com/p/facebook-actionscript-api/. Versi terakhir yang saya temui adalah versi 3.4, walau pada saat anda mencobanya kemungkinan sudah ada versi yang lebih baru.Dokumentasinya sendiri bisa kamu lihat disini http://facebook-actionscript-api.goo...ocs/index.html.



Seperti yang terlihat, ada dua tipe file yang bisa kita unduh dan gunakan, yaitu SWC dan Source. Saya akan mengunduh versi Source (facebook_library_v3.4_source.zip), lalu meng-extract isinya pada salah satu folder di komputer. Misalnya, C:/flash/facebook_api/ .

Satu hal lagi yang perlu diperhatikan. Dalam membuat aplikasi Facebook, kita perlu mendaftarkan aplikasi tersebut terlebih dahulu pada akun Developer Facebook untuk mendapatkan SECRET KEY dan APP KEY yang vital digunakan untuk komunikasi data antara aplikasi dengan server Facebook. Untungnya, hal ini sangatlah mudah untuk dilakukan.

1. Buka http://www.facebook.com/developers/. Bila Facebook menanyakan apakah anda mengijinkan aplikasi tersebut mengakses akun anda, pilih Allow.
2. Bila sudah masuk pada halaman tersebut, tekan tombol + Set Up New Application di kanan atas.



3. Isi nama aplikasi yang ingin kamu buat, misal Beginning Fesbuk API, centang tanda persetujuan, lalu tekan tombol Simpan Perubahan. Perlu diperhatikan kalau nama aplikasinya tidak boleh mengandung kata 'face'/'fb' ato elemen kata yang bisa mengacu ke Facebook makanya saya menggunakan kata Fesbuk.



4. Bila berhasil, kamu akan dibawa masuk kedalam halaman Setting application. Kamu hanya cukup memperhatikan dan mencatat Application Key dan Secret Key. Bila sudah, kamu bisa langsung menekan tombol Back to My Application pada bagian kiri atas.
Kita sudah bisa memulai mengembangkan aplikasi Flash yang kita inginkan.



Berikutnya kita mempersiapkan pengembangan aplikasinya menggunakan FlashDevelop. Buka FlashDevelop, lalu pilih Project -> New Project, lalu pilih AS3 Project. Beri nama project dengan BeginningFacebookAPI, lalu pilih lokasi project yang anda inginkan. Tekan Ok.



Pertama-tama kita perlu menambahkan library Facebook Actionscript API kedalam project ini. Pilih Project -> Properties.
Pada layar setting BeginningFacebookAPI(AS3), pilih tab Classpaths, lalu klik tombol Add Classpath… Arahkan pada lokasi library Facebook Actionscript API, dalam hal ini di C:/flash/facebook_api/ . Tekan Ok.



Ketikkan script berikut untuk menggantikan semua script yang ada pada file Main.as tersebut.


package
{
import com.facebook.Facebook;
import com.facebook.events.FacebookEvent;
import com.facebook.net.FacebookCall;
import com.facebook.commands.users.GetInfo;
import com.facebook.utils.FacebookSessionUtil;
import com.facebook.data.FacebookLocation;
import com.facebook.data.users.FacebookUser;
import com.facebook.data.users.GetInfoData;
import com.facebook.data.users.FacebookUserCollection;
import com.facebook.data.users.StatusData;
import flash.display.SimpleButton;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.text.TextField;

public class Main extends Sprite
{
public const API_KEY:String = "";
public const SECRET_KEY:String = "";
public var fbook:Facebook;
public var session:FacebookSessionUtil;
public var flashvars:Object;

public var userInfoTxt:TextField;
public var loginTxt:TextField

public function Main():void
{
initInterface();
initFacebook();
}

public function initInterface():void
{
userInfoTxt = new TextField();
addChild(userInfoTxt);
userInfoTxt.width = 400;
userInfoTxt.height = 300;
userInfoTxt.selectable = false;
userInfoTxt.multiline = true;
userInfoTxt.wordWrap = true;
userInfoTxt.text = "Please click 'Connect' button below after Allow the application.";

loginTxt = new TextField();
addChild(loginTxt);
loginTxt.addEventListener(MouseEvent.CLICK, doneValidating);
loginTxt.text = "CONNECT";
loginTxt.border = true;
loginTxt.selectable = false;
loginTxt.width = 65;
loginTxt.height = 20;
loginTxt.x = 20;
loginTxt.y = 40;
}

public function initFacebook():void
{
flashvars = this.root.loaderInfo.parameters;
session=new FacebookSessionUtil(API_KEY, SECRET_KEY, this.root.loaderInfo);
session.addEventListener(FacebookEvent.CONNECT, onConnect);
fbook = session.facebook;

if(flashvars.fb_sig_session_key != null)
{
session.verifySession();
}else
{
session.login();
}
}

public function doneValidating(event:MouseEvent):void
{
session.validateLogin();
}

public function onConnect(e:FacebookEvent):void
{
if(!e.success)
{
session.login();
return ;
}

loginTxt.visible = false;
getUserInfo();
}

public function getUserInfo():void
{
userInfoTxt.text = "Loading user info...";
var call:FacebookCall = fbook.post(new GetInfo([fbook.uid], ['name', 'birthday', 'current_location', 'status']));
call.addEventListener(FacebookEvent.COMPLETE, handleGetInfoResponse);
}

public function handleGetInfoResponse(e:FacebookEvent):void
{
if (e.success)
{
var user:FacebookUser = (e.data as GetInfoData).userCollection.getItemAt(0) as FacebookUser;
var name:String = user.name;
var brithdayDate:String = user.birthday;
var currentLocation:FacebookLocation = user.current_location;
var status:StatusData = user.status;

userInfoTxt.htmlText = "Name: " + name;
userInfoTxt.htmlText += "
Birthday: " + brithdayDate;
userInfoTxt.htmlText += "
Location: " + currentLocation.city;
userInfoTxt.htmlText += "
Status: " + status.message + " at "+ status.time;
}
}
}
}

Berikut penjelasan dari script diatas.

Code:

public const API_KEY:String = "";
public const SECRET_KEY:String = "";

Constant dari API_KEY dan SECRET_KEY harus diisi dengan Application Key dan Secret Key yang sudah kamu catat sebelumnya pada saat mendaftarkan aplikasi ke Facebook.

Pertama kali, kita langsung inisialisasi interface dan koneksi Facebook. Inisialisasi interface yang dilakukan:

Code:

public function initInterface():void
{
userInfoTxt = new TextField();
addChild(userInfoTxt);
userInfoTxt.width = 400;
userInfoTxt.height = 300;
userInfoTxt.selectable = false;
userInfoTxt.multiline = true;
userInfoTxt.wordWrap = true;
userInfoTxt.text = "klik 'Connect' dibawah ini setelah Allow aplikasi.";

loginTxt = new TextField();
addChild(loginTxt);
loginTxt.addEventListener(MouseEvent.CLICK, doneValidating);
loginTxt.text = "CONNECT";
loginTxt.border = true;
loginTxt.selectable = false;
loginTxt.width = 65;
loginTxt.height = 20;
loginTxt.x = 20;
loginTxt.y = 40;
}

Cukup sederhana, kita membuat userInfoTxt yang berisi informasi dari proses koneksi yang sedang berlangsung, dan loginTxt yang dijadikan sebagai tombol sederhana untuk memulai koneksi.

Pada function initFacebook() , kita melakukan inisialisasi dari Class-Class dasar dari Facebook AS3 API dan mencoba mengambil parameter fb_sig_session_key.

Code:

public function initFacebook():void
{
flashvars = this.root.loaderInfo.parameters;
session=new FacebookSessionUtil(API_KEY, SECRET_KEY, this.root.loaderInfo);
session.addEventListener(FacebookEvent.CONNECT, onConnect);
fbook = session.facebook;

if(flashvars.fb_sig_session_key != null)
{
session.verifySession();
}else
{
session.login();
}
}

Perlu diingat, ada perbedaan dalam menjalankan aplikasi ini secara langsung di desktop atau melalui website Facebook dengan di-hosting terlebih dahulu. Bila menjalankan aplikasi secara normal di desktop atau alamat hosting langsung (menggunakan file SWF), maka Flash tidak akan menerima parameter fb_sig_session_key, dan harus melakukan login manual serta validasi ulang ke halaman Facebook menggunakan sebuah tombol (dalam kasus ini, loginTxt).
Lain halnya bila aplikasi ini sudah di-hosting terlebih dahulu, parameter fb_sig_session_key akan langsung didapatkan, dan koneksi dengan Facebook akan berlangsung secara otomatis.

Code:

public function doneValidating(event:MouseEvent):void
{
session.validateLogin();
}

public function onConnect(e:FacebookEvent):void
{
if(!e.success)
{
session.login();
return ;
}

loginTxt.visible = false;
getUserInfo();
}

Function doneValidating() digunakan untuk memvalidasi ulang koneksi ke Facebook bila pada inisialisasi awal koneksi gagal dilakukan (atau bila aplikasi Flash ini dijalankan di desktop/alamat hosting langsung).
Function onConnect sendiri yang bertugas mengecek apakah proses koneksi berhasil atau tidak. Bila tidak sukses, akan memanggil session.login() (membuka halaman website Facebook), sedangkan bila sukses, tombol loginTxt akan dihilangkan, dan proses selanjutnya akan dijalankan (getUserInfo()).

Code:

public function getUserInfo():void
{
userInfoTxt.text = "Loading user info...";
var call:FacebookCall = fbook.post(new GetInfo([fbook.uid], ['name', 'birthday', 'current_location', 'status']));
call.addEventListener(FacebookEvent.COMPLETE, handleGetInfoResponse);
}

Function getUserInfo() ini berfungsi membuat objek FacebookCall yang digunakan untuk memanggil command saat itu, yaitu mendapatkan informasi user (berdasarkan facebook id nya, dalam bentuk Array) yang antara lain nama, hari ulang tahun, lokasi, dan status terakhir. Bila pemanggilan berhasil dilakukan, hasilnya akan diproses pada penanganan event FacebookEvent.COMPLETE di function handleGetInfoResponse().

Referensi dari jenis-jenis API yang tersedia ada pada http://wiki.developers.facebook.com/index.php/API. Kamu bisa mencari padanannya dalam Facebook AS3 API pada package com.facebook.commands (contohnya class GetInfo diatas).

Code:

public function handleGetInfoResponse(e:FacebookEvent):void
{
if (e.success)
{
var user:FacebookUser = (e.data as GetInfoData).userCollection.getItemAt(0) as FacebookUser;
var name:String = user.name;
var brithdayDate:String = user.birthday;
var currentLocation:FacebookLocation = user.current_location;
var status:StatusData = user.status;

userInfoTxt.htmlText = "Name: " + name;
userInfoTxt.htmlText += "
Birthday: " + brithdayDate;
userInfoTxt.htmlText += "
Location: " + currentLocation.city;
userInfoTxt.htmlText += "
Status: " + status.message + " at "+ status.time;
}
}

Function handleGetInfoResponse() akan menangani hasil pemanggilan sebelumnya, dan berfungsi mencetak biodata diri user. Objek FacebookEvent yang diterima akan memiliki atribut 'data' yang formatnya sesuai dengan command GetInfo yang digunakan diatas, yaitu GetInfoData. Kamu bisa menemukan tipe-tipe data hasil atas setiap command pada package com.facebook.data.
Kita mengambil atribut userColletion pada index pertama (0) karena kita hanya mengirimkan satu facebook id. Lain halnya bila kita mengirim banyak id sekaligus, maka kita perlu melakukan perulangan untuk mengambil biodata diri tiap user yang ada.

Setelah aplikasi Flash tersebut selesai dibuat dan di-build tanpa error, maka kita perlu meng-hosting SWFnya dan mengatur ulang setting aplikasi tersebut di Facebook.

1. Setelah meng-hosting file SWF yang dihasilkan, buka halaman http://www.facebook.com/developers/apps.php, pilih aplikasi yang sudah kamu daftarkan sebelumnya, lalu klik Edit Setting.



2. Selesai sudah semua pengaturan yang diperlukan. Untuk melihat hasilnya, kamu bisa langsung membuka alamat website sesuai Canvas Callback URL yang telah diset pada langkah sebelumnya. Bila halamannya tidak terbuka/error, jangan panik dulu karena terkadang pengaktifan halaman aplikasi di Facebook memakan waktu beberapa menit sebelum aktif secara penuh.

0

membuat aplikasi facebook untuk pemula

Posted by JIMBOSTRUGGLE on 9:07 PM
Setelah search kayanya belum ada thread sejenis, mari kita diskusi programming utk membuat aplikasi Facebook

Pertama, ke http://www.facebook.com/developers/

Buatlah aplikasi (klik "Set Up New Application").
Isi data2 di sana.

Nanti setelah buat aplikasi, ada link "example code". Klik. Kita dapat sample code sbb

PHP Code:

// Copyright 2007 Facebook Corp. All Rights Reserved.
//
// Application: NAMA_APLIKASI
// File: 'index.php'
// This is a sample skeleton for your application.
//

require_once 'facebook.php';

$appapikey = 'API_KEY_KALIAN';
$appsecret = 'APP_SECRET_KALIAN';
$facebook = new Facebook($appapikey, $appsecret);
$user_id = $facebook->require_login();

// Greet the currently logged-in user!
echo "

Hello, !

";

// Print out at most 25 of the logged-in user's friends,
// using the friends.get API method
echo "

Friends:";
$friends = $facebook->api_client->friends_get();
$friends = array_slice($friends, 0, 25);
foreach ($friends as $friend) {
echo "
$friend";
}
echo "

";



Lalu download link berikut (semacam API facebook)
Code:


http://svn.facebook.com/svnroot/platform/clients/packages/facebook-platform.tar.gz

Requirement hosting (kalo pake PHP) :

* PHP min 5.2 (kalo nggak salah, atau 5.3)
* cURL / fopen yg bisa buka URL


Wiki nya :
Code:

http://wiki.developers.facebook.com/index.php


Originally Posted by xrvel View Post
Dari Wiki-nya FB, bahasa berikut disupport

PHP* | JavaScript* | Connect for iPhone* | Flash/ActionScript* | .NET SDK* | ASP.NET | ASP (VBScript) | Cocoa | ColdFusion | C++ | C# | D | Emacs Lisp | Erlang | Google Web Toolkit | Java | Lisp | Perl | Python | Ruby on Rails | Smalltalk | VB.NET | Windows Mobile

* Indicates a library that Facebook officially supports.

0

Pengetahuan Wajib Buat Programmer :D

Posted by JIMBOSTRUGGLE on 9:05 PM
Setelah beberapa kali mewawancara calon programmer baru, saya menemukan bahwa cukup banyak dari kandidat pelamar kerja, baik fresh graduate maupun yang (ngakunya) experienced masih belum memahami beberapa pengetahuan dasar.

Entah apa sebabnya. Beberapa kemungkinan bisa saya perkirakan, sebagai berikut:

* Tidak diajarkan di kuliah
* Diajarkan, tapi mahasiswa bersangkutan lebih banyak dugem daripada kuliah
* Diajarkan dan pernah mengerti, tapi karena jarang digunakan jadi lupa

Apapun masalahnya, yang jelas kenyataan ini sangat memprihatinkan. Indonesia tidak akan maju jika bibit tenaga kerjanya mudah merasa cukup.

Secara pribadi, saya punya standar sendiri dalam melakukan seleksi. Jadi buat yang mau melamar kerja, silahkan berlatih. Siapa tahu Anda berhadapan dengan saya di meja wawancara

Berikut menu wajib programmer:

* Konsep dasar sistem operasi.
* Konsep dasar jaringan.
* Konsep dasar relational database.
* Karena sekarang jaman internet, maka wajib memahami protokol HTTP, FTP, POP3, SMTP, SSH.
* Karena sekarang jaman globalisasi, maka wajib memahami Unicode.
* Lebih dari satu bahasa pemrograman.
* Cara menggunakan Version Control.

Berikut pertimbangannya.

Kebanyakan dari programmer Indonesia biasanya membuat aplikasi di atas sistem operasi, sehingga banyak yang berpendapat bahwa tidak perlu memahami cara kerja sistem operasi. Pendapat ini boleh saja, kalau Anda adalah staf akunting yang kebetulan dipaksa bos untuk membuat aplikasi general ledger. Untuk programmer profesional, pemahaman ini akan membuat Anda lebih siap untuk membuat aplikasi server yang biasanya multithreaded dan harus efisien digunakan dalam waktu yang lama.

Pemahaman mendalam di salah satu sistem operasi juga merupakan nilai tambah yang signifikan. Dengan mengetahui struktur internal sistem operasi (misalnya Linux), kita dapat mengetahui berbagai pertimbangan dalam merancang aplikasi besar yang terus berkembang.

Saat ini, kalau kita harus membuat aplikasi, besar kemungkinannya aplikasi kita tidak berjalan sendiri. Aplikasi tersebut pasti harus berhubungan dengan internet, melayani banyak pengguna, atau berhubungan dengan perangkat lain seperti handphone atau PDA. Untuk itu, pemahaman atas konsep jaringan sangat penting.

Tes sederhana untuk menguji pemahaman Anda. Coba jelaskan proses yang terjadi mulai dari Anda mengetik http://kaskus.us di browser Anda, sampai halaman ini terbentang di depan mata Anda. Dengan mendengarkan jawaban Anda, saya akan tahu kualitas Anda. Jawaban yang saya harapkan mengandung istilah name-resolve, http-request, virtual directory, query database, HTML response, dan CSS. Kalau Anda menyebutkan (apalagi menjelaskan) tentang routing, gateway, proxy, port 80, saya akan lebih senang lagi.

Tentang relational database. Saya tahu ini pasti pernah diajarkan di kuliah. Jadi lulusan informatika dan sejenisnya jangan bilang belum diajarkan. Yang saya maksud bukan sekedar sintaks SQL. Sintaks itu gampang, bisa dicari dengan mudah di internet. Yang saya inginkan adalah penjelasan tentang Boyce-Codd Normal Form, lengkap dengan contoh kasusnya, di luar kepala. Kalau sudah bisa menjelaskan ini, inner join, subquery, union, itu perkara sepele.

Protokol HTTP sekarang adalah protokol yang paling banyak digunakan di internet. Jangan salah, ini bukan tentang sintaks HTML atau CSS. Jadi apa? Begini, coba tampilkan halaman website ini dengan menggunakan telnet. Benar, bukan browser, tapi telnet.

Kalau sudah bisa browsing dengan telnet, sekarang coba untuk baca email via telnet. Menggunakan protokol POP3 atau IMAP tentunya. Punya account Gmail kan? Hare gene gak punya? Ya bagus, kalo punya coba aktifkan fitur POP3nya, setelah itu buka dengan telnet.

Unicode itu penting supaya aplikasi kita tetap bisa diinstal di komputer orang Jepang atau Korea, atau komputer berbahasa Sansekerta.

Pemahaman lebih dari satu bahasa itu penting agar wawasan kita terbuka. Bahwa tidak ada bahasa yang one-fit-all, bahwa ada cara berpikir yang berbeda dalam tiap bahasa, bahwa komunitas tiap bahasa berbeda budayanya. Semua ini akan berkontribusi dalam pendewasaan kita dalam berdiskusi dan menanggapi perbedaan (terutama pendapat).

Satu lagi, trend bahasa pemrograman adalah, tiap sepuluh tahun, market leader berganti. Dulu COBOL, kemudian C++, sekarang Java. Jadi, kemampuan belajar bahasa baru sangat penting. Bukan cuma bahasanya yang penting, tapi kemampuan belajarnya yang lebih penting.

Di tempat saya bekerja, penggunaan version control adalah wajib. Ini standar (de facto) internasional. Kalau kita punya project opensource, baik di Sourceforge, Apache, Codehaus, dan semua hosting project opensource, pasti kita akan diberikan version control. Silahkan download dan coba gunakan CVS atau Subversion.

Ok, itu standar minimal saya. Menurut Anda terlalu sulit? Hmm .. kalau begitu dunia IT menjadi programmer nampaknya kurang cocok buat Anda. Silahkan coba karir lainnya, misalnya notaris atau sopir busway

sumber:http://endy.artivisi.com/blog/life/p...at-programmer/

0

Berbagai Macam Codingan C/C++

Posted by JIMBOSTRUGGLE on 8:54 PM
--persegi ajaib--

#include
#include

void main() {
int kolom,baris,n,spasi;
do {
clrscr();
gotoxy(15,2); printf("Program Persegi Ajaib Punyaku");
gotoxy(3,5);
printf("Masukkan Panjang Sisi : "); scanf("%d",&n);
gotoxy(3,7); printf("Persegi dengan panjang sisi %d\n\n",n);
for(baris=1;baris<=n;baris++)
{ printf("* "); }

printf("\n");

for(kolom=1;kolom<=n-2;kolom++)
{ printf("*");
for(spasi=1;spasi<=n*2-3;spasi++)
{ printf(" "); }
printf("*\n");
}

for(baris=1;baris<=n;baris++)
{
printf("* ");
}
gotoxy(3,23); printf("tekan tombol \"y\" untuk mengulang");
gotoxy(3,24); printf("tekan sembarang tombol untuk keluar");
}
while(getch()=='y');
}


sisi miring,luas,dan keliling segitiga


#include
#include
#include

void main()
{

float a,t,r,K,L;


scanf("%f%f",&a,&t);

r=sqrt(a*a+t*t);

K=a+r+t;

L=(a*t)/2;

printf("r=%.2f, K= %.2f, L= %.2f",&r,&K,&L);

getch();
}

Binary Search Tree

#include
#include
#include

struct data{
int angka;
struct data *left, *right;
}*root = NULL;

void menu(void){
gotoxy(1,23); printf("+ to insert");
gotoxy(40,23); printf("- to seek and destroy");
gotoxy(1,24); printf("Esc to Exit");
}

void insert (struct data **p, int angka, int level){
level += 1;
if( level < 6){
if( (*p) == NULL ){
(*p) = (struct data *) malloc (sizeof (struct data) );
(*p) -> angka = angka;
(*p) -> left = (*p) -> right = NULL;
}
else if( angka < (*p)-> angka ){
insert(& (*p) -> left, angka, level);
}
else if( angka > (*p)-> angka ){
insert(& (*p) -> right, angka, level);
}
}
else{
textcolor(14);
gotoxy(1,25); cprintf("Level Tree telah mencapai Maksimum");
textcolor(7);
getch();
}
}

void clearall (struct data *p){
if(p==NULL) return;
clearall(p -> left);
clearall(p -> right);
free(p);
}

void cetak(struct data *p, int x, int y, int j){
if(p == NULL) return;
gotoxy(x,y);
printf("%d", p-> angka);

cetak(p -> left, x-j, y+2, j/2);
cetak(p -> right, x+j, y+2, j/2);
}

void preorder(struct data *p){
if(p==NULL) return;

printf("%d ", p->angka);
preorder(p -> left);
preorder(p -> right);
}

void inorder(struct data *p){
if(p==NULL) return;

inorder(p -> left);
printf("%d ", p->angka);
inorder(p -> right);
}

void postorder(struct data *p){
if(p==NULL) return;

postorder(p -> left);
postorder(p -> right);
printf("%d ", p->angka);
}

void print_order(void){
gotoxy(1,19); printf("PreOrder : "); preorder(root);
gotoxy(1,20); printf("InOrder : "); inorder(root);
gotoxy(1,21); printf("PostOrder : "); postorder(root);
}

void seekndestroy(struct data *p, int angka){
if( p == NULL) return;
else if( angka < p -> angka){
if( p -> left -> angka == angka){
clearall (p -> left);
p -> left = NULL;
}
else{
seekndestroy( p -> left, angka);
}
}
else if( angka > p -> angka){
if( p -> right -> angka == angka){
clearall (p -> right);
p -> right = NULL;
}
else{
seekndestroy( p -> right, angka);
}
}
}

void main(){
int tekan, angka;
do{
clrscr();
menu();
cetak(root, 40, 2, 20);
print_order();
tekan = getch();
switch(tekan){
case '+' : gotoxy(1,16); printf("Masukkan Angka : ");
scanf("%d",&angka);
insert(&root, angka,0);
break;

case '-' : gotoxy(1,16); printf("Masukkan Angka : ");
scanf("%d",&angka);
if(root == NULL){
textcolor(14);
gotoxy(1,25); cprintf("Tidak ada Data yang bisa dihapus");
textcolor(7);
getch();
}
else if(angka == root -> angka ){
textcolor(14);
gotoxy(1,25); cprintf("Root Tidak Boleh Dihapus");
textcolor(7);
getch();
}
else if(root !=NULL){
seekndestroy(root, angka);
}
break;
}
}while(tekan != 27);
clearall(root);
}


Faktorial


#include
#include

long faktor(int n)
{
if(n==0)return 1;
else return n*faktor(n-1);
}

void main()
{

int n;

printf("masukkan n : ");
scanf("%d",&n);
printf("n faktorial=%d ",faktor(n));

getch();
}

Fibonacci

#include
#include

int fib(int n)
{
int f;
if (n==0)f=0;
else if(n==1)f=1;
else f=fib(n-2)+fib(n-1);
return f;

}

void main()
{
int n;

printf("masukkan n: ");
scanf("%d",&n);

printf("bilangan fibonacci dari %d = %d",n,fib(n));

getch();
}


Penjumlahan Deret Kuadrat


#include
#include

int jumlah(int n)
{

if(n==1)return 1;
else return (n*n)+jumlah(n-1);

}

void main()
{

int n,i;
printf("n= ");
scanf("%d",&n);
i=jumlah(n);
printf("%d jumlah= %d",n,i);

getch();
}


bubble sort user


#include
#include

void main(){
int bil[5]={5,3,2,1,4};
int j,i,temp;
for(i=0;i<5;i++)
scanf("%d",&bil[i]);
for(j=0;j<4;j++)
{for(i=0;i<4-j;i++)
{if(bil[i]>bil[i+1])
{temp=bil[i];
bil[i]=bil[i+1];
bil[i+1]=temp;
}
}
}
for(i=0;i<5;i++)
printf("%d ",bil[i]);
getch();
}

0

Panduan bagi Pengguna Windows yang ingin Convert ke Mac

Posted by JIMBOSTRUGGLE on 8:15 PM



Q : Mac itu apa sih?
A : Mac (Macintosh) itu adalah salah satu Produk Komputer dari Apple Inc.
Dimana si Komputer & Operating System tersebut dibuat & dirancang oleh satu produsen (Apple) + dipadukan dengan keindahan dari bentuk & teknologi mutakhir
jadi Apple itu jelas BEDA sama Microsoft
Apple : satu produsen komputer & satu produsen OS
Microsoft : satu produsen OS & tidak satu produsen komputer (contoh : Acer, Toshiba, Sony, dll)
IMO wajar klo Operating System dari Mac itu lebih stabil dari Operating System dari Microsoft (Windows), karena komputer mac emang dirancang oleh produsen yg sama dengan OS-nya.
jadi ga akan ada yg namanya Driver Conflict sampe muncul BSOD



Q : Mac OSX itu apa sih ?
A : Mac OSX itu Operating System ke sepuluh (X) yg telah diluncurkan oleh Apple. Saat ini MAC OSX yang terbaru adalah Mac OSX Leopard. September 2009 nanti akan ada Mac OSX yg terbaru, yaitu Mac OSX Snow Leopard




Q : Mac itu mahal ga sih ?
A : menurut gw mahal itu relatif.. buat sebagian orang mahal, tapi buat sebagian orang yang laen mungkin murah

Q : Worthed ga beli Mac dengan harga yang kata kebanyakan orang itu mahal ?
A : IMO jelas Worthed.. apa yang lu bayar, ya itu yg lu dapet

Q : Worthed knapa sih ?
A : dua hal yg paling banyak dikeluhin sama pengguna Windows : BSOD & Virus ---> di Mac = NOPE
lu ga perlu ribet ngurusin antivirus atau Defrag harddisk di Mac.. sesuai Slogan Apple : It Just Works


Hampir 95% Virus adalah virus komputer berbasis sistem operasi Windows. Sisanya, 2% menyerang Linux/GNU dengan versi kernel dibawah 1.4 (dan Unix, sebagai source dari Linux, tentunya), 1% menyerang Mac terutama Mac OS 9, Mac OS X (Tiger, Leopard). 2% lagi menyerang sistim operasi lain seperti FreeBSD, OS/2 IBM, dan Sun Operating System.


Q : Mac emang ga ada BSOD (Blue Screen Of Death) kaya di Windows?
A : di Mac ga ada yang namanya BSOD, tapi ada yang namanya GSOD (Grey Screen Of Death), atau sering disebut Kernel Panic.. tapi ini boleh dibilang SANGAT jarang terjadi di Dekstop atau Notebook Mac.. klo di Hackintosh beda lagi ya

FAQ.. (for Mac Intel-Based Only) karena gw sendiri blom sempet pake Mac yg PPC-Based
klo ada yang pake PPC tinggal tanya aja dibawah.. nanti solusinya dicariin bareng2 kaskuser yg laen

Q : bisa ga sih maen game di Mac ?
A : jelas bisa.. meskipun game untuk Mac ga sebanyak game untuk Windows, tapi tetep ada games yang emang sengaja dibuat untuk Mac (contoh : Spore, COD4, The Sims 3, dll)

Q : game ato program yang cumen ada di Windows bisa ga sih dimaenin di Mac ?
A : jelas bisa.. karena Mac Intel-Based udah bisa running Windows.. baik itu secara Virtual ato Native
Virtual : bisa pake VMWare, Parallel Desktop atau CrossOver
Native : pake yang namanya Bootcamp

Q : bisa ga sih Programming (VB) pake Mac ?
A : Bisa. hanya saja program pendukung VB di Mac bisa dibilang jarang.. setau gw sih pake Real Basic yang mirip2 sama Visual Basic di Windows..
tapi selama Mac bisa running Windows, ga usah kuatir

Q : ada Winamp ga sih di Mac ? (buat Winamp Fan Boy )
A : sekali lu coba iTunes, lu bakal lupa sama Winamp

Q : kalo mau ngetik di Mac pake apa sih?
A : 2 program yg Recommended iWork (buatan Mac) & Microsoft Office (buatan Microsoft yg juga release di Mac)

Q : saya kerjanya Arsitek & sangat tergantung Autocad.. di Mac ada ga sih Autocad?
A : untuk saat ini Autocad blom ada versi Mac. tapi tetep bisa menggunakan Windows lewat bootcamp untuk install Autocad. Jadi ga ada salahnya juga beli Mac