November 2006 - Posts

Reschedule Program Distance Learning Dari People Enterprise

Terima kasih atas beberapa email yang masuk ke box People Enterprise mengenai program distance learning. Untuk rekan-rekan dan Our clients, program belajar jarak dari People Enterprise akan di reschedule tahun depan dan diharapkan bulan januari 2007 sudah bisa berjalan. Hal ini dikarenakan adanya masalah teknis dan kesiapan content dari program jarak jauh (Distance Learning). Info selanjutnya akan diberitahu lewat portal People Enterprise.
 

Share this post: | | | |
Posted by Agus Kurniawan | with no comments
Filed under:

The Art of Writing Pseudocode

In the text and lectures, algorithms will often be expressed in pseudocode, a mixture of code and English (for specific not necessarily good examples of particular pseudocodes, see p. 17 of the course text, or the examples in the books The Design and Analysis of Computer Algorithms by Aho, Hopcroft, and Ullman, Addison-Wesley, 1974, Computer Algorithms: Introduction to Design and Analysis by Baase, 1978, and Fundamentals of Computer Algorithms by Horowitz and Sahni, Computer Science Press, 1984). While understanding pseudocode is usually not difficult, writing it can be a challenge.

Why use pseudocode at all? Pseudocode strikes a sometimes precarious balance between the understandability and informality of English and the precision of code. If we write an algorithm in English, the description may be at so high a level that it is diffcult to analyze the algorithm and to transform it into code. If instead we write the algorithm in code, we have invested a lot of time in determining the details of an algorithm we may not choose to implement (as we typically wish to analyze algorithms BEFORE deciding which one to implement). The goal of writing pseudocode, then, is to provide a high-level description of an algorithm which facilitates analysis and eventual coding (should it be deemed to be a "good" algorithm) but at the sametime suppresses many of the details that vanish with asymptotic notation. Finding the right level in the tradeoff between readability and precision can be tricky. If you have questions about the pseudocode you are writing on an assignment, please ask one of the course personnel to look it over and give you feedback (preferably before you hand it in so you can change it if necessary). Here are a few general guidelines for checking your pseudocode:

  1. Mimic good code and good English. Using aspects of both systems means adhering to the style rules of both to some degree. It is still important that variable names be mnemonic, comments be included where useful, and English phrases be comprehensible (full sentences are usually not necessary).
  2. Ignore unnecessary details. If you are worrying about the placement of commas, you are using too much detail. It is a good idea to use some convention to group statements (begin/end, brackets, or whatever else is clear), but you shouldn't obsess about syntax.
  3. Don't belabour the obvious. In many cases, the type of a variable is clear from context; unless it is critical that it is specified to be an integer or real, it is often unnecessary to make it explicit.
  4. Take advantage of programming shorthands. Using if-then-else or looping structures is more concise than writing out the equivalent in English; general constructs that are not peculiar to a small number of languages are good candidates for use in pseudocode. Using parameters in specifying procedures is concise, clear, and accurate, and hence should not be omitted from pseudocode.
  5. Consider the context. If you are writing an algorithm for quicksort, the statement use quicksort to sort the values is hiding too much detail; if we have already studied quicksort in class and later use it as a subroutine in another algorithm, the statement would be appropriate to use.
  6. Don't lose sight of the underlying model. It should be possible to "see through" your pseudocode to the model below; if not (that is, you are not able to analyze the algorithm easily), it is written at too high a level.
  7. Check for balance. If the pseudocode is hard for a person to read or difficult to translate into working code (or worse yet, both!), then something is wrong with the level of detail you have chosen to use.
Sample how to write pseudo code, check out: http://www.csc.calpoly.edu/~jdalbey/SWE/pdl_std.html . Hope it's usefull for you Wink
Share this post: | | | |
Posted by Agus Kurniawan | 2 comment(s)
Filed under:

A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition

HMM (Hidden Markov Model), salah materi yang dulu gw pernah dapatkan waktu kuliah di T. Elektro ITS, dikarenakan gw ambil specialist Multimedia Telecommunication akibatnya barang2x seperti HMM sering dipakai. Mata kuliah seperti Communication System, Electromagnetics Wave, and Antenna sangat intensive memanfaatkan HMM ini tak terkecuali di Intelligent System. HMM ini juga cikal bakal dasar untuk mempelajari model dari neural network. Talking about HMM, adalah paper IEEE yang free didowload mengenai HMM dan  diimplementasikan dalam  Speech Recognition, abstract paper sebagai berikut:

