{"id":11232,"date":"2020-12-26T00:00:00","date_gmt":"2020-12-26T00:00:00","guid":{"rendered":"https:\/\/binus.ac.id\/binus-digital\/2020\/12\/26\/membuat-custom-tabel-pada-database-wordpress\/"},"modified":"2024-09-24T02:20:16","modified_gmt":"2024-09-24T02:20:16","slug":"membuat-custom-tabel-pada-database-wordpress","status":"publish","type":"post","link":"https:\/\/binus.ac.id\/binus-digital\/2020\/12\/26\/membuat-custom-tabel-pada-database-wordpress\/","title":{"rendered":"Membuat Custom Tabel pada Database WordPress"},"content":{"rendered":"<p>Membuat custom Tabel pada Database WordPress artinya ingin mengembangkan situs WordPress lebih besar lagi. WordPress sendiri memang memungkinkan hal ini dilakukan. Sudah banyak plugin atau theme yang menggunakan fitur ini, sebut saja plugin\u00a0<a href=\"https:\/\/woocommerce.com\/\">WooCommerce<\/a>\u00a0salah satunya.<\/p>\n<blockquote class=\"wp-block-quote\">\n<p>Karena awalnya WordPress dibuat untuk platform Blogging sehingga Struktur Database yang dibuat di khususkan untuk kebutuhan Blogging.<\/p>\n<\/blockquote>\n<p>Sebagai catatan, untuk membuat custom tabel pada WordPress dibutuhkan pemahaman mengenai Bahasa SQL (MySQL).<\/p>\n<p><strong>01. Membuat Tabel<\/strong><br \/>\nPada artikel kali ini kita akan membuat tabel untuk menyimpan data Subscriber, kita namakan table \u201csubscribers\u201d. Tabel \u201csubscribers\u201d terdiri dari kolom berikut:<\/p>\n<ul>\n<li>subscriber_id (Number, Auto Increment, Primary Key)<\/li>\n<li>subscriber_email (String)<\/li>\n<li>registered_date (DateTime)<\/li>\n<\/ul>\n<p>Sekarang kita akan mulai membuat tabel tersebut. Pertama buka file \u201cfunctions.php\u201d, lalu ketikan kode berikut.<\/p>\n<pre class=\"wp-block-preformatted\">$current_db_version = 1.0;\r\n$installed_db_version = get_option('db_subscribers_version', 0);\r\n\r\nif ($current_db_version &gt; $installed_db_version) {\r\n\u00a0 app_create_subscribers_db();\r\n\u00a0 update_option('db_subscribers_version', $current_db_version);\r\n}\r\n\r\nfunction app_create_subscribers_db() {\r\n\u00a0 global $wpdb;\r\n\r\n\u00a0 \/\/ define query\r\n\u00a0 $query = array(\r\n\u00a0 \u00a0 \"CREATE TABLE {$wpdb-&gt;prefix}subscribers (\r\n\u00a0 \u00a0 \u00a0 subscriber_id BIGINT NOT NULL AUTO_INCREMENT,\r\n\u00a0 \u00a0 \u00a0 subscriber_email VARCHAR(100) NOT NULL,\r\n\u00a0 \u00a0 \u00a0 registered_date DATETIME NOT NULL,\r\n\u00a0 \u00a0 \u00a0 PRIMARY KEY (subscriber_id)\r\n\u00a0 \u00a0 )\"\r\n\u00a0 );\r\n<em>\r\n\u00a0 \/\/ execute query\r\n<\/em><strong>\u00a0 require_once<\/strong> ABSPATH . 'wp-admin\/includes\/upgrade.php';\r\n\u00a0 dbDelta($query);\r\n}<\/pre>\n<p>Maksud penggunaan object\u00a0<strong>$wpdb-&gt;prefix<\/strong>\u00a0adalah agar nama tabel sesuai dengan nama prefix tabel yang dipakai sebelumnya dan sesuai dengan ID website nya (jika pakai fitur Multisite) sehingga akan mudah ditemukan jika ingin mencari nya di Dashboard PHPMyAdmin.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-8256\" src=\"http:\/\/binus.ac.id\/knowledge\/wp-content\/uploads\/2020\/12\/Screen-Shot-2020-12-20-at-11.33.54-AM.png\" alt=\"\" width=\"229\" height=\"183\" \/><\/p>\n<p>Sampai sini table sudah berhasil dibuat, selanjutnya akan kita coba untuk melakukan CRUD (Cread Read Update Delete) ke tabel tersebut.<\/p>\n<p><strong>02. Insert atau Create Data<\/strong><br \/>\nUntuk melakukan insert data, ketik kode berikut pada file \u201cfunctions.php\u201d.<\/p>\n<pre class=\"wp-block-preformatted\">function app_insert_data() {\r\n\u00a0 global $wpdb;\r\n\u00a0 $wpdb-&gt;insert($wpdb-&gt;prefix . 'subscribers', array(\r\n\u00a0 \u00a0 'subscriber_email' =&gt; 'fachririyanto@gmail.com',\r\n\u00a0 \u00a0 'registered_date' =&gt;current_time('mysql')\r\n\u00a0 ));\r\n}\r\napp_insert_data();<\/pre>\n<p>Setelah kode tersebut dijalankan, akan menginsert data baru tersebut, seperti gambar berikut.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-8257\" src=\"http:\/\/binus.ac.id\/knowledge\/wp-content\/uploads\/2020\/12\/Screen-Shot-2020-12-20-at-12.40.27-PM.png\" alt=\"\" width=\"607\" height=\"128\" \/><\/p>\n<p>Kolom \u201csubscriber_id\u201d tercetak otomatis karena sebelumnya kita set AUTO_INCREMENT.<\/p>\n<p><strong>03. Read Data<\/strong><br \/>\nKetik kode berikut untuk membaca data dari table \u2018subscribers\u2019.<\/p>\n<pre class=\"wp-block-preformatted\">function app_get_data() {\r\n\u00a0 global $wpdb;\r\n\u00a0 $results = $wpdb-&gt;get_results(\"SELECT * FROM {$wpdb-&gt;prefix}subscribers\");\r\n\u00a0 return $results;\r\n}\r\n\r\n\/\/ implementasi\r\n$posts = app_get_data();\r\nforeach ($posts as $post) {\r\n\u00a0 echo $post-&gt;subscriber_email;\r\n\u00a0 echo '&lt;br\/&gt;';\r\n}<\/pre>\n<p><strong>04. Update Data<\/strong><br \/>\nUntuk update data, ketik kode berikut.<\/p>\n<pre class=\"wp-block-preformatted\">function app_update_data() {\r\n\u00a0 global $wpdb;\r\n\u00a0 $wpdb-&gt;update($wpdb-&gt;prefix . 'subscribers', array(\r\n\u00a0 \u00a0 \/\/ field to update\r\n\u00a0 \u00a0 'subscriber_email' =&gt; 'friyanto@gmail.com'\r\n\u00a0 ), array(\r\n\u00a0 \u00a0 \/\/ where clause\r\n\u00a0 \u00a0 'subscriber_email' =&gt; 'fachririyanto@gmail.com'\r\n\u00a0 ));\r\n}\r\napp_update_data();<\/pre>\n<p>Hasilnya sebagai berikut.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-8258\" src=\"http:\/\/binus.ac.id\/knowledge\/wp-content\/uploads\/2020\/12\/Screen-Shot-2020-12-20-at-12.51.56-PM.png\" alt=\"\" width=\"581\" height=\"131\" \/><\/p>\n<p><strong>05. Delete Data<\/strong><br \/>\nTerakhir kita akan melakukan delete data. Silahkan ketik kode berikut.<\/p>\n<pre class=\"wp-block-preformatted\">function app_delete_data() {\r\n\u00a0 global $wpdb;\r\n\u00a0 $wpdb-&gt;delete($wpdb-&gt;prefix . 'subscribers', array(\r\n\u00a0 \u00a0 'subscriber_email' =&gt; 'friyanto@gmail.com'\r\n\u00a0 ));\r\n}\r\napp_delete_data();<\/pre>\n<p>Jika dicek kembali ke Dashboard PHPMyAdmin, data subscriber telah kosong kembali. Sampai sini kita sudah berhasil melakukan CRUD ke dalam custom tabel WordPress.<\/p>\n<p>Sekian dulu artikel kali ini, semoga bermanfaat.<\/p>\n<p>Photo by <a href=\"https:\/\/unsplash.com\/@jankolar?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Jan Antonin Kolar<\/a> on <a href=\"https:\/\/unsplash.com\/s\/photos\/database?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Unsplash<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Membuat custom Tabel pada Database WordPress artinya ingin mengembangkan situs WordPress lebih besar lagi. WordPress sendiri memang memungkinkan hal ini dilakukan. Sudah banyak plugin atau theme yang menggunakan fitur ini, sebut saja plugin\u00a0WooCommerce\u00a0salah satunya. Karena awalnya WordPress dibuat untuk platform Blogging sehingga Struktur Database yang dibuat di khususkan untuk kebutuhan Blogging. Sebagai catatan, untuk membuat [&hellip;]<\/p>\n","protected":false},"author":20,"featured_media":11233,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[77],"tags":[],"class_list":["post-11232","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articles"],"_links":{"self":[{"href":"https:\/\/binus.ac.id\/binus-digital\/wp-json\/wp\/v2\/posts\/11232","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/binus.ac.id\/binus-digital\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/binus.ac.id\/binus-digital\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/binus.ac.id\/binus-digital\/wp-json\/wp\/v2\/users\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/binus.ac.id\/binus-digital\/wp-json\/wp\/v2\/comments?post=11232"}],"version-history":[{"count":1,"href":"https:\/\/binus.ac.id\/binus-digital\/wp-json\/wp\/v2\/posts\/11232\/revisions"}],"predecessor-version":[{"id":11806,"href":"https:\/\/binus.ac.id\/binus-digital\/wp-json\/wp\/v2\/posts\/11232\/revisions\/11806"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/binus.ac.id\/binus-digital\/wp-json\/wp\/v2\/media\/11233"}],"wp:attachment":[{"href":"https:\/\/binus.ac.id\/binus-digital\/wp-json\/wp\/v2\/media?parent=11232"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/binus.ac.id\/binus-digital\/wp-json\/wp\/v2\/categories?post=11232"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/binus.ac.id\/binus-digital\/wp-json\/wp\/v2\/tags?post=11232"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}