Lintas

Apapun yg melintas di otak saya,, blog ini menampungnya

Arsip untuk ‘my study’ Kategori

Kamus asp.net (1)

Ditulis oleh geh di/pada Juli 15, 2009

Trim
——
Trim :  fungsi Trim digunakan untuk menghapus karakter spasi di kedua sisi baik kiri/awal maupun kanan/akhir kalimat
Contoh :
UserName = ” Lisa Shea “
ada spasi dalam penulisan username. Dengan menggunakan
UserName = Trim(UserName)
dapat mengubah Username menjadi “Lisa Shea” dengan tanpa spasi

Regex
——–
Regex (Regular Expression Validator) merupakan cara terbaik untuk mem-validasi textfield misalnya nama, alamat email, no.telepon, dan informasi lain tentang user. Kita menggunakan regex untuk membatasi inputan, menerapkan format tertentu, dan memeriksa panjang karakter.

Contoh beberapa Format validation expression :
untuk alamat url :
http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

untuk Format alamat email :
\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

Validation expression lainnya, lihat disini

Substring
————
Fungsi substring mengembalikan bagian dari string mulai dari starting index karakter ke panjang karakter string yang didefinisikan secara spesifik. Penggunaan fungsi substring pada C# ada 2 cara, yaitu:

1. Substring(int startIndex) : menerima hanya sebuah parameter dengan tipe integer starting index dari posisi karakter dalam string.
2. Substring(int startIndex, int length) : menerima 2 parameter, pertama tipe integer untuk starting index posisi karakter dalam string dan parameter kedua yaitu tipe integer untuk panjang atau jumlah karakter yang ditampilkan pada string.

Contoh program menggunakan fungsi substring dapat dilihat disini

Empty, clear, nullable
—————————
utk mengeset textbox dengan karakter kosong dapat menggunakan :
txtTitle.Text = String.Empty;

untuk menghapus textbox agar kosong dapat menggunakan :
textBox.clear();

Untuk mengeset tipe data yang pada dasarnya tidak ada nilai null tapi ingin ditambah ada null dapat menggunakan :
Nullable<Int32>, Nullable<bool>

Ditulis dalam my study | Leave a Comment »

File Global.asax

Ditulis oleh geh di/pada Juli 14, 2009

File Global.asax yang disebut juga sebagai file aplikasi dalam ASP.NET merupakan file optional (digunakan hanya saat dibutuhkan) yang berisi code untuk merespon event ataupun error di level aplikasi dan session. File ini bisa juga digunakan untuk keamanan aplikasi. Isi file Global.asax ini meliputi Application_Init, Application_Disposed, Application_Error, Application_Start, Application_End, Application_BeginRequest, Application_EndRequest, Session_Start, Session_End, dll.

File Global.asax diatur agar tiap HTTP request yang langsung(via URL) dapat ditolak secara otomatis, sehingga user eksternal tidak dapat men-download atau melihat isi Web. Framework halaman ASP.NET secara otomatis mengenali tiap perubahan yang dibuat ke file Global.asax. Framework me-reboot aplikasi, termasuk menutup semua session browser, membersihkan semua informasi, dan me-restart domain aplikasi.

Tiap aplikasi ASP.NET dapat berisi maksimal satu file global.asax. File ini berada dalam direktori root pada aplikasi ASP.NET.  Saat runtime, Global.asax di-parse dan di-compile kedalam sebuah class framework .NET yang di-generate secara dinamis dari class base HttpApplication. Proses compile pada file ini dilakukan saat pertama kali halaman aplikasi Web dikunjungi.

Jika menggunakan Visual Studio.NET untuk membuat proyek Web, maka akan ada code dibelakang fitur Global.asax ini.  Saat menggunakan compiler C#, code file berada pada Global.asax.cs.   Disini dapat dilihat contoh code pada Global.asax.

Cara menambahkan Global.asax : Application -> Add –> Component -> Global Application class

solution explorer

