Sabtu, 07 Maret 2009

OOP dalam PHP : Class

nah OOP tentu tidak lepas dengan yang namanya Class. Ternyata di PHP pun ada loh Class itu. dan penggunaannya mirip sekali dengan class yang biasa kita pakai di Java ataupun C++

\<\? class member{

}
?>

lalu untuk memasukkan atribut dan fungsinya juga hampir mirip

class member{
var $nama;

function setNama($newNama){
$this->nama = $newNama;
}

function getNama(){
return $this->nama;
}
}
?>

cukup mudah bukan?? lalu coba simpan dengan nama file member.php
setelah itu kita coba langsung kita coba implementasikan di index.php

include ("member.php");

$guest = new member();

$quest->setNama("Aqsath");

echo "Nama member adalah : " . $guest->getNama();
?>

nah, mantab kan?? kita sudah bisa membuat class dan membuat class itu sekaligus menggunakan fungsi - fungsi di dalamnya..

apakah sampai disitu saja?? ternyata tidak.. hehe.. seperti biasa dalam class juga dikenal constructor. Di PHP pun constructor itu disediakan dengan fungsi __construct()

kita ambil contoh member.php yang tadi kita modif sedikit :

class member{
var $nama;

function __construct($namaMember){
$this->nama = $namaMember;
}

function setNama($newNama){
$this->nama = $newNama;
}

function getNama(){
return $this->nama;
}
}
?>

lalu di index.php kita modif juga menjadi :

include ("member.php");
$guest = new member("Aqsath");
echo "Nama member adalah : " . $guest->getNama();
?>

akan menghasilkan hasil yang sama dengan index.php sebelum dimodif..
class ini pun bisa diberikan access modifier seperti yang sering kita gunakan di OOP.
kita modif lagi member.php menjadi :

class member{

protected var $nama;
public function __construct($namaMember){
$this->nama = $namaMember;
}

public function setNama($newNama){
$this->nama = $newNama;
}

public function getNama(){
return $this->nama;
}
}
?>

nah, bagaimana?? sudah lebih OOP banget kan?? hehehe.. oh iya, materi terakhir yaitu
turunan.. udah akrab banget lah yah dengan yang namanya inheritance ini.

include ("member.php");

class administrator extends member{

private var $thread_id;
public __construct($adminName, $idThread){
$this->nama = $admin;
$this->thread_id = $idThread
}
}
?>

disini kita misalkan administratro adalah kelas turunan dari member yang mempunyai hak atas thread tertentu di sebuah forum. Kita bisa menurunkannya dari kelas member dan menambahkan satu atribut lagi dan mengoverride konstruktor member.

Sekian dulu deh.. cape ngetik banyak - banyak.. hehe

Selamat mencoba.. ^_^

OOP dalam PHP : MVC

Huaaah.. kebetulan lagi ada tugas progin pake PHP.. nah kebetulan juga ngerti dikit - dikit masalah OOP dalam PHP.. sekedar sharing aja sih..

Dalam OOP kan juga dikenal tuh prinsip MVC (Model - Viewer - Controller) nah mau ngasih sedikit gambaran aja sih gimana cara make MVC dalam OOP.. hehehe

Sedikit ringkasan tentang MVC, Model akan berfungsi untuk memberikan data - data yang diperlukan, biasanya sih berhubungan dengan database. Viewer berfungsi sebagai pengatur tampilannya, dan Controller adalah penghubung antara model dan viewer.

pertama - tama kita coba buat viewer-nya : 

class view_index{
function index($data){
echo $data['title'];
echo "
";
echo $data['tulisan'];
}
}
?>

nah di sana terlihat kita membuat class view_index yang didalamnya ada fungsi indexdan memiliki parameter $data dimana $data itu sendiri adalah kumpulan dari variabel - variabel lainnya. Setelah itu kita simpan dengan nama viewer_index.php

lalu lanjut ke modelnya : 

class model_index{
function getJudul(){
return "DFD";
}
function getTulisan(){
return "DFD Forum DPP";
}
}
?>

