Anda di halaman 1dari 57

Pengenalan Algoritma

Overview
• Memperkenalkan dasar-dasar algoritma dan bahasa
pemrograman
Objectives
• Setelah menyelesaikan Unit ini, mahasiswa diharapkan mampu:
• Memahami dasar-dasar algoritma
• Memahami dasar-dasar bahasa pemrograman
Contents
• Algoritma
• Bahasa Pemrograman
Lesson Overview
• Algoritma secara umum sering didefinisikan sebagai urutan
langkah-langkah penyelesaian masalah yang disusun secara
sistematis dan logis. Dimana logis merupakan kata kunci dalam
Algoritma.
Lesson Objectives
Setelah mempelajari Lesson ini, mahasiswa diharapkan mampu:
• Memahami dasar-dasar Algoritma
Sejarah Algoritma
• Algorism yang berarti proses menghitung dengan angka arab.
• Asal kata tersebut yang berasal dari nama penulis
buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa
Al-Khuwarizmi.
• Al-Khuwarizmi dibaca orang barat menjadi Algorism.
• Algorism  Algorithm.
Definisi Algoritma
• Masalah komputasi dapat diselesaikan dengan menjalankan
serangkaian tindakan dalam urutan yang spesifik.
• Prosedur untuk menyelesaikan masalah terdiri dari:
• Tindakan (Actions) yang akan dijalankan
• Urutan (Order) menjalankan tindakan
• Dengan demikian, Algoritma dapat didefinisikan sebagai urutan
langkah-langkah penyelesaian masalah yang disusun secara
sistematis dan logis.
• Logis merupakan kata kunci dalam Algoritma yang berarti
langkah-langkah dalam Algoritma harus logis.
Definisi Algoritma (Cont.)

Algoritma 1 Algoritma 2
1. Bangun Tidur 1. Bangun Tidur
2. Tanggalkan Piyama 2. Tanggalkan Piyama
3. Mandi 3. Berpakaian yang rapi
4. Berpakaian yang rapi 4. Mandi
5. Sarapan 5. Sarapan
6. Berangkat ke Kampus 6. Berangkat ke Kampus
Aspek Penting Algoritma
• Input dan Output. Sebuah algoritma memiliki input yang diberikan
untuk menjalankan prosedur penyelesaian suatu masalah.
Sedangkan output adalah hasil yang merupakan solusi dari
masalah yang sedang diselesaikan. Output biasanya bergantung
pada input.

• Definiteness (kejelasan). Setiap langkah harus didefinisikan secara


tepat dan jelas, tidak berbelit-belit dan membingungkan
(ambiguous).
Aspek Penting Algoritma (Cont.)
• Finiteness (terbatas). Proses di dalam mencari penyelesaian suatu
masalah harus berakhir dan berhenti, baik dengan hasil akhir
yang merupakan solusinya atau berupa informasi yang tidak
diketemukan solusinya.
• Dalam hal ini ada istilah yang dikenal dengan semi-algoritma, yaitu suatu
prosedur yang hanya akan berhenti jika mempunyai atau menghasilkan
solusi, sedangkan jika tidak menghasilkan solusi maka prosedur tersebut
akan berjalan terus tanpa henti.

• Effectiveness (efektivitas). Dikatakan efektif jika algoritma


tersebut menghasilkan suatu solusi yang sesuai dengan masalah
yang diselesaikan dalam arti algoritma harus tepat guna.
Pernyataan & Aksi
• Pada dasarnya, sebuah Algoritma merupakan deskripsi langkah-
langkah pelaksana suatu proses. Sebuah proses dikerjakan oleh
pemroses berdasarkan algoritma yang diberikan.
• Setiap langkah penyelesaian dinyatakan dengan sebuah
pernyataan (Statement). Sebuah pernyataan menggambarkan aksi
(action) algoritmik yang dieksekusi, bila suatu aksi dieksekusi,
maka sejumlah operasi yang bersesuaian dengan aksi itu
dikerjakan oleh pemroses.
Penulisan Algoritma
• Bahasa Semu (Pseudocode)
• Diagram Alur (Flowchart)
Pseudocode
• Bahasa sehari-hari, dapat menggunakan native language (Bahasa
ibu) untuk mengembangkan pseudocode sendiri
• Pseudocode bukan bahasa pemrograman.

Sehingga, Pseudocode dapat didefinisikan sebagai bahasa tidak


formal yang membantu programmer dalam mengembangkan
algoritma tanpa harus memikirkan batasan-batasan pada bahasa
pemrograman C#

Pseudocode tidak dijalankan oleh komputer, tetapi dapat digunakan