File Global.asax merupakan central untuk aplikasi ASP.NET. Ini menyediakan banyak event handler untuk menangani bermacam task pada aplikasi misalnya user authentication, application start up, dan menangani user session. Maka, file optional ini mampu membangun aplikasi ASP.NET yang handal.

Referensi :
http://articles.techrepublic.com
http://www.dotnetcurry.com
http://aspalliance.com

Ditulis dalam my study | Leave a Comment »

Overview Javascript

Ditulis oleh geh di/pada Juni 15, 2009

JavaScript adalah bahasa scripting (bahasa scripting adalah sebuah lightweight programming language) yang terdiri dari baris-baris code executable computer dan dirancang untuk menambah interaktif HTML pages. JavaScript biasanya embedded secara langsung pada HTML pages dan disebut juga interpreted language yang artinya bahwa scripts dijalankan tanpa di kompile terlebih dahulu.

Kemampuan Javascript :
* JavaScript dapat bereaksi terhadap events, artinya javaScript dapat di-set untuk dijalankan saat terjadi sesuatu, misalnya sebuah page telah selesai dipanggil atau saat seorang user meng-klik pada HTML element
* JavaScript dapat membaca dan menulis/mengubah isi dari HTML elements
* JavaScript dapat digunakan untuk mem-validasi form data sebelum di-submitted ke server, hal ini akan mengamankan server dari pemrosesan ekstra
* JavaScript dapat digunakan untuk mendeteksi browser pengunjung dan memanggil page lain yang secara specifik didesain untuk browser tersebut
* JavaScript dapat digunakan untuk membuat cookies(menyimpan dan memanggil informasi) di komputer pengunjung

Program JavaScript dituliskan pada file HTML (.html atau .htm) menggunakan tag dan output dari program JavaScript ditampilkan secara langsung seolah-oleh dimasukkan dalam HTML.

Contoh penulisan format javascript :

1

Untuk mempelajari cara penulisan javascript lainnya dapat dilihat di www.w3schools.com/js

Agar program JavaScript yang telah dibuat dapat bereaksi terhadap suatu event tertentu, maka digunakan event handler. Ada bermacam-macam Atribut event handler, antara lain :
- onClick : memberikan efek interaktif dengan user melalui Penekanan dengan tombol
- onLoad : memberitahukan user akan akibat dari tindakannya
- onMouseOver : mengatur apa yang akan terjadi saat mouse kita gerakkan ke atasnya
- onMouseOut : membuat gambar yang bisa berubah saat didekati mouse
- onSubmit : bekerja saat user mengklik tombol submit
- onSelect : bekerja saat user memilih (memblok) isi kotak
- onFocus : bekerja saat user terfokus pada sebuah item
- onBlur : kebalikan dari onFocus
- onkeyup : melakukan aksi ketika tombol mouse diangkat (moment setelah mengklik), jadi selama kita menekan tombol mouse aksi tidak akan dijalankan
- onkeydown : kebalikan dari onkeyup, jadi aksi dilakukan saat menekan tombol mouse, mirip dengan onclick
- onKeyPress : event yang terjadi saat user menekan atau menahan suatu kunci

Ditulis dalam my study | 1 Komentar »

Web Service & Distributed System

Ditulis oleh geh di/pada Juni 9, 2009

Web service merupakan sistem yang dirancang untuk dapat mendukung interaksi komunikasi antar mesin-mesin pada suatu jaringan dengan menggabungkan SOAP, XML, and HTTP. Dengan teknologi Web Service, maka memungkinkan kita untuk dapat menghubungkan berbagai jenis software yang memiliki platform dan sistem operasi yang berbeda. Jadi, kita tetap mendapatkan sebuah potongan informasi dari suatu website tanpa harus mengunjungi website tersebut.

