SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
ALGORITMA, STRUKTUR DATA DAN
PEMROGRAMAN TERSTRUKTUR
Akmal, S.Si, MT
Erick Paulus, S.Si, M.Kom
Mata Kuliah : Struktur Data
Tujuan
 mahasiswa dapat membuat program
yang terstruktur dan modular
menggunakan prosedur dan fungsi dengan
tipe data dasar / sederhana menggunakan
bahasa C++ dengan benar

Pokok Bahasan
 Tipe Data dan Abstract Data Type (ADT)
 Algoritma dan bahasa C++
 Pemrograman Terstruktur (Fungsi / Prosedur)
Pemrograman Dan Algoritma
 Algoritma adalah rangkaian terurut langkah-langkah yang logis dan
sistematis yang disusun untuk menyelesaikan suatu masalah
 Program secara umum adalah : kumpulan instruksi atau perintah yang
disusun sedemikian rupa sehingga mempunyai urutan nalar yang logis
untuk menyelesaikan suatu persoalan yang dimengerti oleh komputer.
3 Skema Dasar Algoritma
1. Runtunan
2. Pemilihan / Seleksi
3. Pengulangan
Penulisan algoritma :
a. Diagram Alir / Flow Chart
b. Kode Semu / Pseudo Code
Struktur dan tipe data
Struktur data adalah koleksi dari elemen-elemen data yang dinyatakan dengan
sebuah nama, dengan sifat setiap elemen dapat memiliki tipe yang berlainan.
Struktur data biasa dipakai untuk mengelompokkan beberapa informasi yang
berkaitan menjadi sebuah kesatuan.
* Hirarki Tipe Data
a. Tipe sederhana
- Tipe ordinal
unsigned char 1 byte 0 .. 255
signed char/char 1 byte -128 .. 127
int 2 byte -32768 .. 32767
unsigned int 2 byte 0 .. 65535
longint 4 byte -2.147.483.648 .. 2.147.483.647
- Tipe real
float 4 byte 3.4E-38 .. 3.4E38
double 8 byte 1.7E-308 .. 1.7E308
· b. Tipe terstruktur
Tipe string
larik (array)
rekaman (record/structure)
berkas (file)
· c. Tipe pointer
Penulisan program dengan C++
/* Nama program :
Nama : Akmal
NPM :
Tanggal buat :
Deskripsi :
******************************************************/
// deklarasi header file / Preprocessor directive
// deklarasi fungsi / void
main() {
/* KAMUS Data*/
/* Deskripsi Algoritma*/
}
Pemilihan / Seleksi
Analisa Kasus Tunggal ( If )
 If digunakan untuk melakukan proses penyeleksian.
 Jika nilai if yang diseleksi bernilai true maka semua statement
yang ada di dalam blok if akan dijalankan.
Jika dijalankan maka akan didapatkan output "i = 1". Karena seleksi
pada kurung if() menghasilkan nilai true (!= 0), yaitu nilai i
adalah benar satu(1).
main() {
int i = 1;
if (i==1){
cout<<"i = 1”<<endl;
}
}
Analisa 2 kasus komplementer (If Else)
 Pernyataan Else digunakan sebagai alternatif apabila proses
seleksi if menghasilkan nilai false (==0). Maka semua block yang
ada pada statement else akan dijalankan
 Dapat dilihat bahwa di dalam seleksi if(i==1) menghasilkan nilai
false karena nilai i adalah 2. Maka blok yang dijalankan adalah
blok else, yaitu mencetak i is not 1
main() {
int i = 2;
if(i==1){
cout<<"i = 1”<<endl;
}
else{
cout<<"i is not 1”<<endl;
}
}
Analisa Banyak Kasus (If-Else IF)
 Alternatif else if digunakan sebagai pilihan jika proses seleksi ada
banyak. Misalkan kita harus menyeleksi variable untuk beberapa
pilihan
 Jalankan program dan akan dicetak i = 0. Karena seleksi pertama