karena kita tahu bahwa di viewer membutuhkan data title dan tulisan maka model akan mengakomodasi kebutuhan si viewer tersebut. dengan dua fungsi yaitu getJudul dan getTulisan. Biasanya sih nggak secupu itu langsung di-return. biasanya pake akses - akses ke database. tapi males nerangin disini cara ngakses ke databasenya. Hehehe. Setelah itu kita simpan dengan nama model_index.php

nah ini dia bagian yang paling menariknya yaitu membuat controllernya : 

include ("viewer_index.php");
include ("model_index.php");
class controller_index{
function index(){
$data['title'] = model_index::getJudul();
$data['tulisan'] = model_index::getTulisan();
view_index::index($data);
}
}
?>

di awal - awal kita include dulu viewer dan model yang sudah kita buat lalu dengan fungsi itu kita siapkan data - data yang akan dimasukkan ke viewer. Data - data itu kita dapat dari model caranya dengan memanggil fungsi yang ada di model. Setelah data sudah siap barulah kita masukkan ke dalam viewer.

nah model, view, dan controller sudah jadi. Jadi, apa yang akan kita lakukan selanjutnya?? Dalam PHP dia akan langsung memanggil index.php karena itu bagaimana cara mengakses controller kita?

include ("controller_index.php");
controller_index::index();
?>

nah hanya tinggal begitu saja. Seperti layaknya main program dalam OOP yang memang tidak terlalu banyak baris di dalamnya. Simpanlah dengan nama index.php

Silakan dipelajari. Semoga membantu.. ^_^
Jika ada saran - saran sangat diterima..

Kamis, 25 Desember 2008

Singleton : Makhluk yang kesepian

huwaaah.. ntah mungkin gara - gara beneran kesepian atau gimana.. jadi pingin ngeposting masalah singleton..

singleton ini mantab banget loh.. dia ini salah satu pattern yang bisa dibilang sering digunakan.. Jadi singleton ini adalah sebuah objek (biasanya digambarkan dengan class) yang hanya ada satu di seluruh aplikasi.. biasanya kan kalo kita abis buat class terus kita new - new gitu.. nah kalo singleton nggak bisa dibuat.. dia cuma bisa digunakan.. bingung?? semakin menarik.. :P

gini2 contohnya kita ngebuat game.. nah kan karakter utama cuma ada 1 doang kan di seluruh game (tergantung gamenya sih.. -___-). Mau itu game udah pindah - pindah map, udah beli barang, udah bertarung, udah mati mungkin.. tapi karakternya masih sama - sama aja kan..

nah itu tadi penjelasan dan gunanya.. sekarang gimana sih cara ngebuatnya??

class Karakter
{
public int HP;
public int MP;
public int Attack;
public int Defence;

private static Karakter instance = new Karakter();
public static Karakter GetSingleton()
{
return instance;
}

private Karakter()
{
HP = 100;
MP = 50;
Attack = 97;
Defence = 68;
}
}


nah itu cara buatnya.. terus gimana sih cara makenya??
kalo mau ngakses karakter yang itu.. kita tinggal panggil aja singletonnya.. misalnya mau ngeliat hpnya maka..

C++ : cout << Karakter.GetSingleton().HP << endl;
C# : Console.WriteLine(Karakter.GetSingleton().HP);
Java : System.out.println(Karakter.GetSingleton().HP);


yah intinya mah itu.. dan yang perlu diingat perintah itu bisa dijalankan dimanapun anda menuliskannya.. kenapa?? karena dia GetSingleton adalah public static dia bisa diakses, diubah, dan diaapa - apain darimanapun.. menarik bukan??

nah cocok banget nih.. buat misalnya database, atau karakter sebuah game, atau biasanya form di C# juga bisa sih.. hehehe.. yah.. dicoba - coba aja yah..

Selamat mencoba.. ^_^

Rabu, 24 Desember 2008

Menyalin teks di textbox ke clipboard sebagai gambar

intinya sih mudah..

1. Mengubah teks di textbox menjadi gambar
2. Mengeset gambar itu ke dalam clipboard

