Apa Itu MySQL TINYINT? Rentang, Penggunaan UNSIGNED, dan Contoh Praktis

1. Apa Itu MySQL TINYINT?

Di MySQL, TINYINT adalah tipe data yang digunakan untuk menyimpan bilangan bulat yang sangat kecil. TINYINT menggunakan 1 byte (8 bit) memori dan dapat menyimpan nilai dari -128 hingga 127 bila bertanda (signed), atau dari 0 hingga 255 bila tidak bertanda (unsigned). TINYINT biasanya digunakan untuk mengelola nilai numerik kecil dan flag Boolean secara efisien.

Fitur-fitur TINYINT

  • Efisiensi memori : Karena TINYINT hanya menggunakan 1 byte, ia menghemat lebih banyak memori dibandingkan tipe integer lain seperti INT atau BIGINT.
  • Opsi signed dan unsigned : TINYINT yang bertanda dapat menangani nilai negatif, sementara menggunakan opsi unsigned memperluas rentang nilai positif maksimum.

Contoh Penggunaan TINYINT

Pada contoh berikut, sebuah tabel dibuat menggunakan tipe TINYINT untuk mengelola nilai numerik kecil dan flag.

CREATE TABLE user_status (
    user_id INT PRIMARY KEY,
    is_active TINYINT(1) NOT NULL DEFAULT 0
);

Dalam contoh ini, kolom is_active didefinisikan sebagai TINYINT(1) dan digunakan untuk mengelola apakah seorang pengguna aktif. Nilai 0 menunjukkan “tidak aktif,” dan 1 menunjukkan “aktif.”

2. Kasus Penggunaan Praktis untuk TINYINT

TINYINT adalah tipe data yang ideal untuk mengelola bilangan bulat kecil dan nilai Boolean. Tipe ini banyak digunakan untuk memaksimalkan kinerja basis data dan mengurangi konsumsi penyimpanan.

Menggunakan TINYINT sebagai Nilai Boolean

Karena MySQL tidak memiliki tipe BOOLEAN khusus, TINYINT(1) biasanya digunakan sebagai pengganti untuk mengelola nilai Boolean. Secara umum, 0 mewakili “false” dan 1 mewakili “true.” Pendekatan ini memudahkan pengelolaan flag.

UPDATE user_status SET is_active = NOT is_active WHERE user_id = 1;

Dalam contoh ini, nilai is_active untuk pengguna yang ditentukan diubah. Hal ini memungkinkan pergantian nilai Boolean secara sederhana.

Mengelola Nilai Numerik Kecil

Sebagai contoh, TINYINT juga efektif ketika mengelola bilangan bulat dalam rentang yang sangat kecil, seperti jumlah persediaan produk. Jika jumlah produk tidak melebihi 255, menggunakan TINYINT UNSIGNED memungkinkan pengelolaan data yang cukup dalam rentang numerik tanpa tanda.

3. Membandingkan TINYINT dengan Tipe Integer Lain

MySQL menyediakan berbagai tipe integer, dan TINYINT adalah yang terkecil di antara mereka. Sebaliknya, INT dan BIGINT dapat menyimpan rentang nilai yang jauh lebih besar. Berikut perbedaan antara TINYINT dan tipe integer utama lainnya.

Perbedaan antara INT dan TINYINT

INT menggunakan 4 byte dan mendukung nilai dari -2147483648 hingga 2147483647, sedangkan TINYINT hanya menggunakan 1 byte dan mendukung nilai dari -128 hingga 127 (signed) atau 0 hingga 255 (unsigned). Oleh karena itu, dengan menggunakan TINYINT, Anda dapat mengelola data dalam rentang yang sesuai secara efisien sambil menghemat memori.

Perbandingan dengan Tipe Integer Kecil Lain

Selain TINYINT, MySQL menyediakan tipe data seperti SMALLINT (2 byte) dan MEDIUMINT (3 byte). Rentang numerik berbeda sesuai dengan ukuran byte masing-masing tipe, sehingga pemilihan tipe data yang tepat sangat penting.

4. Memilih antara Signed dan Unsigned

Di MySQL, tipe TINYINT dapat didefinisikan sebagai signed atau unsigned. Memahami perbedaannya dan memilih dengan tepat menghasilkan pengelolaan data yang lebih efisien.

Keuntungan TINYINT Unsigned

TINYINT tanpa tanda (TINYINT UNSIGNED) mendukung nilai dari 0 hingga 255, sehingga berguna ketika nilai negatif tidak diperlukan. Misalnya, saat menyimpan usia pengguna atau kuantitas produk—di mana nilai negatif tidak diperlukan—menggunakan UNSIGNED memperluas rentang yang dapat digunakan dan memungkinkan pengelolaan data yang lebih efisien.

Keuntungan TINYINT Signed

TINYINT bertanda (signed) mendukung nilai dari -128 hingga 127, sehingga cocok ketika nilai negatif diperlukan. Misalnya, untuk data seperti suhu di mana nilai negatif dapat terjadi, opsi signed lebih tepat.

5. Contoh Penggunaan TINYINT

Berikut adalah contoh cara menggunakan TINYINT untuk mengelola data dalam basis data. Misalnya, saat mengelola kuantitas produk, Anda dapat mendefinisikan tabel sebagai berikut:

CREATE TABLE products (
    product_id INT PRIMARY KEY,
    quantity TINYINT UNSIGNED NOT NULL
);

Dalam contoh ini, inventaris produk quantity dikelola sebagai TINYINT tak bertanda, memungkinkan nilai hingga 255. Selain itu, dengan menentukan NOT NULL, Anda memastikan bahwa nilai selalu diatur.

Anda juga dapat menggunakan TINYINT untuk mengelola flag status pengguna secara sederhana dan efisien. Khususnya saat menangani volume data yang besar, penggunaan TINYINT dapat meningkatkan kinerja basis data secara keseluruhan.

6. Ringkasan dan Praktik Terbaik

TINYINT adalah salah satu tipe data paling efisien dalam penggunaan memori di MySQL dan ideal untuk mengelola bilangan bulat kecil serta flag secara efisien. Dengan menggunakan TINYINT untuk nilai Boolean atau rentang numerik kecil, Anda dapat mengoptimalkan penggunaan penyimpanan serta kinerja basis data.