Pada Web Services hanya tersedia fungsi-fungsi yang nantinya dapat digunakan oleh aplikasi lainnya, jadi kita dapat mengakses potongan informasi itu dengan meletakkan fungsi/method itu pada aplikasi kita. Aplikasi web service tidak mempunyai sebuah “User Interface” atau tampilan web pada umumnya. Web service hanya berupa class dan method dari sebuah fungsi dan mempunyai output dalam format XML. Web Service tersimpan di Web Server sehingga dapat diakses oleh berbagai bahasa pemrograman dengan lebih mudah baik dalam lingkungan LAN maupun Internet. Sistem Web Service ini diharapkan meningkatkan kolaborasi antar pemrogram dan perusahaan, yang memungkinkan sebuah fungsi di dalam Web Service dapat dipinjam oleh aplikasi lain tanpa perlu mengetahui detail pemrograman yang terdapat di dalamnya.

Web services pada dasarnya bekerja menggunakan HTTP and SOAP untuk membuat data tersedia di dalam Web.  SOAP dan HTTP mengizinkan user eksternal untuk masuk dan melakukan pemanggilan function secara remote tanpa proses registrasi dalam lingkungan internal terlebih dahulu seperti halnya aplikasi tersebut mengakses method lokal dan menggunakan format XML yang berbasis teks dalam melakukan pertukaran datanya.

Secara umum ada 5 aspek keamanan dasar yang perlu diperhatikan dalam mengimplementasikan sistem berbasis Web pada umumnya termasuk dalam hal ini adalah aplikasi Web Service, yaitu :
1. Authentication(mengidentifikasi Pengirim mupun penerima),
2. Authorization(menjamin bahwa requester yang telah berhasil melakukan otentikasi dapt meng-akses sumber daya yang ada sesuai dengan karakteristik akses (access control) yang disediakan)
3. Confidentiality(menjamin kerahasiaan (privacy) terhadap data/informasi yang dipertukarkan)
4. Data Integrity(komunikasi antara client dan server dilindungi dari adanya kemungkinan untuk merubah data oleh user/aplikasi yang tidak memiliki hak)
5. Non-Repudiation(pihak yang terlibat dalam transaksi (client & service provider) tidak dapat menyangkal terjadinya transaksi yang telah dilakukan)

Referensi :
1. http://krisosa.wordpress.com
2. http://huu132.buzzdsign.com
3. http://archive.devx.com
4. http://www.dotnet-friends.com

Ditulis dalam my study | 1 Komentar »

Kegunaan Stored Procedure

Ditulis oleh geh di/pada Juni 8, 2009

Untuk melakukan retrieving suatu data dalam table, kita bisa menggunakan stored procedure. Stored Procedure ini sebaiknya digunakan apabila database server terpisah secara fisik dengan aplikasi atau disebut aplikasi Multi Tier. Dengan mengggunakan stored procedure SQL tidak akan akan melakukan loading semua table yang ter-relasi, tetapi langsung melakukan filtering berdasarkan query yang kita maksud. Stored procedure menyimpan statement-statement SQL dalam sebuah berkas yang disimpan di database server, sehingga dari sisi performa eksekusi, utilitas jaringan, dan keamanan, stored procedure banyak dipakai sebagai solusi akses data.

Setiap kali Query Processing menjalankan query, gambaran prosesnya sbb:
1. Pengecekan Syntax
2. Pemilihan execution plan yang paling optimal
3. Eksekusi query

Query yang ada di SP sudah di-compile terlebih dahulu, jadi ada 1 step yang di-skip pada SP. Compile maksudnya adalah pemilihan mana execution plan yang paling optimal.

Keuntungan menggunakan Stored Procedure :
- Stored Procedure lebih fleksibel karena ada parameter didalamnya
- Proses dilakukan di Database Server sehingga lebih cepat, aplikasi cukup memanggil stored
procedure dan mengirim parameter yang diperlukan
- untuk membagi beban resource yang terpakai saat aplikasi di jalankan. Jika semua query dijalankan pada aplikasi/client (Front End) maka resource yang terpakai pada client tersebut akan besar, oleh karena itu perintah query tersebut dibuat pada stored procedure (eksekusi pada server)
- untuk mempermudah maintain aplikasi. Apabila ada proses query yang sama dan berulang, dengan stored procedure akan lebih simple dalam proses pembuatan aplikasi.
- Mendukung ANSI model terhadap database. Ansi model adalah sebuah model database yang memodelkan penglihatan user terhadap database menjadi 3 komponen yaitu user view, logical view dan fisikal view
- Stored procedure mencegah terjadinya SQL injection

