Makalah ini membahas tentang komputasi kuantum, mulai dari konsep dasar, cara kerja entanglement kuantum, teknik pengoperasian data qubit dan gerbang kuantum, hingga algoritma Shor yang dapat memecahkan masalah faktorisasi bilangan secara efisien menggunakan komputer kuantum.
The document discusses the Rabin-Karp algorithm for string matching. It defines Rabin-Karp as a string search algorithm that compares hash values of strings rather than the strings themselves. It explains that Rabin-Karp works by calculating a hash value for the pattern and text subsequences to compare, and only does a brute force comparison when hash values match. The worst-case complexity is O(n-m+1)m but the average case is O(n+m) plus processing spurious hits. Real-life applications include bioinformatics to find protein similarities.
Java if else condition - powerpoint persentationManeesha Caldera
The document discusses the if-else conditional statement in Java. It provides 11 examples of using if-else statements to evaluate boolean conditions and execute code blocks accordingly. The if-else statement allows programmers to control program flow based on conditional logic. Key aspects covered include syntax, comparing values, else-if blocks, nesting if statements, and printing outputs before and after the conditional block.
This document discusses NP-complete problems and their properties. Some key points:
- NP-complete problems have an exponential upper bound on runtime but only a polynomial lower bound, making them appear intractable. However, their intractability cannot be proven.
- NP-complete problems are reducible to each other in polynomial time. Solving one would solve all NP-complete problems.
- NP refers to problems that can be verified in polynomial time. P refers to problems that can be solved in polynomial time.
- A problem is NP-complete if it is in NP and all other NP problems can be reduced to it in polynomial time. Proving a problem is NP-complete involves showing
The document discusses heap data structures and their use in priority queues and heapsort. It defines a heap as a complete binary tree stored in an array. Each node stores a value, with the heap property being that a node's value is greater than or equal to its children's values (for a max heap). Algorithms like Max-Heapify, Build-Max-Heap, Heap-Extract-Max, and Heap-Increase-Key are presented to maintain the heap property during operations. Priority queues use heaps to efficiently retrieve the maximum element, while heapsort sorts an array by building a max heap and repeatedly extracting elements.
The document discusses functions in C programming. It defines what functions are and their advantages, such as modularity, reusability and avoiding code repetition. It covers different types of functions based on arguments and return values. Additionally, it discusses function definitions, prototypes, scope, storage classes, recursion, call by value vs reference and examples of functions.
Tuples are immutable sequences like lists but cannot be modified after creation, making them useful for storing fixed data like dictionary keys; they are created using parentheses and accessed using indexes and slices like lists but elements cannot be added, removed, or reassigned. Dictionaries are mutable mappings of unique keys to values that provide fast lookup of values by key and can be used to represent polynomials by mapping powers to coefficients.
The presenation gives a brief detail about a searching algorithm known as "Rabin-Karp Algorithm". The presentation contains the history of the algorithm and its working alongwith the example.
The document discusses the Rabin-Karp algorithm for string matching. It defines Rabin-Karp as a string search algorithm that compares hash values of strings rather than the strings themselves. It explains that Rabin-Karp works by calculating a hash value for the pattern and text subsequences to compare, and only does a brute force comparison when hash values match. The worst-case complexity is O(n-m+1)m but the average case is O(n+m) plus processing spurious hits. Real-life applications include bioinformatics to find protein similarities.
Java if else condition - powerpoint persentationManeesha Caldera
The document discusses the if-else conditional statement in Java. It provides 11 examples of using if-else statements to evaluate boolean conditions and execute code blocks accordingly. The if-else statement allows programmers to control program flow based on conditional logic. Key aspects covered include syntax, comparing values, else-if blocks, nesting if statements, and printing outputs before and after the conditional block.
This document discusses NP-complete problems and their properties. Some key points:
- NP-complete problems have an exponential upper bound on runtime but only a polynomial lower bound, making them appear intractable. However, their intractability cannot be proven.
- NP-complete problems are reducible to each other in polynomial time. Solving one would solve all NP-complete problems.
- NP refers to problems that can be verified in polynomial time. P refers to problems that can be solved in polynomial time.
- A problem is NP-complete if it is in NP and all other NP problems can be reduced to it in polynomial time. Proving a problem is NP-complete involves showing
The document discusses heap data structures and their use in priority queues and heapsort. It defines a heap as a complete binary tree stored in an array. Each node stores a value, with the heap property being that a node's value is greater than or equal to its children's values (for a max heap). Algorithms like Max-Heapify, Build-Max-Heap, Heap-Extract-Max, and Heap-Increase-Key are presented to maintain the heap property during operations. Priority queues use heaps to efficiently retrieve the maximum element, while heapsort sorts an array by building a max heap and repeatedly extracting elements.
The document discusses functions in C programming. It defines what functions are and their advantages, such as modularity, reusability and avoiding code repetition. It covers different types of functions based on arguments and return values. Additionally, it discusses function definitions, prototypes, scope, storage classes, recursion, call by value vs reference and examples of functions.
Tuples are immutable sequences like lists but cannot be modified after creation, making them useful for storing fixed data like dictionary keys; they are created using parentheses and accessed using indexes and slices like lists but elements cannot be added, removed, or reassigned. Dictionaries are mutable mappings of unique keys to values that provide fast lookup of values by key and can be used to represent polynomials by mapping powers to coefficients.
The presenation gives a brief detail about a searching algorithm known as "Rabin-Karp Algorithm". The presentation contains the history of the algorithm and its working alongwith the example.
The document discusses pointers in C programming. It defines pointers as variables that store the memory addresses of other variables. It provides examples of declaring pointer variables and using dereference and reference operators. It also covers pointer arithmetic, pointers to pointers, pointers to arrays, pointers as function arguments, pointers to structures including self-referential structures, enumerations, and bitfields. Key concepts are illustrated with code examples and outputs.
This document summarizes different types of operators in Java including assignment, increment/decrement, arithmetic, bitwise, relational, logical, ternary, shift, and instance of operators. It provides examples of each type of operator and describes what they are used for such as assigning values, performing mathematical operations, comparing values, and checking object types. The key types of operators covered are assignment, arithmetic, relational, logical, and instance of operators.
What is Data Type?
Primitive Types in C#: Integer Types, Floating-Point Types, Decimal Type, Boolean Type, Character Types, Strings, Objects
Value Types and Reference Types
Variables. Using Variables: Declaring, Initializing, Assigning Value, Accessing Value
Literals: The Values of the Variables in the Source Code. Boolean Literals. Integer Literals. Floating-Point Literals, Decimal Literals, String Literals and Escaping Sequences
Exercises: Working with Primitive Types and Variables
The document discusses strings in C and C++. It explains that strings are not a built-in data type in C/C++ and describes C-style strings as character arrays terminated by a null character. It also discusses C++ string classes like std::string. The document provides examples of using C-style strings and C++ strings. It describes common string functions in C++ for manipulating and comparing strings.
This document discusses various SQL functions in DBMS including single row functions, group functions, character functions, number functions, date functions, and conversion functions. It provides examples of commonly used functions like ROUND, TRUNC, SQRT, MOD, DATE functions, and TO_CHAR/TO_DATE conversion functions. It also covers general functions like NVL, NVL2, NULLIF, COALESCE, CASE, and DECODE that can work on different data types and avoid null values. Set operators are briefly mentioned to combine multiple queries.
This document outlines the syllabus for Computer Science (41) taught by Prof. K. Adisesha. It covers 4 units: Unit A discusses computer hardware components and data structures; Unit B covers object-oriented programming in C++; Unit C focuses on databases, queries, and large data; Unit D examines advanced communication technology concepts like networking and web design. Key topics include motherboards, Boolean algebra, arrays, stacks, queues, classes, inheritance, pointers, files, SQL, networks, and HTML.
The C preprocessor performs preprocessing tasks like file inclusion, macro definition, and conditional compilation before actual compilation. It has six phases including edit, preprocess, compile, link, load, and execute. Preprocessor directives begin with # and are used to include other files, define symbolic constants and macros, and conditionally compile code and other preprocessor directives. The #define directive defines symbolic constants by replacing an identifier with text. Conditional compilation with #if controls whether code or other preprocessor directives are executed or compiled.
Tuples are similar to lists but are immutable. They use parentheses instead of square brackets and can contain heterogeneous data types. Tuples can be used as keys in dictionaries since they are immutable. Accessing and iterating through tuple elements is like lists but tuples do not allow adding or removing items like lists.
Regular expressions are a powerful tool for searching, matching, and parsing text patterns. They allow complex text patterns to be matched with a standardized syntax. All modern programming languages include regular expression libraries. Regular expressions can be used to search strings, replace parts of strings, split strings, and find all occurrences of a pattern in a string. They are useful for tasks like validating formats, parsing text, and finding/replacing text. This document provides examples of common regular expression patterns and methods for using regular expressions in Python.
Tuples are immutable ordered sequences of elements that are accessed using indexes. They are written with round brackets. Tuples can contain elements of different data types and duplicate values are allowed. Tuples use less memory than lists and their elements cannot be changed once created, though they can be deleted and new tuples can be created. Tuples elements are iterated faster than lists and are well suited for tasks that only require accessing elements.
The document discusses collection framework in Java. It explains that arrays have fixed size and hold homogeneous elements while collections are growable and can hold heterogeneous elements. The key interfaces and classes of collection framework include Collection, List, Set, Queue, and Map. Common implementations like ArrayList, LinkedList, Vector, Stack are also covered along with their properties and usage. Cursors like Enumeration, Iterator and ListIterator are explained which can be used to traverse collection elements.
Templates allow functions and classes to operate on generic types in C++. There are two types of templates: class templates and function templates. Function templates are functions that can operate on generic types, allowing code to be reused for multiple types without rewriting. Template parameters allow types to be passed to templates, similar to how regular parameters pass values. When a class, function or static member is generated from a template, it is called template instantiation.
The document provides an overview of web services and their components. It discusses Service Oriented Architecture (SOA) and how web services implement SOA. The key components of web services identified are XML-RPC, SOAP, WSDL, and UDDI. SOAP is an XML-based protocol for exchanging messages between computers. WSDL provides a standard way to describe web services. UDDI allows services to be published and discovered.
Fundamentals of data structures ellis horowitz & sartaj sahniHitesh Wagle
This document is the preface to a textbook on data structures. It provides background on how the field of data structures has evolved from list processing languages to an emphasis on algorithm design and analysis. It describes the goals of the textbook as teaching specification of data structures separate from implementation, rigorous analysis of algorithms, and covering topics like sorting and files. It provides examples of how the material could be covered in a one or two semester course.
This document outlines the syllabus for the CSE 219 Object Oriented Paradigm and Programming course taught by G.SasiKumar at VIT University. The course will use the textbook "Mastering C++" and will include homework, CAT exams, quizzes, presentations, and a final exam. Key topics will include an introduction to programming languages, object oriented programming concepts, advantages and applications of OOP.
Inheritance in java introduces the concept of reusability by implementing a mechanism in which one object acquires all the properties and behaviors of the parent object.
Inheritance in Java is a mechanism in which one object acquires all the properties and behaviors of a parent object. It is an important part of OOPs (Object Oriented programming system).
The idea behind inheritance in Java is that you can create new classes that are built upon existing classes. When you inherit from an existing class, you can reuse methods and fields of the parent class. Moreover, you can add new methods and fields in your current class also.
Inheritance represents the IS-A relationship which is also known as a parent-child relationship.
The document discusses user-defined functions in C++. It explains that a function allows structuring programs in a modular way by grouping statements that are executed when the function is called. The format of a function includes its return type, name, parameters, and function body enclosed in curly braces. Functions can be called by passing arguments, which are copied to the function's local parameter variables. Functions can return a single value. Function prototypes declare a function's interface without defining its body, allowing a function to be called before it is defined. Arguments can be passed by value, where copies are passed, or by reference, where the function can modify the original variables. Arrays can be passed to functions by only passing the array name
This document outlines greedy algorithms, their characteristics, and examples of their use. Greedy algorithms make locally optimal choices at each step in the hopes of finding a global optimum. They are simple to implement and fast, but may not always reach the true optimal solution. Examples discussed include coin changing, traveling salesman, minimum spanning trees using Kruskal's and Prim's algorithms, and Huffman coding.
statement in python conditional statement.For more presentation please contact us on raginijain0208@gmail.com.
You get new presentation every Sunday at 10 AM.
Learn more about Python by click on this given below link
Python Introduction- https://www.slideshare.net/RaginiJain21/final-presentation-on-python
Basic concept of Python -https://www.slideshare.net/RaginiJain21/python-second-ppt
Python Datatypes - https://www.slideshare.net/RaginiJain21/data-types-in-python-248466302
Python Library & Module - https://www.slideshare.net/RaginiJain21/python-libraries-and-modules
Basic Python Programs- https://www.slideshare.net/RaginiJain21/basic-python-programs
Python Media Libarary - https://www.slideshare.net/RaginiJain21/python-media-library
1. Komputasi kuantum menggunakan fenomena mekanika kuantum seperti superposisi dan keterkaitan untuk melakukan operasi data menggunakan qubit. 2. Komputer kuantum dapat menyelesaikan masalah dengan kecepatan lebih besar dibandingkan komputer konvensional karena mampu melakukan kalkulasi paralel pada 2n keadaan secara bersamaan. 3. Komputasi paralel memanfaatkan beberapa komputer
Komputer kuantum menggunakan qubit alih-alih bit biasa dan mampu berada dalam keadaan superposisi di mana mereka tidak diketahui nilainya sampai diukur. Komputer kuantum memiliki kelebihan dalam memproses data secara paralel namun masih dalam tahap pengembangan awal.
The document discusses pointers in C programming. It defines pointers as variables that store the memory addresses of other variables. It provides examples of declaring pointer variables and using dereference and reference operators. It also covers pointer arithmetic, pointers to pointers, pointers to arrays, pointers as function arguments, pointers to structures including self-referential structures, enumerations, and bitfields. Key concepts are illustrated with code examples and outputs.
This document summarizes different types of operators in Java including assignment, increment/decrement, arithmetic, bitwise, relational, logical, ternary, shift, and instance of operators. It provides examples of each type of operator and describes what they are used for such as assigning values, performing mathematical operations, comparing values, and checking object types. The key types of operators covered are assignment, arithmetic, relational, logical, and instance of operators.
What is Data Type?
Primitive Types in C#: Integer Types, Floating-Point Types, Decimal Type, Boolean Type, Character Types, Strings, Objects
Value Types and Reference Types
Variables. Using Variables: Declaring, Initializing, Assigning Value, Accessing Value
Literals: The Values of the Variables in the Source Code. Boolean Literals. Integer Literals. Floating-Point Literals, Decimal Literals, String Literals and Escaping Sequences
Exercises: Working with Primitive Types and Variables
The document discusses strings in C and C++. It explains that strings are not a built-in data type in C/C++ and describes C-style strings as character arrays terminated by a null character. It also discusses C++ string classes like std::string. The document provides examples of using C-style strings and C++ strings. It describes common string functions in C++ for manipulating and comparing strings.
This document discusses various SQL functions in DBMS including single row functions, group functions, character functions, number functions, date functions, and conversion functions. It provides examples of commonly used functions like ROUND, TRUNC, SQRT, MOD, DATE functions, and TO_CHAR/TO_DATE conversion functions. It also covers general functions like NVL, NVL2, NULLIF, COALESCE, CASE, and DECODE that can work on different data types and avoid null values. Set operators are briefly mentioned to combine multiple queries.
This document outlines the syllabus for Computer Science (41) taught by Prof. K. Adisesha. It covers 4 units: Unit A discusses computer hardware components and data structures; Unit B covers object-oriented programming in C++; Unit C focuses on databases, queries, and large data; Unit D examines advanced communication technology concepts like networking and web design. Key topics include motherboards, Boolean algebra, arrays, stacks, queues, classes, inheritance, pointers, files, SQL, networks, and HTML.
The C preprocessor performs preprocessing tasks like file inclusion, macro definition, and conditional compilation before actual compilation. It has six phases including edit, preprocess, compile, link, load, and execute. Preprocessor directives begin with # and are used to include other files, define symbolic constants and macros, and conditionally compile code and other preprocessor directives. The #define directive defines symbolic constants by replacing an identifier with text. Conditional compilation with #if controls whether code or other preprocessor directives are executed or compiled.
Tuples are similar to lists but are immutable. They use parentheses instead of square brackets and can contain heterogeneous data types. Tuples can be used as keys in dictionaries since they are immutable. Accessing and iterating through tuple elements is like lists but tuples do not allow adding or removing items like lists.
Regular expressions are a powerful tool for searching, matching, and parsing text patterns. They allow complex text patterns to be matched with a standardized syntax. All modern programming languages include regular expression libraries. Regular expressions can be used to search strings, replace parts of strings, split strings, and find all occurrences of a pattern in a string. They are useful for tasks like validating formats, parsing text, and finding/replacing text. This document provides examples of common regular expression patterns and methods for using regular expressions in Python.
Tuples are immutable ordered sequences of elements that are accessed using indexes. They are written with round brackets. Tuples can contain elements of different data types and duplicate values are allowed. Tuples use less memory than lists and their elements cannot be changed once created, though they can be deleted and new tuples can be created. Tuples elements are iterated faster than lists and are well suited for tasks that only require accessing elements.
The document discusses collection framework in Java. It explains that arrays have fixed size and hold homogeneous elements while collections are growable and can hold heterogeneous elements. The key interfaces and classes of collection framework include Collection, List, Set, Queue, and Map. Common implementations like ArrayList, LinkedList, Vector, Stack are also covered along with their properties and usage. Cursors like Enumeration, Iterator and ListIterator are explained which can be used to traverse collection elements.
Templates allow functions and classes to operate on generic types in C++. There are two types of templates: class templates and function templates. Function templates are functions that can operate on generic types, allowing code to be reused for multiple types without rewriting. Template parameters allow types to be passed to templates, similar to how regular parameters pass values. When a class, function or static member is generated from a template, it is called template instantiation.
The document provides an overview of web services and their components. It discusses Service Oriented Architecture (SOA) and how web services implement SOA. The key components of web services identified are XML-RPC, SOAP, WSDL, and UDDI. SOAP is an XML-based protocol for exchanging messages between computers. WSDL provides a standard way to describe web services. UDDI allows services to be published and discovered.
Fundamentals of data structures ellis horowitz & sartaj sahniHitesh Wagle
This document is the preface to a textbook on data structures. It provides background on how the field of data structures has evolved from list processing languages to an emphasis on algorithm design and analysis. It describes the goals of the textbook as teaching specification of data structures separate from implementation, rigorous analysis of algorithms, and covering topics like sorting and files. It provides examples of how the material could be covered in a one or two semester course.
This document outlines the syllabus for the CSE 219 Object Oriented Paradigm and Programming course taught by G.SasiKumar at VIT University. The course will use the textbook "Mastering C++" and will include homework, CAT exams, quizzes, presentations, and a final exam. Key topics will include an introduction to programming languages, object oriented programming concepts, advantages and applications of OOP.
Inheritance in java introduces the concept of reusability by implementing a mechanism in which one object acquires all the properties and behaviors of the parent object.
Inheritance in Java is a mechanism in which one object acquires all the properties and behaviors of a parent object. It is an important part of OOPs (Object Oriented programming system).
The idea behind inheritance in Java is that you can create new classes that are built upon existing classes. When you inherit from an existing class, you can reuse methods and fields of the parent class. Moreover, you can add new methods and fields in your current class also.
Inheritance represents the IS-A relationship which is also known as a parent-child relationship.
The document discusses user-defined functions in C++. It explains that a function allows structuring programs in a modular way by grouping statements that are executed when the function is called. The format of a function includes its return type, name, parameters, and function body enclosed in curly braces. Functions can be called by passing arguments, which are copied to the function's local parameter variables. Functions can return a single value. Function prototypes declare a function's interface without defining its body, allowing a function to be called before it is defined. Arguments can be passed by value, where copies are passed, or by reference, where the function can modify the original variables. Arrays can be passed to functions by only passing the array name
This document outlines greedy algorithms, their characteristics, and examples of their use. Greedy algorithms make locally optimal choices at each step in the hopes of finding a global optimum. They are simple to implement and fast, but may not always reach the true optimal solution. Examples discussed include coin changing, traveling salesman, minimum spanning trees using Kruskal's and Prim's algorithms, and Huffman coding.
statement in python conditional statement.For more presentation please contact us on raginijain0208@gmail.com.
You get new presentation every Sunday at 10 AM.
Learn more about Python by click on this given below link
Python Introduction- https://www.slideshare.net/RaginiJain21/final-presentation-on-python
Basic concept of Python -https://www.slideshare.net/RaginiJain21/python-second-ppt
Python Datatypes - https://www.slideshare.net/RaginiJain21/data-types-in-python-248466302
Python Library & Module - https://www.slideshare.net/RaginiJain21/python-libraries-and-modules
Basic Python Programs- https://www.slideshare.net/RaginiJain21/basic-python-programs
Python Media Libarary - https://www.slideshare.net/RaginiJain21/python-media-library
1. Komputasi kuantum menggunakan fenomena mekanika kuantum seperti superposisi dan keterkaitan untuk melakukan operasi data menggunakan qubit. 2. Komputer kuantum dapat menyelesaikan masalah dengan kecepatan lebih besar dibandingkan komputer konvensional karena mampu melakukan kalkulasi paralel pada 2n keadaan secara bersamaan. 3. Komputasi paralel memanfaatkan beberapa komputer
Komputer kuantum menggunakan qubit alih-alih bit biasa dan mampu berada dalam keadaan superposisi di mana mereka tidak diketahui nilainya sampai diukur. Komputer kuantum memiliki kelebihan dalam memproses data secara paralel namun masih dalam tahap pengembangan awal.
Dokumen tersebut membahas sejarah dan konsep dasar dari quantum computing. Quantum computing pertama kali ditemukan pada tahun 1970-an oleh beberapa ilmuwan seperti Feynman dan Deutsch. Komputer kuantum bekerja menggunakan prinsip mekanika kuantum seperti superposisi dan keterkaitan untuk melakukan perhitungan data secara paralel dan jauh lebih cepat dari komputer digital konvensional. Dokumen tersebut juga menjelaskan beber
Dokumen tersebut membahas sejarah dan konsep dasar dari quantum computing. Quantum computing pertama kali ditemukan pada tahun 1970-an oleh beberapa ilmuwan seperti Feynman dan Deutsch. Komputer kuantum bekerja menggunakan prinsip mekanika kuantum seperti superposisi dan keterkaitan untuk melakukan perhitungan data secara paralel dan jauh lebih cepat dari komputer digital konvensional. Dokumen tersebut juga menjelaskan beber
Dokumen tersebut membahas sejarah perkembangan komputer secara singkat, mulai dari alat hitung manual hingga komputer generasi pertama yang menggunakan tabung vakum. Beberapa komputer pertama seperti ENIAC dan UNIVAC I diperkenalkan beserta ciri-ciri utamanya. Kemudian dibahas juga penggantian tabung vakum dengan transistor pada komputer generasi kedua.
Tugas sim 5, walillah gias wiridianti, yananto mihadi putra se, msi,sumber da...WalillahGiasWiridian
Dokumen tersebut membahas tentang pengertian komputasi secara umum, sejarah komputasi modern yang diawali oleh John Von Neumann, dan jenis-jenis komputasi modern seperti komputasi mobile, grid, dan cloud.
V3420051 muhammad raihan khalifa tib-makalah sejarah monitorMuhammadRaihanKhalif
Monitor merupakan output device yang digunakan untuk menampilkan informasi dari komputer. Monitor berfungsi untuk menampilkan data dan program serta melihat kebenaran data yang akan dimasukkan ke dalam komputer. Terdapat beberapa jenis monitor seperti CRT, LCD, plasma. Resolusi dan kecepatan refresh mempengaruhi kualitas gambar pada monitor.
Komputer adalah perangkat tujuan umum yang dapat diprogram untuk melakukan operasi aritmatika dan logika secara otomatis. Komputer modern didasarkan pada sirkuit terpadu dengan kapasitas yang jauh lebih besar daripada mesin awal dan ukurannya jauh lebih kecil. Teori komputabilitas mempelajari konsep dasar tentang fungsi yang dapat dihitung dan klasifikasi fungsi non-komputabel berdasarkan tingkat ketid
Sejarah perkembangan komputer telah berkembang selama 6 dekad terakhir, dimulai dari alat hitung sederhana seperti abakus hingga menjadi mesin elektronik canggih pada masa kini. Komputer telah berkembang melalui 5 generasi yang ditandai dengan penggunaan teknologi terkini untuk meningkatkan kemampuan komputasi.
Dokumen tersebut membahas tentang peranan komputer dalam kehidupan sehari-hari, mulai dari definisi komputer, ciri-ciri komputer, perkembangan sejarah komputer dari generasi pertama hingga kelima, serta penggunaan komputer di berbagai bidang seperti pendidikan, kedokteran, dan bisnis."
Dokumen tersebut membahas sejarah perkembangan komputer sebelum dan sesudah tahun 1940, dimulai dari alat hitung manual hingga 5 generasi komputer modern yang menggunakan teknologi canggih seperti chip. Komputer generasi pertama menggunakan tabung vakum, generasi keempat menggunakan VLSI, dan generasi kelima diramalkan akan memiliki kecerdasan buatan.
Thread merupakan bagian program yang dapat dijalankan secara independen. Dokumen ini membahas konsep dasar thread programming pada Java, termasuk pengertian thread, keuntungan dan kerugian multithreading, model-model multithreading, pustaka thread, pembatalan thread, penggunaan thread pool, penjadwalan thread, contoh pembuatan thread utama dan multi-thread.
Dokumen ini membahas tentang manajemen paket pada sistem operasi Linux menggunakan beberapa perintah seperti apt-get, aptitude, dan dpkg. Meliputi penjelasan fungsi utama masing-masing perintah untuk menginstal, meremove, dan memperbarui paket, beserta langkah-langkah penggunaannya. Juga membahas tentang dependencies dan perbedaan antara remove dan purge.
Nano adalah editor teks untuk sistem Unix yang mirip dengan Pico. Nano bertujuan untuk meniru fungsionalitas dan antarmuka mudah digunakan Pico tanpa integrasi mailer. Nano memiliki berbagai perintah pengeditan seperti memindahkan kursor, menghapus, memotong, mencari, dan menyimpan file.
Teks editor Vim memiliki dua mode, yaitu mode insert untuk mengetik dan mode command untuk memfungsikan perintah. Vim mendukung penggunaan warna dan memiliki berbagai perintah untuk manipulasi file, perpindahan kursor, dan penghapusan teks.
Dokumen ini membahas tentang Filesystem Hierarchy Standard yang menjelaskan struktur direktori utama pada sistem operasi Linux. Terdapat 16 direktori utama yang masing-masing memiliki fungsi khusus seperti /bin untuk perintah dasar, /boot untuk boot loader, /dev untuk device hardware, /etc untuk file konfigurasi, /home untuk direktori pengguna, /lib untuk library sistem, /mnt untuk mounting disk, /opt untuk aplikasi tambahan, /proc untuk proses yang berjalan,
Dokumen ini berisi daftar 50 perintah dasar Linux beserta penjelasan singkat fungsi masing-masing perintah, seperti cd untuk mengubah direktori, rm untuk menghapus file, mkdir untuk membuat direktori baru, dan perintah lainnya untuk mengelola file, direktori, proses, jaringan, dan konfigurasi sistem operasi.
Edubuntu adalah distro Linux yang berisi sistem operasi Linux beserta program-program lainnya seperti kernel, antarmuka baris perintah, dan antarmuka grafis. Dokumen ini juga memberikan instruksi cara mengubah alamat IP, membagi IP address, dan menambahkan koneksi ethernet pada sistem operasi Edubuntu.
1. MAKALAH QUANTUM COMPUTATION
PENGANTAR KOMPUTASI MODERN
Disusun Oleh:
Amalia Wulandari
50417595
Kelas 4IA18
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS GUNADARMA
2021
2. QUANTUM COMPUTATION
A. Konsep Quantum Computation
Quantum Computation atau Komputer Kuantum adalah sebuah komputer yang
memanfaatkan fenomena dari mekanika quantum. Contohnya quantum superposition dan
quantum entanglement untuk pengoperasian data. Atau dapat didefinisikan sebagai suatu
bidang studi yang fokus kepada teknologi komputer yang sedang berkembang berdasarkan
prinsip teori kuantum.
Prinsip dasar komputer kuantum yaitu sifat kuantum dari partikel dapat digunakan
untuk mewakili data dan struktur data dan bahwa mekanika kuantum dapat digunakan untuk
melakukan operasi dengan data ini. Dalam hal ini untuk mengembangkan komputer dengan
sistem kuantum diperlukan suatu logika baru yang sesuai dengan prinsip kuantum. Walaupun
komputer kuantum masih dalam pengembangan, telah dilakukan eksperimen dimana operasi
komputasi kuantum dilakukan atas sejumlah kecil Qubit.
Komputer kuantum dapat jauh lebih cepat dari komputer konvensional pada banyak
masalah, salah satunya yaitu masalah yang memiliki sifat berikut :
• Satu-satunya cara adalah menebak dan mengecek jawabannya berkali-kali.
• Terdapat n jumlah jawaban yang mungkin.
• Setiap kemungkinan jawaban membutuhkan waktu yang sama untuk mengeceknya.
• Tidak ada petunjuk jawaban mana yang kemungkinan benarnya lebih besar: memberi
jawaban dengan asal tidak berbeda dengan mengeceknya dengan urutan tertentu.
Sejarah Quantum Computing dapat dijabarkan sebagai berikut:
• Tahun 1970an pencetusan atau ide tentang komputer kuantum pertama kali muncul oleh
para fisikawan dan ilmu wan komputer seperti Charles H. Bennet dari IBM, Paul A.
Benioff dari Argonne National Laboratory, Illinois, David Deutsch dari University of
Oxford dan Richard P. Feynman dari California Institute of Technology (Caltech).
• Feynman dari California Institute of Technology yang pertama kali mengajukan dan
menunjukkan model bahwa sebuah sistem kuantum dapat digunakan untuk melakukan
komputasi. Feyman juga menunjukkan bagaimana sistem tersebut dapat menjadi
simulator bagi fisika kuantum.
3. • Pada tahun 1985, Deutsch menyadari esensi dari komputasi oleh sebuah komputer
kunatum dan menunjukkan bahwa semua proses fisika secara prinsipil dapat
dimodelkan melalui komputer kuantum. Dengan demikian, komputer kuantum
memiliki kemampuan yang melebihi komputer klasik.
• Pada tahun 1995, Peter Shor merumuskan sebuah algoritma yang memungkinkan
penggunaan komputer kuantum untuk memecahkan masalah faktorisasi dalam teori
bilangan. Sampai saat ini, riset dan eksperimen pada bidang komputer kuantum masih
terus dilakukan diseluruh dunia. Berbagai metode dikembangkan untuk memungkinkan
terwujudnya sebuah komputer yang memiliki kemampuan yang luar biasa ini. Sejauh
ini, sebuah komputer kuantum yang telah dibangun hanya dapat mencapai kemampuan
untuk memfaktorkan dua digiat bilangan. Komputer kuantum ini dibangun pada tahun
1998 di Los Alamos, Amerika Serikat menggunakan NMR (Nuclear Magnetic
Resonance).
B. Cara Kerja Entanglement Quantum
Quantum entanglement adalah bagian dari fenomena quantum mechanical yang
menyatakan bahwa dua atau lebih objek dapat digambarkan mempunyai hubungan dengan
objek lainnya walaupun objek tersebut berdiri sendiri dan terpisah dengan objek lainnya.
Quantum entanglement merupakan salah satu konsep yang membuat Einstein mengkritisi teori
Quantum mechanical. Einstein menunjukkan kelemahan teori Quantum Mechanical yang
menggunakan entanglement merupakan sesuatu yang ―spooky action at a distance‖ karena
Einstein tidak mempercayai bahwa Quantum particles dapat mempengaruhi partikel lainnya
melebihi kecepatan cahaya. Namun, beberapa tahun kemudian, ilmuwan John Bell
membuktikan bahwa ―spooky action at a distance‖ dapat dibuktikan bahwa entanglement
dapat terjadi pada partikel-partikel yang sangat kecil.
Penggunaan quantum entanglement saat ini diimplementasikan dalam berbagai bidang
salah satunya adalah pengiriman pesan-pesan rahasia yang sulit untuk di-enkripsi dan
pembuatan komputer yang mempunyai performa yang sangat cepat.
C. Teknik Pengoperasian Data Qubit
Qubit merupakan kuantum bit , mitra dalam komputasi kuantum dengan digit biner atau
bit dari komputasi klasik. Sama seperti sedikit adalah unit dasar informasi dalam komputer
klasik, qubit adalah unit dasar informasi dalam komputer kuantum.
4. Superposisi, pikirkan qubit sebagai elektron dalam medan magnet. Spin elektron
mungkin baik sejalan dengan bidang, yang dikenal sebagai spin-up, atau sebaliknya ke
lapangan, yang dikenal sebagai keadaan spin-down. Mengubah spin elektron dari satu keadaan
ke keadaan lain dicapai dengan menggunakan pulsa energi, seperti dari Laser - katakanlah kita
menggunakan 1 unit energi laser. Tapi bagaimana kalau kita hanya menggunakan setengah unit
energi laser dan benar-benar mengisolasi partikel dari segala pengaruh eksternal? Menurut
hukum kuantum, partikel kemudian memasuki superposisi negara, di mana ia berperilaku
seolah-olah itu di kedua negara secara bersamaan. Setiap qubit dimanfaatkan bisa mengambil
superposisi dari kedua 0 dan 1. Dengan demikian, jumlah perhitungan bahwa komputer
kuantum dapat melakukan adalah 2 ^ n, dimana n adalah jumlah qubit yang digunakan. Sebuah
komputer kuantum terdiri dari 500 qubit akan memiliki potensi untuk melakukan 2 ^ 500
perhitungan dalam satu langkah. Ini adalah jumlah yang mengagumkan - 2 ^ 500 adalah atom
jauh lebih dari yang ada di alam semesta (ini pemrosesan paralel benar - komputer klasik saat
ini, bahkan disebut prosesor paralel, masih hanya benar-benar melakukan satu hal pada suatu
waktu: hanya ada dua atau lebih dari mereka melakukannya). Tapi bagaimana partikel-partikel
ini akan berinteraksi satu sama lain? Mereka akan melakukannya melalui belitan kuantum.
D. Teknik Quantum Gates
Merupakan sebuah aturan logika / gerbang logika yang berlaku pada quantum
computing. prinsip kerja dari quantum gates hampir sama dengan gerbang logika pada
komputer digital. jika pada komputer digital terdapat beberapa operasi logika seperti AND,
OR, NOT. pada quantum gates terdiri dari beberapa bilangan qubit, sehingga quantum gates
lebih susah untuk dihitung daripada gerbang logika pada komputer digital.
Quantum logic gates, pada prosedur berikut menunjukan bagaimana cara untuk
membuat sirkuit reversibel yang mensimulasikan dan sirkuit inversibel sementara untuk
membuat penghematan yang besar dalam jumlah ancillae yang digunakan. berikut prosesnya:
• Simulasikan gerbang dibabak tingkat pertama
• Jauhkan hasil gerbang di tingkat 2 secara terpisah
• Bersihkan bit ancillae
• Gunakan mereka untuk mensimulasikan gerbang di babak kedua tingkat
• Setelah menghitung output, membersihkan bit ancillae.
• Bersihkan hasil tingkat 2
5. E. Teknik Algoritma Shor
Algoritma Shor ditemukan pertama kali oleh Peter Shor pada tahun 1994. Algoritma
Shor ini secara prinsip dapat melakukan faktorisasi secara efisien, oleh karena itu penggunaan
algoritma ini hanya dapat dikerjakan oleh sebuah komputer kuantum. Dengan adanya
Algoritma Shor ini, sebuah komputer kuantum dapat memecahkan sebuah kode rahasia yang
saat ini secara umum digunakan untuk mengamankan pengiriman data yang disebut dengan
kode RSA. Jika disandikan melalui kode RSA, data yang dikirimkan akan aman karena kode
RSA tidak dapat dipecahkan dalam waktu yang singkat. Selain itu, pemecahan kode RSA
membutuhkan kerja ribuan komputer secara paralel sehingga kerja pemecahan ini tidaklah
efektif.
Algoritma Shor adalah contoh lanjutan paradigma dasar (berapa banyak waktu
komputasi diperlukan untuk menemukan faktor bilangan bulat n-bit?), tapi algoritma ini
tampak terisolir dari kebanyakan temuan lain ilmu informasi quantum. Sekilas, itu cuma seperti
trik pemrograman cerdik dengan signifikansi fundamental yang kecil. Penampilan tersebut
menipu; para periset telah menunjukkan bahwa algoritma Shor bisa ditafsirkan sebagai contoh
prosedur untuk menetapkan level energi sistem quantum, sebuah proses yang fundamental.
Seiring waktu berjalan dan kita mengisi lebih banyak pada peta, semestinya kian mudah
memahami prinsip-prinsip yang mendasari algortima Shor dan algoritma quantum lainnya dan,
kita harap, mengembangkan algoritma baru.