Sejarah Dan Teknologi Informasi Dan Komunikasih

  • Uploaded by: artub anida
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Sejarah Dan Teknologi Informasi Dan Komunikasih as PDF for free.

More details

  • Words: 1,610
  • Pages: 10
Belajar Program C# untuk Orang Awam CloneFixture

[Test] public void CloningObject(){ Employee emp1=new Employee(); Employee emp2; emp2=emp1.MemberwiseClone(); Assert.AreNotEqual(emp1,emp2,"Dua object seharusnya berbeda"); }

Employee

namespace Dewipadi.Clone { public class Employee { }

}

MemberwiseClone ternyata protected jadi tidak bisa diakses dari class CloneFixture. Bagaimana kalau kita perkenalkan method baru untuk class Employee, katakanlah Copy(). Didalam method ini kemudian kita panggil MemberwiseClone(). CloneFixture [Test] public void CloningObject(){ Employee emp1=new Employee(); Employee emp2; emp2=emp1.Copy(); Assert.AreNotEqual(emp1,emp2,"Dua object seharusnya berbeda");

}

Employee public class Employee { public Employee Copy(){ return (Employee)this.MemberwiseClone(); } }

Output dari MemberwiseClone ternyata object, jadi kita harus meng-casting secara explisit. Setelah diubah seperti diatas, test PASS/GREEN.

Value Object Nah sekarang kalau kita tambahkan property didalamnya, kantakanlah Nama, apakah perubahan property ini hanya akan mempengaruhi satu object saja atau kedua object akan berubah? Untuk itu kita buat test baru. CloneFixture [Test] public void CloningFieldOfValueObject(){ Employee emp1=new Employee(); Employee emp2; emp2=emp1.Copy(); emp1.Name="Dewi Padi"; Assert.AreNotEqual("Dewi Padi",emp2.Name,"Tidak boleh terisi dewi padi"); }

Karena menambahkan property adalah cara yang gampang, kita tidak perlu mem-fake implementasi property. Jadi langsung kita tulis saja get dan set. Employee public class Employee { private string m_name=""; public Employee Copy(){ return (Employee)this.MemberwiseClone(); } public string Name { get { return this.m_name; } set { this.m_name=value; } } }

Seperti yang kita harapkan test langsung green.

Reference Object Bagaimana dengan object yang terreference dengan object yang sedang kita copy? Apakah ikut tercopy? Atau hanya referencenya saja? Ok. Kita tanyakan saja pada komputer. Scenario testnya kurang lebih seperti ini: Kita gunakan lagi class Employee. Setiap Employee mempunyai atasan. Nah, atasan itu sebetulnya juga Employee. Kita akan buat dua orang Employee yang satu sebagai atasan dan yang satu lagi sebagai karyawan. Kemudian kita buat satu variabel Employee lagi

dan kita copykan employee bawahan tadi ke sini. CloneFixture [Test] public void CloningFieldOfReferenceObject(){ Employee atasan=new Employee(); Employee bawahan=new Employee(); bawahan.Atasan=atasan; Employee copian=bawahan.Copy(); Assert.AreNotEqual(copian.Atasan,atasan); }

Untuk implementasi di class Employee kita cukup pasang property get set. Employee public class Employee { private Employee m_atasan=null; public Employee Atasan { get { return this.m_atasan; } set { this.m_atasan=value; } } }

Hasil dari test ini adalah Red. Dengan kata lain object copian.Atasan sama dengan object atasan. Hal ini terbukti ketika assert not Equal kita ganti dengan assert equal. [Test] public void CloningFieldOfReferenceObject(){ Employee atasan=new Employee(); Employee bawahan=new Employee(); bawahan.Atasan=atasan; Employee copian=bawahan.Copy(); Assert.AreNotEqual(copian.Atasan,atasan); }

Object Oriented Programming (1) Object Oriented Programming (OOP) atau Pemrograman Berorientasi Object sekarang telah menjadi menu wajib pada hampir semua bahasa pemrograman, termasuk C# dan Mono. Karena itu, suka atau tidak suka programmer pemula juga harus menguasai. OOP memiliki empat (4) landasan/tiang/pilar utama: inheritance, polymorphism, encapsulation dan abstraction. Saya akan membahas satu persatu pilar ini dengan beranggapan anda telah tahu dasar C# atau Mono.

