Mata kuliah Kimia dasar ini diberikan pada semester satu. Capaian yang diharapkan dalam mata kuliah ini adalah mahasiswa mengerti tentang peranan ilmu kimia dalam kehidupan manusia.   materi; tabel berkala, struktur atom  dan konfigurasi elektron; ikatan kimia; larutan; dan asam- basa. selanjutnya mahasiswa mampu  memberi nama, menjelaskan sifat dan kegunaan serta menyelesaikan reaksi kimia gugus fungsi senyawa organik (hidrokarbon; alkohol, fenol , eter; aldehid,  keton,  asam karboksilat; dan amina).



Mata Kuliah ini berbicara tentang Masyarakat Maririm dan kehidupan sosialnya

“People who analyze algorithms have double happiness. First of all
they experience the sheer beauty of elegant mathematical patterns
that surround elegant computational procedures. Then they
receive a practical payoff when their theories make it possible to
get other jobs done more quickly and more economically.”
 — D. E. Knuth 

“...the difference between a bad programmer and a good one is whether
he considers his code or his data structures more important.
Bad programmers worry about the code.
Good programmers worry about data structures and their relationships.”
— Linus Torvalds

Kuliah Algoritma dan Struktur Data ini terbuka untuk umum. Kuliah ini adalah salah satu kuliah inti untuk mahasiswa Informatika atau Teknik Komputer, namun tidak hanya terbatas untuk mahasiswa Informatika atau Teknik Komputer, kuliah ini penting untuk mahasiswa bidang ilmu lainnya yang berhubungan dengan pembuatan program komputer, yang menginginkan program yang dibuatnya cepat dan efisien.

Bahasa pemrograman yang digunakan sebagai contoh penerapan algoritma dan struktur data adalah JAVA. Untuk itu dalam kuliah ini juga akan dibahas tentang pemrograman menggunakan bahasa JAVA.

Untuk lingkungan pemrograman JAVA direkomendasikan menggunakan:

                               drjava

Buku Teks:

           Algoritma           Pemrograman JAVA

Setelah menyelesaikan kuliah ini, peserta kuliah diharapkan: Menjadi Programer yang Baik (Good Programmers).

Kuliah Dasar Pemrograman C++ ini terbuka untuk umum.

Tidak diperlukan prasyarat khusus untuk dapat mengikuiti matakuliah ini, termasuk didalamnya bagi yang belum pernah mempelajari pemrograman komputer.

Materi dalam kuliah ini merujuk dari isi buku "Absolute C++ 4th Eddition" karangan Walter Savitch

                                            

Untuk menkompilasi kode sumber dalam bahasa C++ ada beberapa Compiler C++ yang sudah dilengkapi dengan Editor Teks yang sangat baik yaitu:

  1. Microsoft Visual Studio Community 2013
  2. CodeLite
  3. Eclipse
  4. NerBeans
  5. DevC++

Untuk pemula direkomendasikan menggunakan DevC++.

Materi yang dibahas:

1. C++ Basics

  1. Introduction to C++
  2. Variables, Expressions, and Assignment Statements
  3. Console Input/Output
  4. Program Style
  5. Libraries and Namespaces

2. Flow of Control

  1. Boolean Expressions
  2. Branching Mechanisms
  3. Loops

3. Function Basics

  1. Predefined Functions
  2. Programmer-Defined Functions
  3. Scope Rules

4. Parameters and Overloading

  1. Parameters
  2. Overloading and Default Arguments
  3. Testing and Debugging Functions

5. Arrays

  1. Introduction to Arrays
  2. Arrays in Functions
  3. Programming with Arrays
  4. Multidimensional Arrays

6. Structures and Classes

  1. Structures
  2. Classes

7. Constructors and Other Tools

  1. Constructors
  2. More Tools
  3. Vectors–A Preview of the Standard Template Library

8. Operator Overloading, Friends, and References

  1. Basic Operator Overloading
  2. Friend Functions and Automatic Type Conversion
  3. References and More Overloaded Operators

9. Strings

  1. An Array Type for Strings
  2. Character Manipulation Tools
  3. The Standard Class string

10. Pointers and Dynamic Arrays

  1. Pointers
  2. Dynamic Arrays
  3. Classes, Pointers, and Dynamic Arrays

11. Separate Compilation and Namespaces

  1. Separate Compilation
  2. Namespaces

