Array PHP (belajar pemrograman web dasar untuk pemula)

Array PHP (belajar pemrograman web dasar untuk pemula)

Alhamdulillah masi bs ngeksis diblog terceinta ini, dipostingan yang sebelumnya ane udah bahas tentang function PHP.. kali ini ane akan ngebahas tentang Array PHP.. ane pernah bilang di postingan2 sebelumnya Array PHP itu unik tidak seperti Array di pemrograman lain... mangkanya ane perlu bahas Array PHP ini dalam satu Postingan... seperti yang ente tau.. eh ente udah tau gak ya?? Hehehehehe... kalo belum tau sebaiknya ente baca dulu pembahasan ane tentang array di C#, Java, C++... array itu kan seperti Laci Ganda... kalo digambarkan gambarnya seperti ini...

kalo dalam variabel kan kita Cuma bisa menyimpan 1 nilai... kalo array kita bisa menyimpan beberapa nilai dalam 1 variabel array... Apa yang membuat Array di PHP itu berbeda?? Apa yang bikin unik?? Array itu kan mempunyai index yang untuk menyimpan nilai... misal kita punya variabel Array Binatang, kita bisa isikan pada array itu, pada index ke 0 (binatang[0]) kita isi dengan gajah.. pada index ke 1(binatang[1]) kita isi dengan Harimau... dst... kalo pada pemrograman lainya untuk menandai index kita harus menggunakan nomor tapi di PHP kita bisa menandainya dengan karakter... bahasa gampangnya kita bisa kasi nama pada index array itu.... tapi apa bisa tetep memakai nomor ?? ya bisa2 saja :D kenapa tidak ?? slain itu juga Array di PHP ada keunikan yang lain... nanti ane bahas apa keunikan yang lain itu... sekarang coba ente jalankan Kode berikut....
<?php
$buah = array();
$buah[0] = "jeruk";
$buah[1] = "apel";
$buah[2] = "mangga";

print_r($buah);
?>
Pada contoh kode diatas.. array masi memakai index nomor... untuk menampilkan array di PHP langsung aja kita pake Object “print_r”... kalo di tampilkan pake looping yang lain seperti For, While apa bisa ??? ya bisa2 saja... tapi gak ane bahas disini... hehehehehe... Lalu bagaimana dengan array yang katanya bisa indexnya bisa dikasi nama ?? ini contoh kodenya... simpan dan jalankan di browser ente...
<?php
$buah = array();
$buah["kuning"] = "jeruk";
$buah["merah"] = "apel";
$buah["hijau"] = "mangga";

print_r($buah);
?>

ente bisa lihat di kode programnya... indexnya gak pake nomer... tapi pake nama... “kuning”,”merah”,”hijau”... jadi indexnya pake nama :D ... ketika dijalankan di browser... indexnya juga dengan nama to ?? hehehehehe itu uniknya array di PHP... untuk penulisan array gak harus deklarasi array baru kita isi nilai2 arraynya tapi juga bisa seperti ini... biar agak keren gitu lah kodenya... hehehehehehe
<?php
$buah = array(
"kuning" => "jeruk",
"merah" => "apel",
"hijau" =>"mangga"
);

print_r($buah);
?>
Keunikan Array PHP lainnya adalah dalam 1 index PHP bisa menyimpan Array Lagi... dan indexnya pun bisa di kasi nama... coba kode program ini....
<?php
$hewan = array();

$hewan['darat'] = array('harimau','gajah', 'monyet');
$hewan['laut'] = array('hiu','paus','lumba - lumba');
$hewan['udara'] = array('elang','gagak');

print_r($hewan);
?>
Pada array hewan.. index darat.. ane nyimpen 3 hewan, 3 hewan itu ane simpan pada index yang berbeda juga... coba nanti ente analisis sendiri yak ?? hehehehe... gampang kok... ini ane ada contoh lain lagi... di dalam array kan bisa ada array... di dalamnya array itu ane kasi array lagi... (yo dawg) wkwkwkwkwk... ini kode programnya....
<?php
$hewan = array();

$hewan['darat'] = array('harimau',array('mamalia' => 'gajah','monyet'));
$hewan['laut'] = array('hiu', array('mamalia' => 'paus'),'lumba - lumba');
$hewan['udara'] = array( array('pemakan daging' => 'elang','gagak'), array('pemakan biji' => 'pipit'));

print_r($hewan);
?>

jadi didalam array hewan darat ada beberapa index... disalah satu indexnya ane kasi array lagi yang salah satu indexnya namanya mamalia :D ...
Begitulah cerita tentang Array PHP yang berbeda dengan Array pemrograman lainnya... manfaatnya apa ?? banyak si manfaatnya... tapi paling terasa nanti ketika kita bermain2 dengan framework PHP.. sepert codeigniter, obullo, becak dll....
untuk postingan kali ini cukup sampai disini dulu ya gan... pada postingan selanjutnya ane bahas tentang Class PHP... happy cooding
Read More

Class PHP (Belajar pemrograman web dasar untuk pemula)

Class PHP (Belajar pemrograman web dasar untuk pemula)
seperti kata ane sebelumnya... kali ini ane mau nulis contoh Class PHP... penulisan Class di PHP tidak berbeda dengan Class pemrograman yang lain... untuk memanggilnya /  menjadikannya object instans juga tidak jauh berbeda.... juga sama didalam peletakkan Classnya... mau ditulis dalam satu file dengan program inti (Main) atau berbeda file juga tidak masalah... rasanya untuk Class ini tidak perlu panjang lebar ane jelaskan... class itu bs juga dikatakan kumpulan dari beberapa function... lebih jelasnya ente bisa baca penjelasan ane tentang Class atau function disini....



di Postingan ini classnya ane pisahin di file yang berbeda... ane kasi nama class.php ... kalo ente mau ente bs ganti nama filenya...
<?php
class Matematika{

public function Penjumlahan($bilangan1,$bilangan2){
return ($bilangan1+$bilangan2);
}

public function Pengurangan($bilangan1,$bilangan2){
return ($bilangan1-$bilangan2);
}

public function Perkalian($bilangan1,$bilangan2){
return ($bilangan1*$bilangan2);
}

public function Pembagian($bilangan1,$bilangan2){
return ($bilangan1/$bilangan2);
}
}
?>
trus tempatnya menjadikan object instannya ane pake file index.php ... begini kodenya...
<?php
include "Class.php";

//object instans class matematika
$contoh_class = new Matematika();

$bilangan1 = 100;
$bilangan2 = 50;

echo "Hasil Penjumlahan dari ".$bilangan1." dan ".$bilangan2." adalah ".$contoh_class->Penjumlahan($bilangan1,$bilangan2).'< br />';
echo "Hasil Pengurangan dari ".$bilangan1." dan ".$bilangan2." adalah ".$contoh_class->Pengurangan($bilangan1,$bilangan2).'< br />';
echo "Hasil Perkalian dari ".$bilangan1." dan ".$bilangan2." adalah ".$contoh_class->Perkalian($bilangan1,$bilangan2).'< br />';
echo "Hasil Pembagian dari ".$bilangan1." dan ".$bilangan2." adalah ".$contoh_class->Pembagian($bilangan1,$bilangan2).'< br />';
?>
dari kode di atas ane panggil file tempate class Matematika berada dengan kode include "Class.php"... ente bisa sesuaikan dengan file yang ente buat... terus ane panggil Classnya dan ane jadikan object instan yaitu "$contoh_class".... habis itu ane pakai semua function2 yang ada di class matematika... karena function2nya mengembalikan nilai yan langsung ane echo aja :D ... simple kan untuk class PHP ini ? dan tidak ada yang istimewa dengan class PHP...
sekian dulu ya gan postingan kali ini... semoga ente paham dan semoga bisa memberikan manfaat untuk kita semua.... i.Alloh pada postingan2 selanjutnya ane mau bahas tentang Object Oriented Programming (OOP) PHP.. tapi gak tau selanjutnya itu yang keberapa wkwkwkwkw .... happy cooding...
Read More

Function PHP || Belajar Pemrograman Web PHP dasar (bagian 2)