biasanya ini berguna kalo mau bikin program yang mau format tulisannya nggak berubah - berubah.. misalnya untuk teks - teks yang pake unicode (contohnya : bahasa arab)

1. Mengubah teks di textbox menjadi gambar

private Bitmap CreateBitmap(string tImageText)
private Bitmap CreateBitmapImage(string sImageText)
{
Bitmap bmpImage = new Bitmap(1, 1);
int iWidth = 0;
int iHeight = 0;

Font MyFont = new Font("Verdana", 24, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);

StringFormat strFormat = new StringFormat();
strFormat.Alignment = StringAlignment.Far;

Graphics MyGraphics = Graphics.FromImage(bmpImage);

iWidth = (int)(MyGraphics.MeasureString(sImageText, MyFont, 1000).Width * 1.25);
iHeight = (int)MyGraphics.MeasureString(sImageText, MyFont).Height * 5;

bmpImage = new Bitmap(bmpImage, new Size(iWidth, iHeight));

Rectangle rect = new Rectangle(0, 0, iWidth, iHeight);

MyGraphics = Graphics.FromImage(bmpImage);
MyGraphics.Clear(Color.White);
MyGraphics.TextRenderingHint = TextRenderingHint.AntiAlias;
MyGraphics.DrawString(sImageText, MyFont, new SolidBrush(Color.Black), rect, strFormat);
MyGraphics.Flush();

return bmpImage;
}


2. Mengeset gambar itu ke dalam clipboard

//Dimisalkan textbox yang akan dicopy adalah textBox1
Clipboard.SetImage(CreateBitmapImage(temp));

Setelah gambar itu masuk ke dalam clipboard, anda dapat mempastenya dimanapun.. di word misalnya atau di paint...

Selamat mencoba.. ^_^

Senin, 21 April 2008

Atap Comlabs Roboh...

ComLabs, ITB.

Malam ini, 21 April 2008 tepatnya pukul 23.10 adalah malam yang tak akan terlupakan bagi beberapa anak Comlabs yang sedang menginap malam-malam. Hari Kartini yang selayaknya diperingati dengan suka-cita berubah menjadi ancaman yang dapat merenggut nyawa.

Bagaimana tidak, malam yang hening dan dingin tiba-tiba terusik oleh suara gemuruh yang berasal dari atas. Mula-mula suara itu hanya terdengar seperti suara kucing yang sedang berlarian diatas atap sebagaimana biasanya terjadi dirumah-rumah kita. Tetapi suara itu seketika berubah menjadi atap yang rubuh dalam jangka waktu hanya 5 detik saja. Seketika saja kepanikan melanda anak-anak ComLabs yang malam itu mengerjakan tugas, browsing, maen dota, dll.

Beruntung, dalam tempo yang sesingkat itu Andri Wijayanto (Teknik Pertambangan) yang tepat berada di TKP berhasil melarikan diri. "Untung aja ada suara gemuruh dulu, kalo ngga, awak ga tau masih selamat atau enggak,,", ungkap Andri ketika memberikan keterangan pada anak-anak Comlabs yang lain. Jika saja Andri tidak sempat melarikan diri tepat waktu, sudah dapat dipastikan dia tak akan selamat. Selain Andri, ada juga Mas Husain yang juga tepat berada di TKP saat atap itu rubuh. Bahkan posisi Mas Husain tidak lebih baik daripada Andri. Beliau bahkan tidak sempat melarikan diri sebagaimana Andri yang selamat duluan. Beruntung, atap di area beliau berada hanya jatuh setengahnya.

Seluruh civitas ComLabs yang sedang terjaga malam itu Alhamdulillah dalam keadaan sehat wal afiat. Tidak ada korban luka-luka satupun yang mencederai kami.

Semoga saja kejadian seperti ini tidak terulang lagi di ComLabs atau dimanapun kita berada. Untuk pihak-pihak yang berkepentingan dimohon kerjasamanya untuk mencegah hal seperti ini terjadi di masa yang akan datang.

Foto-foto di tempat kejadian akan segera menyusul...

Minggu, 27 Januari 2008