12. Streams and File I/O

  1. I/O Streams
  2. Tools for Stream I/O
  3. Stream Hierarchies: A Preview of Inheritance
  4. Random Access to Files

13. Recursion

  1. Recursive void Functions
  2. Recursive Functions that Return a Value
  3. Thinking Recursively

14. Inheritance

  1. Inheritance Basics
  2. Programming with Inheritance

15. Polymorphism and Virtual Functions

  1. Virtual Function Basics
  2. Pointers and Virtual Functions

16. Templates

  1. Function Templates
  2. Class Templates
  3. Templates and Inheritance

17. Linked Data Structures

  1. Nodes and Linked Lists
  2. Linked List Applications
  3. Iterators
  4. Trees

18. Exception Handling

  1. Exception Handling Basics
  2. Programming Techniques for Exception Handling

19. Standard Template Library

  1. Iterators
  2. Containers
  3. Generic Algorithms

20. Patterns and UML

  1. Patterns
  2. UML

Kuliah Pemrograman ini terbuka untuk umum. Pada kuliah ini akan dibahas materi pemrograman komputer menggunakan bahasa C++.

Keseluruhan materi kuliah Pemrograman ini setara dengan kuliah Dasar Pemrograman / Pemrograman 1 dan 2 yang biasanya diajarkan pada mahasiswa tahun pertama Teknik Elektro dan atau Teknik Informatika.

Urut-urutan materi yang terdapat dalam kuliah ini, merujuk pada susunan materi yang terdapat dalam buku "Problem Solving with C++ 7th Edition" karangan Walter Savitch

                        

Ada beberapa compiler C++ yang dapat digunakan untuk meng-kompilasi kode sumber C++ (.cpp), namun dalam kuliah ini yang akan digunakan Dev C++ yang dapat diunduh pada tautan beriku: klik disini

Materi :

1. Introduction to Computers and C++ Programming 

1.1 COMPUTER SYSTEMS 

  1. Hardware 
  2. Software 
  3. High-Level Languages 
  4. Compilers 
  5. History Note 

1.2 PROGRAMMING AND PROBLEM-SOLVING 

  1. Algorithms 
  2. Program Design 
  3. Object-Oriented Programming 
  4. The Software Life Cycle 

1.3 INTRODUCTION TO C++ 

  1. Origins of the C++ Language 
  2. A Sample C++ Program 
  3. Pitfall: Using the Wrong Slash in \n 
  4. Programming Tip: Input and Output Syntax 
  5. Layout of a Simple C++ Program 
  6. Pitfall: Putting a Space before the include File Name 
  7. Compiling and Running a C++ Program 
  8. Programming Tip: Getting Your Program to Run 

1.4 TESTING AND DEBUGGING 

  1. Kinds of Program Errors 
  2. Pitfall: Assuming Your Program Is Correct 
  3. Chapter Summary 
  4. Answers to Self-Test Exercises 
  5. Programming Projects 

2. C++ Basics 

2.1 VARIABLES AND ASSIGNMENTS 

  1. Variables 
  2. Names: Identifiers 
  3. Variable Declarations 
  4. Assignment Statements 
  5. Pitfall: Uninitialized Variables 
  6. Programming Tip: Use Meaningful Names 

2.2 INPUT AND OUTPUT 

  1. Output Using cout 
  2. Include Directives and Namespaces 
  3. Escape Sequences 
  4. Programming Tip: End Each Program with a \n or endl 
  5. Formatting for Numbers with a Decimal Point 
  6. Input Using cin 
  7. Designing Input and Output 
  8. Programming Tip: Line Breaks in I/O 

2.3 DATA TYPES AND EXPRESSIONS 

  1. The Types int and double 
  2. Other Number Types 
  3. The Type char 
  4. The Type bool 
  5. Introduction to the Class string 
  6. Type Compatibilities 
  7. Arithmetic Operators and Expressions 
  8. Pitfall: Whole Numbers in Division 
  9. More Assignment Statements 

2.4 SIMPLE FLOW OF CONTROL 

  1. A Simple Branching Mechanism 
  2. Pitfall: Strings of Inequalities 
  3. Pitfall: Using = in place of == 
  4. Compound Statements 
  5. Simple Loop Mechanisms 
  6. Increment and Decrement Operators 
  7. Programming Example: Charge Card Balance 
  8. Pitfall: Infinite Loops 

2.5 PROGRAM STYLE 

  1. Indenting 
  2. Comments 
  3. Naming Constants 

3. More Flow of Control 

3.1 USING BOOLEAN EXPRESSIONS 

  1. Evaluating Boolean Expressions 
  2. Pitfall: Boolean Expressions Convert to int Values 
  3. Enumeration Types (Optional

3.2 MULTIWAY BRANCHES 

  1. Nested Statements 
  2. Programming Tip: Use Braces in Nested Statements 
  3. Multiway if-else Statements 
  4. Programming Example: State Income Tax 
  5. The switch Statement 
  6. Pitfall: Forgetting a break in a switch Statement 
  7. Using switch Statements for Menus 
  8. Blocks 
  9. Pitfall: Inadvertent Local Variables 

3.3 MORE ABOUT C++ LOOP STATEMENTS 

  1. The while Statements Reviewed 
  2. Increment and Decrement Operators Revisited 
  3. The for Statement 
  4. Pitfall: Extra Semicolon in a for Statement 
  5. What Kind of Loop to Use 
  6. Pitfall: Uninitialized Variables and Infinite Loops 
  7. The break Statement 
  8. Pitfall: The break Statement in Nested Loops 

3.4 DESIGNING LOOPS 

  1. Loops for Sums and Products 
  2. Ending a Loop 
  3. Nested Loops 
  4. Debugging Loops 

4. Procedural Abstraction and Functions That Return a Value 

4.1 TOP-DOWN DESIGN 

4.2 PREDEFINED FUNCTIONS 

  1. Using Predefined Functions 
  2. Type Casting 
  3. Older Form of Type Casting 
  4. Pitfall: Integer Division Drops the Fractional Part 

4.3 PROGRAMMER-DEFINED FUNCTIONS 

  1. Function Definitions 
  2. Functions That Return a Boolean Value 
  3. Alternate Form for Function Declarations 
  4. Pitfall: Arguments in the Wrong Order 
  5. Function Definition—Syntax Summary 
  6. More About Placement of Function Definitions 
  7. Programming Tip: Use Function Calls in Branching Statements 

4.4 PROCEDURAL ABSTRACTION 

  1. The Black Box Analogy 
  2. Programming Tip: Choosing Formal Parameter Names 
  3. Programming Tip: Nested Loops 
  4. Case Study: Buying Pizza 
  5. Programming Tip: Use Pseudocode 

4.5 LOCAL VARIABLES 

  1. The Small Program Analogy 
  2. Programming Example: Experimental Pea Patch 
  3. Global Constants and Global Variables 
  4. Call-by-Value Formal Parameters Are Local Variables 
  5. Namespaces Revisited 
  6. Programming Example: The Factorial Function 

4.6 OVERLOADING FUNCTION NAMES 

  1. Introduction to Overloading 
  2. Programming Example: Revised Pizza-Buying Program 
  3. Automatic Type Conversion 

5. Functions for All Subtasks 

5.1 void FUNCTIONS 

  1. Definitions of void Functions 
  2. Programming Example: Converting Temperatures 
  3. return Statements in void Functions 

5.2 CALL-BY-REFERENCE PARAMETERS 

  1. A First View of Call-by-Reference 
  2. Call-by-Reference in Detail 
  3. Programming Example: The swap_values Function 
  4. Mixed Parameter Lists 
  5. Programming Tip: What Kind of Parameter to Use 
  6. Pitfall: Inadvertent Local Variables 

5.3 USING PROCEDURAL ABSTRACTION 

  1. Functions Calling Functions 
  2. Preconditions and Postconditions 
  3. Case Study: Supermarket Pricing 

5.4 TESTING AND DEBUGGING FUNCTIONS 

  • Stubs and Drivers 

5.5 GENERAL DEBUGGING TECHNIQUES 

  1. Keep an Open Mind 
  2. Check Common Errors 
  3. Localize the Error 
  4. The assert macro 

6.  I/O Streams as an Introduction to Objects and Classes 

6.1 STREAMS AND BASIC FILE I/O 

  1. Why Use Files for I/O? 
  2. File I/O 
  3. Introduction to Classes and Objects 
  4. Programming Tip: Check Whether a File Was Opened Successfully 
  5. Techniques for File I/O 
  6. Appending to a File (Optional
  7. File Names as Input (Optional

6.2 TOOLS FOR STREAM I/O 

  1. Formatting Output with Stream Functions 
  2. Manipulators 
  3. Streams as Arguments to Functions 
  4. Programming Tip: Checking for the End of a File 
  5. A Note on Namespaces 
  6. Programming Example: Cleaning Up a File Format 

6.3 CHARACTER I/O 

  1. The Member Functions get and put 
  2. The putback Member Function (Optional
  3. Programming Example: Checking Input 
  4. Pitfall: Unexpected '\n' in Input 
  5. The eof Member Function 
  6. Programming Example: Editing a Text File 
  7. Predefined Character Functions 
  8. Pitfall: toupper and tolower Return Values 

7. ARRAYS 

7.1 INTRODUCTION TO ARRAYS 

  1. Declaring and Referencing Arrays 
  2. Programming Tip: Use for Loops with Arrays 
  3. Pitfall: Array Indexes Always Start with Zero 
  4. Programming Tip: Use a Defined Constant for the Size of an Array 
  5. Arrays in Memory 
  6. Pitfall: Array Index Out of Range 
  7. Initializing Arrays 

7.2 ARRAYS IN FUNCTIONS 

  1. Indexed Variables as Function Arguments 
  2. Entire Arrays as Function Arguments 
  3. The const Parameter Modifier 
  4. Pitfall: Inconsistent Use of const Parameters 
  5. Functions That Return an Array 
  6. Case Study: Production Graph 

7.3 PROGRAMMING WITH ARRAYS 

  1. Partially Filled Arrays 
  2. Programming Tip: Do Not Skimp on Formal Parameters 
  3. Programming Example: Searching an Array 
  4. Programming Example: Sorting an Array 

7.4 MULTIDIMENSIONAL ARRAYS 

  1. Multidimensional Array Basics 
  2. Multidimensional Array Parameters 
  3. Programming Example: Two-Dimensional Grading Program 
  4. Pitfall: Using Commas Between Array Indexes 

8. STRINGS AND VECTORS

8.1 AN ARRAY TYPE FOR STRINGS 

  1. C-String Values and C-String Variables 
  2. Pitfall: Using = and == with C Strings 
  3. Other Functions in <cstring> 
  4. C-String Input and Output 
  5. C-String-to-Number Conversions and Robust Input 

8.2 THE STANDARD string CLASS 

  1. Introduction to the Standard Class string 
  2. I/O with the Class string 
  3. Programming Tip: More Versions of getline 
  4. Pitfall: Mixing cin >> variable; and getline 
  5. String Processing with the Class string 
  6. Programming Example: Palindrome Testing 
  7. Converting between string Objects and C Strings 

8.3 VECTORS 

  1. Vector Basics 
  2. Pitfall: Using Square Brackets Beyond the Vector Size 
  3. Programming Tip: Vector Assignment Is Well Behaved 
  4. Efficiency Issues 

9. POINTERS AND DYNAMIC ARRAYS

9.1 POINTERS 

  1. Pointer Variables 
  2. Basic Memory Management 
  3. Pitfall: Dangling Pointers 
  4. Static Variables and Automatic Variables 
  5. Programming Tip: Define Pointer Types 

9.2 DYNAMIC ARRAYS 

  1. Array Variables and Pointer Variables 
  2. Creating and Using Dynamic Arrays 
  3. Pointer Arithmetic (Optional
  4. Multidimensional Dynamic Arrays (Optional

10.  DEFINING CLASSES

10.1 STRUCTURES 

  1. Structures for Diverse Data 
  2. Pitfall: Forgetting a Semicolon in a Structure Definition 
  3. Structures as Function Arguments 
  4. Programming Tip: Use Hierarchical Structures 
  5. Initializing Structures 

10.2 CLASSES 

  1. Defining Classes and Member Functions 
  2. Public and Private Members 
  3. Programming Tip: Make All Member Variables Private 
  4. Programming Tip: Define Accessor and Mutator Functions 
  5. Programming Tip: Use the Assignment Operator with Objects 
  6. Programming Example: BankAccount Class–Version 1 
  7. Summary of Some Properties of Classes 
  8. Constructors for Initialization 
  9. Programming Tip: Always Include a Default Constructor 
  10. Pitfall: Constructors with No Arguments 

10.3 ABSTRACT DATA TYPES 

  1. Classes to Produce Abstract Data Types 
  2. Programming Example: Alternative Implementation of a Class 

10.4 INTRODUCTION TO INHERITANCE 

  1. Inheritance Among Stream Classes 
  2. Programming Example: Another new_line Function 
  3. Default Arguments for Functions (Optional
  4. Defining Derived Classes