<commit_before>---
layout: page
title: Dasar
category: basics
order: 1
lang: id
---

Setup, tipe-tipe dan operasi-operasi dasar.

{% include toc.html %}

## Setup

### Instalasi Elixir

Instruksi instalasi untuk masing-masing OS dapat dilihat di Elixir-lang.org bagian panduan [Installing Elixir](http://elixir-lang.org/install.html).

### Moda Interaktif

Elixir dilengkapi dengan `iex`, sebuah shell interaktif, yang memungkinkan kita mencoba perintah Elixir.

Untuk memulai, kita jalankan `iex`:

	Erlang/OTP {{ site.erlang.OTP }} [erts-{{ site.erlang.erts }}] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]

	Interactive Elixir (1.0.4) - press Ctrl+C to exit (type h() ENTER for help)
	iex>

## Tipe dasar

### Integer

```elixir
iex> 255
255
iex> 0xFF
255
```

Dukungan terhadap bilangan biner, oktal, dan heksadesimal sudah tersedia secara default:

```elixir
iex> 0b0110
6
iex> 0o644
420
iex> 0x1F
31
```

### Float

Dalam Elixir, bilangan tidak bulat (float) membutuhkan sebuah titik desimal setelah setidaknya satu digit; bilangan ini memiliki tingkat presisi 64 bit double precision dan mendukung `e` untuk bilangan eksponen:

```elixir
iex> 3.41
3.41
iex> .41
** (SyntaxError) iex:2: syntax error before: '.'
iex> 1.0e-10
1.0e-10
```


### Boolean

Elixir mendukung `true` and `false` sebagai nilai boolean (logika); semua nilai dianggap sama dengan `true` kecuali `false` dan `nil`:

```elixir
iex> true
true
iex> false
false
```

### Atom

Sebuah atom adalah sebuah konstanta dimana nilainya adalah namanya itu sendiri. Jika anda sudah familiar dengan Ruby, atom adalah sinonim dengan Symbol:

```elixir
iex> :foo
:foo
iex> :foo == :bar
false
```

CATATAN: Nilai boolean `true` dan `false` masing-masing adalah juga atom `:true` dan `:false`.

```elixir
iex> true |> is_atom
true
iex> :true |> is_boolean
true
iex> :true === true
true
```

### String<commit_msg>Add ID translation for #480 (#526)<commit_after>---
layout: page
title: Dasar
category: basics
order: 1
lang: id
---

Setup, tipe-tipe dan operasi-operasi dasar.

{% include toc.html %}

## Setup

### Instalasi Elixir

Instruksi instalasi untuk masing-masing OS dapat dilihat di Elixir-lang.org bagian panduan [Installing Elixir](http://elixir-lang.org/install.html).

### Moda Interaktif

Elixir dilengkapi dengan `iex`, sebuah shell interaktif, yang memungkinkan kita mencoba perintah Elixir.

Untuk memulai, kita jalankan `iex`:

	Erlang/OTP {{ site.erlang.OTP }} [erts-{{ site.erlang.erts }}] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]

	Interactive Elixir (1.0.4) - press Ctrl+C to exit (type h() ENTER for help)
	iex>

## Tipe dasar

### Integer

```elixir
iex> 255
255
iex> 0xFF
255
```

Dukungan terhadap bilangan biner, oktal, dan heksadesimal sudah tersedia secara default:

```elixir
iex> 0b0110
6
iex> 0o644
420
iex> 0x1F
31
```

### Float

Dalam Elixir, bilangan tidak bulat (float) membutuhkan sebuah titik desimal setelah setidaknya satu digit; bilangan ini memiliki tingkat presisi 64 bit double precision dan mendukung `e` untuk bilangan eksponen:

```elixir
iex> 3.41
3.41
iex> .41
** (SyntaxError) iex:2: syntax error before: '.'
iex> 1.0e-10
1.0e-10
```


### Boolean

Elixir mendukung `true` and `false` sebagai nilai boolean (logika); semua nilai dianggap sama dengan `true` kecuali `false` dan `nil`:

```elixir
iex> true
true
iex> false
false
```

### Atom

Sebuah atom adalah sebuah konstanta dimana nilainya adalah namanya itu sendiri. Jika anda sudah familiar dengan Ruby, atom adalah sinonim dengan Symbol:

```elixir
iex> :foo
:foo
iex> :foo == :bar
false
```

Nilai boolean `true` dan `false` masing-masing adalah juga atom `:true` dan `:false`.

```elixir
iex> true |> is_atom
true
iex> :true |> is_boolean
true
iex> :true === true
true
```

Nama modul dalam Elixir adalah juga atom. `MyApp.MyModule` adalah atom yang sah, walaupun modul tersebut belum dideklarasikan.

```elixir
iex> is_atom(MyApp.MyModule)
true
```

Atom juga digunakan untuk mereferensi modul dari librari erlang, termasuk apa yang sudah ada.

```elixir
iex> :crypto.rand_bytes 3
<<23, 104, 108>>
```

### String
{'fraction_non_alphanumeric': 0.12536023054755044, 'fraction_numerical': 0.030499519692603266, 'mean_word_length': 4.635994587280108, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 43, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2983321', 'n_tokens_mistral': 1855, 'n_tokens_neox': 1708, 'n_words': 521}