I Hate Aqsath

Wah... bener2 liburan nggak jelas banget pingin ngapain...
Akhirnya di minggu sore di kosan karena nggak jelas banget ya udahlah iseng2 aja...
nah isengnya itu ngesearch nama sendiri di google...

Dari sekian banyak link gitu mata saya tertuju pada satu link yaitu

=================================================================

Which person do you really really HATE? - Yahoo! Clever

Obi Hadrian, Aqsath Rasyid, Elmo, Ncus, Risa, haha.. I hate a lot of people.. 1 Monat. 0% 0 Stimmen. 0 Bewertung: Gute Antwort; 0 Bewertung: Schlechte ...
de.answers.yahoo.com/question/index?qid=20071116050311AAq36Gi&show=7 - 114k - Tembolok - Halaman sejenis


=================================================================

Hmmm... waw ada yang membenci saya nampaknya langsung saja tanpa ragu2 menuju TKP...
Setelah dicari - cari ternyata ada nama yang nulis tuh... nah kan ketauan siapa yang membenci saya...

Langsung lah dikonfirmasikan saja ke yang bersangkutan... kebetulan YM-nya sedang nyala...

Aqsath : hmmmm

test dulu ada nggak orangnya... XD

X : apaan?

wah ternyata ada orangnya.. bagus... lanjut...

Aqsath : X... liat ini http://de.answers.yahoo.com/question/index?qid=20071116050311AAq36Gi&show=7
X : hahaha.. iyah.. waktu itu lagi sebel ama lw, sebel banget
Aqsath : masalah paan?
X : lupa