Kekurangannya :
Apabila ingin mengganti Database Server, misalnya dari Oracle ke SQL
Server, porting Stored Procedurenya menyulitkan, antara PL SQL ke T-SQL. Berbeda jika embedded di Aplikasi, kita cukup mengganti Koneksinya karena Logicnya dilakukan di Aplikasi dan menggunakan SQL Standard.

Referensi :
prihastomo.files.wordpress.com/2008/04/view_or_sp.pdf
www.cert.or.id/~budi/courses/security/2006-2007/Report-Nial.doc

Ditulis dalam my study | Leave a Comment »

Berkenalan dengan SEO

Ditulis oleh geh di/pada Juni 4, 2009

SEO (Search Engine Optimization) merupakan sebuah metode / cara agar Search Engine selalu mengindex website kita diinternet agar setiap proses pencarian dengan keyword melalui search engine dapat ditampilkan pada halaman utama.

SEO juga tak kalah pentingnya dengan Content,bahkan dapat dikatakan SEO adalah proses yang sangat khusus dalam membangun sebuah website komersial yang berhasil, karena untuk mendatangkan pengunjung, meningkatkan traffic dan mendapatkan Page Ranking, sebuah website harus dapat ditemukan dalam mesin pencari utama seperti Google, Yahoo, MSN Live Search dll. Tak Kenal SEO maka Tak Terindex di Search Engine. Ini adalah tugas dan tantangan webmaster untuk mengoptimalkan sebuah website dengan cara memperbaiki struktur tag-tag HTML tertentu pada halaman web.

Pada kenyataannya bahwa hampir 90 % pengunjung-pengunjung baru menemukan sebuah website dari hasil Search Engine dan Search Directory dengan keyword tertentu, disini peran SEO sangat menentukan. Sebagai seorang internet marketer pemahaman tentang SEO merupakan salah satu skill yang dibutuhkan dalam memasarkan produk / jasa. Karena kebanyakan pengunjung dalam mencari info selalu menggunakan search engine dengan memanfaatkan kata kunci dengan harapan mendapatkan info yang relevan. Jadi untuk promosi website, SEO adalah cara yang efektif untuk meningkatkan Traffic yang nantinya akan memberikan banyak pengunjung dan dengan semakin banyaknya pengunjung maka diharapkan akan banyak penjualan yang terjadi melalui rekomendasi web kita.

Tujuan dari SEO adalah :
** Menaikkan rangking sebuah website agar selalu terindex pada search engine sehingga dapat di munculkan di halaman pertama search engine untuk keyword yang telah ditentukan
**  Mendatangkan trafik / pengunjung ke website kita dengan media Search Engine secara gratis
**  Mencari pengunjung yang targeted / Pengunjung yang kita harapkan untuk web kita
**  Membantu meningkatkan pencapaian target penjualan (Income / Omzet penjualan) melalui Rekomendasi webIncome / Omzet penjualan
**  Meminimalkan biaya pemasaran online

Untuk mengaplikasikan SEO, pada dasarnya proses SEO ada dua cara yaitu Internal SEO dan External SEO yang berbeda dalam melakukan optimizasinya, apakah dalam page pada situs kita atau dengan bantuan situs lain.

Internal SEO, yang perlu dipehatikan:
#  Title Tag : Judul halaman yang biasanya pertama kali di index oleh Search Engine jadi biasakan membuat judul yang relevan dengan keyword yang paling banyak dicari pengunjung.
# Keyword Meta Tag : Bagian dari kata Meta Tag yang berfungsi agar keyword dalam suatu halaman agar dapat dikenali robot search engine.
# Header Tag : Titel dan sub titel yang biasanya berada pada isi halaman / content dari artikel yang ditulis.
# Alt Tag : Keterangan tambahan untuk sebuah link atau file image
# Deskripsi : Ringkasan dari sebuah halaman yang tampil pada list search engine yang memungkinkan menarik perhatian bagi pengguna search engine
# Sitemap : Peta situs yang biasanya berupa script xml yang diletakkan pada home directory yang berguna untuk memudahkan spider dari Search Engine untuk menelusuri url-url yang ada dalam situs agar dapat mengupdate perubahan-perubahan yang terjadi dalam situs
# Content : Isi dari artikel yang ditulis usahakan agar banyak mengandung keyword tetapi memperhatikan penyusunan kalimat agar pengunjung mudah mengerti maksudnya.