Although initially introduced and studied in the late 1960s early 1970s, statistical methods of Markovsource or hidden Markov modeling have become increasingly popular in the last several years. There are two strong reasons why this has occurred. First the models are verv rich in mathematical structure and hence can form the theoreticai basis for use in a wide ranne of applications.Second the models, when applied properly, work very well in practice for several important applications. In this paper we attempt to carefully and methodically review the theoretical aspects of this type of statistical modeling and show how they have been applied to selected problems in machine recognition of speech.

Lengkapnya dapat didownload di http://www.cs.ubc.ca/~murphyk/Bayes/rabiner.pdf , ok selamat belajar HMM Embarrassed 

Share this post: | | | |
Posted by Agus Kurniawan | with no comments
Filed under:

#Computing is Fun : Working with Sorting in C#

Siapa sih gak pernah buat sorting ? baik para scientist maupun business dev sering melakukan sorting terhadap data seperti dalam database ataupun saat menampilkan data di DataGrid ataupun GridView untuk aplikasi .NET. Di session Computing is Fun kali ini akan membuat mengenai sorting. Disini akan dijabarkan bagaimana membuat object sorting yang dapat digunakan untuk semua kebutuhan (general requirements) dengan implementasi dalam C#. Sebelum membahas sorting, disini diasumsikan bahwa kita membuat data collection berupa object Employee dan collection ini akan dilakukan sorting berdasarkan propertie yang dimiliki. Untuk lebih mudahnya object Employee dapat digambarkan sebagai berikut


Supaya lebih fokus pembahasan dalam sorting dari sebuah collection, saya membagi 2 topik sorting yaitu

  • Sorting pada Non Generics Collection
  • Sorting pada Generics Collection

Masing-masing topik ini akan dibahas sub item selanjutnya.

Sorting pada Non Generics Collection
Non Generics Collection yang akan digunakan disini adalah ArrayList yang merupakan bagian dari namespace System.Collection. Pada object ArrayList telah menyediakan method Sort yang berguna untuk sorting. Agar method Sort ini berfungsi maka kita harus membuat object yang merupakan implementasi dari interface IComparer. Secara umum kita membuat satu object implementasi dari interface IComparer setiap object dalam Collection yang ingin diimplementasi artinya kalau mau sorting berdasarkan 3 field maka anda harus buat 3 field itupun dalam satu object yang di sorting bagaimana kalau object sorting lainnya ? oleh karena itu disini kita akan membuat object sorting yang nantinya akan dapat digunakan oleh object lainnya dengan memanfaatkan teknik Reflection.
Secara umum, object sorting yang akan dibuat dapat lihat seperti gambar dibawah ini

Ok, mari kita beda satu-satu. Object SortEnum adalah sebuah enum yang menyimpan nilai Asc dan Desc untuk keperluan mode sorting. SortEnum dideklarasikan sebagai berikut

    1 using System;

    2 

    3 namespace Sorting

    4 {

    5     public enum SortEnum

    6     {

    7         Asc,

    8         Desc

    9     }

   10 }

Sedangkan object CommonSort adalah implementasi interface IComparer yaitu  method Compare. Disini kita memanfaatkan reflection agar object CommonSort dapat digunakan oleh semua object, berikut ini implementasi object CommonSort

    1 using System;

    2 using System.Collections;

    3 using System.Reflection;

    4 

    5 namespace Sorting

    6 {

    7     public class CommonSort : IComparer

    8     {

    9         private string _column;

   10         private SortEnum _sort = SortEnum.Asc;

   11 

   12         public CommonSort(string column, SortEnum sort)

   13         {

   14             _column = column;

   15             _sort = sort;

   16         }

   17         #region IComparer Members

   18 

   19         public int Compare(object x, object y)

   20         {

   21             if (x == null && y == null)

   22             {

   23                 return 0;

   24             }

   25             else if (x == null && y != null)

   26             {

   27                 return (this._sort == SortEnum.Asc) ? -1 : 1;

   28             }

   29             else if (x != null && y == null)

   30             {

   31                 return (this._sort == SortEnum.Asc) ? 1 : -1;

   32             }

   33             else

   34             {

   35                 Type xType = x.GetType();

   36                 Type yType = y.GetType();

   37 

   38                 PropertyInfo xInfo = xType.GetProperty(_column,            

   39                                         BindingFlags.DeclaredOnly |

   40                                         BindingFlags.Default |

   41                                         BindingFlags.GetProperty |

   42                                         BindingFlags.Public |

   43                                         BindingFlags.Instance);

   44                 PropertyInfo yInfo = yType.GetProperty(_column,

   45                                         BindingFlags.DeclaredOnly |

   46                                         BindingFlags.Default |

   47                                         BindingFlags.GetProperty |

   48                                         BindingFlags.Public |

   49                                         BindingFlags.Instance);

   50 

   51                 object xVal = xInfo.GetValue(x, null);

   52                 object yVal = yInfo.GetValue(y, null);

   53 

   54                 return (this._sort == SortEnum.Asc) ?

   55                         ((IComparable)xVal).CompareTo(yVal) :

   56                         ((IComparable)yVal).CompareTo(xVal);

   57 

   58             }

   59         }

   60 

   61         #endregion

   62     }

   63 }

 
