SILAHKAN BELI DI KLIK GAMBAR


Besi Gantungan Ayunan Bayi

Hanger Besi Gantungan

 Hanger Rantai Plastik

 Minyak Alun Karo

 



Tampilkan postingan dengan label anak IT. Tampilkan semua postingan
Tampilkan postingan dengan label anak IT. Tampilkan semua postingan


Pengurutan (Sorting) adalah suatu proses pengurutan data yang
sebelumnya disusun secara acak atau tidak teratur menjadi urut
dan teratur menurut suatu aturan tertentu.

Dalam melakukan sorting ada banyak metode yang digunakan.
tetapi yang akan kami bahas adalah metode sorting dengan tree sort.

a. Definisi Tree Sort

Tree sort adalah metode sorting dengan cara membangun pohon
biner dengan menampilkan 3 hasil output:

PreOrder, InOrder, PostOrder.

b. Konsep dan Algoritma

Konsep dasar dari tree sort adalah sebagaimana sebuah pohon,
ada akar, batang, ranting, daun, dsb. Dalam tree sort ada istilah
akar atau root dan daun atau leaf.

Setiap objek dalam pohon biner berisi dua pointer, biasanya disebut
 kiri dan kanan. Selain pointer ini tentu saja node dapat berisi tipe
data lainnya. Misalnya, pohon biner integer bisa terdiri dari objek
dari jenis berikut:

struct Node {

int item; / / Data dalam node ini.

Node *kiri; / / Pointer ke subtree kiri.

Node * kanan; / / ​​Pointer ke subtree kanan.

}


· Pointer kiri dan Kanan

dalam Node dapat NULL atau dapat menunjuk ke objek lain dari jenis Node.
Sebuah simpul yang menunjuk ke node lain dikatakan induk dari simpul tersebut, 
dan simpul itu menunjuk disebut anak. Sebuah binary tree harus memiliki 
sifat-sifat sebagai berikut:

1. Ada satu buah node yang tidak memiliki node induk. 
    Node ini disebut root atau akar pohon.

2. Setiap node lain dalam pohon memiliki satu induk. 
   Tidak ada loop dalam sebuah binary tree. Artinya tidak 
   mungkin untuk mengikuti rantai pointer yang dimulai di 
   node tertentu dan kembali di node yang sama.

3. Sebuah node yang tidak memiliki anak disebut daun atau leaf. 
   Node daun dapat dikenali dengan cara mengetahui bahwa pointer
   kiri dan kanan dari sebuah node adalah NULL.

langsung saja bisa memahami algoritmanya lewat coding di bawah ini :
#include "iostream"
#include "conio.h"
using namespace std;

struct Node {

int item; //variabel item

Node *kiri; //pointer ke subtree kiri

Node *kanan; //pointer ke subtree kanan

};

void tambah(Node **akar,int itembaru) //berisi pointer yang
 menunjuk ke pointer akar itu sendiri

{

if((*akar) == NULL) //jika akar kosong maka membuat item baru

{

Node *baru; //pointer baru

baru = new Node; //new node = alamat baru

baru->item = itembaru; //baru di tunjuk oleh pointer item & di isi dengan item baru

baru->kiri = NULL; //baru ditunjuk dengan pointer kiri ,dan jika masihh kosong

baru->kanan = NULL; //baru ditunjuk dengan pointer kanan & jika kosong

(*akar) = baru; //pointer akar = variabel baru dengan alamat baru

(*akar)->kiri = NULL;

(*akar)->kanan = NULL;

cout<<"Item bertambah!";

}

else if(itembaru < (*akar)->item) tambah(&(*akar)->kiri,itembaru);
// jika item yang ditambah di kiri

else if(itembaru > (*akar)->item) tambah(&(*akar)->kanan,itembaru);
 //jika item yang ditambah item ke kanan

else if(itembaru == (*akar)->item) //jika item yang di input sama
dengan item yang ditambah sebelumnya

cout<<"Item sudah ada!";

}

void tampil(Node *akar) //fungsi menampilkan seluruh item yang telah di input

{

if(akar != NULL){

cout<<akar->item<<" ";

tampil(akar->kiri), //rekursif dengan fungsi tampil dengan mengarah ke kanan

tampil(akar->kanan); //rekursif dengan fungsi tampil dengan mengarah ke kanan

}}

void preOrder(Node *akar) //fungsi cetak preOrder

{

if(akar != NULL){

cout<< akar->item<<" "; //cetak item akar

preOrder(akar->kiri), //cetak di subtree kiri

preOrder(akar->kanan); //cetak di subtree kanan

}}

void inOrder(Node *akar) //fungsi cetak inOrder

{

if(akar != NULL){

inOrder(akar->kiri), //cetak di subtree kiri

cout<< akar->item<<" "; //cetak item akar

inOrder(akar->kanan); //cetak di subtree kanan

}}

void postOrder(Node *akar) //fungsi cetak postOrder

{

if(akar != NULL){

postOrder(akar->kiri), //cetak di subtree kiri

postOrder(akar->kanan); //cetak di subtree kanan

cout<< akar->item<<" "; //cetak item akar

}}

main()

{

int item;

Node *phn; //pointer phn untuk menghubungkan dengan link Node

phn = NULL; //alamat pointer phn pada NULL

char pil;

do {

system("cls");

cout<<"\tTREE SORT\n";

cout<<"1. Tambah\n";

cout<<"2. Pre-order\n";

cout<<"3. In-order\n";

cout<<"4. Post-order\n";

cout<<"5. Keluar\n";

cout<<"Silahkan masukkan pilihan anda (1-5)... ";

pil=getche();

if(pil=='1')

{

cout<<"\n";

cout<<"\nItem baru : ";cin>>item;

tambah(&phn,item); //fungsi tambah dengan menggunakan
alamat pointer phn dengan variabel

}

if(pil=='2')

{

if(phn!=NULL) { //jika phn tidak kosong

cout<< "\n-->Item yang masuk : ";tampil (phn); //cetak item yang masuk

cout<<"\n-->preOrde : ";preOrder(phn); //cetak preOrder

}

else cout<<"\n-->Masih kosong!";

getch();

}

if(pil=='3')

{

if(phn!=NULL) {

cout<< "\n-->Item yang masuk : ";tampil(phn); //cetak item yang masuk

cout<<"\n-->inOrder : ";inOrder (phn); //cetak item inOrder

}

else cout<<"\n-->Masih kosong!";

getch();

}

if(pil=='4')

{

if(phn!=NULL) {

cout<< "\n-->Item yang masuk : ";tampil (phn); //cetak item yang masuk

cout<<"\n-->postOrder : ";postOrder(phn); //cetak item postOrder

}

else cout<<"\n-->Masih kosong!";

getch();

}

}

while(pil!='5');

cout<<"\n";

}


Pengertian AI :

1. Suatu cara yang sederhana untuk membuat komputer dapat “berpikir” secara inteligent


2. Bagian dari ilmu komputer yang mempelajari perancangan sistem komputer yang inteligent, yaitu suatu sistem yang meperlihatkan karakteristik yang ada pada tingkah laku manusia, seperti mengerti suatu bahasa, mempelajari,mempertimbangkan dan memecahkan suatu masalah.


3. Suatu studi bagaimana membuat komputer dapat mengerjakan sesuatu, yang pada saat ini, orang dapat mengerjakan lebih baik


4. Bidang ilmu komputer yang memungkinkannya untuk memahami, bernalar dan bertindak.






Tujuan AI:


1. Untuk mengembangkan metode dan sistem untuk menyelesaikan masalah,masalah yang biasa diselesaikan melalui aktifivitas intelektual manusia, misalnya pengolahan citra,perencanaan, peramalan dan lain-lain, meningkatkan kinerja sistem informasi yang berbasis komputer.


2. Untuk meningkatkan pengertian/pemahaman kita pada bagaimana otak manusia bekerja














Arah AI:
Mengembangkan metode dan sistem untuk menyelesaikan masalah AI tanpa mengikuti cara manusia menyelesaikannya (sistem pakar / expert systems)
Mengembangkan metode dan sistem untuk menyelesaikan masalah AI melalui pemodelan cara berpikirnya manusia, atau cara bekerjanya otak manusia (neural networks).