Object dan Class Untuk memahami keempat pilar diatas, anda harus paham terlebih dahulu perbedaan antara object dan class. Mungkin anda telah membaca banyak buku dan mungkin referensi lain mengenai kedua term ini. Disini saya akan mencoba mengungkapkan apa yang saya pahami, sehingga kita memiliki persamaan persepsi tentang object dan class. Buat saya, hubungan antara class dan object adalah seperti hubungan antara cetakan dan hasil cetakan. Antara kue dengan cetakannya. Atau kalau meminjam istilah orang arsitek atau sipil, hubungan keduanya mirip dengan gambar rumah (blue print) dengan rumah yang dihasilkan dari gambar itu. Class bertindak sebagai cetakan atau blue print, sedangkan object adalah sesuatu yang dihasilkan dari cetakan atau blue print. Kapan sebuah object muncul? Ketika kita menginstance atau memanggil keyword new saat itulah object muncul. Dibawah ini adalah contoh sebuah class Employee: public class Employee { private string m_name; public Employee(string name){ this.m_name=name; } public string Name { get { return this.m_name; } } }

Dan berikut ini adalah contoh bagaimana sebuah object dibuat dari class Employee diatas: Employee agus=new Employee(“Agus”);

pWrapPolygonVertices8;5;(-83,0);(-83,21447);(21600,21447);(21600,0);(83,0)dxWrapDistLeft0dxWrapDistRight0posrelv3fAllowOverlap0fBehindDocument 1fIsButton1fLayoutInCell1 Inheritance Inheritance atau turunan atau pewarisan adalah pilar pertama yang paling mudah dipahami. Mengapa demikian? Sebab konsep ini sangat dekat sekali dengan keseharian kita. Setiap dari kita pasti punya orang tua. Hubungan orang tua-anak adalah hubungan pewarisan. Apa yang ada pada anak umumnya juga ada pada orang tua. Suara anak kadang hampir sama dengan orang tua. Warna kulit, bentuk rambut, gigi, dan lain sebagainya juga mengikuti pola demikian. Jadi pewarisan adalah konsep yang sangat dekat sekali dengan keseharian kita.