Ok, mari kita analisa code diatas. Mula-mula ketika object ini diinstansiasi maka nilai column dan mode sorting ditangkap dibagian constructornya

   12         public CommonSort(string column, SortEnum sort)

   13         {

   14             _column = column;

   15             _sort = sort;

   16         }

 
Ketika object ini dipakai dan dipanggil proses sorting maka method Compare akan terpanggil juga. Method ini akan mengembalikan nilai -1, 0 dan 1 artinya sebagai berikut
  • Jika bernilai -1 berarti nilai object x lebih kecil dibandingkan object y
  • Jika bernilai 0 berarti nilai object x sama dengan object y
  • Jika bernilai 1 berarti nilai object x lebih besar dibandingkan object y
Untuk mudahnya kita cek nilai NULL dari object  yang dibandingkan

   19         public int Compare(object x, object y)

   20         {

   21             if (x == null && y == null)

   22             {

   23                 return 0;

   24             }

   25             else if (x == null && y != null)

   26             {

   27                 return (this._sort == SortEnum.Asc) ? -1 : 1;

   28             }

   29             else if (x != null && y == null)

   30             {

   31                 return (this._sort == SortEnum.Asc) ? 1 : -1;

   32             }

   33             else

 
Jika memang object x dan y itu tidak NULL maka kita harus compare nilai propertie dimana nama propertie sudah didefinisikan oleh variable _column. Untuk mendapatkan nilai properties (yg didefnisiakn oleh _column) maka kita dapat memanfaatkan Reflection, cek code dibawah ini untuk cara dapat nilainya

   35                 Type xType = x.GetType();

   36                 Type yType = y.GetType();

   37 

   38                 PropertyInfo xInfo = xType.GetProperty(_column,            

   39                                         BindingFlags.DeclaredOnly |

   40                                         BindingFlags.Default |

   41                                         BindingFlags.GetProperty |

   42                                         BindingFlags.Public |

   43                                         BindingFlags.Instance);

   44                 PropertyInfo yInfo = yType.GetProperty(_column,

   45                                         BindingFlags.DeclaredOnly |

   46                                         BindingFlags.Default |

   47                                         BindingFlags.GetProperty |

   48                                         BindingFlags.Public |

   49                                         BindingFlags.Instance);

   50 

   51                 object xVal = xInfo.GetValue(x, null);

   52                 object yVal = yInfo.GetValue(y, null);

   53 

   54                 return (this._sort == SortEnum.Asc) ?

   55                         ((IComparable)xVal).CompareTo(yVal) :

   56                         ((IComparable)yVal).CompareTo(xVal);

 
Selanjutnya kita akan menggunakan didalam code. Mula-mula kita deklarasikan object ArrayList dan kemudian kita isi nilainya dengan object Employee

   13         private void InitData()

   14         {

   15             _list.Clear();

   16             for (int i = 0; i < 5; i++)

   17             {

   18                 Employee obj = new Employee();

   19                 obj.Id = i + 1;

   20                 obj.FirstName = "First" + (i + 1);

   21                 obj.LastName = "Last" + (i + 1);

   22                 obj.Address = "Jalan ABC No " + (i + 1);

   23                 obj.City = "Kota" + (i + 1);

   24 

   25                 _list.Add(obj);

   26             }

   27         }

 
Sedangkan proses sorting kita buat suatu method dengan inputan nama column dan mode sorting nya.

   44         private void ShowData(string column, SortEnum sort)

   45         {

   46             _list.Sort(new CommonSort(column, sort));

   47 

   48             Console.WriteLine("Id\tFirstName\tLastName\tAddress\tCity");

   49             for (int i = 0; i < _list.Count; i++)

   50             {

   51                 Employee obj = (Employee)_list[ i];

   52                 Console.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}",

   53                                 obj.Id,

   54                                 obj.FirstName,

   55                                 obj.LastName,

   56                                 obj.Address,

   57                                 obj.City);

   58             }

   59         }