Function PHP || Belajar Pemrograman Web PHP dasar (bagian 2)
Sekilas penjelasan tentang Function PHP ... tapi ane kira ente udah paham tentang Function, Postingan ini ane bakal bahas tentang Function return dan Method, di PHP tidak ada namanya Function Void yang ada hanya Function return value (mengembalikan nilai) atau Function yang tidak mengembalikan nilai  yang biasaya disebut Method :D ... pada Function PHP Example kali ini, walah kok jadi campuran gini ya ?? hehehe pada Contoh Function PHP kali ini ane kasi contoh Function return String dan yang lain... buat ente yang belum paham dengan Function, monggo ente plajari dulu di postingan ane sebelumnya yang membahas tentang Function di C#, Java dan C++...

kalo ente udah paham / ngerti tentang function dan method sekarang saatnya ane kasi contoh Function PHP nya... oia pada postingan sebelum ini di akhir Artikel ane kasi contoh kode PHP yang sudah berjalan di HTML kan ?? kalo belum.. ya kapan2 dibaca ya ?? hehehehe.. oke buat satu folder di folder htdocs - XAMPP ente.. terserah namanya apa... trus bikin 2 file.. file yang pertama ente kasi nama index dengan ekstensi php (index.php), file yang kedua ente kasi nama fungsi dengan ekstensi php juga (fungsi.php) ...



Copy kan kode berikut ke dalam file fungsi.php
<?php
function HelloWorld(){
echo "Hello world (Title dengan function)";
}

function PrintWord($word){
echo $word;
}

function Perkalian($satu,$dua){
echo 'Hasil Perkalian '.$satu.' dan '.$dua.' = '.($satu*$dua);
}

function ReturnValuePenjumlahan($satu,$dua){
return ($satu+$dua);
}

function ReturnValuePengurangan($satu,$dua){
return ($satu-$dua);
}

function ReturnString($nama){
$val = "";
if($nama == "Rizal"){
$val = "Rumah Anda di Banyuwangi";
}else if($nama == "Faradis"){
$val = "Rumah Anda di Genteng";
}else if($nama == "Panjoel"){
$val = "Rumah Anda di Songgon";
}else{
$val = "Nama tidak terdaftars";
}
return $val;
}
?>
file fungsi.php ini berisi beberapa function return value ataupun yang bukan return value :D
kemudian pada file index.php copykan code berikut...

<html>
<head>
<title></title>
</head>
<body>
<div style="background:#993399; color:#FFFFFF; width:300px; height:100px; font-size:14px;">

</div>
</body>
</html>
kemudian ente simpan ke dua file tadi trus jalankan di browser... apa jadinya ?? browsernya kosong kan ?? bahkan titlenya juga kagak ada.. cuma ada warna ungu dengan ukuran 300X100 pixel kan ?? hehehehe... sekarang coba kita tambahkan kode PHP nya ya ?? pada bagian paling atas, di atasnya tag HTML ente kasi kode ini

<?php
include 'fungsi.php';
?>
terus kasi juga di tag Title kode ini :
<?php echo HelloWorld(); ?>  
Kode selengkapnya :
<?php
include 'fungsi.php';
?>
<html>
<head>
<title><?php echo HelloWorld(); ?></title>
</head>
<body>

</body>
</html>
setelah itu ente save dan refresh browser ente... pasti browser ente brubah jadi gini....

maksud dari kode di atas, kode include itu untuk menggabungkan file fungsi.php dengan file index.php... jadi kode apapun yang ada pada file fungsi.php bisa di panggil di file index.php... setelah itu pada panggil function Helloworld() pada Tag Title dan kita echo (tampilkan isinya).. ya otomatis apa yang ada di function Helloworld() akan tercetak pada Tag title...

kemudian coba juga kode ini ya ??
<?php PrintWord("Ahmad Rizal Afani"); ?>  
tambahkan kode diatas di antara tag Div... simpan dan refresh browser ente... pastinya jadinya kayak gini...

kode diatas itu memanggil function PrintWord dan mengirim sebuah nilai parameternya.. pada contoh kode diatas nilainya nama ane :D.. dan di dalam function itu value yang di kirim tadi di tampilkan pake "echo" ...
sekarang ente coba penjumlahan dengan function ya.. jadi proses penjumlahannya di lakukan didalam function kemudian di tampilkan juga didalam function itu... untuk mengirim nilai kedalam function itu pastinya function harusnya mempunyai 2 parameter... ini kodenya :
<?php 
$bilangan1 = 10;
$bilangan2 = 50;
Perkalian($bilangan1,$bilangan2);
?>

Lalu bagaimana dengan Function return value ?? ini baru mau ane jelasin... hehee..
coba kode ini

<?php 
$bilangan1 = 10;
$bilangan2 = 50;
echo 'hasil penjumlahan '.$bilangan1.' dan '.$bilangan2.' = '.ReturnValuePenjumlahan($bilangan1,$bilangan2);
?>

Kalo pada contoh yang tadi kita melakukan proses penjumlahan di dalam function, kemudian juga di tampilkan di dalam function... kalo kode yang ini hasil prosesnya dikembalikan dulu baru di "echo" (ditampilkan di luar function)... itu yang namanya function return value.. coba ente lihat di file fungsi.php function ReturnValue pasti di akhir kode ada keyword "return";

sekarang kita coba dengan function return string yang lain yang melakukan seleksi didalam function itu... coba kode ini.......

<?php 
$nama = "Faradis";
echo ReturnString($nama);
?>
Coba ente liat function ReturnString didalam file fungsi.php... function ini melakukan seleksi kemudian mengembalikan nilai sebuah string yang bisa kita tampilkan diluar function... dari penjelasan yang singkat ini semoga ente paham... kan udah ane jelasin apa maksud dari kode kode diatas itu... nanti kalo masi gak paham coba ente analisa kode2 itu... i.Alloh nanti bisa paham... :D semoga postingan ini bermanfaat buat kita semua... Amiiin...
Read More

Belajar Pemrograman Web PHP dasar (untuk pemula) bagian - 1

Belajar Pemrograman Web PHP dasar (untuk pemula) bagian - 1
Alhamdulillah kali ini masi punya luang waktu untuk menulis diblog ini.... pengen rasanya aktip untuk berbagi lewat blog ini setiap hari tapi apa mungkin ya ?? hehee.. I.Alloh ane mesti luangin waktu buat nulis diblog ini meskipun gak tiap hari si... yang penting ngeksis dulu... hehehehehe... dari postingan yang sebelumnya tentunya udah ente siapkan beberapa perangkat untuk belajar pemrograman web dasar seperti Apache service yang udah ente instal di Lapy atau kompi.. text editornya dan mungkin 2 cangkir kopi buat ente dan ane yang lagi belajar bareng pemrograman web... hehehehe... ane disini bakal nulis tentang pemrograman web dengan PHP dasar untuk pemula... artinya disini ane bakal kasi contoh2 code dari dasar2 pemrograman... seperti postingan pemrograman lainnya ane bakal bahas dasarnya dulu...

Postingan ini akan bersambung sampai 3 bagian... bagian pertama (postingan ini) akan ane bahas tentang syntax dasar, penulisan code program, output program, penjumlahan bilangan, flow control IF dan Switch-Case, Perulangan For, perulangan while dan perulangan do-while... bagian kedua ane bakal bahas tentang Method dan Function di PHP dengan implementasi ke User interface / GUI pemrograman web yaitu HTML... bagian ke tiga insya ALLOH ane mau bahas tentang array di PHP... pembahasan tentang array PHP ini mungkin agak panjang.. karena array PHP berbeda dengan Array pemrogramnan lainnya... menurut ane si Array di PHP itu unik :D .. di tunggu aja ya postingan selanjutnya...


oke sekarang kita mulai bahas PHP dasarnya... pertama buatlah satu directory (folder) di folder Htdocs XAMPP.. default tempatnya itu di C:\xampp\htdocs terserah directory/folder itu mau ente kasi nama apa... kalo ane ane kasi nama belajar web...

setelah itu didalam directory/folder yang ente buat tadi buatlah satu file dengan nama index.php (ekstensi PHP)... kalo udah buka file index.php itu dengan text editor ente... sekarang coba ente buka browser trus ketik di addressbar nya... localhost/belajarweb/ (belajarweb bisa ente ganti dengan nama directory/folder yang ente buat tadi) kemudian tekan enter... Apa yang terjadi gan ?? hehee... pasti kosong melompong to.. gak ada apa2 nya... ya jelas lah... wong d file index.php nya kan juga masi kosong... hehee.. loo tapi kan url tadi gak ngarah ke index.php ??? gini.. file index adalah file tujuan default directory jika tidak ditulis file tujuannya.. misal kita hanya nulis di rectori saja seperti tadi itu pasti yang default file yang di tuju itu ya index.php... paham ?? gak percaya... oke nanti kita buktikan ya ??

