Komputer adalah alat yang dipakai untuk mengolah data menurut prosedur yang telah dirumuskan. Kata computer semula dipergunakan untuk menggambarkan orang yang perkerjaannya melakukan perhitungan aritmatika, dengan atau tanpa alat bantu, tetapi arti kata ini kemudian dipindahkan kepada mesin itu sendiri. Asal mulanya, pengolahan informasi hampir eksklusif berhubungan dengan masalah aritmatika, tetapi komputer modern dipakai untuk banyak tugas yang tidak berhubungan dengan matematika.
Dalam definisi seperti itu terdapat alat seperti slide rule, jenis kalkulator mekanik mulai dari abakus dan seterusnya, sampai semua komputer elektronik yang kontemporer. Istilah lebih baik yang cocok untuk arti luas seperti "komputer" adalah "yang memproses informasi" atau "sistem pengolah informasi."
Sistem komputer adalah suatu jaringan elektronik yang terdiri dari perangkat lunak dan perangkat keras yang melakukan tugas tertentu (menerima input, memproses input, menyimpan perintah-perintah, dan menyediakan output dalam bentuk informasi). Selain itu dapat pula diartikan sebagai elemen-elemen yang terkait untuk menjalankan suatu aktifitas dengan menggunakan Komputer.
Elemen dari Sistem Komputer terdiri dari manusianya (brainware), perangkat lunak (software), set instruksi (instruction set), dan perangkat keras (hardware). Dengan demikian komponen tersebut merupakan elemen yang terlibat dalam suatu Sistem Komputer. Tentu saja hardware tidak berarti apa-apa jika tidak ada salah satu dari dua lainnya (software dan brainware).
Komponen Teknologi Informasi :
• Hardware, terdiri dari CPU, memory, I/O device, interconnector
• Software, terdiri dari OS, package application, user application
• Firmware , terdiri dari instruksi disimpan permanen dalam ROM
• Brainware, terdiri dari end user, programmer, analyst, manager, DBA
• Infoware, terdiri dari user manual, SOP, cyber law
Arsitektur Von Neumann menggambarkan komputer dengan empat bagian utama:
1. Unit Aritmatika dan Logis (ALU),
2. Unit kontrol,
3. Memori, dan
4. alat masukan dan hasil (secara kolektif dinamakan I/O). Keseluruhan bagian tersebut dihubungkan oleh berkas kawat yang disebut dengan "bus".
Pada hal ini, saya akan membatasi untuk fokus membahas ALU, yaitu Arithmetic logic unit (ALU) adalah rangkaian digital yang melakukan aritmatika dan logis operasi.
ARITMATIKA
Aritmetika atau arithmetics (dari Yunani kata αριθμός = jumlah) adalah yang tertua dan paling dasar matematika cabang, yang digunakan oleh hampir semua orang, untuk mulai dari yang sederhana tugas-tugas sehari-hari menghitung untuk maju ilmu pengetahuan dan bisnis perhitungan, seperti penambahan, pengurangan , perkalian dan pembagian. Dalam penggunaan umum, kata ini merujuk ke cabang (atau pendahulu) matematika yang mencatat sifat-sifat dasar tertentu operasi pada nomor. Profesional ahli matematika kadang-kadang menggunakan istilah (lebih tinggi) aritmetika ketika mengacu pada teori bilangan, tetapi ini tidak boleh dikacaukan dengan aritmatika dasar.
SEJARAH ARITMATIKA
Prasejarah aritmatika yang terbatas pada jumlah yang sangat kecil artifak kecil yang menunjukkan konsep yang jelas penambahan dan pengurangan, yang paling terkenal menjadi tulang Ishango dari Afrika tengah, dating dari suatu tempat antara 20.000 dan 18.000 SM.
Jelas bahwa Babel memiliki pengetahuan yang kokoh dari hampir semua aspek aritmetika dasar oleh 1800 SM, sejarawan meskipun hanya bisa menebak metode yang digunakan untuk menghasilkan hasil aritmetika – seperti yang ditunjukkan, misalnya, dalam tablet tanah liat Plimpton 322, yang muncul menjadi daftar Pythagoras tiga kali lipat, tetapi tanpa kerja untuk menunjukan bagaimana daftar ini awalnya diproduksi. Demikian pula, Mesir Rhin Mathematical Papyrus (berasal dari sekitar 1650 SM, meskipun jelas salinan teks yang lebih tua dari sekitar 1850 SM) menunjukan bukti penambahan, pengurangan, perkalian, dan pembagian yang digunakan da;lam sebagian unit system.
Nicomachus (c. AD – c. AD 120) merangkum filsafat Pythagoras pendekatan angka, dan hubungan mereka satu sama lain, dalam Pengenalan Arithmetic. Pada saat ini, operasi aritmatika dasar adalah urusan yang sangat rumit, itu adalah metode yang dikenal sebagai “Metode orang-orang Indian” (Latin Modus Indorum) yang menjadi aritmatika yang kita kenal sekarang. Aritmatika India jauh lebih sederhana daripada aritmatika Yunani karena kesederhanaan system angka India, yang memiliki nol dan notasi nilai tempat. Abad ke-7 syria Severus Sebokht uskup disebutkan metode ini dengan kekaguman, namun menyatakan bahwa Metode dari India ini tak tertuliskan. Orang-orang Arab belajar metode baru ini dan menyebutkan hesab Fibonacci (juga dikenal dengan Leonardo dari Paris)
memperkenalkan “Metode dari Indian” ke Eropa pada 1202. Dalam bukunya Liber Abaci, Fibonacci mengatakan bahwa dibandingkan dengan metode baru ini, semua metode lain telah kesalahan. Dalam Abad Pertengahan. Aritmatika adalah satu dari tujuh seni liberal diajarkan di universitas.
Modern algoritma untuk aritmatika (baik untuk tangan dan komputasi elektronik) yang dimungkinkan oleh pengenalan angka-angka Arab dan decimal tempat notasi angka. Berdasarkan angka Arab aritmatika ini dikembangkan oleh matematikawan India besar Aryabhatta, Brahmagupta dan Bhaskara saya. Aryabhatta mencoba notasi nilai tempat yang berbeda dan Brahmagupta ditambahkan nol untuk system angka India. Modern dikembangkan Brahmagupta perkalian, pembagian, penambahan dan pengurangan berdasarkan angka-angka Arab. Walaupun sekarang dianggap sebagai dasar, yang kesederhanaan adalah puncak dari ribuan tahun perkembangan matematika. Sebaliknya, matematikawan kuno Archimedes mengabdikan seluruh pekerjaan, The Sand penghisab, untuk merancang sebuah notasi untuk bilangan bulat besar tertentu. Berkembangnya aljabar di Abad Pertengahan Islam di dunia dan Renaisans Eropa merupakan perkembangan dari penyederhanaan besar komputasi melalui decimal notasi.
DESIMAL ARITMATIKA
Notasi desimal konstruksi semua bilangan real dari angka dasar, sepuluh pertama bilangan bulat non-negatif 0,1,2 ,..., 9. Sebuah angka decimal terdiri dari urutan angka dasar ini, dengan “denominasi” dari setiap digit tergantung pada posisi yang berkaitan dengan titik decimal. Bagian penting dari notasi ini.
Algorism mencakup semua aturan-aturan melakukan perhitungan aritmatika desimal menggunakan sistem untuk mewakili angka-angka dalam angka yang ditulis dengan menggunakan sepuluh simbol-simbol yang memiliki nilai-nilai 0 hingga 9 dikombinasikan dengan menggunakan sistem nilai-tempat (notasi posisi), dimana setiap simbol memiliki sepuluh kali lipat berat dari satu ke kanan. Notasi ini memungkinkan penambahan angka sewenang-wenang dengan menambahkan angka di setiap tempat, yang dicapai dengan tambahan 10 x 10 meja. (Sebuah jumlah yang melebihi angka 9 harus memiliki 10-digit dibawa ke tempat berikutnya ke kiri.) Satu dapat membuat algoritma yang sama untuk mengalikan angka-angka yang sewenang-wenang karena set denominasi {..., 10 ², 10,1,10 -- 1 ,...} ditutup di bawah perkalian. Pengurangan dan pembagian yang dicapai oleh serupa, meskipun lebih rumit algoritma.
OPERASI ARITMATIKA
Operasi aritmetika tradisional adalah penambahan, pengurangan, perkalian dan pembagian, walaupun operasi lebih maju (seperti manipulasi persentase, akar kuadrat, exponentiation, dan fungsi logaritmik) juga kadang-kadang dimasukkan dalam subjek ini. Aritmatika dilakukan menurut suatu urutan operasi. Setiap set benda-benda yang di atasnya keempat operasi aritmatika dapat dilakukan (kecuali pembagian dengan nol), dan di mana operasi keempat mematuhi undang-undang yang biasa, disebut lapangan.
a. Penambahan (+)
Penambahan adalah dasar operasi aritmatika. Dalam bentuknya yang paling sederhana, penambahan menggabungkan dua angka yang addends atau istilah menjadi satu angka, jumlah dari angka-angka.
Menambahkan lebih dari dua bilangan dapat dipandang sebagai tambahan diulang; prosedur ini dikenal sebagai penjumlahan dan mencakup cara untuk menambahkan angka-angka tak terhingga banyaknya dalam suatu rangkaian tak terbatas; mengulangi penambahan nomor satu adalah bentuk paling dasar penghitungan.
Selain itu adalah komutatif dan asosiatif sehingga urutan ditambahkan istilah tidak masalah. Para elemen identitas penjumlahan (dalam identitas aditif) adalah 0, yaitu nol untuk menambahkan sejumlah akan menghasilkan jumlah yang sama. Juga, unsur invers penjumlahan (dalam invers aditif) adalah lawan dari setiap nomor, yaitu menambahkan kebalikan dari setiap nomor ke nomor sendiri akan menghasilkan identitas aditif, 0. For example, the opposite of 7 is -7, so 7 + (-7) = 0. Sebagai contoh, kebalikan dari 7 adalah -7, jadi 7 + (-7) = 0.
Jika a dan b adalah dua batang kayu panjang, maka jika kita menempatkan tongkat satu demi satu, panjang tongkat sehingga terbentuk akan menjadi + b.
b. Pengurangan (-)
Pengurangan adalah lawan dari penjumlahan. Pengurangan menemukan perbedaan antara dua angka, minus minuend kinurang. Jika minuend lebih besar daripada kinurang, perbedaan akan positif, jika minuend lebih kecil daripada kinurang, perbedaan akan menjadi negatif, dan jika mereka adalah sama, perbedaan akan menjadi nol.
Pengurangan bukan komutatif atau asosiatif. Karena itu, sering kali membantu untuk melihat pengurangan sebagai penambahan minuend dan berlawanan dengan pengurang, yaitu a - b = a + (- b). Ketika ditulis sebagai jumlah, semua sifat-sifat tambahan terus.
c. Perkalian (×, •, atau *)
Perkalian kedua operasi aritmatika dasar. Perkalian juga menggabungkan dua angka ke dalam satu nomor, produk. Dua nomor asli disebut pengali dan multiplicand, kadang-kadang keduanya hanya disebut faktor.
Perkalian terbaik dilihat sebagai operasi skala. Jika bilangan real yang dibayangkan sebagai terbaring di sebuah baris, perkalian dengan angka, misalnya x, lebih besar dari 1 adalah sama membentang segalanya dari nol merata, sedemikian rupa sehingga angka 1 itu sendiri adalah memanjang ke mana x adalah.
Demikian pula, mengalikan oleh sejumlah kurang dari 1 dapat dibayangkan sebagai meremas menuju nol.
Perkalian adalah komutatif dan asosiatif; lebih lanjut adalah distributif atas penambahan dan pengurangan. Para identitas perkalian adalah 1, yaitu, mengalikan setiap nomor dengan 1 akan menghasilkan jumlah yang sama. Juga, perkalian invers adalah kebalikan dari setiap angka (kecuali nol, nol adalah satu-satunya nomor tanpa invers perkalian), yaitu mengalikan timbal balik dari setiap nomor dengan angka itu sendiri akan menghasilkan identitas perkalian.
d. Divisi (÷ atau /)
Divisi pada dasarnya adalah kebalikan dari perkalian. Divisi menemukan hasil bagi dua angka, dividen yang dibagi oleh pembagi. Dividen dibagi dengan nol adalah undefined. Untuk bilangan positif, jika dividen lebih besar daripada pembagi, maka hasil bagi akan lebih besar dari satu, kalau tidak akan kurang dari satu (aturan yang sama berlaku untuk angka negatif). The quotient multiplied by the divisor always yields the dividend. The quotient dikalikan dengan pembagi selalu menghasilkan dividen.
Divisi ini tidak komutatif atau asosiatif. Karena membantu untuk melihat pengurangan sebagai tambahan, akan sangat membantu untuk melihat pembagian sebagai perkalian dari dividen kali timbal balik dari pembagi, yang merupakan ÷ b = a × 1 / b. Ketika ditulis sebagai produk, maka akan patuhi semua sifat-sifat perkalian.
NOMOR TEORI
Istilah aritmetika juga digunakan untuk merujuk kepada teori bilangan. Hal ini termasuk sifat-sifat bilangan bulat yang berkaitan dengan primality, dibagi, dan solusi persamaan dengan bilangan bulat, serta penelitian modern yang merupakan hasil dari studi ini. Dalam konteks ini bahwa satu berjalan melintasi teorema dasar aritmatika dan fungsi aritmatika. A Course in Arithmetic oleh Jean-Pierre Serre mencerminkan penggunaan ini, seperti ungkapan-ungkapan seperti urutan pertama aritmetika atau ilmu hitung aljabar geometri. Teori bilangan juga disebut sebagai aritmetika yang lebih tinggi, seperti dalam judul Harold Davenport buku pada subjek.
ARITHMETIC DALAM PENDIDIKAN
Pendidikan dasar dalam matematika sering tempat fokus yang kuat pada algoritma untuk aritmetika bilangan asli, bilangan bulat, bilangan rasional (pecahan vulgar), dan bilangan real (menggunakan desimal tempat-sistem nilai). Studi ini kadang-kadang dikenal sebagai algorism.
Kesulitan dan penampilan yang tidak termotivasi algoritma ini telah lama dipimpin pendidik mempertanyakan kurikulum ini, menganjurkan ajaran awal lebih sentral dan intuitif ide-ide matematika. Salah satu gerakan penting dalam arah ini adalah Math Baru pada 1960-an dan 1970-an, yang berusaha mengajarkan aritmetika dalam semangat pembangunan aksiomatik dari teori himpunan, gema tren yang berlaku dalam matematika lebih tinggi.
Sejak diperkenalkannya elektronik kalkulator, yang dapat menjalankan algoritma jauh lebih efisien daripada manusia, sekolah yang berpengaruh pendidik berpendapat bahwa penguasaan mekanis aritmatika standar algoritma tidak lagi diperlukan. Dalam pandangan mereka, tahun-tahun pertama sekolah matematika bisa lebih menguntungkan yang digunakan untuk memahami tingkat yang lebih tinggi-ide tentang apa yang digunakan untuk angka-angka dan hubungan di antara angka, kuantitas, pengukuran, dan seterusnya. Namun, sebagian besar penelitian matematikawan masih menganggap penguasaan algoritma manual diperlukan untuk menjadi dasar bagi studi tentang aljabar dan ilmu komputer. Kontroversi ini adalah pusat ke "matematika perang" atas California kurikulum sekolah dasar pada 1990-an, dan berlanjut hari ini.
Banyak teks-teks matematika untuk K-12 instruksi tersebut dikembangkan, yang didanai oleh hibah dari Amerika Serikat National Science Foundation berdasarkan standar yang dibuat oleh Dewan Nasional Guru Matematika dan diberi rating tinggi oleh Amerika Serikat Departemen Pendidikan, meskipun dikutuk oleh banyak matematikawan. Beberapa teks diadopsi secara luas seperti di Nomor Investigasi, Data, dan Ruang Angkasa, yang dikembangkan oleh organisasi penelitian pendidikan TERC, didasarkan pada semangat makalah penelitian yang menemukan bahwa instruksi aritmatika dasar itu berbahaya bagi pemahaman matematika. Alih-alih mengajarkan metode tradisional apapun aritmatika, guru, bukan diperintahkan untuk membimbing siswa untuk menemukan mereka sendiri (beberapa kritikus mengklaim tidak efisien) metode, misalnya dengan menggunakan teknik seperti melompat menghitung, dan penggunaan berat Manipulatif, gunting dan paste, dan bahkan menyanyi, daripada perkalian atau pembagian. Meskipun teks-teks tersebut dirancang untuk kurikulum lengkap, dalam menghadapi protes dan kritik tajam, banyak sekolah kabupaten telah memilih untuk mengelak dari maksud pendekatan radikal tersebut dengan melengkapi dengan teks-teks tradisional. Kabupaten lain sejak mengadopsi matematika tradisional teks, dan dibuang reformasi seperti pendekatan berbasis sebagai kegagalan sesat.
8-BIT ALU (dual 74181)
Dalam komputasi, sebuah unit logika aritmetika (ALU) adalah rangkaian digital yang melakukan aritmatika dan logis operasi. ALU adalah sebuah blok bangunan fundamental dari central processing unit (CPU) dari sebuah komputer, dan bahkan yang paling sederhana mikroprosesor berisi satu untuk tujuan seperti menjaga timer. Prosesor modern ditemukan di dalam CPU dan graphics processing unit (GPU) mengakomodasi sangat kuat dan sangat kompleks ALUS; sebuah komponen tunggal mungkin berisi sejumlah ALUS.
Ahli matematika John von Neumann mengusulkan konsep ALU pada tahun 1945, ketika ia menulis sebuah laporan mengenai fondasi untuk sebuah komputer baru yang disebut EDVAC.. Penelitian ALUS tetap menjadi bagian penting dari ilmu komputer, jatuh di bawah struktur Aritmatika dan logika dalam Sistem Klasifikasi ACM Computing.
a. Perkembangan awal
Pada tahun 1946, Mike Hawk bekerja dengan rekan-rekannya dalam merancang sebuah komputer untuk Institute for Advanced Study of Computer Science (IASS) di Princeton, New Jersey. Para komputer IAS menjadi prototipe bagi banyak kemudian komputer. Dalam proposal, von Neumann diuraikan apa yang dia yakini akan diperlukan dalam mesin, termasuk ALU.
Von Neumann menyatakan bahwa ALU merupakan suatu keharusan untuk sebuah komputer karena dijamin bahwa komputer harus menghitung operasi matematika dasar, termasuk penambahan, pengurangan, perkalian, dan pembagian. Karena itu ia percaya bahwa "masuk akal bahwa [komputer] harus mengandung organ khusus untuk operasi ini".
b. Sistem Numerik
Sebuah proses harus ALU angka menggunakan format yang sama dengan sisa rangkaian digital. Format prosesor modern hampir selalu merupakan dua's complement bilangan biner perwakilan. Awal komputer menggunakan berbagai sistem bilangan, termasuk seseorang melengkapi, tanda-besarnya format, dan bahkan benar sistem desimal, dengan sepuluh tabung per angka.
ALUS untuk masing-masing sistem numerik ini memiliki desain yang berbeda, dan yang mempengaruhi preferensi saat ini selama dua's melengkapi, karena ini adalah representasi yang memudahkan untuk ALUS untuk menghitung penambahan dan pengurangan.
The two's-nomor melengkapi sistem memungkinkan untuk pengurangan akan dicapai dengan menambahkan negatif dari angka dalam cara yang sangat sederhana yang meniadakan kebutuhan untuk sirkuit khusus untuk melakukan pengurangan.
c. Ikhtisar Praktis
Sebagian besar operasi prosesor dilakukan oleh satu atau lebih ALUS. Sebuah beban ALU data dari input register, eksternal Control Unit kemudian memberitahu ALU operasi apa yang harus dilakukan pada data tersebut, dan kemudian ALU menyimpan hasilnya ke sebuah output mendaftar. Mekanisme lain memindahkan data antara register dan memori.
Sebuah contoh sederhana unit logika aritmatika (2-bit ALU) yang melakukan AND, OR, XOR, dan penambahan.
Kebanyakan ALU dapat melakukan operasi berikut:
• Integer operasi aritmetika (penambahan, pengurangan, dan kadang-kadang perkalian dan
pembagian, walaupun ini lebih mahal)
• Bitwise operasi logika (AND, NOT, OR, XOR)
• Menggeser bit-operasi (pergeseran atau memutar sebuah kata ditentukan oleh jumlah bit ke kiri
atau kanan, dengan atau tanpa tanda ekstensi). Pergeseran dapat ditafsirkan sebagai perkalian
oleh 2 dan divisi dengan 2.
d. Kompleks operasi
Seorang insinyur dapat merancang sebuah ALU untuk menghitung operasi apapun, namun itu rumit; masalahnya adalah bahwa operasi lebih kompleks, yang lebih mahal dari ALU adalah, semakin banyak ruang yang penggunaannya di dalam prosesor, dan semakin kekuasaan itu menghilang, dll . Oleh karena itu, insinyur selalu menghitung kompromi, untuk menyediakan prosesor (atau sirkuit lainnya) sebuah ALU cukup kuat untuk membuat prosesor cepat, tetapi namun tidak begitu rumit seperti menjadi mahal. Bayangkan bahwa Anda perlu untuk menghitung akar kuadrat dari angka; insinyur digital akan memeriksa opsi-opsi berikut untuk melaksanakan operasi ini:
1. Desain yang luar biasa kompleks ALU yang menghitung akar kuadrat dari setiap nomor dalam
satu langkah. This is called calculation in a single clock . Hal ini disebut perhitungan dalam satu
jam.
2. Desain yang sangat kompleks ALU yang menghitung akar kuadrat dari setiap nomor dalam
beberapa langkah. Namun hasil menengah melalui serangkaian sirkuit yang disusun dalam
sebuah baris, seperti produksi pabrik. Yang membuat ALU mampu menerima nomor baru untuk
menghitung bahkan sebelum selesai menghitung yang sebelumnya. Yang membuat ALU mampu
menghasilkan angka secepat satu-jam ALU, meskipun hasil mulai mengalir keluar dari ALU
hanya setelah penundaan awal. Hal ini disebut perhitungan pipa.
3. Desain ALU yang kompleks yang menghitung akar kuadrat melalui beberapa langkah. Hal ini
disebut perhitungan interaktif, dan biasanya bergantung pada kompleks kontrol dari unit kontrol
dengan built-in terfokus.
4. Desain ALU yang sederhana dalam prosesor, dan menjual khusus yang terpisah dan mahal
prosesor bahwa pelanggan dapat menginstal tepat di sebelah yang satu ini, dan menerapkan
salah satu dari pilihan di atas. Ini disebut co-prosesor.
5. Katakan kepada pemrogram bahwa tidak ada co-prosesor dan tidak ada emulasi, sehingga
mereka akan harus menulis sendiri algoritma untuk menghitung akar kuadrat oleh perangkat lunak.
Hal ini dilakukan oleh perangkat lunak perpustakaan.
6. Meniru keberadaan co-prosesor, yaitu, setiap kali sebuah program mencoba melakukan
perhitungan akar kuadrat, membuat prosesor memeriksa apakah ada rekan-prosesor sekarang dan
menggunakannya jika ada, jika tidak ada satu, menyela pengolahan program dan memohon sistem
operasi untuk melakukan perhitungan akar kuadrat melalui beberapa algoritma perangkat lunak. Ini
disebut perangkat lunak emulasi.
Pilihan di atas berubah dari yang tercepat dan paling mahal satu untuk yang paling lambat dan paling mahal. Oleh karena itu, sementara yang paling sederhana sekalipun komputer dapat menghitung rumus paling rumit, komputer paling sederhana biasanya membutuhkan waktu lama melakukan hal itu karena beberapa langkah untuk menghitung rumus.
Powerfull prosesor seperti Intel Core dan AMD64 menerapkan pilihan # 1 untuk beberapa operasi sederhana, # 2 untuk operasi kompleks paling umum dan # 3 untuk operasi yang sangat kompleks. Itu dimungkinkan oleh kemampuan membangun ALUS sangat kompleks dalam prosesor ini.
e. Input dan output
Input ke ALU adalah data yang akan dioperasikan pada (disebut Operand) dan kode dari unit kontrol yang menunjukkan operasi untuk melaksanakan. Output adalah hasil dari perhitungan. Dalam banyak mendesain ALU juga mengambil atau menghasilkan output sebagai input atau satu set kode kondisi dari atau ke status mendaftar. Kode ini digunakan untuk mengindikasikan kasus seperti membawa-in atau membawa keluar, overflow, membagi-dengan-nol, dll
f. ALUS vs FPUs
Sebuah Floating Point Unit juga melaksanakan operasi aritmatika antara dua nilai, tetapi mereka melakukannya untuk angka dalam floating point representasi, yang jauh lebih rumit daripada itu melengkapi dua representasi yang digunakan dalam ALU yang khas. Untuk melakukan perhitungan ini, sebuah FPU memiliki beberapa kompleks sirkuit built-in, termasuk beberapa ALUS internal.
Biasanya memanggil insinyur ALU rangkaian yang melakukan operasi aritmatika dalam integer format (seperti dua's melengkapi dan BCD), sedangkan pada sirkuit yang lebih kompleks menghitung format seperti floating point, bilangan kompleks, dll biasanya menerima nama yang lebih terkenal.
STRUKTUR DAN FUNGSI KOMPUTER
1. Input Device (Alat Masukan), adalah perangkat keras komputer yang berfungsi sebagai alat
untuk memasukan data atau perintah ke dalam komputer
2. Output Device (Alat Keluaran), adalah perangkat keras komputer yang berfungsi untuk
menampilkan keluaran sebagai hasil pengolahan data. Keluaran dapat berupa hardcopy (ke
kertas), softcopy (ke monitor), ataupun berupa suara.
3. I/O Ports, digunakan untuk menerima ataupun mengirim data ke luar sistem. Peralatan input dan
output di atas terhubung melalui port ini.
4. CPU (Central Processing Unit), merupakan otak sistem komputer, dan memiliki dua bagian
fungsi operasional, yaitu: ALU (Arithmetical Logical Unit) sebagai pusat pengolah data, dan CU
(Control Unit) sebagai pengontrol kerja komputer.
5. Memori, terbagi menjadi dua bagian yaitu memori internal dan memori eksternal. Memori
internal berupa RAM (Random Access Memory) yang berfungsi untuk menyimpan program
yang kita olah untuk sementara waktu, dan ROM (Read Only Memory) yaitu memori yang hanya
bisa dibaca dan berguna sebagai penyedia informasi pada saat komputer pertama kali dinyalakan.
6. Data Bus, adalah jalur-jalur perpindahan data antar modul dalam sistem komputer. Karena pada
suatu saat tertentu masing-masing saluran hanya dapat membawa 1 bit data, maka jumlah saluran
menentukan jumlah bit yang dapat ditransfer pada suatu saat. Lebar data bus ini menentukan
kinerja sistem secara keseluruhan. Sifatnya bidirectional, artinya CPU dapat membaca dan
menerima data melalui data bus ini. Data bus biasanya terdiri atas 8, 16, 32, atau 64 jalur paralel.
7. Address Bus, digunakan untuk menandakan lokasi sumber ataupun tujuan pada proses transfer
data. Pada jalur ini, CPU akan mengirimkan alamat memori yang akan ditulis atau dibaca.Address
bus biasanya terdiri atas 16, 20, 24, atau 32 jalur paralel.
8. Control Bus, digunakan untuk mengontrol penggunaan serta akses ke Data Bus dan Address Bus.
Terdiri atas 4 sampai 10 jalur paralel.
KESIMPULAN :
Arithmetic Logical Unit (ALU) merupakan unit penalaran secara logic. ALU ini adalah merupakan Sirkuit CPU berkecepatan tinggi yang bertugas menghitung dan membandingkan. Angka-angka dikirim dari memori ke ALU untuk dikalkulasi dan kemudian dikirim kembali ke memori. Jika CPU diasumsikan sebagai otaknya komputer, maka ada suatu alat lain di dalam CPU tersebut yang kenal dengan nama Arithmetic Logical Unit (ALU), ALU inilah yang berfikir untuk menjalankan perintah yang diberikan kepada CPU tersebut. ALU sendiri merupakan suatu kesatuan alat yang terdiri dari berbagai komponen perangkat elektronika termasuk di dalamnya sekelompok transistor, yang dikenal dengan nama logic gate, dimana logic gate ini berfungsi untuk melaksanakan perintah dasar matematika dan operasi logika. Kumpulan susunan dari logic gate inilah yang dapat melakukan perintah perhitungan matematika yang lebih komplit seperti perintah “add” untuk menambahkan bilangan, atau “devide” atau pembagian dari suatu bilangan. Selain perintah matematika yang lebih komplit, kumpulan dari logic gate ini juga mampu untuk melaksanakan perintah yang berhubungan dengan logika, seperti hasil perbandingan dua buah bilangan. Instruksi yang dapat dilaksanakan oleh ALU disebut dengan instruction set. Tugas lain dari ALU adalah melakukan keputusan dari suatu operasi logika sesuai dengan instruksi program. Operasi logika meliputi perbandingan dua operand dengan menggunakan operator logika tertentu, yaitu sama dengan (=), tidak sama dengan (<> ), kurang dari (<), kurang atau sama dengan (<= ), lebih besar dari (>), dan lebih besar atau sama dengan (>=).
Sumber : http://translate.google.co.id/translate?hl=id&langpair=en|id&u=http://en.wikipedia.org/wiki/Arithmetic_logic_unit
http://translate.google.co.id/translate?hl=id&langpair=en|id&u=http://www.britannica.com/EBchecked/topic/34754/arithmetic-logic-unit
ARITMATIKA CENTRAL LOGIC UNIT
Posted by anju 0 comments
Labels: Arsitektur Komputer
BUS KOMPUTER
Dalam arsitektur komputer, sebuah bus adalah sebuah subsistem yang mentransfer data atau listrik antar komponen komputer di dalam sebuah komputer atau antar komputer. Tidak seperti hubungan titik-ke-titik, sebuah bus secara logika dapat menghubungkan beberapa alat dalam satu set kabel yang sama. Setiap bus mendefinisikan set konektornya ke alat colok fisik, kartu, atau kabel bersamaan.
Bus komputer awal merupakan bus listrik paralel dengan banyak hubungan, tetapi istilah ini sekarang digunakan untuk pengaturan fisik yang menyediakan fungsi logika yang sama dengan sebuah bus listrik paralel, dan dapat dihubungkan dengan kabel dalam sebuah topologi multidrop atau daisy chain atau dihubungkan oleh hub switch, seperti dalam kasus bus USB.
System bus atau bus sistem, dalam arsitektur komputer merujuk pada bus yang digunakan oleh sistem komputer untuk menghubungkan semua komponennya dalam menjalankan tugasnya. Sebuah bus adalah sebutan untuk jalur di mana data dapat mengalir dalam komputer. Jalur-jalur ini digunakan untuk komunikasi dan dapat dibuat antara dua elemen atau lebih. Data atau program yang tersimpan dalam memori dapat diakses dan dieksekusi oleh CPU melalui perantara sistem bus.
Sebuah komputer memiliki beberapa bus, agar dapat berjalan. Banyaknya bus yang terdapat dalam sistem, tergantung dari arsitektur sistem komputer yang digunakan. Sebagai contoh, sebuah komputer PC dengan prosesor umumnya Intel Pentium 4 memiliki bus prosesor (Front-Side Bus), bus AGP, bus PCI, bus USB, bus ISA (yang digunakan oleh keyboard dan mouse), dan bus-bus lainnya.
Bus disusun secara hierarkis, karena setiap bus yang memiliki kecepatan rendah akan dihubungkan dengan bus yang memiliki kecepatan tinggi. Setiap perangkat di dalam sistem juga dihubungkan ke salah satu bus yang ada. Sebagai contoh, kartu grafis AGP akan dihubungkan ke bus AGP. Beberapa perangkat lainnya (utamanya chipset atau kontrolir) akan bertindak sebagai jembatan antara bus-bus yang berbeda. Sebagai contoh, sebuah kontrolir bus SCSI dapat mengubah sebuah bus menjadi bus SCSI, baik itu bus PCI atau bus PCI Express.
Berdasar jenis busnya, bus dapat dibedakan menjadi bus yang khusus menyalurkan data tertentu, contohnya paket data saja, atau alamat saja, jenis ini disebut dedicated bus. Namun apabila bus yang dilalui informasi yang berbeda baik data, alamat, dan sinyal kontrol dengan metode multipleks data maka bus ini disebut multiplexed bus. Kekurangan multiplexed bus adalah hanya memerlukan saluran sedikit sehingga menghemat tempat tapi kecepatan transfer data menurun dan diperlukan mekanisme yang komplek untuk mengurai data yang telah dimultipleks. Sedangkan untuk dedicated bus merupakan kebalikan dari multipexed bus.
Beberapa bus utama dalam sistem komputer modern adalah sebagai berikut:
* Bus prosesor. Bus ini merupakan bus tercepat dalam sistem dan menjadi bus inti dalam chipset dan motherboard. Bus ini utamanya digunakan oleh prosesor untuk meneruskan informasi dari prosesor ke cache atau memori utama ke chipset kontrolir memori (Northbridge, MCH, atau SPP). Bus ini juga terbagi atas beberapa macam, yakni Front-Side Bus, HyperTransport bus, dan beberapa bus lainnya. Sistem komputer selain Intel x86 mungkin memiliki bus-nya sendiri-sendiri. Bus ini berjalan pada kecepatan 100 MHz, 133 MHz, 200 MHz, 266 MHz, 400 MHz, 533 MHz, 800 MHz, 1000 MHz atau 1066 MHz. Umumnya, bus ini memiliki lebar lajur 64-bit, sehingga setiap detaknya ia mampu mentransfer 8 byte.
* Bus AGP (Accelerated Graphic Port). Bus ini merupakan bus yang didesain secara spesifik untuk kartu grafis. Bus ini berjalan pada kecepatan 66 MHz (mode AGP 1x), 133 MHz (mode AGP 2x), atau 533 MHz (mode AGP 8x) pada lebar jalur 32-bit, sehingga bandwidth maksimum yang dapat diraih adalah 2133 MByte/s. Umumnya, bus ini terkoneksi ke chipset pengatur memori (Northbridge, Intel Memory Controller Hub, atau NVIDIA nForce SPP). Sebuah sistem hanya dapat menampung satu buah bus AGP. Mulai tahun 2005, saat PCI Express mulai marak digunakan, bus AGP ditinggalkan.
* Bus PCI (Peripherals Component Interconnect). Bus PCI tidak tergantung prosesor dan berfungsi sebagai bus peripheral. Bus ini memiliki kinerja tinggi untuk sistem I/O berkecepatan tinggi. Bus ini berjalan pada kecepatan 33 MHz dengan lebar lajur 32-bit. Bus ini ditemukan pada hampir semua komputer PC yang beredar, dari mulai prosesor Intel 486 karena memang banyak kartu yang menggunakan bus ini, bahkan hingga saat ini. Bus ini dikontrol oleh chipset pengatur memori (northbridge, Intel MCH) atau Southbridge (Intel ICH, atau NVIDIA nForce MCP).
* Bus PCI Express (Peripherals Component Interconnect Express)
* Bus PCI-X (Peripherals Component Interconnect Express)
* Bus ISA (Industry Standard Architecture)
* Bus EISA (Extended Industry Standard Architecute)
* Bus MCA (Micro Channel Architecture)
* Bus SCSI (Small Computer System Interface]]. Bus ini diperkenalkan oleh Macintosh pada tahun 1984. SCSI merupakan antarmuka standar untuk drive CD-ROM, peralatan audio, harddisk, dan perangkat penyimpanan eksternal berukuran besar
* Bus USB (Universal Serial Bus). Bus ini dikembangkan oleh tujuh vendor komputer, yaitu Compaq, DEC, IBM, Intel, Microsoft, NEC, dan Northern Telecom. Bus ini ditujukan bagi perangkat yang memiliki kecepatan rendah seperti keyboard, mouse, dan printer karena tidak akan efisien jika perangkat yang berkecepatan rendah dipasang pada bus berkecepatan tinggi seperti PCI. Keuntungan yang didapat dari bus USB antara lain : tidak harus memasang jumper, tidak harus membuka casing untuk memasang peralatan I/O, hanya satu jenis kabel yang digunakan, dapat mensuplai daya pada peralatan I/O, tidak diperlukan reboot.
* Bus 1394. Bus yang mempunyai nama FireWire memiliki kecepatan tinggi diatas SCSI dan PCI. Bus 1394 sangat cepat, murah, dan mudah untuk diimplementasikan. Bus ini tidak hanya populer perangkat komputer tetapi juga perangkat elektronik seperti kamera digital, VCR, dan televisi.
Sumber :
http://www.kumpulanartikelindonesia.com/istilah-komputer-penjelasan-tentang-bus-dan-bus-speed.html
http://id.wikipedia.org/wiki/Bus_komputer
Posted by anju 0 comments
Labels: Arsitektur Komputer
UNIT PEMROSES SENTRAL/CENTRAL PROCESSING UNIT (CPU)
Unit Pemroses Sentral (UPS) (bahasa Inggris: Central Processing Unit; CPU), merujuk kepada perangkat keras komputer yang memahami dan melaksanakan perintah dan data dari perangkat lunak. Istilah lain, pemroses/prosesor (processor), sering digunakan untuk menyebut UPS. Adapun mikroprosesor adalah UPS yang diproduksi dalam sirkuit terpadu, seringkali dalam sebuah paket sirkuit terpadu-tunggal. Sejak pertengahan tahun 1970-an, mikroprosesor sirkuit terpadu-tunggal ini telah umum digunakan dan menjadi aspek penting dalam penerapan UPS.
Komponen UPS
Komponen UPS terbagi menjadi beberapa macam, yaitu sebagai berikut.
• Unit kontrol yang mampu mengatur jalannya program. Komponen ini sudah pasti terdapat dalam semua CPU.CPU bertugas mengontrol komputer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi-fungsi operasinya. termasuk dalam tanggung jawab unit kontrol adalah mengambil intruksi-intruksi dari memori utama dan menentukan jenis instruksi tersebut. Bila ada instruksi untuk perhitungan aritmatika atau perbandingan logika, maka unit kendali akan mengirim instruksi tersebut ke ALU. Hasil dari pengolahan data dibawa oleh unit kendali ke memori utama lagi untuk disimpan, dan pada saatnya akan disajikan ke alat output. Dengan demikian tugas dari unit kendali ini adalah:
o Mengatur dan mengendalikan alat-alat input dan output.
o Mengambil instruksi-instruksi dari memori utama.
o Mengambil data dari memori utama (jika diperlukan) untuk diproses.
o Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja dari ALU.
o Menyimpan hasil proses ke memori utama.
• Register merupakan alat penyimpanan kecil yang mempunyai kecepatan akses cukup tinggi, yang digunakan untuk menyimpan data dan/atau instruksi yang sedang diproses. Memori ini bersifat sementara, biasanya di gunakan untuk menyimpan data saat di olah ataupun data untuk pengolahan selanjutnya. Secara analogi, register ini dapat diibaratkan sebagai ingatan di otak bila kita melakukan pengolahan data secara manual, sehingga otak dapat diibaratkan sebagai CPU, yang berisi ingatan-ingatan, satuan kendali yang mengatur seluruh kegiatan tubuh dan mempunyai tempat untuk melakukan perhitungan dan perbandingan logika.
• ALU unit yang bertugas untuk melakukan operasi aritmetika dan operasi logika berdasar instruksi yang ditentukan. ALU sering di sebut mesin bahasa karena bagian ini ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean yang masing-masing memiliki spesifikasi tugas tersendiri. Tugas utama dari ALU adalah melakukan semua perhitungan aritmatika yang terjadi sesuai dengan instruksi program. ALU melakukan semua operasi aritmatika dengan dasar penjumlahan sehingga sirkuit elektronik yang digunakan disebut adder.
Tugas lain dari ALU adalah melakukan keputusan dari suatu operasi logika sesuai dengan instruksi program. Operasi logika meliputi perbandingan dua operand dengan menggunakan operator logika tertentu, yaitu sama dengan (=), tidak sama dengan (¹ ), kurang dari (<), kurang atau sama dengan (£ ), lebih besar dari (>), dan lebih besar atau sama dengan (³ ).
• CPU Interconnections adalah sistem koneksi dan bus yang menghubungkan komponen internal CPU, yaitu ALU, unit kontrol dan register-register dan juga dengan bus-bus eksternal CPU yang menghubungkan dengan sistem lainnya, seperti memori utama, piranti masukan /keluaran.
Cara Kerja UPS
Saat data dan/atau instruksi dimasukkan ke processing-devices, pertama sekali diletakkan di MAA (melalui Input-storage); apabila berbentuk instruksi ditampung oleh Control Unit di Program-storage, namun apabila berbentuk data ditampung di Working-storage). Jika register siap untuk menerima pengerjaan eksekusi, maka Control Unit akan mengambil instruksi dari Program-storage untuk ditampungkan ke Instruction Register, sedangkan alamat memori yang berisikan instruksi tersebut ditampung di Program Counter. Sedangkan data diambil oleh Control Unit dari Working-storage untuk ditampung di General-purpose register (dalam hal ini di Operand-register). Jika berdasar instruksi pengerjaan yang dilakukan adalah arithmatika dan logika, maka ALU akan mengambil alih operasi untuk mengerjakan berdasar instruksi yang ditetapkan. Hasilnya ditampung di Akumulator. Apabila hasil pengolahan telah selesai, maka Control Unit akan mengambil hasil pengolahan di Accumulator untuk ditampung kembali ke Working-storage. Jika pengerjaan keseluruhan telah selesai, maka Control Unit akan menjemput hasil pengolahan dari Working-storage untuk ditampung ke Output-storage. Lalu selanjutnya dari Output-storage, hasil pengolahan akan ditampilkan ke output-devices.
Fungsi UPS
UPS berfungsi seperti kalkulator, hanya saja UPS jauh lebih kuat daya pemrosesannya. Fungsi utama dari UPS adalah melakukan operasi aritmatika dan logika terhadap data yang diambil dari memori atau dari informasi yang dimasukkan melalui beberapa perangkat keras, seperti papan tombol, pemindai, tuas kontrol, maupun tetikus. UPS dikontrol menggunakan sekumpulan instruksi perangkat lunak komputer. Perangkat lunak tersebut dapat dijalankan oleh CPU dengan membacanya dari media penyimpan, seperti cakram keras, disket, cakram padat, maupun pita perekam. Instruksi-instruksi tersebut kemudian disimpan terlebih dahulu pada memori fisik (MAA), yang mana setiap instruksi akan diberi alamat unik yang disebut alamat memori. Selanjutnya, UPS dapat mengakses data-data pada MAA dengan menentukan alamat data yang dikehendaki.
Saat sebuah program dieksekusi, data mengalir dari RAM ke sebuah unit yang disebut dengan bus, yang menghubungkan antara UPS dengan MAA. Data kemudian didekode dengan menggunakan unit proses yang disebut sebagai pendekoder instruksi yang sanggup menerjemahkan instruksi. Data kemudian berjalan ke unit aritmatika dan logika (ALU) yang melakukan kalkulasi dan perbandingan. Data bisa jadi disimpan sementara oleh ALU dalam sebuah lokasi memori yang disebut dengan register supaya dapat diambil kembali dengan cepat untuk diolah. ALU dapat melakukan operasi-operasi tertentu, meliputi penjumlahan, perkalian, pengurangan, pengujian kondisi terhadap data dalam register, hingga mengirimkan hasil pemrosesannya kembali ke memori fisik, media penyimpan, atau register apabila akan mengolah hasil pemrosesan lagi. Selama proses ini terjadi, sebuah unit dalam UPS yang disebut dengan penghitung program akan memantau instruksi yang sukses dijalankan supaya instruksi tersebut dapat dieksekusi dengan urutan yang benar dan sesuai.
Percabangan Instruksi
Pemrosesan instruksi dalam UPS dibagi atas dua tahap, Tahap-I disebut Instruction Fetch, sedangkan Tahap-II disebut Instruction Execute. Tahap-I berisikan pemrosesan UPS dimana Control Unit mengambil data dan/atau instruksi dari main-memory ke register, sedangkan Tahap-II berisikan pemrosesan UPS dimana Control Unit menghantarkan data dan/atau instruksi dari register ke main-memory untuk ditampung di MAA, setelah Instruction Fetch dilakukan. Waktu pada tahap-I ditambah dengan waktu pada tahap-II disebut waktu siklus mesin (machine cycles time).
Penghitung program dalam UPS umumnya bergerak secara berurutan. Walaupun demikian, beberapa instruksi dalam UPS, yang disebut dengan instruksi lompatan, mengizinkan UPS mengakses instruksi yang terletak bukan pada urutannya. Hal ini disebut juga percabangan instruksi (branching instruction). Cabang-cabang instruksi tersebut dapat berupa cabang yang bersifat kondisional (memiliki syarat tertentu) atau non-kondisional. Sebuah cabang yang bersifat non-kondisional selalu berpindah ke sebuah instruksi baru yang berada di luar aliran instruksi, sementara sebuah cabang yang bersifat kondisional akan menguji terlebih dahulu hasil dari operasi sebelumnya untuk melihat apakah cabang instruksi tersebut akan dieksekusi atau tidak. Data yang diuji untuk percabangan instruksi disimpan pada lokasi yang disebut dengan flag.
Bilangan yang Dapat Ditangani
Kebanyakan UPS dapat menangani dua jenis bilangan, yaitu fixed-point dan floating-point. Bilangan fixed-point memiliki nilai digit spesifik pada salah satu titik desimalnya. Hal ini memang membatasi jangkauan nilai yang mungkin untuk angka-angka tersebut, tetapi hal ini justru dapat dihitung oleh UPS secara lebih cepat. Sementara itu, bilangan floating-point merupakan bilangan yang diekspresikan dalam notasi ilmiah, di mana sebuah angka direpresentasikan sebagai angka desimal yang dikalikan dengan pangkat 10 (seperti 3,14 x 1057). Notasi ilmiah seperti ini merupakan cara yang singkat untuk mengekspresikan bilangan yang sangat besar atau bilangan yang sangat kecil, dan juga mengizinkan jangkauan nilai yang sangat jauh sebelum dan sesudah titik desimalnya. Bilangan ini umumnya digunakan dalam merepresentasikan grafik dan kerja ilmiah, tetapi proses aritmatika terhadap bilangan floating-point jauh lebih rumit dan dapat diselesaikan dalam waktu yang lebih lama oleh UPS karena mungkin dapat menggunakan beberapa siklus detak UPS. Beberapa komputer menggunakan sebuah prosesor sendiri untuk menghitung bilangan floating-point yang disebut dengan FPU (disebut juga math co-processor) yang dapat bekerja secara paralel dengan UPS untuk mempercepat penghitungan bilangan floating-point. FPU saat ini menjadi standar dalam banyak komputer karena kebanyakan aplikasi saat ini banyak beroperasi menggunakan bilangan floating-point.
Posted by anju 0 comments
Labels: Arsitektur Komputer
Algoritma Pencarian Biner (Binary Search)
Pencarian Biner (Binary Search) pada array yang sudah terurut
Syarat utama untuk pencarian biner adalah data di dalam tabel harus sudah terurut, misalkan terurut menaik.
ALGORITMA
Kamus
Const N : integer = 8 { misalkan jumlah elemen array maksimum = 8 }
Type A = array [ 1 ..... N ] of integer
Cari, BatasAtas, BatasBawah, Tengah : Integer
Ketemu : boolean
ALGORITMA
Input (cari) { meminta nilai data yang akan dicari}
BatasAtas : 1 { indeks array dimulai dari 1 }
BatasBawah : N
Ketemu : False
While (BatasAtas < BatasBawah) and (not ketemu) do
Tengah : (BatasAtas + BatasBawah) div 2
If A [Tengah] = cari then
Ketemu : true
Else
If ( A [Tengah] < cari ) then { cari di bagian kanan }
BatasAtas : Tengah + 1
Else
BatasBawah : Tengah – 1 { cari di bagian kiri }
Endif
Endif
EndWhile
If (ketemu) then
Output ( ‘Data berada di index nomor’, Tengah )
Else Output ( ‘Data tidak ditemukan’ )
Endif
Contoh Nilai-Nilai data yang sudah terurut :
A 2 5 8 12 15 25 37 57
1 2 3 3 5 6 7 8
Kasus 1 : cari = 12
Loop pertama : Tengah = (BatasAtas + BatasBawah) div 2 = (1 + 8) div 2 = 4
A [Tengah] = A [4] = 12, berarti loop pertama data langsung ditemukan
Kasus 2 : cari = 15
Loop pertama : Tengah = (BatasAtas + BatasBawah) div 2 = (1 + 8) div 2 = 4
A [Tengah] = A [4] = 12 < cari = 15, berarti BatasAtas = Tengah + 1 = 4 + 1 = 5
Loop kedua : Tengah = (BatasAtas + BatasBawah) div 2 = (5 + 8) div 2 = 6
A [Tengah] = A [6] = 25 > cari = 15, berarti BatasBawah = Tengah - 1 = 6 - 1 = 5
Loop ketiga : Tengah = (BatasAtas + BatasBawah) div 2 = (5 + 5) div 2 = 5
A [Tengah] = A [5] = 15, berarti setelah loop ketiga, data ditemukan
Kasus 3 : cari = 10
Loop pertama : Tengah = (BatasAtas + BatasBawah) div 2 = (1 + 8) div 2 = 4
A [Tengah] = A [4] = 12 > cari = 10, berarti BatasBawah = Tengah - 1 = 4 - 1 = 3
Loop kedua : Tengah = (BatasAtas + BatasBawah) div 2 = (1 + 3) div 2 = 2
A [Tengah] = A [2] = 5 < cari = 10, berarti BatasAtas = Tengah + 1 = 2 + 1 = 3
Loop ketiga : Tengah = (BatasAtas + BatasBawah) div 2 = (3 + 3) div 2 = 3
A [Tengah] = A [3] = 8, berarti setelah loop ketiga, data tidak ditemukan
Untuk jumlah data sebanyak n, maka proses pembandingan maksimal sebanyak ( log n ) kali. Untuk contoh di atas, jumlah data 8, maka proses pembandingan maksimal sebanyak 3 kali.
Posted by anju 0 comments
Labels: Algoritma dan Pemograman
Spanning Tree dan Penerapannya pada Bidang Teknik Elektro
Pengertian
Spanning Tree Protocol atau yang sering disingkat dengan STP adalah link layer networ protocol yang menjamin tidak adanya loop dalam topologi dari banyak bridge/switch dalam LAN. STP ini berdasarkan pada sebuah algoritma yang ditemukan oleh Radia Perlman sewaktu bekerja untuk Digital Equipment Corporation. Dalam model OSI untuk jaringan komputer, STP ada di layer 2 OSI. Spanning tree memperbolehkan desain jaringan memiliki redundan links untuk membuat jalur backup otomatis jika sebuah link aktif gagal bekerja, tanpa adanya bahaya dari loop pada bridge/switch. Loop pada bridge/switch akan menghasilkan flooding pada network.
Spanning Tree Protocol (STP) merupakan bagian dari standar 802.1 IEEE yang dinginakan untuk kontrol media akses. suatu Layer 2 protokol yang berjalan pada bridge dan switch. Spesifikasi untuk STP adalah 802.1d IEEE. Tujuan utama dari STP adalah untuk memastikan bahwa Anda tidak membuat loop bila Anda memiliki jalan berlebihan di jaringan anda. Loop yang mematikan ke jaringan. Ini juga berfungsi sebagai protocol untuk pengaturan koneksi dengan menggunakan algoritma Spanning tree. Spanning Tree Protokol (802.1d). Spanning Tree (802.1d) merupakan sebuah protokol yang berada di jaringan switch yang memungkinkan semua perangkat untuk berkomunikasi antara satu sama lain agar dapat mendeteksi dan mengelola redundant link dalam jaringan.
Prinsip Kerja STP
Masalah umum yang bisa diatasi oleh Spanning Tree Protocol ini adalah broadcast storm. Broadcast storm menyebabkan banyak broadcast ( atau multicast atau unknown-destination unicast) pada loop yang ada di jaringan secara terus menerus. Hal ini akan menciptakan sebuah link yang tidak berguna (karena adanya link ganda antar bridge/switch) dan secara signifikan akan mempengaruhi performance dari komputer end-user karena terlalu banyak memproses broadcast yang ada.
Secara garis besar, Spanning Tree Protocol bekerja dengan cara :
• Menentukan root bridge.
Root bridge dari spanning tree adalah bridge dengan bridge ID terkecil (terendah). Tiap bridge mempunyai unique identifier (ID) dan sebuah priority number yang bisa dikonfigurasi. Untuki membandingkan dua bridge ID, priority number yang pertama kali dibandingkan. Jika priority number antara kedua bridge tersebut sama, maka yang akan dibandingkan selanjutnya adalah MAC addresses. Sebagai contoh, jika switches A (MAC=0000.0000.1111) dan B (MAC=0000.0000.2222) memiliki priority number yang sama, misalnya 10, maka switch A yanga akan dipilih menjadi root bridge. Jika admin jaringan ingin switch B yang jadi root bridge, maka priority number switch B harus lebih kecil dari 10.
• Menentukan least cost paths ke root bridge.
Spanning tree yang sudah dihitung mempunyai properti yaitu pesan dari semua alat yang terkoneksi ke root bridge dengan pengunjungan (traverse) dengan cost jalur terendah, yaitu path dari alat ke root memiliki cost terendah dari semua paths dari alat ke root.Cost of traversing sebuah path adalah jumlah dari cost-cost dari segmen yang ada dalam path. Beda teknologi mempunya default cost yang berbeda untuk segmen-segmen jaringan. Administrator dapat memodifikasi cost untuk pengunjungan segment jaringan yang dirasa penting.
• Non-aktifkan root path lainnya.
Karena pada langkah diatas kita telah menentukan cost terendah untuk tiap path dari peralatan ke root bride, maka port yang aktif yang bukan root port diset menjadi blocked port. Kenapa di blok? Hal ini dilakukan untuk antisipasi jika root port tidak bisa bekerja dengan baik, maka port yang tadinya di blok akan di aktifkan dan kembali lagi untuk menentukan path baru.
Spanning tree algoritma secara automatis menemukan topology jaringan, dan membentuk suatu jalur tunggal yang yang optimal melalui suatu bridge jaringan dengan menugasi fungsi-2 berikut pada setiap bridge. Fungsi bridge menentukan bagaimana bridge berfungsi dalam hubungannya dengan bridge lainnya, dan apakah bridge meneruskan traffic ke jaringan-2 lainnya atau tidak.
1. Root bridge
Root bridge merupakan master bridge atau controlling bridge. Root bridge secara periodik mem-broadcast message konfigurasi. Message ini digunakan untuk memilih rute dan re-konfigure fungsi-2 dari bridge-2 lainnya bila perlu. Hanya da satu root bridge per jaringan. Root bridge dipilih oleh administrator. Saat menentukan root bridge, pilih root bridge yang paling dekat dengan pusat jaringan secara fisik.
2. Designated bridge
Suatu designated bridge adalah bridge-2 lain yang berpartisipasi dalam meneruskan paket melalui jaringan. Mereka dipilih secara automatis dengan cara saling tukar paket konfigurasi bridge. Untuk mencegah terjadinya bridging loop, hanya ada satu designated bridge per segment jaringan
3. Backup bridge
Semua bridge redundansi dianggap sebagai backup bridge. Backup bridge mendengar traffic jaringan dan membangun database bridge. Akan tetapi mereka tidak meneruska paket. Backup bridge ini akan mengambil alih fungsi jika suatu root bridge atau designated bridge tidak berfungsi.
Semua implementasi Spanning protocol didasarkan pada algoritma IEEE 802.1.d. Dengan bertukar pesan dengan switch lain untuk mendeteksi loop, dan kemudian mengeluarkan loop dengan menutup dipilih antarmuka jembatan, algoritma ini menjamin bahwa ada satu dan hanya satu jalur yang aktif antara dua perangkat jaringan.
Secara sederhana, IEEE 802.1d algoritma spanning tree protocol seperti berikut :
• Menghilangkan loop di-link jaringan berlebihan secara efektif menonaktifkan link.
• Monitor untuk kegagalan link aktif dan mengaktifkan kembali redundant link untuk memulihkan jaringan agar penuh konektivitas (sambil menjaga bebas topologi loop).
Keuntungan dari spanning tree algoritma :
Spanning tree algoritma sangat penting dalam implementasi bridge pada jaringan anda. Keuntungan nya adalah sebagai berikut:
• Mengeliminir bridging loops
• Memberikan jalur redundansi antara dua piranti
• Recovery secara automatis dari suatu perubahan topology atau kegagalan bridge
• Mengidentifikasikan jalur optimal antara dua piranti jaringan
• Menyediakan system jalur backup menjadi stand by atau diblock. STP hanya membolehkan satu jalur yang active (fungsi pencegahan loop) diantara dua host namun menyiapkan jalur back up bila jalur utama terputus.
• Mencegah loop yang tidak diinginkan pada jaringan yang memiliki beberapa jalur menuju ke satu tujuan dari satu host. Loop terjadi bila ada route/jalur alternative diantara host-host.
Penerapan di Kehidupan dan di Bidang Elektro :
Algoritma Semut merupakan salah satu algoritma sistem cerdas yang belum banyak diterapkan terutama dalam kasus minimum spanning tree. Penyelesaian kasus dengan Algritma Semutini didasarkan pada tingkah laku semut dalam memperoleh makanan dengan memilih lintasan terpendek. Ciri pengolahan data dengan Algoritma Semut ini permaasalahan yang harus mempunyai siklus tertutup yang artinya node awal semut berangakat juga merupakan node akhir semut kembali.
Pemasanagn kabel telepon yang dgunakan oleh PT. Telkom sebelumnya adalah pemasangan dengan menggunakan rute terpendek yang didasarkan secara intituisi. Pemasangan ini merupakan pemasangan yang tidak sistematis sehingga hasil yang dihasilkan tidak optimal. Hasil awal yang digunakan pada 21 titik dengan menggunakan Q.S 3.0 maupun dengan perhitungan manual menggunakan algoritma kruskal adalah 2235 meter. Namun sayangnya dalam menggunakan Algoritma Semut memperoleh penyelesaian yang lebih optimal yaitu panjang lintasannya dalah 2461 meter. Walaupun terjandi perbedaan jarak yang sangat besar, namun dari segi penghematan waktu, dengan menggunakan algoritma semut perhitungan lebih cepat.
Pertumbuhan kehidupan ekonomi masyarakat yang pesat saat ini, dimana masyarakat dihadapkan pada kecanggihan teknologi yang mendorong manusia untuk berusaha mendapatkan informasi yang lebih cepat, mudah, dan akurat. Hal ini tidak hanya berlaku bagi negara maju saja, namun bagi negara-negara yang sedang berkembang misalnya Indonesaia pun jasa telekomunikasi sangat dibutuhkan. Dengan kata lain bahwa pertumbuhan ekonomi tidak boleh tidak harus sejalan dengan pembangunan sarana komunikasinya.
Pembangunan jaringan yang dilakukan sekaarang ini mencakup dimensi yang cukup besar, baik ditinjau dari segi jumlah sarana maupun dari segi jangkauan geografis pembangunannya. Dalam rangka mencapai keberhasilan pembangunan tersebut, perlu adanya rancangan yang menyeluruh sebagai pedoman atau acuan teknik bagi perencanaan pembangunan dan operasi jaringan nasional.
Namun dalam pemenuhan sarana komunikasi tersebut banyak terhambat oleh keterbatasan jaringan kabel yang menjadi prioritas pembangaunan jaringan saat ini. Keterbatasan ini sering disebabkan oleh keadaan lingkungan dan letak geografis suatu daerah yang mengakibatkan penarikan kabel membutuhkan biaya yang tidak sedikit dan waktu yang lama. Kondisi suatu kota dengan tingkat kepadatan penduduk, bangunan, dan jalan-jalan raya serta keadaan berupa hutan, lautan, pegunungan dan sebagainya merupakan kendala utama dalam pemasangan kabel yang berkaitan dengan instansi yang terkait dan biaya pemasangan yang mahal.
Posted by anju 0 comments
Labels: Algoritma dan Pemograman
Perkembangan Komputer dan Penerapannya di Bidang Elektronik
Untuk dapat menjadi manusia yang unggul di masa yang akan datang, salah satunya adalah mampu menguasai dan mampu membaca dan berada pada trend Perkembangan Teknologi Komputer. Siapa yang dapat menyangka bahwa teknologi komputer berkembang dengan sangat pesat, dan juga menjadi salah satu bagian yang cukup vital dalam kehidupan sehari-hari.
Pada awalnya komputer digunakan layaknya menghitung, karena kata komputer sendiri berasal dari kata “to compute” yaitu untuk menghitung. Seiring waktu pun teknologi komputer yang dikembangkan bukan hanya sekedar mesin penghitung tapi juga mesin yang dapat memproses data.
Data yang awalnya berjumlah kecil dan algoritma yang sederhana, perlahan semakin besar dan kompleks. Melihat perkembangan itu, jika disadari setiap masa waktu, memiliki trend perkembangan teknologi komputer yang berbeda sesuai dengan keadaan masa jaman saat itu. Hal tersebut dikarenakan kemampuan teknologi komputer yang berbeda-beda pula.
Komputer pada awalnya adalah sebentuk mesin yang sangat besar. Semakin kompleks kemampuannya, maka semakin besar pula ukuran komputer tersebut. Bahkan mampu mengisi setengah ruangan kamar kita. Pada saat itu aplikasi atau sistem operasi pilihannya hanyalah sedikit dengan kemampuan yang terbatas pula.
Sistem operasi yang digunakan memiliki fungsi sebagai aplikasi yang membuat agar kita dan komputer bisa berkomunikasi. Salah satu sistem operasi cukup dikenal saat itu bagi para pengguna komputer adalah sistem operasi Unix. Lalu perlahan trend perkembangan teknologi komputer berubah.
Personal Computer
Salah satu tokoh yang berhasil mengubah trend perkembangan teknologi komputer adalah Bill Gates, sang punggawa perusahaan yang di dirikannya sendiri, yaitu Microsoft. Dengan usia yang masih sangat muda. Ia pada awalnya mempunyai impian yang sederhana, yaitu berkeinginan bisa membuat setiap rumah memiliki komputer sendiri atau pribadi, dan pada akhirnya yang kita kenal dengan PC (Personal Computer).
Ia mengubah citra komputer yang awalnya hanya mesin yang sederhana dan mempunyai tampilan yang tidak menarik menjadi sebaliknya. Ia telah berhasil membuat komputer menjadi barang yang menarik dan membuat orang-orang ingin memilikinya.
Bentuk komputer pun perlahan berubah. Pada awalnya besar, lalu menjadi kecil hingga bisa ditempatkan pada meja kerja kita. Bahkan bentuknya pun beragam. Dengan lahirnya fenomena Personal Computer (PC) tersebut, muncul pula bagian trend perkembangan teknologi komputer yang lain, yang berperan sebagai pendukung. Seperti halnya, memori penyimpan data, memori pemroses data, dan sebagainya.
Perangkat Komputer
Perkembangan hardware pada komputer yang selanjutnya mendorong trend perkembangan teknologi komputer. Media-media penyimpan data yang awalnya hanya mampu dengan ukuran yang terbatas dan sangat kecil. Misal disket hanya mampu menyimpan file yang sangat kecil. Bahkan saat itu ukuran disket sangatlah besar, cukup menyulitkan untuk dibawa.
Lalu pada saat ini, disket sudah tergantikan dengan media penyimpanan lain, seperti USB (Universal Serial Bus), CD (Compact Disc), DVD (Digital Video Disc), memory card, dan sebagainya. Bahkan media-media yang disebutkan tadi perlahan sudah ada yang tertandingi. Teknologi hardware memiliki kecenderungan untuk semakin kecil, tapi memiliki kemampuan yang sangat besar.
Salah satu dampak perkembangan teknologi komputer adalah oteknlogi game pada komputer. Game pada komputer perlahan semakin semarak, memiliki tampilan grafis yang halus dan sangat cepat.
Mobile Computer
Setelah trend perkembangan teknologi komputer pada personal computer bergeser pada teknologi komputer yang dapat dibawa kemana-mana atau dijinjing, yaitu laptop. Penggunaan laptop memungkinkan bagi pengguna untuk melakukan pengoperasian komputer dimana saja dan kapan saja, tanpa harus berada di rumah atau di kantor. Kemudahan itulah yang ditawarkan komputer berjenis mobile.
Selain laptop, lahir pula yang sejenis, yaitu notebook, netbook. Bahkan teknologi komputer pada kemudahan untuk mobile ini yang awalnya berukuran cukup besar, saat ini ukurannya pun beragam dari yang sedang hingga yang mungil. Apalagi didorongnya produsen yang berlomba-lomba menawarkan harga yang ringan, maka semakin banyak pengguna komputer jenis jinjing ini.
Selain itu, trend perkembangan teknologi komputer saat ini memiliki beberapa istilah baru yang diterapkan dalam implementasi teknologi komputer, seperti Green Technology, Cloud Computing, Social Network, mobile computing dan lain sebagainya. Istilah-istilah tersebut dipicu dari perkembangan teknologi komputer.
Jika kita perhatikan, maka sesungguhnya trend perkembangan teknologi komputer mengarah pada yang memudahkan kita dalam pekerjaan, hoby atau bahkan sekedar bermain games. Kemudahan itu pun mengarah pada fungsi, penggunaan, bentuk, kinerja yang semakin baik. Bukan tidak mungkin komputer bisa hanya berupa berada di dalam genggaman.
Ya seperti yang saat ini bisa terlihat pada wujud smartphone. Kelak mungkin kita tidak bisa membedakan antara komputer dan telepon (karena keduanya dalam satu genggaman).
Posted by anju 0 comments
Labels: Algoritma dan Pemograman
TEKNIK SORTING DAN SEARCHING
Teknik Sorting
Sorting bisa didefinisikan sebagai suatu proses pengurutan data yang
sebelumnya disusun secara acak sehingga menjadi tersusun secara teratur menurut
suatu aturan tertentu. Sorting yang kita terapkan menggunakan tipe data array agar
pemahaman serta pengimplementasiannya lebih mudah. Pada umumnya terdapat
dua jenis pengurutan :
- Ascending (Naik).
- Descending (Turun).
Contoh :
Data : Array [1..6] of Byte = (22, 10, 15, 3, 8, 2);
Data Acak : 22 10 15 3 8 2
Terurut Ascending : 2 3 8 10 15 22
Terurut Descending : 22 15 10 8 3 2
Metode Pengurutan Data
- Pengurutan berdasarkan perbandingan (comparison-based sorting)
• Bubble sort, exchange sort
- Pengurutan berdasarkan prioritas (priority queue sorting method)
• Selection sort, heap sort
- Pengurutan berdasarkan penyisipan dan penjagaan terurut (insert and keep
sorted method)
• Insertion sort, tree sort
- Pengurutan berdasarkan pembagian dan penguasaan (devide and conquer
method)
• Quick sort, merge sort
- Pengurutan berkurang menurun (diminishing increment sort method)
• Shell sort
Teknik Searching
Searching merupakan suatu proses pendarian data dari sejumlah data yang
ada. Pencarian data dapat dilakukan pada sejumlah data yang sudah terurut atau
juga pada data yang sama sekali belum terurut. Kita mencoba menggunakan dua
metode pencarian yaitu :
- Pencarian Berurutan (Sequential Searching).
Metode ini merupakan metode paling sederhana, secara garis besar metode
ini bisa dijelaskan sebagai berikut. Dari data yang diketahui, data yang dicari
dibandingkan satu per satu sampai data tersebut ditemukan atau tidak ditemukan.
Pada saat data yang dicari sudah ditemukan, maka proses pencarian langsung
dihentikan. Tetapi jika belum ditemukan, maka pencarian diteruskan sampai
seluruh data dibandingkan.
- Pencarian Biner (Binary Seacrh).
Metode ini digunakan jika sejumlah data telah diurutkan. Jika dibandingkan
dengan metode awal tadi metode ini jauh lebih cepat. Secara garis besar metode
ini bisa dijelaskan sebagai berikut. Urutkan dahulu sejumlah data. Lalu bagi dua
data-data tadi dengan jumlah data yang sama pada masing-masingnya. Kemudian
data dibandingkan dengan data terakhir dari subdata yang pertama. Jika data yang
dicari lebih keci, pencarian dilanjutkan pada sub data pertama dengan terlebih
dahulu membagi dua lagi data-data tersebut dengan jumlah yang sama. Tetapi jika
data yang dicari lebih besar dari data terakhir subdata pertama, berarti data yang
dicari kemungkinan terletak pada subdata yang kedua. Proses diatas dilakukan
berulang sampai data ditemukan atau tidak ditemukan.
Posted by anju 0 comments
Labels: Algoritma dan Pemograman
LINKED LIST
Pengertian Linked List
•sekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya terdiri dari dua bagian
•struktur berupa rangkaian elemen saling berkait dimana setiap elemen dihubungkan elemen lain melalui pointer. Pointer adalah alamat elemen. Penggunaan pointer untuk mengacu elemen berakibat elemen-elemen bersebelahan secara logik walau tidak bersebelahan secara fisik di memori.
Bentuk Umum :
Infotype sebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list
Next address dari elemen berikutnya (suksesor)
Jika L adalah list, dan P adalah address, maka alamat elemen pertama list L dapat diacu dengan notasi :
Sebelum digunakan harus dideklarasikan terlebih dahulu :
Elemen yang diacu oleh P dapat dikonsultasi informasinya dengan notasi :
Beberapa Definisi :
1. List l adalah list kosong, jika First(L) = Nil
2. Elemen terakhir dikenali, dengan salah satu cara adalah karena
Next(Last) = Nil
Nil adalah pengganti Null, perubahan ini dituliskan dengan #define Nil Null
Single Linked List
Sebuah data terletak pada sebuah lokasi memori area. Tempat yang disediakan pada satu area memori tertentu untuk menyimpan data dikenal dengan sebutan node atau simpul. Setiap node memiliki pointer yang menunjuk ke simpul berikutnya sehingga terbentuk satu untaian, dengan demikian hanya diperlukan sebuah variabel pointer. Susunan berupa untaian semacam ini disebut Single Linked List (NULL memilik nilai khusus yang artinya tidak menunjuk ke mana-mana. Biasanya Linked List pada titik akhirnya akan menunjuk ke NULL).
Pembuatan Single Linked List dapat menggunakan 2 metode:
• LIFO (Last In First Out), aplikasinya : Stack (Tumpukan)
• FIFO (First In First Out), aplikasinya : Queue (Antrean)
Double Linked List
Salah satu kelemahan single linked list adalah pointer (penunjuk) hanya dapat bergerak satu arah saja, maju/mundur, atau kanan/kiri sehingga pencarian data pada single linked list hanya dapat bergerak dalam satu arah saja. Untuk mengatasi kelemahan tersebut, dapat menggunakan metode double linked list. Linked list ini dikenal dengan nama Linked list berpointer Ganda atau Double Linked List.
Circular Double Linked List
Merupakan double linked list yang simpul terakhirnya menunjuk ke simpul terakhirnya menunjuk ke simpul awalnya menunjuk ke simpul akhir sehingga membentuk suatu lingkaran.
Operasi-Operasi yang ada pada Linked List
• Insert
Istilah Insert berarti menambahkan sebuah simpul baru ke dalam suatu linked list.
• IsEmpty
Fungsi ini menentukan apakah linked list kosong atau tidak.
• Find First
Fungsi ini mencari elemen pertama dari linked list
• Find Next
Fungsi ini mencari elemen sesudah elemen yang ditunjuk now
• Retrieve
Fungsi ini mengambil elemen yang ditunjuk oleh now. Elemen tersebut lalu dikembalikan oleh fungsi.
• Update
Fungsi ini mengubah elemen yang ditunjuk oleh now dengan isi dari sesuatu
• Delete Now
Fungsi ini menghapus elemen yang ditunjuk oleh now. Jika yang dihapus adalah elemen pertama dari linked list (head), head akan berpindah ke elemen berikut.
• Delete Head
Fungsi ini menghapus elemen yang ditunjuk head. Head berpindah ke elemen sesudahnya.
• Clear
Fungsi ini menghapus linked list yang sudah ada. Fungsi ini wajib dilakukan bila anda ingin mengakhiri program yang menggunakan linked list. Jika anda melakukannya, data-data yang dialokasikan ke memori pada program sebelumnya akan tetap tertinggal di dalam memori.
A. STACK DENGAN SINGLE LINKED LIST
Selain implementasi stack dengan array seperti telah dijelaskan sebelumnya, stack daat diimplementasikan dengan single linked list. Keunggulannya dibandingkan array adalah penggunaan alokasi memori yang dinamis sehingga menghindari pemborosan memori.
Misalnya pada stack dengan array disediakan tempat untuk stack berisi 150 elemen, sementara ketika dipakai oleh user stack hanya diisi 50 elemen, maka telah terjadi pemborosan memori untuk sisa 100 elemen, yang tak terpakai. Dengan penggunaan linked list maka tempat yang disediakan akan sesuai dengan banyaknya elemen yang mengisi stack.
Dalam stack dengan linked list tidak ada istilah full, sebab biasanya program tidak menentukan jumlah elemen stack yang mungkin ada (kecuali jika sudah dibatasi oleh pembuatnya). Namun demikian sebenarnya stack ini pun memiliki batas kapasitas, yakni dibatasi oleh jumlah memori yang tersedia.
Operasi-operasi untuk Stack dengan Linked List
• IsEmpty
Fungsi memeriksa apakah stack yang adamasih kosong.
• Push
Fungsi memasukkan elemen baru ke dalam stack. Push di sini mirip dengan insert dalam single linked list biasa.
• Pop
Fungsi ini mengeluarkan elemen teratas dari stack.
• Clear
Fungsi ini akan menghapus stack yang ada.
B. QUEUE DENGAN DOUBLE LINKED LIST
Selain menggunakan array, queue juga dapat dibuat dengan linked list. Metode linked list yang digunakan adalah double linked list.
Operasi-operasi Queue dengan Double Linked List
• IsEmpty
Fungsi IsEmpty berguna untuk mengecek apakah queue masih kosong atau sudah berisi data. Hal ini dilakukan dengan mengecek apakah head masih menunjukkan pada Null atau tidak. Jika benar berarti queue masih kosong.
• IsFull
Fungsi IsFull berguna untuk mengecek apakah queue sudah penuh atau masih bisa menampung data dengan cara mengecek apakah Jumlah Queue sudah sama dengan MAX_QUEUE atau belum. Jika benar maka queue sudah penuh.
• EnQueue
Fungsi EnQueue berguna untuk memasukkan sebuah elemen ke dalam queue (head dan tail mula-mula meunjukkan ke NULL).
• DeQueue
Procedure DeQueue berguna untuk mengambil sebuah elemen dari queue. Hal ini dilakukan dengan cara menghapus satu simpul yang terletak paling depan (head).
Posted by anju 0 comments
Labels: Algoritma dan Pemograman
Cara Mudah Belajar Bahasa Pemrograman
Bahasa Pemrograman biasanya didapat ketika kita berkuliah pada bidang jurusan IT, bahasa pemrograman penting ketika kita ingin mencari pekerjaan, karena di Indonesia lowongan untuk orang IT biasanya yang terampil dalam menggunakan bahasa pemrograman.
Namun mungkin masih ada yang kesulitan ketika belajar bahasa pemrograman, ada yang alasannya kaget lah ada yang alasannya pusing dan menganggap bahasa pemrograman adalah mata kuliah yang sulit dan tidak dapat dikuasai secara cepat, namun hal itu tidaklah benar (image sulit biasanya muncul dari mahasiswa-mahasiswa yang malas belajar.
Berikut ini adalah tips dan trik untuk mudah belajar bahasa pemrograman:
1. Gunakanlah buku yang tidak terlalu tebal ketika belajar. Cara ini dimaksudkan agar kita tidak bingun atas tutorial yang diberikan, menurut pengalaman saya, ketika saya belajar bahasa pemrogrman tidak semua fitur di software bahasa pemrograman itu kita gunakan semuanya, mungkin kita cukup mengetahui 20% dari semua fitur untuk bisa membuat suatu program sehari-hari (khusus Jurusan Sistem Informasi).
2. Ketahui Validasi yang sering digunakan ketika anda bekerja pada bidang anda. Contoh: saya sebagai orang jurusan Sistem informasi lebih sering membuat aplikasi bisnis yang tidak jauh-jauh dari validasi form pendaftaran (validasi nomor telepon yang karakternya harus angka semua, validasi nama yang haru huruf semua dsb) maksudnya adalah untuk mempermudah saja.
3. Bongkar source code dari program yang sudah jadi. Dengan cara ini kita dapat belajar lebih mudah.
4. Pelajari cara konek ke database.
5. Latihan setiap hari sampai lancar.
Posted by anju 0 comments
Labels: Algoritma
Macam-Macam Bahasa Pemrograman
Bagi anda yang bekerja dalam bidang web design pasti sudah tidak asing lagi dengan apa yang nama bahasa pemrograman.Bahasa pemrograman yang umum dikenal adalah php dan html.
Tapi sebenarnya masih banyak bahasa pemrograman yang lain,berikut ini ada beberapa macam bahasa pemrograman yang perlu anda ketahui :
1. Bahasa Pemrograman HTML
HyperText Markup Language (HTML) adalah sebuah bahasa markup yang digunakan untuk membuat sebuah halaman web dan menampilkan berbagai informasi di dalam sebuah browser Internet.
HTML saat ini merupakan standar Internet yang didefinisikan dan dikendalikan penggunaannya oleh World Wide Web Consortium (W3C).
HTML berupa kode-kode tag yang menginstruksikan browser untuk menghasilkan tampilan sesuai dengan yang diinginkan.
Sebuah file yang merupakan file HTML dapat dibuka dengan menggunakan browser web seperti Mozilla Firefox atau Microsoft Internet Explorer.
2. Bahasa Pemrograman PHP
PHP adalah bahasa pemrograman script yang paling banyak dipakai saat ini.
PHP pertama kali dibuat oleh Rasmus Lerdorf pada tahun 1995. Pada waktu itu PHP masih bernama FI (Form Interpreted), yang wujudnya berupa sekumpulan script yang digunakan untuk mengolah data form dari web.
PHP banyak dipakai untuk membuat situs web yang dinamis, walaupun tidak tertutup kemungkinan digunakan untuk pemakaian lain.
PHP biasanya berjalan pada sistem operasi linux (PHP juga bisa dijalankan dengan hosting windows).
3. Bahasa Pemrograman ASP
ASP adalah singkatan dari Active Server Pages yang merupakan salah satu bahasa pemograman web untuk menciptakan halaman web yang dinamis.
ASP merupakan salah satu produk teknologi yang disediakan oleh Microsoft.
ASP bekerja pada web server dan merupakan server side scripting.
4. Bahasa Pemrograman XML
Extensible Markup Language (XML) adalah bahasa markup serbaguna yang direkomendasikan W3C untuk mendeskripsikan berbagai macam data.
XML menggunakan markup tags seperti halnya HTML namun penggunaannya tidak terbatas pada tampilan halaman web saja.
XML merupakan suatu metode dalam membuat penanda/markup pada sebuah dokumen.
5. Bahasa Pemrograman WML
WML adalah kepanjangan dari Wireless Markup Language, yaitu bahasa pemrograman yang digunakan dalam aplikasi berbasis XML (eXtensible Markup Langauge).
WML ini adalah bahasa pemrograman yang digunakan dalam aplikasi wireless.
WML merupakan analogi dari HTML yang berjalan pada protocol nirkabel.
6. Bahasa Pemrograman PERL
Perl adalah bahasa pemrograman untuk mesin dengan sistem operasi Unix (SunOS, Linux, BSD, HP-UX), juga tersedia untuk sistem operasi seperti DOS, Windows, PowerPC, BeOS, VMS, EBCDIC, dan PocketPC.
PERL merupakan bahasa pemograman yang mirip bahasa pemograman C.
7. Bahasa Pemrograman CFM
Cfm dibuat menggunakan tag ColdFusion dengan software Adobe ColdFusion / BlueDragon / Coldfusion Studio.
Syntax coldfusion berbasis html.
8. Bahasa Pemrograman Javascript
Javascript adalah bahasa scripting yang handal yang berjalan pada sisi client.
JavaScript merupakan sebuah bahasa scripting yang dikembangkan oleh Netscape.
Untuk menjalankan script yang ditulis dengan JavaScript kita membutuhkan JavaScript-enabled browser yaitu browser yang mampu menjalankan JavaScript.
9. Bahasa Pemrograman CSS
Cascading Style Sheets (CSS) adalah suatu bahasa stylesheet yang digunakan untuk mengatur tampilan suatu dokumen yang ditulis dalam bahasa markup.
Penggunaan yang paling umum dari CSS adalah untuk memformat halaman web yang ditulis dengan HTML dan XHTML.
Walaupun demikian, bahasanya sendiri dapat dipergunakan untuk semua jenis dokumen XML termasuk SVG dan XUL.
Spesifikasi CSS diatur oleh World Wide Web Consortium (W3C).
Posted by anju 0 comments
Labels: Algoritma
Mengenal Algoritma (Pemograman Pada Komputer)
1 PEMROGRAMAN KOMPUTER
Dalam kehidupan sehari-hari, untuk berkomunikasi dengan orang lain, kita harus menggunakan bahasa yang sama dengan orang tersebut. Apabila kita menggunakan bahasa Indonesia, lawan bicara kita juga harus mengerti bahasa Indonesia. Kalau lawan bicara kita tidak mengerti bahasa Indonesia, kita masih berkomunikasi dengannya melalui seorang penerjemah.
Dalam pemrograman komputer, berlaku juga hal seperti diatas. Kita harus menggunakan bahasa yang dimengerti oleh komputer untuk memberikan suatu instruksi atau perintah. Langkah-langkah yang kita lakukan dalam memberikan instruksi kepada komputer untuk memecahkan masalah inilah yang dinamakan dengan pemrograman komputer.
Dalam pemrograman komputer, ada beberapa langkah yang harus kita perhatikan, yaitu:
1. Mendefinisikan masalah. Pada langkah ini tentukan masalahnya seperti apa, kemudian apa saja yang harus dipecahkan dengan komputer, dan yang terakhir adalah apa masukannya dan bagaimana keluarannya.
2. Menentukan solusi. Setelah masalah didefinisikan dengan jelas, masukan apa yang diberikan sudah jelas, keluaran apa yang diinginkan sudah jelas, langkah selanjutnya adalah mencari jalan bagaimana masalah tersebut diselesaikan.
3. Memilih algoritma. Langkah ini merupakan langkah penting dalam pemrograman komputer, karena pemilihan algoritma yang salah akan menyebabkan program memiliki unjuk kerja yang kurang baik. Algoritma pemrograman akan dibahas lebih lanjut pada suba bab berikutnya.
4. Menulis program. Pada langkah ini kita mulai menuliskan program komputer untuk memecahkan masalah. Ada beberapa hal yang harus dipertimbangkan saat memilih bahasa pemrograman diantaranya adalah masalah yang dihadapi dan bahasa pemrograman yang dikuasai.
5. Menguji program. Setelah program selesai ditulis, kita harus mengujinya. Pengujian pertama adalah apakah program berhasil dikompilasi dengan baik? Pengujian berikutnya apakah program dapat menampilkan keluaran yang diinginkan?
6. Menulis dokumentasi. Hal ini biasanya dilakukan bersamaan menulis program, artinya pada setiap baris program atau pada setiap beberapa baris program, kita menambahkan komentar yang menjelaskan kegunaan dari suatu pernyataan.
7. Merawat progam. Langkah ini dilakukan setelah program selesai dibuat, diuji dan sudah digunakan oleh pengguna. Contoh perawatan adalah melakukan revisi jika pengguna ingin menbambahkan suatu fasilitas baru pada program tersebut.
2 ISTILAH-ISTILAH DASAR
Ada beberapa istilah dasar yang perlu dipahami sebelum mempelajari pemrograman komputer, yaitu:
* Program adalah kata, ekspresi, pernyataan atau kombinasinya yang disusun dan dirangkai menjadi satu kesatuan prosedur yang berupa urutan langkah untuk menyelesaikan masalah yang diimplementasikan dengan menggunakan bahasa pemrograman sehingga dapat dieksekusi oleh komputer.
* Bahasa pemrograman merupakan prosedur atau tata cara penulisan program. Pada bahasa pemrograman terdapat dua faktor penting yang harus diperhatikan yaitu sintak (aturan-aturan atau tata cara penulisan) dan semantic (aturan-aturan untuk menyatakan suatu makna/arti.
* Pemrograman merupakan proses mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dengan menggunakan suatu bahasa pemrograman.
* Pemrograman terstruktur merupakan proses mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dalam bentuk program yang memiliki rancang bangun yang terstruktur dan tidak berbelit-belit sehingga mudah ditelusuri, dipahami dan dikembangkan oleh siapa saja.
3 ALGORITMA
Dalam bidang pemrograman, algoritma dedifinisikan sebagai suatu metode khusus yang tepat dan terdiri dari serangkaian langkah yang terstruktur dan dituliskan secara sistematis, yang akan dikerjakan untuk menyelesaikan suatu masalah dengan bantuan komputer.
Proses dari masalah hingga menjadi suatu algoritma disebut tahap pemecahan masalah. Sedangkan tahap dari algoritma hingga menjadi suatu program komputer disebut tahap implementasi.
Algoritma pemrograman yang baik memiliki cirri-ciri sebagai berikut.
1. Tepat, benar, sederhana, standard an efektif
2. Logis, terstruktur dan sistematis
3. Semua operasi terdefinisi
4. Semua proses harus berakhir setelah sejumlah langkah dilakukan
5. Ditulis dengan bahasa standar dengan format pemrograman agar mudah diimplementasikan dan tidak menimbulkan arti bias maupun ganda.
4 PENYAJIAN ALGORITMA
Penyajian algoritma dalam bentuk tulisan biasanya menggunakan metode English structure), sedangkan penyajian algoritma dalam bentuk gambar atau simbol biasanya menggunakan metode flowchart program.
Posted by anju 0 comments