Pada code diatas, proses sorting sendiri terjadi ketikan object ArrayList memanggil method Sort

   46             _list.Sort(new CommonSort(column, sort));

 
Secara keseluruhan pemanggilnya code sebagai berikut:

   77         public void Perform()

   78         {

   79             Console.WriteLine("Initialize data");

   80             InitData();

   81 

   82             Console.WriteLine("Sorting by Id & ASC");

   83             ShowData("Id", SortEnum.Asc);

   84             Console.WriteLine("");

   85 

   86             Console.WriteLine("Sorting by FirstName & DESC");

   87             ShowData("FirstName", SortEnum.Desc);

   88 

   89         }

 
Diatas diatas, melakukan sorting dengan Propertie Id & by ASC dan selanjutnya juga melakukan sorting by Propertie FirstName dan by DESC. Berikut ini hasil eksekusi sorting pada Employee Collection (Non Generics Collection) 
Contoh output untuk sortin non generics collection dapat dilihat pada gambar dibawah ini
Sorting pada Generics Collection
Untuk sorting pada Generics Collection, pada hakikatnya sama hanya saja object sorting harus berbentuk Generics Class dan implementasi dari Generics Interface IComparer<T> lihat gambar dibawah ini:
Sedangkan implementasi dari method Compare itu adalah sama dengan yang sebelumnya. Berikut ini implementasinya:

    1 using System;

    2 using System.Collections.Generic;

    3 using System.Reflection;

    4 

    5 namespace Sorting

    6 {

    7     public class CommontSortGenerics<T> : IComparer<T>

    8     {

    9         private string _column;

   10         private SortEnum _sort = SortEnum.Asc;

   11 

   12         public CommontSortGenerics(string column, SortEnum sort)

   13         {

   14             _column = column;

   15             _sort = sort;

   16         }

   17         #region IComparer<T> Members

   18 

   19         public int Compare(T x, T y)

   20         {

   21             if (x == null && y == null)

   22             {

   23                 return 0;

   24             }

   25             else if (x == null && y != null)

   26             {

   27                 return (this._sort == SortEnum.Asc) ? -1 : 1;

   28             }

   29             else if (x != null && y == null)

   30             {

   31                 return (this._sort == SortEnum.Asc) ? 1 : -1;

   32             }

   33             else

   34             {               

   35                 Type xType = x.GetType();

   36                 Type yType = y.GetType();

   37 

   38                 PropertyInfo xInfo = xType.GetProperty(_column,

   39                                         BindingFlags.DeclaredOnly |

   40                                         BindingFlags.Default |

   41                                         BindingFlags.GetProperty |

   42                                         BindingFlags.Public |

   43                                         BindingFlags.Instance);

   44                 PropertyInfo yInfo = yType.GetProperty(_column,

   45                                         BindingFlags.DeclaredOnly |

   46                                         BindingFlags.Default |

   47                                         BindingFlags.GetProperty |

   48                                         BindingFlags.Public |

   49                                         BindingFlags.Instance);

   50 

   51                 object xVal = xInfo.GetValue(x, null);

   52                 object yVal = yInfo.GetValue(y, null);

   53 

   54                 return (this._sort == SortEnum.Asc) ?

   55                         ((IComparable)xVal).CompareTo(yVal) :

   56                         ((IComparable)yVal).CompareTo(xVal);

   57 

   58             }

   59         }

   60 

   61         #endregion

   62     }

   63 }

 
Sedangkan cara pakainya,mula-mulai kita deklarasikan object Generics Collection misalkan List<Employee> dan kita isi nilai object Employee nya.

   28         private void InitDataForGenerics()

   29         {

   30             _listGenerics.Clear();

   31             for (int i = 0; i < 5; i++)

   32             {

   33                 Employee obj = new Employee();

   34                 obj.Id = i + 1;

   35                 obj.FirstName = "First" + (i + 1);

   36                 obj.LastName = "Last" + (i + 1);

   37                 obj.Address = "Jalan ABC No " + (i + 1);

   38                 obj.City = "Kota" + (i + 1);

   39 

   40                 _listGenerics.Add(obj);

   41             }

   42         }