sekarang coba ente tambahkan pada file index.php beberapa baris program ini

<?php

echo "Hello World";

?>
sekarang ente save dan refresh browser ente yang tadi... apa yang terjadi ?? pasti akan seperti ini to...

sekarang coba ente ketikan di addressbar alamat yang sama tapi setelah slash ente kasi index.php jadi gini localhost/belajarweb/index.php ... hayo... apa yang terjadi ?? tidak ada perubahan kan ?? itu tandanya default file yang dituju directory itu ya index.php... kalo seumpaman di rename file index.php misal jadi home.php?? ya coba sendiri... nanti ente juga bakal tau.. hehehehe...

arti dari code diatas itu untuk penulisan kode PHP itu harus dimulai dengan "<?php" dan di akhiri dengan "?>" untuk menampilkan sebuah comment ente kudu pake keyword "echo".. kalo di C# kan "Console.Write" kalo di Java "System.out.print"... Udah Paham gan ?? :D ...

Oke Selanjutnya coba ente jalankan kode ini... kode yang tadi dihapus dulu gak opo opo...
<?php

echo "Hello World < br />";
echo "My Name Ahmad Rizal Afani";

?>
maksud dari kode di atas itu, kalo ente pengen nulis comment dengan 2 baris harus menambarkan tag "<br />" itu kan tag HTML yang fungsinya untuk meng-enter comment... gampangane gitu... kalo gak pake tag "<br />" gimana?? ya comment nya gak akan menjadi 2 baris gitu,, jadi 1 baris yang panjang kayak kereta :D ... silahkan ente coba sendiri ya ...
sekarang kita bahas tentang variabel... variabel di php itu gak sama kayak pemrograman C# dan Java... untuk variabel C# dan Java harus memakai sebuah tipe data seperti int, byte, short, string, char dll.. biasanya untuk tipe data angka menggunakan type data int dan untuk character /  huruf menggunakan type data string... berbeda dengan php.. php tidak mengenal type data.. kalo pengen menggunakan suatu variabel kita langsung ketik, misal kita pengen variabel nama ya.. langsung ketik "$nama" .... jadi tinggal ketik dolar(baca) trus nama variabelnya... simple kan ?? tidak ada perbedaan antara data angka dan huruf... silahkan coba kode dibawah ini...
<?php

$nama = "Ahmad Rizal Afani";
$alamat = "Kertosari";

echo "Nama Anda = $nama < br />";
echo "Alamat = $alamat< br />";

?>
pada kode diatas ane menuliskan 2 variabel kemudian ane gabungkan sama commen...
sekarang ane kasi contoh perkalian ya... berikut kodenya...

  
<?php

$bilangan1 = 10;
$bilangan2 = 10;

echo "Hasil perkalian antara $bilangan1 dan $bilangan2 adalah ".($bilangan1+$bilangan2);
?>
untuk flow control IF dan Switch-Case tidak jauh berbeda struktur kodenya dengan pemrograman yang lain... coba ini gan...
IF
<?php

$nilai = 80;

if($nilai > 90){
echo "Nilai Anda A";
}else if($nilai > 70){
echo "Nilai Anda B";
}else if($nilai > 50){
echo "Nilai Anda C";
}else if($nilai > 30){
echo "Nilai Anda D";
}else{
echo "Nilai Anda E";
}

?>
Switch Case
<?php

$nama = "Rizal";

switch($nama){
case "Rizal";
echo "Rumah anda di Banyuwangi";
break;
case "Faradis";
echo "Rumah anda di Genteng";
break;
case "Panjoel";
echo "Rumah anda di Songgon";
break;
default:
echo "Pilihan Salah";
break;
}

?>
Untuk Looping (perulangan) tidak juga tidak berbeda dengan pemrograman yang lain untuk struktur kodenya... seperti yang ente tau... looping itu kan ada 3 yaitu menggunakan for, menggunakan while dan menggunakan do-while... ini ane kasi contoh semuanya...
For
<?php

for($i = 0; $i<5; $i++){
echo "perulangan menggunakan for ke ".($i+1)."< br />";
}

?>

While
<?php

$i = 0;

while($i <5)
{
$i++;
echo "perulangan menggunakan while ke ".$i."< br />";
}

?>
Do-While

<?php

$j = 0;
do
{
$j++;
echo "perulangan menggunakan do - while ke ".$j."< br />";
}
while($j <3);

?>
Untuk postingan kali ini mungkin udah cukup ya... kan memang pembahasanya cuma sampek perulangan... pada postingan selanjutnya akan ane bahasa tentang function dan method di PHP...
oia sebelumnya ente coba kode ini dulu ya... trus ente analisa sendiri gimana hasilnya.... ya itung2 blajar mandiri lah... wong cuma nganalisa aja... :D
<?php
$nama = "Ahmad Rizal Afani";
$alamat = "Kertosari, Banyuwangi";
$no_hp = "087755925565";
?>
<html>
<head>
<title>Belajar PHP Dasar</title>
</head>
<body>
Nama : <input name="nama" type="text" maxlength="300" value="<?php echo $nama; ?>" /><br /><br />
Alamat : <input name="alamat" type="text" maxlength="300" value="<?php echo $alamat; ?>" /><br /><br />
No HP : <input name="No hp" type="text" maxlength="300" value="<?php echo $no_hp; ?>" />
</body>
</html>

itu kode php nya udah ane kombinasikan sama HTML... ente analisa sendiri ya... udah dulu postingan kali ini... nanti kalo ada kesempatan ane lanjutkan lagi... hehee happy cooding
Read More

Belajar Pemrograman Web

Belajar Pemrograman Web

Pagi ini langit agak sedikit mendung... sama seperti keadaan hati ane sekarang gan,, kali ini bukan karena tapi karena beberapa gelintir orang yang bener2 ngebuat ane kecewa berat.. sampek ane males mau ngapa2in... ternyata apa yang dikatakan mantan ane kmarin bener gan... didunia ini tidak ada yang tulus, tidak ada yang gratiss, walaupun ada yang gratis pasti dibelakangnya ada motiv tertentu... dulu ane gak percaya sama pendapat mantan ane tapi karena sekarang bener2 terjadi dalam hidup ane dengan terpaksa ane harus percaya dengan pendapat itu... jujur gan, dulu ane slalu berfikir agar orang2 yang disekitar ane gak susah kayak ane dalam belajar pemrograman, termasuk temen2 ane... ane slalu ngebantu mereka... ngerjain tugas2 mereka... ane pengen ngebantu mereka tapi mereka malah berfikiran lain, mereka manfaatin ane, mereka gunain kebaikan ane untuk kepentingan mereka sendiri... ane gak pernah sadar tentang hal ini sampai akhirnya ane melihat sendiri sekarang ke licikan mereka...apalagi diantara mereka ada yang kolo butuh... saaat mereka butuh ane harus bantu mereka, setelah kebutuhan mereka selesai dengan baik ane di tinggal, bahkan ane ngomong kagak di dengerin, sp coba yang gak sakit ?? semua orang juga akan merasa sakit hatinya kalo di gituin... apa ini balasan mereka sm ane yang slama ini ngebantu mereka ??



diantara mereka ada yang sampek ngusir ane... kalo inget kejadian itu rasanya pengen nonjok mukanya... sampek ada yang ngomong2 jorok ke ane... tragis banget yang ane alamin gan... belum lagi ada yang dapet project bareng, TIM berjumlah 4 orang, yang kerja cuma 2 orang... sebenarnya udah dibagi tu modul2nya... tapi karena ane ngeliat tmn ane itu gak ngerjain, jadi ane kerjain... ane kuatir kalo project ini gak selesai... giliran pembagian financial dan semacamnya minta bagian tetep... kadang juga berlagak dia yang ngerjain projectnya... teman macam apa ini ??? tapi dari sini ane bisa ngambil pelajaran... seperti kata para orang tua setiap kejadian pasti mengandung hikmah walopun itu sakit awalnya... ane gak bisa bertindak apa2 sekarang... ane serahin aja semua kepada Alloh, biar Alloh aja yang menyelesaikan semua masalah ini....