public abstract class Binatang { public string AkuAdalah(){ return “Binatang”; } } public abstract class Babi:Binatang { public int LongTail { get { return 10; } } } public class Pingky:Babi { public string Warna { get { return “Ping” } }

Aku Binatang dengan panjang ekor 10 dan warnaku Ping

Input Controller pattern Ada dua pattern untuk input controller. Yang paling umum adalah page controller, sebuah objek input controller untuk setiap halaman pada web site kita. Page controller ini dapat sebagai sebuah server page itu sendiri, mengkombinasikan peran view dan input controller. Ada 3 pola di sisi view yaitu: Transform View, Template View dan Two Step View. Disini ada 2 pilihan yaitu: 1. Menggunakan transform view atau template view (keduanya single stage) 2. Menggunakan singgle stage atau two step view

Pola View Ada 3 pola di sisi view yaitu: Transform View, Template View dan Two Step View. Disini ada 2 pilihan yaitu: 1. Menggunakan transform view atau template view (keduanya single stage) 2. Menggunakan singgle stage atau two step view Menggunakan Transform View atau Template View

Template View. Pola ini dilakukan dengan cara mencampur halaman html dengan script. Script yang disisipkan adalah bagian yang sering berubah di halaman itu, misalnya tanggal. Sisipan ditandai dengan tag yang bukan merupakan tag html. Hanya sedikit platform terkenal yang menggunakan pola ini seperti teknologi server page, diantaranya ASP,JSP,PHP. Pola ini membolehkan kita menyisipkan seluruh bahasa pemrograman kedalam halaman. Kekurangan dari pola ini adalah dapat menyebabkan kode yang berantakan yang menyulitkan pemeliharaan. Sehingga jika menggunakan teknologi server page, kita harus disiplin untuk menjaga logika pemrograman tetap diluar struktur halaman, paling tidak dengan menggunakan objek pembantu.

Transform view menggunakan style transform dari program. Contoh yang umum adalah XSLT. Pola ini akan lebih efektif jika kita bekerja dengan domain data dalam format XML atau format lain yang dapat dengan mudah dikonversikan menjadi XML. Menggunakan single stage atau two step view Single stage view mempunyai satu komponen view untuk setiap screen dalam aplikasi. View ini mengambil domain data tertentu dan menterjemahkannya dalam HTML. Kita dapat menyebutnya one view per screen. Two stage view memecah proses menjadi dua yaitu menghasilkan logical screen dari domain data dan kemudian menterjemahkannya menjadi HTML. Jadi ada satu first-stage view untuk setiap screen tetapi untuk keseluruhan applikasi hanya ada satu second stage view. Keuntungan dari two step view adalah untuk tempat tertentu, HTML yang akan dipakai sudah ditentukan. Sehingga perubahan secara global dalam HTML dapat dilakukan dengan mudah karena hanya ada satu objek yang diubah dalam rangka mengubah setiap screen pada tempat tersebut. Tentu saja, keuntungan ini dapat diperoleh jika presentasi logical kita tetap sama, sehingga ini akan bekerja dengan baik pada site dimana screenscreen berbeda menggunakan layout dasar yang sama.

Two step view bekerja lebih baik jika kita mempunyai sebuah web applikasi yang servicenya digunakan oleh beberapa customer di front-end, seperti system pemesanan tiket pesawat. Dalam logical screen yang terbatas, setiap front-end boleh mempunyai tampilan berbeda dengan menggunakan second stage berbeda. Dengan cara yang sama anda dapat menggunakan two step view untuk mengatasi alat keluaran yang berbeda, dengan membagi second stage untuk sebuah web browser regular dan untuk sebuah palmtop. Tambahan lagi, batasannya adalah bahwa kita dapat mempunyai two share a common logical screen, yang tidak mungkin jika UInya berbeda, seperti dalam sebuah browser dan sebuah cell phone. Contoh Two Stage View yang umum bisa anda lihat adalah blog. Second stage view dalam blog diwujudkan dalam halaman pertama. First stage view diwujudkan dalam pWrapPolygonVertices8;5;(-83,0);(-83,21438);(21600,21438);(21600,0);(83,0)dxWrapDistLeft0dxWrapDistRight0posrelv3fAllowOverlap0fBehindDocument1fIs Button1fLayoutInCell1 bentuk widget-widget yang dipasang dihalaman blog, halaman, sidebar, about, dll.

Model View Controller (MVC) Dalam tulisan Web Presentation Layer telah disinggung bagaimana web bekerja. Semakin besar dan kompleks sebuah applikasi yang dibangun diatas web server, akan menghasilkan program yang rumit dan sulit dimaintain. Oleh karena itu orang kemudian memisahkan program menjadi beberapa bagian. Masingmasing bagian memiliki peranan khusus. Pola yang paling digemari dan terkenal adalah

Model View Controller(MVC).

Web Presentation Layer pWrapPolygonVertices8;5;(-55,0);(-55,21546);(21600,21546);(21600,0);(55,0)fBehindDocument1fIsButton1fLayoutInCell1 Perubahan besar yang terjadi pada applikasi skala besar (enterprise) adalah penggunaan web sebagai user interface. Kelebihan web dibanding applikasi berbasis windows form adalah kemudahan dalam instalasi applikasi di komputer pengguna (client). Dengan web kita cukup menginstall applikasi disatu tempat yaitu server, sementara para pengguna applikasi cukup menggunakan browser, misalnya firefox atau internet explorer atau yang lainnya. Applikasi tidak begitu saja diletakkan didalam server, paling tidak didalam server itu harus ada Web Server. Web Server bertindak sebagai jembatan antara client dengan applikasi. Applikasi diletakkan dalam Web Server. Cara meletakkannya adalah dengan meletakkan URL di file konfigurasi dari Web Server. Ketika client melakukan request suatu action Web Server akan memeriksa applikasi mana yang akan dituju berdasarkan URL. Setelah ditemukan, Web Server akan mengeksekusi applikasi dan hasilnya dikembalikan ke client yang merequest action. Contoh Web Server, IIS atau Apache. Ada dua macam applikasi yang bisa diletakkan di Web Server: Script dan Server Page. Contoh applikasi yang berbasiskan script yaitu aplikasi-aplikasi yang ditulis dalam bentuk CGI dan Java Servlet. Script-script ini berisi subroutin-subroutin yang mempunyai kemampuan sama dengan program, selain itu dia juga bisa memanggil servise-service lain dalam server. Output dari script adalah halaman html yang akan dikembalikan ke client untuk dibaca oleh browser. Untuk membuat keluaran applikasi berbasis script programmer harus menulis ke sebuah stream, baik berupa html, image, plain text atau sekedar reference. Melakukan hal ini adalah sulit bagi kebanyakan programmer apalagi yang bukan programmer. Karena itu

muncullah ide Server Page. Dengan server page, programmer mula-mula meyiapkan halaman html kemudian menaruh script didalam halaman itu. Contoh dari cara ini adalah dengan memasukan script PHP, ASP dan JSP.

Related Documents


More Documents from "iyut"