yang memenuhi persyaratan. Yaitu if(i==0). Seleksi yang lain
yang tidak memenuhi persyaratan tidak akan dijalankan
main() {
int i = 0;
if(i==0){
cout<<"i = 0”<<endl;
}else if(i==1){
cout<<"i = 1”<<endl;
}else if(i==2){
cout<<"i = 2”<<endl;
}else{
cout<<"i is not 0, 1, or 2”<<endl;
}
}
PENGULANGAN / ITERASI
Pengulangan dengan Statement for
Syntaxnya adalah sbb :
for (inisialisasi ; kondisi kontinu; update) {
aksi ;
}
Ini merupakan bentuk yang sederhana untuk pengontrolan sebuah loop yang terdiri
atas tiga bagian terpisah. Ketiganya ini dimungkinkan untuk kosong.
contoh:
// Menghitung Sigma(i) = 1 + 2 + 3 + ... + n dengan for
main() {
int n, sigma = 0;
cout << “Masukkan bilangan integer positif”; cin >> n;
for (int i = 1; i <= n; i++) {
sigma += i;
}
cout << “Jumlahnya dari << n <<“ bil. pertama adalah : “ << sigma << endl;
}
Pengulangan dengan Statement while
syntaxnya adalah sbb :
while (kondisi) {
aksi;
}
Pertama sekali kondisi diperiksa dan jika kondisi tidak nol (contoh true) maka
statement akan dieksekusi kemudian kondisi dievaluasi lagi sampai kondisi adalah
nol (contoh false).
contoh :
// Program menghitung Sigma(i) = 1 + 2 + 3 + ... + n
// dengan while
main() {
int i=1, n, sigma = 0;
cout << “Masukkan bilangan integer positif”; cin >> n;
while (i<=n) {
sigma +=i;
i++;
}
cout << “Jumlah dari << n <<“ bil. pertama adalah : “ << sigma << endl;
}
Pengulangan dengan Statement do ... while
Syntaxnya adalah sbb:
do {
aksi
} while (kondisi);
Statement ini akan mengerjakan statement minimal satu kali (pertama yang
dilakukan) dan kemudian baru dievaluasi kondisinya. Akan terus diulang selama
kondisi bukan nol. Berhenti sampai kondisi bernilai nol (contoh false).
contoh :
main() {
int n, f = 1;
cout << “Masukkan bil integer positif : “; cin >> n;
cout << n << “ faktorial adalah : “;
do {
f *= n;
n--;
} while (n > 1);
cout << f << endl;
}
Pernyataan break
 Pernyataan break digunakan untuk keluar dari suatu
pengulangan ( loop) sehingga perintah-perintah lain
sesudah perintah break dalam suatu loop tidak akan
dikerjakan.
 Contoh : mencetak angka 1 .. 3
int bil;
for (bil = 1; bil <= 10 ; bil++) {
if (bil == 4)
break;
cout << bil << endl;
}
Pernyataan continue
 Pernyataan continue dimaksudkan untuk mengarahkan
eksekusi lompat ke kondisi pernyataan for, do…while atau
while sehingga kondisi akan dievaluasi lagi.
 Contoh : Mencetak 0 1 2 4
int i = 0;
while (i < 5) {
if (i == 3){
i++;
continue;
}
cout << i << endl;
i++;
}
Pengertian Fungsi
 Fungsi adalah objek (bagian program/rutin) yang
digunakan untuk memodularkan program
dengan suatu ciri mengembalikan suatu nilai
(return value)
 Semua variables yang dideklarasikan dalam
fungsi merupakan variable lokal, yang hanya
diketahui dalam fungsi bersangkutan
 Fungsi bisa memiliki parameter yang
menyediakan komunikasi antara function dengan
modul yang memanggil fungsi tsb. (Parameter
formal dan Parameter aktual)
 Parameters bersifat local variables
Penulisan Fungsi
TipeHasil namaFungsi(tipe1 par1, tipe2 par2 …) {
// kamus data local
……….
// Isi Fungsi
……….
return (hasil); // pengembalian hasil ke pemanggil
}
Pemanggilan :
hsl = namaFungsi (akt1, akt2 …)
Atau
cout<< namaFungsi (akt1, akt2 …)
Antara parameter actual dengan parameter formal harus bersesuaian
yaitu bertipe sama dan banyaknya juga sama
Fungsi void
 Procedure atau subroutine pada bahasa lain diimplementasikan pada C++
dengan menjadikannya sebagai fungsi dengan menempatkan kata kunci
void didepan nama procedure yang dibuat.
 Dalam hal ini tidak diperlukan adanya pengembalian nilai dari fungsi,
