TUTORIAL CODEIGNITER : APLIKASI WEBSITE / BLOG (WEBLOG) SEDERHANA DENGAN CODEIGNITER

Oke gan, langsung saja untuk screen shoot contoh aplikasi website, weblog, blog dengan codeigniter yang ane kasi, seperti di bawah ini...

Tutorial HTML

HTML merupakan bahasa dasar pembuatan web. Disebut dasar karena dalam membuat web, jika hanya menggunakan HTML tampilan web terasa hambar. Terdapat banyak bahasa pemograman web yang ditujukan untuk memanipulasi kode HTML, seperti ...

TUTORIAL ORACLE - KONEKSI ORACLE KE JAVA, PHP DAN C# (C-SHARP)

Disitu juga ane kasi contoh aplikasi CRUD nya yang bisa ente download Gratisss :D ...

Menampilkan postingan yang diurutkan menurut relevansi untuk kueri pemrograman algoritma. Urutkan menurut tanggal Tampilkan semua postingan
Menampilkan postingan yang diurutkan menurut relevansi untuk kueri pemrograman algoritma. Urutkan menurut tanggal Tampilkan semua postingan

Rabu, 03 April 2013

Design Pattern di Java, C# dan PHP

Alhamdulillah kali ini ane udah sempat nulis lagi diblog ini, dan tentunya masi tentang design pattern, pada postingan sebelumnya ane udah bahas satu pattern yaitu pattern singleton menggunakan java. kali ini ane berniat untuk menulis lagi tutorial implementasi design pattern dengan Java, C# dan PHP. jadi ane nulis mulai awal. sebelumnya ane berfikir untuk menulis design pattern hanya dengan java yang bisa ente baca disini, karena, jujur saja untuk pemrograman dekstop ane lebih suka javva dari pada C#, kalo web ane suka PHP :D . selang sehari ane upload pattern singleton kmaren, ane liat temen2 pada bingung dengan penerapannya di C# dan sebagian meminta bantuan ane... ane suruh mereka ke blog ane tapi sebagian gak bisa buat mengkonversi dari C# ke Java..
Hemmb.. kalo dipikir-pikir kalo ane upload pake C# di blog ini, bisa untuk menambah page view nya blog ini :D , bisa jadi bisnis... wkwkwkwk.. dan kita memang harus bisa memanfaatkan peluang yang ada... dari situlah ane berniat untuk menulis ulang tutorial design pattern ini dengan 3 bahasa yaitu Java, C# dan PHP.. bagaimana dengan C++.. kalo C++ itu seperti nya kagak sekarang, karena ane sendiri jarang skali menggunakan bahasa C++ ini, walaupun C++ .NET , ane kurang Userfriendly dengan bahasa ini, tapi jika ada tuntutan dari pihak akademik ataupun jika ada pengunjung blog yang request dan mau memberi sedikit donasi mungkin besok2 ane upload dah :D janji...

kalo penerapannya di PHP, itu karena ane pengen skalian mengupload dengan 3 bahasa yang ane sering pakai yaitu Java, C# dan PHP.. dan mungkin ada dari temen2 ane yang juga pengen mempelajarinya dengan pemrograman web (PHP) walaupun penerapan design pattern di PHP udah banyak dibahas oleh sesepuh ane :D
Oke, sekarang kita bahas design pattern nya dahulu... Apa design pattern itu ? Design pattern secara bahasa artinya pola bentuk, sedangkan secara pemrograman design pattern adalah pola-pola algoritma untuk menyelesaikan suatu permasalahan tertentu dan secara gampang nya adalah kumpulan algoritma programmer2 untuk menyelesaikan permasalahan2 pemrograman secara efisien...kenapa ane bilang efisien ? karena algoritma yang ada di design pattern didesain salah satunya untuk memangkas penggunaan memory, selain itu algoritma nya tidak melakukan proses yang sangat lama... coba kita bandingkan dengan algoritma bikinan kita sendiri, kadang kita asal2an dalam membuat algoritma pada suatu pemorgraman, memang program berhasil dirunning tapi kita melupakan  satu hal yaitu penghematan memory dan proses kompilasi program yang lama... :D selain itu manfaat menggunakan design pattern ini adalah design aplikasi yang kita buat bisa tertata rapi dan itu tentunya sangat berguna untuk perawatan dan kemudahan untuk memaintenance aplikasi jika suatu hari ada penambahan ataupun perubahan :D ... sejauh ini paham ya sama penjelasan ane.. kalo gak paham silahkan tanya via facebook kalo yang mau cepet :D ... dasar dari design pattern ini sebenarnya adalah Object oriented programming (OOP). kalo ente mau belajar design pattern sebaiknya ente kuasai dulu konsep dari OOP, yang antara lain adalah inheritance, polymorphisme, abstract class dll. yang ane udah bahas disini dengan C#, Java dan C++. dan untuk PHP nya di blog ini juga udah ane bahas beberapa :D yang ente bisa pelajari tentunya.. kalo gak paham OOP kayak nya agak berat untuk belajar design pattern, karena semua design pattern yang jumlah nya 23 itu pasti menggunakan OOP :D

