mantap Pak Eko. terimakasih share ilmunya. konsepnya udah dapat. tp kalau boleh saran bisa bikin contoh coding sql prakteknya pak. jadi ada gambaran lebih dalam lagi. Terimakasih
Ohh ini maksudnya, pantesan saya mengikuti tutorial pas ketika checkout itu melibatkan banyak table dan query database dan dibungkus DB::transaction di laravel
Kang, klo misal sy debit di atm trus atm nya error atw tidak mengeluarkan uang tp setelah sy cek di mobile banking saldo sy berkurang itu mslhnya dmn ya. Asumsi klo network error harusnya saldo tidak berkurang. Atw fitur commit/rollback transaction blm ada di bank tsb ???
Mas, Kenapa ya ada bisa kemungkinan gagal itu masuk pertimbangan? apakah resikonya besar makanya harus dibuat transactional? Kalau menurut saya ini kasus dengan resiko kecil. Sama seperti ketika melakukan query dengan trasactional tapi tiba2 listrik mati. Atau karena biasanya server middleware dengan server database terpisah perusahaan sehingga resiko terjadinya besar? Tapi saya rasa server middleware dengan server database biasanya dibuat disatu tempat mislanya aws, gcp dsb? Terima kasih
Bro, bukan hanya programming, bahkan bodang lain pun namanya kegagalan ya memang harus dipikirkan, apalagi contoh diatas sudah jelas menyangkut keuangan yang sangat sensitif, kalau kita mengabaikan aspek kegagalan ya itu bakala jadi berbahaya.
om mau tanya, untuk table transaksi olshop, jika sudah semua transaksi selesai dan ketika melihat history transaksi tersebut, harusnya sesuai yang ada di transaksi , masalahnya gmn klo ketika deskripsi produk atau gambar produk berubah ?, mohon pencerahannya
maka dari itu di tabel transaksi_detail jangan hanya id_produk saja, tapi nama_produk,harga_produk,jumlah_dibeli_produk, sehingga saat produk itu terbeli, data dari produk itu dicopy ke tabel transaksi_detail
Mas Eko, adakah video yg tentang arsitektur standard backend? Seandainya saya mau buat 1 requestmapping yg isinya ada logic yg memerlukan update beberapa table, apakah dikerjakan di dalam controller semua ( 1 controller memanggil beberapa command) atau sebaiknya bagaimana? Terima kasih.. sy sedang belajar arsitektur backend yg baik dan memulai dgn spring boot..
Chandra Ari Gunawan bantu jawab ya.. web layer (requestmapping itu) baiknya tidak mengandung logic aplikasi, jadi cukup memanggil service aja.. Dengan kata lain, logic aplikasi dan query/command yang mengupdate bbrp table itu ditaruh di dalam suatu service class aja, trus controller cukup memanggil fungsi dari service class itu..
Mau tanya mas seputar transaction, kalau saya punya query a, b dan d di dalam stored routine (stored procdure) A, lalu ada query c di store procedure B, transaksi a,b,c,d tersebut saling berkaitan, setelah itu saya panggil sp B via A, apakah tetap bisa atomic transaksinya? meskipun di A proses COMMIT nya sudah ditaruh paling terakhir, Gimana cara menghindari race conditionnya? Terima kasih
Bisa saja ditaro rollback di exception stor proc A, biasanya procedure itu dimulai dari declare - begin - end, jadi sebelum end dikasih exception handling, misal : Exceptions when others then rollback;
@@sanggasimanjuntak1074 tidak menjawab.. exception dan rollback tujuannya mmg diletakan di stor proc utama A.. biar ketika ada error bisa lsg k rollback tuh satu transaksi, pertanyaannya, query c ini kan udah di luar begin end (procedure)nya A.. Apakah ketika gue panggil proc B, si engine sqlnya meng-guarantee ga ada proses transaksi lain lagi yang masuk, sehingga ga menggangu query c ini yang lagi nunggu commit/rollback nya proc A.. karena jika ada transksi lain yg jalan, query di proc B ini bisa terganggu, bisa kena commit/rolback transaksi yg lain.. so transaksinya ga atomic lagi..
Bang.. yg khusus ini kasih tutorial dong.. live coding. Biar tau apa saja yg menyebabkan sebuah transaction itu gagal. Apakah sebuah proses sudah terhendel dalam transaction atau Belum. Bagaimana cara testing nya dll.. Thanks.
mau nanya gan. dari contoh kasus, apakah penggunaan database transactional bisa digantikan oleh penggunaan trigger/stored procedure? apakah dengan menggunakan trigger/ stored procedur akan 100% berhasil?
Menurut saya bisa saja selama logic/dml statement ditaro di stor proc jg. Tp tetap saja exception handlingnya harus dijaga krn tidak pasti 100% berhasil, misalkan gagal karena struktur table ada yang mengubah, atau filed type number diinsert char/varchar
bang contohin code nya untuk db transactional, karena ketika sudah coba buat code nya mau test jika transaksi itu gagal nya gimana ya?, apalagi kan db aplikasi kita dengan saldo bank berbeda handle nya gmn ya bang, kasusnya ketika customer bayar dengan virtual account bank dan ternyata transaksinya ada kendala dan rolback, nah dana yang terpotong di bank itu mengembalikannya gmn ya, mohon penjelasannya bang, terimakasih
Makasih bnyak mas atas ilmunya. Seharian nonton semua vlognya hehehe. Mau tanya nih mas, kalo mau implement database transactional apakah di api gatewaynya yah mas?? Mohon koreksinya, soalnya yg saya pikirkan saat ini cuman begtu yg paling memungkinkan hehehe
Maaf mas mau tanya, kalo misalnya transaction nya ada lebih dari 1 table kalo gagal bagaimana ya? Soalnya begin dan commit transaction itu di masing masing table. Kalo misalnya mau update ada 2 table yang satu sudah sukses tapi table 1 nya lagi gagal kemudian dirollback. Berati kalo gitu gak dua duanya ke rollback. Bagaimana supaya dua duany ikut ke rollback ya mas jika salah satu table yang mau diupdate ada yg gagal transaksi
@@ProgrammerZamanNow Out Of Topic. maaf mas sekira tau mohon bantu dijawab. Apakah jika kita melakukan update data ke suatu table lewat trigger function bisa memperlambat performance?
numpang tnya suhu bgimna cara mencega insert data yang bersamaan krna saya dapat study case ketika data yang di masukan itu bersamaan data yang di timestamp itu sama apakah harus mengunakan Db transaction
@@ProgrammerZamanNow Bagaimana jika kasusnya Alice ingin beli produk A 40 pcs, Bob ingin beli produk A juga 30 pcs secara bersaman. Sisa produk A 50 pcs sebelum transaksi. Ketika alice membaca sisa 50, dan bob juga membaca sisa 50. Bob menyelesaikan pembelian lebih dulu sehingga sisa produk menjadi 20. Dan setelahnya alice menyelesaikan pembelian sisa produk menjadi 10 pcs, yang seharusnya sisa menjadi -20 pcs. Dikarna ketika membaca data bersamaan 50pcs
Lansung berpikir ke masalah yg berbeda.,😄 kayak gini.., "Bank A kok bisa punya hak akses untuk ubah data di databasenya Bank B.?🤔 Apa tidak apa2?" Sama kayak app travel pesawan yg bisa update data pemesanan tiket di setiap maskapai penerbangan., Pertanyaan pemula #kokbisa?
@@ProgrammerZamanNow bagaimana caranya programmer pemula bisa menggunakan API dari maskapai2 pesawat tersebut? apakh API tersebut hanya untuk agen travel yg terpercaya?
terimakasih pak berkat video ini, saya sudah ngerti itu apa database transactional :)
Tumben nemu channel programming yang penjelasannya gampang banget dingertiin. Semangat terus bikin content bang
materi nya terlalu berkualitas
Terbaik.. ini yang lagi gw butuhin.. thanks bang.
karena webinar exabytes jadi kesini karena pembahasain ini di senggol juga sama pak eko, Terima kasih pak
Mantap pak, paling seneng emang karena kalo jelasin mudah dipahami.
auto like dulu baru nonton :v
sudah make
Mantap penjelasannya, langsung Subscribe
enak banget penjelasannya cepet paham
mantap Pak Eko. terimakasih share ilmunya. konsepnya udah dapat. tp kalau boleh saran bisa bikin contoh coding sql prakteknya pak. jadi ada gambaran lebih dalam lagi. Terimakasih
Setuju
mantap ini, penjelasan bagus, buat 1 to many juga pasti kepake
sangat bermanfaat mas,..
makasih mas.
sangat bermanfaat sekali.
sama2
Masoook pak eko 👍🔥
Thanks. Sangat bermanfaat
ini klo di rest api, dmna client harus paham asynchronous, jika hit d bbrp api sekaligus, jika ada yg gagal maka harus rollback.
Ohh ini maksudnya, pantesan saya mengikuti tutorial pas ketika checkout itu melibatkan banyak table dan query database dan dibungkus DB::transaction di laravel
Mas apa ini ada kaitaya dengan Tempdb,, Bisa request ttg Tempdb mas... Terima Kasih...
Mas, bagaimana jika kita hanya insert histori transaksi saja. Untuk ambil saldonya di ambil melalui SUM IF expende/income?
Thank you Sir
Contohnya mas klo pk MsSql (2 tabel aja)...
Keren mas penjelasannya...
apakah bisa jalan pararel?, saya coba di mssql c# System.Transactions.TransactionScope() kok terasa lambat, seolah2 dieksekusi satu persatu bergantian
Halo, saya dari masa depan.. baru ngedalemin konsep DB transaction karena baru ngerasain ternyata kepake (banget) di projek2 gede 😂
Kang, klo misal sy debit di atm trus atm nya error atw tidak mengeluarkan uang tp setelah sy cek di mobile banking saldo sy berkurang itu mslhnya dmn ya. Asumsi klo network error harusnya saldo tidak berkurang. Atw fitur commit/rollback transaction blm ada di bank tsb ???
Baru nonton....
Telat 2thn
Mas, Kenapa ya ada bisa kemungkinan gagal itu masuk pertimbangan? apakah resikonya besar makanya harus dibuat transactional? Kalau menurut saya ini kasus dengan resiko kecil. Sama seperti ketika melakukan query dengan trasactional tapi tiba2 listrik mati. Atau karena biasanya server middleware dengan server database terpisah perusahaan sehingga resiko terjadinya besar? Tapi saya rasa server middleware dengan server database biasanya dibuat disatu tempat mislanya aws, gcp dsb? Terima kasih
Bro, bukan hanya programming, bahkan bodang lain pun namanya kegagalan ya memang harus dipikirkan, apalagi contoh diatas sudah jelas menyangkut keuangan yang sangat sensitif, kalau kita mengabaikan aspek kegagalan ya itu bakala jadi berbahaya.
pernah ingin nyarik hal seperti ini tapi gk tau mau nulis apa di google, terima kasih mas
Kalo microservices yg ada banyak db, transactionalnya gimana pak? exceptionnya dibikin sendiri?
nah ini.. up ini dong pak eko :D
om mau tanya, untuk table transaksi olshop, jika sudah semua transaksi selesai dan ketika melihat history transaksi tersebut, harusnya sesuai yang ada di transaksi , masalahnya gmn klo ketika deskripsi produk atau gambar produk berubah ?, mohon pencerahannya
maka dari itu di tabel transaksi_detail jangan hanya id_produk saja, tapi nama_produk,harga_produk,jumlah_dibeli_produk, sehingga saat produk itu terbeli, data dari produk itu dicopy ke tabel transaksi_detail
bang , saya mengharapkan ada contoh sih , mudah mudahan next dibikinin contoh prakteknya bang , tapi begini aja udah lumayan ngerti sih
Di video mysql dan postgresql sudah ada contohnya
Mas Eko, adakah video yg tentang arsitektur standard backend? Seandainya saya mau buat 1 requestmapping yg isinya ada logic yg memerlukan update beberapa table, apakah dikerjakan di dalam controller semua ( 1 controller memanggil beberapa command) atau sebaiknya bagaimana? Terima kasih.. sy sedang belajar arsitektur backend yg baik dan memulai dgn spring boot..
Chandra Ari Gunawan bantu jawab ya.. web layer (requestmapping itu) baiknya tidak mengandung logic aplikasi, jadi cukup memanggil service aja.. Dengan kata lain, logic aplikasi dan query/command yang mengupdate bbrp table itu ditaruh di dalam suatu service class aja, trus controller cukup memanggil fungsi dari service class itu..
Baiknya gak ada bisnis logic di controller, pindahkan semua bisnis logic nya me service layer
@@ProgrammerZamanNow oooh begituu.. jd bisnis service layer beda kelas yaa?? terima kasih banyak ya mas....
tutorial tingkat dewa nihh mantap!
Mau tanya mas seputar transaction, kalau saya punya query a, b dan d di dalam stored routine (stored procdure) A, lalu ada query c di store procedure B, transaksi a,b,c,d tersebut saling berkaitan, setelah itu saya panggil sp B via A, apakah tetap bisa atomic transaksinya? meskipun di A proses COMMIT nya sudah ditaruh paling terakhir, Gimana cara menghindari race conditionnya? Terima kasih
Bisa saja ditaro rollback di exception stor proc A, biasanya procedure itu dimulai dari declare - begin - end, jadi sebelum end dikasih exception handling, misal : Exceptions when others then rollback;
@@sanggasimanjuntak1074 tidak menjawab.. exception dan rollback tujuannya mmg diletakan di stor proc utama A.. biar ketika ada error bisa lsg k rollback tuh satu transaksi, pertanyaannya, query c ini kan udah di luar begin end (procedure)nya A.. Apakah ketika gue panggil proc B, si engine sqlnya meng-guarantee ga ada proses transaksi lain lagi yang masuk, sehingga ga menggangu query c ini yang lagi nunggu commit/rollback nya proc A.. karena jika ada transksi lain yg jalan, query di proc B ini bisa terganggu, bisa kena commit/rolback transaksi yg lain.. so transaksinya ga atomic lagi..
Mas Eko, playlist Software Arsitektur ada file presentasimya? ppt. terima kasih
waktu dulu bikin materi software architecture, saya belum sempet bikin rapih seperti sekarang slide nya :D
Begin tran
IF(Succes)
Commit tran
Else
rollback
Ketika error, dia akan throw exception, gak kan sempat masuk if statement
@@ProgrammerZamanNow oh iya gunakan try catch :D
begin tran
begin try
//Process
Commit tran
end try
begin catch
rollback
end catch
nah, pake try catch beru benar, hehe
@@ProgrammerZamanNow kalau benar nanti gak dikomen. wkwkwkkw
Bang.. yg khusus ini kasih tutorial dong.. live coding. Biar tau apa saja yg menyebabkan sebuah transaction itu gagal. Apakah sebuah proses sudah terhendel dalam transaction atau Belum. Bagaimana cara testing nya dll..
Thanks.
Bagai mana rollback nya ke trigger dll
mau nanya gan. dari contoh kasus, apakah penggunaan database transactional bisa digantikan oleh penggunaan trigger/stored procedure?
apakah dengan menggunakan trigger/ stored procedur akan 100% berhasil?
Menurut saya bisa saja selama logic/dml statement ditaro di stor proc jg. Tp tetap saja exception handlingnya harus dijaga krn tidak pasti 100% berhasil, misalkan gagal karena struktur table ada yang mengubah, atau filed type number diinsert char/varchar
@@sanggasimanjuntak1074 berarti walau menggunakan stored procedure, masih ada kemungkinan satu transaksi itu bisa gagal ya gan?
Betoel skali @@9090_XYZ. Makanya pada saat testing ada yang namanya "positif test" dan "negative test"
Kenapa bru ke temu sekarang :(
kalao pake spring enak pake @Transactional kelar... :)
semua teknologi harusnya udah punya fitur untuk mempermudah database transaction
Untuk buat tx ini baiknya di level db apa di level apps pak ??
Transactional adanya di level db, tapi biasa di trigger dari app
Intinya tx ini buatnya di db ya,okok,
bang contohin code nya untuk db transactional, karena ketika sudah coba buat code nya mau test jika transaksi itu gagal nya gimana ya?, apalagi kan db aplikasi kita dengan saldo bank berbeda handle nya gmn ya bang,
kasusnya ketika customer bayar dengan virtual account bank dan ternyata transaksinya ada kendala dan rolback, nah dana yang terpotong di bank itu mengembalikannya gmn ya,
mohon penjelasannya bang, terimakasih
biasanya tiap bank sudah menyediakan Reversal API untuk membatalkan transfer
@@ProgrammerZamanNow respons nya jika gagal ya bang, oke siap bang, kita tunggu update video selanjutnya,, tq tq bang
baru nonton ini di 2021 tepatnya di bulan september wkwk
Kasih If aja didepan, terus kalau nggak ada saldo dikasih die.
Kalo saldo ada? Trus tiba2 pas mau update saldo penerima ada network error?
inikan maksud e, kayak di CI gitu kan mas, yang pake fungsi trans
Betul
Makasih bnyak mas atas ilmunya. Seharian nonton semua vlognya hehehe. Mau tanya nih mas, kalo mau implement database transactional apakah di api gatewaynya yah mas?? Mohon koreksinya, soalnya yg saya pikirkan saat ini cuman begtu yg paling memungkinkan hehehe
implementasi db transaction harus di app yang ngakses langsung ke db nya, jadi bukan di api gateway nya
@@ProgrammerZamanNow untuk ngasih signal ke service sebelumnya yang udah sukses untuk insert ke db itu gmana yah mas??
Maaf mas mau tanya, kalo misalnya transaction nya ada lebih dari 1 table kalo gagal bagaimana ya? Soalnya begin dan commit transaction itu di masing masing table. Kalo misalnya mau update ada 2 table yang satu sudah sukses tapi table 1 nya lagi gagal kemudian dirollback. Berati kalo gitu gak dua duanya ke rollback. Bagaimana supaya dua duany ikut ke rollback ya mas jika salah satu table yang mau diupdate ada yg gagal transaksi
begin dan commit transaction itu per connection, gak peduli mau berapa table pun, puluhan table pun bisa
@@ProgrammerZamanNow seperti itu ya mas. Baik terimakasih
@@ProgrammerZamanNow Out Of Topic. maaf mas sekira tau mohon bantu dijawab. Apakah jika kita melakukan update data ke suatu table lewat trigger function bisa memperlambat performance?
Dalam sekala ratusan - ribuan data
numpang tnya suhu bgimna cara mencega insert data yang bersamaan krna saya dapat study case ketika data yang di masukan itu bersamaan data yang di timestamp itu sama apakah harus mengunakan Db transaction
Insert data bersamaan kalo id nya beda ya gak masalah
@@ProgrammerZamanNow Bagaimana jika kasusnya Alice ingin beli produk A 40 pcs, Bob ingin beli produk A juga 30 pcs secara bersaman.
Sisa produk A 50 pcs sebelum transaksi. Ketika alice membaca sisa 50, dan bob juga membaca sisa 50.
Bob menyelesaikan pembelian lebih dulu sehingga sisa produk menjadi 20. Dan setelahnya alice menyelesaikan pembelian sisa produk menjadi 10 pcs, yang seharusnya sisa menjadi -20 pcs.
Dikarna ketika membaca data bersamaan 50pcs
Pake konsep squencing om
transactional di microservices gimana itu pak?
kalo antar microservice, pakenya SAGA Pattern
Itu fitur atau konsep Om?
konsep sekaligus fitur database
Lansung berpikir ke masalah yg berbeda.,😄 kayak gini.., "Bank A kok bisa punya hak akses untuk ubah data di databasenya Bank B.?🤔 Apa tidak apa2?" Sama kayak app travel pesawan yg bisa update data pemesanan tiket di setiap maskapai penerbangan.,
Pertanyaan pemula #kokbisa?
anggap aja kasusnya, transfer ke rekening di bank yang sama
kalo travel agent kenapa bisa update data pesanan di maskapai, karena pihak maskapai sudah menyediakan API untuk diakses oleh travel agent system
@@ProgrammerZamanNow bagaimana caranya programmer pemula bisa menggunakan API dari maskapai2 pesawat tersebut? apakh API tersebut hanya untuk agen travel yg terpercaya?
@@delpitenna5967 biasany travel agent bekerjasama dg vendor utk bisa consume service booking enginenya maskapai... host 2 host, dan yg pasti ga gratis..
@@delpitenna5967 Mungkin saja ada trial atau sandbox-nya untuk coba-coba, seperti Bank BCA yang memiliki sandbox untuk API nya.
Kenapa sih seorang Sultan subscribernya dikit 🤣
Wkwkwkw
karena because video video yang di share di mari itu sangat terlalu berfaedah
@Transactional