Bahasa C
Abstraksi data mengacu pada penyediaan hanya informasi penting ke dunia luar dan menyembunyikan detail latar belakang mereka, yaitu, untuk mewakili informasi yang dibutuhkan dalam program tanpa menyajikan detailnya.
Abstraksi data adalah teknik pemrograman (dan desain) yang bergantung pada pemisahan antarmuka dan implementasi.
Mari kita ambil satu contoh nyata dari TV, yang dapat Anda nyalakan dan matikan, ubah saluran, sesuaikan volume, dan tambahkan komponen eksternal seperti speaker, VCR, dan pemutar DVD, TETAPI Anda tidak mengetahui detail internalnya, yang adalah, Anda tidak tahu bagaimana ia menerima sinyal melalui udara atau melalui kabel, bagaimana menerjemahkannya, dan akhirnya menampilkannya di layar.
Dengan demikian, kita dapat mengatakan bahwa televisi dengan jelas memisahkan implementasi internal dari antarmuka eksternal dan Anda dapat bermain dengan antarmuka seperti tombol daya, pengubah saluran, dan kontrol volume tanpa mengetahui internalnya.
Dalam C++, kelas menyediakan tingkat abstraksi data yang hebat . Mereka menyediakan metode publik yang memadai ke dunia luar untuk bermain dengan fungsionalitas objek dan untuk memanipulasi data objek, yaitu, menyatakan tanpa benar-benar mengetahui bagaimana kelas telah diimplementasikan secara internal.
Misalnya, program Anda dapat membuat panggilan ke sort() fungsi tanpa mengetahui algoritma apa yang sebenarnya digunakan fungsi untuk mengurutkan nilai yang diberikan. Faktanya, implementasi yang mendasari fungsi pengurutan dapat berubah di antara rilis perpustakaan, dan selama antarmuka tetap sama, panggilan fungsi Anda akan tetap berfungsi.
Dalam C++, kami menggunakan kelas untuk mendefinisikan tipe data abstrak (ADT) kita sendiri. Anda dapat menggunakan cout objek kelas ostream untuk mengalirkan data ke keluaran standar seperti ini
Demo Langsung#include <iostream> using namespace std; int main() { cout << "Hello C++" <<endl; return 0; }
Di sini, Anda tidak perlu memahami cara cout menampilkan teks di layar pengguna. Anda hanya perlu mengetahui antarmuka publik dan implementasi dasar dari 'cout' bebas untuk diubah.
Di C++, kami menggunakan label akses untuk mendefinisikan antarmuka abstrak ke kelas. Sebuah kelas dapat berisi nol atau lebih label akses −
Anggota yang ditentukan dengan label publik dapat diakses oleh semua bagian program. Tampilan abstraksi data dari suatu tipe ditentukan oleh anggota publiknya.
Anggota yang ditentukan dengan label pribadi tidak dapat diakses oleh kode yang menggunakan kelas. Bagian privat menyembunyikan implementasi dari kode yang menggunakan tipe tersebut.
Tidak ada batasan seberapa sering label akses dapat muncul. Setiap label akses menentukan tingkat akses dari definisi anggota berikutnya. Tingkat akses yang ditentukan tetap berlaku hingga label akses berikutnya ditemukan atau kurung kurawal kanan penutup badan kelas terlihat.
Abstraksi data memberikan dua keuntungan penting
Internal kelas dilindungi dari kesalahan tingkat pengguna yang tidak disengaja, yang dapat merusak status objek.
Implementasi kelas dapat berkembang dari waktu ke waktu sebagai tanggapan terhadap perubahan persyaratan atau laporan bug tanpa memerlukan perubahan kode tingkat pengguna.
Dengan mendefinisikan anggota data hanya di bagian pribadi kelas, pembuat kelas bebas untuk membuat perubahan pada data. Jika implementasi berubah, hanya kode kelas yang perlu diperiksa untuk melihat apa yang mempengaruhi perubahan tersebut. Jika data bersifat publik, maka fungsi apa pun yang secara langsung mengakses anggota data dari representasi lama mungkin akan rusak.
Setiap program C++ di mana Anda mengimplementasikan kelas dengan anggota publik dan pribadi adalah contoh abstraksi data. Perhatikan contoh berikut
Demo Langsung#include <iostream> using namespace std; class Adder { public: // constructor Adder(int i = 0) { total = i; } // interface to outside world void addNum(int number) { total += number; } // interface to outside world int getTotal() { return total; }; private: // hidden data from outside world int total; }; int main() { Adder a; a.addNum(10); a.addNum(20); a.addNum(30); cout << "Total " << a.getTotal() <<endl; return 0; }
Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan hasil sebagai berikut
Total 60
Kelas di atas menambahkan angka bersama-sama, dan mengembalikan jumlahnya. Anggota publik - addNum dan getTotal adalah antarmuka ke dunia luar dan pengguna perlu mengetahuinya untuk menggunakan kelas. Anggota pribadi total adalah sesuatu yang tidak perlu diketahui pengguna, tetapi diperlukan agar kelas dapat beroperasi dengan baik.
Abstraksi memisahkan kode menjadi antarmuka dan implementasi. Jadi saat mendesain komponen, Anda harus menjaga antarmuka tetap independen dari implementasi sehingga jika Anda mengubah implementasi yang mendasarinya, antarmuka akan tetap utuh.
Dalam hal ini, program apa pun yang menggunakan antarmuka ini, tidak akan terpengaruh dan hanya perlu kompilasi ulang dengan implementasi terbaru.
Bahasa C
Apa itu Abstraksi di OOP? Abstraksi adalah konsep pemrograman berorientasi objek yang menampilkan hanya atribut penting dan menyembunyikan informasi yang tidak perlu. Tujuan utama abstraksi adalah menyembunyikan detail yang tidak perlu dari pengguna. Abstraksi adalah memilih data dari kumpulan yang
Apa itu Abstraksi di Java? Abstraksi dalam JAVA hanya menampilkan atribut penting dan menyembunyikan detail objek yang tidak perlu dari pengguna. Di Java, abstraksi dilakukan dengan menggunakan kelas Abstrak, metode Abstrak, dan Antarmuka. Abstraksi membantu mengurangi kerumitan dan upaya pemrogram
Kelas data Python adalah kelas Python biasa yang memiliki @dataclass penghias. Ini khusus dibuat untuk menyimpan data. Sejak Python versi 3.7, Python menawarkan kelas data melalui modul bawaan yang disebut dataclass . Ada beberapa keunggulan dibandingkan kelas Python biasa yang akan kita jelajahi di
Artikel ini menjelaskan bagaimana mesin database SQLite yang sudah diinstal pada PLCnext Controllers dapat digunakan untuk menyimpan data yang disediakan melalui Global Data Space (GDS). Basis data memungkinkan penyimpanan data proses dengan cara standar dan dapat diekspor ke sistem lain dengan SFTP