External SEO dengan membangun link pada situs-situs luar :
*  Web Submission : Gunakan layanan Web Submission pada situs-situs yang mempunyai page rank 3 atau 4 keatas untuk mendafatarkan url-mu.
* Link Exchange: Pertukaran Link dengan teman-teman Blog. Cara ini juga punya pengaruh terhadap Page Rank.
* Submit Directoy : Daftarkan situs anda ke direktori online yang profesional dengan begitu link dan jaringan situs semakin banyak karena search engine biasanya mendapatkan hasil pencarian dari web directory yang dikelola profesional.
* Tinggalkan jejak dalam forum-forum yang aktif diikuti dengan menambahakan url-mu diakhir komentar.
* dll art metris ( dan lain-lain artikel metris )

Referensi :
http://metris-community.com/tips-internal-eksternal-seo
http://metris-community.com/definisi-seo/
http://www.seo-id.com/tujuan-fungsi-seo.html

Ditulis dalam my study | 3 Komentar »

WinForm & Smart Client

Ditulis oleh geh di/pada April 30, 2009

Saat ini saya sedang mempelajari sedikit mengenai WinForm & Smart Client. Berikut informasi yang bisa saya tangkap. Maaf jika ada yang salah, mohon dikoreksi.

Aplikasi berbasis Windows adalah aplikasi yang dikembangkan dibawah Sistem Operasi Windows, tidak termasuk aplikasi yang dikembangkan dibawah Sistem Operasi lain seperti Linux & Unix. Ada 2 macam aplikasi berbasis Windows di .net yaitu WinForm & Web application.

Salah satu teknologi Desktop Client Windows yang berbasis .NET dikenal dengan teknologi WinForm (Windows Form). Windows Form adalah perkembangan desktop client berbasis Win32 yang sering kita pakai pada saat ini.  Basis dari Windows Form adalah suatu class form dari namespace System.Windows.Form. yang merupakan class base dari teknologi Windows Form. Berdasar class ini kita dapat menaruh berbagai macam control, component hingga jenis form yang hendak ditampilkan (SDI atau MDI).

Pada umumnya aplikasi di bagi dalam 3 layer:
- Presentation / User Interface Layer
- Business Logic / Domain Layer
- Data Access Layer

WinForm terdapat pada layer Presentation. Tidak ada yang dilakukan kecuali ‘takes & validates’ inputan user dan juga menampilkan result. Tidak boleh ada business logic maupun akses ke database.

WinForm merupakan cara terbaik untuk membangun aplikasi smart client saat ini. Aplikasi Smart Client memiliki sebuah User Interface yang kaya yang menampilkan informasi yang datang dari sumber yang bermacam-macam. Untuk end user, data terlihat seperti datang dari sebuah sistem back-end. Tiap ada perubahan dalam aplikasi, sebuah perubahan tersebut akan tercermin ke semua client saat itu juga. Ini disebut Smart Client.

Proces yang terjadi saat user membuka sebuah aplikasi Smart Client :
1. User membuka aplikasi
2. Aplikasi merujuk pada assembly hosted dalam sebuah Web Server
3. Framework .NET memeriksa apakah assembly yang terakhir di download adalah benar versi terakhir
4. Jika tidak me-download versi terakhir dari server, unduh assembly secara lokal dan buka aplikasi

Dengan cara ini, tiap ada perubahan pada aplikasi dapat ditangani secara mudah pada satu lokasi, sehingga pengembangan aplikasi menjadi lebih mudah.

