Pemrograman Fungsional - Tipe Data
Tipe data mendefinisikan tipe nilai yang bisa dimiliki sebuah objek dan operasi apa yang bisa dilakukan padanya. Tipe data harus dideklarasikan terlebih dahulu sebelum digunakan. Bahasa pemrograman yang berbeda mendukung tipe data yang berbeda. Sebagai contoh,
- C mendukung char, int, float, long, dll.
- Python mendukung String, List, Tuple, dll.
Dalam arti luas, ada tiga tipe tipe data -
Fundamental data types- Ini adalah tipe data yang telah ditentukan yang digunakan oleh programmer secara langsung untuk menyimpan hanya satu nilai sesuai kebutuhan, yaitu tipe integer, tipe karakter, atau tipe floating. Misalnya - int, char, float, dll.
Derived data types- Tipe data ini diturunkan menggunakan tipe data built-in yang dirancang oleh programmer untuk menyimpan beberapa nilai dengan tipe yang sama sesuai kebutuhan mereka. Misalnya - Array, Pointer, fungsi, daftar, dll.
User-defined data types- Tipe data ini diturunkan menggunakan tipe data bawaan yang digabungkan menjadi satu tipe data untuk menyimpan beberapa nilai dari tipe yang sama atau tipe berbeda atau keduanya sesuai kebutuhan. Misalnya - Kelas, Struktur, dll.
Tipe Data Didukung oleh C ++
Tabel berikut mencantumkan tipe data yang didukung oleh C ++ -
Tipe data | Ukuran | Jarak |
---|---|---|
arang | 1 byte | -128 hingga 127 atau 0 hingga 255 |
unsigned char | 1 byte | 0 sampai 255 |
karakter bertanda tangan | 1 byte | -128 hingga 127 |
int | 4 byte | -2147483648 hingga 2147483647 |
unsigned int | 4 byte | 0 hingga 4294967295 |
ditandatangani int | 4 byte | -2147483648 hingga 2147483647 |
int pendek | 2 byte | -32768 hingga 32767 |
int pendek unsigned | 2 byte | 0 hingga 65.535 |
ditandatangani int pendek | 2 byte | -32768 hingga 32767 |
int panjang | 4 byte | -2.147.483.648 hingga 2.147.483.647 |
ditandatangani int panjang | 4 byte | -2.147.483.648 hingga 2.147.483.647 |
int panjang unsigned | 4 byte | 0 sampai 4.294.967.295 |
mengapung | 4 byte | +/- 3.4e +/- 38 (~ 7 digit) |
dua kali lipat | 8 byte | +/- 1.7e +/- 308 (~ 15 digit) |
ganda panjang | 8 byte | +/- 1.7e +/- 308 (~ 15 digit) |
Jenis Data yang Didukung oleh Java
Tipe data berikut ini didukung oleh Java -
Tipe data | Ukuran | Jarak |
---|---|---|
byte | 1 byte | -128 hingga 127 |
arang | 2 byte | 0 hingga 65.536 |
pendek | 2 byte | -32,7688 hingga 32,767 |
int | 4 byte | -2.147.483.648 hingga 2.147.483.647 |
panjang | 8 byte | -9.223.372.036.854.775.808 hingga 9.223.372.036.854.775.807 |
mengapung | 4 byte | -2147483648 hingga 2147483647 |
dua kali lipat | 8 byte | + 9.223 * 1018 |
Boolean | 1 bit | Benar atau salah |
Tipe Data Didukung oleh Erlang
Pada bagian ini, kita akan membahas tipe data yang didukung oleh Erlang, yang merupakan bahasa pemrograman fungsional.
Jumlah
Erlang mendukung dua jenis literal numerik, yaitu integer dan float. Lihatlah contoh berikut yang menunjukkan bagaimana menambahkan dua nilai integer -
-module(helloworld).
-export([start/0]).
start() ->
io:fwrite("~w",[5+4]).
Ini akan menghasilkan keluaran berikut -
9
Atom
Sebuah atomadalah string yang nilainya tidak dapat diubah. Ini harus dimulai dengan huruf kecil dan dapat berisi karakter alfanumerik dan karakter khusus. Ketika sebuah atom berisi karakter khusus, maka atom itu harus diapit di dalam tanda kutip tunggal ('). Lihat contoh berikut untuk memahami dengan lebih baik.
-module(helloworld).
-export([start/0]).
start()->
io:fwrite(monday).
Ini akan menghasilkan keluaran sebagai berikut -
monday
Note- Coba ubah atom menjadi "Senin" dengan huruf besar "M". Program akan menghasilkan kesalahan.
Boolean
Tipe data ini digunakan untuk menampilkan hasil sebagai baik true atau false. Lihat contoh berikut. Ini menunjukkan bagaimana membandingkan dua bilangan bulat.
-module(helloworld).
-export([start/0]).
start() ->
io:fwrite(5 =< 9).
Ini akan menghasilkan keluaran sebagai berikut -
true
Bit String
String bit digunakan untuk menyimpan area memori yang tidak diketik. Lihat contoh berikut. Ini menunjukkan bagaimana mengubah 2 bit dari string bit menjadi daftar.
-module(helloworld).
-export([start/0]).
start() ->
Bin2 = <<15,25>>,
P = binary_to_list(Bin2),
io:fwrite("~w",[P]).
Ini akan menghasilkan keluaran sebagai berikut -
[15,25]
Tuple
Tupel adalah tipe data gabungan yang memiliki jumlah suku tetap. Setiap istilah tupel dikenal sebagaielement. Jumlah elemen adalah ukuran tupel. Contoh berikut menunjukkan bagaimana mendefinisikan tupel dari 5 istilah & mencetak ukurannya.
-module(helloworld).
-export([start/0]).
start() ->
K = {abc,50,pqr,60,{xyz,75}} ,
io:fwrite("~w",[tuple_size(K)]).
Ini akan menghasilkan keluaran sebagai berikut -
5
Peta
Peta adalah tipe data gabungan dengan sejumlah variabel asosiasi nilai kunci. Setiap asosiasi nilai kunci di peta disebut sebagaiassociation-pair. Itukey dan value bagian dari pasangan disebut elements. Jumlah pasangan asosiasi dikatakan sebagai ukuran peta. Contoh berikut menunjukkan bagaimana mendefinisikan peta dari 3 pemetaan dan mencetak ukurannya.
-module(helloworld).
-export([start/0]).
start() ->
Map1 = #{name => 'abc',age => 40, gender => 'M'},
io:fwrite("~w",[map_size(Map1)]).
Ini akan menghasilkan keluaran sebagai berikut -
3
Daftar
Daftar adalah tipe data majemuk yang memiliki jumlah suku yang bervariasi. Setiap istilah dalam daftar disebut elemen. Jumlah elemen dikatakan sebagai panjang daftar. Contoh berikut menunjukkan cara menentukan daftar 5 item dan mencetak ukurannya.
-module(helloworld).
-export([start/0]).
start() ->
List1 = [10,15,20,25,30] ,
io:fwrite("~w",[length(List1)]).
Ini akan menghasilkan keluaran sebagai berikut -
5
Note - Tipe data 'String' tidak ditentukan di Erlang.