maaf ya gan, karena rasa gak enak hati ini jadi kepanjangan curhatnya :D... jadi gak sincron sama judul postingnya...

Buat agan2 yang mau belajar pemrograman web, sebelum agan belajar harusnya ente paham betul tentang dasar2 pemrograman...seperti Flow Control, Looping, Array, Method/Function... kalo ente kagak paham sama dasar pemrograman rasanya berat gan kalo belum paham, ente bisa pelajari di blog ini tentang dasar pemrograman, gunakanlah bahasa yang gampang seperti C# untuk belajar dasar pemrograman....

Kalo agan udah paham tentang dasar-dasar pemrograman, selanjutnya ente harus belajar dulu desain web, maksud ane belajar HTML, CSS dan JAVA SCRIPT... soalnya pemrograman web itu tidak seperti pemrograman dekstop, kalo pemrograman dekstop itu kan form dan cooding pemrogramannya sudah dikemas dalam satu bahasa pemrograman... kalo pemrograman web berbeda, form sama pemrogramannya berbeda.. kalo formnya pasti pake HTML, CSS dan JAVA SCRIPT (jika perlu) sedangkan bahas pemrograman web itu menggunakan PHP,, jadi menggunakan platform/engine yang berbeda... jadi paling enggak ente harus mengerti tentang desain web... gak harus mahir tapi kudu mengerti :D ... perbedaan penulisan pemrograman web, cooding nya diselipkan pada kode HTML nya... agak rumit si... tapi kalo udah terbiasa ya gak rumit2 amat.. mangkanya ente belajar dulu desain web.. diblog ini ane gak bahas tentang desain web... ente bisa pelajari di blog2 yang lain atau di http://www.w3schools.com/...

gunakan dreameweaver atau notepad++ untuk text editornya agar lebih cepet ente mendesainnya... tapi kalo ente bener2 niat belajar harusnya ente pake notepad murni... jadi ente tidak dibantu dengan text editor untuk kemudahan menulis kode2 HTML / CSS... dengan begitu ente bisa paham dan hapal dengan kodenya... dulu ane juga gitu waktu pertama-tama belajar HTML-CSS, bahasa pemrograman C# dan yang lain.. jarang banget copy paste... lama si tapi itu berguna dikemudian hari... ingat !! tidak ada sesuatu yang instan, bahkan mie instan saja harus dimasak duku kalo mau di makan... kata Imam Ali karramallou wajahah, diantara 6 syarat orang menuntut ilmu itu adalah waktu yang panjang... jadi sabar aja... berakit2 kehulu bersenang2 kemudian...  :D

kalo udah paham dengan desain web yang perlu ente siapin sekarang adalah engine PHP nya.. apache service dan engine database nya.. semua itu udah dikemas dalam satu Installer... XAMPP namanya.... ente bisa download langsung dari websitenya...

setelah itu ente Instal di lapy atau di kompi ente...
kalo udah ente Instal... sekarang saatnya kita berperang melawan PHP :D... kita taklukan PHP...
tapi tutorial pemrogramannya gak ane posting sekarang karena ini cuma pengenalan aje :D....
di tunggu aja di postingan selanjutnya ya gan...

keep cooding
Read More

Aplikasi CRUD C# - Koneksi C# dan Mysql

Aplikasi CRUD C# - Koneksi C# dan Mysql
Kembali ane menulis tutorial pemrograman....kalo tadi mlm ane ngepost tentang CRUD Java dan Koneksi Java - Mysql sekarang ane mau nulis tentang CRUD C# - Koneksi C Sharp dam Mysql.... Masi dalam Desain Form yang sama... cuma  Aplikasi CRUD Java yang ada di postingan sebelum ini ane rubah ke bahasa C#... Event-Eventnya Juga sama Databasenya Juga sama... Hehehee... intinya kan sama cuma coodingnya yang beda.... pertama ente buat database dulu seperti postingan yang sebelum ini...

ente harus pakai library untuk mengkoneksikan C# dan Mysql... ente kudu download dari situs resminya setelah itu ente includekan ke project C# ente...
berikut caranya...

  • Click kanan pada project, Click add references..

  • Kemudian akan muncul window baru, pada tab GAC pilih "Mysql.Data" dan "System.Data" 


setelah itu ente tambahin using referencesnya

using System.Data;
using MySql.Data.MySqlClient;

kemudian tambahkan beberapa Object yang membantu kita untuk memanipulasi data di Mysql, tambahkan dibawah Constructor

 private MySqlConnection koneksi;
private MySqlDataAdapter adapter;
private MySqlCommand perintah;
private DataSet ds = new DataSet();
private string alamat,query;

Tambahkan didalam Constructor kode berikut

         alamat = "server=localhost; database=kantor; username=root; password=;";
koneksi = new MySqlConnection(alamat);

ente bisa sesuaikan dengan username, password dan database ente :D

setelah itu ente bangkitin Event Click pada semua Button dan event FormLoad

kode di event FormLoad

try{
koneksi.Open();
query = string.Format("select * from pegawai");
perintah = new MySqlCommand(query,koneksi);
adapter = new MySqlDataAdapter(perintah);
perintah.ExecuteNonQuery();
ds.Clear();
adapter.Fill(ds);
koneksi.Close();
dataGridView1.DataSource = ds.Tables[0];
dataGridView1.Columns[0].Width = 120;
dataGridView1.Columns[0].HeaderText = "Kode Pegawai";
dataGridView1.Columns[1].Width = 230;
dataGridView1.Columns[1].HeaderText = "Nama Pegawai";
dataGridView1.Columns[2].Width = 120;
dataGridView1.Columns[2].HeaderText = "Jenis Kelamin";
text_kodepegawai.Clear();
text_namapegawai.Clear();
radiobutton_pria.Checked = false;
radiobutton_wanita.Checked = false;
text_kodepegawai.Enabled = true;
text_kodepegawai.Focus();
btn_update.Enabled = false;
btn_delete.Enabled = false;
btn_bersih.Enabled = false;
btn_simpan.Enabled = true;
btn_cari.Enabled = true;
}catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}

Kode event Button Simpan Click