Sedangkan proses sorting sebagai berikut:

   60         private void ShowDataForGenerics(string column, SortEnum sort)

   61         {

   62             _listGenerics.Sort(new CommontSortGenerics<Employee>(column, sort));          

   63 

   64             Console.WriteLine("Id\tFirstName\tLastName\tAddress\tCity");

   65             for (int i = 0; i < _listGenerics.Count; i++)

   66             {

   67                 Employee obj = _listGenerics[ i];

   68                 Console.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}",

   69                                 obj.Id,

   70                                 obj.FirstName,

   71                                 obj.LastName,

   72                                 obj.Address,

   73                                 obj.City);

   74             }

   75         }

 
Sedangkan penggunaannya sebagai berikut:

   91         public void PerformForGenerics()

   92         {

   93             Console.WriteLine("Initialize data");

   94             InitDataForGenerics();

   95 

   96             Console.WriteLine("Sorting by Id & ASC");

   97             ShowDataForGenerics("Id", SortEnum.Asc);

   98             Console.WriteLine("");

   99 

  100             Console.WriteLine("Sorting by FirstName & DESC");

  101             ShowDataForGenerics("FirstName", SortEnum.Desc);

  102 

  103         }

 
Contoh hasil output dari sorting generics collection:
Source Code
Share this post: | | | |

Komunitas C++ Indonesia - Back Again!

Setelah diadakanya pertemuan komunitas C++ di bogor beberapa bulan lalu dimana acaranya berkisar dengan ramah-tamah & perkenalan member dan sharing technology, bagaimana kelanjutannya ? sekarang kita sedang menemukan bentuk model bagaimana pertemuannya selanjutnya ?

Ada rekan-rekan lainnya untuk menemukan solusinya ? ada yang mau jadi volunteer untuk duduk dijajaran organisasi komunitas C++ indonesia ? ditunggu nih Smile

Share this post: | | | |
Posted by Agus Kurniawan | 12 comment(s)
Filed under: ,

Applying 3G for Surveillance System*

For foreign reader, this paper is written in Indonesian language. Please contact me if you want to know this paper in English language.

Surveillance system adalah sistem monitoring terhadap object yang dilakukan sepanjang waktu. Pengertian object disini dapat dikatakan sembarang bentuk. Dalam membangun surveillance system, hal yang diutamakan adalah availibility, oleh karena itu didalam paper kali ini saya akan menerapakan 3G dari wireless provider untuk mendesign surveillance system. Untuk minimalisasi cost dari pemakaian 3G maka kita dapat memanfaatkan suatu artificial intelligent dalam implementasi. Ketika sistem intelligent ini mengatakan bahwa ada seseorang atau mobile object mendekat barang kita monitoring maka sistem akan calling owner dari barang ini dan menghidupkan calling 3G sehingga owner akan dapat melihat barang yang diawasi itu.

General Design
Secara umum, saya menggambarkan secara singkat model dari Surveillance System seperti gambar dibawah ini

Digambar diatas, kita dapat melihat bentuk Surveillance System yang akan dibuat dimana saya menawarkan 2 aplikasi yang akan dibangun yaitu

  • Surveillance System yang bertugas untuk memonitoring object dan juga sebagai control triger kepada messaging server untuk transfer video live kepada owner melalui 3G
  • 3G Messaging Server bertugas untuk men-triger dan establish 3G network ke nomor pemilik dari object
Surveillance System

Dalam membangun Surveillance System ini, saya memanfaatkan neural network sebagai expert decision akan memutuskan apakah object yang dimonitoring itu mengalami gangguan pencurian ataupun pengerusakan. Untuk memudahkan design modelnya, saya coba membuat design model seperti gambar dibawah ini

 Dari gambar diatas, Surveillance System ini terdiri dari:

  • Video Processing
  • Video Segmentation
  • Human Pattern Recognition dan Intelligence Controller (Expert Decision)

Masing-masing bagan ini akan dijelaskan pada sub bagian selanjutnya.

Video Processing
Video processing disini digunakan untuk melakukan digitization dari video menjadi still image. Disamping itu video processing digunakan untuk noise filtering dari video yang tertangkap video camera. Bagan dari video processing dapat dilihat pada gambar dibawah ini

 Sedangkan proses dari video processing dapat dijabarkan sebagai berikut

  • Video camera akan mengirim video kedalam video processing dimana disini mula-mula akan dilakukan digital sampling yang akan digunakan sebagai media input untuk expert decision
  • Hasil video sampling akan dilakukan noise filter dengan error feedback sebagai controller terhadap kualitas media ini
  • Proses selanjutnya akan dibentuknya digital still image
    Selanjutnya digital still image ini akan digunakan sebagai media inputan untuk proses selanjutnya yaitu segmentation

