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.