Anda di halaman 1dari 5

Nama: Naila Zalfa Hamidah

Kelas: X-11 (28)

BERPIKIR KOMPUTASIONAL

Berpikir komputasional bukan berarti berpikir seperti komputer. Ada dua aspek komputasi:
pertama, bagaimana menggunakan komputasi untuk menciptakan pengetahuan baru, dan kedua,
bagaimana menggunakan komputer untuk meningkatkan pemikiran dan perubahan pola akses ke
pengetahuan. Kemampuan ini melatih otak seseorang untuk berpikir secara logis, terstruktur, dan
kreatif seperti seorang ilmuwan komputer.

Perintah berpikir komputasional


 Dekomposisi: memecah masalah menjadi beberapa bagian komponen.
 Pengenalan pola: mengidentifikasi kesamaan dalam bagian komponen dari suatu masalah.
 Abstraksi: berfokus pada informasi umum yang penting dan mengesampingkan informasi
yang tidak relevan dengan solusinya.
 Penulisan algoritma: menulis kode yang menciptakan solusi yang dituju. Menulis instruksi
step-by-step yang dapat dibaca dan diproses oleh komputer. Instruksi-intruksi ditulis
menggunakan informasi yang relevan yang dikumpulkan dari dekomposisi, pengenalan pola
dan abstraksi.
 Evaluasi: menemukan bug dalam algoritma dan memperbaikinya untuk memastikannya
berfungsi tanpa error.

Pengaplikasian dalam PC/Komputer


STACK

Pengertian Stack atau Tumpukan adalah suatu stuktur data yang penting dalam
pemrograman yang mempunyai sifat LIFO (Last In First Out), Benda yang terakhir masuk ke dalam
stack akan menjadi benda pertama yang dikeluarkan dari stack.

Stack (Tumpukan) adalah list linier yang dikenali elemen puncaknya (TOP) dan Aturan
penyisipan dan penghapusan elemennya tertentu. Penyisipan selalu dilakukan “di atas“ TOP dan
Penghapusan selalu dilakukan pada TOP

OPERASI-OPERASI/FUNGSI STACK

Push : digunakan untuk menambah item pada stack pada tumpukan paling atas
Pop : digunakan untuk mengambil item pada stack pada tumpukan paling atas
Clear : digunakan untuk mengosongkan stack
IsEmpty : fungsi yang digunakan untuk mengecek apakah stack sudah kosong
IsFull : fungsi yang digunakan untuk mengecek apakah stack sudah penuh
QUEUE
Queue pada Struktur Data atau antrian adalah sekumpulan data yang mana penambahan
elemen hanya bisa dilakukan pada suatu ujung disebut dengan sisibelakang(rear), dan
penghapusan(pengambilan elemen) dilakukan lewat ujung lain (disebut dengan sisi depan atau
front). Queue atau antrian prinsip yang digunakan adalah “Masuk Pertama Keluar Pertama” atau
FIFO (First In First Out).
Queue atau antrian banyak kita jumpai dalam kehidupan sehari-hari, ex: antrian Mobil
diloket Tol, Antrian mahasiswa Mendaftar, dll. Contoh lain dalam bidang komputer adalah
pemakaian sistem komputer berbagi waktu(time-sharing computer system) dimana ada sejumlah
pemakai yang akan menggunakan sistem tersebut secara serempak.

Pada Queue atau antrian Terdapat satu buah pintu masuk di suatu ujung dan satu buah
pintu keluar di ujung satunya dimana membutuhkan variabel Head dan Tail ( depan/front,
belakang/rear).
Karakteristik Queue atau antrian :
1. elemen antrian
2. front (elemen terdepan antrian)
3. tail (elemen terakhir)
4. jumlah elemen pada antrian
5. status antrian Operasi pada Queue atau antrian

1. tambah(menambah item pada belakang antrian)


2. hapus (menghapus elemen depan dari antrian)
3. kosong( mendeteksi apakah pada antrian mengandung elemen atau tidak)
Operasi-operasi Queue :
1. Create() Untuk menciptakan dan menginisialisasi Queue Dengan cara membuat Head dan Tail =
-1

2. IsEmpty() Untuk memeriksa apakah Antrian sudah penuh atau belum Dengan cara memeriksa
nilai Tail, jika Tail = -1 maka empty Kita tidak memeriksa Head, karena Head adalah tanda untuk
kepala antrian (elemen pertama dalam antrian) yang tidak akan berubah-ubah Pergerakan pada
Antrian terjadi dengan penambahan elemen Antrian kebelakang, yaitu menggunakan nilai Tail.

3. IsFull Untuk mengecek apakah Antrian sudah penuh atau belum Dengan cara mengecek nilai
Tail, jika
Tail >= MAX-1 (karena MAX-1 adalah batas elemen array pada C) berarti sudah penuh

4. Enqueue Untuk menambahkan elemen ke dalam Antrian, penambahan elemen selalu


ditambahkan di elemen paling belakang Penambahan elemen selalu menggerakan variabel Tail
dengan cara increment counter Tail terlebih dahulu
5. Dequeue() Digunakan untuk menghapus elemen terdepan/pertama (head) dari Antrian Dengan
cara menggeser semua elemen antrian kedepan dan mengurangi Tail dgn 1 Penggeseran
dilakukan dengan menggunakan looping.

