

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Kondisi dan filter ekspresi, operator, dan fungsi di DynamoDB
<a name="Expressions.OperatorsAndFunctions"></a>

Untuk memanipulasi data dalam tabel DynamoDB, Anda menggunakan,, dan operasi`PutItem`. `UpdateItem` `DeleteItem` Untuk operasi manipulasi data ini, Anda dapat menentukan ekspresi kondisi untuk menentukan item mana yang harus dimodifikasi. Jika ekspresi kondisi dievaluasi ke true, operasi berhasil. Jika tidak, operasi gagal.

Bagian ini mencakup fungsi dan kata kunci bawaan untuk menulis ekspresi filter dan ekspresi kondisi di Amazon DynamoDB. Untuk informasi lebih rinci mengenai fungsi dan pemrograman dengan DynamoDB, lihat [Pemrograman dengan DynamoDB dan AWS SDKs](Programming.md) dan [Referensi API DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/).

**Topics**
+ [Sintaks untuk ekspresi filter dan kondisi](#Expressions.OperatorsAndFunctions.Syntax)
+ [Membuat perbandingan](#Expressions.OperatorsAndFunctions.Comparators)
+ [Fungsi](#Expressions.OperatorsAndFunctions.Functions)
+ [Evaluasi logika](#Expressions.OperatorsAndFunctions.LogicalEvaluations)
+ [Tanda kurung](#Expressions.OperatorsAndFunctions.Parentheses)
+ [Prioritas dalam kondisi](#Expressions.OperatorsAndFunctions.Precedence)

## Sintaks untuk ekspresi filter dan kondisi
<a name="Expressions.OperatorsAndFunctions.Syntax"></a>

Dalam ringkasan sintaks berikut, *operand* dapat berupa sebagai berikut: 
+ Nama atribut tingkat atas, seperti `Id`, `Title`, `Description`, atau `ProductCategory`
+ Jalur dokumen yang mereferensikan atribut bersarang

```
condition-expression ::=
      operand comparator operand
    | operand BETWEEN operand AND operand
    | operand IN ( operand (',' operand (, ...) ))
    | function
    | condition AND condition
    | condition OR condition
    | NOT condition
    | ( condition )

comparator ::=
    =
    | <>
    | <
    | <=
    | >
    | >=

function ::=
    attribute_exists (path)
    | attribute_not_exists (path)
    | attribute_type (path, type)
    | begins_with (path, substr)
    | contains (path, operand)
    | size (path)
```

## Membuat perbandingan
<a name="Expressions.OperatorsAndFunctions.Comparators"></a>

Gunakan komparator ini untuk membandingkan operan dengan nilai tunggal:
+ `a = b`Benar jika *a* sama dengan*b*.
+ `a <> b`Benar jika *a* tidak sama dengan*b*.
+ `a < b`Benar jika *a* kurang dari*b*.
+ `a <= b`Benar jika *a* kurang dari atau sama dengan*b*.
+ `a > b`Benar jika *a* lebih besar dari*b*.
+ `a >= b`Benar jika *a* lebih besar dari atau sama dengan*b*.

Gunakan kata kunci `BETWEEN` dan `IN` untuk membandingkan operan dengan rentang nilai atau daftar nilai yang disebutkan:
+ `a BETWEEN b AND c`Benar jika *a* lebih besar dari atau sama dengan*b*, dan kurang dari atau sama dengan*c*.
+ `a IN (b, c, d) `— Benar jika *a* sama dengan nilai apa pun dalam daftar—misalnya, salah satu dari, *b**c*, atau. *d* Daftar ini dapat berisi hingga 100 nilai, dipisahkan dengan koma.

## Fungsi
<a name="Expressions.OperatorsAndFunctions.Functions"></a>

Gunakan fungsi berikut untuk menentukan apakah atribut berada dalam item, atau untuk mengevaluasi nilai atribut. Nama fungsi ini peka huruf besar/kecil. Untuk atribut bersarang, Anda harus menyediakan jalur dokumen yang lengkap.


****  

| Fungsi | Deskripsi | 
| --- | --- | 
|  `attribute_exists (path)`  | True jika item berisi atribut yang ditentukan oleh `path`. Contoh: Periksa apakah item dalam tabel `Product` memiliki tampilan tampak samping. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html)  | 
|  `attribute_not_exists (path)`  | True jika atribut yang ditentukan oleh `path` tidak ada dalam item. Contoh: Periksa apakah item memiliki atribut `Manufacturer`. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html)  | 
|  `attribute_type (path, type)`  |  True jika atribut di jalur yang ditentukan merupakan jenis daya tertentu. Parameter `type` harus salah satu dari hal berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html) Anda harus menggunakan nilai atribut ekspresi untuk parameter `type`. Contoh: Periksa apakah atribut `QuantityOnHand` berjenis Daftar. Dalam contoh ini, `:v_sub` adalah placeholder untuk string `L`. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html) Anda harus menggunakan nilai atribut ekspresi untuk parameter `type`.   | 
|  `begins_with (path, substr)`  |  True jika atribut yang ditentukan oleh `path` dimulai dengan substring tertentu. Contoh: Periksa apakah beberapa karakter pertama dari URL gambar tampilan depan adalah `http://`. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html) Nilai atribut ekspresi `:v_sub` adalah placeholder untuk `http://`.  | 
|  `contains (path, operand)`  | True jika atribut yang ditentukan oleh `path` adalah salah satu hal berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html) Jika atribut yang ditentukan oleh `path` adalah `String`, `operand` harus `String`. Jika atribut yang ditentukan oleh `path` adalah `Set`, `operand` harus merupakan jenis elemen set. Jalan dan operan harus berbeda. Artinya, `contains (a, a)` mengembalikan kesalahan. Contoh: Periksa apakah atribut `Brand` berisi substring `Company`. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html) Nilai atribut ekspresi `:v_sub` adalah placeholder untuk `Company`. Contoh: Periksa apakah produk tersedia dalam warna merah. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html) Nilai atribut ekspresi `:v_sub` adalah placeholder untuk `Red`. | 
|  `size (path)`  | Mengembalikan angka yang mewakili ukuran atribut ini. Berikut ini adalah jenis daya yang valid untuk digunakan dengan `size`.  Jika atribut adalah jenis `String`, `size` menampilkan panjang string. Contoh: Periksa apakah string `Brand` kurang dari atau sama dengan 20 karakter. Nilai atribut ekspresi `:v_sub` adalah placeholder untuk `20`. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html)  Jika atribut adalah jenis `Binary`, `size` menghasilkan jumlah byte dalam nilai atribut. Contoh: Misalkan item `ProductCatalog` memiliki atribut binari yang disebut `VideoClip` yang berisi video singkat dari produk yang digunakan. Ekspresi berikut memeriksa apakah `VideoClip` melebihi 64.000 byte. Nilai atribut ekspresi `:v_sub` adalah placeholder untuk `64000`. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html)  Jika atribut adalah jenis daya `Set`, `size` menghasilkan jumlah elemen dalam set.  Contoh: Periksa apakah produk tersedia dalam lebih dari satu warna. Nilai atribut ekspresi `:v_sub` adalah placeholder untuk `1`. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html)  Jika atribut adalah jenis `List` atau `Map`, `size` menghasilkan jumlah elemen turunan. Contoh: Periksa apakah jumlah ulasan `OneStar` telah melampaui ambang batas tertentu. Nilai atribut ekspresi `:v_sub` adalah placeholder untuk `3`. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html)  | 

