{"id":4247,"date":"2026-07-26T19:30:22","date_gmt":"2026-07-26T12:30:22","guid":{"rendered":"https:\/\/focusnic.com\/blog\/?p=4247"},"modified":"2026-07-26T19:30:24","modified_gmt":"2026-07-26T12:30:24","slug":"tipe-data-pada-database","status":"publish","type":"post","link":"https:\/\/focusnic.com\/blog\/tipe-data-pada-database\/","title":{"rendered":"Tipe Data pada Database: Numerik, String, Date &amp; Time, dan BLOB"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Pada setiap sistem database, <strong>tipe data<\/strong> memainkan peran krusial dalam menentukan bagaimana informasi disimpan, diolah, dan ditampilkan. Pemilihan tipe data yang tepat tidak hanya berpengaruh pada akurasi dan konsistensi, tapi juga pada kinerja dan efisiensi penyimpanan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Artikel ini mengupas empat kategori utama: <strong>numerik<\/strong>, <strong>karakter\/string<\/strong>, <strong>date &amp; time<\/strong>, dan <strong>BLOB<\/strong>. Setiap pembahasan dilengkapi dengan contoh penggunaan, rentang nilai, serta tips optimasi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dengan memahami karakteristik masing-masing tipe data, Anda dapat merancang skema database yang optimal dan menghindari masalah seperti overflow, pemborosan ruang penyimpanan, atau kesalahan konversi data.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Selami detail penting berikut untuk memperkuat fondasi desain database Anda dan mendukung performa aplikasi secara maksimal.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/focusnic.com\/blog\/tipe-data-pada-database\/#Tipe_Data_Numerik_Integer_Decimal_dan_Floating-Point\" >Tipe Data Numerik: Integer, Decimal, dan Floating-Point<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/focusnic.com\/blog\/tipe-data-pada-database\/#Integer_TINYINT_SMALLINT_INT_BIGINT\" >Integer: TINYINT, SMALLINT, INT, BIGINT<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/focusnic.com\/blog\/tipe-data-pada-database\/#Decimal_dan_Numeric\" >Decimal dan Numeric<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/focusnic.com\/blog\/tipe-data-pada-database\/#Float_dan_Double_Angka_Pecahan\" >Float dan Double: Angka Pecahan<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/focusnic.com\/blog\/tipe-data-pada-database\/#Tipe_Data_Karakter_String_CHAR_VARCHAR_TEXT\" >Tipe Data Karakter &amp; String: CHAR, VARCHAR, TEXT<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/focusnic.com\/blog\/tipe-data-pada-database\/#Perbedaan_CHAR_vs_VARCHAR\" >Perbedaan CHAR vs VARCHAR<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/focusnic.com\/blog\/tipe-data-pada-database\/#TEXT_MEDIUMTEXT_LONGTEXT\" >TEXT, MEDIUMTEXT, LONGTEXT<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/focusnic.com\/blog\/tipe-data-pada-database\/#Tipe_Data_Date_Time_dan_BLOB\" >Tipe Data Date &amp; Time dan BLOB<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/focusnic.com\/blog\/tipe-data-pada-database\/#Date_Time_DATE_DATETIME_TIMESTAMP_TIME_YEAR\" >Date &amp; Time: DATE, DATETIME, TIMESTAMP, TIME, YEAR<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/focusnic.com\/blog\/tipe-data-pada-database\/#BLOB_Menyimpan_Data_Biner_Besar\" >BLOB: Menyimpan Data Biner Besar<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/focusnic.com\/blog\/tipe-data-pada-database\/#Kesimpulan\" >Kesimpulan<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Tipe_Data_Numerik_Integer_Decimal_dan_Floating-Point\"><\/span><strong>Tipe Data Numerik<\/strong>: Integer, Decimal, dan Floating-Point<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Tipe data numerik<\/strong> menyimpan nilai angka dan dibagi menjadi tiga kategori utama: integer, decimal\/numeric, serta floating-point. Pemilihannya bergantung pada kebutuhan presisi dan rentang nilai.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Integer_TINYINT_SMALLINT_INT_BIGINT\"><\/span>Integer: TINYINT, SMALLINT, INT, BIGINT<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tipe <strong>integer<\/strong> ideal untuk bilangan bulat tanpa koma. Setiap varian menawarkan rentang berbeda:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>TINYINT: -128 hingga 127 (signed), 0\u2013255 (unsigned)<\/li>\n\n\n\n<li>SMALLINT: -32.768 hingga 32.767 (signed), 0\u201365.535 (unsigned)<\/li>\n\n\n\n<li>INT (INTEGER): -2.147.483.648 hingga 2.147.483.647 (signed), 0\u20134.294.967.295 (unsigned)<\/li>\n\n\n\n<li>BIGINT: -9.223.372.036.854.775.808 hingga 9.223.372.036.854.775.807 (signed), 0\u201318.446.744.073.709.551.615 (unsigned)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Tips optimasi:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pilih tipe terkecil yang mencakup seluruh nilai untuk menghemat ruang.<\/li>\n\n\n\n<li>Gunakan <strong>unsigned<\/strong> saat nilai negatif tidak diperlukan.<\/li>\n\n\n\n<li>Indeks pada kolom integer umumnya lebih cepat dibandingkan string.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Decimal_dan_Numeric\"><\/span>Decimal dan Numeric<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>DECIMAL<\/strong> (atau NUMERIC) menyimpan angka dengan presisi tetap, menentukan <em>precision<\/em> (total digit) dan <em>scale<\/em> (digit di belakang koma). Contoh: DECIMAL(10,2) menyimpan hingga delapan digit sebelum koma dan dua digit desimal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cocok untuk data keuangan atau ilmiah yang menuntut akurasi mutlak tanpa kesalahan pembulatan floa-ting.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Float_dan_Double_Angka_Pecahan\"><\/span>Float dan Double: Angka Pecahan<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>FLOAT<\/strong> dan <strong>DOUBLE<\/strong> menggunakan format floating-point dengan presisi mendekati, bukan tetap. Float (4 byte) menyediakan sekitar 7 digit presisi, sementara Double (8 byte) mencapai 15 digit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kelebihan: hemat ruang untuk data ilmiah. Kekurangan: kemungkinan <em>rounding error<\/em>, sehingga kurang cocok untuk perhitungan keuangan.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Tipe_Data_Karakter_String_CHAR_VARCHAR_TEXT\"><\/span><strong>Tipe Data Karakter &amp; String<\/strong>: CHAR, VARCHAR, TEXT<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Tipe data karakter<\/strong> menyimpan teks dan dibagi berdasarkan panjang tetap (fixed) atau variabel (variable). Pilih berdasarkan pola data dan kebutuhan performa.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Perbedaan_CHAR_vs_VARCHAR\"><\/span>Perbedaan CHAR vs VARCHAR<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">CHAR(n) menyimpan panjang tetap n karakter, menambahkan spasi jika teks lebih pendek. VARCHAR(n) menyimpan panjang variabel hingga n karakter, tanpa padding.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Rekomendasi:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>CHAR ideal untuk data dengan panjang konsisten, misal kode negara (2 karakter) atau status (1\u20133 karakter).<\/li>\n\n\n\n<li>VARCHAR cocok untuk teks dengan panjang bervariasi, seperti nama pengguna atau alamat email.<\/li>\n\n\n\n<li>VARCHAR memerlukan 1\u20132 byte ekstra untuk mencatat panjang aktual.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"TEXT_MEDIUMTEXT_LONGTEXT\"><\/span>TEXT, MEDIUMTEXT, LONGTEXT<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Untuk teks besar, gunakan tipe <strong>TEXT<\/strong> dan variannya:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>TEXT: hingga 65.535 byte (~64 KB)<\/li>\n\n\n\n<li>MEDIUMTEXT: hingga 16.777.215 byte (~16 MB)<\/li>\n\n\n\n<li>LONGTEXT: hingga 4.294.967.295 byte (~4 GB)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Catatan:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tipe TEXT tidak menyimpan karakter panjang secara langsung di baris utama, melainkan di lokasi terpisah.<\/li>\n\n\n\n<li>Pencarian pada kolom TEXT bisa lebih lambat dan memerlukan full-text index jika volume besar.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Tipe_Data_Date_Time_dan_BLOB\"><\/span><strong>Tipe Data Date &amp; Time<\/strong> dan <strong>BLOB<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Selain angka dan teks, database berisi informasi waktu dan data biner. Berikut opsi yang umum dipakai:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Date_Time_DATE_DATETIME_TIMESTAMP_TIME_YEAR\"><\/span>Date &amp; Time: DATE, DATETIME, TIMESTAMP, TIME, YEAR<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Rancangan penyimpanan tanggal dan waktu:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>DATE<\/strong>: menyimpan tahun-bulan-hari (YYYY-MM-DD).<\/li>\n\n\n\n<li><strong>DATETIME<\/strong>: kombinasi DATE dan waktu (YYYY-MM-DD HH:MM:SS), rentang 1000-01-01 hingga 9999-12-31.<\/li>\n\n\n\n<li><strong>TIMESTAMP<\/strong>: 4-byte, menyimpan detik sejak epoch (1970-01-01 00:00:00 UTC), otomatis terupdate dengan zona waktu.<\/li>\n\n\n\n<li><strong>TIME<\/strong>: menyimpan jam:menit:detik (-838:59:59 hingga 838:59:59).<\/li>\n\n\n\n<li><strong>YEAR<\/strong>: menyimpan tahun dalam format 2 atau 4 digit (1901\u20132155 pada 4-digit).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Tips:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Gunakan TIMESTAMP untuk mencatat waktu pembuatan\/ubah data secara otomatis.<\/li>\n\n\n\n<li>Pilih DATETIME saat membutuhkan jangkauan historis sebelum 1970 atau setelah 2038.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"BLOB_Menyimpan_Data_Biner_Besar\"><\/span>BLOB: Menyimpan Data Biner Besar<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>BLOB<\/strong> (Binary Large Object) menyimpan file biner seperti gambar, audio, atau dokumen. Variannya:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>TINYBLOB: hingga 255 byte<\/li>\n\n\n\n<li>BLOB: hingga 65.535 byte (~64 KB)<\/li>\n\n\n\n<li>MEDIUMBLOB: hingga 16.777.215 byte (~16 MB)<\/li>\n\n\n\n<li>LONGBLOB: hingga 4.294.967.295 byte (~4 GB)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Pertimbangan:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Penyimpanan BLOB dalam database memudahkan backup terpusat, tapi dapat membebani I\/O.<\/li>\n\n\n\n<li>Alternatif: simpan file di storage eksternal dan rujuk path pada kolom VARCHAR.<\/li>\n\n\n\n<li>Indexing BLOB tidak efektif; gunakan untuk data biner mentah saja.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Kesimpulan\"><\/span>Kesimpulan<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Pemilihan tipe data numerik, string, date &amp; time, serta BLOB harus didasarkan pada kebutuhan presisi, rentang nilai, dan performa. Dengan memahami karakteristik masing-masing, Anda dapat merancang database yang efisien, skalabel, dan mudah dioptimasi sesuai kebutuhan aplikasi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pada setiap sistem database, tipe data memainkan peran krusial dalam menentukan bagaimana informasi disimpan, diolah, dan ditampilkan. Pemilihan tipe data yang tepat tidak hanya berpengaruh pada akurasi dan konsistensi, tapi juga pada kinerja dan efisiensi penyimpanan. Artikel ini mengupas empat kategori utama: numerik, karakter\/string, date &amp; time, dan BLOB. Setiap pembahasan dilengkapi dengan contoh penggunaan, [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":4348,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[24,114,23,45],"class_list":["post-4247","post","type-post","status-publish","format-standard","has-post-thumbnail","category-informasi","tag-database","tag-programming","tag-server","tag-website"],"_links":{"self":[{"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/posts\/4247","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/comments?post=4247"}],"version-history":[{"count":3,"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/posts\/4247\/revisions"}],"predecessor-version":[{"id":4351,"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/posts\/4247\/revisions\/4351"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/media\/4348"}],"wp:attachment":[{"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/media?parent=4247"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/categories?post=4247"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/tags?post=4247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}