Paradigma AI:


symbolic or sub-symbolic (connectionist)






Bidang-bidang Aplikasi AI






Menurut Elaine Rich : Masalah pada AI (Task Domain) :


Task Keduniaan (Mundane Task)


* Perception: Vision, Speech Recognition


* Natural Language: Understanding,


Generation, Translation


* Commonsense Reasoning


* Robot Control






Task Formal (Formal Task)


* Games (Chess, Backgamon, checkers,Go)


* Mathematics (Geometry, Logic, Integral


Calculus, Proving properties of programs)






Task Ahli (Expert Tasks)


* Engineering (Design,Fault Finding,


Manufacturing Planning)


* Scientific Analysis, Medical Diagnosis,


Financial Analysis









Bagian 2


Asumsi Dasar AI






Jantung Penelitian AI adalah : Physical Symbol System Hypothesis.






Physical Symbol System terdiri dari himpunan entitas yang dinamakan simbol, berpola fisik yang dapat menjadi komponen dari entitas tipe lain yang dinamakan Ekspresi (struktur simbol)


Struktur simbol terdiri dari sejumlah instant (Token) dari simbol-simbol yang berhubungan pada beberapa cara fisik. Selain struktur tersebut, sistem juga berisi koleksi proses-proses yang beroperasi pada ekspresi, untuk menghasilkan ekspresi lain : proses pembuatan (create), modifikasi, reproduksi, dan penghancuran (destruksi).


Jadi PSS adalah mesin yang memproduksi suatu koleksi penyusunan struktur simbol. Sistem seperti itu terdapat dalam suatu objek dunia yang lebih luas dari hanya ekspresi simbolik itu sendiri.






Perbedaan antara Pemrograman AI dan Konvensional








AI


Komputasi Konvensional



Representasi dan Manipulasi simbol


Algoritama



Memberitahu komputer tentang suatu masalah


Memerintah komputer untuk menyelesaikan masalah



Komputer diberi pengetahuan dan kemampuan inferensi


Memberi data kepada komputer dan program







Pemrograman AI :
Bila terjadi perubahan dalam program, maka tidak mengganggu seluruh “Facts” yang tersimpan dalam “Otak” (layaknya pikiran manusia/seperti informasi yang terdapat pada pikiran manusia)
Independen
Dapat Dimodifikasi tanpa mempengaruhi struktur kesluruhan program
Fleksibel à efisien dan mudah untuk dimengerti


Penyelesaian Masalah berdasarkan teknik AI






Empat hal untuk membangun sistem atau memecahkan masalah tertentu :
Definisikan masalah dengan jelas
Analisis masalah
Kumpulkan dan representasikan knowledge
Pilih teknik pemecah masalah terbaik dan gunakan untuk masalah tertentu






Mendefinisikan Masalah sebagai “State Space Search” (SSS)






Misalnya permainan catur , maka SSS nya adalah :


Menspesifikasikan posisi awal dari papan catur


Peraturan (rules) yang mendefinisikan langkah-langkah yang legal


Posisi papan yang merepresentasikan pemenang dari satu sisi atau sisi lainnya.






Tujuan (Goal) dari permainan adalah : memenangkan permainan.






Pendefinisian Masalah Sebagai Pencarian Ruang Keadaan


Masalah utama dalam membangun sistem berbasis AI adalah bagaimana mengkonversikan situasi yang diberikan ke dalam situasi lain yang diinginkan


menggunakan sekumpulan operasi tertentu.






A Water Jug Problem


Anda diberi dua buah gelas, yang satu ukuran 4 galon dan yang lain 3 galon. Kedua gelas


tidak memiliki skala ukuran. Terdapat pompa yang dapat digunakan untuk mengisi gelas


dengan air. Bagaimana anda mendapatkan tepat 2 galon air di dalam gelas 4 ukuran


galon?


Ruang masalah untuk masalah di atas dapat digambarkan sebagai himpunan pasangan


bilangan bulat (x,y) yang terurut, sedemikian hingga x = 0, 1, 2, 3, atau 4 dan y = 0, 1, 2,


atau 3; x menyatakan jumlah air dalam gelas ukuran 4 galon, dan y menyatakan jumlah


air dalam gelas ukuran 3 galon. Keadaan mula-mula adalah (0,0). State tujuan adalah


(2,n) untuk setiap nilai n.


Operator-opeartor (aturan produksi) yang digunakan untuk memecahkan masalah terlihat


pada gambar 2.2.








1.


(x,y)


If x < 4


→


(4,y)


Isi penuh gelas 4 galon
























2.


(x,y)


If y < 3


→


(x,3)


Isi penuh gelas 3 galon
























3.


(x,y)


If x > 0


→


(x-d,y)


Buang sebagian air dari gelas 4 galon
























4.


(x,y)


If y > 0


→


(x,y-d)


Buang sebagian air dari galon ukuran 3 galon
























5.


(x,y)


If x > 0


→


(0,y)


Kosongkan gelas 4 galon
























6.


(x,y)


If y > 0


→


(x,0)


Kosongkan gelas 3 galon
























7.


(x,y)


If x+y ≥4 and y > 0


→


(4,y-(4-x))


Tuangkan air dari gelas 3 galon ke gelas 4 galon sampai gelas 4 galon penuh



8.


(x,y)


If x+y ≥3 and x > 0


→


(x-(3-y),3)


Tuangkan air dari gelas 4 galon ke gelas 3 galon sampai gelas 3 galon penuh
























9.


(x,y)


If x+y ≤4 and y > 0


→


(x+y,0)


Tuangkan seluruh air dari gelas 3 galon ke gelas 4 galon
























10.


(x,y)


If x+y ≤3 and x > 0


→


(0,x+y)


Tuangkan seluruh air dari gelas 4 galon ke gelas 3 galon
























11.


(0,2)


→


(2,0)


Tuangkan 2 galon air dari gelas 3 galon ke gelas 4 galon
























12.


(2,y)


→


(0,y)


Buang 2 galon dalam gelas 4 galon sampai habis.



Gambar 2.2Aturan produksi untuk Water Jug Problem.
















Jumlah galon


Jumlah galon


Aturan yang dilakukan



dalam gelas 4 galon


dalam gelas 3 galon







0


0


-



0


3


2



3


0


9



3


3


2



4


2


7



0


2


5 atau 12



2


0


9 atau 11



Gambar 2.3Suatu solusi untuk Water Jug Problem.






























Karakteristik Masalah Dalam AI :




Apakah masalahnya dapat didekomposisi menjadi himpunan sub masalah yang (hampir) independen lebih kecil atau lebih mudah ?
Dapatkah langkah penyelesaian diacuhkan paling tidak dibatalkan ketika dapat dibuktikan hal tersebut tidak bijaksana ?
Apakah universe masalahnya dapat diprediksi ?
Apakah solusi yang baik dari masalah tertentu jelas tanpa membandingkan dengan seluruh solusi lain yang mungkin ?
Apakah solusi yang diinginkan sebuah keadaaan dari dunia atau sebuah jalur dari keadaan ?
Apa peran dari pengetahuan ?
Apakah pekerjaan memerlukan interakasi dengan manusia ?






Sistem Produksi


Sistem produksi terdiri dari:
Himpunan aturan, masing-masing terdiri dari sisi kiri (pola) yang menentukan kemampuan aplikasi dari aturan tersebut dan sisi kanan yang menggambarkan operasi yang dilalukan jika aturan dilaksanakan.
Satu atau lebih pengetahuan atau basis data yang berisi informasi apapun untuk tugas tertentu. Beberapa bagian basis data bisa permanen, dan bagian yang lain bisa hanya merupakan solusi untuk masalah saat ini. Informasi dalam basis data ini disusun secara tepat.
Strategi kontrol yang menspesifikasikan urutan dimana aturan akan dibandingkan dengan basis data dan menspesifikasikan cara pemecahan masalah yang timbul ketika beberapa aturan sesuai sekaligus pada waktu yang sama.
A rule applier (pengaplikasi aturan).


Strategi Kontrol