(-_-') biasa nih orang alesan kalo udah ketauan....

X : Pokoknya pas siang sebelum gw nulis itu luw bener2 ngeselin.. pas maen yahoo answer ketemu pertanyaan begitu.. jadinya gw tulis orang2 yang gw sebelin waktu itu

(-_-') jadi cuma "pas" dia lagi ketmu pertanyaan itu... hmmm... untung pertanyaannya cuma orang paling nyebelin.. kalo yang lain2 gimana?? hahahaha... Nah berhubung udah YM-an sekalian aja promosi blog yang baru dibuat.. :p

Aqsath : liat http://aqsath.blogspot.com deh
X : wah jangan2 isinya menghardik gw
X : gw belom siaaap

Set dah nih orang cuma disuruh liat blog aja pake acara siap ato nggak... kayak mau ngapain aja..
Tapi gara2 itu jadi kepikiran.. wah posting di blog aja deh mayan nambah2... XP ya udah itu ntar aja deh nulis yang penting biar banyak yang baca dulu.. hehehe...

Aqsath : hahaha... nggak lah.. blom gw tulis.. ntar malem keknya gw post

Akhirnya dia mau buka.. terus agak lama.. kayaknya dia lagi baca... terus...

X : haha... itu siapa yang bilang pake passport.. ko aneh??
Aqsath : menurut lw siapa?? Dia salah satu dari list orang yang lw sebelin.. hahaha

Hmmm.... udah pada baca postingan saya yang sebelomnya kan?? (sekalian promosi.. XD)
Nah abis itu dia pindah topik deh... seraya memohon...

X : Sat... di postingan yang bawa2 ini.. gwnya jangan dihardik2 yah
Aqsath : hahahaha.. iya2
X : dihina2 aja dikit

Wew... geblek juga nih... minta dihina.. hahahaha

Hmmm... gimana si 'X' sudah merasa terhina dengan postingan ini?? XD...
piss ah...
Oh ya buat yang lainnya yang merasa menjadi list orang yang dibenci si 'X' bisa tanya langsun ke orangnya alesannya... hehehehe....

Sabtu, 26 Januari 2008

Imagine Cup vs Amazing Race

Jadi HMIF tepatnya DivKel akan mengadakan sebuah kegiatan berjudul "Amazing Race"
nah, berhubung terlalu lama di jakarta dan kalo udah disana jarang buka milis (AnSos) nggak tau deh ada yang namanya Amazing Race..

Di suatu siang tiba2 ada seorang teman dari DivKel berkata

Teman : Sat, ikutan Amazing Race dong.. masa dari 2006 yang ikut cuma 1 kelompok doang..
Aqsath : Hmmm.. ok.. Emang Amazing Race apaan??
Teman : Ah, lw.. udah buka milis aja..


Setelah mendengar itu saya langsung buka milis dan membaca tentang detail Acara
Ternyata Amazing Race itu seperti lomba internal HMIF...
Acaranya keliling bandung dengan quest2 yang ada..
Dan ternyata berkelompok.. 1 kelompok 6 orang..

Nah, ketika itu yang terlintas di kepala saya adalah seseorang yang mempunyai stamina kuat dan fisik yang kuat.. Mengingat saya mempunya teman yang memenuhi kriteria itu langsunglah saya hubungi dia.. sebut saya si "X"..

Aqsath : X, ikutan Amazing Race yok..
X : Wah, gw udah bikin kelompok sat sama Bofan dan Arya
Aqsath : Wah, curang lw nggak ngajak2, terus sama siapa lagi?? Kok cuma 3 orang??
X : Wah kayaknya baru ber-3 dan pasti bakal ada yang pingin gabung :D
Aqsath : Maksud lw? ya udah gw ikutan kelompok lw.. Berarti tinggal 2 orang lagi nih
X : Lah kan maksimal 4 orang.. kita berarti udah cukup

Wah berarti saya salah baca

Aqsath : Hah?? Serius?? kata siapa 4 orang?? udah diganti ya peraturannya??
X : Lho, kayaknya dari dulu emang udah max. 4 orang deh.. Coba aja liat web-nya..

Waw.. Ternyata DivKel mem-publish acara ini di web.. keren sekali... mantab2...

Aqsath : Waw, keren banget ada webnya. Emang apa web-nya?? Jadi penasaran nih
X : Wah lupa juga tuh sat.. Coba aja dicari di Google

Waw.. bukan cuma di-publish tapi juga bisa dicari di Google...

Aqsath : wew... Serius bisa dicari di Google?? keywordnya apa??

Rasa penasaran saya saat itu sangat memuncak karena bangga juga punya acara internal aja sampe di-publish bahkan sampe bisa dicari di Google... wew..

X : "Imagine Cup"

Deng.. deng.. deng... ternyata nggak jadi deh bangga.. ternyata cuma orang salah liat (-_-')

Aqsath : X, siapa yang ngomong Imagine Cup sih?? orang ngomongin Amazing Race juga (-_-')
X : Lho, iya kan Imagine Cup banyak cabangnya...

Cape bener dah ngobrol sama nih anak...

Aqsath : Mana ada sih Amazing Race masuk cabangnya Imagine Cup... emang lw mau masukin mana??
X : Oooo... ternyata bukan Imagine Cup toh... wah nggak bisa juga sat.. Lw tau kan gw udah sibuk sama yang namanya Imagine Cup
Aqsath : Lah, emang apa susahnya kan cuma tinggal daftar terus ikut main deh.. paling juga cuma sehari
X : Wah nggak mungkin sat kalo cuma sehari.. Daftarnya aja gimana?? blom lagi berangkatnya kesana.. mau naik apa?? gw sibuk banget nih Imagine Cup

Wah, firasat buruk nih anak salah tangkep lagi...

Aqsath : Lha, tinggal berangkat aja gitu.. Naik apa?? emang lw biasanya ke kampus naik apa??
X : Lha, ini kan nggak cuma dari kosan gw ke kampus sat... Kalo Amazing Race berarti kita harus ngurus paspor segala

Wah, makin buruh nih firasat saya.. kayaknya bener2 nggak nyambung nih...

Aqsath : Hah?? Paspor?? buat apaan??
X : Lha.. ini Amazing Race yang di TV itu kan?? Gw sering ngeliat kok dulu.. sekarang udah nggak pernah lagi.. sibuk soalnya..

Deng.. deng.. deng.. bener kan firasat saya.. cape deh bener2 sama nih anak
Wah gawat bener deh...