try
{
if(text_kodepegawai.Text != "" && text_namapegawai.Text != "" && (radiobutton_pria.Checked == true ||radiobutton_wanita.Checked == true))
{
if(radiobutton_pria.Checked == true)
{
query = string.Format("insert into pegawai values ('{0}','{1}','{2}');",text_kodepegawai.Text,text_namapegawai.Text,radiobutton_pria.Text);
}
else
{
query = string.Format("insert into pegawai values ('{0}','{1}','{2}');",text_kodepegawai.Text,text_namapegawai.Text,radiobutton_wanita.Text);
}

koneksi.Open();
perintah = new MySqlCommand(query,koneksi);
adapter = new MySqlDataAdapter(perintah);
int res = perintah.ExecuteNonQuery();
koneksi.Close();
if(res == 1)
{
MessageBox.Show("Insert Data Suksess ...");
MainFormLoad(null,null);
}else{
MessageBox.Show("Gagal inser Data . . . ");
}
}else
{
MessageBox.Show("Data Tidak lengkap !!");
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}

kode event Button Cari Click

try
{
if(text_kodepegawai.Text != "")
{
query = string.Format("select * from pegawai where kodepegawai = '{0}'",text_kodepegawai.Text);
ds.Clear();
koneksi.Open();
perintah = new MySqlCommand(query,koneksi);
adapter = new MySqlDataAdapter(perintah);
perintah.ExecuteNonQuery();
adapter.Fill(ds);
koneksi.Close();
if(ds.Tables[0].Rows.Count > 0)
{
foreach(DataRow kolom in ds.Tables[0].Rows)
{
text_namapegawai.Text = kolom["namapegawai"].ToString();
if(kolom["jeniskelamin"].ToString() == "Pria")
{
radiobutton_pria.Checked = true;
}
else
{
radiobutton_wanita.Checked = true;
}
}
text_kodepegawai.Enabled = false;
dataGridView1.DataSource = ds.Tables[0];
btn_simpan.Enabled = false;
btn_update.Enabled = true;
btn_delete.Enabled = true;
btn_cari.Enabled = false;
btn_bersih.Enabled = true;
}else
{
MessageBox.Show("Data Tidak Ada !!");
MainFormLoad(null,null);
}

}else
{
MessageBox.Show("Data Yang Anda Pilih Tidak Ada !!");
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}

Kode event Button bersih Click

try
{
MainFormLoad(null,null);
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}

Kode event Button Update Click

try
{
if(text_namapegawai.Text != "" && (radiobutton_pria.Checked == true ||radiobutton_wanita.Checked == true))
{
if(radiobutton_pria.Checked == true)
{
query = string.Format("update pegawai set namapegawai = '{0}',jeniskelamin = '{1}' where kodepegawai = '{2}'",text_namapegawai.Text,radiobutton_pria.Text,text_kodepegawai.Text);
}
else
{
query = string.Format("update pegawai set namapegawai = '{0}',jeniskelamin = '{1}' where kodepegawai = '{2}'",text_namapegawai.Text,radiobutton_wanita.Text,text_kodepegawai.Text);
}

koneksi.Open();
perintah = new MySqlCommand(query,koneksi);
adapter = new MySqlDataAdapter(perintah);
int res = perintah.ExecuteNonQuery();
koneksi.Close();
if(res == 1)
{
MessageBox.Show("Update Data Suksess ...");
MainFormLoad(null,null);
}else{
MessageBox.Show("Gagal Update Data . . . ");
}
}else
{
MessageBox.Show("Data Tidak lengkap !!");
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}

Kode event Button delete Click

try
{
if(text_kodepegawai.Text != "")
{
if(MessageBox.Show("Anda Yakin Menghapus Data Ini ??","Warning",MessageBoxButtons.YesNo) == DialogResult.Yes){
query = string.Format("Delete from pegawai where kodepegawai = '{0}'",text_kodepegawai.Text);
ds.Clear();
koneksi.Open();
perintah = new MySqlCommand(query,koneksi);
adapter = new MySqlDataAdapter(perintah);
int res = perintah.ExecuteNonQuery();
koneksi.Close();
if(res == 1)
{
MessageBox.Show("Delete Data Suksess ...");
}
else
{
MessageBox.Show("Gagal Delete data");
}
}
MainFormLoad(null,null);
}else
{
MessageBox.Show("Data Yang Anda Pilih Tidak Ada !!");
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}


Untuk demo Aplikasinya begini Gan...

FormLoad


Button Simpan Click



Button Update Click



Button Delete Click


Button Cari Click


Kalo mau download project aslinya silahkan download disini gan...

Read More

Aplikasi CRUD Java - koneksi Java dan Mysql

Aplikasi CRUD Java - koneksi Java dan Mysql
Di malam yang sesunyi ini... aku sendiri... tiada yang menemani... akhirnya kini kusadari.... dia telah pergi... tinggalkan diriku.....:D ya inilah gan, keadaan ane sekarang... jomblo yg kece (Kecepian maksudnya)... tapi kecepian ini membawa suatu hikmah yg gak bisa di mengerti sama orang lain... banyak yg bilang kalo ane susah dapet pacar, sebenarnya si gak susah2 amat buat dptin cewek... emang si kali ini ane lagi suka sama salah satu cewek dikampus ane ya.. walopun beda jam tayang :D ... sehingga kita terpisah antara jarak dan waktu... tapi bukan itu masalah sebenarnya kenapa ane gak mau pacaran dulu kali ini... Banyak yg harus ane pikirin... mana lagi ane harus mikir tugas2 yg lagi numpuk, mikir kuliah yg terus2an nuntut ane buat blajar... dan satu hal yg paling bikin ane saat ini bener2 ogah sama yg namanya pacaran... ane kapok di akal2in sama cewek... kjadian yg lalu itu bnr2 memberikan plajaran yg besar buat ane untuk memahami bagaimana sebenarnya wanita itu.... tapi gak apa-apalah sehancur-hancurnya ane kmaren toh ane masi bisa hidup dan meraih prestasi yang belum ane raih sebelumnya...


udah dulu deh gan curcolnya :D ... pada postingan kali ini ane mau ngasi contoh program Aplikasi CRUD (Cread, Read, Update, Delete) Java dan Koneksi Java - Mysql

sebelumnya ente harus buat dulu database untuk manipulasi datanya, kalo gak ada databasenya pa yang mau di manipulasi ??? hehehee...
create database if not exists `kantor`;

USE `kantor`;

CREATE TABLE `pegawai` (
`kodepegawai` int(3) NOT NULL,
`namapegawai` varchar(50) DEFAULT NULL,
`jeniskelamin` varchar(10) DEFAULT NULL,
PRIMARY KEY (`kodepegawai`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

kemudian isi dengan beberapa data
insert  into `pegawai`(`kodepegawai`,`namapegawai`,`jeniskelamin`) values (1,'Untung Slamet','Pria'),(2,'Yanti Puspita','Wanita'),(3,'Joko Siswanto','Pria'); 
kalo udah sekarang ente harus menyediakan connector jdbc agar project java ente terhubung dengan database... Kalo ente pake netbeans versi 6 keatas (kalo gak salah) udah disediain Connector nya... sekarang ane kasi tau caranya import connectornya ke dalam project...
  • Click kanan pada folder Libreries, kemudian Click add Library....

  • Pilih Mysql JDBC Driver 


  • Kalo berhasil di folder Libreries akan ada file Mysql JDBC Driver - Mysql Connector


Setelah itu ente bikin desain Form kayak gini...

Komponen Form :
  1. Jtextfield Kode Pegawai
  2. Jtextfield Nama Pegawai
  3. JradioButton Pria
  4. JradioButton Wanita
  5. Buttongrup(untuk Jradiobutton pria dan wanita)
  6. Button Simpan
  7. Button Update
  8. Button Delete
  9. Button Cari
  10. Button Bersih
Sekarang ente tambahin kode-kode berikut diatas sendiri d bawahnya package *(sesuaikan dengan kode yang ada di project ente)

import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import javax.swing.table.TableModel;


Kemudian ente buat 2 Class... nanti ane jelasin kegunaan 2 Class ini... yang peting ente buat dulu 2 Class ini

Class yang pertama ente kasi nama L_Pegawai

public class L_Pegawai {
private String kodepagawai,namapegawai,jeniskelamin;

public void setKodePegawai(String kodepagawai){
this.kodepagawai = kodepagawai;
}

public String getKodePegawai(){
return this.kodepagawai;
}

public void setNamaPegawai(String namapegawai){
this.namapegawai = namapegawai;
}

public String getNamaPegawai(){
return this.namapegawai;
}

public void setJenisKelamin(String jeniskelamin){
this.jeniskelamin = jeniskelamin;
}

public String getJenisKelamin(){
return this.jeniskelamin;
}
}

Class yang ke 2 ente kasi nama TmodelPegawai

import java.util.List;
import javax.swing.table.AbstractTableModel;

public class TmodelPegawai extends AbstractTableModel {
private List<L_Pegawai> list;

public TmodelPegawai(List<L_Pegawai> list) {
this.list = list;
}

public int getRowCount() {
return list.size();
}

public int getColumnCount() {
return 3;
}

public Object getValueAt(int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0:
return list.get(rowIndex).getKodePegawai();
case 1:
return list.get(rowIndex).getNamaPegawai();
case 2:
return list.get(rowIndex).getJenisKelamin();
default:
return null;
}
}
@Override
public String getColumnName(int column) {
switch (column) {
case 0:
return "Kode Pegawai";
case 1:
return "Nama Pegawai";
case 2:
return "Jenis Kelamin";
default:
return null;
}
}
}
Fungsi dari 2 Class tersebut adalah sebagai object penampung data yang telah kita panggil dari database yang kita tampilkan pada Jtable... Coba nanti ente Analisa sendiri deh :D pokok nya bahasa gampangnya gitu...

Setelah itu ente tambahin beberapa Object yang akan membantu kita menghubungkan project kita dengan mysql di bawah Constructor... gak tau Construktor ??? kalo gak tau silahkan baca postingan ane yang membahas tentang dasar pemrograman Java, C# dan C++.... Tambahkan Beberapa object berikut

    private Connection koneksi;
private ResultSet hasil;
private Statement stat;
private String query,url,database;
private L_Pegawai pegawai;
private List<l_pegawai&gt list;
private TableModel model;
Kalo Udah Tambahkan kode barikut didalam Constructor...
        buttonGroup1.add(radiobutton_pria);
buttonGroup1.add(radiobutton_wanita);
try{
database= "kantor";
url = "jdbc:mysql://localhost:3306/"+database;
Class.forName("com.mysql.jdbc.Driver");
koneksi = DriverManager.getConnection(url, "root", "");
}catch(SQLException ex){
JOptionPane.showMessageDialog(null, ex);
}catch(ClassNotFoundException ex){
JOptionPane.showMessageDialog(null, ex);
}
Sekarang ente bangkitin semua event Action Performed pada semua button dan event WindowOpened... Ini kode yang ada pada WindowOpened
       try{
query = "select * from pegawai";
stat = koneksi.createStatement();
hasil = stat.executeQuery(query);
this._setModel(hasil);
btn_simpan.setEnabled(true);
btn_update.setEnabled(false);
btn_delete.setEnabled(false);
btn_bersih.setEnabled(false);
btn_cari.setEnabled(true);
text_kodepegawai.setText("");
text_kodepegawai.setEnabled(true);
text_kodepegawai.requestFocus();
text_namapegawai.setText("");
buttonGroup1.clearSelection();
}catch(SQLException ex){
JOptionPane.showMessageDialog(null, ex);
}
Ini kode yang ada di event Action Performed Button Simpan
       try{
String j_kelamin = "";
if(radiobutton_pria.isSelected()){
j_kelamin = "Pria";
}else if(radiobutton_wanita.isSelected()){
j_kelamin = "Wanita";
}else{}

if(text_kodepegawai.getText().equals("") && text_namapegawai.getText().equals("") || j_kelamin.equals("")){
JOptionPane.showMessageDialog(null, "data Tidak lengkap");
}else{
query = "insert into pegawai values ('"+text_kodepegawai.getText()+"','"+text_namapegawai.getText()+"','"+j_kelamin+"')";
stat = koneksi.createStatement();
int res = stat.executeUpdate(query);
if(res == 1){
JOptionPane.showMessageDialog(null, "Insert Data Sukses !");
formWindowOpened(null);
}
}
}catch(SQLException ex){
JOptionPane.showMessageDialog(null, ex);
}

Ini kode yang ada di event Action Performed Button Cari
       try{
String j_kelamin = "";
if(text_kodepegawai.getText().equals("")){
JOptionPane.showMessageDialog(null, "Tidak Ada data Yang Anda Pilih");
}else{
query = "select * from pegawai where kodepegawai = '"+text_kodepegawai.getText()+"'";
stat = koneksi.createStatement();
hasil = stat.executeQuery(query);
while(hasil.next()){
text_namapegawai.setText(hasil.getString("namapegawai"));
j_kelamin = hasil.getString("jeniskelamin");
}

if(j_kelamin.equals("")){
JOptionPane.showMessageDialog(null, "Data Yang Anda Pilih Tidak Ada di database");
formWindowOpened(null);
}else{
if(j_kelamin.equals("Pria")){
radiobutton_pria.setSelected(true);
}else{
radiobutton_wanita.setSelected(true);
}
query = "select * from pegawai where kodepegawai = '"+text_kodepegawai.getText()+"'";
stat = koneksi.createStatement();
hasil = stat.executeQuery(query);
_setModel(hasil);
btn_simpan.setEnabled(false);
btn_update.setEnabled(true);
btn_delete.setEnabled(true);
btn_cari.setEnabled(false);
btn_bersih.setEnabled(true);
text_kodepegawai.setEnabled(false);
}
}
}catch(SQLException ex){
JOptionPane.showMessageDialog(null, ex);
}
Ini kode yang ada di event Action Performed Button Bersih
        try{
formWindowOpened(null);
}catch(Exception ex){
JOptionPane.showMessageDialog(null, ex);
}
Tambahkan kode ini padaevent Action Performed Button Update
       try{
String j_kelamin = "";
if(radiobutton_pria.isSelected()){
j_kelamin = "Pria";
}else if(radiobutton_wanita.isSelected()){
j_kelamin = "Wanita";
}else{}
query = "update pegawai set namapegawai = '"+text_namapegawai.getText()+"', jeniskelamin = '"+j_kelamin+"' where kodepegawai = '"+text_kodepegawai.getText()+"'";
stat = koneksi.createStatement();
int res = stat.executeUpdate(query);
if(res == 1){
JOptionPane.showMessageDialog(null, "Update Data Sukses !");
formWindowOpened(null);
}
}catch(SQLException ex){
JOptionPane.showMessageDialog(null, ex);
}
Tambahkan kode ini pada event Action Performed Button Delete
try{
if(JOptionPane.showConfirmDialog(null, "Anda Yakin menghapus Data ini ??","Warning",2) == JOptionPane.YES_OPTION){
query = "delete from pegawai where kodepegawai = '"+text_kodepegawai.getText()+"'";
stat = koneksi.createStatement();
int res = stat.executeUpdate(query);
if(res == 1){
JOptionPane.showMessageDialog(null, "Delete Data Sukses !");
}
}
formWindowOpened(null);
}catch(SQLException ex){
JOptionPane.showMessageDialog(null, ex);
}
Dan terakhir ente tambahin satu Function... function ini dibuat dengan tujuan menghemat kode program yang ditulis berulang kali, function ini berisi program yang akan menempatkan data yang telah kita panggil dari database dan di tempatkan pada 2 Class yang kita buat diawal tadi :D ... kalo diproject ini si gak terlalu terasa soalnya kan project sederhana... kalo nanti udah molai ke project yang agak Luas baru kerasa fungsinya Function ini...
    private void _setModel(ResultSet hasil)
{
try{
list = new ArrayList&ltL_Pegawai&gt();
while(hasil.next()){
pegawai = new L_Pegawai();
pegawai.setKodePegawai(hasil.getString("kodepegawai"));
pegawai.setNamaPegawai(hasil.getString("namapegawai"));
pegawai.setJenisKelamin(hasil.getString("jeniskelamin"));
list.add(pegawai);
}
model = new TmodelPegawai(list);
jTable1.setModel(model);
}catch(SQLException ex){
JOptionPane.showMessageDialog(null, ex);
}

Oia ini demo dari Kode Program di Atas...







sekalian dulu ya Gan postingan yang ini... Pengunjung yang baik pasti meninggalkan jejak (Comment) :D... Oia ini project CRUD java nya kalo mau di download, silahkan download disini
Read More

OOP Java, C# dan C++

OOP Java, C# dan C++
Object Oriented programming,,, sudah tidak asing lagi buat telinga orang IT, kalo di terjemahkan adalah pemrograman berorentasi object ...
kenapa harus OOP ?
pemrograman berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.

Konsep-Konsep OOP antara Lain :

  1. Class, Method/Function dan Modifier
  2. Constructor dan Destructor
  3. Information Hidding dan Encapsulation
  4. Polymorphisme (Overload dan Override)
  5. Inheritance (penurunan)
  6. Inner Class
  7. Abstract Class
  8. Interface
  9. Exception Handling
  10. Multithreading
Read More

Dasar Pemrograman Java, C sharp dan C++

Dasar Pemrograman Java, C sharp dan C++
Sudah lama gak pernah ngupdate status isi blog ini, kesibukan kuliah, kegalauan yang panjang karena cinta ... ya macem2lah sebab akibat sampek ane gak pernah njamah blog ini ... tapi Alhamdulillah smua itu sekarang udah berlalu jadi semangat yang kembali berkobar ...
kali ini ane gak akan berbagi dasar pemrograman yang baru tapi cuma mau ngulang bagi ente2 yang udah ngambil pelajaran dari blog ini tentang dasar program java, c sharp dan c++ ...
ane rasa dasar dari pemrograman yang ane posting disini seperti

  1. penerapan Class, method dan property
  2. Flow Control If
  3. Flow Control Switch
  4. Looping For
  5. Looping While
  6. Looping Do-while
  7. Array
  8. Array Multi Dimensi
  9. Function
Kalau ente2 udah paham beneran, i.Alloh ente gak akan sulit nanti kalo mau belajar pemrograman ke tingkat yang lebih tinggi seperti Object oriented programming yang juga udah ane posting disini.

Agar lebih bagus lagi pemahaman ente tentang dasar pemrograman, ada baiknya ente pelajari lebih lanjut seperti substring, split, concat, searching, sorting yang itu semua sebenarnya melatih algoritma kita biar lebih tajam, ente bisa pelajari tambahan2 itu disini.

setelah itu melangkahlah ke tingkat pemrograman selanjutnya yaitu pemrograman yang berbasis OOP.

salam suksess ya ...
Read More

Form dan Event Handler di Java C# dan C++

Form dan Event Handler di Java C# dan C++

Form adalah tampilan user interface yang disediakan oleh bahasa pmrograman agar mudah untuk menjalankan sebuah program. Event handler adalah sebuah method yang dapat mendeteksi suatu kejadian yang terjadi pada sebuah form, contoh ketika sebuah button di Click maka program akan melakukan sebuah eksekusi  perintah yang ada pada event handlernya.

Pada contoh code program berikut adalah Event Handler yang ada pada sebuah button, jika button tersebut di Click maka akan memunculkan Messagebox.

C sharp


using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace OOP_praktikumForm
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}


//event Handler
void BtnLihatClick(object sender, EventArgs e)
{
MessageBox.Show("Nama Anda "+textBox1.Text+"\t\nAlamat Anda = "+textBox2.Text);
}
}
}



Java


//Event Handler
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
JOptionPane.showMessageDialog(mainPanel, "Nama anda "+this.jTextField1.getText()+", \t\nAlamat Anda "+this.jTextField2.getText(), "Form Java dan Event Handler", 1);
}

// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JPanel mainPanel;
private javax.swing.JProgressBar progressBar;
private javax.swing.JLabel statusAnimationLabel;
private javax.swing.JLabel statusMessageLabel;
private javax.swing.JPanel statusPanel;
// End of variables declaration

private final Timer messageTimer;
private final Timer busyIconTimer;
private final Icon idleIcon;
private final Icon[] busyIcons = new Icon[15];
private int busyIconIndex = 0;

private JDialog aboutBox;



C++

#pragma once

namespace formcpp_test {

using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;

/// <summary>
/// Summary for Form1
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
}

protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Label^ label1;
private: System::Windows::Forms::TextBox^ textBox1;
private: System::Windows::Forms::TextBox^ textBox2;
private: System::Windows::Forms::Label^ label2;
private: System::Windows::Forms::Button^ button1;
protected:

private:
/// <summary>
/// Required designer variable.
/// </summary>
System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
this->label1 = (gcnew System::Windows::Forms::Label());
this->textBox1 = (gcnew System::Windows::Forms::TextBox());
this->textBox2 = (gcnew System::Windows::Forms::TextBox());
this->label2 = (gcnew System::Windows::Forms::Label());
this->button1 = (gcnew System::Windows::Forms::Button());
this->SuspendLayout();
//
// label1
//
this->label1->AutoSize = true;
this->label1->Location = System::Drawing::Point(33, 45);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(55, 13);
this->label1->TabIndex = 0;
this->label1->Text = L"Username";
//
// textBox1
//
this->textBox1->Location = System::Drawing::Point(36, 85);
this->textBox1->Name = L"textBox1";
this->textBox1->Size = System::Drawing::Size(222, 20);
this->textBox1->TabIndex = 1;
//
// textBox2
//
this->textBox2->Location = System::Drawing::Point(36, 151);
this->textBox2->Name = L"textBox2";
this->textBox2->Size = System::Drawing::Size(222, 20);
this->textBox2->TabIndex = 3;
//
// label2
//
this->label2->AutoSize = true;
this->label2->Location = System::Drawing::Point(33, 111);
this->label2->Name = L"label2";
this->label2->Size = System::Drawing::Size(39, 13);
this->label2->TabIndex = 2;
this->label2->Text = L"Alamat";
//
// button1
//
this->button1->Location = System::Drawing::Point(182, 212);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(75, 23);
this->button1->TabIndex = 4;
this->button1->Text = L"Lihat";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(288, 262);
this->Controls->Add(this->button1);
this->Controls->Add(this->textBox2);
this->Controls->Add(this->label2);
this->Controls->Add(this->textBox1);
this->Controls->Add(this->label1);
this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedSingle;
this->MaximizeBox = false;
this->Name = L"Form1";
this->StartPosition = System::Windows::Forms::FormStartPosition::CenterScreen;
this->Text = L"Praktikum OOP";
this->ResumeLayout(false);
this->PerformLayout();

}
#pragma endregion
//event handler
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
MessageBox::Show ("Nama anda "+textBox1->Text+"\nAlamat Anda"+textBox2->Text);
}
};
}