Syarat-syarat strategi kontrol:
cause motion. Perhatikan kembali water jug problem. Jika kita mengimplementasikan strategi kontrol sederhana dengan selalu memilih aturan pertama pada daftar 12 aturan yang telah dibuat, maka kita tidak akan pernah memecahkan masalah. Strategi kontrol yang tidak menyebabkan motion tidak akan pernah mencapai solusi.
Systematic. Strategi kontrol sederhana yang lain untuk water jug problem: pada setiap siklus, pilih secara random aturan-aturan yang dapat diaplikasikan. Strategi ini lebih baik dari yang pertama, karena menyebabkan motion. Pada akhirnya strategi tersebut akan mencapai solusi. Tetapi mungkin kita akan mengunjungi beberapa state yang sama selama proses tersebut dan mungkin menggunakan lebih banyak langkah dari jumlah langkah yang diperlukan. Hal ini disebabkan strategi kontrol tersebut tidak sistematik. Beberapa strategi kontrol yang sistematik telah diusulkan, yang biasa disebut sebagai metoda-metoda dalam teknik searching. Di bab ini, akan dibahas enam metoda, yaitu Breadth First Search, Uniform Cost Search, Depth First Search, Depth-Limited Search, Iterative-Deepening Depth-First Search, dan Bi-directional search. Masing-masing metoda tersebut mempunyai karakteristik yang berbeda.






Strategi Pencarian


Terdapat empat kriteria dalam strategi pencarian, yaitu:
Completeness: Apakah strategi tersebut menjamin penemuan solusi jika solusinya memang ada?
Time complexity: Berapa lama waktu yang diperlukan?
Space complexity: Berapa banyak memori yang diperlukan?
Optimality: Apakah strategi tersebut menemukan solusi yang paling baik jika terdapat beberapa solusi berbeda pada permasalahan yang ada?














Depth-First Search (DFS)


Pencarian dilakukan pada satu node dalam setiap level dari yang paling kiri. Jika pada level yang paling dalam, solusi belum ditemukan, maka pencarian dilanjutkan pada node sebelah kanan. Node yang kiri dapat dihapus dari memori. Jika pada level yang paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada level sebelumnya. Demikian seterusnya sampai ditemukan solusi. Jika solusi ditemukan maka tidak diperlukan proses backtracking (penelusuran balik untuk mendapatkan jalur yang dinginkan).






Kelebihan DFS adalah:
Pemakain memori hanya sedikit, berbeda jauh dengan BFS yang harus menyimpan semua node yang pernah dibangkitkan.
Jika solusi yang dicari berada pada level yang dalam dan paling kiri, maka DFS akan menemukannya secara cepat.






Kelemahan DFS adalah:
Jika pohon yang dibangkitkan mempunyai level yang dalam (tak terhingga), maka tidak ada jaminan untuk menemukan solusi (Tidak Complete).
Jika terdapat lebih dari satu solusi yang sama tetapi berada pada level yang berbeda, maka pada DFS tidak ada jaminan untuk menemukan solusi yang paling baik (Tidak Optimal).











Gambar 2.5 Penelusuran Depth First Search untuk Water Jug Problem.


Breadth-First Search (BFS)


Pencarian dilakukan pada semua node dalam setiap level secara berurutan dari kiri ke kanan. Jika pada satu level belum ditemukan solusi, maka pencarian dilanjutkan pada level berikutnya. Demikian seterusnya sampai ditemukan solusi. Dengan strategi ini, maka dapat dijamin bahwa solusi yang ditemukan adalah yang paling baik (Optimal). Tetapi BFS harus menyimpan semua node yang pernah dibangkitkan. Hal ini harus dilakukan untuk penelusuran balik jika solusi sudah ditemukan. Gambar 2.4 mengilustrasikan pembangkitan pohon BFS untuk masalah Water Jug. Pembangkitan suksesor dari suatu node bergantung pada urutan dari Aturan Produksi yang dibuat (lihat gambar 2.3). Jika urutan dari aturan 4 ditukar dengan aturan 5, maka pohon BFS yang dibangkitkan juga akan berubah.


























Gambar 2.4 Pohon Breadth First Search untuk Water Jug Problem.






Berikut ini membahas metoda-metode yang terdapat dalam teknik pencarian yang berdasarkan pada panduan (Heuristic Search), yaitu Generate and Test, Simple Hill Climbing, Steepest-Ascent Hill Climbing, Simulated Annealing, Best First Search,Greedy Search, A Star (A*), Problem Reduction, Constraint Satisfaction, dan Means-Ends Analysis.






Generate-and-Test


Metode Generate-and-Test adalah metode yang paling sederhana dalam pencarian heuristic. Jika pembangkitan possible solution dikerjakan secara sistematis, maka prosedur akan mencari solusinya, jika ada. Tetapi jika ruang masalahnya sangat luas, mungkin memerlukan waktu yang sangat lama.






Algoritma Generate-and-Test adalah prosedur DFS karena solusi harus dibangkitkan secara lengkap sebelum dilakukan test. Algoritma ini berbentuk sistematis, pencarian sederhana yang mendalam dari ruang permasalahan. Generate & test juga dapat dilakukan dengan pembangkitan solusi secara acak, tetapi tidak ada jaminan solusinya akan ditemukan.






Algorithm: Generate-and-Test


1. Generate a possible solution. For some problems, this means generating a particular


point in the problem space. For others, it means generating a path from a start state.


2. Test to see if this is actually a solution by comparing the chosen point or endpoint of


the chosen path to the set of acceptable goal states.


3. If a solution has been found, quit. Otherwise, return to step 1.






Contoh kasus:


Untuk permasalahan sederhana maka tehnik generate & test adalah tehnik yang layak. Sebagai contoh, pada teka-teki yang terdiri dari empat kubus segi enam, dengan masingmasing sisi dari setiap kubus dicat dengan 4 warna. Solusi dari teka-teki terdiri dari susunan kubus dalam beberapa baris yang semuanya empat sisi dari satu blok baris yang menunjukkan nasing-masing warna. Masalah ini dapat diselesaikan dengan manusia


dalam beberapa menit secara sistematis dan lengkap dengan mencoba semua kemungkinan. Ini bisa diselesaikan dengan lebih cepat menggunakan prosedur generate & test. Pandangan sekilas pada empat blok yang tampak bahwa masih ada lagi, katakanlah bagian merah dari warna-warna lain yang ada. Sehingga ketika menempatkan


blok dengan beberapa bagian merah, ini akan menjadi ide yang baik untuk digunakan jika


sebagian darinya sebisa mungkin dibagian luar. Sebagian yang lain sebisa mungkin harus


ditempatkan pada blok berikutnya. Menggunakan aturan ini, banyak konfigurasi diperlukan tanpa di-explore dan sebuah solusi dapat ditemukan lebih cepat.













Bagian 3


Heuristic Beam Search






Hill Climbing


Hill Climbing berbeda Generate-and-Test, yaitu pada feedback dari prosedur test untuk membantu pembangkit menentukan yang langsung dipindahkan dalam ruang pencarian. Dalam prosedur Generate & test , respon fungsi pengujian hanya ya atau tidak. Tapi jika pengujian ditambahkan dengan atauran fungsi-fungsi yang menyediakan estimasi dari bagaimana mendekati state yang diberikan ke state tujuan, prosedur pembangkit dapat mengeksplorasi ini sebagaimana ditunjukkan di bawah. HC sering digunakan jika terdapat fungsi heuristic yang baik untuk mengevaluasi state. Sebagai contoh, anda berada di sebuah kota yang tidak dikenal, tanpa peta dan anda ingin menuju ke pusat kota. Cara sederhana adalah gedung yang tinggi. Fungsi heuristics-nya adalah jarak antara lokasi sekarang dengan gedung yang tinggi dan state yang diperlukan adalah jarak yang terpendek.






Simple HC


Algorithm: Simple HC


1. Evaluate the initial state. If it is also a goal state, then return it and quit. Otherwise,


continue with the initial state as the current state.


2. Loop until a solution is found or until there are no new operators left to be applied in


the current state:


a). Select an operator that has not yet been applied to the current state and apply it to


produce a new state.


b). Evaluate the new state:


(i) If it is a goal state, then return it and quit.


(ii) If it is not a goal state but it is better than the current state, then make it the


current state.


(iii) If it is not better than the current state, then continue in the loop.



















Gambar 3.1 Pencarian jalur menggunakan Simple Hill Climbing.