sehingga perintah return tidak dimasukkan
Penulisan Fungsi void
void NamaFungsi(tipe1 par1, tipe2 par2 …) {
// kamus data local
……….
// Isi Fungsi void
……….
}
Pemanggilan
NamaFungsi(akt1, akt2, …..)
Perbedaan Passing by value dan Passing by reference
Penulisan di parameter formal
Tipe par
Penulisan di parameter formal
Tipe& par
Formal hanya bisa baca nilai actual
(read only)
Bisa baca dan tulis (read /write)
Parameter formal merupakan salinan
dari aktual
Merupakan alias atau sinonim
Formal tidak mempengaruhi aktual Formal mempengaruhi aktual
Parameter aktual bisa berupa
konstanta, variable, dan ekspresi
Parameter aktual hanya dengan
variable
By value By reference
Latihan dan Tugas
1. Buat program modular untuk menampilkan output sbb (dicetak angka dan asterik):
Banyak baris : 4 (diinputkan dari keyboard)
1. * 1. * * * *
2. * * 2. * * *
3. * * * 3. * *
4. * * * * 4. *
Gunakan skema nested loop dengan a. 2 buah for
b. 2 buah while
2. Tentukan hasil program modular berikut:
void fungsiLoop1(int n) {
for (int i=0; i < n ; i++) {
if (i%2 == 0) cout << i+1 << endl;
else if (i%3 ==0) continue;
else if (i%5 ==0) break;
cout << "Akhir Dalam Loop"<<endl;
}
cout << "Akhir Luar Loop"<<endl;
}
int main() {
fungsiLoop1(8);
}
void fungsiLoop2(int n){
int i=1;
while (i < n) {
if (i < 3)
i += 2;
else cout << (i++) <<endl;
cout<< “Akhir loop” << endl;
}
cout << "ni = " << i;
}
int main() {
fungsiLoop2(7);
}
3. Buatlah program modular untuk mencari pangkat suatu bilangan dengan menggunakan
perulangan.
Masukkan satu bilangan : 2
Masukkan pangkatnya : 3
2 pangkat 3  pangkat (2,3) = 8
4. Buatlah program modular untuk menampilkan lagu anak ayam berikut menggunakan
perulangan:
Masukkan banyak anak ayam : 10 (dinputkan)
Lagunya :
Anak ayam turunlah 10
Mati satu tinggal 9
Anak ayam turunlah 9
Mati satu tinggal 8
…
Anak ayam turunlah 1
Mati satu tinggal induknya

Contenu connexe

Tendances

ppt Tipe data,variabel, operator
ppt Tipe data,variabel, operatorppt Tipe data,variabel, operator
ppt Tipe data,variabel, operator
Iwank Odarlean
 
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan AlgoritmaAlgoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
Ari Septiawan
 

Tendances (20)

Error Handling - P 7 Teknik Kompilasi
Error Handling - P 7 Teknik Kompilasi Error Handling - P 7 Teknik Kompilasi
Error Handling - P 7 Teknik Kompilasi
 
4 diagram relasi antar entitas (ERD)
4 diagram relasi antar entitas (ERD)4 diagram relasi antar entitas (ERD)
4 diagram relasi antar entitas (ERD)
 
Analisis algoritma
Analisis algoritmaAnalisis algoritma
Analisis algoritma
 
Array
ArrayArray
Array
 
BAB II ISI MAKALAH REPRESENTASI DATA
BAB II ISI MAKALAH REPRESENTASI DATABAB II ISI MAKALAH REPRESENTASI DATA
BAB II ISI MAKALAH REPRESENTASI DATA
 
Algoritma brute force
Algoritma brute forceAlgoritma brute force
Algoritma brute force
 
Makalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
Makalah Peranan Semaphore Sistem Operasi - Universitas WidyatamaMakalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
Makalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
 
aritmatika komputer
aritmatika komputeraritmatika komputer
aritmatika komputer
 
Teori bahasa-dan-otomata
Teori bahasa-dan-otomataTeori bahasa-dan-otomata
Teori bahasa-dan-otomata
 
ppt Tipe data,variabel, operator
ppt Tipe data,variabel, operatorppt Tipe data,variabel, operator
ppt Tipe data,variabel, operator
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
 
2 alfabet dan string
2 alfabet dan string2 alfabet dan string
2 alfabet dan string
 
Perbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquerPerbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquer
 
7. Queue (Struktur Data)
7. Queue (Struktur Data)7. Queue (Struktur Data)
7. Queue (Struktur Data)
 