Video Segmentation
Proses segmentaion digunakan untuk pencacahan bagi input neural network.Setiap still image akan di segmentasi sesuai dengan kebutuhan. Segmentasi ini juga akan tergantung dari ukuran still image yang kemungkinan ukurannya adalah 3 peluang yaitu

  • Still image dengan ukuran width dan length yang sama
  • Still image dengan ukuran width lebih besar dibandingkan ukuran length
  • Still image dengan ukuran length lebih besar dibandingkan ukuran width

Pada gambar dibawah ini contoh segmentasi dari gambar berukuran 380x285 dengan segmentasi window sebesar 37x37

Sedangkan gambar dibawah ini contoh segmentasi dari gambar berukuran 380x570 dengan segmentasi window sebesar 37x37

 Masing-masing dari hasil segmentasi window akan diperoleh nilai-nilai seperti:

  • Lokasi pixel
  • Nilai RGB
  • Nilai Hue, Saturation dan Ligthness

Nilai-nilai ini akan menjadi artifact untuk inputan proses selanjutnya.

Human Pattern Recognition dan Intelligence Controller
Dibagam ini merupakan core atau jantung dari Surveillance System yang akan dibuat ini karena disinilah keputusan apakah object yang dimonitoring ini terganggun atau tidak dan juga triger bagi calling 3G wireless untuk live video yang akan dilihat oleh owner dari object yang dimonitoring. Secara umum bagam ini dapat dilihat pada gambar dibawah ini

Pada gambar diatas terlihat bahwa modul untuk Human Pattern Recognition dan Intelligence Controller terdiri dari:

  • Normalization, ini bertugas untuk normalisasi data input
  • Input Data Optimization, ini sangat berguna untuk optimalisasi dari input dengan cara mengurang jumlah input menjadi beberapa input saja tanpa mengurangi informasi yang tergandung didalamnya
  • Neural Network, digunakan untuk expert decision
  • Control Expert Decision, digunakan untuk menyatakan apakan image tersebut terhadap alien object yang mengganggu monitoring object atau tidak. Disini bisa memanfaatkan klasifikasi statistik
  • Control State Feedback, digunakan menyimpan state dari control expert decision yang akan dikembalikan sebagai feedback input untuk neural network

3G Messaging Server
Ini merupakan server aplikasi yang akan listening terhadap triger dari Surveillance System. Ketika Messaging Server ini mendapatkan triger dari Surveillance System maka server aplikasi ini akan melakukan establishing connection ke 3G Provider untuk menghubungkan video camera ke penerima 3G. Bagam umum 3G Messaging Server seperti gambar dibawah ini

What’s Next ?
Paper ini adalah abstract paper yang dapat diimplementasikan dalam suatu aplikasi. Dibagian neural network juga dapat diganti dengan metode algoritma lainnya seperti fuzzy, neuro-fuzzy dan sebangsanya yang ujung-ujungnya bertujuan untuk mendeteksi suatu object seperti human. Teknik Face Recognition juga dapat digunakan untuk metode ini. Penulis dapat membantu dalam implementasi dan merealisasikan dalam C++/C#. Kontak saya untuk informasi selengkapnya baik untuk kepentingan research maupun bisnis Cool

Saya open discussion untuk topic ini..ditunggu ya.. 

* Saat ini penulis sedang bekerja perusahan otomotif terbesar di indonesia sebagai software architect. Selain itu penulis juga sedang menyelesaikan S2 Computer Science di IPB. 

Share this post: | | | |

Bubu Award (PHP Competition)