Steepest-Ascent HC








Gambar 3.2 Pencarian jalur menggunakan Steepest-Ascent Hill Climbing.


Pada gambar 3.2 di atas, terjadi ambiguitas dimana fungsi heuristik node E dan node F adalah sama. Misalkan dipilih F dan ternyata menemukan solusi di level 8. Padahal terdapat solusi lain yang lebih optimal di level 2. Hal ini dikatakan bahwa Steepest-Ascent Hill Climbing terjebak pada solusi lokal (local minima).






Algoritma Steepest-Ascent HC:


1. Evaluate initial state. If it is also a goal state, then return it and quit. Otherwise,


continue with the initial state as the current state.


2. Loop until a solution is found or until a complete iteration produces no change to


current state:


a). Let SUCC be a state such that any possible successor of the current state will be


better than SUCC.


b). For each operator that applies to the current state do:


(i) Apply the operator and generate a new state.


(ii) Evaluate the new state. If it is a goal state, return it and quit. If not, compare


it to SUCC. If it is better, then set SUCC to this state. If it is not better, leave


SUCC alone.


c). If the SUCC is better than current state, then set current state to SUCC.






Best-First Search


Merupakan metode yang membangkitkan suksesor dengan mempertimbangkan harga (didapat dari fungsi heuristik tertentu) dari setiap node, bukan dari aturan baku seperti DFS maupun BFS. Gambar 3.4 mengilustrasikan langkah-langkah yang dilakukan oleh algoritma Best First Search. Pertama kali, dibangkitkan node A. Kemudian semua suksesor A dibangkitan, dan dicari harga paling minimal. Pada langkah 2, node D terpilih


karena harganya paling rendah, yakni 1. Langkah 3, semua suksesor D dibangkitkan, kemudian harganya akan dibandingkan dengan harga node B dan C. Ternyata harga node


B paling kecil dibandingkan harga node C, E, dan F. Sehingga B terpilih dan selanjutnya


akan dibangkitkan semua suksesor B. Demikian seterusnya sampai ditemukan node Tujuan.











Gambar 3.4 Langkah-langkah yang dilakukan oleh algoritma Best First Search.






Untuk mengimplementasikan algoritma pencarian ini, diperlukan dua buah senarai, yaitu: OPEN untuk mengelola node-node yang pernah dibangkitkan tetapi belum dievaluasi dan CLOSE untuk mengelola node-node yang pernah dibangkitkan dan sudah dievaluasi. Algoritma selengkapnya adalah sebagai berikut:


Algoritma Best-Fisrt Search:


1. Start with OPEN containing just the initial state.


2. Until a goal is found or there are no nodes left on OPEN do:


a) Pick the best node on OPEN.


b) Generate its successors.


c) For each successor do:


i. If it has not been generated, evaluate it, add it to OPEN, and record its parent.


ii. If it has been generated, change the parent if this new path is better than the previous one. In that case, update the cost of getting to this node and to any successors that this node may already have.













Bagian 4


Representasi Pengetahuan


Pengetahuan dan Penalaran


Representasi pengetahuan adalah hal penting dalam intelijensia buatan. Di sini kita akan


membahas dua mathematical tools untuk merepresentasikan pengetahuan, yaitu


propositional logic (logika proposisi) dan first order logic (kalkulus predikat).

















Gambar 4.1 A generic knowledge-based agents.















Gambar 4.2 Hubungan antara sentence dan fatcs yang disediakan oleh semantik bahasa.






Tabel 4.1 Pembagian formal language




Formal Language


Apa yang ada di dunia nyata


Apa yang dipercaya agenttentang fakta



Propositional logic


Facts


True/false/unknown



First-order logic


Facts, objects, relations


True/false/unknown



Temporal logic


Facts, objects, relations, times


True/false/unknown



Probability theory


Facts


Degree of believe 0…1



Fuzzy logic


Degree of truth


Degree of believe 0…1







Propositional Logic (Propositional Calculus)














Gambar 4.3 A BNF (Backus-Naur Form) Grammar of sentences inProportional Logic



















Gambar 4.4 Aturan inferensi dalam Logika Proposisi.














First-Order Logic (Predicat Logic / Predicat Calculus)
Objects: sesuatu dengan identitas individual (people, houses, colors, …)
Properties: sifat yang membedakannya dari object yang lain (red, circle, …)
Relations: hubungan antar object (brother of, bigger than, part of, ...)
Functions: relation yang mempunyai satu nilai (father of, best friend, …)






Contoh: One plus two equals three.





Gambar 4.5 The Syntax of First-Order Logic (with equality) in BNF (Backus-Naur Form)








Konsep Dasar Representasi Pengetahuan


Representasi Pengetahuan berdasarkan LOGIKA


Proportional Logic (Zero Order Logic)


Predicate Logic (First Order Logic)






Representasi Pengetahuan berdasarkan RULES


Pengetahuan Prosedural vs Deklaratif


Logic Programming


Production Rules


Forward dan Backward Reasoning Matching






Forward and Backward Chaining

















Gambar 4.6 Algoritma Inferensi Forward-Chaining.






Semua sentence yang dapat diinferensi dari sentence p dimasukkan ke KB. Jika p baru, pertimbangkan setiap implikasi yang mempunyai premise yang sesuai dengan p. Untuk setiap implikasi seperti itu, jika semua premise yang tersisa berada dalam KB, maka simpulkan conclusion Jika premise dapat dicocokkan dengan beberapa cara






Representasi Pengetahuan Berdasarkan Slot and Filler Structures






Semantic Nets


Semantic Nets (Jaringan Semantik)


Terdapat relasi yang penting untuk inferensi, seperti isa dan instance.























Dalam Kalkulus Predikat dinyatakan (Binary predicate):


isa(Person, Mammal)


instance(Pee-Wee-Reese, Person)


team(Pee-Wee-Reese, Brooklyn-Dodgers)


uniform-color(Pee-Wee-Reese, Blue)


Dapat dilakukan Inheritance untuk menurunkan relasi tambahan:


Has-part(Pee-Wee-Reese, Nose)






Representasi Nonbinary Predicate


Jaringan Semantik untuk menggambarkan aspek dari kejadian tertentu.


Sebagai contoh: “John gave the book to Mary”.



















Frames


Frames System


Kumpulan atribut (slot) dan nilai atribut yang mendeskripsikan suatu entitas.


Nilai slot dapat berupa:


1. Identifikasi frame


2. relasi dengan frame lain (slotnya: isa, instance)


3. batasan nilai


4. nilai


5. default nilai (dapat diubah)


6. prosedur untuk mendapatkan nilai


7. prosedur yang dibangkitkan data (Data Driven): prosedur yang harus dilakukan jika


nilai diubah, misalnya: periksa konsistensi.


8. kosong: untuk ditelusuri pada subclass-nya






Jenis Frame: Kelas dan Contoh (Instance)


Atribut Kelas:


1. Atribut tentang kelas itu sendiri.


2. Atribut yang harus diturunkan pada setiap elemen dalam himpunan.















(a) A Frame-Based Knowledge Base (b) Translation into FOL










Scripts


Merupakan representasi struktur yang mendeskripsikan aliran kejadian dalam konteks tertentu. Dimaksudkan untuk mengorganisasikan CD dalam situasi tertentu.






Komponen:


1. Entry condition : kondisi awal


2. Result : kondisi akhir


3. Props : yang harus ada


4. Roles : aksi yang dibangun tiap individu


5. Track : variasi spesifik pada pola yang lebih umum


6. Scenes : potongan-potongan “adegan” dalam Script






Keuntungan:


1. Mampu memprediksi event yang tidak disebutkan secara eksplisit.


2. Menyediakan cara pembangunan interpretasi tunggal dari sekumpulan observasi.


3. Mampu memfokuskan perhatian pada event yang “tidak biasa”.






Contoh 1:


John pergi ke restaurant kemarin malam. Dia memesan steak. Saat membayar, dia


menyadari uangnya kurang. Dia cepat pulang, karena hujan mulai turun.


Question: Apakah John makan malam?


(Dijawab dengan mengaktifkan Script restaurant)


Dari soal, urutan kejadian normal, sehingga pasti script restaurant berjalan normal, jadi


John pasti melewati tahap makan.






Contoh 2:


Susan makan siang di luar. Dia duduk di meja dan memanggil pelayan. Pelayan


memberikan menu dan Susan memesan hamburger.


Question: Mengapa pelayan memberikan menu?


Script mengandung dua jawaban:


- karena Susan meminta (backward)


- agar Susan dapat menentukan apa yang ingin dimakannya (Forward)






Contoh 3:


John pergi ke restaurant. Dia ditunjukkan mejanya. John memesan steak ukuran besar.


Dia duduk dan menunggu lama. John marah dan pergi.






Conceptual Dependency (CD)






Merupakan Strong Slot-and-Filler structure karena menambahkan gagasan khusus tentang: apa tipe objek dan relasi yang diijinkan.


CD : Teori untuk merepresentasikan pengetahuan tentang kejadian yang terkandung dalam kalimat bahasa natural. Dengan catatan: menggambarkan penalaran kalimat dan tidak bergantung bahasa apa.






Contoh: I gave the man a book.











Dalam CD, representasi aksi dibangun dari himpunan aksi primitif, yaitu:








ATRANS


Transfer of abstract relationship (e.g., give)



PTRANS


Transfer of physical location of an object (e.g., go)



PROPEL


Application of the physical force to an object (e.g., push)



MOVE


Movement of a body part by its owner (e.g., kick)



GRASP


Grasping of an object by an actor (e.g., clutch)



INGEST


Ingestion of an object by an animal (e.g., eat)



EXPEL


Expulsion of something from the body of an animal (e.g., cry)



MTRANS


Transfer of mental information (e.g., go)



MBUILD


Building new information out of old (e.g., decide)



SPEAK


Production of sound (e.g., say)



ATTEND


Focusing of a sense organ toward a stimulus (e.g., listen)







Terdapat 4 katagori konseptual primitif yang dapat dibangun, yaitu:
ACTS : aksi
PPs : objek / gambaran prosedur
AAs : peubah aksi (pendukung aksi)
PAs : peubah PPs (pendukung gambaran)






Tenses:








p


Past



f


Future



t


Transition



ts


Start transition



tf


Finished transition



k


Continuing



?


Interrogative



/


Negative



nil


Present



delta


Timeless



c


Conditional







CD tidak bisa membedakan yang alurnya sama. Misalnya : give, take, steal, donate.


CD cocok untuk kalimat yang sederhana. Untuk primitif tingkat tinggi CD merepotkan.


Misal: “John bet Sam $50 that the Mets would win the World Series”



  Definisi Komputer
Istilah Komputer (Computer) diambil dari bahasa latin Computare yang berarti menghitung 
( to Computer ).

Beberapa definisi tentang komputer :
  1. Menurut buku Computer Annual (Robert H.Blissmer)
Komputer adalah suatu alat elektronika yang mampu melakukan beberapa tugas sebagai berikut:
·         Menerima input
·         Memproses input tadi sesuai dengan programnya
·         Menyimpan perintah-perintah dan hasil dari pengolahan
·         Menyediakan output dalam bentuk informasi

  1. Menurut buku Computer Today (Donald H.Sanders) :
Komputer adalah sistem elektronik untuk memanipulasi data yang cepat dan tepat serta dirancang dan diorganisasikan supaya secara otomatis menerima dan menyimpan data input, memprosesnya dan menghasilkan output dibawah pengawasan suatu langkah-langkah instruksi-instruksi program yang tersimpan di memori (stored program).

  1. Menurut buku Computer Organization (V.C.Hamacher, Z.G.Vranesic, S.G.Zaky)
Komputer adalah mesin penghitung elektronik yang cepat dapat menerima informasi input digital, memprosesnya sesuai dengan suatu program yang tersimpan di memorinya (stored program) dan menghasilkan output informasi.

  1. Menurut buku Introduction To The Computer, The Tool Of Business (William M.Fuori) :
Komputer adalah suatu pemroses data (data processor) yang dapat melakukan perhitungan yang besar dan cepat, termasuk perhitungan aritmatika yang besar atau operasi logika, tanpa campur tangan dari manusia mengoperasikan selama pemrosesan.

Dari beberapa definisi yang tersebut, dapat disimpulkan bahwa komputer adalah
1.      Alat elektronik
2.      Dapat menerima input data
3.      Dapat mengolah data
4.      Dapat memberikan informasi
5.      Menggunakan suatu program yang tersimpan di memori komputer (stored program).
6.      Dapat menyimpan program dan hasil pengolahan
7.      Bekerja secara otomatis

Program adalah kumpulan dari instruksi atau perintah terperinci yang sudah dipersiapkan supaya komputer dapat melakukan fungsinya dengan cara yang sudah tertentu.


PENGOLAHAN DATA ELEKTRONIK
Pengolahan Data Elektronik (PDE) atau Electronic Data Processing (EDP) adalah pengolahan data dengan menggunakan komputer.

Data adalah kumpulan kejadian yang diangkat dari suatu kenyataan.
Data dapat berupa angka-angka, huruf-huruf atau simbol-simbol khusus atau gabungan darinya.

Pengolahan data (data processing) adalah manipulasi dari data ke dalam bentuk yang lebih berguna dan lebih berarti berupa informasi.

Informasi (information) adalah hasil dari kegiatan pengolahan data yang memberikan bentuk yang lebih berarti dari suatu kejadian.

Jadi PDE atau EDP adalah manipulasi dari data ke dalam bentuk yang lebih berarti berupa suatu informasi dengan menggunakan suatu alat elektronik yaitu komputer.


SIKLUS PENGOLAHAN DATA
Suatu proses pengolahan data terdiri dari 3 tahapan dasar yang disebut dengan siklus pengolahan data (data processing cycle), yaitu input, processing dan output.




SISTEM KOMPUTER
Sistem adalah jaringan daripada elemen-elemen yang saling berhubungan, membentuk satu kesatuan untuk melaksanakan suatu tujuan pokok dari sistem tersebut.

Tujuan pokok dari sistem komputer adalah mengolah data untuk menghasilkan informasi, supaya tujuan pokok tersebut terlaksana, maka harus ada elemen-elemen yang mendukungnya. Elemen-elemen dari sistem komputer adalah software, hardware dan brainware.

Hardware (perangkat keras/piranti keras) adalah peralatan di sistem komputer yang secara fisik terlihat dan dapat dijamah.
Software (perangkat lunak/piranti lunak) adalah program yang berisi perintah-perintah untuk melakukan pengolahan data.
Brainware adalah manusia yang terlibat di dalam mengoperasikan serta mengatur sistem komputer.


KEMAMPUAN KOMPUTER
Kemampuan komputer yang paling menakjubkan adalah kecepatannya. Komputer dapat melakukan suatu operasi dasar, seperti misalnya perhitungan pertambahan atau pengurangan, dalam waktu yang sangat cepat, yaitu dalam satuan millisecond, microsecond, nanosecond atau picosecond.


Kemampuan komputer lain yang menakjubkan adalah ketepatannya. Kalau manusia lelah, maka mentalnya akan luluh yang akan berakibat kecenderungan untuk melakukan kesalahan. Sebaliknya karena komputer tidak mempunyai mental dan tidak mengenal lelah maka komputer tidak akan mengalami kesalahan.

Komputer akan mengalami kesalahan, bilamana
  1. komponennya rusak
  2. Data yang dimasukkan salah, maka hasilnya akan salah.
Suatu istilah komputer yang cukup populer, yaitu GIGO (Garbage In Garbage Out) yang berarti sampah yang masuk, sampah pula yang keluar. Jadi kalau data yang dimasukkan salah, maka hasilnya akan salah. Sebaliknya bila data yang dimasukkan benar, maka hasilnya akan benar (Gold In Gold Out), emas yang masuk, emas pula yang keluar.

Disamping komputer yang mempunyai kemampuan untuk beroperasi dengan cepat dan tepat, juga mempunyai kemampuan yang lain, yaitu mempunyai ingatan (memori) yang besar.