## Evaluasi logika
<a name="Expressions.OperatorsAndFunctions.LogicalEvaluations"></a>

Gunakan kata kunci `AND`, `OR`, dan `NOT` untuk melakukan evaluasi logika. Dalam daftar berikut, *a* dan *b* mewakili kondisi yang akan dievaluasi.
+ `a AND b`Benar jika *a* dan *b* keduanya benar.
+ `a OR b`Benar jika salah satu *a* atau *b* (atau keduanya) benar.
+ `NOT a`Benar jika *a* salah. Salah jika *a* benar.

Berikut ini adalah contoh kode AND dalam suatu operasi.

`dynamodb-local (*)> select * from exprtest where a > 3 and a < 5;`

## Tanda kurung
<a name="Expressions.OperatorsAndFunctions.Parentheses"></a>

Gunakan tanda kurung untuk mengubah prioritas evaluasi logis. Misalnya, anggaplah bahwa kondisi *a* dan *b* benar, dan kondisi *c* itu salah. Ekspresi berikut bernilai True:
+ `a OR b AND c`

Namun, jika Anda mengapit kondisi dalam tanda kurung, kondisi tersebut akan dievaluasi terlebih dahulu. Misalnya, nilai berikut bernilai false:
+  `(a OR b) AND c`

**catatan**  
Anda dapat menyarangkan tanda kurung dalam sebuah ekspresi. Bagian paling dalam akan dievaluasi terlebih dahulu.

Berikut ini adalah contoh kode dengan tanda kurung dalam evaluasi logis.

`dynamodb-local (*)> select * from exprtest where attribute_type(b, string) or ( a = 5 and c = “coffee”);`

## Prioritas dalam kondisi
<a name="Expressions.OperatorsAndFunctions.Precedence"></a>

 DynamoDB mengevaluasi kondisi dari kiri ke kanan menggunakan aturan prioritas berikut:
+ `= <> < <= > >=`
+ `IN`
+ `BETWEEN`
+ `attribute_exists attribute_not_exists begins_with contains`
+ Tanda kurung
+ `NOT`
+ `AND`
+ `OR`