Memahami Table Data Gateway Pattern

Table Gateway pattern adalah salah satu dari sekian design pattern yang dapat digunakan untuk melakukan hubungan antara class dengan database.Table Gateway ini bertujuan untuk menghandle semua baris dalam sebuah table database.

Media_httpblogitsacid_umsxe

Seringkali para pengembang sebuah perangkat lunak menemui kebutuhan untuk menyimpan data pada media disk yang permanen, salah satunya adalah disimpan dalam database. Untuk membangun sebuah database dibutuhkan proses tersendiri dalam merancang dan membangun database tersebut yang tidak discover dalam bahasan kali ini.

Nah, untuk menggunakan database(Relational) dalam pemrograman berbasis objek bisa dikatakan susah susah gampang, umumnya para programmer pemula akan melakukan pengkodean campur antara kode logic dengan kode sql untuk menghubungkan antara aplikasi, berdasarkan banyak literature dan pengalaman pribadi tentunya, hal ini sangatlah tidak baik dan merupakan kebiasaan yang sangat harus dihindari.

Dengan bercampurnya kode logic dengan kode sql paling tidak ada beberapa masalah yang dapat muncul misalnya kode logic semakin sulit untuk dilihat (dalam bahasa gaul ini mbikin mata picek!) akibatnya jika sulit untuk dilihat akan sulit pula untuk dimaintain. Kebanyakan programmer juga sebenarnya tidak nyaman dalam menulis program yang memiliki cara campur aduk seperti ini (spaghetti code), dan walaupun ada yang nyaman akan memungkinkan terjadi banyak kesalahan dalam pembuatannya.

Sebenarnya mengapa hal sulit dalam pembuatan aplikasi Object Oriented(OO) yang menggunakan database (Relational) adalah adanya perbedaan secara konseptual pada keduanya.. dimana memang programmer dituntut untuk berfikir Objek dan Relasi secara bersamaan, bayangkan saja jika anda diminta berbahasa 2 bahasa sekaligus.. tentu akan ribet…:hammer:

Cara kerja pattern ini persis seperti namanya yaitu sebagai pintu gerbang antara objek yang diminta dengan database, sehingga nantinya objek yang diminta dapat digunakan dalam aplikasi yang dibuat seperti halnya mengakses objek biasa. TableGatweay akan berisi method – method yang berhubungan dengan behavior yang bisa dilakukan untuk semua baris yang ada di dalam table. Misalnya saja method find_by_id(..) , add(..) del_by_id(..) dan lain sebagainya yang nantinya method – method ini akan mengenerate sql yang akan diproses di database.Ciri utama dari TableGateway adalah walaupun sesimple apapun akan mengembalikan kumpulan dari baris yang ada di table, bukan baris yang bersangkutan saja. Misal method find_by_id(..) dipanggil akan mengembalikan array dari object yang diinginkan, dimana bisa saja isi array tersebut hanya satu saja.Contoh implementasi dalam class diagram adalah seperti berikut :

Media_httpblogitsacid_gngkj