Read More

Mutlithreading di Java, C# dan C++

Mutlithreading di Java, C# dan C++
Multi threading adalah sebuah cara pengeksekuisian beberapa program secara bersamaan. saling berbagi sumber daya tetapi dapat dijalankan secara independen.

Keuntungan dari Multi threading adalah :
  • Aplikasi interaktif menjadi tetap responsif meskipun sebagian dari program sedang diblok atau melakukan operasi lain yang panjang.
  • Berbagi sumber daya. Beberapa thread yang melakukan proses yang sama akan berbagi sumber daya. Keuntungannya adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.
  • Ekonomis, Pembuatan sebuah proses memerlukan pengalokasian memori dan sumber daya. Alternatifnya adalah dengan menggunakan thread, karena thread membagi memori dan sumber daya yang dimilikinya sehingga lebih ekonomis untuk membuat thread dan context switching thread. Akan susah mengukur perbedaan waktu antara thread dan switch, tetapi secara umum pembuatan dan pengaturan proses akan memakan waktu lebih lama dibandingkan dengan thread. Pada Solaris, pembuatan proses memakan waktu 30 kali lebih lama dibandingkan pembuatan thread sedangkan proses context switch 5 kali lebih lama dibandingkan context switching thread.
  • Utilisasi arsitektur multiprosesor. Keuntungan dari multithreading dapat sangat meningkat pada arsitektur multiprosesor, dimana setiap thread dapat berjalan secara paralel di atas procesor yang berbeda. Pada arsitektur processor tunggal, CPU menjalankan setiap thread secara bergantian tetapi hal ini berlangsung sangat cepat sehingga menciptakan ilusi paralel, tetapi pada kenyataanya hanya satu thread yang dijalankan CPU pada satu-satuan waktu.