Bubu Award (Web Competition PHP Competition). Cukup ramai juga bahasan tentang Bubu Award (http://www.bubuawards.com/) di blog pak Tahir: [V] . Gw sangat berkesan dengan komentar pak Gunady. Ada beberapa point yang ingin gw ungkapan:

  1. Bubu award kurang begitu jelas goal untuk award ini ....why? katanya web competition tapinya kalau dilihat-lihat PHP competition, nama ini jauh lebih bagus....mestinya team bubu award sadar apa itu teknologi web
  2. Kalau memang bubu award bersifat netral..maka cobalah netral...gw tahu untuk berbuat netral itu sangat susah tapi cobalah tidak ambigous dengan statement yang diungkapkan 
  3. Kalau memang mau pure web technology ya..pakai scripting aja seperti HTML, CSS, DHTML, XHTML and javascript jadi requirement point 6 dan 7 dibuang aja
  4. Bubu award penuh intrik sarat dengan politik...that's why semua jadi politikus Stick out tongue, kalau yang ini internal
  5. lainnya internal juga karena pada panas Angry

 

Share this post: | | | |
Posted by Agus Kurniawan | 1 comment(s)
Filed under:

Should MVPs "Move Into" Microsoft ?

MVP sendiri merupakan community leader yang ingin membangun kemajuan komunitasnya namun akhir-akhirnya banyak fenomena2x MVP worldwide yang pindah masuk ke Microsoft dengan berbagai macam alasan. Kalau semua MVP pada pindah Microsoft terus yang menjaga community itu sendiri sapa ? dan terus akan berjuang untuk mengatakan SALAH ketika memang Microsoft salah, dan mengatakan Benar kalau memang Microsoft do right jobs Tongue Tied

Ada komentar ? 

Share this post: | | | |
Posted by Agus Kurniawan | with no comments
Filed under: ,

Algorithm Online Tutorial Resource

Guys, ada link yang bagus mengenai algorithma, dan gratis lagi Stick out tongue, check out:

http://en.wikipedia.org/wiki/Category:Algorithms 

Btw, my lecturer recommends algorithm book "Introduction to Algorithms", by Thomas H. Cormen, Charles E. Leiserson, Donald L. Rivest and Clifford Stein. The MIT Press © 2001. Cover bukunya sbb:

Well, kalau dilihat daftar isinya, dapat disummary sbb:

 Part I - Foundations
 Chapter 1 - The Role of Algorithms in Computing
 Chapter 2 - Getting Started
 Chapter 3 - Growth of Functions
 Chapter 4 - Recurrences
 Chapter 5 - Probabilistic Analysis and Randomized Algorithms
 Part II - Sorting and Order Statistics
 Chapter 6 - Heapsort
 Chapter 7 - Quicksort
 Chapter 8 - Sorting in Linear Time
 Chapter 9 - Medians and Order Statistics
 Part III - Data Structures
 Chapter 10 - Elementary Data Structures
 Chapter 11 - Hash Tables
 Chapter 12 - Binary Search Trees
 Chapter 13 - Red-Black Trees
 Chapter 14 - Augmenting Data Structures
 Part IV - Advanced Design and Analysis Techniques
 Chapter 15 - Dynamic Programming
 Chapter 16 - Greedy Algorithms
 Chapter 17 - Amortized Analysis
 Part V - Advanced Data Structures
 Chapter 18 - B-Trees
 Chapter 19 - Binomial Heaps
 Chapter 20 - Fibonacci Heaps
 Chapter 21 - Data Structures for Disjoint Sets
 Part VI - Graph Algorithms
 Chapter 22 - Elementary Graph Algorithms
 Chapter 23 - Minimum Spanning Trees
 Chapter 24 - Single-Source Shortest Paths
 Chapter 25 - All-Pairs Shortest Paths
 Chapter 26 - Maximum Flow
 Part VII - Selected Topics
 Chapter 27 - Sorting Networks
 Chapter 28 - Matrix Operations
 Chapter 29 - Linear Programming
 Chapter 30 - Polynomials and the FFT
 Chapter 31 - Number-Theoretic Algorithms
 Chapter 32 - String Matching
 Chapter 33 - Computational Geometry
 Chapter 34 - NP-Completeness
 Chapter 35 - Approximation Algorithms
 Part VIII - Appendix: Mathematical Background
 Appendix A - Summations
 Appendix B - Sets, Etc.
 Appendix C - Counting and Probability

 
Kalau saya perhatikan, buku ini bisa dibilang lengkap karena cara mengkajinya begitu detail mulia dari filosifi , analisa matematika hingga implementasi. Selain itu buku ini sangat kuat dalam analisa design dari suatu algorithma. Gw sendiri juga sudah punya baik itu hardcopy maupun softcopynya...btw, ada yang comment atau pernah compare buku algorithm lainnya

Share this post: | | | |
Posted by Agus Kurniawan | 3 comment(s)
Filed under:

Ada yang terlupakan dalam Delivery Training/Workshop ASP.NET

Dari beberapa training maupun workshop mengenai ASP.NET kebanyakan ada item materi yang missing yaitu

  • HTML
  • Javascript
  •  CSS

Kebanyakan tiap program training/workshop ASP.NET itu mengabaikan materi ini karena kebanyakan dianggap peserta sudah menguasai HTML, Javascript dan CSS. Tapi dari studi kasus tertentu, rupanya 3 materi sangat akan menjadi problem ketika kita ingin melakukan modifikasi page ASP.NET dengan custom dengan derajat tertentu.

Bagaimanapun teknologi web yang digunakan baik itu ASP.NET, PHP, JSP ..etc semuanya tidak lepas dari barang-barang HTML, Javascript dan CSS.. dan mau tidak mau, 3 materi ini harus menjadi bagian dari ASP.NET ketika mendeliveri materi ini karena ini adalah fundamental dari web application technology. People Enterprise mesti update kurikulumnya Embarrassed

any comment ?

Share this post: | | | |

#1:Computing is Fun

Recursive merupakan salah satu topik dalam computing bahkan tidak lepas dari algorithma. Hari weekend kemarin saya coba iseng membuat code looping sebagai berikut yang saya tulis dalam bahasa C#,  check out:

 

Setelah dicompile dan dirunning, hasilnya seperti gambar dibawah ini

Well, ada yang bisa menjelaskan fenomena ini ? kenapa kok tidak muncul nilai 0,1,2.3.....9 ? bagaimana code diatas kok bisa menghasilkan output diatas..ditunggu komentar + detail penjelasannya

Share this post: | | | |
Posted by Agus Kurniawan | 8 comment(s)
Filed under:

Milis Project Otak

Guys, barusan telah dibuat milis project otak, http://otak.csharpindonesia.net, yang diperuntukan untuk umum. Anda bisa bergabung ke milis project otak dengan mengirim email kosong ke otak-subscribe@netindonesia.net

Ditunggu diskusinya disana Cake 

Share this post: | | | |
Posted by Agus Kurniawan | with no comments
Filed under:

Welcome to Computer Science My Friend;)