Analisis Algoritma - Notasi Asimptotik
Analisis Algoritma - Notasi AsimptotikAnalisis Algoritma - Notasi Asimptotik
Analisis Algoritma - Notasi Asimptotik
 
Makalah Memori Internal
Makalah Memori InternalMakalah Memori Internal
Makalah Memori Internal
 
Efisiensi algoritma
Efisiensi algoritmaEfisiensi algoritma
Efisiensi algoritma
 
Arsitektur basis data
Arsitektur basis dataArsitektur basis data
Arsitektur basis data
 
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan AlgoritmaAlgoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
 
Ragam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan KomputerRagam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan Komputer
 

Similaire à 1. Algoritma, Struktur Data dan Pemrograman Terstruktur

Similaire à 1. Algoritma, Struktur Data dan Pemrograman Terstruktur (20)

Materi algoritma dan pemrograman insan unggul new
Materi algoritma dan pemrograman insan unggul newMateri algoritma dan pemrograman insan unggul new
Materi algoritma dan pemrograman insan unggul new
 
Cc++
Cc++Cc++
Cc++
 
Laporan praktikum modul ii & iii
Laporan praktikum modul ii & iiiLaporan praktikum modul ii & iii
Laporan praktikum modul ii & iii
 
Pengenalan konsep pemrograman c++
Pengenalan konsep pemrograman c++ Pengenalan konsep pemrograman c++
Pengenalan konsep pemrograman c++
 
Praktikum
PraktikumPraktikum
Praktikum
 
Presentasi Pengenalan konsep pemrograman
Presentasi Pengenalan konsep pemrogramanPresentasi Pengenalan konsep pemrograman
Presentasi Pengenalan konsep pemrograman
 
Penjelasan Program
Penjelasan ProgramPenjelasan Program
Penjelasan Program
 
Intruksi Fundamental Lanjutan
Intruksi Fundamental LanjutanIntruksi Fundamental Lanjutan
Intruksi Fundamental Lanjutan
 
Function c++
Function c++Function c++
Function c++
 
Pertemuan II Function
Pertemuan II FunctionPertemuan II Function
Pertemuan II Function
 
Function
FunctionFunction
Function
 
Function
FunctionFunction
Function
 
Function c++
Function c++Function c++
Function c++
 
Fungsi
FungsiFungsi
Fungsi
 
Struktur Runtunan Algoritma
Struktur Runtunan AlgoritmaStruktur Runtunan Algoritma
Struktur Runtunan Algoritma
 
Modul 1-2
Modul 1-2Modul 1-2
Modul 1-2
 
Materi VISUAL BASIC 2010 dffffffffffopppoo
Materi VISUAL BASIC 2010 dffffffffffopppooMateri VISUAL BASIC 2010 dffffffffffopppoo
Materi VISUAL BASIC 2010 dffffffffffopppoo
 
Tm c++
Tm c++Tm c++
Tm c++
 
Tipe data
Tipe dataTipe data
Tipe data
 
Materi operator java
Materi operator javaMateri operator java
Materi operator java
 

Plus de Kelinci Coklat

Plus de Kelinci Coklat (20)

Bab 7 integrasi numerik
Bab 7 integrasi numerikBab 7 integrasi numerik
Bab 7 integrasi numerik
 
Bab 6 turunan numerik
Bab 6 turunan numerikBab 6 turunan numerik
Bab 6 turunan numerik
 
Bab 5 interpolasi newton lanjutan
Bab 5 interpolasi newton lanjutanBab 5 interpolasi newton lanjutan
Bab 5 interpolasi newton lanjutan
 
Bab 5 interpolasi
Bab 5 interpolasiBab 5 interpolasi
Bab 5 interpolasi
 
Bab 4 sistem persamaan linear
Bab 4 sistem persamaan linearBab 4 sistem persamaan linear
Bab 4 sistem persamaan linear
 
Bab 3 penyelesaian persamaan tak linear
Bab 3 penyelesaian persamaan tak linearBab 3 penyelesaian persamaan tak linear
Bab 3 penyelesaian persamaan tak linear
 
Bab 2 perhitungan galat
Bab 2  perhitungan galatBab 2  perhitungan galat
Bab 2 perhitungan galat
 
Bab 1 pendahuluan
Bab 1 pendahuluanBab 1 pendahuluan
Bab 1 pendahuluan
 
Bab 8 persamaan differensial-biasa
Bab 8 persamaan differensial-biasaBab 8 persamaan differensial-biasa
Bab 8 persamaan differensial-biasa
 