Csharp


using System;
using System.Threading;

namespace OOPpraktikum
{
class Program
{
public static void Main(string[] args)
{
TesThread tes1 = new TesThread("Rizal Thread");
TesThread tes2 = new TesThread("Cha Thread");

Thread thd1 = new Thread(new ThreadStart(tes1.Thred));
Thread thd2 = new Thread(new ThreadStart(tes2.Thred));

thd1.Start();
thd2.Start();

Console.ReadKey(true);
}
}

class TesThread
{
string nama;
public TesThread(string nm)
{
nama = nm;
}

public void Thred()
{
for (byte i = 0; i<50; i++)
{
Console.WriteLine(nama+" "+(i+1));
Thread.Sleep(1000);
}
}
}
}

Java


package OOPpraktikum;
import java.util.*;

public class MainClass
{
static Scanner input = new Scanner(System.in);

public static void main(String[] args)
{
TesThread thd1 = new TesThread("Rizal Thread");
TesThread thd2 = new TesThread("Cha Thread");

thd1.start();
thd2.start();

}

}

class TesThread extends Thread
{
String nama;
public TesThread(String a)
{
nama = a;
}
public void run()
{
try
{
for(byte i = 0; i<50; i++)
{
Thread.sleep(1000);
System.out.println(nama+" "+i);
}
}
catch (Exception e)
{
// TODO: handle exception
}

}
}



Khusus C++ untuk membuat Multi thread harus menggunakan header file, dalam contoh kode program berikut memanfaatkan header file buatan programmer lain. Referensinya ada pada http://www.codeproject.com/Articles/5218/Synchronized-multi-threading-in-C-No-MFC

C++

ou_thread.h