Design Pattern ada banyak versi, yang pak dosen minta itu menurut versinya gang of four, dan jumlah patternnya itu ada 23 dan dari 23 pattern itu masi dibagi lagi menjadi 3 bagian.
  • Creation Patterns
    Pattern model ini menangani pembuatan object, kalo kita kan kadang membuat object sesuka kita tanpa mempertimbangkannya. contohnya saat kita membuat suatu object yang kita buat pada suatu class tidak bisa dimanfaatkan pada kelas lain. padahal harusnya kita bisa memanfaatkannya. dengan patterns model ini kita lebih bisa mengoptimalkan pembuatan suatu object. Pattern - pattern pada model ini adalah : 
    1.   Singleton
    2.   Factory Method
    3.   Abstract Factory
    4.   Prototype
    5.   Builder
  • Structural Patterns
    Pattern model ini menyangkut tentang struktur program. Pattern model ini akan lebih fokus pada class object composite. Akan banyak ditemukan pewarisan dan penggunaan interface atau abstract class pada Pattern model ini dan penggabungan suatu object. Pattern - pattern pada model Structural ini adalah :
    1.   Adapter
    2.   Bridge
    3.   Composite
    4.   Decorator
    5.   Facade
    6.   Fly Weight
    7.   Proxy
  • Behavioral Patterns
    Pattern jenis behaviour ini lebih menangani kepada kelakuan program. Pattern jenis ini juga sering memanfaatkan tentang hubungan antar object. Pattern - pattern model ini adalah :
    1.   Chain of responsibility
    2.   Command
    3.   Interpreter
    4.   Iterator
    5.   Mediator
    6.   Memento
    7.   Observer
    8.   State
    9.   Strategi
    10. Template
    11. Visitor
Hembb.. postingan ini memang tidak menjelaskan implementasi nya pada bahasa pemrograman. insya Alloh ane akan bahas pada postingan selanjutnya tapi kalo salah satu pattern udah ane bahas nanti ane kasi link nya pada list pattern diatas... oke gan, monggo di bookmark kalo perlu :D ... sebenarnya tinggal upload saja dan contoh kode programnya sudah ane siap kan dengan Java, C# dan PHP seperti kata ane tadi :D .. oke dah gan... sekian dulu untuk postingan ini, semoga bermanfaat untuk kita semua... keep cooding :)

Jumat, 09 November 2012

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 ...

Senin, 22 April 2013

Function (M-file) Negative Citra Matlab