untuk membantu programmer untuk memikirkan cara kerja
aplikasi yang akan dikembangkan sebelum mengembangkan
aplikasi tersebut dalam Bahasa pemrograman seperti C#
Pseudocode (Cont.)
• Contoh:

Minta user memasukkan angka pertama


Masukkan angka pertama

Minta user memasukkan angka kedua


Masukkan angka kedua

Tambahkan angka pertama dan angka kedua dan simpan hasil


Tampilkan hasil
Flowchart
• Membuat suatu penulisan atau penyajian algoritma berupa
diagram yang menggambarkan susunan alur logika dari suatu
permasalahan.
• Flowchart terdiri dari simbol-simbol khusus yang dihubungkan
oleh garis panah.
• Dalam setiap simbol terdapat kata-kata yang mewakili setiap
aktivitas pada langkah tersebut. Bentuk simbol mengidentifikasi
jenis operation yang terjadi.
• Flowchart sebaiknya digambarkan dari atas ke bawah halaman
• Meskipun simbol dalam flowchart sudah terstandarisasi, tetapi
tidak ada standar khusus untuk kata-kata dalam setiap simbol
Flowchart (Cont.)
Simbol Nama Fungsi
Menghubungkan simbol dan
Garis Alir (Flow Line) menunjukkan arah aliran
Program
Merepresentasikan awal
Terminal (start) dan akhir (end) suatu
Program.

Digunakan untuk operasi


Input atau Output masukan (input) dan
keluaran (output)
Flowchart (Cont.)
Simbol Nama Fungsi

Proses Operasi perhitungan dan


pengolahan data

Perbandingan pernyataan,
penyelesaian data yang
Decision memberikan pilihan untuk
langkah selanjutnya. Aliran
data yang masuk 1, Namun
yang keluar biasanya lebih
dari 1
On Page Penghubung bagian-bagian
Connector flowchart yang berada pada
satu halaman yang sama
Flowchart (Cont.)
Simbol Nama Fungsi
Off Page Penghubung bagian-bagian
Connector flowchart yang berada pada
satu halaman yang berbeda

• Keuntungan Flowchart adalah mampu menunjukkan logika


program dalam bentuk gambar sehingga lebih mudah untuk
dipahami
• Kelemahan Flowchart adalah ketika lingkup program sangat besar,
gambar flowchart bisa sampai beberapa halaman sehingga sulit
untuk diikuti dan dimodifikasi.
Struktur Dasar Algoritma
• Sequence (Runtunan)
• Terdiri dari satu atau lebih instruksi. Tiap instruksi dikerjakan secara
berurutan sesuai dengan urutan penulisannya.

• Selection (Pemilihan)
• Instruksi dikerjakan bila telah memenuhi kondisi tertentu
• Terdapat 3 tipe selection structure:
• Single Selection Statement : Suatu aksi dijalankan jika kondisi
terpenuhi, sedangkan jika kondisi tidak terpenuhi maka aksi
dilewatkan (skip)
• Double Selection Statement : Suatu aksi dijalankan jika kondisi
terpenuhi, dan aksi yang lain dijalankan jika kondisi tidak terpenuhi
• Multiple Selection Statement : Menjalankan satu dari beberapa aksi
tergantung nilai dari kondisi
Struktur Dasar Algoritma (Cont.)
• Iteration (Perulangan)
• Mengerjakan aksi secara berulang selama kondisi terpenuhi
• Terdapat 4 tipe iteration:
• While
• Do … While
• For
• ForEach (digunakan untuk array)
Start

Contoh Sequence Isi ceret dengan air

Algoritma untuk membuat teh. Masak air hingga


mendidih
1. Isi ceret dengan air
2. Masak air hingga mendidih Siapkan daun teh dalam
3. Siapkan daun teh dalam cangkir cangkir

4. Tuangkan air dari ceret ke cangkir


Tuangkan air dari ceret
5. Saring daun teh dari cangkir ke cangkir
6. Minum teh
Saring daun teh dari
cangkir

Minum teh

End
Contoh Selection
Algoritma untuk membuat minuman dengan pilihan Teh atau Kopi
1. Isi ceret dengan Air
2. Masak air hingga mendidih
3. Pilih apakah mau minum teh atau kopi
4. Jika mau minum teh, siapkan daun teh dalam cangkir
5. Jika mau minum kopi, siapkan bubuk kopi dalam cangkir
6. Tuangkan air dari ceret ke cangkir
7. Saring daun teh/bubuk kopi dari cangkir
8. Minum teh/kopi
Start

Contoh Selection (Cont.) Isi ceret dengan air

Masak air hingga


mendidih