Wah..akhirnya my geek' friend, Norman, mau back to campus....it's a great news, kalau ini bisa terlaksana. Computer Science (CS) merupakan cabang ilmu yang khusus mempelajari komputer tetapi secara science bukan secara informasi maupun teknologi. CS lebih menekankan pada analysis and design dari sebuah system yang didasarkan pada kajian komputasi matematis. Jangan berharap di CS anda mendapatkan how to code...how to manage project Embarrassed tapi lebih banyak thinking bagaimana build algorithm untuk computing yang diimplementasi pada kernel operating system, system detection, object recognition hingga ke management network rounting.

Tahun depan tinggal beberapa hari..jadi mesti dipersiapkan..ok, ditunggu dan mari party disana Party!!!

Share this post: | | | |
Posted by Agus Kurniawan | 3 comment(s)
Filed under:

Software Architect Vs Peramal ?

Sering kudengar ketika bertemu dengan beberapa management dimana tuntutan seorang software architect harus dapat memang role layaknya para peramal maksudnya adalah dapat meramal dalam memilih teknologi yang akan digunakan dan diimplementasikan. Jangan sampai setelah diimplementasi dengan budget yang tinggi tiba2x besoknya tidak bisa dipakai lagi dikarenakan kebutuhan bussiness yang berjalan. Berbicara mengenai role software architect sebagai peramal, ku teringat pada presentasi dari Ron Jacob

Sekarang yang jadi permasalahannya adalah sejauh mana seorang architect dapat meramal ? apa sampai keujung-ujung semua titik business? nah..tugas seorang CTO sendiri atau CAO bagaimana? bukannya mereka yang jauh lebih luas pandangnya. Satu lagi umur dari suat technology itu ada batasnya jadi sejauh mana untuk meramalnya... bagaimana pendapat anda? anda siap menjadi peramal technology

Share this post: | | | |
Posted by Agus Kurniawan | 1 comment(s)
Filed under: ,

Business Drive IT(Information Technology) or IT Drive Business ? How about you...

IT dan business merupakan dua kubu yang bisa saling kerja sama atau bisa jadi bertolak-belakang. Apapun model business anda ataupun model IT Achitecture anda, semua bertumpu di dua kutub ini. Bagi anda yang berkecimpung di busines IT, mungkin 2 statement yang dibawah ini sering didengar yaitu

  • IT seharusnya dapat memerankan role nya untuk drive business
  • Business seharusnya dapat men-drive IT untuk create solution
Dua statement ini sebenarnya sama-sama benar, tergantung sudut pandangnya. Baik IT Drive Business ataupun Business Drives IT, dua statement memang mempunyai pendukung yang sama-sama kuat. Di sekolah Management juga topik ini menjadi wacana hangat. Bagaimana menurut anda? apakah anda pendukung IT Drive Business atau Business Drives IT ?  
Share this post: | | | |
Posted by Agus Kurniawan | 9 comment(s)
Filed under:
More Posts Next page »