Karakteristik dari Smart Client, antara lain :
1. Mendukung kerja offline – smart clients dapat bekerja bahkan saat tidak terhubung dengan Internet. Saat client terbuhung, aplikasi Smart Client mampu meningkatkan performansi dan kegunaaannya dengan mengambil data dan mengaturnya dengan cara yang cerdas.
2. Aplikasi Smart client dapat dikembangkan dan diperbaharui secara real time di atas jaringan dari sebuah server pusat.
3. Aplikasi Smart client mendukung platform dan bahasa yang berbeda-beda karena dibangun dalam Web services.
4. Aplikasi Smart client dapat berjalan hampir di semua device yang dapat melakukan koneksi ke Internet, termasuk desktops, workstations, notebook, tablet PCs, PDA, dan mobile phones.

Ditulis dalam my study | Leave a Comment »

Refactoring

Ditulis oleh geh di/pada April 28, 2009

Refactoring merupakan suatu teknik yang digunakan untuk mengidentifikasi design kode dan memodifikasi struktur kode dengan tujuan untuk meningkatkan kualitas design tanpa mengubah behavior kode yang tampak. Hal ini dibutuhkan untuk memudahkan apabila terdapat perubahan pada program karena kode-kode telah terdesign dgn baik. Pada dasarnya pengembangan software adalah berkelanjutan Sehingga apabila terdapat kebutuhan untuk penambahan fitur atau menangani bugs maka akan menghemat waktu dalam hal pemahaman karena kode-kodenya lebih mudah dibaca.

Tiga tahap dasar yang dilakukan dalam refaktoring, yaitu :
1. Mengidentifikasi “Bau busuk” kode (Bad Smells)
Dalam source kode biasanya masih terdapat banyak bad smells. Langkah awal adalah mengidentifikasi
Bad Smells.
2. Lakukan refaktoring yang tepat
Mengubah struktur kode dalam arti perubahan dalam refaktoring. Perubahan-perubahan ini dapat dilakukan secara otomatis oleh tool refaktoring.
3. Jalankan tes untuk memvalidasi perubahan
Langkah ketiga adalah mengoreksi perubahan yang sudah dilakukan. Refaktoring bukan berarti mengubah behavior kode, sehingga tes unit dilakukan untuk membuktikan bahwa behavior dari kode-kode tidak berubah setelah dilakukan refaktoring.

Berikut beberapa jenis bad smells :
1. Duplicated kode
Jika terdapat baris kode untuk logic yang sama tetapi tersebar di beberapa bagian program. Jika ada perubahan logic, dan ada bagian program yang anda lupa/kelewatan untuk update, program anda dalam masalah yang sangat serius.

2. Long Method
kode/method yang panjang lebih akan sulit dimengerti ketimbang kode/method yang hanya terdiri dari beberapa baris kode. Sebisa mungkin, tulislah method yang hanya terdiri dari beberapa baris saja. Jika kode tersebut akan melakukan banyak hal/task, pecah-pecahlah kode tersebut ke beberapa method kecil yang masing-masing melakukan task yang spesifik.

3. Large Class
Salah satu prinsip dasar dalam mendesain sebuah class adalah “High Cohesive”. Biasanya, class yang mencoba untuk melakukan banyak hal (sehingga menjadi besar & bloated) menjadi kurang cohesive.

4. Long Parameter List
Sulit dimengerti dan dapat menimbulkan inkonsistensi.

5. Divergent Change
Sekali lagi masalah cohesiveness. Gejalanya, suatu perubahan kecil mengharuskan adanya perubahan suatu subset dari suatu method, perubahan lainnya lagi, mengharuskan perubahan di subset yang lain pula.

6. Shotgun Surgery
Yang ini lebih parah. Suatu perubahan kode mengharuskan banyak perubahan di banyak class yang berbeda-beda.

7. Feature Envy
Cemburu! Ya, suatu method membutuhkan lebih banyak informasi dari class lain daripada dari class-nya sendiri.

