Pinned

Tipe Data Long Bahasa C Beserta Fungsi dan Perbedaan Kebutuhannya

Pada bahasa C dan C++, terdapat empat tipe data berbeda yang tersedia untuk menampun nilai integer, yaitu, shortintlong, dan long long. Setiap tipe data tersebut membutuhkan jumlah alokasi memori yang berbeda.

6 Jenis Perbedaan Kebutuhan Tipe Data Long pada Bahasa C
Ilustrasi Tipe Data Long Bahasa C

Sebelum memahami lebih dalam materi tentang Tipe Data Long Bahasa C Beserta Fungsi dan Perbedaan Kebutuhannya, terlebih dahulu pelajari materi tentang: Perbandingan Nilai Float Bahasa C Terhadap Nilai Lainnya [klik], Integer Promotion Bahasa C dan Fungsinya [klik], dan Variabel Dua Pilihan pada Bahasa C Menggunakan Bool [klik].

Tetapi terdapat sebuah perbedaan, dimana tipe data long adalah tipe data yang tidak cocok dengan tipe data lainnya. Tipe data long memiliki variasi dari segi arsitektur, sistem operasi, dan bahkan dengan kompilator yang digunakan. Pada beberapa sistem tipe data long akan bersifat seperti tipe data int atau long long seperti berikut ini:

  • OS                 Architecture                  Size
  • Windows       IA-32                               4 bytes
  • Windows       Intel® 64 or IA-64        4 bytes
  • Linux             IA-32                               4 bytes
  • Linux             Intel® 64 or IA-64        8 bytes
  • Mac OS X     IA-32                               4 bytes
  • Mac OS X     Intel® 64 or IA-64        8 bytes


Namun hal tersebut tetap bervariasi tergantung dari kompilator yang digunakan. Namun, sebelum memahami hal tersebut, terlebih dahulu pahami beberapa konsep tentang cross compiler.

Kompilator silang atau cross compiler adalah kompilator yang mampu menciptakan kode eksekusi dari platform lain ketika kompilator sedang dijalankan. Sebagai contoh, jika dilakukan kompilasi program pada arsitektur komputer 64 bit pada Ubuntu maka akan menghasilkan program sebagai berikut.

Contoh:

// Kebutuhan tipe data long

// pada bahasa C dan C++

 

// Program bahasa C untuk

// memeriksa ukuran dari

// tipe data 'long'

 

// tipe data

#include<stdio.h>

 

int main()

{

printf("Ukuran dari int ="

" %ld\n", sizeof(int));

 

printf("Ukuran dari long ="

" %ld\n", sizeof(long));

 

printf("Ukurand dari long long ="

" %ld", sizeof(long long));

}

Output in 32 bit gcc compiler:
Ukuran dari int = 4
Ukukran dari long = 4
Ukuran dari long long = 8

Output in 64 bit gcc compiler:
Ukuran dari int = 4
Ukuran dari long = 8
Ukuran dari long long = 8

Dari contoh program tersebut disimpulkan bahwa ukuran dari tipe data long bervariasi tergantung dari tipe kompilator yang digunakan untuk melakukan kompilasi program.

CPU memanggil data dari RAM dengan memberikan alamat dari lokasi menuju MAR (Memory Address Register). Ketika lokasi telah ditemukan maka data akan dikirim menuju MDR (Memory Data Register). Data tersebut akan disimpan dari Register pada Processor untuk proses tahap lanjut. Hal ini lah yang menentukan kenapa Data BUS menentukan ukuran dari Register pada prosesor. Sekarang, pada register 32 bit akan dipanggil data dengan ukuran 4byte saja, pada waktu bersamaan. Dan jika ukuran data melebihi 32 bit, maka akan membutuhkan dua kali pengambilan berulang untuk bisa mendapatkan data tersebut. Hal ini akan memperlambat kecepatan dari mesin 32 bit dibanding dengan 64bit, yang dapat menyelesaikan operasi dalam satu kali pengambilan data saja. Sehingga untuk ukuran data yang lebih kecil, tidak akan membuat perbedaan jika prosesor melakukan clock pada kecepatan yang sama. Kompilator dirancang untuk melakukan generate kode yang paling efisien untuk target mesin arsitektur tertentu.

Sehingga, ukuran sebuah variabel bergantung pada kompilator masing-masing yang digunakan untuk mengkompilasi program, karena kompilator hanya menghasilkan istruksi berdasarkan arsitektur target dan arsitektur sistem yang berkaitan dengan ukuran bus data dan transfernya.

Saran: Jika memiliki tipe integer dengan ukuran yang sama pada semua platform adalah hal yang penting, maka sebaiknya mengganti tipe data long menjadi int atau long long. Karena ukuran dari tipe data int adalah 4byte dan ukuran dari long long adalah 8byte untuk semua kombinasi sistem operasi, arsitektur, dan kompilator.

6 komentar:

  1. Menurut sara penggunaan bahasa C memang lebih baik untuk program-program yang memang membutuhkan kapasitas penyimpanan dalam jumlah kecil, seperti arduino dan mikrokontroler lainnya.

    BalasHapus
    Balasan
    1. Untuk pemrograman yang membutuhkan ruang penyimpanan atau ram dalam skala besar sebaiknya memang sudah tidak menggunakan program dalam bahasa C,

      Hapus
  2. Ngapain juga buat aplikasi sekala besar masih pake pemrograman berbasis skrip, pake yang sudah OOP dong biar bisa mengembangkan GUI

    BalasHapus
  3. Sebenarnya tidak bisa dikatakan untuk beberapa bahasa pemrograman yang masih berbasis skrip sudah ketinggalan jaman, soalnya dalam pengembangan suatu sistem tetap saja ada bentuk permasalahan yang memang lebih mengutamakan kecepatan daripada kenyamanan tampilan,

    contohnya, program untuk pengembangan jaringan.

    BalasHapus
  4. Contoh nya hacker bro, sebagian besar dari mereka masig mengembangan aplikasi yang berbasis script soalnya lebih ringant, dan memang sebagian besar aplikasi yang dikembangkan memang lebih fokus pada kecepatan akses dan hasil daripada kenyamanan pengguna.

    BalasHapus

Hubungi admin melalui Wa : +62-896-2514-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -