BindingSource
BindingSource merupakan object yang dapat menjadi perantara antara object DataTable dan object lainnya seperti
DataGridView. BindingSource biasanya digunakan sebagai perantara DataTable yang terdapat dalam sebuah object
DataSet. Untuk membinding/mengikat sebuah DataTable ke dalam BindingSource, maka DataSource dari object
BindingSource tersebut diisi dengan object DataTable yang akan diikatnya
BS.DataSource = DT
Selain DataTable secara langsung, BindingSource juga dapat membinding object DataTable yang terdapat dalam object
DataSet. Jika demikian maka DataSource object BindingSource tersebut diisi dengan object DataSet, oleh karena dalam
object DataSet terdapat banyak DataTable maka berikutnya mengatur DataMember dari Bindingsource tersebut.
DataMember diisi dengan TableName dari object DataTable yang ada dalam DataSet
BS.DataSource = DS
BS.DataMember = “TableNameofDT”
Object lain yang dapat dijadikan sebagai DataSource dari object BindingSource adalah object BindingSource yang lain dan
yang menjadi DataMember adalah nama object Relasi. Sebagai contoh, terdapat dua buah table, tabel pertama yaitu
Tabel Kelompok, pada table tersebut terdapat data NoKelompok, NamaKelompok, dan KetuaKelompok. Tabel kedua
adalam Tabel AnggotaKelompok, dalam table tersebut terdapat Data StbMhs, NamaMhs, NoKelompok. Kedua table
dihubungkan object field/kolom NoKelompok.
Pada aplikasi, table Kelompok dimasukkan dalam sebuah object DataTabel yang bernama DTKelompok sedangkan table
AnggotaKelompok dimasukkan dalam object DataTable DTAnggotaKelompok. Kedua DataTable tersebut dimasukkan ke
dalam object DataSet yang bernama DSKelompokDanAnggotanya, tetapi sebelum dimasukkan ke DataSet TableName dari
DataTable DTKelompok telah diatur menjadi “DTKelompokDlmDS” dan TableName DataTable DTAnggotaKelompok
menjadi “DTAnggotaKelompokDlmDS”. Di dalam object DataSet DSKelompokDanAnggota juga terdapat object Relation
yang merelasikan kedua table dalam DataSet tersebut, nama object Relation tersebut adalah “RelasiKelompokAnggota”.
Adapun susunan mulai dari object DataTable terisi hingga dimasukkan ke dalam DataSet dan dibuatkan relasi dalam
DataSet dapat dilihat pada gambar 1.
DataTable yang telah terelasi di dalam DataSet dapat divisualisasikan ke object DataGridView (dengan asumsi setiap
berpindah record/posisi di DataTable Kelompok/Induk maka data pada DataTable AnggotaKelompok/Anak akan difilter
sesuai sehingga yang ditampilkan hanyalah data yang memiliki NoKelompok sama dengan posisi pada DataTable
Kelompok). Untuk menampilkan seperti itu, maka data tersebut harus melewati object BindingSource karena object
tersebut dapat menjadi perantara DataSet dan DataGridView sekaligus melakukan filter data. Baik data Kelompok
maupun AnggotaKelompok harus melewati object BindingSource yang berbeda atau masing-masing dibuatkan object
BindingSource. Anggaplah dibuat dua buah object BindingSource, yaitu BSKelompok untuk data Kelompok dan
BSAnggotaKelompok untuk data AnggotaKelompok, maka DataSource BSKelompok diisi dengan nama object DataSet dan
DataMember diisi dengan nama table (TableName) DTKelompokDlmDS. Untuk BSAnggotaKelompok, DataSource diisi
dengan BSKelompok dan DataMember adalah nama relasi (RelasiAnggotaKelompok).
Setelah kedua BindingSource tersebut terisi maka DataSource DataGridView untuk data Kelompok (DGVKelompok) diisi
dengan BSKelompok dan DataSource DataGridView untuk data AnggotaKelompok (DGVAnggotaKelompok) diisi dengan
BSAnggotaKelompok. Adapun alur data dari DataSet hingga ditampilkan pada DataGridView dapat dilihat pada gambar 2.
Design by: Mu. Iskandar Sabang, S.ST. 1
Gambar 1. Alur DataTable hingga terelasi dalam DataSet
Gambar 2. Alur Data dari DataSet hingga ke DataGridView
Design by: Mu. Iskandar Sabang, S.ST. 2
DataTable Lebih Dari Dua Dalam Dataset
Gambar 3. DataTable DT1 memiliki Child DT2 dan DT3
Pada model di atas, setiap perpindahan posisi kursor dalam object DGV1, maka data yang ditampilkan pada object DGV2
adalah data yang memiliki hubungan sesuai dengan posisi data pada DGV1, demikian pula data yang ditampilkan pada
object DGV3 adalah data yang memiliki hubungan sesuai dengan posisi data pada DGV1. Antara DGV2 dan DGV3 tidak
memiliki hubungan.
Gambar 4. DataTable DT1 memiliki child DT2, DataTable DT2 memiliki Child DT3
Pada model di atas, setiap perpindahan posisi kursor dalam object DGV1, maka data yang ditampilkan pada object DGV2
adalah data yang memiliki hubungan sesuai dengan posisi data pada DGV1, dan setiap perpindahan posisi kursor dalam
object DGV2, maka data yang ditampilkan pada object DGV3 adalah data yang memiliki hubungan sesuai dengan posisi
data pada DGV2
Design by: Mu. Iskandar Sabang, S.ST. 3