5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)
 
6. Stack (Struktur Data)
6. Stack (Struktur Data)6. Stack (Struktur Data)
6. Stack (Struktur Data)
 
8. Multi List (Struktur Data)
8. Multi List (Struktur Data)8. Multi List (Struktur Data)
8. Multi List (Struktur Data)
 
4.1 Operasi Dasar Singly Linked List 1 (primitive list)
4.1 Operasi Dasar Singly Linked List  1 (primitive list)4.1 Operasi Dasar Singly Linked List  1 (primitive list)
4.1 Operasi Dasar Singly Linked List 1 (primitive list)
 
3. Pointer dan List Berkait Singly
3. Pointer dan List Berkait Singly3. Pointer dan List Berkait Singly
3. Pointer dan List Berkait Singly
 
4.2. Operasi Dasar Singly Linked List 2 (primitive list)
4.2. Operasi Dasar Singly Linked List  2 (primitive list)4.2. Operasi Dasar Singly Linked List  2 (primitive list)
4.2. Operasi Dasar Singly Linked List 2 (primitive list)
 
2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)
 
Anuitas Biasa (Matematika Keuangan)
Anuitas Biasa (Matematika Keuangan)Anuitas Biasa (Matematika Keuangan)
Anuitas Biasa (Matematika Keuangan)
 
Bunga Majemuk (Matematika Keuangan)
Bunga Majemuk (Matematika Keuangan)Bunga Majemuk (Matematika Keuangan)
Bunga Majemuk (Matematika Keuangan)
 
Bunga Sederhana dan Tingkat Diskon (Matematika Keuangan)
Bunga Sederhana dan Tingkat Diskon (Matematika Keuangan)Bunga Sederhana dan Tingkat Diskon (Matematika Keuangan)
Bunga Sederhana dan Tingkat Diskon (Matematika Keuangan)
 
Anuitas Tumbuh dan Variabel (Matematika Keuangan)
Anuitas Tumbuh dan Variabel (Matematika Keuangan)Anuitas Tumbuh dan Variabel (Matematika Keuangan)
Anuitas Tumbuh dan Variabel (Matematika Keuangan)
 

Dernier

Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...
Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...
Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...
pipinafindraputri1
 
Kenakalan Remaja (Penggunaan Narkoba).ppt
Kenakalan Remaja (Penggunaan Narkoba).pptKenakalan Remaja (Penggunaan Narkoba).ppt
Kenakalan Remaja (Penggunaan Narkoba).ppt
novibernadina
 

Dernier (20)

Prov.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdf
Prov.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdfProv.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdf
Prov.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdf
 
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
 
KELAS 10 PERUBAHAN LINGKUNGAN SMA KURIKULUM MERDEKA
KELAS 10 PERUBAHAN LINGKUNGAN SMA KURIKULUM MERDEKAKELAS 10 PERUBAHAN LINGKUNGAN SMA KURIKULUM MERDEKA
KELAS 10 PERUBAHAN LINGKUNGAN SMA KURIKULUM MERDEKA
 
MODUL AJAR MATEMATIKA KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 3 KURIKULUM MERDEKA.pdfMODUL AJAR MATEMATIKA KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 3 KURIKULUM MERDEKA.pdf
 
power point bahasa indonesia "Karya Ilmiah"
power point bahasa indonesia "Karya Ilmiah"power point bahasa indonesia "Karya Ilmiah"
power point bahasa indonesia "Karya Ilmiah"
 
Panduan Memahami Data Rapor Pendidikan 2024
Panduan Memahami Data Rapor Pendidikan 2024Panduan Memahami Data Rapor Pendidikan 2024
Panduan Memahami Data Rapor Pendidikan 2024
 
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
 
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxPendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
 
Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...
Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...
Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...
 
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMKAksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
 
Kenakalan Remaja (Penggunaan Narkoba).ppt
Kenakalan Remaja (Penggunaan Narkoba).pptKenakalan Remaja (Penggunaan Narkoba).ppt
Kenakalan Remaja (Penggunaan Narkoba).ppt
 
Intellectual Discourse Business in Islamic Perspective - Mej Dr Mohd Adib Abd...
Intellectual Discourse Business in Islamic Perspective - Mej Dr Mohd Adib Abd...Intellectual Discourse Business in Islamic Perspective - Mej Dr Mohd Adib Abd...
Intellectual Discourse Business in Islamic Perspective - Mej Dr Mohd Adib Abd...
 