6. Clear() Untuk menghapus elemen-elemen Antrian dengan cara membuat Tail dan Head = -1
Penghapusan elemen-elemen Antrian sebenarnya tidak menghapus arraynya, namun hanya
mengeset indeks pengaksesan-nya ke nilai -1 sehingga elemen-elemen Antrian tidak lagi terbaca

7. Tampil() Untuk menampilkan nilai-nilai elemen Antrian Menggunakan looping dari head s/d tail

SORTING

Sorting adalah proses menyusun elemen – elemen dengan tata urut tertentu dan proses
tersebut terimplementasi dalam bermacam aplikasi. Kita ambil contoh pada aplikasi perbankan.
Aplikasi tersebut mampu menampilkan daftar account yang aktif. Hampir seluruh pengguna pada
sistem akan memilih tampilan daftar berurutan secara ascending demi kenyamanan dalam
penelusuran data. Beberapa macam algoritma sorting telah dibuat karena proses tersebut sangat
mendasar dan sering digunakan. Oleh karena itu, pemahaman atas algoritma – algoritma yang ada
sangatlah berguna.

1.Selection Sort (Ascending): Pengurutan dilakukan dengan memilih elemen terbesar dan
menempatkan pada posisinya, kemudian mencari element terbesar berikutnya dan menempatkan
pada tempatnya, dan seterusnya.

Proses pengurutan dengan menggunakan metode selection sort secara terurut naik adalah :
1. Mencari data terkecil dari data pertama sampai data terakhir, kemunian di tukar posisinya dengan
data pertama.
2. mencari data terkecil dari data kedua sampai data terakhir, kemudian di tukar dengan posisinya
dengan data kedua.
3. mencari data terkecil dari data ketiga sampai data terakhir, kemudian di tukar posisinya dengan
data ketiga
4. dan seterusnya sampai semua data turut naik. Apabila terdapat n buah data yang akan di urutkan,
maka membutukan (n – 1) langkah pengurutan, dimana data terakhir yaitu data ke-n tidak perlu di
urutkan karena hanya tinggal satu satunya.

2. Bubble Sort Konsep Buble Sort Metode pengurutan gelembung (Bubble Sort) diinspirasikan oleh
gelembung sabun yang berada dipermukaan air. Karena berat jenis gelembung sabun lebih ringan
daripada berat jenis air, maka gelembung sabun selalu terapung ke atas permukaan. Prinsip di atas
dipakai pada pengurutan gelembung. Bubble sort (metode gelembung) adalah metode/algoritma
pengurutan dengan dengan cara melakukan penukaran data dengan tepat disebelahnya secara terus
menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada
perubahan berarti data sudah terurut. Disebut pengurutan gelembung karena masing-masing kunci
akan dengan lambat menggelembung ke posisinya yang tepat.

SEARCHING
Pencarian (Searching) merupakan proses yang fundamental dalam pemrograman, guna
menemukan data (nilai) tertentu di dalam sekumpulan data yang bertipe sama. Fungsi pencarian itu
sendiri adalah untuk memvalidasi (mencocokkan) data.

2. Metode pencarian dibagi menjadi 2, yaitu:


1. Metode Pencarian Beruntun
Konsep yang digunakan dalam metode ini adalah membandingkan data-data yang ada dalam
kumpulan tersebut, mulai dari elemen pertama sampai elemen ditemukan, atau sampai elemen
terakhir.
2. Metode Pencarian Bagi Dua (Binary Search)
Metode ini diterapkan pada sekumpulan data yang sudah terurut (menaik atau menurun). Metode
ini lebih cepat dibandingkan metode pencarian beruntun. Data yang sudah terurut menjadi syarat
mutlak untuk menggunakan metode ini.
Konsep dasar metode ini adalah membagi 2 jumlah elemennya, dan menentukan apakah data yang
berada pada elemen paling tengah bernilai sama, lebih dari atau kurang dari nilai data yang akan
dicari. Jika bernilai sama, maka langsung data yang dicari ditemukan. Jika data di elemen terurut
naik, maka jika data yang berada di tengah kurang dari data yang dicari, maka pencarian selanjutnya
berkisar di elemen tengah ke kanan, dan begitu seterusnya sampai ketemu atau tidak sama sekali.
Dan sebaliknya untuk nilai data yang berada di tengah lebih dari data yang dicari, maka pencarian
selanjutnya berkisar di elemen tengah ke kiri, dan begitu seterusnya sampai ketemu atau tidak sama
sekali. Dan demikian sebaliknya untuk data yang terurut menurun. Dalam hal ini tentukan indeks
paling awal dan indeks paling akhir, untuk membagi 2 elemen tersebut.
Indeks awal = i, dimana nilai i, pada awalnya bernilai 0;
Indeks akhir = j, dimana nilai j, pada awalnya bernilai sama dengan jumlah elemen.

Contoh implementasi searching

#include

Void main()
{
Clrscr();

Int bil[5];
Int jml_bil,nilai_max;
Int i;

/* input data */
Cout<<”masukkan jumlah bilangan kurang dari 5 : “;cin>>jml_bil;
For(i=0;i {
Cout<<”bilangan ke”<>bil[i];
}

/* menentukan nilai max */


Nilai_max=bil[0];
For(i=0;i {
If (bil[i]>nilai_max)
{
Nilai_max=bil[i];
}
}

/* mencetak nilai max */


Cout<<”nilai maksimum : “< cout<
Getch();

Anda mungkin juga menyukai