RESUME BERPIKIR KOMPUTASI
1.STRUKTUR DATA
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, sebuah Pohon adalah suatu struktur data yang digunakan secara luas yang menyerupai struktur pohon dengan sejumlah simpul yang terhubung.
Sebuah contoh sederhana pohon tidak terurut.
Simpul (node)
sunting
Sebuah Simpul dapat mengandung sebuah nilai atau suatu kondisi atau menggambarkan sebuah struktur data terpisah atau sebuah bagian pohon itu sendiri. Setiap simpul dalam sebuah pohon memiliki nol atau lebih simpul anak (child nodes), yang berada dibawahnya dalam pohon (menurut perjanjian, pohon berkembang ke bawah, tidak seperti yang dilakukannya di alam). Sebuah simpul yang memiliki anak dinamakan simpul ayah (parent node) atau simpul leluhur (ancestor node) atau superior. Sebuah simpul paling banyak memiliki satu ayah. Tinggi dari pohon adalah panjang maksimal jalan ke sebuah daun dari simpul tersebut. Tinggi dari akar adalah tinggi dari pohon. Kedalaman dari sebuah simpul adalah panjang jalan ke akarnya dari simpul tersebut.
Daun (Leaf nodes)
sunting
9, 14, 19, 67 dan 76 adalah daun.
Semua simpul yang berada pada tingkat terendah dari pohon dinamakan daun (leaf node). Sejak mereka terletak pada tingkat paling bawah, mereka tidak memiliki anak satupun. Seringkali, daun merupakan simpul terjauh dari akar. Dalam teori grafik, sebuah daun adalah sebuah sudut dengan tingkat 1 selain akar (kecuali jika pohonnya hanya memiliki satu sudut; maka akarnya adalah daunnya juga). Setiap pohon memiliki setidaknya satu daun.
Dalam pohon berdasarkan genetic programming sebuah daun (juga dibilang terminal) adalah bagian terluar dari sebuah program pohon. Jika dibandingkan dengan fungsinya atau simpul dalam, daun tidak memiliki argumen. Di banyak kasus dalam daun-GP input ke programnya.
Simpul dalam (Internal nodes)
sunting
Sebuah simpul dalam adalah semua simpul dari pohon yang memiliki anak dan bukan merupakan daun. Beberapa pohon hanya menyimpan data di dalam simpul dalam, meskipun ini memengaruhi dinamika penyimpanan data dalam pohon. Sebegai contoh, dengan daun yang kosong, seseorang dapat menyimpan sebuah pohon kosong dengan satu daun. Bagaimanapun juga dengan daun yang dapat menyimpan data, tidak dimungkinkan untuk menyimpan pohon kosong kecuali jika seseorang memberikan beberapa jenis penanda data di daun yang menandakan bahwa daun tersebut seharusnya kosong (dengan demikian pohon itu seharusnya kosong juga).
Sebaliknya, beberapa pohon hanya menyimpan data dalam daun, dan menggunakan simpul dalam untuk menampung metadata yang lain, seperti jarak nilai dalam sub pohon yang berakar pada simpul tersebut. Jenis pohon ini berguna untuk jarak yang meragukan.
Sebuah sub pohon adalah suatu bagian dari pohon struktur data yang dapat dilihat sebagai sebuah pohon lain yang berdiri sendiri. Simpul apapun dalam pohon P, bersama dengan seluruh simpul dibawahnya, membentuk sebuah sub pohon dari P. Sub pohon yang terhubung dengan akar merupakan keseluruhan pohon tersebut. Sub pohon yang terhubung dengan simpul lain manapun dinamakan sub pohon asli (proper subtree)
Penyusunan pohon
sunting
Terdapat dua jenis pohon. Sebuah pohon tidak terurut (unordered tree) adalah sebuah pohon dalam arti struktural semata-mata, yang dapat dikatakan memberikan sebuah simpul yang tidak memiliki susunan untuk anak dari simpul tersebut. Sebuah pohon dengan suatu susunan ditentukan, sebagai contoh dengan mengisi bilangan asli berbeda ke setiap anak dari simpul tersebut, dinamakan sebuah pohon terurut (ordered tree), dan struktur data yang dibangun di dalamnya dinamakan pohon terurut struktur data (ordered tree data structures). Sejauh ini pohon terurut merupakan bentuk umum dari pohon struktur data. Pohon biner terurut merupakan suatu jenis dari pohon terurut
Sebuah hutan adalah sebuah himpunan yang terdiri dari pohon terurut. Lintasan inorder, preorder, dan postorder didefinisikan secara rekursif untuk hutan.
inorder
lewati inorder hutan yang dibentuk oleh sub pohon yang pertama dalam hutan, jika ada
kunjungi akar dari pohon pertama.
lewati inorder hutan yang dibentuk oleh sisa pohon dalam hutan, jika ada.
preorder
kunjungi akar dari pohon pertama.
lewati preorder hutan yang dibentuk oleh sub pohon yang pertama dalam hutan, jika ada
lewati preorder hutan yang dibentuk oleh sisa pohon dalam hutan, jika ada.
postorder
lewati postorder hutan yang dibentuk oleh sub pohon yang pertama dalam hutan, jika ada
lewati postorder hutan yang dibentuk oleh sisa pohon dalam hutan, jika ada.
kunjungi akar dari pohon pertama.
Penggambaran pohon
sunting
Ada banyak cara untuk menggambarkan pohon; pada umumnya penggambaran mewakili simpul sebagai rekor yang dialokasikan pada heap (bedakan dengan heap struktur data) yang mengacu pada anaknya, ayahnya, atau keduanya, atau seperti data materi dalam array, dengan hubungan diantaranya ditentukan oleh posisi mereka dalam array (contoh binary heap)
Pohon sebagai grafik
sunting
Dalam teori grafik, sebuah pohon adalah sebuah grafik asiklis yang terhubung. Pohon yang berakar merupakan sebuah grafik dengan sudut tunggal di luar sebagai akar. Dalam kasus ini, dua sudut apapun yang terhubung dengan sebuah sisi mewarisi hubungan orang tua dan anak. Sebuah grafik asiklis dengan bermacam-macam komponen yang terhubung atau himpunan dari pohon-pohon yang berakar kadang-kadang dipanggil hutan
Metode traversal
sunting
Melangkah melalui materi dari pohon, dengan arti dari hubungan antara orang tua dan anak, dinamakan menelusuri pohon, dan tindakannya adalah sebuah jalan dari pohon. Seringkali, sebuah operasi mungkin dapat dilakukan sebagai penunjuk ysng mengacu pada simpul khusus. Sebuah penelusuran dimana setiap simpul ayah dikunjungi sebelum anaknya dinamakan pre-order walk; sebuah penelusuran dimana anaknya dikunjungi sebelum ayahnya masing-masing dinamakan post-order walk.
Operasi umum
sunting
Menghitung seluruh materi (item)
Pencarian untuk sebuah materi
Menambahkan sebuah materi pada sebuah posisi tertentu dalam pohon
Menghapus sebuah materi
Mengeluarkan seluruh bagian dari sebuah pohon pruning
Menambahkan seluruh bagian ke sebuah pohon grafting
Menemukan akar untuk simpul apapun
Penggunaan umum
sunting
Memanipulasi data secara hierarki
Membuat informasi mudah untuk dicari
Memanipulasi data sorted lists
3.GRAPAH DATA
Pengertian Struktur Data Graf: Manfaatnya dalam Dunia Komputer
Graf adalah sebuah kumpulan node (simpul) dalam bidang dua dimensi yang terhubung oleh sejumlah garis (sisi). Konsep ini digunakan untuk merepresentasikan obyek-obyek diskrit dan hubungannya. Dalam konteks ilmu komputer, graf menjadi fondasi dari berbagai aplikasi, salah satunya adalah dalam struktur data graf.
Pengertian Struktur Data Graf
Dalam dunia ilmu komputer, graf bisa dianggap sebagai sebuah struktur data, atau yang lebih spesifik, disebut sebagai Abstract Data Type (ADT). Struktur data ini terdiri dari sejumlah simpul dan sisi yang menghubungkan di antara simpul-simpul tersebut. Struktur data graf ini adalah implementasi dari teori graf yang mencakup definisi dan aturan-aturan yang menyertainya.
Secara lebih rinci, struktur data graf adalah bentuk implementasi dari teori graf yang melibatkan definisi serta hukum-hukum yang menyertainya. Struktur ini berbentuk jaringan atau network, di mana hubungan antar elemennya bersifat many-to-many.
Terdapat dua representasi umum dari struktur data graf yang dapat diimplementasikan:
Daftar Kedekatan:
Setiap simpul direpresentasikan sebagai struktur data yang berisi daftar semua simpul yang terhubung dengannya.
Matriks Ketetanggaan:
Merupakan matriks di mana baris dan kolom mewakili simpul-simpul, dan entri dalam matriks menunjukkan keberadaan sisi antara dua simpul.
Kegunaan Struktur Data Graf
Pemahaman tentang struktur data graph tidak hanya penting dalam teori, tetapi juga dalam implementasi praktisnya. Berikut adalah beberapa kegunaan utama dari struktur data graph dalam dunia komputer:
Merepresentasikan Aliran Komputasi:
Grafik digunakan untuk menggambarkan aliran proses atau komputasi dalam suatu sistem.
Pemodelan Grafis:
Dalam bidang pemrograman grafis, struktur data graf digunakan untuk membuat pemodelan objek dan interaksi di antara mereka.
Alokasi Sumber Daya pada Sistem Operasi:
Dalam sistem operasi, graf digunakan untuk alokasi sumber daya seperti memori, prosesor, dan lainnya.
Rute Terpendek pada Peta Interaktif:
Contohnya adalah penggunaan graf pada Google Maps untuk menemukan rute terpendek antara dua lokasi.
Representasi State-Transition dalam Sistem:
Dalam sistem yang melibatkan perubahan state, graf digunakan untuk merepresentasikan state dan transisi di antara mereka.
Pemecahan Teka-Teki dan Permasalahan yang Memiliki Satu Solusi:
Seperti pemecahan labirin, graf dapat digunakan untuk memodelkan permasalahan dengan satu solusi yang unik.
Aplikasi Peer to Peer (P2P) dalam Jaringan Komputer:
Graf digunakan dalam aplikasi P2P untuk mengatur koneksi dan pertukaran data antar node.
Dengan pemahaman yang baik tentang struktur data graph dan penerapannya, para pengembang perangkat lunak dapat menciptakan algoritma yang lebih efisien dan program yang lebih sederhana secara keseluruhan dalam berbagai konteks komputasi modern.
Dengan demikian, struktur data graph bukan hanya menjadi konsep teoretis semata, tetapi juga menjadi fondasi penting dalam membangun solusi komputasi yang efisien dan canggih.
4.ALGORITMA
Pengertian Algoritma
Dalam Kamus Besar Bahasa Indonesia (KBBI) daring, algoritma adalah prosedur sistematis untuk memecahkan masalah matematis dalam langkah-langkah terbatas. Selain itu, algoritma juga bisa diartikan sebagai urutan logis dalam pengambilan keputusan untuk memecahkan masalah.
Algoritma sendiri adalah kata serapan dari bahasa Inggris, yaitu algorithm. Sebenarnya, kata algorithm tidak murni diserap dari bahasa Inggris, melainkan dari bahasa Arab yang artinya "proses menghitung dengan angka Arab".
Sedikit membahas sejarahnya, algoritma ditemukan oleh seorang matematikawan bernama Muhammad Ibn Musa Al-Khwarizmi. Dalam dunia literatur Barat, Al-Khawarizmi lebih dikenal dengan julukan Algorizm. Dari panggilan tersebut akhirnya dipakai untuk menyebut konsep algoritma yang ia temukan.
Seiring berjalannya waktu, kata algoritma semakin populer dan mulai banyak digunakan dalam bidang komputer atau yang lebih dikenal dengan sebutan algoritma pemrograman. Sebagai informasi, algoritma pemrograman adalah langkah penyelesaian suatu masalah yang menghasilkan sebuah solusi dalam bentuk program komputer.
Dalam buku Pengantar Algoritma dengan Bahasa, algoritma punya peran penting dalam ilmu komputer. Bisa dibilang, algoritma merupakan "jantung komputer" karena hardware dan software pada komputer dapat dikendalikan melalui sintaks dan kode pemrograman.
Namun tak hanya dipakai untuk memecahkan masalah pada bahasa pemrograman, algoritma juga dapat diterapkan dalam menyelesaikan permasalahan sehari-hari yang membutuhkan berbagai proses dan langkah-langkah.
Mengutip buku 10 Langkah Belajar Logika dan Algoritma Menggunakan Bahasa C dan C ++ oleh Ema Utami, dkk, bila diterjemahkan ke dalam bahasa Indonesia, algoritma diartikan sebagai logika, metode, dan tahapan sistematis yang dipakai untuk memecahkan suatu permasalahan.
Ciri-ciri Algoritma
Adapun sejumlah ciri-ciri algoritma yang baik sehingga lebih mudah ketika diproses, yakni sebagai berikut:
1. Precise
Ciri-ciri algoritma yang pertama adalah precise, maksudnya adalah harus tepat, benar, dan teliti. Jadi, setiap instruksi dalam algoritma wajib ditulis secara benar dan teliti tanpa adanya keraguan.
Jika algoritma diterapkan secara presisi, maka setiap instruksi dapat dinyatakan secara eksplisit tanpa menghilangkan bagian apapun, karena dianggap sudah mengerti.
2. Menyusun Jumlah Langkah atau Instruksi
Setiap langkah dalam menyusun algoritma harus tertata dengan baik, artinya disusun dari awal hingga akhir, meskipun saat diproses akan ada sejumlah data yang berbeda.
3. Efektif
Seluruh instruksi yang ingin dikerjakan harus disampaikan secara jelas dan efektif. Dengan begitu, tidak ada lagi kesalahan ataupun kebingungan saat sedang memproses data.
4. Terminate
Dalam menyusun algoritma pemrograman, tentu harus terminate (berakhir) sehingga tidak berjalan terus.
5. Output yang Dihasilkan Tepat
Ciri-ciri yang terakhir adalah setiap output yang dihasilkan dalam algoritma harus tepat dan sesuai yang dikehendaki. Hal ini dapat terjadi jika setiap langkah dalam algoritma terbilang logis dan bisa diikuti dengan seksama.
Jenis-jenis Proses Algoritma
Dalam buku Struktur Data dan Algoritma dengan C ++ oleh Anita Sindar, ada berbagai jenis dalam proses algoritma, yakni sebagai berikut:
1. Sequence Process
Sequence process adalah instruksi yang dikerjakan secara sekuensial atau berurutan.
2. Selection Process
Dalam hal ini, instruksi akan dikerjakan apabila telah memenuhi berbagai kriteria tertentu.
3. Iteration Process
Jenis algoritma ini mengharuskan instruksi dikerjakan selama memenuhi situasi dan kondisi tertentu.
4. Concurrent Process
Concurrent process adalah sejumlah instruksi yang dikerjakan secara bersamaan.
Syarat Algoritma
Menurut Donald E. Knuth yang dikutip dari E-jurnal milik binus.ac.id, sebuah algoritma harus memenuhi sejumlah syarat, yakni sebagai berikut:
Finiteness
Syarat yang pertama harus memenuhi finiteness, yakni algoritma harus berakhir (terminate) setelah melakukan sejumlah langkah proses.
Definiteness
Dalam hal ini, setiap langkah algoritma harus didefinisikan dengan tepat dan tidak menimbulkan makna ganda (ambiguous).
Input
Setiap algoritma memerlukan data sebagai masukkan untuk diolah.
Output
Setiap algoritma memberikan satu atau lebih hasil setelah diproses.
Effectiveness
Syarat yang terakhir adalah memenuhi effectiveness, artinya langkah-langkah algoritma dikerjakan dalam batas waktu yang wajar.
5.PENGERTIAN ALGORITMA MENURUT PARA AHLI
Komentar
Posting Komentar