AKSI NYATA TOPIK 1 MERDEKA BELAJAR. PPTX
AKSI NYATA TOPIK 1 MERDEKA BELAJAR. PPTXAKSI NYATA TOPIK 1 MERDEKA BELAJAR. PPTX
AKSI NYATA TOPIK 1 MERDEKA BELAJAR. PPTX
 
Kanvas BAGJA prakarsa perubahan Ahyar.pdf
Kanvas BAGJA prakarsa perubahan Ahyar.pdfKanvas BAGJA prakarsa perubahan Ahyar.pdf
Kanvas BAGJA prakarsa perubahan Ahyar.pdf
 
Bab 4 Persatuan dan Kesatuan di Lingkup Wilayah Kabupaten dan Kota.pptx
Bab 4 Persatuan dan Kesatuan di Lingkup Wilayah Kabupaten dan Kota.pptxBab 4 Persatuan dan Kesatuan di Lingkup Wilayah Kabupaten dan Kota.pptx
Bab 4 Persatuan dan Kesatuan di Lingkup Wilayah Kabupaten dan Kota.pptx
 
PANDUAN PENGEMBANGAN KSP SMA SUMBAR TAHUN 2024 (1).pptx
PANDUAN PENGEMBANGAN KSP SMA SUMBAR TAHUN 2024 (1).pptxPANDUAN PENGEMBANGAN KSP SMA SUMBAR TAHUN 2024 (1).pptx
PANDUAN PENGEMBANGAN KSP SMA SUMBAR TAHUN 2024 (1).pptx
 
MODUL AJAR IPAS KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR IPAS KELAS 3 KURIKULUM MERDEKA.pdfMODUL AJAR IPAS KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR IPAS KELAS 3 KURIKULUM MERDEKA.pdf
 
AKSI NYATA Numerasi Meningkatkan Kompetensi Murid_compressed (1) (1).pptx
AKSI NYATA  Numerasi  Meningkatkan Kompetensi Murid_compressed (1) (1).pptxAKSI NYATA  Numerasi  Meningkatkan Kompetensi Murid_compressed (1) (1).pptx
AKSI NYATA Numerasi Meningkatkan Kompetensi Murid_compressed (1) (1).pptx
 
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptxOPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
 
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptxDEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
 