Hal yang dibandingkan
Manusia
Komputer
Kecepatan
Relatif lambat
Sangat cepat
Ketepatan
Mudah salah
Tepat
Daya tahan memproses
Cepat lelah
Tidak kenal lelah
Kemampuan mengingat
Kurang akurat
Akurat
Kemampuan mengikuti perintah
Kurang baik
Baik
Kemampuan berinisiatif dan beradaptasi
Sangat baik
Jelek
Kemampuan membuat pertimbangan dan peramalan
Sangat baik
Jelek





CARA MENGUASAI KOMPUTER
Ada 3 tahapan seseorang dapat menguasai dan menggunakan komputer dengan baik dan berhasil, yaitu :
  1. Membaca buku-buku komputer.
Membaca adalah cara yang terbaik supaya anda dapat meningkatkan pengetahuan dan memahami dunia komputer. Anda dapat membaca buku-buku teks tentang komputer.

  1. Mencoba langsung pada suatu komputer.
Dengan mencoba langsung pada suatu komputer, anda akan mempunyai pengalaman dan lebih tahu tentang apakah komputer itu sesungguhnya.

  1. Menulis Suatu program komputer
Setelah anda membaca buku-buku tentang komputer dan telah mencobanya langsung sehingga sudah terbiasa dengan komputer, maka anda akan lebih tertarik ke tingkat yang lebih tinggi, yaitu ingin menulis suatu program aplikasi sendiri.
  



  1. Komputer Generasi Pertama (1946-1959)
Ciri-ciri Sebagai berikut :
    • Komponen yang digunakan adalah tabung hampa udara (vacumm Tube) untuk sirkuitnya.
    • Program hanya dapat dibuat dengan bahasa mesin (machine language)
    • Menggunakan simpanan luar magnetic tape dan magnetic disk
    • Ukuran fisik komputer besar, memerlukan ruangan yang luas
    • Cepat panas, sehingga diperlukan alat pendingin
    • Prosesnya kurang cepat
    • Simpanannya kecil
    • Membutuhkan daya listrik yang besar
    • Orientasinya terutama pada aplikasi bisnis

Contoh :
·         IBM – 650


  1. Komputer Generasi Kedua (1959 – 1964)
Ciri-ciri sebagai berikut :
·         Komponen yang digunakan adalah transistor untuk sirkuitnya
·         Program dibuat dengan bahasa tingkat tinggi (High Level Language)
·         Menggunakan simpanan luar magnetic tape dan magnetic disk yang berbentuk removable disk atau disk pack
·         Ukuran fisik komputer lebih kecil dibandingkan dengan komputer generasi pertama
·         Proses operasi sudah cepat, dapat memproses jutaan operasi per-detik
·         Membutuhkan lebih sedikit daya listrik
·         Oriesntasinya tidak hanya pada aplikasi bisnis, tetapi juga ke aplikasi teknis

Contoh :
·         IBM – 1620
·         IBM – 1401


  1. Komputer Generasi Ketiga (1964 – 1970)
Ciri-ciri sebagai berikut :
·         Komponen yang digunakan adalah IC (Integrated Circuit)
·         Peningkatan dari softwarenya
·         Lebih cepat dan lebih cepat
·         Kapasitas memori komputer lebih besar, dapat menyimpan ratusan ribu karakter
·         Menggunakan penyimpan luar yang sifatnya random access
·         Penggunaan listrik lebih hemat dibandingkan komputer generasi sebelumnya
·         Memungkinkan untuk melakukan multiprocessing dan multiprogramming
·         Harga semakin murah dibandingkan dengan komputer generasi sebelumnya
·         Kemampuan melakukan komunikasi data dari satu komputer dengan komputer lainnya, misalnya lewat alat komunikasi telepon

Contoh :
·         IBM – S/370
·         UNIVAC 1106


  1. Komputer Generasi Keempat (1970 – 1980)
Ciri-ciri sebagai berikut :
·         Komponen yang digunakan adalah CHIP dan Microprosesor.
·         Semua kemampuan lebih baik dari generasi sebelum-sebelumnya.

Contoh :
·         IBM – 370


  1. Komputer Generasi Kelima (1980 – sekarang)
Cirinya adalah komputer sistem window dan menggunakan mouse pada personal computer (PC).


PENGOLAHAN DATA DENGAN KOMPUTER


PENGERTIAN DATA DAN INFORMASI

Kegiatan pengolahan data sudah dimulai sejak dahulu sejalan dengan perkembangan sistem catat mencatat, yaitu disaat kegiatan manusia sudah semakin banyak sehingga sukar bagi manusia untuk mengingatnya. Kegiatan catat mencatat ini dilakukan diberbagai bidang pekerjaan baik oleh perorangan, perusahaan atau pemerintahan. Dengan semakin bertambahnya jumlah dan arti Data bagi manusia maka mereka berusaha untuk membuat alat yang dapat menggantikan manusia dalam hal catat-mencatat atau administrasi ini.

Hal ini terjawab oleh kemajuan teknologi manusia dengan diciptakannya KOMPUTER sebagai alat pengganti tersebut. Kegiatan catat-mencatat inilah yang sekarang disebut orang dengan istilah DATA PROCESSING. Pada saat ini kegiatan Data Processing ini sudah makin luas, baik dalam kegiatan yang berorientasi kepada ilmu pengetahuan, komersil/bisnis maupun kegiatan pemerintahan, sehingga data yang diolahpun akan bermacam-macam jenisnya sesuai dengan bidang pekerjaan tersebut. Data yang diolah di sini bisa berupa dokumen, surat, kata, bagan, grafik, kondisi, situasi, ide, objek dll yang bisa kita tata. Jadi  data tersebut bisa berupa kartu pegawai, daftar mahasiswa, daftar persediaan barang, catatan pemakai listrik, daftar penjualan barang, absensi murid dan lain sebagainya.

Dari keterangan diatas dapat diambil kesimpulan bahwa data tersebut merupakan bahan yang akan diolah menjadi suatu bentuk yang lebih berguna dan lebih mempunyai arti. Sedangkan informasi adalah hasil pengolahan data atau hasil proses dari data tersebut.

Setelah dilakukan pengolahan, maka sifat data akan berubah sehingga bertambah kegunaannya yang dapat dipakai untuk suatu tujuan tertentu atau untuk analisis dan pengambilan keputusan. Biasanya informasi terdiri dari “Selected Data” yaitu data yang terpilih, tergabung dan disusun sesuai dengan kebutuhan dari pemakai data, masalah waktu, tempat dan fungsinya.


Proses perubahan dari data menjadi informasi merupakan fungsi utama dari pengolahan data.


PENGOLAHAN DATA DENGAN KOMPUTER


Komputer adalah mesin pengolah data yang diciptakan manusia dengan tujuan memberikan jalan untuk mempertinggi produktivitas.

Produktivitas dapat ditingkatkan dalam pengertian :
  1. Dengan mempergunakan komputer kesanggupan mengolah data atau memecahkan masalah akan lebih besar dengan mutu yang lebih baik.
  2. Dengan mempergunakan komputer sebagai pengolah data atau pemecahan suatu masalah dapat lebih cepat terselesaikan
  3. Dengan mempergunakan komputer, pengolahan data atau pemecahan masalah dapat dilaksanakan lebih teliti dan lebih efektif.

Jika ditinjau dari segi fungsionil, komputer itu bisa kita anggap sebagai pelaksana tugas, agar pekerjaan bisa diselesaikan secara baik dan effisien, maka pengolah data harus ada paling sedikit 3 persyaratan :
  1. Kumpulan data atau INPUT yang akan diolah.
  2. Prosedur pengolahan atau prosessing yang telah direncanakan.
  3. Hasil atau OUTPUT yang diinginkan dan akan dipergunakan untuk melakukan tindakan-tindakan selanjutnya.

 
Mesin komputer sebagai pelaksana tugas tidak jauh berbeda dengan manusia yang juga sebagai pelaksana tugas.

Marilah kita tinjau pelaksanaan tugas yang dilakukan oleh manusia dan pelaksanaan tugas yang dilakukan oleh komputer.

  1. PROBLEMA DAN DATA
Proses pelaksanaan tugas baru timbul, jika ada tugas atau ada persoalan yang dikerjakan atau dipecahkan. Untuk pemecahan masalah tersebut haruslah tersedia datanya.

  1. INSTRUKSI ATAU PROGRAM
