Home » MySQL » Menggunakan Signed Unsigned Integer dan Unsigned Zerofill SQL

Menggunakan Signed Unsigned Integer dan Unsigned Zerofill SQL

Published by Ade Kurniawan on

Unsigned Integer

Attribute Signed dan Unsigned integer seringkali tidak menjadi perhatian dalam membuat struktur tabel di MySQL. Hal ini terjadi kemungkinan disebabkan oleh ketidaktahuan tentang kegunaannya. Setelah membaca artikel ini anda akan memahami bahwa penggunaan signed dan unsigned yang tepat akan membantu database yang anda buat menjadi lebih efektif.

Efektif yang dimaksud disini berkaitan dengan kapasitas penyimpanan data. Sebagai contoh jika kolom yang akan disimpan hanya akan menampung nilai integer positif maka gunakan format yang hanya menampung nilai positif. Namun ketika ingin menampung bilangan positif dan negatif maka gunakan tipe data yang mendukung keduanya.

Langsung saja kita bahas apakah memang benar dengan memilih signed dan unsigned yang tepat dapat membuat struktur database yang dibuat menjadi lebih baik.

Contoh Signed Integer SQL

Saat membuat field di tabel dengan tipe data integer di sebuah database, tentu dengan mudah kita mengisi kolom type dengan int dan masukkan length dan kemudian selesai. Namun jika lebih teliti saat membuat database terdapat sebuah isian yaitu Attributes. Menu isian ini menyediakan opsi penerapan Signed dan Unsigned SQL.

cara set signed dan unsigned
Menu Set Attributes Signed dan Unsigned

Dengan menjadikan sebuah kolom signed integer maka kolom tersebut dapat menyimpan bilangan positif dan negatif. Kebanyakan kolom ini di abaikan saat membuat database. Jika kolom attribute di abaikan maka Secara default tipe data integer berbentuk signed. Sehingga ketika membuat kolom dengan tipe data integer dan tidak di set unsigned pada isian Attributes. Maka kolom integer dari tabel tersebut tersebut menjadi signed integer.

Merujuk pada range tipe data sql bahwa integer signed memiliki rentang antara -2147483648  hingga 2147483647 maka jika kita memasukkan angka lebih besar dari 2147483647  atau diluar range tersebut akan menemukan error sebagai berikut:

Please enter a value less than or equal to 2147483647
value max error integer

Please enter a value less than or equal to 2147483647 muncul karena nilai yang diinputkan melebihi range yang dapat ditampung signed integer.

Penggunaan signed integer berfungsi menyimpan bilangan bulat berdasarkan range yang telah kita sebutkan di atas. Range ini menyimpan bilangan positif dan negatif. Jika ingin menyimpan data dalam bentuk bilangan negatif maka sebaiknya menggunakan integer signed.

Dalam kasus di atas id supplier merupakan field yang tidak akan menyimpan bilangan negatif. Terlebih jika id_tersebut di set auto increment, maka id_supplier akan memiliki rentang antara 0 dan seterusnya. Jika kita ingin membuat struktur tabel yang lebih efektif maka sebaiknya id_supplier di set Unsigned.

Cara Membuat Unsigned Integer di MySQL

Unsigned integer (int) memiliki rentang dari 0 hingga 4294967295. Sehingga ketika memasukkan nilai 2147483648 yang sejatinya melebihi rentang yang disediakan oleh signed integer tidak akan menimbulkan error jika menggunakan unsiged. Untuk melakukan uji coba marilah kita isikan nilai 2147483648 ke kolom id_supplier dengan terebih dahulu mengubah Attributes kolom menjadi Unsigned.

Merubah Attribute Integer Menjadi Unsigned

Buka tabel supplier kemudian pilih structure dan pilih id_supplier untuk dirubah Attributenya. Pilih Unsigned dan kemudian klik save.

Menggunakan Unsigned Integer
Menggunakan Unsigned Integer

Pengujian nilai.

Masukkan nilai 2147483648 yang merupakan nilai integer di atas rentang signed integer maka pada kolom id_supplier tidak akan ditemukan error saat diinput nilai tersebut:

Testing nilai Unsigned Integer (int)

Error tidak ditemui karena kita telah merubah Attributes id_supplier menjadi Unsigned. Dengan menggunakan unsigned untuk id_supplier. Kita dapat mengalokasikan nilai dengan rentang nilai positif yang lebih banyak dibandingkan dengan signed integer.

Data Rentang tipe data integer (INT)

Signed

Unsigned

Nilai minimum

Nilai Maksimum

Nilai Minimum

Nilai Maksimum

-2147483648  

2147483647  

4294967295 

Perhatikan tabel di atas bahwa untuk integersigned hanya mampu menyimpan nilai positif separuh dari unsigned. Dengan demikian dapat disimpulkan bahwa jika anda ingin menyimpan data bilangan bulat positif saja di sebuah kolom/field, maka sebaiknya integer di set Unsigned.

Hal ini juga berlaku untuk tipe data integer jenis lainnya seperti TINYINT, SMALLINT, MEDIUMINT dan BIGINT.

Contoh Penggunaan Unsigned Zerofill

Unsigned Zerofill digunakan untuk mengisi integer dengan 0 dan membuat semua bilangan yang berada di sebuah kolom menjadi sama.

Contoh zerofill

00001
00002
00003
00004
00005

Format Unsigned zerofill ini juga dapat diimplementasikan di tipe data integer lainnya seperti TINYINT, SMALLINT.dan lainnya.

kita ambil contoh SMALLINT untuk unsigned datanya memiliki rentang dari 0 – 255 dan mari dicobakan membuatnya di MySQL phpMyadmin

Buka kembali database dan set id_supplier menjadi TINYINT untuk atribute pilih Unsigned Zerofill. (ctt.Untuk mengubah dari int ke tinyint silahkan kosongkan terlebih dahulu data yang telah di inputkan).

Output data tabel tinyint(3)

tinyint(5)

Perhatikan ke dua gambar di atas. meskipun rentang untuk data unsigned tinyint hanya mempu berjumlah 3 digit (255) tapi kita bisa membuat data tampil menjadi lima digit. Length tipe data tida berpengaruh terhadap nilai maksimal yang ditampung data. Dengan kata lain tinyint hanya akan mampu menimpan data maksimal 00255.


0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *