

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

# Bidang GraphQL
<a name="graphql-fields"></a>

Bidang ada dalam lingkup tipe dan menyimpan nilai yang diminta dari layanan GraphQL. Ini sangat mirip dengan variabel dalam bahasa pemrograman lainnya. Misalnya, berikut adalah tipe `Person` objek:

```
type Person {                                  
   name: String                                  
   age: Int
}
```

Bidang dalam hal ini masing-masing adalah `name` `age` `String` dan memegang `Int` nilai dan. Bidang objek seperti yang ditunjukkan di atas dapat digunakan sebagai input di bidang (operasi) kueri dan mutasi Anda. Misalnya, lihat `Query` di bawah ini:

```
type Query {                                   
  people: [Person]
}
```

`people`Bidang meminta semua instance `Person` dari sumber data. Saat Anda menambahkan atau mengambil `Person` di server GraphQL Anda, Anda dapat mengharapkan data mengikuti format jenis dan bidang Anda, yaitu, struktur data Anda dalam skema menentukan bagaimana data akan disusun dalam respons Anda:

```
}
  "data": {
    "people": [
      {
        "name": "John Smith",
        "age": "50"
      },
      {
        "name": "Andrew Miller",
        "age": "60"
      },
      .
      .
      .
    ]
  }
}
```

Bidang memainkan peran penting dalam penataan data. Ada beberapa properti tambahan yang dijelaskan di bawah ini yang dapat diterapkan ke bidang untuk penyesuaian lebih lanjut.

## Daftar
<a name="list-components"></a>

Daftar mengembalikan semua item dari jenis tertentu. Daftar dapat ditambahkan ke jenis bidang menggunakan tanda kurung`[]`: 

```
type Person { 
  name: String
  age: Int
}
type Query {                                   
  people: [Person]
}
```

Dalam`Query`, tanda kurung di sekitarnya `Person` menunjukkan bahwa Anda ingin mengembalikan semua instance `Person` dari sumber data sebagai array. Dalam tanggapan, `age` nilai `name` dan masing-masing `Person` akan dikembalikan sebagai daftar tunggal yang dibatasi:

```
}
  "data": {
    "people": [
      {
        "name": "John Smith",         # Data of Person 1
        "age": "50"
      },
      {
        "name": "Andrew Miller",      # Data of Person 2
        "age": "60"
      },
      .                               # Data of Person N
      .
      .
    ]
  }
}
```

Anda tidak terbatas pada jenis objek khusus. Anda juga dapat menggunakan daftar di bidang tipe objek biasa.

## Non-nulls
<a name="non-null-components"></a>

Non-nulls menunjukkan bidang yang tidak boleh nol dalam respons. Anda dapat mengatur bidang ke non-null dengan menggunakan `!` simbol:

```
type Person { 
  name: String!
  age: Int
}
type Query {                                   
  people: [Person]
}
```

Bid `name` ang tidak dapat secara eksplisit null. Jika Anda menanyakan sumber data dan memberikan input nol untuk bidang ini, kesalahan akan muncul.

Anda dapat menggabungkan daftar dan non-nol. Bandingkan kueri ini:

```
type Query {                                   
  people: [Person!]      # Use case 1
}

.
.
.

type Query {                                   
  people: [Person]!      # Use case 2
}

.
.
.

type Query {                                   
  people: [Person!]!     # Use case 3
}
```

Dalam kasus penggunaan 1, daftar tidak dapat berisi item null. Dalam kasus penggunaan 2, daftar itu sendiri tidak dapat disetel ke null. Dalam kasus penggunaan 3, daftar dan itemnya tidak boleh nol. Namun, bagaimanapun, Anda masih dapat mengembalikan daftar kosong.