8. Data Clumps
Attribut yang terkumpul bersama-sama tetapi sebenarnya bukan bagian dari class yang sama.

9. Primitive Obsession
Keengganan untuk menggunakan class-class, lebih memfavoritkan primitive types.

10. Switch Statements
Biasanya, switch statements (atau bisa juga conditional logic ‘if’) terduplikasi diberbagai bagian program. Coba pikirkan menggunakan polymorphism dibanding menggunakan switch statements.

11. Parallel Inheritance Hierarchies
Mirip-mirip shotgun surgery. Setiap kali menambah sub-class ke suatu hirarki, penambahan harus dilakukan ke seluruh hirarki yang berhubungan.

12. Lazy Class
Class yang tidak melakukan apa-apa. (Biasanya hasil downsize dari Refactoring). Fungsionalitas dari class tersebut tidak ada yang memakai lagi dalam program.

13. Speculative Generality
Ini berbahaya! Over-engineering! Mencoba memasukkan suatu fitur yang “mungkin nantinya akan dipakai”. Kenyataannya, sering terjadi pada akhirnya memang tidak pernah terpakai.

14. Temporary Field
Atribut suatu object yang hanya dipakai pada kondisi tertentu saja, padahal seharusnya suatu object itu membutuhkan seluruh atributnya.

15. Message Chains
Client meminta sebuah object lain ke sebuah object, dan object yang diminta object tersebut meminta object lain, dan seterusnya. Menjadi tergantung pada struktur navigasi.

16. Middle Man
Jika anda punya class yang mendelegasikan lebih dari setengah responsibility-nya ke class lain, pikirkan lagi apakah class tersebut benar-benar dibutuhkan.

17. Inappropriate Intimacy
Sepasang class yang tahu terlalu banyak detail private satu sama lain.

18. Alternative Classes with Different Interface
Adanya dua atau lebih method yang melakukan hal yang sama, tetapi signature-nya berbeda.

19. Incomplete Library Class
Clas framework yang tidak melakukan apa yang perlu dia lakukan.

20. Data Class
Ini class yang isinya adalah hanya atribut (property, dengan ‘getter’ & ‘setter’). Dumb data holder. Padahal seharusnya suatu object memiliki data dan behavior.

21. Refused Bequest
Sub-class yang menolak fungsionalitas yang disediakan oleh super-class-nya.

22. Comments
Comment digunakan untuk menutup-nutupi ”Bad Smells” di kode. Jika ada comment di program anda, perhatikan disekitarnya, kemungkinan besar ada Bad Smells.

Referensi :
1. http://geeks.netindonesia.net/blogs/norman/
2. Danijel Arsenovski, “Professional Refactoring in Visual Basic”

Ditulis dalam my study | Leave a Comment »

Clustering

Ditulis oleh geh di/pada Oktober 28, 2008

Clustering merupakan fungsionalitas pada data mining. “Tujuan dari proses clustering ini yaitu untuk mengelompokkan data ke dalam suatu klaster, sehingga objek pada suatu klaster memiliki kemiripan yang sangat besar dengan objek lain pada klaster yang sama, tetapi sangat tidak mirip dengan objek pada klaster yang lain”. Clustering tidak memiliki pendefinisian target kelas sehingga disebut juga unsupervised learning. Unsupervised learning (clustering) adalah suatu teknik untuk mengelompokkan data ke dalam suatu klaster-klaster (kelas-kelas) tertentu berdasarkan kemiripan pada data atau pengelompokan kelas(cluster)nya dilakukan berdasarkan similarity dan dissimilarity dari data yang ada. Dalam data mining, usaha difokuskan pada metode-metode penemuan untuk cluster pada basis data berukuran besar secara efektif dan efisien. Beberapa kebutuhan clustering dalam data mining meliputi skalabilitas, kemampuan untuk menangani tipe atribut yang berbeda, mampu menangani dimensionalitas yang tinggi, menangani data yang mempunyai noise, dan dapat diterjemahkan dengan mudah.

