Halo, dan selamat datang kembali. Mari kita lanjutkan diskusi kita tentang
struktur dan berbicara tentang bagaimana mereka terkait dengan array.
Kami berbicara tentang bagaimana struktur mirip dengan array dan bahwa Anda dapat menyimpan lebih dari
satu nilai, tetapi mereka berbeda karena Anda dapat memiliki tipe data yang berbeda dan
Anda dapat mengelompokkannya seperti itu.
Tetapi Anda juga dapat benar-benar memiliki susunan struktur yang serupa.
Jadi Anda telah melihat betapa bergunanya struktur dan memungkinkan Anda untuk mengelompokkan elemen-elemen yang terkait secara
logis bersama-sama, kami telah melihatnya. Kita tahu bagaimana mendefinisikan
struktur dengan elemen yang berbeda menggunakan kata kunci struct, menggunakan
nama tag.
Dan kita juga tahu cara membuat variabel jenis itu.
Karena struktur pada dasarnya adalah tipe data baru yang dapat Anda gunakan.
Dan kemudian Anda dapat mengakses elemen struct menggunakan operator pemilihan anggota.
Nah, bagaimana jika Anda ingin membuat beberapa struktur yang ada di
dalam sebuah array. Kamu bisa melakukannya.
Jadi misalnya, hanya perlu melacak satu variabel, bukan tiga untuk setiap
tanggal yang digunakan oleh program, itulah keuntungan dari sebuah struktur.
Jika kita ingin menangani 10 tanggal berbeda dalam
sebuah program, kita hanya perlu melacak 10 variabel berbeda, bukan 30.
Karena ingat, struktur mengandung tiga variabel di dalamnya.
10 untuk variabel yang berbeda masih agak banyak, jadi ini
bukan cara yang optimal untuk dilakukan. Anda mungkin ingin membuat array.
Karena Anda akan memiliki 10 jenis yang sama seperti Anda memiliki 10
int yang sama. Hanya akan ada tipe struktur.
Jadi metode yang lebih baik untuk menangani 10
tanggal yang berbeda melibatkan kombinasi dari dua fitur canggih dari bahasa pemrograman c,
struktur dan array.
Anda dapat menggunakannya bersama-sama untuk membuatnya lebih kuat.
Jadi sangat valid untuk mendefinisikan array struktur
Konsep array struktur sangat kuat dan penting dalam c, jadi perhatikan baik-baik.
Mendeklarasikan array struktur sama seperti mendeklarasikan jenis array lainnya.
Anda menentukan tipenya kebetulan itu tipe struktur.
Jadi jika Anda ingin membuat array struktur yang diberi
nama tanggal, Anda akan mengatakan
tanggal struct dan kemudian nama variabel dan kemudian Anda menggunakan tanda
kurung, sama seperti Anda menggunakan tanda kurung untuk array lain, Anda harus menentukan ukurannya.
Jadi dalam hal ini jika kita membuat 10 instance atau 10 elemen dari tipe
struct tanggal, kita akan mengatakan 10 di dalam tanda kurung tersebut.
Jadi ini akan mendefinisikan sebuah array yang disebut tanggal saya, yang terdiri dari 10 elemen.
Setiap elemen di dalam array didefinisikan sebagai tanggal struct tipe
bf, yang berisi tiga anggota.
Jadi pada dasarnya apa yang Anda lakukan adalah menyimpan 30
set data yang berbeda, 30 elemen data yang berbeda.
Untuk mengidentifikasi anggota larik struktur, Anda menerapkan
aturan yang sama yang Anda gunakan untuk struktur individual.
Anda mengajukan nama struktur dengan operator titik dan kemudian dengan nama anggota.
Mereferensikan elemen struktur tertentu di dalam array cukup alami.
Untuk menyetel tanggal kedua di dalam larik tanggal saya menjadi 8 Agustus 1986, yang
harus Anda lakukan adalah menentukan nama larik, tanggal saya,
dan Anda menentukan indeks. Kami menentukan di sini tanggal kedua.
Ingat, array berbasis 0. Jadi kita katakan 1, sub-1.
Dan kemudian jika kita ingin mengakses elemen elemen array
itu atau anggota struct itu untuk elemen itu, kita sebut dot month.
Jadi ini akan memberi kita elemen kedua dalam array tanggal saya.
Nilai bulan untuk tipe struct itu, dan di sini kita akan menetapkan nilai 8.
dan kemudian jika kita ingin mengakses hari, kita juga akan menetapkan
hari 8 karena itu tanggal 8 Agustus. Dan akhirnya, untuk tahun, kita akan mengatakan
tahun titik sama dengan 1986.
Ini adalah bagaimana Anda dapat menetapkan elemen kedua dari array tanggal
saya, tiga variabel berbeda karena bertipe struct, struct tanggal.
Anda harus memperhatikan bahwa itu benar-benar tidak berbeda.
Satu-satunya perbedaan di sini adalah Anda memiliki titik. Biasanya, Anda hanya akan mengatakan tanggal
saya sub-1 dan itu saja karena Anda hanya dapat menetapkan satu variabel tergantung
pada jenis array itu.
Tetapi dalam kasus ini, Anda dapat mengatakan sub-1 dengan tiga variabel berbeda
karena itu adalah tiga elemen di dalam struct.
Inisialisasi array struktur.
Inisialisasi array yang berisi struktur mirip dengan inisialisasi
array multidimensi.
Ingat, dengan array multi-dimensi kita akan mengikuti sintaks tertentu
dengan kurung kurawal di luar dan kemudian kurung kurawal di dalam mewakili setiap baris.
Tanda kurung kurawal di bagian dalam sebenarnya opsional,
tetapi membuatnya lebih mudah dibaca. Jadi saya suka mengikuti konvensi itu.
Dalam contoh ini, kami membuat tanggal struktur tipe tanggal saya, itu
akan menjadi ukuran 5. Dan kemudian kita akan menginisialisasi hanya tiga elemen pertama.
Sama seperti array multi-dimensi, kita memiliki kurung
kurawal di dalamnya. Dan elemen pertama dalam array tanggal saya
yang merupakan indeks di bawah nol. Kita akan mengatakan bulannya
adalah 12, tanggalnya adalah 10 dan tahun adalah 1975.
Dan kemudian kita akan melakukan hal yang sama untuk elemen pertama. Kita akan mengatakan 12 30 1980.
Dan untuk elemen ketiga kita akan mengatakan 11 15 2005.
Dan karena kami tidak menyediakan dua elemen lainnya
dalam array tanggal saya, itu tidak akan diinisialisasi apa pun.
Jadi ini akan mengatur tiga tanggal pertama.
Dalam array tanggal saya ke 12 10
1975, 12 30 1980 dan 11 15 2005.
Periode bagian dalam dari kawat gigi adalah opsional, sama seperti di area multi-dimensi mereka juga opsional.
Tapi sekali lagi itu membuatnya lebih mudah dibaca, lebih mudah diikuti dengan kurung kurawal itu,
saya akan mengikuti konvensi itu.
Jadi Anda bisa melakukan ini jika Anda
ingin menghilangkan kawat gigi, tetapi ini sedikit lebih sulit untuk diikuti
karena sekarang Anda hanya memiliki koma, dipisahkan dengan koma atau elemen yang dipisahkan dengan koma dan
ini bisa sangat membingungkan jika Anda melakukan banyak hal dari mereka.
Anda harus memetakannya dengan benar, katakanlah saya berada di elemen keempat keempat
untuk koma keempat saya, oke itu akan menjadi elemen
kedua dari array, lebih sulit untuk diikuti, jadi gunakan yang ada di dalam kurung kurawal.
Jika Anda ingin menginisialisasi hanya elemen ketiga dari array ke nilai yang
ditentukan, Anda dapat menentukan tanggal saya sub-5.
Anda masih membuat array di sini.
Anda masih mendeklarasikan variabel dan mengatur ukurannya menjadi lima.
Tetapi di dalam kurung kurawal,
Anda mengatakan dua tanda kurung dalam dan
Anda akan menginisialisasi 2 hingga 12 10 1975.
Jadi Anda akan melihat tanda kurung siku yang mewakili elemen yang ingin
Anda inisialisasi, lalu operator penugasan sama dengan dan kemudian di dalam
kurung kurawal Anda menginisialisasi bulan, hari dan tahun untuk
elemen di dalam struct.
Jadi Anda dapat menentukan dengan tepat elemen apa yang ingin Anda inisialisasi juga.
Jika Anda hanya ingin mengatur bulan dan hari elemen kedua dari array tanggal saya menjadi 12 dan 30, Anda
dapat melakukan sesuatu yang sangat mirip.
Anda cukup melakukan koma untuk memisahkan setiap atribut.
Anda tidak ingin benar-benar mengatur tahun sehingga Anda ingin dapat menggunakan kurung kurawal tersebut.
Bisa dibilang titik bulan sama
dengan 12 sub-1 titik hari sama dengan 30.
Dan lagi sintaks ini terlihat sangat mirip dengan menginisialisasi variabel
struct di tempat lain.
Satu-satunya perbedaan di sini adalah karena ini adalah array, Anda harus menentukan indeks
array, tetapi sintaksnya serupa.
Bagaimana dengan struktur yang berisi array.
Elemen di dalam struktur yang berisi array.
Dimungkinkan juga untuk menemukan struktur yang berisi array sebagai anggota.
Ini mungkin berguna.
Penggunaan yang paling umum adalah untuk mengatur array karakter di dalam struktur.
Kami menggunakan array char cukup tepat untuk string.
Jadi akan sangat umum untuk struktur berisi string pada dasarnya,
array karakter.
Jadi misalkan Anda ingin mendefinisikan struktur
yang disebut bulan yang berisi anggotanya, jumlah hari dalam
bulan serta singkatan tiga karakter untuk nama bulan.
Nah, di situlah kita bisa menggunakan array karakter. Kita bisa mengatakan struct month.
Kita tahu bagaimana mendefinisikan struktur. Sekali lagi, ini tidak mengalokasikan memori apa pun.
Ini adalah bagaimana struktur didefinisikan. Ini adalah elemen yang terkandung di dalamnya.
Di sini kita menggunakan kata kunci struct. Kami mengucapkan nama struct. Nama tagnya adalah bulan, dan
kemudian kita memiliki kurung kurawal kiri dan kemudian kita tentukan elemennya.
Kami memiliki satu elemen yang bilangan bulat mewakili jumlah hari kami memiliki titik koma di akhir.
Dan kemudian kita memiliki array karakter, nama
karakter sub-tiga, jadi ukuran tiga karena memiliki tiga karakter.
Dan kemudian kita akhiri struktur dengan kurung kurawal kanan di titik koma.
Tapi ingat, karakter adalah array dan mereka terkait erat dengan pointer juga kita tahu itu sekarang.
Tetapi Anda dapat dengan mudah memiliki struktur yang berisi array hanya dengan
menempatkannya sebagai elemen anggota.
Jadi ini membuat struktur bulan yang berisi anggota
bilangan bulat yang disebut jumlah hari dan anggota karakter bernama bernama nama.
Nama anggota sebenarnya adalah array dari tiga karakter, cukup mudah.
Jadi bagaimana Anda benar-benar mengaksesnya. Nah, pertama-tama Anda harus membuat variabel Anda.
Variabel akan membuat memori untuk elemen di dalam struct dan kemudian Anda
hanya ingin mengatur bidang yang tepat di dalam variabel 8 bulan,
array karakter karena itulah namanya. Kami memiliki nama dan
jumlah hari. Ini namanya nama dan contohnya disebut bulan.
Nah, bulan adalah tipe variabel dan kemudian nama adalah tipe elemen, jadi itu benar.
Jadi di sini kita membuat sebuah struct. Ini tipe bulan.
Itu nama variabelnya adalah bulan. Kami tidak menginisialisasi dengan apa pun.
Kami segera menetapkan jumlah bulan hari 31.
Kami menggunakan operator pemilihan anggota titik itu.
Dan kemudian kami ingin menetapkan ke array karakter, kami
tidak dapat menetapkan langsung ke array karakter.
Anda harus melakukan perbandingan str atau sesuatu jika Anda ingin menandatangani semuanya. Dan Anda bisa melakukan itu.
Anda tidak harus menggunakan indeks ini. Anda bisa mengatakan str
copy a month dot name comma dan kemudian j
a n dalam tanda kutip ganda atau Anda bisa melakukannya ini di mana
Anda mengakses elemen array melalui index.
Di sini kita mengatakan nama titik bulan karena kita harus mengakses
variabel nama anggota atau elemen anggota.
Dan kemudian di dalam tanda kurung, kami menentukan indeks array.
Kita akan menemukannya menandatangani karakter pertama dalam larik j, yang kedua a, yang ketiga n.
Anda akan melihat sintaks ini jika Anda melakukan ints
dan doubles dan floats. Biasanya, ketika Anda memiliki array
karakter, Anda akan menggunakan fungsi str stir copy dan menetapkan semuanya dengan tanda kutip ganda.
Anda juga dapat menginisialisasi variabel ke nilai yang sama dengan melakukan sesuatu
yang sangat mirip saat Anda mendeklarasikan variabel. Tepat di dalam kurung kurawal,
karena ini adalah array, Anda dapat memiliki kurung
kurawal di dalam dan kemudian tanda kutip tunggal di sekitar setiap karakter.
Dan Anda dapat mengatur struktur 12 bulan di dalam array untuk mewakili setiap bulan dalam setahun.
Jadi sekarang kita bisa
membuat variabel bulan, yang merupakan array ukuran 12 dari tipe struct bulan, dan
itu bisa mewakili setiap bulan.
Dan kemudian untuk setiap bulan, kita dapat menggunakan jumlah hari dan kemudian singkatan untuk bulan tersebut.
Jadi memanfaatkan dua konsep array dan struktur
yang kuat ini sangat, sangat berguna.
Struktur dapat memiliki banyak
elemen, sehingga sebenarnya dapat berupa struktur array dan elemen
di dalam struktur dapat berupa array.
Dan selanjutnya kita akan berbicara tentang bagaimana kita dapat menggunakan struktur untuk memuat elemen lain seperti pointer.
Tetapi Anda akan melihat bahwa struktur dapat menyimpan semua
jenis data dalam berbagai jenis data.
Dan itu sangat, sangat berguna untuk digunakan dengan konsep array.
Saya harap ini membantu. Sekali lagi, kita akan mendapat tantangan
untuk mendemonstrasikan beberapa konsep ini dan memunculkan beberapa contoh
di dalam blok kode nanti. Terima kasih.