Pros dan Cons Menggunakan ORM

แชร์
ฝัง

ความคิดเห็น • 105

  • @ttaqinmu707
    @ttaqinmu707 2 ปีที่แล้ว +52

    good explanations as always, sebagai pengguna ORM saya jg mau share bbrp advantage menggunakan orm dibanding raw query:
    1. universal : kode jadi lebih seragam antara logic business dan query
    2. automatic optimization: cache, pooling dll
    3. rapid development
    4. migration & versioning
    5. extra tools, contoh saya pengguna django orm dan sqlalchemy, sangat mudah untuk switch db server (mysql, postgre, mongo, cassandra), sharding scr effortless, tinggal ganti config, selesai. handle error ( integrity, validation) pun lebih mudah karena exception udah built in

    • @dev_rupi
      @dev_rupi 2 ปีที่แล้ว

      Django enak asli :)

    • @muharief3885
      @muharief3885 2 ปีที่แล้ว

      kalo di python orm memang berguna buat bantu coding. Tp consnya jauh lebih lambat dibanding raw query. Beda dng nodejs, ormnya ya gitu, query builder jatohnya.
      Klw buat aplikasi web pake orm masih ga keliatan lambat klw concurrent request nya masih dikit. Akan lebih keliatan ketika proses query bulk, baru keliatan lemot.
      Ya di pilah aja peruntukannya.

    • @bimzzz8612
      @bimzzz8612 2 ปีที่แล้ว

      @@muharief3885 brrti ga selalu hrus pake ORM ya?

  • @oji.satriani
    @oji.satriani 2 ปีที่แล้ว +26

    Pengalaman awal2 dulu beralih dari sql manual ke ORM, cuma bisa komentar "Lah kok enak" 😅

    • @rainhardvidiansyah6968
      @rainhardvidiansyah6968 2 ปีที่แล้ว

      Awalnya coba-coba, lha kok enak 😂😃🙏

    • @kriskurniawan2561
      @kriskurniawan2561 2 ปีที่แล้ว +2

      akhirnya kterusan dan ketagihan...

    • @iseplutpinur
      @iseplutpinur 2 ปีที่แล้ว +1

      Saya agak kesusahan pas nge get data dari database. Soalnya biasanya quey nya nested. Jadi di dalam select ada select nya. Tapi pas yang edit sama delete atau lainnya enak banget. Hihihi

    • @youraccountissuspended
      @youraccountissuspended 2 ปีที่แล้ว

      @@kriskurniawan2561 besoknya saya pun kembali datang ke rumah tante..

  • @fvze1
    @fvze1 2 ปีที่แล้ว +2

    nice share...
    kalau saya pake ORM kalau query sql nya ga terlalu complex.
    tapi klo projectnya perkiraan bakal banyak query complex (contoh ERP), saya prefer call pake stored procedure,
    alasannya biar lebih fleksibel nge query di DB, easy to read, dan mudah di maintenance, misal pake CTE, subquery, dan function/expression bawaan databasenya.

  • @manggalawiryawan3242
    @manggalawiryawan3242 2 ปีที่แล้ว +3

    saya pake dua2nya, depend on case kalo saya...utk query simple pake orm aja, kalo sudah query yg ribet baru pake raw query

  • @darielpratama647
    @darielpratama647 2 ปีที่แล้ว +4

    untuk query2 basic ORM sangat membantu, tapi untuk beberapa query yg advance, raw SQL perlu untuk dicoba. ORM mempermudah kerjaan, tp basic SQL harus tetap dikuasai, karena mau gak mau pasti suatu saat butuh untuk run raw SQL.

  • @naranyala_dev
    @naranyala_dev 2 ปีที่แล้ว +1

    Thanks bang atas insight-nya, masih banyak fundamental yang perlu dipelajari ternyata

  • @IndraPrasetya154
    @IndraPrasetya154 2 ปีที่แล้ว

    Penjelasan yang lengkap sekali, mantap. Sehat sehat selalu Kang Eko

  • @RinggaGustavino
    @RinggaGustavino 2 ปีที่แล้ว +3

    Kalo dari pengalaman saya pakai ORM Node JS kayak sequelize atau TypeORM itu kalo query atau execution simple kayak insert doang atau query select biasa itu ga gitu kerasa.
    - ORM bakal kerasa kalo misalkan udah pake JOIN yang bener2 dalem atau panjang karena querynya bener2 belibet banget dibanding kalo kita buat JOIN sendiri sesuai kebutuhan (kayak yg mas Eko jelasin).
    - Kedua karena ORM ada fungsi mapping ke objectnya, pas query kalau data yang di ambil banyak banget sampe ribuan. Itu delaynya sangat berasa. Jadi lamanya bukan di query DB tp lamanya kena di fungsi mappingnya. Alternatifnya bisa di query tapi hasilnya dibuat RAW jadi field di object hasilnya nyesuain kolom database dan ga ngejalanin mappingnya. Atau ya raw query.
    Tapi emang ORM itu sangat membuat programmer produktif sih tapi emang musti peka kapan jangan dipake biar performancenya ga kena dampak yg parah

    • @iseplutpinur
      @iseplutpinur 2 ปีที่แล้ว

      Iya mas pas pertama pake ORM kesulitan banget soalnya biasanya. Buat quey nested. pas ber urusan sama edit delete jadi gampang banget.

    • @dontama
      @dontama 2 ปีที่แล้ว

      berarti sekelas google yang datanya udah banyak, mereka gak make ORM sama sekali dong?

    • @RinggaGustavino
      @RinggaGustavino 2 ปีที่แล้ว

      @@dontama kan mereka pake pagination atau dibuat per halaman, jadi ya yg dibalikin sama databasenya cuman mungkin 10-20 hasil aja yg dibutuhin user. nanti kalo usernya ke halaman selanjutnya ya dikasih lagi halaman berikutnya. Kalo pake ORM apa ngga sih gatau, tapi kemungkinan besar sih ya gapake ORM karena querynya pasti kompleks banget, dan mungkin databasenya udh NoSQL kayak mongoDB, elastic, dll. Kalo dibalikin semua data google mah, pake ORM atau ngga server mereka bisa meledak kali ngeproses jutaan request dan hasil query db tiap detik

    • @dontama
      @dontama 2 ปีที่แล้ว

      @@RinggaGustavino ya gak semua data juga yang dibalikin, dan gak mungkin juga. point utama nya adalah proses filter datanya. pake gak pake ORM, alasannya sama seperti kita develop aplikasi mau native atau pake framework. lama tidaknya query biasa atau ORM sebenarnya bukan disini masalahnya,, tapi masalah sebenarnya di database itu sendiri. mau pake query biasa tapi tidak di-index dll. ketika datanya udah banyak juga bakal lama juga hasilnya.

    • @RinggaGustavino
      @RinggaGustavino 2 ปีที่แล้ว

      @@dontama betul saya setuju. Ya poin saya jg lebih ke hasil querynya ORM biasanya musti di mapping dulu ke entity si ORM makanya jauh lebih berasa untuk data yang hasil querynya ribuan. Kalo searching di ribuan data mah ya pasti tergantung query, indexing dan skema DBnya saya setuju. Makanya saya ngasih tau mapping ini bisa di bypass pakai option RAW dari 2 ORM yg saya pake itu.

  • @foobarbazz
    @foobarbazz 2 ปีที่แล้ว +1

    Sangat masuk. terima kasih pak eko.

  • @mocharasa17
    @mocharasa17 2 ปีที่แล้ว +2

    Senior pake ORM no prob. Tapi jangan sampe anak junior di biasain pake ORM 😁.
    Always use RAW SQL untuk anak junior

  • @naufal_farras
    @naufal_farras 2 ปีที่แล้ว +1

    Setuju banget dengan penjelasanya, sesuaikan kondisi..
    contoh :
    1. Misal Pengecekan data input baru agar tidak duplikat yang mana data lama ada puluhan ribu ato lebih, nah ini pake SQL langsung biar lebih cepet prosessnya seleksi nya.
    2. Kalo datanya masih belum terlalu banyak harusnya masih aman pake ORM.

    • @davidstephen7070
      @davidstephen7070 2 ปีที่แล้ว

      itu semua tergantung jumlah request. kalau request 1000/ detik. ORM udah gak cocok, misalnya selisih tiap request 1ms, terjadi delay 1 detik itu terasa.

    • @dontama
      @dontama 2 ปีที่แล้ว

      salah sih kalo bilang selisih tiap request di akumulasi, misal kalo sql butuh 1 ms, orm butuh 3 ms.. jika ada 1000 request ya waktunya tetap 1 dan 3 tadi.. dari sisi aplikasi pasti sudah ada concurrency request dan didatabase juga terdapat concurrency connection. cepat atau tidaknya query dipengaruhi juga dari sisi indexing, partition table, master-slave dan lainnya. kalo jumlah data masih dibawah 1juta row waktu proses tidak signifikan.

    • @deniswarsidin9402
      @deniswarsidin9402 2 ปีที่แล้ว

      Mas blibli di video aja ngomong sampe skrg masih pake ORM kok. XD. Hajar aja ORM dah. Worst case ya padukan ORM sama Raw.

  • @dontama
    @dontama 2 ปีที่แล้ว +3

    dengan ORM sudah tidak perlu memikirkan bagaimana membuat SQL atau querynya. selain itu ada beberapa ORM yang bisa men-generate bentuk raw SQLnya. ketika kita bingung membuat query yang kompleks ternyata dengan ORM begitu simple, kita bisa mempelajari query yang dibuat oleh ORM. dan dengan ORM ketika gonta ganti engine database, gak perlu repot2 ubah codingan query. dan lagi kita bisa belajar query rawnya, karena ORM bisa menyesuaikan bentuk query sesuai database engine yang kita gunakan.

    • @badarnento3000
      @badarnento3000 2 ปีที่แล้ว

      untuk crud dan select yang tidak terlalu rumit orm masih worth it. tapi untuk beberapa case query yg kompleks seperti membuat report yg biasanya banyak kondisi dan join ke banyak table, raw query jadi lebih optimal dan lebih mudah untuk developernya itu sendiri.

  • @z-aru
    @z-aru 2 ปีที่แล้ว +4

    Saya lebih prefer query builder

  • @belajarwebmedan
    @belajarwebmedan 2 ปีที่แล้ว

    Mantap penjelasannya.. terima kasih pak Eko.

  • @ronierone
    @ronierone 2 ปีที่แล้ว

    I think my mentor must be known this.
    Nice share pak

  • @codeyzx
    @codeyzx 2 ปีที่แล้ว

    Keren pak sangat berguna, terimakasih

  • @dya9981
    @dya9981 2 ปีที่แล้ว

    Ambil yg bagus dari orm aja ges. Orm biasanya punya mekanisme pooling yg bagus. Bisa dipakai buat migration. Kalau mau plain query toh juga tinggal comot cursor yg di expose si orm. Db access lifecycle juga penting lho kapan pool mau di initiate / release

  • @falahisnan4582
    @falahisnan4582 2 ปีที่แล้ว

    Pengalaman saya di JS pake ORM enak" aja (typeORM, Prisma) query yg dihasilkan jelas (di docs nya udah tertera), paging dan relasi juga bisa di kontrol dengan mudah

  • @afcreative-id
    @afcreative-id 2 ปีที่แล้ว

    Totally agree mas, kadang pakai plain sql kalo pakai formula dan pakai pgsql

  • @nolep5555
    @nolep5555 2 หลายเดือนก่อน

    {
    "id": 1,
    "name": "John",
    "products": ["Product A", "Product B"]
    }
    kalo pake express js dan mysql tanpa orm. cara buat format kayak gini gimana ya supaya ada array products disana.

  • @wahyusantoso7419
    @wahyusantoso7419 2 ปีที่แล้ว +3

    ORM enak kalau cuma CRUD, simple JOIN, atau simple query saja..
    .
    kalau query nya kompleks akan susah untuk implementasi dan maintenance nya.
    .
    berdasarkan pengalaman saya lebih enak pake stored procedure, jadi bahasa pemrograman tinggal call aja, jadi program lebih simple dan gampang maintenance nya..

  • @bimadeantoro22
    @bimadeantoro22 ปีที่แล้ว

    Sedikit sharing kalo case data udah sampe ratusan ribu kalo pake ORM tidak mampu meload data tersebut. Jadi bener banget kalo query harus dikuasi dulu. 🙌

  • @akudia9136
    @akudia9136 2 ปีที่แล้ว

    Bener banget nih mas eko, enakan pake ORM daripada sql langsung.

  • @mrizkimaulidan
    @mrizkimaulidan 2 ปีที่แล้ว +1

    dulu semenjak pake laravel selalu pakai ORM eloquent, pas disuruh implement raw query ga ngerti gimana caranya wkwk. jadi kesimpulannya harus ngerti dulu gimana cara raw query baru coba nyentuh ORM, berasa banget keliatannya

    • @ramdoni3935
      @ramdoni3935 2 ปีที่แล้ว

      nahh ini adalah contoh dari perkataan pak Echo tadi heheheh mantaps Bang intinya semangats terus belajar dan mengenal apapun itu ilmu dalam dunia Software engginer ;)

  • @rayvid7979
    @rayvid7979 5 หลายเดือนก่อน

    lebih suka pake cara tradisional. jdbc + sql/stored procedure. kenceng abiss...

  • @aryajaya6685
    @aryajaya6685 2 ปีที่แล้ว +1

    Tutorial golang orm dong pak eko, temen2 pada make orm merasa beda sendiri pak

  • @nurdinyusuf8876
    @nurdinyusuf8876 2 ปีที่แล้ว

    why not both?kalo gw pake query kalo input /proseslebih dari 10k -1m data dalam 1 tombol ngga pake orm, tapi kalo dibawah itu pake orm aja udh aman. khusus reporting kalo bentuknya rekap pake query, tapi kalo tampilan single report pake orm aja. ngga bakal masalah dalam 1 aplikasi terdapat orm dan query.

  • @ariumboroseno
    @ariumboroseno 2 ปีที่แล้ว +2

    Pak eko, request pak content terkait buku rekomendasi untuk senior developer

  • @zekayara9320
    @zekayara9320 2 ปีที่แล้ว +1

    ORM sangat membantu banget ketika relational table sudah komplek
    Bayangin relational table nya komplek pake query , beh ndak kebayang deh

    • @awikwok212
      @awikwok212 2 ปีที่แล้ว

      ga kebalik ini?
      bayangin bikin report pake ORM mantap

    • @123tgh
      @123tgh 2 ปีที่แล้ว

      query builder lebih baik kalo buat banyak relasi utk report.

    • @zekayara9320
      @zekayara9320 2 ปีที่แล้ว

      @@awikwok212 LAZY COLLECTION ?

    • @rayvid7979
      @rayvid7979 ปีที่แล้ว

      Malah terbalik. Orm enak dipakai kalo size aplikasinya kecil - sedang. Kalo besar - sangat besar lebih baik dikombinasikan dengan raw sql dan stored procedure. Ato lebih bagus lagi kalo cuman pake raw sql dan stored procedure aja.

    • @rayvid7979
      @rayvid7979 ปีที่แล้ว

      terbalik... justru orm enak dipake kalo db schema nya sederhana. kalo sudah complex, high volume, harus pake raw sql & stored procedure ya. jangan pernah pake orm.

  • @iopyrb
    @iopyrb 6 หลายเดือนก่อน

    RoR active record ❤

  • @gustiarya7009
    @gustiarya7009 2 ปีที่แล้ว

    pakai orm memang enak, tapi klo query sudah compleks banget lebih prefer ke sql sih

  • @mengisi
    @mengisi 2 ปีที่แล้ว

    Alat dibuat untuk kegunaan masing-masing. Stop bandingkan tools. Tinggal pake aja kok kita ini., :D

  • @fhlazdrwals
    @fhlazdrwals 2 ปีที่แล้ว

    kalo di golang ORM yang recommended apa ya mas eko ?

  • @fajarislami581
    @fajarislami581 2 ปีที่แล้ว

    klo di gorm juga enak, klo konek ke master slave, gampang

  • @zhakimel
    @zhakimel 2 ปีที่แล้ว

    alternative ORM bagusnya mapper kayak iBatis sih

  • @muhammadfitrahramadhan6487
    @muhammadfitrahramadhan6487 2 ปีที่แล้ว

    kalo pake ORM masih perlu layer repository gak ya, sejak ORM kan sudah mengabstraksi tiap-tiap table

    • @kiizuha
      @kiizuha 2 ปีที่แล้ว

      Bisa pake 4 layer clean arch, bisa gak pake juga. Tapi lebih baik pake sih

  • @adultzbgtz
    @adultzbgtz 4 หลายเดือนก่อน

    Punten bang, orm dengan query lngsung jauh bedanya bang, bisa 1 bnding 3 detik klo datanya besar, dan query nya bnyak join dan where clause🙏

  • @rdimas7445
    @rdimas7445 2 ปีที่แล้ว +1

    Mas Eko khusus bagian "lazy", ada pertanyaan gini bang? Misal pas findById di tabel A, tapi saya butuh beberapa data dari tabel B, apakah bisa diprovide via ORM Mas? Soalnya klo saya liat ketika dia manggil dari table B dia akan manggil semua kolom, sedangkan saya pengennya beberapa field aja yang dipanggil. Kalo lazy itukan sebuah mekanisme yang dimana data dari table B akan diquery klo emang dipanggil di via ORMnya, cuman giamna bang klo misal kita pengen ngambil beberapa field aja?

    • @DandiFermeko
      @DandiFermeko 2 ปีที่แล้ว

      Kalau di laravel bisa di define field2 yg mau di select, misal User::with('user_profiles:user_id,phone,birthdate')->first();

    • @rdimas7445
      @rdimas7445 2 ปีที่แล้ว

      @@DandiFermeko makasi Mas jawabannya. Saya belum nemu kalo di Java wkwk

    • @deniswarsidin9402
      @deniswarsidin9402 2 ปีที่แล้ว

      Gorm golang juga bisa omit select. Harusnya setiap ORM provide feature ini.

    • @unangrioda
      @unangrioda 2 ปีที่แล้ว

      Bisa di setiap orm

    • @m5a1stuart83
      @m5a1stuart83 2 ปีที่แล้ว

      Semua ORM pasti punya kok, mgkn elu blm explore aja, sebagai pengguna Mormon dan EF/EFCore.

  • @GrezArifiyan
    @GrezArifiyan 2 ปีที่แล้ว

    nah, untuk dev sebetulnya gak masalah, tapi kalo datanya udah besar sepertinya lebih baik menggunakan sql.

    • @deniswarsidin9402
      @deniswarsidin9402 2 ปีที่แล้ว

      Wah pinter bgt ini. Di branch staging kodenya pake ORM, di branch prod pake raw. Ajaran sapa pak?

    • @mikha2880
      @mikha2880 2 ปีที่แล้ว

      ​@@deniswarsidin9402 hahahhaa mungkin yg di maksud si bapak untuk skala ukuran projek 😆 atau belum sruput ☕

  • @dispinser548
    @dispinser548 2 ปีที่แล้ว +1

    Linq 👍💯

  • @wisnupw
    @wisnupw 2 ปีที่แล้ว +1

    Om Eko. Reflection ring lightnya cukup eye catching. 😅

  • @ytef9398
    @ytef9398 2 ปีที่แล้ว

    orm & active record itu sama kah?

  • @mirzaputra64
    @mirzaputra64 2 ปีที่แล้ว +1

    nanya mas,kalo gak pake orm kenapa ya balikannya bentuknya harus instance of object? padahal dari resultset sudah bisa diolah langsung?

    • @davidstephen7070
      @davidstephen7070 2 ปีที่แล้ว

      type checking. prinsip bahasa statik. semua harus type check. biar apa? biar test unit bisa di prediksi.

    • @mirzaputra64
      @mirzaputra64 2 ปีที่แล้ว

      @@davidstephen7070 ohh itu ngefeknya di unit testing ya? Jadi untuk memastikan data yang dibalikin harus instance dari suatu object, kalo pas ditest ternyata ada data yang salah langsung nge throw error begitu?

    • @dndhndn
      @dndhndn 2 ปีที่แล้ว

      @@mirzaputra64 data yang salah juga di test.

  • @nomoretaqiyah
    @nomoretaqiyah 2 ปีที่แล้ว

    Ditunggu tutor orm nya mas 😀

  • @rainhardvidiansyah6968
    @rainhardvidiansyah6968 2 ปีที่แล้ว

    Jpa hibernate ❤❤❤

  • @faridrizkywijaya2702
    @faridrizkywijaya2702 2 ปีที่แล้ว +1

    pak nanti di kelas laravel dibahas tuntas ga mengenai ORM

  • @rezihardiansyah1082
    @rezihardiansyah1082 2 ปีที่แล้ว

    di sb ada object mapping named mybatis

  • @ainunabdullah2140
    @ainunabdullah2140 2 ปีที่แล้ว

    pak eko, aplikasi buat coret2nya namanya apa pak hehe ?

  • @nanto88
    @nanto88 2 ปีที่แล้ว

    bisa pake db driver

  • @ramdoni3935
    @ramdoni3935 2 ปีที่แล้ว

    ini adalah jawaban palin adem yang selama ini saya dengar :) dimana di grup2 telegram pada berdebat panas adu mekanik , perang dunia ke 5 yang ini kekeh paling mantaps No ORM yang satunya Team Pake ORM , dua kubu saling adu kuat wkwkwk .. Kalo Pak eko jawab dengan mengambil kedua pandangan ORM Dan No ORM di lihat sudut pandang nya .. .Mantaps Pak Echo ( Framework Go lang ) . heheheheheh

  • @ZAcharyIndy
    @ZAcharyIndy 2 ปีที่แล้ว

    Kalo udah level enterprise pasti pake ORM lah, deadline ketat. Tapi ya tetep untuk fx yg spesifik tetep harus dg raw Query.
    Kecuali elu develop ORM sendiri , hahahaha

  • @karuniaawalramadhan9627
    @karuniaawalramadhan9627 2 ปีที่แล้ว

    ngedit kolom nambah kolom, auto ngubah kode program

  • @oktapascal4348
    @oktapascal4348 2 ปีที่แล้ว

    Pake ORM itu berarti relasi tablenya juga harus bener ya ?

    • @unangrioda
      @unangrioda 2 ปีที่แล้ว

      Ya, benerin dlu relasinya

  • @mindyaus3429
    @mindyaus3429 2 ปีที่แล้ว

    Kekmana itu mas eko klok mau buat bahasa pemrograman sendiri

    • @davidstephen7070
      @davidstephen7070 2 ปีที่แล้ว

      belajar bahasa assembly. terus belajar read and write file. dilanjut regex. tujuan regex untuk parse code lalu di ubah ke assembly.

  • @arfankurnianto9781
    @arfankurnianto9781 2 ปีที่แล้ว

    Saya pakai orm cuma buat manipulasi

  • @munawirulhadi2864
    @munawirulhadi2864 2 ปีที่แล้ว

    ga tau kenapa kalau saya lebih gampang pake raw query, apalagi kalau table relationnya banyak. Kalau pake orm enakan pake orm yg bisa nulis raw query juga. Jadi kalau untuk read data pake raw sql, untuk write kayak create update lebih gampang pake orm.

  • @masmmaw
    @masmmaw 2 ปีที่แล้ว

    ORM itu apa ?

    • @danilsyah4108
      @danilsyah4108 2 ปีที่แล้ว

      Object Relational Mapping

  • @akbarmaulana6390
    @akbarmaulana6390 2 ปีที่แล้ว

    mongodb engga pakai orm haha hihi

    • @CakRama01
      @CakRama01 2 ปีที่แล้ว +4

      Ada orm nya juga, namanya mongoose

    • @bagashananto4672
      @bagashananto4672 2 ปีที่แล้ว

      mongoose?

    • @davidstephen7070
      @davidstephen7070 2 ปีที่แล้ว

      mongodb defaultnya sudah orm. cuman gak ada schema.

    • @fajarislami581
      @fajarislami581 2 ปีที่แล้ว

      klo mongodb namanya odm

    • @lukmanharun890
      @lukmanharun890 2 ปีที่แล้ว

      Main aggregate mantap