1. Apa itu TINYINT di MySQL?
TINYINT
di MySQL adalah tipe data yang digunakan untuk menyimpan bilangan bulat yang sangat kecil. TINYINT
menggunakan 1 byte (8 bit) memori, dengan rentang nilai dari -128
hingga 127
untuk signed, dan dari 0
hingga 255
untuk unsigned. TINYINT sering digunakan untuk menyimpan angka kecil atau nilai boolean secara efisien.
Karakteristik TINYINT
- Efisiensi Memori: Karena hanya menggunakan 1 byte,
TINYINT
lebih hemat memori dibandingkan tipe integer lain sepertiINT
atauBIGINT
. - Signed dan Unsigned: Dengan signed, nilai negatif bisa disimpan. Dengan unsigned, jangkauan nilai positif menjadi lebih luas.
Contoh Penggunaan TINYINT
Contoh berikut membuat tabel dengan kolom TINYINT
untuk menyimpan angka kecil atau flag.
CREATE TABLE user_status (
user_id INT PRIMARY KEY,
is_active TINYINT(1) NOT NULL DEFAULT 0
);
Pada contoh ini, kolom is_active
didefinisikan sebagai TINYINT(1)
untuk mengelola status aktif pengguna. Nilai 0
berarti “tidak aktif”, sedangkan 1
berarti “aktif”.
2. Kapan Menggunakan TINYINT
TINYINT
sangat cocok untuk menyimpan angka kecil atau nilai boolean. Tipe data ini sering dipakai untuk menghemat storage dan meningkatkan performa database.
Sebagai Nilai Boolean
Karena MySQL tidak memiliki tipe khusus BOOLEAN
, biasanya TINYINT(1)
digunakan sebagai gantinya. Umumnya, 0
dianggap “false” dan 1
dianggap “true”. Dengan cara ini, flag dapat dikelola dengan mudah.
UPDATE user_status SET is_active = NOT is_active WHERE user_id = 1;
Pada contoh ini, nilai is_active
pengguna tertentu akan dibalik (toggle) dari 0 ke 1 atau sebaliknya.
Mengelola Angka Kecil
Misalnya, untuk menyimpan jumlah stok barang yang jumlahnya tidak lebih dari 255, kita bisa menggunakan TINYINT UNSIGNED
. Dengan begitu, nilai disimpan dalam jangkauan yang efisien tanpa membuang memori.

3. Perbandingan TINYINT dengan Tipe Integer Lain
MySQL menyediakan berbagai tipe integer, dan TINYINT
adalah yang terkecil. Sebaliknya, INT
atau BIGINT
mampu menyimpan angka dalam rentang jauh lebih besar. Berikut perbandingannya:
Perbedaan dengan INT
INT
menggunakan 4 byte dengan rentang -2147483648
hingga 2147483647
, sedangkan TINYINT
hanya menggunakan 1 byte dengan rentang -128
hingga 127
(signed) atau 0
hingga 255
(unsigned). Dengan memilih TINYINT, kita bisa menghemat memori untuk data dengan rentang kecil.
Perbandingan dengan Integer Kecil Lain
Selain TINYINT
, ada juga SMALLINT
(2 byte), MEDIUMINT
(3 byte), dan lainnya. Masing-masing memiliki rentang angka yang berbeda sesuai ukuran byte. Pemilihan tipe yang tepat akan mempengaruhi efisiensi database.
4. Penggunaan Signed vs Unsigned
Dalam MySQL, TINYINT
bisa didefinisikan sebagai signed atau unsigned. Memahami perbedaannya akan membantu mengelola data dengan lebih efisien.
Keuntungan TINYINT Unsigned
TINYINT UNSIGNED
menyimpan angka dari 0
hingga 255
. Tipe ini ideal untuk data yang tidak mungkin bernilai negatif, seperti umur pengguna atau jumlah barang.
Keuntungan TINYINT Signed
TINYINT
signed menyimpan angka dari -128
hingga 127
. Tipe ini berguna untuk data yang memungkinkan nilai negatif, misalnya suhu atau perbedaan nilai.

5. Contoh Penggunaan TINYINT
Berikut contoh tabel untuk menyimpan jumlah produk dengan TINYINT
:
CREATE TABLE products (
product_id INT PRIMARY KEY,
quantity TINYINT UNSIGNED NOT NULL
);
Pada contoh ini, kolom quantity
menggunakan TINYINT UNSIGNED
sehingga mampu menyimpan nilai hingga 255
. Dengan tambahan NOT NULL
, setiap baris wajib memiliki nilai.
TINYINT juga sering digunakan untuk mengelola status pengguna atau flag lain dengan cara yang efisien. Dalam database dengan jumlah data besar, tipe ini dapat meningkatkan performa keseluruhan.
6. Kesimpulan dan Cara Terbaik Menggunakan TINYINT
TINYINT
adalah tipe data yang sangat hemat memori di MySQL, ideal untuk menyimpan angka kecil dan flag. Dengan menggunakannya untuk nilai boolean atau angka berskala kecil, kita bisa mengoptimalkan penggunaan storage sekaligus meningkatkan performa database.