Siapkan daun teh dalam Teh Minum Teh Kopi Siapkan bubuk kopi
cangkir atau Kopi? dalam cangkir

Tuangkan air dari ceret


ke cangkir

Saring daun teh/ bubuk


kopi dari cangkir

Minum teh / kopi

End
Contoh Iteration
Algoritma untuk menyajikan 10 cangkir teh.
1. Isi ceret dengan air
2. Masak air hingga mendidih
3. Jika urutan cangkir lebih kecil atau sama dengan 10 maka:
• Siapkan daun teh dalam cangkir
• Tuangkan air dari ceret ke cangkir
• Saring daun teh dari cangkir
4. Sajikan teh
Contoh Iteration (Cont.)
Start

Isi ceret dengan air

Masak air hingga


mendidih

Tidak Cangkir ke-i <= Ya Siapkan daun teh dalam


Sajikan teh
10? cangkir

Tuangkan air dari ceret


ke cangkir

Saring daun teh/ bubuk


End Cangkir ke-i += 1
kopi dari cangkir
Lesson Summary
Mahasiswa sekarang mampu:
• Memahami dasar-dasar Algoritma
Lesson Overview
• Programmer merupakan orang yang bertugas untuk menuliskan
instruksi komputer dalam berbagai bahasa pemrograman.
• Ada sebagian Bahasa pemrograman yang bisa langsung
dimengerti oleh komputer, Namun ada sebagian Bahasa
pemrograman yang harus diterjemahkan menjadi “bahasa
komputer” agar dapat dimengerti oleh komputer.
Lesson Objectives
Setelah mempelajari Lesson ini, mahasiswa diharapkan mampu:
• Memahami dasar-dasar Bahasa Pemrograman
Bahasa Pemrograman
• Bahasa yang digunakan untuk memberikan perintah kepada
komputer untuk mengerjakan /menjalankan suatu aksi.
• Orang yang menuliskan bahasa pemrograman disebut dengan
programmer.
• Programmer menuliskan instruksi komputer dalam berbagai
bahasa pemrograman, sebagian bahasa bisa langsung dimengerti
oleh komputer, sebagian bahasa harus diterjemahkan menjadi
“bahasa komputer” agar dapat dimengerti oleh komputer.
• Bahasa pemrograman dibagi 3 :
• Machine Language (Bahasa mesin)
• Assembly Language (Bahasa rakitan)
• High-Level Language (Bahasa tingkat tinggi)
Machine Language (Bahasa Mesin)
• Bahasa alami yang dimiliki dan dimengerti oleh computer namun
kurang praktis untuk manusia
• Bahasa mesin merupakan sejumlah perintah yang biasanya
dinyatakan dalam bentuk bilangan biner (0 dan 1) dan berfungsi
untuk memberikan informasi pada komputer tentang bagaimana
memproses data.
• Contoh : Dalam bahasa mesin simbol penjumlahan dituliskan dengan
“10110011”
Assembly Language (Bahasa Rakitan)
• Dikarenakan Bahasa mesin kurang efektif dalam pemrograman,
maka digunakan singkatan-singkatan yang mirip dengan Bahasa
inggris. Singkatan-singkatan ini yang menjadi dasar terbentuknya
assembly language.
• Memberikan perintah kepada komputer dengan memakai kode-
kode singkat (kode mnemonic), contohnya MOV, SUB, CMP, JMP,
JGE, JL, LOOP, dsb.
• Memerlukan konversi program bahasa rakitan ke bahasa mesin 
Assembler
• Contoh : Operator penjumlahan dalam bahasa assembly dituliskan
dengan “ADD”
Assembly Language (Bahasa Rakitan)
(Cont.)
High-Level Language (Bahasa
Tingkat Tinggi)
• Fungsi utama dari Assembly language adalah untuk menggantikan
machine language dan seperti machine language, menggunakan
assembly language memerlukan programmer untuk mengetahui
banyak hal tentang CPU.
• Hanya untuk membangun program yang sangat sederhana,
programmer sudah harus menuliskan banyak instruksi dalam
assembly language sehingga assembly language sering disebut
sebagai low-level language (Bahasa Tingkat Rendah)
High-Level Language (Bahasa
Tingkat Tinggi) (Cont.)
• Berisi perintah atau instruksi yang dirancang mendekati bahasa
manusia.
• Bahasa pemrograman yang lebih mudah dimengerti oleh manusia.
• Proses kompilasi dari bahasa tingkat tingggi menjadi bahasa
mesin disebut compiler.
• Beberapa bahasa tingkat tinggi yaitu Bahasa C, C++, Visual Basic,
C#.
• Contoh : Operator penjumlahan dalam bahasa tingkat tinggi dituliskan
dengan “+”
High-Level Language (Bahasa
Tingkat Tinggi) (Cont.)
Bahasa C# (C-Sharp)
• Pada tahun 2000, Microsoft merilis bahasa C# (dibaca C-Sharp),
yang secara umum didesain oleh Anders Hejlsberg
• Simbol pagar (#) yang digunakan dalam C#, secara sekilas terlihat seperti
empat buah plus-plus yang disusun sedemikian rupa. Selain itu, di dalam
notasi musik, tanda pagar memang menunjukkan nada yang lebih tinggi
dibandingkan dengan nada yang tidak memiliki pagar, sehingga C#
lebih tinggi dibandingkan C.
• C# berasal dari Bahasa C, C++ dan Java dan cocok digunakan
untuk pengembangan aplikasi berbasis desktop, aplikasi
perusahaan berskala besar, aplikasi berbasis web, mobile, dan
cloud
Bahasa C# (C-Sharp) (Cont.)
• Bahasa C, C++, Java dan C# kini dikenal dengan sebutan "keluarga
besar bahasa pemrograman C" atau "bahasa pemrograman
berbasis bahasa C".
• C++ mengandung semua hal yang dimiliki oleh C tetapi memiliki
fitur yang tidak dimiliki oleh C
• Sementara Java dan C# meskipun masih berbasis bahasa C, tetapi
bukan merupakan pengganti dari bahasa C
• Java dan C# lebih memiliki kesamaan satu sama lain, daripada dengan
bahasa C++.
• Meskipun demikian, C, C++, Java dan C# menggunakan sintaks
yang mirip.
Bahasa C# (C-Sharp) (Cont.)

• C# bersifat Case Sensitive artinya huruf


besar dan huruf kecil berpengaruh dalam
penulisan program.
• Penulisan bahasa menggunakan struktur
blok “{“ dan “}”
• Setiap sintaks harus diakhiri dengan tanda
titik koma “;”
Contoh Penulisan: Pseudocode
Minta user memasukkan nilai panjang
Masukkan nilai panjang

Minta user memasukkan nilai lebar


Masukkan nilai lebar

Kalikan nilai panjang dan nilai lebar dan simpan hasil dalam luas
Tampilkan luas
Contoh Penulisan: Bahasa C#
static void Main(string[] args)
{
int panjang;
int lebar;
int luas;
Console.Write("Masukkan Panjang : ");
panjang = Convert.ToInt32(Console.ReadLine());

Console.Write("Masukkan Lebar : ");


lebar = Convert.ToInt32(Console.ReadLine());

luas = panjang * lebar;


Console.WriteLine("Luas : " + luas);

Console.ReadKey();
}
.NET
• Sebuah perangkat lunak kerangka kerja yang berjalan pada sistem
operasi Windows.
• Kerangka kerja ini menyediakan sejumlah besar pustaka
pemrograman komputer dan mendukung beberapa bahasa
pemrograman serta interoperabilitas yang baik.
• .NET Framework memiliki 2 komponen utama
• Common Language Runtime (CLR)
• .NET Framework Class Library
Common Language Runtime (CLR)
Merupakan fondasi dari
.NET Framework.

CLR berfungsi untuk:


• Menangani kode pada
saat dijalankan.
• Menyediakan layanan inti
seperti:
• Manajemen Memori.
• Memastikan
pendefenisian tipe
data.

45
CLR (Cont.)

• Kode Program aplikasi


.NET dikompilasi menjadi
Common Intermediate
Language (CIL) yang
mendefinisikan instruksi
kepada CLR dan
disimpan dengan file .exe
atau .dll dan file-file
pendukung lainnya.
• Kemudian pada saat
runtime, file ini baru
dikompilasi oleh CLR.

46
.NET Framework Base Class library
• Merupakan koleksi dari object‐oriented type dan interface yang
menyediakan model objek dan service yang berfungsi:
• Akses dan manipulasi data.
• Antar muka .NET seperti Windows Forms, Web Forms, Web Services dan
Console Applications.
• Enkripsi, akses file Input/Output.
• Konfigurasi aplikasi dan sebagainya.
Namespace
• .NET Class Library diatur dalam suatu namespace.
• Namespace adalah pengelompokan logikal dari tipe‐tipe yang
menjalankan fungsi yang terkait secara hirarki.
• Namespace di .NET Base Class Library diorganisasikan secara
hirarki seperti:
• System.
• System.Data.
• System.Data.OleDb.
• Dan sebagainya.
Console Application
• Berbasis Console (Command Line Mode)
• Tidak memiliki GUI (Graphical User Interface)

Perintah Keterangan
Console.Clear() membersihkan layar
Console.ReadKey() menerima input 1 karakter
Console.ReadLine() menerima input string
Console.ResetColor() reset warna latar dan tulisan ke warna default
Console.CursorLeft = X get atau set posisi kursor pada posisi X
Console.CursorTop = Y get atau set posisi kursor pada posisi Y
Console.SetCursorPosition(X,Y) set posisi kursor pada posisi X dan Y
Console.Write() menampilkan nilai tanpa Enter di belakang
Console.WriteLine() menampilkan nilai dengan Enter di belakang
Console Application (Cont.)

Perintah Keterangan
Console.BackgroundColor =
set warna latar
ConsoleColor.Color
Console.ForegroundColor =
set warna tulisan
ConsoleColor.Color
Console.CapsLock Mengambil status tombol Caps Lock
Console.NumberLock Mengambil status tombol Number Lock
mengaktifkan /mengnonaktifkan tampilan
Console.CursorVisible
kursor
Console.Title = Title get dan set tulisan pada jendela Command Line
Perkembangan .NET Framework
Version CLR Support Included in
Release date Development tool Windows Server Replaces
Number version ended Windows
1 1 13-Feb-2002 14-Jul-2009 Visual Studio .NET XP SP1 N/A N/A
1.1 1.1 24-Apr-2003 Visual Studio .NET 2003 XP SP2, SP3 2003 1
2003, 2003 R2, 2008 SP2, 2008 R2
2 2 7-Nov-2005 12-Jul-2011 Visual Studio 2005 N/A N/A
SP1
3 2 6-Nov-2006 12-Jul-2011 Expression Blend Vista 2008 SP2, 2008 R2 SP1 2
3.5 2 19-Nov-2007 12-Jul-2011 Visual Studio 2008 7, 8, 8.1, 10 2008 R2 SP1 2.0, 3.0
4 4 12-Apr-2010 12-Jan-2016 Visual Studio 2010 N/A N/A N/A
4.5 4 15-Aug-2012 12-Jan-2016 Visual Studio 2012 8 2012 4
4.5.1 4 17-Oct-2013 12-Jan-2016 Visual Studio 2013 8.1 2012 R2 4.0, 4.5
4.5.2 4 5-May-2014 N/A N/A N/A N/A 4.0–4.5.1
4.6 4 20-Jul-2015 N/A Visual Studio 2015 10 N/A 4.0–4.5.2
Visual Studio 2015
4.6.1 4 30-Nov-2015 N/A 10 v1511 N/A 4.0–4.6
Update 1
4.6.2 4 2-Aug-2016 N/A 10 v1607 2016 4.0–4.6.1
4.7 4 5-Apr-2017 N/A Visual Studio 2017 10 v1703 N/A 4.0–4.6.2
4.7.1 4 17-Oct-2017 N/A Visual Studio 2017 10 v1709 2016 v1709 4.0–4.7
Microsoft Visual C#
• Memiliki tingkatan struktur file :
• Solution File (.sln)
• Dapat terdiri dari banyak Project dengan bahasa yang
berbeda-beda dalam Visual Studio.
• Project File (.csproj)
• Dapat terdiri dari banyak Item tergantung kebutuhan user.
• Item File (.cs, .rpt, .xsd, dan lain-lain)
Fasilitas Intellisense
• Merupakan salah satu fasilitas yang terdapat pada layar kode.
• Berguna dalam:
• Menampilkan members, dapat diakses dengan cara:
• Klik pada menu Edit | IntelliSense | List Members, atau
• Tekan tombol Ctrl + J pada keyboard.
• Menampilkan informasi parameter dengan cara:
• Mengetikkan tanda ”(”, maka Code Editor akan menampilkan informasi parameter
atau argumen secara otomatis.
• Menyelesaikan penulisan kode dengan cara:
• Mengetikkan satu atau beberapa huruf awal, lalu menekan tombol TAB.
Lesson Summary
Mahasiswa sekarang mampu:
• Memahami dasar-dasar Bahasa Pemrograman
Latihan
Buatlah algoritma dengan menggunakan pseudocode dan flowchart
untuk kasus di bawah ini:
1. Menghidangkan semangkuk mie instant goreng
2. Menghidangkan semangkuk mie dengan kondisi mie yang
dimasak bisa berupa mie kuah atau mie goreng
3. Menghidangkan 100 mangkuk mie instant kuah
Summary
Sekarang mahasiswa mampu:
• Memahami dasar-dasar Algoritma
• Memahami dasar-dasar Bahasa Pemrograman
Question & Answers

Anda mungkin juga menyukai