Bagaimana pemecahan persoalan, hendak diapakan data tersebut harus dijelaskan pada pelaksanaan tugas. Dengan perkataan lain harus ada instruksi yang menegaskan tentang hendak diapakan data tersebut, dan bagaimana pelaksanaan tugas pemecahan problemanya supaya diperoleh hasil yang diinginkan.
Jika si pelaksana tugas tersebut adalah komputer, maka instruksi tersebut harus kita susun menjadi suatu PROGRAM yang disebut dalam suatu bahasa yang dapat diterjemahkan oleh Kompilator ke dalam bahasa mesin sehingga komputer dapat mengerti.

  1. BAHASA PEMROGRAMAN (PROGRAMMING LANGUAGE)
Dalam memberikan instruksi ini haruslah disampaikan dalam suatu bahasa. Untuk manusia sebagai pelaksana tugas, instruksi tersebut bisa kita sampaikan dengan lisan atau dengan suatu tulisan yang bisa dimengerti oleh pelaksana tugas tersebut.Komputer sebagai pelaksana tugas dapat menerima instruksi dengan bahasa yang dapat dimengerti olehnya.

  1. ALAT PERANTARA ATAU INPUT MEDIA
Instruksi yang sudah dinyatakan dalam bahasa tersebut diatas, haruslah disampaikan kepada pelaksana tugas melalui alat perantara (media). Alat perantara untuk menyampaikan instruksi tersebut kepada pelaksana tugas inilah yang dimaksud dengan MEDIA. Jika instruksi kita tuliskan pada kertas, maka kertas tersebut kita sebut sebagai input.

  1. PENTERJEMAH ATAU KOMPILATOR (COMPILER)
Instruksi yang telah dinyatakan dalam bahasa dan disampaikan melalui media input tersebut haruslah dimengerti oleh pelaksana tugas. Jika instruksi tersebut tidak dimengerti oleh pelaksana tugas, haruslah dicarikan penterjemahnya. Dalam bahasa komputer penterjemah ini disebut Kompilator. Dengan adanya kompilator inilah komputer bisa mengerti akan instruksi yang kita berikan padanya.

  1. LOGIKA & ARITMATIKA
Dalam memecahkan suatu problema atau masalah, maka perlu dicarikan cara dan bagaimana jalan yang terbaik agar masalah tersebut bisa terselesaikan. Dalam pemecahan masalah ini biasanya diperlukan suatu logika (logic) dan suatu perhitungan-perhitungan (arithmatic) yang diperlukan.

  1. DAYA INGAT (MEMORY)
Logika dan perhitungan aritmatika tersebut baru dapat dimanfaatkan dalam pemecahan masalah jika disertai dengan INGATAN yang kuat. Cara berfikir yang logis dan daya ingat yang kuat sangat membantu dan mempermudah dalam penyelesaian suatu tugas. Dalam bahasa komputer daya ingat ini kita sebut MEMORI dari komputer tersebut.

  1. PENGALAMAN/LIBRARY
Berhasil atau tidaknya pelaksanaan tugas biasanya tergantung dari pengalaman yang dimiliki. Pengalaman yang banyak sangat berguna dalam penyelesaian tugas-tugas tersebut. Dalam komputer, pengalaman tersebut dinamakan LIBRARY PROGRAM. Bagi manusia sebagai pelaksana tugas, kesanggupan otak ini sangat terbatas, tetapi manusia dapat memanfaatkan buku-buku yang berisikan teori yang berguna dan bermanfaat. Begitu juga dengan komputer Library program yang besar, sangat membantu kesanggupannya dalam memecahkan masalah.
  1. MEDIA OUTPUT SERTA HASIL PEMROSESAN
Hasil yang diperoleh tergantung dari data yang tersedia untuk diolah. Prinsip “GARBAGE IN GARBAGE OUT” berlaku, yaitu jika data yang diolah tidak sempurna atau salah, maka hasil yang diperoleh juga tidak akan baik. Jenis dan bentuk dari hasil ini tergantung dari keinginan si pemakai (user). Untuk penyampaian hasil ini kepada si pemakai maka diperlukan suatu alat perantara yaitu OUTPUT MEDIA. Output media dalam komputer bisa berupa : kertas printer.

  1. KEMAMPUAN MENGKOORDINASI DAN SISTEM OPERASI
Seperti kita ketahui bahwa kita sebagai unit pelaksana tugas, tidaklah bisa mengerjakan seluruh tugas tersebut dengan sendiri-sendiri. Biasanya pekerjaan tugas tersebut terbagi-bagi dengan unit lain yang berhubungan satu dengan lainnya. Jika kita tidak bisa mengkoordinasikan seluruh unit ini dengan baik, maka kita tidak bisa mengharapkan suatu hasil yang baik pula. Jadi dalam pelaksanaan tugas tersebut atau tidaknya kita dalam pemecahan suatu masalah adalah tergantung dari kemampuan kita dalam mengkoordinasikan baik petugas pelaksana, peralatan serta hal-hal lainnya yang berhubungan dengan pelaksanaan tersebut. Pada komputer kemampuan untuk mengkoordinasikan ini kita sebut dengan OPERATING SYSTEM.
Operating system inilah yang akan mengkoordinasikan seluruh peralatan atau device yang merupakan bagian yang tak terpisahkan dari suatu sistem komputer.




Suatu sistem komputer adalah merupakan gabungan dari beberapa peralatan komputer yang saling berhubungan dan terkoordinasikan oleh suatu sistem operasi. Sistem komputer bekerja sesuai dengan instruksi-instruksi yang diberikan padanya melalui Bahasa Pemrograman yang dikenalnya. Dalam suatu sistem komputer terdapat bagian/peralatan untuk menerima dan memasukkan data dan instruksi. Alat ini kita sebut INPUT DEVICE. Data yang dimasukkan melalui input device ini akan ditampung dalam suatu peralatan komputer yang disebut memory atau storage. Data yang telah berada dalam storage akan dimasukkan oleh suatu bagian komputer yang kita sebut CPU (Central Processing Unit). CPU ini terdiri dari Control Unit dan Arithmatic Logical Unit.
Proses data serta perhitungan-perhitungan dilakukan oleh arithmatic logical unit sesuai dengan instruksi yang kita berikan dalam bahasa pemrograman. Setelah proses dan perhitungan dilakukan, maka selanjutnya akan dikeluarkan melalui OUTPUT DEVICE.



MENGENAL PERANGKAT KERAS (HARDWARE) KOMPUTER


Sebagaimana kita ketahui bahwa komputer adalah serangkaian peralatan elektronika yang bergabung/terpadu dan bekerja secara bermacam-macam serta terkoordinasi oleh suatu sistem operasi.

Seperangkat alat-alat elektronika ini adalah berupa mesin-mesin/komponen-komponen yang secara lahiriah ada dan bisa dilihat, peralatan-peralatan/komponen-komponen inilah yang kita sebut dengan ‘COMPUTER HEARD-WERE’.

Pada umumnya suatu kesatuan peralatan komputer haruslah terdiri minimal oleh 4 komponen yaitu :
·         Input device
·         Storage Unit
·         CPU (Central Processing Unit)
·         Output device

Akhir-akhir ini kemajuan teknologi yang terus berkembang dan kebutuhan orang akan informasi juga bertambah terutama dalam hal kecepatan penyampaian informasi maka diperlukan suatu alat/komponen lain yang bisa menyampaikan data/informasi ke dan dari komputer kepada si pemohon secara cepat pula.

Alat ini kita sebut dengan CCU (Communication Control Unit) yaitu suatu peralatan yang berfungsi untuk memudahkan/memancarkan sinyal-sinyal data/perintah dari suatu tempat ke tempat lain atau dari suatu komputer ke komputer lain dengan jarak yang jauh sekali.

Dengan adanya alat ini maka umumnya komputer-komputer sekarang inipun selalu melengkapi alat ini sebagai sesatuan sistem komputernya.

Jadi komponen yang membentuk suatu sistem komputer sekarang inipun menjadi 5 komponen yaitu :
  • Input Device
  • Storage Unit
  • CPU
  • Output device
  • CCU (Communication Control Unit)


KONFIGURASI SISTEM KOMPUTER

Seperti telah disebutkan diatas, ke 5 komponen atau peralatan itulah yang merupakan konfigurasi dari sistem komputer.

