Array dalam Python Dijelaskan!
Jika Anda masuk ke pemrograman atau belajar tentang Python, artikel ini untuk Anda, array adalah salah satu struktur data yang paling banyak digunakan. Bagaimana Python merepresentasikan array? Bagaimana kita bisa memanipulasi array dengan Python untuk memecahkan masalah yang berbeda? Inilah yang akan kita temukan di artikel ini.
Bagaimana Komputer Menyimpan Informasi?
Seperti yang Anda ketahui, bentuk informasi paling utama di komputer terdiri dari bit-bit informasi. 8 bit informasi ini kemudian dikelompokkan untuk membentuk apa yang kita sebut byte .
Karena komputer dapat menyimpan potongan yang sangat besar dari byte ini, mereka membutuhkan mekanisme baru yang memungkinkan mereka membaca dan menulis byte dengan cepat, di sinilah alamat memori berperan, seperti alamat rumah pribadi Anda yang membedakan tempat tinggal Anda dari tetangga Anda, komputer menggunakan alamat memori untuk membedakan di mana potongan data dan informasi yang berbeda berada.
Perlu juga disebutkan bahwa komputer membutuhkan O(1) waktu akses untuk mencapai alamat memori mana pun, ini berarti mengakses byte #5489637 sama dengan mengakses byte #64.
Apa itu Array?
Praktik umum dalam bahasa pemrograman adalah menggunakan variabel untuk merujuk ke alamat dalam memori, misalnya pengidentifikasi X dapat merujuk ke byte #32.
Jika kami ingin menyimpan banyak alamat memori, membuat banyak pengidentifikasi tidak efisien dan dapat diskalakan. Kami lebih suka jika kami memiliki satu nama untuk grup pengidentifikasi dan menggunakan nomor untuk mengakses pengidentifikasi tertentu. Representasi tersebut adalah sebuah array, dengan kata lain itu adalah representasi dari sekelompok variabel di bagian yang berdekatan dari memori komputer.
String dalam Python misalnya disimpan dengan cara ini, katakanlah Anda mendeklarasikan variabel baru dengan teks 'contoh' yang akan dialokasikan Python:
2 byte (memori diperlukan untuk menyimpan karakter Unicode) * 7 (jumlah karakter dalam contoh kata) = 14 byte memori yang berdekatan untuk menyimpan variabel ini.
Array Referensi
Python menggunakan jenis array lain yang merupakan array referensial, untuk memahaminya mari kita lihat contoh ini, katakanlah Anda memiliki sebuah hotel dan Anda memiliki 50 kamar, Anda memerlukan cara untuk menyimpan nama siapa yang tinggal di kamar mana. representasi seperti berikut:
untuk melakukan ini Python harus menghormati kondisi ruang memori yang berdekatan untuk dialokasikan. Tapi bagaimana cara melakukannya ketika namanya memiliki panjang yang berbeda (panjang yang berbeda berarti kebutuhan ruang yang berbeda)?
Salah satu solusinya adalah menemukan panjang string terbesar dan mengalokasikan ruang memori yang cukup untuk semua tetapi ini tidak akan efisien memori karena beberapa ruang akan terbuang percuma dan bagaimana jika string baru muncul yang sekarang menjadi string terbesar?
Untuk mengatasi ini, Python membuat larik referensi yang berdekatan ke beberapa objek, jadi sekarang meskipun ukuran masing-masing objek dapat bervariasi, memori yang digunakan untuk menyimpan alamat memorinya tetap sama. Dengan cara ini Python menjamin waktu akses konstan ke berbagai elemen array. Kami menyebut jenis larik ini sebagai larik referensial.
Untuk mengilustrasikannya , lihat gambar ini:
Daftar dan Tuple di Python menggunakan tipe array ini untuk menyimpan data.
Catatan: Karena larik referensi menunjuk ke referensi, berhati-hatilah saat mengubah nilai referensi karena Anda juga dapat mengubah nilai dalam Daftar secara tidak sengaja. Juga saat membuat salinan, pastikan Anda mengetahui perbedaan antara salinan Dangkal dan Dalam .
Array Kompak
Sebelumnya kita berbicara tentang Strings dan bagaimana kita menyimpannya dalam array memori yang berdekatan, sebenarnya kita menyebut array ini sebagai Compact Array.
Keuntungan menggunakan compact array dibandingkan yang referensial adalah tidak ada biaya tambahan dari menyimpan referensi memori, kami langsung menyimpan data primer. Keuntungan lain yang perlu disebutkan adalah bahwa dalam hal menggunakan daftar yang merupakan array referensial, Python tidak memiliki kendali di mana data Anda disimpan, meskipun daftar tersebut menyimpan referensi ke tempat data berada. Karena cara kerja perangkat keras, lebih efisien jika data Anda dekat satu sama lain, mungkin digunakan untuk perhitungan yang sama.
Terlepas dari keuntungan ini, untuk Daftar dan tupel Python menggunakan array referensial karena mudah digunakan. Namun jika Anda bersikeras menggunakan larik kompak, Python memberi Anda modul bernama larik yang memungkinkan Anda melakukan ini:
Di sini Anda perhatikan bahwa kami meneruskan i sebagai argumen pertama ke array. Karena untuk membuat compact array kita perlu menentukan jenis alokasi memori yang tepat. Untuk tipe data lainnya periksa tabel ini:
Jika Anda ingin mempelajari lebih lanjut tentang modul array, klik di sini .
Satu kelemahan modul array adalah tidak mendukung tipe data yang ditentukan pengguna. Array kompak dengan struktur data seperti itu dapat didefinisikan menggunakan modul ctypes .
Array Dinamis
Saat membuat larik kompak, kami menentukan ukuran yang tepat dari larik itu sehingga komputer mengetahui memori apa yang harus dialokasikan. Karena itu mengalokasikan area memori tetangga ke array lain.
Dalam praktiknya, kami tidak selalu dapat mengetahui ukuran array kami, mereka mungkin berkembang seiring waktu. Sebagai solusi untuk masalah ini, Python menyediakan abstraksi yang disebut Dynamic Array.
Abstraksi ini menggunakan instance daftar yang memelihara array dasar yang memiliki kapasitas lebih dari panjang daftar sebenarnya. Kapasitas ekstra ini membantu kami menambahkan lebih banyak data ke dalam daftar.
Saat kami akhirnya kehabisan kapasitas ekstra, Array Dinamis meminta larik baru yang lebih besar dan menyalin semua elemen ke larik baru dan sistem mengambil kembali ruang dari larik lama.
Daftar Python didasarkan pada abstraksi ini tetapi Tuple dan String tidak dapat diubah (tidak dapat diubah) oleh karena itu tidak didasarkan pada ini.
Perlu juga disebutkan bahwa array dinamis tidak hanya membesar dalam ukuran tetapi juga dapat menyusut jika kita menghapus elemen dari daftar.
Daftar & Tuple
Jadi dari analisis yang kita lakukan pada bagian di atas, kita dapat membagi metode Lists & Tuples menjadi dua jenis metode:
Metode yang tidak berubah: metode yang ada di tupel dan daftar dan tidak mengubah isinya. Di bawah ini adalah tabel dari metode-metode ini dan kompleksitas waktunya:
Memutasi metode: metode yang hanya ada dalam daftar karena mengubah data dan struktur yang mendasari daftar. Di bawah ini adalah tabel dari metode-metode ini dan kompleksitas waktunya:
Kami tidak membahas di sini apa yang dilakukan masing-masing metode (Ini intuitif dan mudah) tetapi Anda dapat mengetahui lebih lanjut tentang daftar dan tupel Python .
Takeaway
- Array referensi menyimpan referensi dalam memori array mereka dan kemudian mengakses nilai aktual melalui referensi.
- Array kompak menyimpan data aktual dalam memori yang berdekatan.
- Array dinamis adalah array yang secara otomatis mengembang dan menyusut tergantung pada jumlah elemen di dalamnya.
- Daftar didasarkan pada array referensial dan dinamis.
- Tuple didasarkan pada array referensial.
- String didasarkan pada array kompak.
LinkedIn:https://www.linkedin.com/in/mohamed-aziz-belaweid/
GitHub:https://github.com/azayz
Baca cerita saya yang lain:
REALM : Retrieval Augmented Language Model Pretraining Facial Emotion Recognition, Panduan langsung!Berlangganan dan dapatkan pemberitahuan setiap kali saya memposting sesuatu:

![Apa itu Linked List? [Bagian 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































