Jaman kuliah dulu, pertama kali diajarin penggunaan function atau method dijelaskan bahwa parameternya bisa bertipe value atau reference.

Kalau by value, artinya nilai parameter tidak direplace dengan hasil pengolahan parameter di method tersebut.
Kalau by reference, artinya nilai parameter di replace dengan hasil pengolahan parameter di method tersebut.

Misal

</pre>
class program{

static void byval(string param){
param = "by val";
}

static void byref(ref string param)
param = "by ref";

}

static void Main(string[] args){

string val = "abcd";
byval(val);

Console.WriteLine(val);
//hasilnya tetap abcd

byref(ref val);

Console.WriteLine(val);

//hasilnya menjadi by val

}

}
<pre>

Di C# ada dua tipe reference, yaitu : out dan ref.
*Gak tau dengan bahasa lainnya

Bedanya adalah :
Jika menggunakan out, parameter bisa BELUM di inisialisasi atau valuenya masih null

Jika menggunakan ref, parameter HARUS di inisialisasi atau valuenya sudah ada.

Misalnya :

</pre>
class Program
{
static void MethodDenganRef(ref string param)
{
param = "Ref";
}

static void MethodDenganOut(out string param)
{
param = "Out";
}

static void Main(string[] args)
{
string _out ;
string _ref = "test";

MethodDenganOut(out _out);
MethodDenganRef(ref _ref);

Console.WriteLine(_ref);
Console.WriteLine(_out);
Console.ReadLine();
}
}

Apabila variable _ref itu null, maka akan compile error.

Seperti dibawah ini :

</pre>
class Program
{
static void MethodDenganRef(ref string param)
{
param = "Ref";
}

static void MethodDenganOut(out string param)
{
param = "Out";
}

static void Main(string[] args)
{
string _out = "test";
string _ref;

MethodDenganOut(out _out);
MethodDenganRef(ref _ref);

Console.WriteLine(_ref);
Console.WriteLine(_out);
Console.ReadLine();

}
}
<pre>

MVVM

07Oct13

Apakah ini pengganti MVC? Menurutku sih nggak. MVVM dan MVC bisa dikolaborasikan. Tujuan penggunaannya juga berbeda. MVVM kepanjangan dari Model-View-ViewModel. MVVM itu tujuannya untuk memaintain bisnis logic dari sisi client. Sedangkan MVC mengontrol logic di sisi server.

ViewModel sebagai data container yang menangani  model yang ditampilkan si view dan event yang di-binding si view.  View model sebagai penghubung model dengan view. Kalau view, itu seperti HTML biasa. Model itu, representasi data yang digunakan.

</pre>
<script type="text/javascript" src="@Url.Content("~/Scripts/knockout-2.3.0.js")"></script>

<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-2.0.3.min.js")"></script>

//viewmodel

<script type="text/javascript">

var cthviewModel = {

Name: ko.observable('bejo'),

buttonClicked: function () {

alert(cthviewModel.Name());

}

};

$(function() {

ko.applyBindings(cthviewModel);

});

</script>

//view

<input type="text" data-bind="value: Name" />

<input type="button" data-bind="click: buttonClicked" />

//Model
 class ContohModel{
 public string Name{set;get;}
 }
<pre>

NB: Contoh diatas menggunakan knockout.js,jquery, dan MVC .NET.

Banyak yang bilang, kalau MVVM ini cocoknya untuk skala besar. Berdasarkan gugling, menurutku tujuan MVVM ini sebenarnya me-manage event  yang ada di view lebih terstruktur. Bayangin aja kalau si view gak perlu update model dan yang hanya  ada eventnya hanya onclick, kita mesti pake ini di semua view, agak ribet juga ya gak?  Semoga gak jadi semantic duffussion. CMIIW. 😀


Hari ini lagi oprek fitur upgrade-an dari membership. Setelah dicoba, aku dapat beberapa exception ketika coba di unit testing.

Mungkin jika mengalami hal yang sama, siapa tau bisa bantu :

Exception :

Test method Scratch.Tests.SimpleMembership.SimpleMembershipTest.Init threw exception: System.Configuration.Provider.ProviderException: The Role Manager feature has not been enabled.

Solusi :

Set  enabled = true di role manager di web.config atau app.config

<roleManager enabled=”true” defaultProvider=”SimpleRoleProvider”>

<providers>

<clear/>

<add name=”SimpleRoleProvider” type=”WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData” connectionStringName=”LocalDatabase” />

</providers>

</roleManager>

Exception :

Could not load file or assembly ‘webmatrix.webdata’ for simplemembership unit testing

Solusi

Set copy local menjadi true di reference property untuk webmatrix.webdata dan webmatrix.data

SimpleMembership

Exception :

Test method Scratch.Tests.SimpleMembership.SimpleMembershipTest.Init threw exception:
System.Web.Security.MembershipCreateUserException: The Provider encountered an unknown error.

Solusi :

User-nya belum ada sehingga tidak bisa insert account.

jadi di buat seperti ini :

WebSecurity.CreateUserAndAccount(“Test”, “Password”,null, true);

bukan ini :