Konfigurasi sistem komputer tersebut kita bisa gambarkan sebagai berikut :


KETERANGAN

Data/perintah akan masuk melalui peralatan input (input device). Data/perintah tersebut bisa dimasukkan langsung ke peralatan input ataupun melalui CCU. Data/perintah itu kemudian dimasukkan ke dalam memori (tempat penyimpanan) kemudian dari sini data tersebut akan dikirim ke CPU untuk diolah dan hasil pengolah CPU ini akan dibawa lagi ke memori. Dari memori hasil-hasil pengolahan CPU ini bisa dikeluarkan sebagai output/hasil melalui media output (Output Device) atau disimpan saja di memori untuk digunakan dalam proses selanjutnya.

Seluruh kegiatan pemindahan data, perhitungan-perhitungan dan lain-lain pekerjaan yang dilakukan oleh komponen/device-device komputer tersebut akan dikontrol oleh suatu alat yang kita sebut dengan Control Unit.
INPUT & OUTPUT DEVICE

Input Device adalah suatu bagian/komponen dari sistem komputer yang berfungsi untuk tempat kita memasukkan data maupun instruksi-instruksi kepada komputer.

Data maupun instruksi yang kita masukkan ke dalam komputer adalah data/instruksi yang masih dalam bahasa ataupun kode-kode, sedangkan mesin komputer hanya mengenal data/instruksi tersebut jika sudah dalam bentuk kode-kode binar (bit), jadi agar komputer bisa mengenal data/instruksi-instruksi tersebut, alat inilah yang akan melakukan terjemahan/konversinya.

Alat-alat Input (Input Device) ini antara lain adalah
  • Card Reader
  • Magnetic Ink Character Reader (M.I.C.R)
  • Optical Character Reader (O.C.R)


Output Device adalah suatu komponen dari sistem komputer yang berfungsi untuk tempat mengeluarkan hasil-hasil pengolahan yang telah dilakukan oleh komputer.

Semula hasil pengolahan komputer ini juga merupakan kode/simbol yang masih dalam bentuk kode binar (bit), maka agar kita sebagai pemakai komputer bisa membacanya, simbol binar itu harus dikonversikan lagi ke dalam bentuk bahasa yang kita kenal. Output device inilah yang berfungsi melakukan tugas tersebut.

Alat-alat output ini antara lain adalah :
  • Printer
  • Plotter
  • Card Punch
  • Dll.

Device-device yang kita sebutkan diatas adalah device-device yang hanya berfungsi sebagai input saja ataupun sebagai outpu saja. Ada juga device-device lain yang bisa berfungsi sebagai input dan sekaligus berfungsi sebagai outpu, antara lain :
  • Magnetic Tape Unit
  • Magnetic Disk Unit
  • Paper Tape Unit
  • Console
  • Display Unit
  • Card Read Punch
  • Dll


 Media penyimpanan atau storage atau memori dapat dibedakan atas 2 bagian, yaitu :
-          Internal Storage ( Primary Storage )
-          External Storage ( Secondary Storage )

 INTERNAL STORAGE

Internal Storage adalah storage yang terletak di dalam atau berhubungan langsung dengan Control Processing Unit.
Storage ini terdiri dari :
  • Main Storage
  • General Storage
  • Control Register
  • Floating Point Register
  • Relocatable Control Storage
  • Buffer


EXTERNAL STORAGE

External Storage adalah storage yang terpisah atau tidak berhubungan langsung dengan CPU misalnya Magnetic Tape dan Magnetic Disk.



MEDIA PENYIMPANAN YANG MUTAKHIR

MEMORI DAN MEDIA

Pada tahap pertama memori komputer berwujud ROM (Read Only Memory) dan RAM (Random Access Memory). Kelemahannya, memori ini berbentuk chip, dan terbatas kapasitasnya. Isi ROM memang tidak akan terhapus oleh matinya arus listrik. Tetapi isi RAM akan terhapus bila listrik mati.
Sementara itu, dalam mengoperasikan komputer yang ingin agar program, data dan hasil kerja komputer dapat direkam dan dapat diambil lagi sewaktu-waktu. Oleh sebab itu muncul pemikiran perlunya dibuat media penyimpanan, sebagai perpanjangan dari fungsi memori.
Media penyimpanan kini banyak jenisnya, contohnya adalah floppy disk, hard disk , CD-ROM.



FLOPPY DISK
Floppy disk adalah media penyimpanan yang terbuat dari plastik mylar. Plastik tipis ini dilapisi bahan magnetik dan dibungkus dalam sebuah jaket plastik pula. Terdapat  beberapa ukuran disket, yaitu 8 inci, 5¼ inci dan 3½ inci.

HARD DISK
Hard disk disebut juga fixed disk. Tetapi istilah Fixed Disk menjadi tidak tepat, karena kini sudah muncul Removable Hard Disk. Kata hard disk menunjuk pada bahan disknya yang memang keras. Kalau floopy disk dibuat dari plastik mylar, maka hard disk dibuat dari alumunium dan dilapisi bahan magnetik.
Hard disk merupakan media penyimpanan yang paling handal. Keunggulan hard disk dibanding floopy disk adalah pada kecepatann dan kapasitasnya. Dengan bahan dasar yang kuat, maka hard disk dapat diputar lebih cepat. Demikian pula lapisan magnetik lebih kompak dan padat.


CD-ROM
CD-ROM ( Compact Disk Read Only Media ) merupakan salah satu terobosan baru dalam bidang media penyimpanan. Bahan piringan CD-ROM adalah plat alumunium yang dilapisi bahan semacam chrome yang mengkilat. Disini tidak dipakan bahan magnetik, melainkan bahan yang memantulkan cahaya.
Dibandingkan dengan hard disk, kecepatan kerja CD-ROM lebih lambat lima kali. Hal ini karena cara pengalamatannya yang mirip dengan cara sekuensial.
CD-ROM tepat untuk digunakan dalam penyimpanan data yang sifatnya permanen, misalnya data base perpustakaan, bank data dan lain-lain data yang tidak terlalu sering di-update.



MENGENAL STRUKTUR DATA DAN PENYAJIAN DATA DALAM KOMPUTER


Salah satu hal penting yang tidak dapat ditinggalkan dalam pemakaian komputer adalah data. Data dapat diperoleh dari berbagai sumber. Ia dapat diperoleh sebagai hasil pengukuran di laboratorium, dari hasil survei, angket dan lain-lain. Dengan berbagai macam cara, data ditransformasi menghasilkan informasi.
Informasi sangat penting, karena memberikan dasar bagi pembuatan keputusan yang mantap dan ilmiah.
Dalam lembaga dan organisasi, baik bersifat komersial ataupun industrial, bahkan organisasi yang bagaimanapun bentuknya, data dipandang sebagai suatu kekayaan yang penting dan mahal. Memang, kadang-kadang data sulit diperoleh.
Data yang kita miliki, terdiri dari berbagai jenis. Untuk mengelola data yang bermacam-macam jenis tersebut secara baik guna menghasilkan informasi pengetahuan mengenai struktur data.


STRUKTUR DATA
Struktur data adalah suatu koleksi/kelompok data yang dapat dikarakterisasikan oleh organisasi serta operasi yang didefinisikan terhadapnya.
Struktur data sangat penting dalam sistem komputer. Terhadap setiap variabel dalam program, secara eksplisit atau implisit, didefinisikan struktur data yang akan menentukan operasi-operasi yang berlaku terhadap variabel tersebut.
Struktur data yang dibicarakan ini merupakan struktru data logik. Bukan penyajian secara fisik pada storage.
Pada garis besarnya, data dapat kita kategorikan menjadi :
- Data Type :
    • Tunggal, misalnya : Integer, Boolean serta karakter
    • Majemuk, misalnya : String (untai).
Data type ini dengan berbagai cara tertentu dapat diorganisasikan menjadi struktur data.
-          Struktur Data.
·         Sederhana, misalnya : Array dan Record
·         Majemuk, terdiri atas :
-          Linier, misalnya : Stack, Queue, Linear Linked List
-          Nonlinier, misalnya : Binary Tree, Binary Search Tree, M-way Search Tree, General Tree, Graph.