Secara garis besar, terdapat beberapa metode clustering data. Pemilihan metode clustering bergantung pada tipe data dan tujuan clustering itu sendiri. Metode-metode beserta algoritma yang termasuk didalamnya meliputi :
1.    Partitioning Methods
Metode ini mengelompokkan data kedalam klaster-klaster dimana tiap klaster harus berisi paling sedikit satu objek dan tiap objek hanya merupakan anggota dari satu klaster. Contoh : k-Means, Fuzzy C-Means (FCM), k-Medoids, CLARA, CLARANS, PAM
2.    Hierarchical Methods
Metode ini mengelompokkan data kedalam pohon klaster. Contoh : BIRCH, AGNES, DIANA
3.    Density Based Methods
Metode ini hanya dapat menemukan klaster berbentuk bola dan akan mengalami kesulitan dalam menemukan klaster dalam bentuk yang berubah-ubah. Contoh : DBSCAN, OPTICS, DENCLUE, CLIQUE
4.    Grid Based Methods
Metode ini membagi ruang objek kedalam sejumlah sel yang membentuk struktur grid. Algoritma yang termasuk dalam metode ini yaitu STING, WaveCluster
5.    Model Based Clustering Methods
Metode ini melakukan hipotesa mengenai sebuah model untuk tiap klaster dan mencari data yang sesuai untuk model tersebut. Contoh : SOM dan COBWEB.

Ditulis dalam my study | 6 Komentar »

Data mining

Ditulis oleh geh di/pada Oktober 28, 2008

Data mining merupakan sebuah proses penemuan pola-pola yang menarik dari sekumpulan data berukuran besar. Data mining dapat diterapkan pada berbagai area, seperti kesehatan, asuransi, pemasaran, maupun ilmu pengetahuan yang lain. Data mining merupakan salah satu langkah dalam menghasilkan KDD (Knowledge Discovery in Database). KDD merupakan sekumpulan proses untuk mengubah data menjadi pengetahuan yang berguna. Kumpulan proses tersebut meliputi : pembersihan data (data cleaning), integrasi data (data integration), pemilihan data (data selection), transformasi data (data transformation), penambangan data (data mining), evaluasi pola (pattern evaluation), dan presentasi pengetahuan (knowledge presentation). Data Mining melibatkan berbagai teknik dari berbagai multidisiplin, seperti teknologi basisdata, statistika, machine learning, pengenalan pola, information retrieval, dan sebagainya. Data mining mendukung task-task atau fungsionalitas yang meliputi :
a.    Klasifikasi dan Prediksi
Klasifikasi adalah proses pencarian sekumpulan model atau fungsi yang menggambarkan dan membedakan kelas data dengan tujuan agar model tersebut dapat digunakan untuk memprediksi kelas dari suatu objek yang belum diketahui kelasnya.
b.    Analisis Asosiasi
Analisis asosiasi adalah penentuan kaidah asosiasi (association rule) yang menunjukkan kondisi nilai atribut yang sering terjadi secara bersamaan dalam sekumpulan data. Analisis asosiasi ini sering digunakan untuk analisis data transaksi dan market basket.
c.    Analisis Cluster
Clustering merupakan proses pengelompokan sekumpulan fisik atau abstrak dari suatu objek kedalam kelas – kelas objek yang sama. Cluster merupakan kumpulan objek data yang mirip satu sama lain dalam satu cluster dan tidak mirip dengan objek di cluster lain.  Analisis cluster telah digunakan dalam aplikasi analisis data, patern recognition, image processing dan market research.
d.    Anomaly Detection
Anomaly Detection merupakan metode pendeteksian suatu data dimana tujuannya adalah menemukan objek yang berbeda dari sebagian besar objek lain. Anomaly dapat dideteksi dengan menggunakan uji statistik yang menerapkan model distribusi atau probabilitas untuk data.
e.    Regression (Predictive Task)
Regression akan memprediksi suatu nilai yang berisi variabel continous berdasarkan nilai dari variabel lain, misalkan suatu linear atau non linear model. Regression biasanya digunakan pada bidang marketing, earth science.

Ditulis dalam my study | 3 Komentar »