namespace openutils {
class ThreadException;
class Mutex;

/** class Thread
* Represents a thread of execution
* in the process. To create a new Thread
* write an inherited class ot Thread and
* override the run() function
**/
class Thread {

private:
// unsigned long* to the low-level thread object
unsigned long* m_hThread;
// a name to identify the thread
string m_strName;

public:
Thread();
Thread(const char* nm);
virtual ~Thread();
void setName(const char* nm);
string getName() const;
void start();
virtual void run();
void sleep(long ms);
void suspend();
void resume();
void stop();

void setPriority(int p);

bool wait(const char* m,long ms=5000);
void release(const char* m);

public:
// Thread priorities
static const int P_ABOVE_NORMAL;
static const int P_BELOW_NORMAL;
static const int P_HIGHEST;
static const int P_IDLE;
static const int P_LOWEST;
static const int P_NORMAL;
static const int P_CRITICAL;
private:
};// class Thread

/** class Mutex
* Represents a Mutex object to synchronize
* access to shaed resources.
**/
class Mutex {
private:
// unsigned long* to the low-level mutex object
unsigned long* m_hMutex;
// name to identify the mutex
string m_strName;
public:
Mutex();
Mutex(const char* nm);
void create(const char* nm);
unsigned long* getMutexHandle();
string getName();
void release();
~Mutex();
};

/** class ThreadException
* thrown by Thread and Mutex function
* calls
**/
class ThreadException {
private:
string msg;
public:
ThreadException(const char* m);
string getMessage() const;
};
} // namespace openutils

// global function called by the thread object.
// this in turn calls the overridden run()
extern "C" {
unsigned int _ou_thread_proc(void* param);
}




ou_thread.cpp

#include <string>
using namespace std;

#include <windows.h>

#include "ou_thread.h"
using namespace openutils;

const int Thread::P_ABOVE_NORMAL = THREAD_PRIORITY_ABOVE_NORMAL;
const int Thread::P_BELOW_NORMAL = THREAD_PRIORITY_BELOW_NORMAL;
const int Thread::P_HIGHEST = THREAD_PRIORITY_HIGHEST;
const int Thread::P_IDLE = THREAD_PRIORITY_IDLE;
const int Thread::P_LOWEST = THREAD_PRIORITY_LOWEST;
const int Thread::P_NORMAL = THREAD_PRIORITY_NORMAL;
const int Thread::P_CRITICAL = THREAD_PRIORITY_TIME_CRITICAL;

/**@ The Thread class implementation
**@/

/** Thread()
* default constructor
**/
Thread::Thread() {
m_hThread = NULL;
m_strName = "null";
}

/** Thread(const char* nm)
* overloaded constructor
* creates a Thread object identified by "nm"
**/
Thread::Thread(const char* nm) {
m_hThread = NULL;
m_strName = nm;
}

Thread::~Thread() {
if(m_hThread != NULL) {
stop();
}
}

/** setName(const char* nm)
* sets the Thread object's name to "nm"
**/
void Thread::setName(const char* nm) {
m_strName = nm;
}

/** getName()
* return the Thread object's name as a string
**/
string Thread::getName() const {
return m_strName;
}

/** run()
* called by the thread callback _ou_thread_proc()
* to be overridden by child classes of Thread
**/
void Thread::run() {
// Base run
}

/** sleep(long ms)
* holds back the thread's execution for
* "ms" milliseconds
**/
void Thread::sleep(long ms) {
Sleep(ms);
}

/** start()
* creates a low-level thread object and calls the
* run() function
**/
void Thread::start() {
DWORD tid = 0;
m_hThread = (unsigned long*)CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_ou_thread_proc,(Thread*)this,0,&tid);
if(m_hThread == NULL) {
throw ThreadException("Failed to create thread");
}else {
setPriority(Thread::P_NORMAL);
}
}

/** stop()
* stops the running thread and frees the thread handle
**/
void Thread::stop() {
if(m_hThread == NULL) return;
WaitForSingleObject(m_hThread,INFINITE);
CloseHandle(m_hThread);
m_hThread = NULL;
}

/** setPriority(int tp)
* sets the priority of the thread to "tp"
* "tp" must be a valid priority defined in the
* Thread class
**/
void Thread::setPriority(int tp) {
if(m_hThread == NULL) {
throw ThreadException("Thread object is null");
}else {
if(SetThreadPriority(m_hThread,tp) == 0) {
throw ThreadException("Failed to set priority");
}
}
}

/** suspend()
* suspends the thread
**/
void Thread::suspend() {
if(m_hThread == NULL) {
throw ThreadException("Thread object is null");
}else {
if(SuspendThread(m_hThread) < 0) {
throw ThreadException("Failed to suspend thread");
}
}
}

/** resume()
* resumes a suspended thread
**/
void Thread::resume() {
if(m_hThread == NULL) {
throw ThreadException("Thread object is null");
}else {
if(ResumeThread(m_hThread) < 0) {
throw ThreadException("Failed to resume thread");
}
}
}

/** wait(const char* m,long ms)
* makes the thread suspend execution until the
* mutex represented by "m" is released by another thread.
* "ms" specifies a time-out for the wait operation.
* "ms" defaults to 5000 milli-seconds
**/
bool Thread::wait(const char* m,long ms) {
HANDLE h = OpenMutex(MUTEX_ALL_ACCESS,FALSE,m);
if(h == NULL) {
throw ThreadException("Mutex not found");
}
DWORD d = WaitForSingleObject(h,ms);
switch(d) {
case WAIT_ABANDONED:
throw ThreadException("Mutex not signaled");
break;
case WAIT_OBJECT_0:
return true;
case WAIT_TIMEOUT:
throw ThreadException("Wait timed out");
break;
}
return false;
}

/** release(const char* m)
* releases the mutex "m" and makes it
* available for other threads
**/
void Thread::release(const char* m) {
HANDLE h = OpenMutex(MUTEX_ALL_ACCESS,FALSE,m);
if(h == NULL) {
throw ThreadException("Invalid mutex handle");
}
if(ReleaseMutex(h) == 0) {
throw ThreadException("Failed to release mutex");
}
}

/**@ The Mutex class implementation
**@/

/** Mutex()
* default constructor
**/
Mutex::Mutex() {
m_hMutex = NULL;
m_strName = "";
}

/** Mutex(const char* nm)
* overloaded constructor
* creates a Mutex object identified by "nm"
**/
Mutex::Mutex(const char* nm) {
m_strName = nm;
m_hMutex = (unsigned long*)CreateMutex(NULL,FALSE,nm);
if(m_hMutex == NULL) {
throw ThreadException("Failed to create mutex");
}
}

/** create(const char* nm)
* frees the current mutex handle.
* creates a Mutex object identified by "nm"
**/
void Mutex::create(const char* nm) {
if(m_hMutex != NULL) {
CloseHandle(m_hMutex);
m_hMutex = NULL;
}
m_strName = nm;
m_hMutex = (unsigned long*)CreateMutex(NULL,FALSE,nm);
if(m_hMutex == NULL) {
throw ThreadException("Failed to create mutex");
}
}
/** getMutexHandle()
* returns the handle of the low-level mutex object
**/
unsigned long* Mutex::getMutexHandle() {
return m_hMutex;
}

/** getName()
* returns the name of the mutex
**/
string Mutex::getName() {
return m_strName;
}

void Mutex::release() {
if(m_hMutex != NULL) {
CloseHandle(m_hMutex);
}
}

Mutex::~Mutex() {
/*if(m_hMutex != NULL) {
CloseHandle(m_hMutex);
}*/
}

// ThreadException
ThreadException::ThreadException(const char* m) {
msg = m;
}

string ThreadException::getMessage() const {
return msg;
}

// global thread caallback
unsigned int _ou_thread_proc(void* param) {
Thread* tp = (Thread*)param;
tp->run();
return 0;
}

Main Program
#include <cstdlib>
#include <iostream>
#include <STRING>

using namespace std;
#include "ou_thread.h"
using namespace openutils;

class MyThread : public Thread {
private:
int m_nCount;
public:
MyThread(int n,const char* nm) {
Thread::setName(nm);
m_nCount = n;
}
void run() {
for(int i=0;i<m_nCount;i++) {
cout << getName().c_str()<<" "<<i<< endl;
sleep(1000);
}
}
};

int main(int argc, char *argv[])
{
Thread *t1 = new MyThread(50,"Rizal Thread");
Thread *t2 = new MyThread(50,"Cha Thread");
try
{
t1->start();
t2->start();
t1->stop();
t2->stop();
}
catch(ThreadException ex)
{
printf("%s\n",ex.getMessage().c_str());
}
delete t1;
delete t2;

system("PAUSE");
return EXIT_SUCCESS;
}



Read More