# SOME DESCRIPTIVE TITLE. # Copyright (C) 2001-2019, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: # oon arfiandwi , 2019 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-01 14:24+0000\n" "PO-Revision-Date: 2017-02-16 23:40+0000\n" "Last-Translator: oon arfiandwi , 2019\n" "Language-Team: Indonesian (https://www.transifex.com/python-doc/teams/5390/id/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" #: ../../tutorial/datastructures.rst:5 msgid "Data Structures" msgstr "Struktur Data" #: ../../tutorial/datastructures.rst:7 msgid "" "This chapter describes some things you've learned about already in more " "detail, and adds some new things as well." msgstr "" "Bab ini menjelaskan beberapa hal yang telah Anda pelajari secara lebih " "rinci, dan menambahkan beberapa hal baru juga." #: ../../tutorial/datastructures.rst:13 msgid "More on Lists" msgstr "Lebih Lanjut tentang Daftar *Lists*" #: ../../tutorial/datastructures.rst:15 msgid "" "The list data type has some more methods. Here are all of the methods of " "list objects:" msgstr "" "Tipe data daftar *list* memiliki beberapa metode lagi. Berikut ini semua " "metode dari objek daftar *list*:" #: ../../tutorial/datastructures.rst:22 msgid "" "Add an item to the end of the list. Equivalent to ``a[len(a):] = [x]``." msgstr "" "Tambahkan item ke akhir daftar *list*. Setara dengan ``a[len(a):] = [x]``." #: ../../tutorial/datastructures.rst:28 msgid "" "Extend the list by appending all the items from the iterable. Equivalent to" " ``a[len(a):] = iterable``." msgstr "" "Perpanjang daftar *list* dengan menambahkan semua item dari *iterable*. " "Setara dengan ``a[len(a):] = iterable``." #: ../../tutorial/datastructures.rst:35 msgid "" "Insert an item at a given position. The first argument is the index of the " "element before which to insert, so ``a.insert(0, x)`` inserts at the front " "of the list, and ``a.insert(len(a), x)`` is equivalent to ``a.append(x)``." msgstr "" "Masukkan item pada posisi tertentu. Argumen pertama adalah indeks elemen " "sebelum memasukkan, jadi ``a.insert(0, x)`` memasukkan di bagian depan " "daftar *list*, dan ``a.insert(len(a), x)`` sama dengan ``a.append(x)``." #: ../../tutorial/datastructures.rst:43 msgid "" "Remove the first item from the list whose value is equal to *x*. It raises " "a :exc:`ValueError` if there is no such item." msgstr "" "Hapus item pertama dari daftar *list* yang nilainya sama dengan *x*. Ini " "memunculkan :exc:`ValueError` jika tidak ada item seperti itu." #: ../../tutorial/datastructures.rst:50 msgid "" "Remove the item at the given position in the list, and return it. If no " "index is specified, ``a.pop()`` removes and returns the last item in the " "list. (The square brackets around the *i* in the method signature denote " "that the parameter is optional, not that you should type square brackets at " "that position. You will see this notation frequently in the Python Library " "Reference.)" msgstr "" "Hapus item pada posisi yang diberikan dalam daftar, dan kembalikan. Jika " "tidak ada indeks yang ditentukan, ``a.pop()`` menghapus dan mengembalikan " "item terakhir dalam daftar. (Tanda kurung siku di sekitar *i* dalam pengenal" " *signature* metode menunjukkan bahwa parameternya opsional, bukan Anda " "harus mengetik tanda kurung siku pada posisi itu. Anda akan sering melihat " "notasi ini di Referensi Pustaka Python.)" #: ../../tutorial/datastructures.rst:60 msgid "Remove all items from the list. Equivalent to ``del a[:]``." msgstr "Hapus semua item dari daftar *list*. Setara dengan ``del a[:]``." #: ../../tutorial/datastructures.rst:66 msgid "" "Return zero-based index in the list of the first item whose value is equal " "to *x*. Raises a :exc:`ValueError` if there is no such item." msgstr "" "Kembalikan indeks berbasis nol dalam daftar item pertama yang nilainya sama " "dengan *x*. Menimbulkan :exc:`ValueError` jika tidak ada item seperti itu." #: ../../tutorial/datastructures.rst:69 msgid "" "The optional arguments *start* and *end* are interpreted as in the slice " "notation and are used to limit the search to a particular subsequence of the" " list. The returned index is computed relative to the beginning of the full" " sequence rather than the *start* argument." msgstr "" "Argumen opsional *start* dan *end* ditafsirkan seperti dalam notasi *slice* " "dan digunakan untuk membatasi pencarian ke urutan tertentu dari daftar. " "Indeks yang dikembalikan dihitung relatif terhadap awal urutan penuh " "daripada argumen *start*." #: ../../tutorial/datastructures.rst:78 msgid "Return the number of times *x* appears in the list." msgstr "Kembalikan berapa kali *x* muncul dalam daftar." #: ../../tutorial/datastructures.rst:84 msgid "" "Sort the items of the list in place (the arguments can be used for sort " "customization, see :func:`sorted` for their explanation)." msgstr "" "Urutkan item daftar di tempat (argumen dapat digunakan untuk mengurutkan " "ubahsuaian *customization*, lihat :func:`sorted` untuk penjelasannya)." #: ../../tutorial/datastructures.rst:91 msgid "Reverse the elements of the list in place." msgstr "Balikkan elemen daftar *list* di tempatnya." #: ../../tutorial/datastructures.rst:97 msgid "Return a shallow copy of the list. Equivalent to ``a[:]``." msgstr "" "Kembalikan salinan daftar *list* yang dangkal. Setara dengan ``a[:]``." #: ../../tutorial/datastructures.rst:100 msgid "An example that uses most of the list methods::" msgstr "Contoh yang menggunakan sebagian besar metode daftar *list*::" #: ../../tutorial/datastructures.rst:123 msgid "" "You might have noticed that methods like ``insert``, ``remove`` or ``sort`` " "that only modify the list have no return value printed -- they return the " "default ``None``. [1]_ This is a design principle for all mutable data " "structures in Python." msgstr "" "Anda mungkin telah memperhatikan bahwa metode seperti ``insert``, ``remove``" " atau ``sort`` yang hanya mengubah daftar *list* tidak memiliki nilai " "pengembalian yang dicetak -- mereka mengembalikan standar ``None``. [1]_ " "Ini adalah prinsip desain untuk semua struktur data yang bisa berubah " "*mutable* dalam Python." #: ../../tutorial/datastructures.rst:128 msgid "" "Another thing you might notice is that not all data can be sorted or " "compared. For instance, ``[None, 'hello', 10]`` doesn't sort because " "integers can't be compared to strings and *None* can't be compared to other " "types. Also, there are some types that don't have a defined ordering " "relation. For example, ``3+4j < 5+7j`` isn't a valid comparison." msgstr "" "Hal lain yang mungkin Anda perhatikan adalah bahwa tidak semua data dapat " "diurutkan atau dibandingkan. Misalnya, ``[None, 'hello', 10]`` tidak " "mengurutkan karena bilangan bulat tidak dapat dibandingkan dengan string dan" " *None* tidak dapat dibandingkan dengan jenis lainnya. Juga, ada beberapa " "tipe yang tidak memiliki hubungan pengurutan yang ditentukan. Sebagai " "contoh, ``3+4j < 5+7j`` bukan perbandingan yang valid." #: ../../tutorial/datastructures.rst:139 msgid "Using Lists as Stacks" msgstr "Menggunakan Daftar *Lists* sebagai Tumpukan *Stacks*" #: ../../tutorial/datastructures.rst:144 msgid "" "The list methods make it very easy to use a list as a stack, where the last " "element added is the first element retrieved (\"last-in, first-out\"). To " "add an item to the top of the stack, use :meth:`append`. To retrieve an " "item from the top of the stack, use :meth:`pop` without an explicit index. " "For example::" msgstr "" "Metode daftar membuatnya sangat mudah untuk menggunakan daftar *lust* " "sebagai tumpukan *stack*, di mana elemen terakhir yang ditambahkan adalah " "elemen pertama yang diambil (\"last-in, first-out\"). Untuk menambahkan item" " ke atas tumpukan, gunakan :meth:`append`. Untuk mengambil item dari atas " "tumpukan, gunakan :meth:`pop` tanpa indeks eksplisit. Sebagai contoh::" #: ../../tutorial/datastructures.rst:169 msgid "Using Lists as Queues" msgstr "Menggunakan Daftar *Lists* sebagai Antrian *Queues*" #: ../../tutorial/datastructures.rst:173 msgid "" "It is also possible to use a list as a queue, where the first element added " "is the first element retrieved (\"first-in, first-out\"); however, lists are" " not efficient for this purpose. While appends and pops from the end of " "list are fast, doing inserts or pops from the beginning of a list is slow " "(because all of the other elements have to be shifted by one)." msgstr "" "Dimungkinkan juga untuk menggunakan daftar sebagai antrian, di mana elemen " "pertama yang ditambahkan adalah elemen pertama yang diambil (\"first-in, " "first-out\"); namun, daftar tidak efisien untuk tujuan ini. Sementara " "menambahkan dan muncul dari akhir daftar cepat, melakukan memasukkan atau " "muncul dari awal daftar lambat (karena semua elemen lain harus digeser " "satu)." #: ../../tutorial/datastructures.rst:179 msgid "" "To implement a queue, use :class:`collections.deque` which was designed to " "have fast appends and pops from both ends. For example::" msgstr "" "Untuk mengimplementasikan antrian, gunakan :class:`collections.deque` yang " "dirancang untuk menambahkan dan muncul dengan cepat dari kedua ujungnya. " "Sebagai contoh::" #: ../../tutorial/datastructures.rst:197 msgid "List Comprehensions" msgstr "Daftar *List* *Comprehensions*" #: ../../tutorial/datastructures.rst:199 msgid "" "List comprehensions provide a concise way to create lists. Common " "applications are to make new lists where each element is the result of some " "operations applied to each member of another sequence or iterable, or to " "create a subsequence of those elements that satisfy a certain condition." msgstr "" "Pemahaman daftar *list comprehensions* menyediakan cara singkat untuk " "membuat daftar. Aplikasi umum adalah membuat daftar baru di mana setiap " "elemen adalah hasil dari beberapa operasi yang diterapkan pada setiap " "anggota dari urutan lain atau *iterable*, atau untuk membuat urutan elemen-" "elemen yang memenuhi kondisi tertentu." #: ../../tutorial/datastructures.rst:204 msgid "For example, assume we want to create a list of squares, like::" msgstr "Misalnya, anggap kita ingin membuat daftar kotak, seperti::" #: ../../tutorial/datastructures.rst:213 msgid "" "Note that this creates (or overwrites) a variable named ``x`` that still " "exists after the loop completes. We can calculate the list of squares " "without any side effects using::" msgstr "" "Perhatikan bahwa ini membuat (atau menimpa) variabel bernama ``x`` yang " "masih ada setelah loop selesai. Kami dapat menghitung daftar kotak tanpa " "efek samping menggunakan::" #: ../../tutorial/datastructures.rst:219 msgid "or, equivalently::" msgstr "atau, dengan kata lain::" #: ../../tutorial/datastructures.rst:223 msgid "which is more concise and readable." msgstr "yang lebih ringkas dan mudah dibaca." #: ../../tutorial/datastructures.rst:225 msgid "" "A list comprehension consists of brackets containing an expression followed " "by a :keyword:`!for` clause, then zero or more :keyword:`!for` or " ":keyword:`!if` clauses. The result will be a new list resulting from " "evaluating the expression in the context of the :keyword:`!for` and " ":keyword:`!if` clauses which follow it. For example, this listcomp combines " "the elements of two lists if they are not equal::" msgstr "" "Pemahaman daftar *list comprehension* terdiri dari tanda kurung yang berisi " "ekspresi diikuti oleh klausa :keyword:`!for`, lalu nol atau lebih klausa " ":keyword:`!for` atau :keyword:`!if`. Hasilnya akan menjadi daftar baru yang " "dihasilkan dari mengevaluasi ekspresi dalam konteks dari klausa " ":keyword:`!for` dan :keyword:`!if` yang mengikutinya. Sebagai contoh, " "*listcomp* ini menggabungkan elemen dari dua daftar jika tidak sama::" #: ../../tutorial/datastructures.rst:235 msgid "and it's equivalent to::" msgstr "dan itu setara dengan::" #: ../../tutorial/datastructures.rst:246 msgid "" "Note how the order of the :keyword:`for` and :keyword:`if` statements is the" " same in both these snippets." msgstr "" "Perhatikan bagaimana urutan pernyataan :keyword:`for` dan :keyword:`if` " "adalah sama di kedua cuplikan ini." #: ../../tutorial/datastructures.rst:249 msgid "" "If the expression is a tuple (e.g. the ``(x, y)`` in the previous example), " "it must be parenthesized. ::" msgstr "" "Jika ekspresi adalah tuple (mis. ``(x, y)`` dalam contoh sebelumnya), " "ekspresi tersebut harus diberi kurung. ::" #: ../../tutorial/datastructures.rst:280 msgid "" "List comprehensions can contain complex expressions and nested functions::" msgstr "" "Pemahaman daftar *list comprehensions* dapat berisi ekspresi kompleks dan " "fungsi bersarang::" #: ../../tutorial/datastructures.rst:287 msgid "Nested List Comprehensions" msgstr "Pemahaman Daftar *List Comprehensions* Bersarang" #: ../../tutorial/datastructures.rst:289 msgid "" "The initial expression in a list comprehension can be any arbitrary " "expression, including another list comprehension." msgstr "" "Ekspresi awal dalam pemahaman daftar *list comprehension* dapat berupa " "ekspresi acak *arbitrary*, termasuk pemahaman daftar *list comprehension* " "lainnya." #: ../../tutorial/datastructures.rst:292 msgid "" "Consider the following example of a 3x4 matrix implemented as a list of 3 " "lists of length 4::" msgstr "" "Perhatikan contoh matriks 3x4 berikut yang diimplementasikan sebagai daftar " "*list* 3 dari daftar *list* panjang 4 ::" #: ../../tutorial/datastructures.rst:301 msgid "The following list comprehension will transpose rows and columns::" msgstr "" "Pemahaman daftar *list comprehension* berikut akan mengubah baris dan " "kolom::" #: ../../tutorial/datastructures.rst:306 msgid "" "As we saw in the previous section, the nested listcomp is evaluated in the " "context of the :keyword:`for` that follows it, so this example is equivalent" " to::" msgstr "" "Seperti yang kita lihat di bagian sebelumnya, *listcomp* bersarang " "dievaluasi dalam konteks :keyword:`for` yang mengikutinya, jadi contoh ini " "setara dengan::" #: ../../tutorial/datastructures.rst:317 msgid "which, in turn, is the same as::" msgstr "yang, pada gilirannya, sama dengan::" #: ../../tutorial/datastructures.rst:330 msgid "" "In the real world, you should prefer built-in functions to complex flow " "statements. The :func:`zip` function would do a great job for this use " "case::" msgstr "" "Di dunia nyata, Anda harus memilih fungsi bawaan untuk pernyataan aliran " "*flow* yang kompleks. Fungsi :func:`zip` akan melakukan pekerjaan yang baik " "untuk kasus penggunaan ini::" #: ../../tutorial/datastructures.rst:336 msgid "" "See :ref:`tut-unpacking-arguments` for details on the asterisk in this line." msgstr "" "Lihat :ref:`tut-unpacking-argumen` untuk detail tentang tanda bintang " "*asterisk* di baris ini." #: ../../tutorial/datastructures.rst:341 msgid "The :keyword:`!del` statement" msgstr "Pernyataan :keyword:`!del`" #: ../../tutorial/datastructures.rst:343 msgid "" "There is a way to remove an item from a list given its index instead of its " "value: the :keyword:`del` statement. This differs from the :meth:`pop` " "method which returns a value. The :keyword:`!del` statement can also be " "used to remove slices from a list or clear the entire list (which we did " "earlier by assignment of an empty list to the slice). For example::" msgstr "" "Ada cara untuk menghapus item dari daftar yang diberikan indeksnya, bukan " "nilainya: pernyataan :keyword:`del`. Ini berbeda dari metode :meth:`pop` " "yang mengembalikan nilai. Pernyataan :keyword:`!del` juga dapat digunakan " "untuk menghapus irisan dari daftar *list* atau menghapus seluruh daftar " "*list* (yang kami lakukan sebelumnya dengan menetapkan daftar kosong pada " "*slice*). Sebagai contoh::" #: ../../tutorial/datastructures.rst:360 msgid ":keyword:`del` can also be used to delete entire variables::" msgstr "" ":keyword:`del` juga dapat digunakan untuk menghapus seluruh variabel::" #: ../../tutorial/datastructures.rst:364 msgid "" "Referencing the name ``a`` hereafter is an error (at least until another " "value is assigned to it). We'll find other uses for :keyword:`del` later." msgstr "" "Merujuk nama ``a`` selanjutnya adalah kesalahan (setidaknya sampai nilai " "lain ditetapkan untuknya). Kita akan menemukan kegunaan lain untuk " ":keyword:`del` nanti." #: ../../tutorial/datastructures.rst:371 msgid "Tuples and Sequences" msgstr "Tuples and *Urutan* Sequences" #: ../../tutorial/datastructures.rst:373 msgid "" "We saw that lists and strings have many common properties, such as indexing " "and slicing operations. They are two examples of *sequence* data types (see" " :ref:`typesseq`). Since Python is an evolving language, other sequence " "data types may be added. There is also another standard sequence data type:" " the *tuple*." msgstr "" "Kita melihat bahwa daftar *list* dan string memiliki banyak properti yang " "sama, seperti operasi pengindeksan dan pemotongan. Mereka adalah dua contoh " "tipe data *sequence* (lihat :ref:`typesseq`). Karena Python adalah bahasa " "yang berkembang, tipe data urutan lainnya dapat ditambahkan. Ada juga tipe " "data urutan standar lain: *tuple*." #: ../../tutorial/datastructures.rst:379 msgid "" "A tuple consists of a number of values separated by commas, for instance::" msgstr "" "Sebuah *tuple* terdiri dari sejumlah nilai yang dipisahkan oleh koma, " "misalnya::" #: ../../tutorial/datastructures.rst:401 msgid "" "As you see, on output tuples are always enclosed in parentheses, so that " "nested tuples are interpreted correctly; they may be input with or without " "surrounding parentheses, although often parentheses are necessary anyway (if" " the tuple is part of a larger expression). It is not possible to assign to" " the individual items of a tuple, however it is possible to create tuples " "which contain mutable objects, such as lists." msgstr "" "Seperti yang Anda lihat, pada *tuple* keluaran selalu tertutup dalam tanda " "kurung, sehingga *tuple* bersarang *nester* ditafsirkan dengan benar; mereka" " mungkin dimasukkan dengan atau tanpa tanda kurung di sekitarnya, meskipun " "seringkali tanda kurung diperlukan pula (jika tuple adalah bagian dari " "ekspresi yang lebih besar). Tidak mungkin untuk memberikan nilai ke masing-" "masing item *tuple*, namun dimungkinkan untuk membuat tuple yang berisi " "objek yang bisa berubah *mutable*, seperti daftar." #: ../../tutorial/datastructures.rst:408 msgid "" "Though tuples may seem similar to lists, they are often used in different " "situations and for different purposes. Tuples are :term:`immutable`, and " "usually contain a heterogeneous sequence of elements that are accessed via " "unpacking (see later in this section) or indexing (or even by attribute in " "the case of :func:`namedtuples `). Lists are " ":term:`mutable`, and their elements are usually homogeneous and are accessed" " by iterating over the list." msgstr "" "Meskipun *tuple* mungkin mirip dengan daftar, *tuple* sering digunakan dalam" " situasi yang berbeda dan untuk tujuan yang berbeda. *Tuples* adalah " ":term:`immutable`, dan biasanya berisi urutan elemen yang heterogen yang " "diakses melalui *unpacking* (lihat nanti di bagian ini) atau pengindeksan " "(atau bahkan berdasarkan atribut dalam kasus :func:`namedtuples " " `). Daftar adalah :term:`mutable`, dan elemen-" "elemennya biasanya homogen dan diakses dengan menyusuri *iterating* daftar " "*list*." #: ../../tutorial/datastructures.rst:416 msgid "" "A special problem is the construction of tuples containing 0 or 1 items: the" " syntax has some extra quirks to accommodate these. Empty tuples are " "constructed by an empty pair of parentheses; a tuple with one item is " "constructed by following a value with a comma (it is not sufficient to " "enclose a single value in parentheses). Ugly, but effective. For example::" msgstr "" "Masalah khusus adalah pembangunan *tuple* yang mengandung 0 atau 1 item: " "sintaksis memiliki beberapa kebiasaan *quirks* tambahan untuk mengakomodasi " "ini. *Tuple* kosong dibangun oleh sepasang kurung kosong; tupel dengan satu " "item dikonstruksi dengan mengikuti nilai dengan koma (tidak cukup untuk " "menyertakan nilai tunggal dalam tanda kurung). Jelek, tapi efektif. Sebagai " "contoh::" #: ../../tutorial/datastructures.rst:431 msgid "" "The statement ``t = 12345, 54321, 'hello!'`` is an example of *tuple " "packing*: the values ``12345``, ``54321`` and ``'hello!'`` are packed " "together in a tuple. The reverse operation is also possible::" msgstr "" "Pernyataan ``t = 12345, 54321, 'hello!'`` Adalah contoh dari *tuple " "packing*: nilainya ``12345``, ``54321`` dan ``'hello!'`` Dikemas bersama-" "sama dalam *tuple*. Operasi terbalik juga dimungkinkan ::" #: ../../tutorial/datastructures.rst:437 msgid "" "This is called, appropriately enough, *sequence unpacking* and works for any" " sequence on the right-hand side. Sequence unpacking requires that there " "are as many variables on the left side of the equals sign as there are " "elements in the sequence. Note that multiple assignment is really just a " "combination of tuple packing and sequence unpacking." msgstr "" "Ini disebut, cukup tepat, urutan membongkar *sequence unpacking* dan " "berfungsi untuk setiap urutan di sisi kanan. Urutan membongkar mensyaratkan " "bahwa ada banyak variabel di sisi kiri tanda sama dengan ada elemen dalam " "urutan. Perhatikan bahwa banyak tugas benar-benar hanya kombinasi dari " "*tuple packing* dan urutan pembongkaran *sequence unpacking*." #: ../../tutorial/datastructures.rst:447 msgid "Sets" msgstr "Himpunan *Set*" #: ../../tutorial/datastructures.rst:449 msgid "" "Python also includes a data type for *sets*. A set is an unordered " "collection with no duplicate elements. Basic uses include membership " "testing and eliminating duplicate entries. Set objects also support " "mathematical operations like union, intersection, difference, and symmetric " "difference." msgstr "" "Python juga menyertakan tipe data untuk *sets*. Himpunan atau *Set* adalah " "koleksi yang tidak terurut tanpa elemen duplikat. Penggunaan dasar termasuk " "pengujian keanggotaan dan menghilangkan entri duplikat. Atur objek juga " "mendukung operasi matematika seperti penyatuan *union*, persimpangan " "*intersection*, perbedaan *difference*, dan perbedaan simetris." #: ../../tutorial/datastructures.rst:454 msgid "" "Curly braces or the :func:`set` function can be used to create sets. Note: " "to create an empty set you have to use ``set()``, not ``{}``; the latter " "creates an empty dictionary, a data structure that we discuss in the next " "section." msgstr "" "Kurung kurawal atau fungsi :func:`set` dapat digunakan untuk membuat " "himpunan. Catatan: untuk membuat himpunan kosong Anda harus menggunakan " "``set()``, bukan ``{}``; yang terakhir itu membuat kamus *dictionary* " "kosong, struktur data yang kita bahas di bagian selanjutnya." #: ../../tutorial/datastructures.rst:458 msgid "Here is a brief demonstration::" msgstr "Berikut ini adalah demonstrasi singkat::" #: ../../tutorial/datastructures.rst:483 msgid "" "Similarly to :ref:`list comprehensions `, set comprehensions " "are also supported::" msgstr "" "Seperti halnya untuk :ref:`list comprehensions `, *set " "comprehensions* juga didukung::" #: ../../tutorial/datastructures.rst:494 msgid "Dictionaries" msgstr "Kamus *Dictionaries*" #: ../../tutorial/datastructures.rst:496 msgid "" "Another useful data type built into Python is the *dictionary* (see " ":ref:`typesmapping`). Dictionaries are sometimes found in other languages as" " \"associative memories\" or \"associative arrays\". Unlike sequences, " "which are indexed by a range of numbers, dictionaries are indexed by *keys*," " which can be any immutable type; strings and numbers can always be keys. " "Tuples can be used as keys if they contain only strings, numbers, or tuples;" " if a tuple contains any mutable object either directly or indirectly, it " "cannot be used as a key. You can't use lists as keys, since lists can be " "modified in place using index assignments, slice assignments, or methods " "like :meth:`append` and :meth:`extend`." msgstr "" "Tipe data lain yang berguna yang dibangun ke dalam Python adalah " "*dictionary* (lihat :ref:`typesmapping`). Kamus *dictionary* kadang-kadang " "ditemukan dalam bahasa lain sebagai \"assosiative memories\" atau " "\"assosiative array\". Tidak seperti urutan *sequences*, yang diindeks oleh " "sejumlah angka, kamus *dictionary* diindeks oleh *keys*, yang dapat berupa " "jenis apa pun yang tidak dapat diubah *immutable type*; string dan angka " "selalu bisa menjadi kunci *key*. *Tuples* dapat digunakan sebagai kunci jika" " hanya berisi string, angka, atau *tuple*; jika sebuah tuple berisi objek " "yang bisa berubah baik secara langsung atau tidak langsung, itu tidak dapat " "digunakan sebagai kunci *key*. Anda tidak dapat menggunakan daftar *list* " "sebagai kunci, karena daftar dapat dimodifikasi di tempat menggunakan " "penugasan indeks, penugasan *slice*, atau metode seperti :meth:`append` dan " ":meth:`extend`." #: ../../tutorial/datastructures.rst:507 msgid "" "It is best to think of a dictionary as a set of *key: value* pairs, with the" " requirement that the keys are unique (within one dictionary). A pair of " "braces creates an empty dictionary: ``{}``. Placing a comma-separated list " "of key:value pairs within the braces adds initial key:value pairs to the " "dictionary; this is also the way dictionaries are written on output." msgstr "" "Sebaiknya pikirkan kamus *dictionary* sebagai satu set *key: value* " "berpasangan, dengan persyaratan bahwa kunci tersebut unik (dalam satu kamus " "*dictionary*). Sepasang kurung kurawal membuat kamus *dictionary* kosong: " "``{}``. Menempatkan daftar pasangan kunci:nilai yang dipisah koma dalam " "kurung menambahkan pasangan kunci:nilai ke kamus *dictionary*; ini juga cara" " kamus *dictionary* ditulis pada keluaran." #: ../../tutorial/datastructures.rst:513 msgid "" "The main operations on a dictionary are storing a value with some key and " "extracting the value given the key. It is also possible to delete a " "key:value pair with ``del``. If you store using a key that is already in " "use, the old value associated with that key is forgotten. It is an error to" " extract a value using a non-existent key." msgstr "" "Operasi utama pada kamus *dictionary* adalah menyimpan nilai dengan beberapa" " kunci *key* dan mengekstraksi nilai yang diberikan kunci *key*. " "Dimungkinkan juga untuk menghapus pasangan kunci:nilai dengan ``del``. Jika " "Anda menyimpan menggunakan kunci yang sudah digunakan, nilai lama yang " "terkait dengan kunci itu dilupakan. Merupakan kesalahan untuk mengekstraksi " "nilai menggunakan kunci yang tidak ada." #: ../../tutorial/datastructures.rst:519 msgid "" "Performing ``list(d)`` on a dictionary returns a list of all the keys used " "in the dictionary, in insertion order (if you want it sorted, just use " "``sorted(d)`` instead). To check whether a single key is in the dictionary, " "use the :keyword:`in` keyword." msgstr "" "Melakukan ``list(d)`` pada kamus mengembalikan daftar *list* semua kunci " "yang digunakan dalam kamus, dalam urutan penyisipan (jika Anda ingin " "diurutkan, cukup gunakan ``sorted(d)`` sebagai gantinya). Untuk memeriksa " "apakah ada satu kunci dalam kamus, gunakan kaca kunci :keyword:`in`." #: ../../tutorial/datastructures.rst:524 msgid "Here is a small example using a dictionary::" msgstr "Ini adalah contoh kecil menggunakan kamus *dictionary*::" #: ../../tutorial/datastructures.rst:545 msgid "" "The :func:`dict` constructor builds dictionaries directly from sequences of " "key-value pairs::" msgstr "" "Pembangun *constructor* :func:`dict` membangun kamus langsung dari urutan " "pasangan kunci-nilai::" #: ../../tutorial/datastructures.rst:551 msgid "" "In addition, dict comprehensions can be used to create dictionaries from " "arbitrary key and value expressions::" msgstr "" "Selain itu, pemahaman kamus *dict comprehensions* dapat digunakan untuk " "membuat kamus *dictionary* dari ekspresi kunci dan nilai acak *arbitrary*::" #: ../../tutorial/datastructures.rst:557 msgid "" "When the keys are simple strings, it is sometimes easier to specify pairs " "using keyword arguments::" msgstr "" "Ketika kunci adalah string sederhana, kadang-kadang lebih mudah untuk " "menentukan pasangan menggunakan argumen kata kunci *keyword arguments*::" #: ../../tutorial/datastructures.rst:567 msgid "Looping Techniques" msgstr "Teknik Perulangan" #: ../../tutorial/datastructures.rst:569 msgid "" "When looping through dictionaries, the key and corresponding value can be " "retrieved at the same time using the :meth:`items` method. ::" msgstr "" "Saat mengulang kamus *dictionaries*, kunci *key* dan nilai *value* terkait " "dapat diambil pada saat yang sama menggunakan metode :meth:`items`. ::" #: ../../tutorial/datastructures.rst:579 msgid "" "When looping through a sequence, the position index and corresponding value " "can be retrieved at the same time using the :func:`enumerate` function. ::" msgstr "" "Saat mengulang melalui urutan, indeks posisi dan nilai terkait dapat diambil" " pada saat yang sama menggunakan fungsi :func:`enumerate`. ::" #: ../../tutorial/datastructures.rst:589 msgid "" "To loop over two or more sequences at the same time, the entries can be " "paired with the :func:`zip` function. ::" msgstr "" "Untuk mengulang dua urutan atau lebih secara bersamaan, entri dapat " "dipasangkan dengan fungsi :func:`zip`. ::" #: ../../tutorial/datastructures.rst:601 msgid "" "To loop over a sequence in reverse, first specify the sequence in a forward " "direction and then call the :func:`reversed` function. ::" msgstr "" "Untuk mengulang urutan secara terbalik, pertama tentukan urutan dalam arah " "maju dan kemudian panggil fungsi :func:`reversed`. ::" #: ../../tutorial/datastructures.rst:613 msgid "" "To loop over a sequence in sorted order, use the :func:`sorted` function " "which returns a new sorted list while leaving the source unaltered. ::" msgstr "" "Untuk mengulangi sebuah urutan *sequence* dalam susunan yang diurutkan, " "gunakan fungsi :func:`sort` yang mengembalikan daftar terurut baru dengan " "membiarkan sumber tidak diubah. ::" #: ../../tutorial/datastructures.rst:625 msgid "" "It is sometimes tempting to change a list while you are looping over it; " "however, it is often simpler and safer to create a new list instead. ::" msgstr "" "Terkadang tergoda untuk mengubah daftar *list* saat Anda mengulanginya; " "namun, seringkali lebih mudah dan aman untuk membuat daftar *list* baru. ::" #: ../../tutorial/datastructures.rst:642 msgid "More on Conditions" msgstr "Lebih lanjut tentang Kondisi" #: ../../tutorial/datastructures.rst:644 msgid "" "The conditions used in ``while`` and ``if`` statements can contain any " "operators, not just comparisons." msgstr "" "Kondisi yang digunakan dalam pernyataan ``while`` dan ``if`` dapat berisi " "operator apa pun, bukan hanya perbandingan." #: ../../tutorial/datastructures.rst:647 msgid "" "The comparison operators ``in`` and ``not in`` check whether a value occurs " "(does not occur) in a sequence. The operators ``is`` and ``is not`` compare" " whether two objects are really the same object; this only matters for " "mutable objects like lists. All comparison operators have the same " "priority, which is lower than that of all numerical operators." msgstr "" "Operator perbandingan ``in`` dan ``not in`` memeriksa apakah suatu nilai " "terjadi (tidak terjadi) secara berurutan. Operator ``is`` dan ``is not`` " "membandingkan apakah dua objek benar-benar objek yang sama; ini hanya " "penting untuk objek yang dapat diubah seperti daftar *list*. Semua operator " "pembanding memiliki prioritas yang sama, yang lebih rendah daripada semua " "operator numerik." #: ../../tutorial/datastructures.rst:653 msgid "" "Comparisons can be chained. For example, ``a < b == c`` tests whether ``a``" " is less than ``b`` and moreover ``b`` equals ``c``." msgstr "" "Perbandingan bisa dibuat berantai. Sebagai contoh, ``a < b == c`` menguji " "apakah ``a`` kurang dari ``b`` dan apa ``b`` sama dengan ``c``." #: ../../tutorial/datastructures.rst:656 msgid "" "Comparisons may be combined using the Boolean operators ``and`` and ``or``, " "and the outcome of a comparison (or of any other Boolean expression) may be " "negated with ``not``. These have lower priorities than comparison " "operators; between them, ``not`` has the highest priority and ``or`` the " "lowest, so that ``A and not B or C`` is equivalent to ``(A and (not B)) or " "C``. As always, parentheses can be used to express the desired composition." msgstr "" "Perbandingan dapat digabungkan menggunakan operator Boolean ``and`` dan " "``or``, dan hasil perbandingan (atau ekspresi Boolean lainnya) dapat " "dinegasikan dengan ``not``. Ini memiliki prioritas lebih rendah daripada " "operator pembanding; di antara mereka, ``not`` memiliki prioritas tertinggi " "dan ``or`` terendah, sehingga ``A and not B or C`` setara dengan ``(A and " "(not B)) or C`` . Seperti biasa, tanda kurung dapat digunakan untuk " "mengekspresikan komposisi yang diinginkan." #: ../../tutorial/datastructures.rst:663 msgid "" "The Boolean operators ``and`` and ``or`` are so-called *short-circuit* " "operators: their arguments are evaluated from left to right, and evaluation " "stops as soon as the outcome is determined. For example, if ``A`` and ``C``" " are true but ``B`` is false, ``A and B and C`` does not evaluate the " "expression ``C``. When used as a general value and not as a Boolean, the " "return value of a short-circuit operator is the last evaluated argument." msgstr "" "Operator Boolean ``and`` dan ``or`` disebut operator *short-circuit*: " "argumen mereka dievaluasi dari kiri ke kanan, dan evaluasi berhenti segera " "setelah hasilnya ditentukan. Misalnya, jika ``A`` dan ``C`` bernilai benar " "tetapi ``B`` salah, ``A and B and C`` tidak mengevaluasi ekspresi ``C``. " "Ketika digunakan sebagai nilai umum dan bukan sebagai Boolean, nilai " "kembalian dari operator hubung singkat *short-circuit* adalah argumen " "terakhir yang dievaluasi." #: ../../tutorial/datastructures.rst:670 msgid "" "It is possible to assign the result of a comparison or other Boolean " "expression to a variable. For example, ::" msgstr "" "Dimungkinkan untuk menetapkan hasil perbandingan atau ekspresi Boolean " "lainnya ke variabel. Sebagai contoh, ::" #: ../../tutorial/datastructures.rst:678 msgid "" "Note that in Python, unlike C, assignment cannot occur inside expressions. C" " programmers may grumble about this, but it avoids a common class of " "problems encountered in C programs: typing ``=`` in an expression when " "``==`` was intended." msgstr "" "Perhatikan bahwa dalam Python, tidak seperti C, pemberian nilai *assignment*" " tidak dapat terjadi di dalam ekspresi. Pemrogram C mungkin menggerutu " "tentang hal ini, tetapi ini menghindari kelas umum masalah yang ditemukan " "dalam program C: mengetikkan ``=`` dalam ekspresi ketika ``==`` dimaksudkan." #: ../../tutorial/datastructures.rst:687 msgid "Comparing Sequences and Other Types" msgstr "Membandingkan Urutan *Sequences* dan Jenis Lainnya" #: ../../tutorial/datastructures.rst:688 msgid "" "Sequence objects typically may be compared to other objects with the same " "sequence type. The comparison uses *lexicographical* ordering: first the " "first two items are compared, and if they differ this determines the outcome" " of the comparison; if they are equal, the next two items are compared, and " "so on, until either sequence is exhausted. If two items to be compared are " "themselves sequences of the same type, the lexicographical comparison is " "carried out recursively. If all items of two sequences compare equal, the " "sequences are considered equal. If one sequence is an initial sub-sequence " "of the other, the shorter sequence is the smaller (lesser) one. " "Lexicographical ordering for strings uses the Unicode code point number to " "order individual characters. Some examples of comparisons between sequences " "of the same type::" msgstr "" "Objek urutan *sequence* biasanya dapat dibandingkan dengan objek lain dengan" " jenis urutan yang sama. Perbandingan menggunakan pengurutan " "*lexicographical*: pertama dua item pertama dibandingkan, dan jika mereka " "berbeda ini menentukan hasil perbandingan; jika mereka sama, dua item " "berikutnya dibandingkan, dan seterusnya, sampai urutan mana pun habis. Jika " "dua item yang akan dibandingkan adalah urutannya sendiri dari jenis yang " "sama, perbandingan leksikografis dilakukan secara rekursif. Jika semua item " "dari dua urutan membandingkan hasilnya sama, urutannya dianggap sama. Jika " "satu urutan adalah sub-urutan awal dari yang lain, urutan yang lebih pendek " "adalah yang lebih kecil (lebih pendek). Pengurutan leksikografis untuk " "string menggunakan nomor titik kode Unicode untuk mengurutkan masing-masing " "karakter. Beberapa contoh perbandingan antara urutan dengan tipe yang sama::" #: ../../tutorial/datastructures.rst:708 msgid "" "Note that comparing objects of different types with ``<`` or ``>`` is legal " "provided that the objects have appropriate comparison methods. For example," " mixed numeric types are compared according to their numeric value, so 0 " "equals 0.0, etc. Otherwise, rather than providing an arbitrary ordering, " "the interpreter will raise a :exc:`TypeError` exception." msgstr "" "Perhatikan bahwa membandingkan objek dari berbagai jenis dengan ``<`` atau " "``>`` adalah sah asalkan objek memiliki metode perbandingan yang sesuai. " "Misalnya, tipe numerik campuran dibandingkan menurut nilai numeriknya, " "sehingga 0 sama dengan 0.0, dll. Jika tidak, alih-alih memberikan penyusunan" " acak, interpreter akan memunculkan pengecualian :exc:`TypeError`." #: ../../tutorial/datastructures.rst:716 msgid "Footnotes" msgstr "Catatan kaki" #: ../../tutorial/datastructures.rst:717 msgid "" "Other languages may return the mutated object, which allows method chaining," " such as ``d->insert(\"a\")->remove(\"b\")->sort();``." msgstr "" "Bahasa lain dapat mengembalikan objek bermutasi, yang memungkinkan metode " "berantai *chaining*, seperti ``d->insert(\"a\")->remove(\"b\")->sort();``."