Hari ini ane tiba2 pengen update lagi diblog ini :D .. ya walaupun hanya sekedar corat-coret tapi setidaknya "yang ada manfaatnya" buat diri sendiri dan buat orang lain... postingan ini mungkin agak sedikit berbeda dengan postingan sebelumnya... kalo dilihat dari kategori posting di blog ini cuma ada tutorial pemrograman yang rumpun nya rekayasa perangkat lunak / sistem informasi... kali ini ane akan share sesuatu yang berbeda... yaitu tentang citra digital ... mata kuliah ini adalah salah satu mata kuliah yang ditakuti oleh mahasiswa di kampus ane :D gak tau kenapa, apa karena dosennya yang killer atau karena mata kuliah nya yang agak sulit untuk dipahami... hehee... ya kalo menurut ane si.. ke dua2 nya...
dosennya killer dan mata kuliahnya juga agak sulit untuk di mengerti... hembb... tapi dosen yang itu sudah gak ngajar mata kuliah citra tahun ini, jadi dosennya berbeda... tahun kmaren ane ikut kelas ini karena mantan ane dan ane juga pengen bisa... taun ini ane wajib ngambil -_- padahal ane udah bisa ni matakuliah...
mata kuliah citra ini termasuk dasar dari penjurusan kecerdasan buatan (artificial intelegent)... dan nantinya akan dikembangkan untuk membuat aplikasi2 keren seperti deteksi wajah, deteksi tumor, virtual keyboard... dll ... tapi sayang seribu sayang... ane gak minat sama rumpun yang satu ini... sebenarnya ilmunya unik... bisa membuat aplikasi bahkan sesuatu yang baru.... tapi karena pasar sedang tidak banyak membutuhkan sama penjurusan yang satu ini, maka ane putusin menekuni jurusan yang dicari pasar :D yaitu RPL dan Jaringan... kalo nanti pasar sudah mulai banyak menjamah ke kecerdasan buatan ini maka ane akan perdalam lagi ilmu ini, ane suka si sebenarnya tapi yaaa.. tuntutan kerjanya di RPL dan Jaringan :)
mata kuliah citra dikampus ane dibagi menjadi 3 bagian... untuk yang citra 1 ini lebih banyak membahas enhancement yaitu perbaikan citra... tujuannya adalah untuk meningkatkan kekontrasan suatu citra sehingga citra yang diolah / diproses akan menghasilkan citra baru yang kekontrasannya lebih tinggi ... yang pada akhirnya dapt digunakan untuk memisahkan object - object....
enhancement ini dalam pemrograman citra biasanya tidak berdiri sendiri, maksudnya akan ada proses selanjutnya agar citra ini dapat dimanfaatkan lagi.. misal, untuk mendeteksi wajah harus dilakukan enhancement dulu untuk memperbaiki kekontrasan citra, baru kemudian dilakukan proses lanjutan untuk pendeteksian mana wajah dan mana yang bukan wajahh... Enhancement (perbaikan) mempunyai banyak methode, mulai dari Negative, Gamma Correcton, Brightness, histogram dll... dan inti dari methode2 ini adalah untuk memperbaiki kekontrasan citra :D
seperti judul postingannya yaitu Function (M-file) Negative citra, ane akan kasi contoh functionnya yang murni menggunakan algoritma negative citra, 

Rumus :

S = (L-1) - r

S = nilai citra hasil.
L-1 = gray level tertinggi / color depth
r = nilai citra asli

rumus pengolahan citra negative

kalo ente lihat pada simulasi diatas itu nilai (L-1) adalah 9 .. jadi rumusnya 9 - nilai pixel nya :D ... kalo secara gampangnya proses negativ ini adalah proses dimana sisi gelap dijadikan terang, si gelap dijadikan terang... jadi dibalik gitu....
untuk penerapan di matlab, sebenarnya matlab sendiri sudah menyediakan function nya yaitu "imcomplement"

i = imread('rice.png');
hasil = imcomplement(i);
subplot(1,2,1);imshow(i);title('citra asli');
subplot(1,2,2);imshow(hasil);title('citra hasil negativ');
diatas itu penerapannya kalo pake function bawaan matlab... tapi rasanya kurang greget kalo kita gak bisa terapin dengan algoritma yang ada :D ... ni ane kasi function yang mengimplementasikan algoritma negative biar greget...
function hasil = NegativeCitra(citra,maxbit)

hasil = citra;

[m,n] = size(citra);

for k = 1:m
for l = 1:n
hasil(k,l) = (maxbit-1)-citra(k,l);
end
end

subplot(2,2,1);imshow(citra);title('citra asli');
subplot(2,2,2);imhist(citra);title('histogram citra asli');
subplot(2,2,3);imshow(hasil);title('hasil citra negative');
subplot(2,2,4);imhist(hasil);title('histogram citra negative');

end
untuk pemanggilannya ya cukup seperti ini
NegativeCitra(i,256);  
hembbb... ya kira2 seperti itulah penerapan negative dan algoritmanya di function (M-file) matlab... kalo gak ngerti silahkan di coment atau tanya lewat facebook... kalo paham monggo postingannya dilike gitu...  :D ...sekian dulu untuk postingan kali ini... semoga bermanfaat :)

Senin, 25 Maret 2013

Design pattern Singleton dengan Java