1. Algoritma, Struktur Data dan Pemrograman Terstruktur

  • 1. ALGORITMA, STRUKTUR DATA DAN PEMROGRAMAN TERSTRUKTUR Akmal, S.Si, MT Erick Paulus, S.Si, M.Kom Mata Kuliah : Struktur Data
  • 2. Tujuan  mahasiswa dapat membuat program yang terstruktur dan modular menggunakan prosedur dan fungsi dengan tipe data dasar / sederhana menggunakan bahasa C++ dengan benar 
  • 3. Pokok Bahasan  Tipe Data dan Abstract Data Type (ADT)  Algoritma dan bahasa C++  Pemrograman Terstruktur (Fungsi / Prosedur)
  • 4. Pemrograman Dan Algoritma  Algoritma adalah rangkaian terurut langkah-langkah yang logis dan sistematis yang disusun untuk menyelesaikan suatu masalah  Program secara umum adalah : kumpulan instruksi atau perintah yang disusun sedemikian rupa sehingga mempunyai urutan nalar yang logis untuk menyelesaikan suatu persoalan yang dimengerti oleh komputer. 3 Skema Dasar Algoritma 1. Runtunan 2. Pemilihan / Seleksi 3. Pengulangan Penulisan algoritma : a. Diagram Alir / Flow Chart b. Kode Semu / Pseudo Code
  • 5. Struktur dan tipe data Struktur data adalah koleksi dari elemen-elemen data yang dinyatakan dengan sebuah nama, dengan sifat setiap elemen dapat memiliki tipe yang berlainan. Struktur data biasa dipakai untuk mengelompokkan beberapa informasi yang berkaitan menjadi sebuah kesatuan. * Hirarki Tipe Data a. Tipe sederhana - Tipe ordinal unsigned char 1 byte 0 .. 255 signed char/char 1 byte -128 .. 127 int 2 byte -32768 .. 32767 unsigned int 2 byte 0 .. 65535 longint 4 byte -2.147.483.648 .. 2.147.483.647 - Tipe real float 4 byte 3.4E-38 .. 3.4E38 double 8 byte 1.7E-308 .. 1.7E308 · b. Tipe terstruktur Tipe string larik (array) rekaman (record/structure) berkas (file) · c. Tipe pointer
  • 6. Penulisan program dengan C++ /* Nama program : Nama : Akmal NPM : Tanggal buat : Deskripsi : ******************************************************/ // deklarasi header file / Preprocessor directive // deklarasi fungsi / void main() { /* KAMUS Data*/ /* Deskripsi Algoritma*/ }
  • 7. Pemilihan / Seleksi Analisa Kasus Tunggal ( If )  If digunakan untuk melakukan proses penyeleksian.  Jika nilai if yang diseleksi bernilai true maka semua statement yang ada di dalam blok if akan dijalankan. Jika dijalankan maka akan didapatkan output "i = 1". Karena seleksi pada kurung if() menghasilkan nilai true (!= 0), yaitu nilai i adalah benar satu(1). main() { int i = 1; if (i==1){ cout<<"i = 1”<<endl; } }
  • 8. Analisa 2 kasus komplementer (If Else)  Pernyataan Else digunakan sebagai alternatif apabila proses seleksi if menghasilkan nilai false (==0). Maka semua block yang ada pada statement else akan dijalankan  Dapat dilihat bahwa di dalam seleksi if(i==1) menghasilkan nilai false karena nilai i adalah 2. Maka blok yang dijalankan adalah blok else, yaitu mencetak i is not 1 main() { int i = 2; if(i==1){ cout<<"i = 1”<<endl; } else{ cout<<"i is not 1”<<endl; } }
  • 9. Analisa Banyak Kasus (If-Else IF)  Alternatif else if digunakan sebagai pilihan jika proses seleksi ada banyak. Misalkan kita harus menyeleksi variable untuk beberapa pilihan  Jalankan program dan akan dicetak i = 0. Karena seleksi pertama yang memenuhi persyaratan. Yaitu if(i==0). Seleksi yang lain yang tidak memenuhi persyaratan tidak akan dijalankan main() { int i = 0; if(i==0){ cout<<"i = 0”<<endl; }else if(i==1){ cout<<"i = 1”<<endl; }else if(i==2){ cout<<"i = 2”<<endl; }else{ cout<<"i is not 0, 1, or 2”<<endl; } }
  • 10. PENGULANGAN / ITERASI Pengulangan dengan Statement for Syntaxnya adalah sbb : for (inisialisasi ; kondisi kontinu; update) { aksi ; } Ini merupakan bentuk yang sederhana untuk pengontrolan sebuah loop yang terdiri atas tiga bagian terpisah. Ketiganya ini dimungkinkan untuk kosong. contoh: // Menghitung Sigma(i) = 1 + 2 + 3 + ... + n dengan for main() { int n, sigma = 0; cout << “Masukkan bilangan integer positif”; cin >> n; for (int i = 1; i <= n; i++) { sigma += i; } cout << “Jumlahnya dari << n <<“ bil. pertama adalah : “ << sigma << endl; }
  • 11. Pengulangan dengan Statement while syntaxnya adalah sbb : while (kondisi) { aksi; } Pertama sekali kondisi diperiksa dan jika kondisi tidak nol (contoh true) maka statement akan dieksekusi kemudian kondisi dievaluasi lagi sampai kondisi adalah nol (contoh false). contoh : // Program menghitung Sigma(i) = 1 + 2 + 3 + ... + n // dengan while main() { int i=1, n, sigma = 0; cout << “Masukkan bilangan integer positif”; cin >> n; while (i<=n) { sigma +=i; i++; } cout << “Jumlah dari << n <<“ bil. pertama adalah : “ << sigma << endl; }
  • 12. Pengulangan dengan Statement do ... while Syntaxnya adalah sbb: do { aksi } while (kondisi); Statement ini akan mengerjakan statement minimal satu kali (pertama yang dilakukan) dan kemudian baru dievaluasi kondisinya. Akan terus diulang selama kondisi bukan nol. Berhenti sampai kondisi bernilai nol (contoh false). contoh : main() { int n, f = 1; cout << “Masukkan bil integer positif : “; cin >> n; cout << n << “ faktorial adalah : “; do { f *= n; n--; } while (n > 1); cout << f << endl; }
  • 13. Pernyataan break  Pernyataan break digunakan untuk keluar dari suatu pengulangan ( loop) sehingga perintah-perintah lain sesudah perintah break dalam suatu loop tidak akan dikerjakan.  Contoh : mencetak angka 1 .. 3 int bil; for (bil = 1; bil <= 10 ; bil++) { if (bil == 4) break; cout << bil << endl; }
  • 14. Pernyataan continue  Pernyataan continue dimaksudkan untuk mengarahkan eksekusi lompat ke kondisi pernyataan for, do…while atau while sehingga kondisi akan dievaluasi lagi.  Contoh : Mencetak 0 1 2 4 int i = 0; while (i < 5) { if (i == 3){ i++; continue; } cout << i << endl; i++; }
  • 15. Pengertian Fungsi  Fungsi adalah objek (bagian program/rutin) yang digunakan untuk memodularkan program dengan suatu ciri mengembalikan suatu nilai (return value)  Semua variables yang dideklarasikan dalam fungsi merupakan variable lokal, yang hanya diketahui dalam fungsi bersangkutan  Fungsi bisa memiliki parameter yang menyediakan komunikasi antara function dengan modul yang memanggil fungsi tsb. (Parameter formal dan Parameter aktual)  Parameters bersifat local variables
  • 16. Penulisan Fungsi TipeHasil namaFungsi(tipe1 par1, tipe2 par2 …) { // kamus data local ………. // Isi Fungsi ………. return (hasil); // pengembalian hasil ke pemanggil } Pemanggilan : hsl = namaFungsi (akt1, akt2 …) Atau cout<< namaFungsi (akt1, akt2 …) Antara parameter actual dengan parameter formal harus bersesuaian yaitu bertipe sama dan banyaknya juga sama
  • 17. Fungsi void  Procedure atau subroutine pada bahasa lain diimplementasikan pada C++ dengan menjadikannya sebagai fungsi dengan menempatkan kata kunci void didepan nama procedure yang dibuat.  Dalam hal ini tidak diperlukan adanya pengembalian nilai dari fungsi, sehingga perintah return tidak dimasukkan Penulisan Fungsi void void NamaFungsi(tipe1 par1, tipe2 par2 …) { // kamus data local ………. // Isi Fungsi void ………. } Pemanggilan NamaFungsi(akt1, akt2, …..)
  • 18. Perbedaan Passing by value dan Passing by reference Penulisan di parameter formal Tipe par Penulisan di parameter formal Tipe& par Formal hanya bisa baca nilai actual (read only) Bisa baca dan tulis (read /write) Parameter formal merupakan salinan dari aktual Merupakan alias atau sinonim Formal tidak mempengaruhi aktual Formal mempengaruhi aktual Parameter aktual bisa berupa konstanta, variable, dan ekspresi Parameter aktual hanya dengan variable By value By reference
  • 19. Latihan dan Tugas 1. Buat program modular untuk menampilkan output sbb (dicetak angka dan asterik): Banyak baris : 4 (diinputkan dari keyboard) 1. * 1. * * * * 2. * * 2. * * * 3. * * * 3. * * 4. * * * * 4. * Gunakan skema nested loop dengan a. 2 buah for b. 2 buah while 2. Tentukan hasil program modular berikut: void fungsiLoop1(int n) { for (int i=0; i < n ; i++) { if (i%2 == 0) cout << i+1 << endl; else if (i%3 ==0) continue; else if (i%5 ==0) break; cout << "Akhir Dalam Loop"<<endl; } cout << "Akhir Luar Loop"<<endl; } int main() { fungsiLoop1(8); } void fungsiLoop2(int n){ int i=1; while (i < n) { if (i < 3) i += 2; else cout << (i++) <<endl; cout<< “Akhir loop” << endl; } cout << "ni = " << i; } int main() { fungsiLoop2(7); }
  • 20. 3. Buatlah program modular untuk mencari pangkat suatu bilangan dengan menggunakan perulangan. Masukkan satu bilangan : 2 Masukkan pangkatnya : 3 2 pangkat 3  pangkat (2,3) = 8 4. Buatlah program modular untuk menampilkan lagu anak ayam berikut menggunakan perulangan: Masukkan banyak anak ayam : 10 (dinputkan) Lagunya : Anak ayam turunlah 10 Mati satu tinggal 9 Anak ayam turunlah 9 Mati satu tinggal 8 … Anak ayam turunlah 1 Mati satu tinggal induknya