RESUME BERPIKIR KOMPUTASI
Buku Modul
Struktur Data
Dalam istilah ilmu komputer, struktur data adalah cara menyimpan dan mengatur data secara terstruktur pada sistem komputer atau pangkalan data (database) sehingga lebih mudah diakses. Secara teknis, data dalam bentuk angka, huruf, simbol, dan lainnya ini diletakkan dalam kolom-kolom dan susunan tertentu. Contoh struktur data dapat dilihat pada berkas-berkas lembar sebar (spreadsheet), pangkalan data, pengolah kata, citra yang dipampat (compressed image), dan pemampatan berkas dengan teknik tertentu yang memanfaatkan struktur data.
Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang terlihat oleh pengguna ataupun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak terlihat oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan basis data (misalnya untuk keperluan data keuangan) atau untuk pengolah kata yang kolomnya berubah secara dinamis.
2. TREE DATA :
Dalam ilmu komputer , pohon adalah tipe data abstrak yang digunakan secara luas yang mewakili struktur pohon hierarkis dengan sekumpulan simpul yang terhubung . Setiap simpul di pohon dapat dihubungkan ke banyak anak (tergantung pada jenis pohon), tetapi harus dihubungkan ke tepat satu induk, [1] kecuali untuk simpul akar , yang tidak memiliki induk (yaitu, simpul akar sebagai simpul paling atas dalam hierarki pohon). Batasan-batasan ini berarti tidak ada siklus atau "loop" (tidak ada simpul yang dapat menjadi leluhurnya sendiri), dan juga bahwa setiap anak dapat diperlakukan seperti simpul akar dari sub-pohonnya sendiri, menjadikan rekursi sebagai teknik yang berguna untuk traversal pohon . Berbeda dengan struktur data linear , banyak pohon tidak dapat direpresentasikan oleh hubungan antara simpul-simpul tetangga (simpul induk dan anak dari suatu simpul yang dipertimbangkan, jika ada) dalam satu garis lurus (disebut tepi atau tautan antara dua simpul yang berdekatan).
Pohon yang tidak diurutkan ini memiliki nilai yang tidak unik (misalnya, nilai 2 ada di node yang berbeda, tidak hanya di satu node) dan bersifat non-biner (hanya hingga dua node anak per node induk dalam pohon biner). Node akar di bagian atas (dengan nilai 2 di sini), tidak memiliki induk karena merupakan node tertinggi dalam hierarki pohon.
Pohon biner adalah jenis yang umum digunakan, yang membatasi jumlah anak untuk setiap induk hingga maksimal dua. Ketika urutan anak ditentukan, struktur data ini sesuai dengan pohon terurut dalam teori grafik . Nilai atau penunjuk ke data lain dapat dikaitkan dengan setiap simpul di pohon, atau terkadang hanya dengan simpul daun , yang tidak memiliki simpul anak.
Tipe data abstrak (ADT) dapat direpresentasikan dalam sejumlah cara, termasuk daftar induk dengan penunjuk ke anak, daftar anak dengan penunjuk ke induk, atau daftar simpul dan daftar terpisah relasi induk-anak (tipe spesifik dari daftar ketetanggaan ). Representasi mungkin juga lebih rumit, misalnya menggunakan indeks atau daftar leluhur untuk kinerja.
Pohon sebagaimana digunakan dalam komputasi serupa tetapi dapat berbeda dari konstruksi matematika pohon dalam teori grafik , pohon dalam teori himpunan , dan pohon dalam teori himpunan deskriptif .
3. GRAPH DATA :
Dalam ilmu komputer , grafik adalah tipe data abstrak yang dimaksudkan untuk mengimplementasikan konsep grafik tak berarah dan grafik berarah dari bidang teori grafik dalam matematika .
Grafik berarah dengan tiga titik sudut (lingkaran biru) dan tiga sisi (panah hitam).
Struktur data grafik terdiri dari sekumpulan titik (yang mungkin bisa berubah) yang terbatas (juga disebut node atau titik ), bersama dengan sekumpulan pasangan titik yang tidak berurutan untuk grafik yang tidak berarah atau sekumpulan pasangan berurutan untuk grafik berarah. Pasangan ini dikenal sebagai edge (juga disebut link atau garis ), dan untuk grafik berarah juga dikenal sebagai edge tetapi terkadang juga disebut arrow atau arcs . Titik dapat menjadi bagian dari struktur grafik, atau dapat menjadi entitas eksternal yang direpresentasikan oleh indeks atau referensi integer .
Struktur data grafik juga dapat mengasosiasikan ke setiap sisi suatu nilai sisi , seperti label simbolik atau atribut numerik (biaya, kapasitas, panjang, dan lain-lain).
4. ALGORITMA :
Dalam matematika dan ilmu komputer, algoritma adalah rangkaian terbatas dari instruksi-instruksi yang rumit, yang biasanya digunakan untuk menyelesaikan atau menjalankan suatu kelompok masalah komputasi tertentu. Algoritma digunakan sebagai spesifikasi untuk melakukan perhitungan dan pemrosesan data. Algoritma yang lebih mutakhir dapat melakukan deduksi otomatis (disebut sebagai penalaran otomatis) dan menggunakan tes matematis dan logis untuk mengarahkan eksekusi kode melalui berbagai rute (disebut sebagai pengambilan keputusan otomatis). Penggunaan karakteristik manusia sebagai deskriptor mesin secara metaforis telah dipraktekkan oleh Alan Turing dengan terminologi seperti "memory", "search" dan "stimulus".[1]
Diagram alur dari sebuah algoritma (Algoritma Euklides) untuk menghitung faktor persekutuan terbesar (f.p.b.) dari dua angka a dan b dalam lokasi bernama A dan B. Algoritma dijalankan dengan pengurangan berturut-turut dalam dua pengulangan: JIKA pengujian B >= A menghasilkan "ya" (atau benar) (lebih akuratnya angka b dalam lokasi B lebih besar atau sama dengan angka a dalam lokasi A) MAKA, algoritma menentukan B ← B - A (artinya angka b - a menggantikan b sebelumnya). Hal yang sama, JIKA A > B, MAKA A ← A - B. Proses tersebut berhenti saat (isi dari) B adalah 0, menghasilkan f.p.k. dalam A. (Algoritma tersebut diambil dari Scott 2009:13; simbol dan gaya penggambaran dari Tausworthe 1977).
Sebaliknya, heuristika adalah pendekatan untuk pemecahan masalah komputasi yang mungkin tidak sepenuhnya terspesifikasi atau tidak menjamin hasil yang benar atau optimal, terutama dalam ranah masalah komputasi yang mana tidak ada hasil yang benar atau optimal yang terdefinisi dengan baik.[2]
Sebagai metode yang efektif, algoritma dapat diekspresikan dalam jumlah ruang dan waktu yang terbatas,[3] dan dalam bahasa formal yang terdefinisi dengan baik[4] untuk menghitung suatu fungsi.[5] Dimulai dari tataran awal dan input awal (bisa jadi kosong),[6] instruksi-instruksi yang ada menggambarkan sebuah komputasi yang, ketika dieksekusi, berjalan melalui sejumlah tataran dengan jumlah terhingga yang terdefinisi dengan baik,[7] yang pada akhirnya menghasilkan "output"[8] dan berakhir pada tataran final akhir. Transisi dari satu tataran ke tataran berikutnya tidak selalu bersifat menentukan; beberapa algoritma, yang dikenal sebagai algoritma acak, menggabungkan input acak.[9]
5. PENGERTIAN ALGORITMA MENURUT AHLI :
• Menurut Abu Ja’far Muhammad Ibnu Musa Al-Khawarizmi, Seorang Matematikawan Islam dari Uzbekistan
Algoritma adalah suatu metode khusus untuk menyelesaikan suatu persoalan yang ada.
• Menurut Goodman dan Hedetniemi, penulis buku “Introduction to the Design and Analysis of Algorithms“
Algoritma merupakan Urut-urutan terbatas dari operasi terdefinisi dengan baik, yang masing-masing membutuhkan memory dan waktu yang terbatas untuk menyelesaikan suatu masalah.
• Menurut Donald Ervin Knuth, seorang ilmuan terkenal dalam bidang komputerisasi
Algoritma yaitu Sekumpulan aturan-aturan berhingga yang memberikan sederetan operasi-operasi untuk menyelesaikan suatu jenis masalah yang khusus.
• Menurut Seymour Lipschutz dan Marc Lipson, keduanya penulis buku tentang aljabar dan seorang praktisi matematika dan komputer
Algoritma merupakan suatu daftar langkah demi langkah yang terhingga dari instruksi-instruksi yang terdefinisikan dengan jelas yang dipakai untuk permasalahan tertentu.
• Menurut Marvin Minsky, seorang Ilmuwan dibidang Kecerdasan Buatan (Artificial Intelligence)
Algoritma adalah seperangkat aturan yang memberitahukan kepada kita dari waktu ke waktu, tepatnya bagaimana untuk bertindak.
• Menurut David Bolton, seorang praktisi dibidang teknologi asal Australia
Algoritma merupakan sebuah deskripsi suatu prosedur yang berakhir dengan sebuah hasil.
• Menurut Andrey Andreyevich Markov, Matematikawan asal Rusia
Algoritma adalah hal umum untuk dipahami sebagai suatu keputusan yang tepat untuk mendefinisikan proses komputasi yang mengarahkan dari data awal hingga hasil yang diinginkan.
6. EXPRESI LOGIKA :
Ekspresi logika dalam ilmu komputer adalah pernyataan yang bisa benar atau salah. Pernyataan ini digunakan untuk mengajukan pertanyaan kepada program komputer dan menjadi dasar komputasi.
Ekspresi logika adalah pernyataan yang bisa benar atau salah . Misalnya,
𝐴
<
𝐵
adalah ekspresi logika. Bisa benar atau salah tergantung nilai apa yang A Dan B diberikan.
7. OPERASI LOGIKA :
Operasi logika adalah operasi matematika yang digunakan dalam logika matematika dan ilmu komputer untuk memanipulasi nilai kebenaran. Operasi ini umumnya digunakan dalam pernyataan logika dan pengolahan data biner. Berikut adalah beberapa operasi logika dasar:
A. **AND (Konjungsi)**: Hasilnya benar (true) hanya jika kedua operandnya benar. Dalam tabel kebenaran, hasil dari operasi AND adalah 1 hanya jika kedua operandnya adalah 1.
- Contoh: \( A \text{ AND } B \) hanya benar jika baik \( A \) dan \( B \) keduanya benar.
B. **OR (Disjungsi)**: Hasilnya benar jika salah satu atau kedua operandnya benar. Dalam tabel kebenaran, hasil dari operasi OR adalah 1 jika salah satu atau kedua operandnya adalah 1.
- Contoh: \( A \text{ OR } B \) benar jika salah satu dari \( A \) atau \( B \) benar.
C. **NOT (Negasi)**: Mengubah nilai kebenaran operandnya. Jika operandnya benar, hasilnya salah, dan sebaliknya.
- Contoh: \( \text{NOT } A \) adalah kebalikan dari \( A \).
D. **NAND (Negasi AND)**: Hasil dari operasi AND kemudian dinyatakan sebagai negasi. Hasilnya benar jika setidaknya salah satu operandnya salah.
- Contoh: \( A \text{ NAND } B \) adalah negasi dari \( A \text{ AND } B \).
E. **NOR (Negasi OR)**: Hasil dari operasi OR kemudian dinyatakan sebagai negasi. Hasilnya benar hanya jika kedua operandnya salah.
- Contoh: \( A \text{ NOR } B \) adalah negasi dari \( A \text{ OR } B \).
F. **XOR (Exclusive OR)**: Hasilnya benar jika salah satu operand benar, tetapi tidak keduanya.
- Contoh: \( A \text{ XOR } B \) benar jika \( A \) dan \( B \) berbeda.
G. **XNOR (Exclusive NOR)**: Hasilnya benar jika kedua operand memiliki nilai yang sama.
- Contoh: \( A \text{ XNOR } B \) benar jika \( A \) dan \( B \) keduanya benar atau keduanya salah.
Operasi-operasi ini sering digunakan dalam desain sirkuit digital, pemrograman, dan logika predikat dalam matematika dan filsafat.
8. FLOWCHART :
Flowchart adalah diagram alur yang digunakan untuk menggambarkan alur proses atau logika dari suatu sistem. Flowchart menggunakan simbol-simbol standar untuk menunjukkan aktivitas, kondisi, dan alur logika dari proses yang digambarkan. Flowchart bisa digunakan dalam berbagai bidang, seperti pengembangan perangkat lunak, perencanaan bisnis, dan manajemen proyek.
Dengan adanya flowchart ini akan memudahkan seseorang dalam menganalisa suatu hal, seperti pendapatan yang diperoleh dalam suatu perusahaan atau dalam menyusun suatu strategi. Bagi banyak orang mungkin sudah mengetahui apa yang dimaksud flowchart.
9. FLOWCHART DOKUMEN :
Document flowchart adalah diagram alir yang menggambarkan keseluruhan alur dari sebuah dokumen, laporan atau formulir beserta tembusannya, tanpa harus membacanya terlebih dahulu, juga berfungsi membantu pembaca lebih mudah memahaminya. Bagan alir ini disebut juga sebagai alir formulir (form flowchart) atau paperwork flowchart.
10. FLOWCHART SISTEM :
System flowchart adalah diagram alir yang menggambarkan mengenai tahapan kerja sebuah data yang sedang dikerjakan di dalam sistem dan bagaimana keputusan diambil untuk mengendalikan sebuah kasus. Flowchart ini menggambarkan urutan dari setiap prosedur di dalam sebuah sistem kerja secara keseluruhan.
11. FLOWCHART DATA :
Flowchart data adalah diagram yang menggambarkan aliran data dalam suatu sistem atau proses. Ini membantu memvisualisasikan bagaimana data masuk, diproses, dan dikeluarkan dalam sistem, serta bagaimana data tersebut mengalir antara berbagai komponen atau entitas.
### Komponen Utama dalam Flowchart Data
1. **Mulai**: Titik awal alur data.
2. **Input Data**: Tempat data masuk ke dalam sistem.
3. **Proses Data**: Langkah-langkah di mana data diproses atau diubah.
4. **Keputusan**: Titik di mana alur data dapat bercabang berdasarkan kondisi tertentu.
5. **Output Data**: Hasil akhir dari proses data.
6. **Penyimpanan Data**: Tempat di mana data disimpan untuk penggunaan di masa mendatang.
7. **Koneksi**: Garis atau panah yang menunjukkan aliran data dari satu komponen ke komponen lain.
### Contoh Flowchart Data
Misalnya, kita ingin menggambarkan alur data dalam sistem pemrosesan pesanan online:
A. **Mulai**
- V
B. **Input Data Pesanan**
- (Input: Informasi Pesanan)
- V
C. **Validasi Data Pesanan**
- Apakah data valid?
- [Ya] → V
- [Tidak] → Tampilkan Kesalahan
- V
D. **Proses Pembayaran**
- (Proses: Verifikasi Pembayaran)
- V
E. **Update Status Pesanan**
- (Update: Status Pesanan dalam Database)
- V
F. **Generate Konfirmasi Pesanan**
- (Output: Konfirmasi untuk Pengguna)
- V
G. **Simpan Data Pesanan**
- (Penyimpanan: Database Pesanan)
- V
H. **Selesai**
### Simbol Umum dalam Flowchart Data
- **Oval**: Menunjukkan awal dan akhir alur data.
- **Parallelogram**: Mewakili input atau output data.
- **Rectangle**: Mewakili proses atau pengolahan data.
- **Diamond**: Menunjukkan titik keputusan yang mempengaruhi alur data.
- **Cylinder**: Mewakili penyimpanan data (misalnya, database).
Flowchart data membantu dalam mendokumentasikan dan menganalisis aliran data di dalam sistem, serta mempermudah pemahaman bagaimana data diproses dan digunakan.
12. FLOWCHART PROGRAM :
Selanjutnya kita akan membahas flowchart program. Program flowcharts digunakan untuk menggambarkan kerja internal dari sistem modern yang sudah terkomputerisasi dan terperinci. Terdapat 4 jenis simbol flowchart program. Ke-4 simbol tersebut adalah awal, proses, keputusan, dan akhir.
Flowchart program terdiri dari dua macam, antara lain: flowchart logika program (program logic flowchart) dan flowchart program komputer terinci (detailed computer program flowchart). Flowchart ini akan membantu pengembang menemukan error di dalam kode komputer.
13. SIMBOL SIMBOL FLOWCHART :
1. Process:
Simbol Proses mewakili langkah dalam suatu proses. Ini adalah komponen yang paling umum dari diagram alur.
2. Terminal:
Simbol Terminal menunjukkan awal atau akhir dari diagram alur. Simbol ini biasanya memiliki teks “Start” atau “End”.
3. Flowline:
Garis aliran menunjukkan arah proses. Setiap flowline biasanya menghubungkan dua blok. Flowlines dapat berupa garis lurus, panah satu arah, atau panah dua sisi, yang mewakili berbagai jenis koneksi di antara langkah-langkahnya.
4. Decision:
Simbol Keputusan menunjukkan langkah yang menentukan langkah selanjutnya dalam suatu proses. Ini biasanya merupakan pertanyaan Ya/Tidak atau Benar/Salah.
Komentar
Posting Komentar