Ini potingan yang ke dua dihari ini... sebenar sih jatahnya seminggu tiga kali, eh ini malah sehari 2 kali... hembb... karena tuntutan kuliah si... bukan tuntutan juga sebenarnya... tetapi ane pengen cepet2 selesai dari matakuliah design pattern ini, oia ane lupa gak jelasin design pattern itu apa :D ... hehehee... design pattern adalah kumpulan algoritma yang sering dipakai untuk membuat sebuah aplikasi dan system, kenapa harus memakai design pattern?? jawaban gampang nya, kalo pake design pattern aplikasi akan mudah untuk dirawat dan diperbaiki jika di kemudian hari ada perubahan... biar gak bikin dari awal, jadi kalo pake design pattern ini sebuah sytem Aplikasi akan tertata rapi :D katanya si gitu... hehehee...
ada banyak design pattern, menurut versi gank of 4 ada 21 design patern, i.Alloh ane bahas dalam waktu dekat ini... doain aja yak gan ? :D ... kali ini ane bahas pake java ya ?? gak ane bahas design pattern pake C# / C++ / PHP.. bukannya gak bisa, tapi cukup satu ajalah... soalnya masi banyak kerjaan yang lain... lagian kalo pake C# kebanyakan temen - temen ane juga pake C#, jadi biar agak sedikit berbeda gitulah.... :D
oke gan dari pada panjang lebar, kita ngobrol diblog ini mending d facebook aje  :D ni ane langsung jelasin desain pattern yang pertama yaitu Singleton. secara bahasa katanya google translate singleton artinya tunggal, tapi bagaimana pengertiannya dalam sebuah pemrograman ??
gini... biasanya design pattern model ini, maksud nya model Singleton ini digunakan untuk koneksi ke Database.. dalam pemrograman prosedural, bukan yang OOP maksud nya kita bisa berkali-kali melakukan koneksi ke dalam dalam database... dan itu sangat tidak efisien.. karena akan terjadi pemborosan memory... seperti contoh aplikasi java sederhana yang ane buat disini ...jika digambarkan bisa seperti ini



Itulah sebab nya perlu diterapkan konsep Singleton dalam pengkoneksian ke Database.. jadi untuk satu koneksi untuk melakukan banyak Eksekusi Query... tapi apa harus pake singleton ?? tidak juga, mugkin ente punya algoritma yang lebih bagus dari Singleton juga gak papa kalo mau dipakai :D .. Singleton jika digambarkan bisa seperti ini




gimana cara ngodingnya ?? mungkin ini yang ditunggu -tunggu olah para pengunjung :D ... okelah... ini pake Java loo ya... bukan C#... tapi ente bisa edit sendiri kok jadi source kode C#... hehehehee..
/**
* @(#)Singleton.java
*
* Singleton application
*
* @author
* @version 1.00 2013/3/25
*/

public class Singleton {
public static void main(String[] args) {
System.out.println("\t\t\tDesign Patern Single Ton\n\n");
Connection conn_1 = Connection.GetConnection();
conn_1.PrintText("select * from mahasiswa");
Connection conn_2 = Connection.GetConnection();
conn_2.PrintText("select * from dosen");
}
}

class Connection{
public Connection(){
Connection.counter++;
System.out.println("Object Instance Class Connection ke "+Connection.counter+"\n");
}

public static int counter = 0;
public static Connection connection = null;
public static Connection GetConnection(){
if(Connection.connection == null){
Connection.connection = new Connection();
}
return Connection.connection;
}

public void PrintText(String text){
System.out.println(text);
}
}
untuk screen shoot compilasi program diatas begini gan...


Selasa, 09 April 2013

Pattern Strategy di Java, C# dan PHP

design pattern yang ane bahas kali ini tentang strategy pattern yang termasuk kategory behaviour pattern yang menangani kelakuan program. dan seperti biasanya ane kasi penerapannya nanti di Java, C# dan PHP.. akhir2 ini ane jadi agak sedikit males nulis di blog kesayangan ini karena beberapa beban yang harus ane selesaikan dengan cepat dalam waktu yang sangat singkat :( . rasanya memang seperti tak punya hidup, memang tidak bisa mengatur sedikit waktu untuk bersantae si... dikarenakan ke padatan jadwal.. memang nasibnya programmer kali yak ? :(
untuk sedikit bermain saja sudah terasa banget waktu terbuang2.. hal ini sangat mengganggu ane sebenarnya... smoga besok2 ada kabar baik yang bisa membangkitkan kembali semangat ane untuk berkarya dengan cepat lagi. pengertian dari pattern strategy ini memungkinkan algoritma bervariasi secara independen dari client yang memanfaatkannya.. kali ini ane kasi contoh  kasus nya seperti validasi rentang tipe data dalam pemrograman... seperti yang ente tau, type data byte mempunyai rentang antara 0 - 255 sedangkan integer rentangnya mulai -2147483648 sampai  2147483647 ... disini kita bisa memakainya sebagai simulasi penerapan design pattern strategy untuk menvalidasi sebuah bilangan, berikut penerapannya di Java, C# dan PHP