WebSecurity.CreateAccount(“Test”, “Password”,null, true);

Semoga membantu. 😀


Extension in C#

11Dec12

Pernah lihat method seperti string.substring() atau sebuah variable memiliki sebuah method seperti vaiabelTest.toString(). Extension itu fungsinya seperti itu. Sebuah method static bisa di inject kedalam sebuah variable.

Syarat-syarat buat extension :

  • Class DAN Method Harus STATIC
  • Parameter variable HARUS ADA THIS
  • EXTENSION tidak berlaku di class yang menggunakan GENERIC

Continue reading ‘Extension in C#’


Artikel Sebelumnya kita sudah apa itu reflection dan biasanya digunakan untuk apa. Kali ini, aku ingin posting tentang salah satu kegunaan dari reflection, yaitu kloning sebuah object. Hari aku membuat sebuah static method untuk melakukan proses kloning sebuah object secara generik. Latar belakang kenapa bisa jadi buat mehod ini, karena di kantor ada sebuah object model yang memiliki properti yang banyak yang akan disimpan ke database melalui entity framework. Kalau memindahkan nilai setiap properti satu per satu, bosan dan melelahkan. Jadi aku buat deh sebuah method untuk kloning sebuah object tersebut. Yang dikloning hanya value dari setiap properti object tersebut.
Jika kita membuat obj1 = obj2, maka semua atribut akan terkloning,  maka akan terjadi error jika ingin di-insert ke table . Bahwa primary key sudah ada. Oleh karena itu, saya buat method ini.
Semoga bermanfaat..

Continue reading ‘Cloning Object Using Reflection’


Intro —>  Thanks mau baca ya, ini postingan yang ke-sekian.. Selamat Membaca…

What is that,dude?  Langsung ke    TKP      kalau mau lebih jelas. Intinya EF itu menggunakan konsep ORM dan melakukan proses untuk Object yang sudah di-mapping tadi. Proses apa? Proses query ke object tersebut, seperti proses CRUD. Contohnya untuk select table A. Jika menggunkana EF, brarti table sudah direpresentasikan dalam bentuk object (ORM),  sehingga kita select saja object yang merupakan representasi dari table A. EF itu kan ORM dan EF itu punya fitur untuk desain object model yang nantinya di generate ke database. Desain object model di EF ada 3 cara : Code First, Model First, dan Database First.

  • Code First : Pure code, dengan merancang class yang akan menjadi object model. Class- class tersebut akan di-generate ke database.
  • Model First : Menggunakan design yang tersedia di visual studio. Jika kita ingin hanya drag and drop kita bisa merancang table melalui desaigner yang disediakan dengan meng-create sebuah edmx.
  • Database First : Jika database dan table-tablenya telah tersedia, tinggal generate object model dari database tersebut.

Continue reading ‘Entity Framework’


Akhirnya Ngisi Blog lagi setelah lama gak posting. Kali ini mau posting tentang Design Pattern.. Design Pattern yang mau ditulis mengenai Factory Method Pattern. Design Pattern ini bisa digunakan oleh semua bahasa pemrograman yang bisa Object Oriented..

Mengapa Menggunakan Factory Method Pattern?

Pattern ini digunakan jika memiliki object yang akan digunakan atau instansiasi berdasarkan kondisi tertentu.
Contohnya :
Sebuah “Pabrik Mobil” yang memproduksi tipe mobil yang berbeda setiap harinya. Misalnya hari ini ingin memproduksi tipe mobil A, maka pabrik akan memberi perintah kepada sistem untuk produksi mobil A, dan hari berikutnya memproduksi mobil dengan tipe lainnya.

Seperti APA bentuk Factory Pattern?

Sebuah Class/Inteface bertugas sebagai dispatcher untuk mengarahkan object yang akan dijalankan. Object sama seperti tipe mobil analogi diatas. Contoh class/interface sebagai dispatcher di gambar diatas adalah interface Factory Element.

Continue reading ‘Factory Method Pattern’


Reflection

17Jul12

To The Point aja ya..

Reflection merupakan metode untuk mengambil informasi atau meta data dari sebuah objek pada saat runtime.

Informasi yang bisa diambil seperti : nama variable, tipe variable, nilai variable, anotasi variabel, nama method, dll.

Reflection bisa digunakan untuk validasi , testing, dll.

Berikut Contoh Reflection di C#

Continue reading ‘Reflection’


Hello world!

10Jun12

             Hello World bagi mahasiswa yang jurusan IT pasti tidak asing lagi. Setiap belajar bahasa pemrograman untuk nge-Print ke layar biasanya kalimat ini yang dibuat.

             Awalnya pengen buat blog, tapi setelah dibuat bingung mau diisi dengan apa. Sebenarnya pengen nge-share pengalaman, problem solving, program, dll.

              Mungkin kita belum kenal ya ? Baiklah, kenalin nama saya Alvian.

Sekian dulu intro dari saya, semoga blog ini bermanfaat bagi pembaca. Kalau ada salah kata, ambigu, dan menyinggung perasaan pembaca, saya mohon maaf yaak. 😀




My Recent Post

My Blog Categories