Java
package Strategi;

public class MainClass {
public static void main(String[] args) {
int nomer = 400;
System.out.println("Input Angka = "+nomer);
Context context = new Context(new VirtualByte(), nomer);
System.out.println(context.GetResult());
context = new Context(new VirtualInteger(), nomer);
System.out.println(context.GetResult());
}
}

interface Strategi{
String CekNomer(int angka);
}

class VirtualByte implements Strategi{
@Override
public String CekNomer(int angka) {
if(angka >= 0 && angka <= 255){
return "Angka Sesuai dengan Type Data Byte";
}else{
return "Angka diluar Rentang Type Data Byte";
}
}
}

class VirtualInteger implements Strategi{
@Override
public String CekNomer(int angka) {
if(angka >= -2147483648 && angka <= 2147483647){
return "Angka Sesuai dengan Type Data Integer";
}else{
return "Angka diluar Rentang Type Data Integer";
}
}
}

class Context{
private Strategi strategi = null;
private int nomer;
public Context(Strategi strategi,int nomer) {
this.strategi = strategi;
this.nomer = nomer;
}
public void SetStrategy(Strategi strategy){
this.strategi = strategy;
}
public int GetNomer(){
return this.nomer;
}
public String GetResult(){
return this.strategi.CekNomer(this.nomer);
}
}

C#
using System;

namespace Strategy
{
class Program
{
public static void Main(string[] args)
{
int nomer = 400;
Console.WriteLine("Input Angka = "+nomer);
Context context = new Context(new VirtualByte(), nomer);
Console.WriteLine(context.GetResult());
context = new Context(new VirtualInteger(), nomer);
Console.WriteLine(context.GetResult());


Console.ReadKey(true);
}
}

interface Strategi{
string CekNomer(int angka);
}

class VirtualByte : Strategi{
public string CekNomer(int angka) {
if(angka >= 0 && angka <= 255){
return "Angka Sesuai dengan Type Data Byte";
}else{
return "Angka diluar Rentang Type Data Byte";
}
}
}

class VirtualInteger : Strategi{
public string CekNomer(int angka) {
if(angka >= -2147483648 && angka <= 2147483647){
return "Angka Sesuai dengan Type Data Integer";
}else{
return "Angka diluar Rentang Type Data Integer";
}
}
}

class Context{
private Strategi strategi = null;
private int nomer;
public Context(Strategi strategi,int nomer) {
this.strategi = strategi;
this.nomer = nomer;
}
public void SetStrategy(Strategi strategy){
this.strategi = strategy;
}
public int GetNomer(){
return this.nomer;
}
public string GetResult(){
return this.strategi.CekNomer(this.nomer);
}
}
}

PHP
<?php
interface Strategi{
function CekNomer($angka);
}

class VirtualByte implements Strategi{
function CekNomer($angka) {
if($angka >= 0 && $angka <= 255){
return "Angka Sesuai dengan Type Data Byte< br />";
}else{
return "Angka diluar Rentang Type Data Byte< br />";
}
}
}

class VirtualInteger implements Strategi{
function CekNomer($angka) {
if($angka >= -2147483648 && $angka <= 2147483647){
return "Angka Sesuai dengan Type Data Integer<br />";
}else{
return "Angka diluar Rentang Type Data Integer<br />";
}
}
}

class Context{
private $strategi = null;
private $nomer;
function __construct($strategi,$nomer) {
$this->strategi = $strategi;
$this->nomer = $nomer;
}
function SetStrategy($strategy){
$this->strategi = $strategy;
}
function GetNomer(){
return $this->nomer;
}
function GetResult(){
return $this->strategi->CekNomer($this->nomer);
}
}

$nomer = 400;
echo("Input Angka = ".$nomer."< br />");
$context = new Context(new VirtualByte(), $nomer);
echo($context->GetResult());
$context = new Context(new VirtualInteger(), $nomer);
echo($context->GetResult());
?>

begitulah gan penerapan design pattern strategy di Java, C# dan PHP :D ... semoga bermanfaat buat kita semua.. :)