Materi yang ada pada slide ini berisi :
Apa itu generic programming
Konsep tipe object
Konsep Tag generic<E>
Collection
Iterator
Arraylist
LinkedList
Stack
PriorityQueue
HashMap
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
Slide ini merupakan saduran dari slide milik Google dan Borrys Hasian yang berisi penjelasan dasar tentang Google Design Sprint. Slide ini boleh digunakan untuk kebutuhan edukasi dan boleh disebarluaskan untuk kebutuhan tersebut.
Materi yang ada pada slide ini berisi :
Penjelasan Umum Relasi Kelas
Penjelasan Derajat Relasi Kelas
Konsep dan Simulasi Relasi Kelas Dependency
Konsep dan Simulasi Relasi Kelas Association
Konsep dan Simulasi Relasi Kelas Aggregation
Konsep dan Simulasi Relasi Kelas Composition
Konsep Relasi Kelas Generalisasi (Inheritance)
Penjelasan Konsep MVC
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
Slide ini merupakan saduran dari slide milik Google dan Borrys Hasian yang berisi penjelasan dasar tentang Google Design Sprint. Slide ini boleh digunakan untuk kebutuhan edukasi dan boleh disebarluaskan untuk kebutuhan tersebut.
Materi yang ada pada slide ini berisi :
Penjelasan Umum Relasi Kelas
Penjelasan Derajat Relasi Kelas
Konsep dan Simulasi Relasi Kelas Dependency
Konsep dan Simulasi Relasi Kelas Association
Konsep dan Simulasi Relasi Kelas Aggregation
Konsep dan Simulasi Relasi Kelas Composition
Konsep Relasi Kelas Generalisasi (Inheritance)
Penjelasan Konsep MVC
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
Materi yang ada pada slide ini berisi :
Penjelasan umum activity diagram
Notasi & semantic
Starting activity
Activity & action
Activity frame
Decisions & merge
Fork & join
Time event
Activity partition (swimlanes)
Subactivity
Objects
Signalconnector
Expansion regions
Interrupt
Ending activity
----------------------------------------------------------------------
Keep in touch with me in :
Twitter : https://twitter.com/rizkiadam_1991
Email : rizkiadamunikom@gmail.com
IG : @rizkiadamkurniawan
Materi yang ada pada slide ini berisi :
Pengenalan pemrograman berbasis OO
Teori enkapsulasi
Teori pewarisan
Teori polimorpisme
Praktik implementasi kelas di java
----------------------------------------------------------------------
Keep in touch with me in :
Twitter : https://twitter.com/rizkiadam_1991
Email : rizkiadamunikom@gmail.com
Github : https://github.com/RizkiAdamKurniawan
IG : @rizkiadamkurniawan
Materi yang ada pada slide ini berisi :
Pengenalan Konsep Package Diagram
Notasi, Semantik dan Stereotype pada Packages Diagram
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
Kode antara / Intermediate code merupakan hasil dari tahapan analisis, yang dibuat oleh kompilator pada saat mentranslasikan program dari bahasa tingkat tinggi
Materi yang ada pada slide ini berisi :
Penjelasan umum activity diagram
Notasi & semantic
Starting activity
Activity & action
Activity frame
Decisions & merge
Fork & join
Time event
Activity partition (swimlanes)
Subactivity
Objects
Signalconnector
Expansion regions
Interrupt
Ending activity
----------------------------------------------------------------------
Keep in touch with me in :
Twitter : https://twitter.com/rizkiadam_1991
Email : rizkiadamunikom@gmail.com
IG : @rizkiadamkurniawan
Materi yang ada pada slide ini berisi :
Pengenalan pemrograman berbasis OO
Teori enkapsulasi
Teori pewarisan
Teori polimorpisme
Praktik implementasi kelas di java
----------------------------------------------------------------------
Keep in touch with me in :
Twitter : https://twitter.com/rizkiadam_1991
Email : rizkiadamunikom@gmail.com
Github : https://github.com/RizkiAdamKurniawan
IG : @rizkiadamkurniawan
Materi yang ada pada slide ini berisi :
Pengenalan Konsep Package Diagram
Notasi, Semantik dan Stereotype pada Packages Diagram
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
Kode antara / Intermediate code merupakan hasil dari tahapan analisis, yang dibuat oleh kompilator pada saat mentranslasikan program dari bahasa tingkat tinggi
Materi yang ada pada slide ini berisi :
Pengenalan Konsep Class Diagram
Hubungan OOAD dengan OOP
Konsep Objek dan Kelas
Konsep dan Simulasi Enkapsulasi
Konsep dan Simulasi Pewarisan
Konsep dan Simulasi Polimorphisme
Penjelasan Konsep Abstraksi Pada OOAD dan OOP
Penjelasan Konsep Generic
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
Materi yang ada pada slide ini berisi :
Apa itu java?
Teknologi Java
Tools Java
Instalasi Java
Tipe data dasar dijava
Aturan penamaan di java
Pengaturan tampilan isi variabel
Operator di java
Latihan Pertemuan 1 & Upload ke github
----------------------------------------------------------------------
Keep in touch with me in :
Twitter : https://twitter.com/rizkiadam_1991
Email : rizkiadamunikom@gmail.com
Github : https://github.com/RizkiAdamKurniawan
IG : @rizkiadamkurniawan
Materi yang ada pada slide ini berisi :
1.Why project fail
2.Boss vs Leader
3.Management SDM Proyek
4.Conflict Management
5.Hippocrates Galenus
6.DISC Model
7.PERMA Model
8.GAMES
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
Materi yang ada pada slide ini berisi :
Background testing
Issue
Testing technique
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
Materi yang ada pada slide ini berisi :
Asumsi & Validasi
Lingkup Growth Hacking
Engine of Growth #1: Stickiness / Retention
Engine of Growth #2: Viralty
Engine of Growth #3: Paid Acquisition
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
Materi yang ada pada slide ini berisi :
Penjelasan Umum Bisnis Model
Bisnis Model Canvas
Komponen Pada Model Bisnis Canvas
Revenue Model
Market Analysis
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
Materi yang ada pada slide ini berisi :
Pengenalan Konsep Deployment Diagram
Notasi, Semantik dan Stereotype pada Deployment Diagram
Contoh Kasus Deployment Diagram
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
Materi yang ada pada slide ini berisi :
Penjelasan Umum Sequence Diagram
Penjelasan Notasi, Semantic, dan Stereotype Umum Sequence Diagram
Konsep Time
Konsep Events, Sinyal, dan Pesan
Konsep Activation Bars
Konsep Nested Message
Hubungan Use Case Diagram, Kelas Diagram, dan Sequence Diagram
Konsep Sequence Fragment
Studi Kasus
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
Materi yang ada pada slide ini berisi :
Error & Exception
Penanganan Exception
Penanganan Exception satu catch
Penanganan Exception banyak catch
Penanganan Exception finally
Membuat Exception Sendiri
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
[PBO] Pertemuan 13 - Membuat Aplikasi Desktop dengan JDBC DAO MVCrizki adam kurniawan
Materi yang ada pada slide ini berisi :
TEORI :
APA ITU JDBC
APA ITU API
GAMBARAN DB API
ARSITEKTUR JDBC
JDBC INTERFACE CLASS
PRAKTIK :
Akses full source code nya di link ini :
https://github.com/RizkiAdamKurniawan/JAVA-DAO-MVC
Akses video tutorial nya di link ini :
TAHAP 1. Membuat Project Baru & Package Baru : https://youtu.be/s-6IdMJKhuw
TAHAP 2. Membuat Database : https://youtu.be/W5lR4CBq81g
TAHAP 3. Mapping Database ke Entitas : https://youtu.be/3wdvh3yH3rY
TAHAP 4. Membuat Koneksi : https://youtu.be/if7LPrGMLRY
TAHAP 5. Membuat Service DAO : https://youtu.be/-jMaNzjolXc
TAHAP 6. Membuat Fungsi CRUD : https://youtu.be/R0NwAnUyHx4
TAHAP 7. Membuat Management Transaksi DAO : https://youtu.be/lBzE7G6GM2w
TAHAP 8. Membuat View : https://youtu.be/hgyoI3iW12I
TAHAP 9. Membuat Model : https://youtu.be/VvTiNQtmpDM
TAHAP 10. Membuat Controller : https://youtu.be/OC3Zi2G4fqc
TAHAP 11. Komunikasikan di View : https://youtu.be/k1BFJ3UEf7E
TAHAP 12. Testing Apps : https://youtu.be/cNo8prJlLmc
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
Materi yang ada pada slide ini berisi :
Android version
Platform architecture
App Component
Kotlin
Struktur Project
Activity Lifecycle
Melempar Nilai
Layouting LinearLayout
Layouting RelativeLayout
Look And Feel
Custom Buttom
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
Materi yang ada pada slide ini berisi :
DEFINISI GUI
SWING
HIRARKI JAVA SWING CLASS
KOMPONEN SWING
CONTAINER CLASS
JAVA LAYOUT MANAGER
JAVA SWING COMPONENT
DRAG N DROP
TUGAS INDIVIDU
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
Materi yang ada pada slide ini berisi :
DDL
DML
LATIHAN
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
Materi yang ada pada slide ini berisi :
What is design sprint?
Sprint master
Sprint planning
Design Sprint method teory
Monday : Understand & Define
Tuesday : Diverge
Wednesday : Decide
Thursday : Prototype
Friday : Validate
Case Study
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
Materi yang ada pada slide ini berisi :
PERKENALAN & INSTALASI XAMPP
ABSTRAKSI DATA
TYPE DATA
KELOMPOK PERNYATAAN MYSQL
DDL
DML
LATIHAN
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
Materi yang ada pada slide ini berisi :
Idea Validation
Product Documentation
Team Management
User Interface & Social Media
Asset & Warna
Tools Design
Usability Test Design
Coding Java Desktop
Coding Java Web
Coding Java Android
Evaluasi & Maintain Software
Pengembangan Bisnis Software
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
Materi yang ada pada slide ini berisi :
Definisi Interface
Perbedaan interface dengan class
Format interface
Perancangan
Studi Kasus
Multiple interface
Latihan 6 & Upload ke github
----------------------------------------------------------------------
Keep in touch with me in :
Twitter : https://twitter.com/rizkiadam_1991
Email : rizkiadamunikom@gmail.com
Github : https://github.com/RizkiAdamKurniawan
IG : @rizkiadamkurniawan
Materi yang ada pada slide ini berisi :
Review OOP Concept
Latar belakang adanya abstrak
Definisi Kelas Abstrak
Format sintaks
Menurunkan kelas abstract
Method abstrak
----------------------------------------------------------------------
Keep in touch with me in :
Twitter : https://twitter.com/rizkiadam_1991
Email : rizkiadamunikom@gmail.com
Github : https://github.com/RizkiAdamKurniawan
IG : @rizkiadamkurniawan
Materi yang ada pada slide ini berisi :
Implementasi Polimorphism
Overloading method VS Overriding Method
Ad Hoc & Subtyping Polimorphism
Latihan 5 & Upload ke github
----------------------------------------------------------------------
Keep in touch with me in :
Twitter : https://twitter.com/rizkiadam_1991
Email : rizkiadamunikom@gmail.com
Github : https://github.com/RizkiAdamKurniawan
IG : @rizkiadamkurniawan
Materi yang ada pada slide ini berisi :
Inheritance (Pewarisan)
Hak akses protected
Override Method
Override Constructor
Kata kunci super
Kata kunci final
----------------------------------------------------------------------
Keep in touch with me in :
Twitter : https://twitter.com/rizkiadam_1991
Email : rizkiadamunikom@gmail.com
Github : https://github.com/RizkiAdamKurniawan
IG : @rizkiadamkurniawan
Materi yang ada pada slide ini berisi :
Implementasi Konstruktor dan Destruktor
Overloading method
Latihan 4 & Upload ke github
----------------------------------------------------------------------
Keep in touch with me in :
Twitter : https://twitter.com/rizkiadam_1991
Email : rizkiadamunikom@gmail.com
Github : https://github.com/RizkiAdamKurniawan
IG : @rizkiadamkurniawan
Materi yang ada pada slide ini berisi :
Pengenalan UML Sebagai Alat Bantu Pemodelan Pada Pembangunan Perangkat Lunak Menggunakan Pendekatan Analisis dan Desain Berorientasi Objek
Notasi, Semantik, dan Stereotype Pada UML
Komponen pada UML (Use Case View, Logical View, Physical View, dan Process View)
Pengenalan Use Case Diagram sebagai Use Case View Pada UML
Penjelasan Aktor, Generalisasi Aktor, dan Use Case
Penjelasan Use Case Scenario
Use Case Refinement (Relasi Include, Extends, dan Generalisasi Use Case)
----------------------------------------------------------------------
Keep in touch with me in :
Twitter : https://twitter.com/rizkiadam_1991
Email : rizkiadamunikom@gmail.com
IG : @rizkiadamkurniawan
3. Mukharil Bachtiar, Adam dan Nizamudin Fakhrul, Firman,
2018,
Penerbit Informatika,
Pemrograman berorientasi objek menggunakan java, 262 Halaman
4. • Cara pandang pemrograman yang memungkinkan seorang pembuat kelas menunda
pemberian tipe pada atribut & method
• Nama lain dari konsep “types-to-be-specified-later”
• Kelas yang dibuat bisa digunakan untuk tipe data yang berbeda
• Contoh :
Kedua jenis sample code ini adalah ilustrasi program untuk tipe data berbeda. Untuk setiap
tipe data yang berbeda kita harus membuat satu kelas tersendiri padahal kegunaannya sama.
• Untuk efisiensi desain kelas tersebut, kita dapat menggunakan konsep generic programming.
• Dapat diimplementasikan menjadi 2 konsep, yaitu :
1. Konsep tipe Object
2. Konsep tag generic <T>
5. • Object adalah kelas bawaan di Java sehingga bisa digunakan sebagai tipe dari atribut
maupun method tertentu.
• Kelas Object bisa dideklarasikan kembali menjadi kelas lain dimana didalam java sendiri
setiap tipe data itu dideskripsikan didalam sebuah kelas. (Cth : tipe data double adalah
objek dari kelas Double)
• Ide dasar nya adalah atribut dan method dideklarasikan menggunakan tipe object
sehingga nanti ketika ada objek yang ingin menggunakan atribut dan method di kelas
tersebut, objek tersebut tinggal mendeskripsikan ulang kelas tipe data yang diinginkan.
6. • Contoh Menukar nilai dua variabel :
• Terlihat tipe object
digantikan oleh tipe
String dan integer.
7. • Contoh Menukar nilai dua variabel :
• Terlihat dapat
mendeskripsikan nilai
dalam sebuah
variabel
8. • Tipe Object bisa didefinsikan dengan kelas tipe data, cth : Integer, String, Double
• Tipe ini tidak bisa didefinsikan dengan instance dari kelas tipe data, cth: int, double
• Kelemahan tipe object : kita bisa memasukkan nilai sembarang dengan tipe data yang
berbeda dan nilai tersebut dapat diganti dengan nilai lain yang memiliki tipe data yang
berbeda dengan sangat mudah.
• Objek dari kelas yang mengandung konsep object, tidak spesifik terhadap suatu jenis data
sehingga bisa menyebabkan kebingungan ketika menggunakannya.
• Untuk mengatasi hal tersebut kita dapat menggunakan konsep TAG GENERIC <E>.
9. • Tag ini diwakili oleh simbol <E> . Kita bisa mengganti huruf yang diapit oleh kedua kurung
siku tersebut.
• Konsep ini mengharuskan kita memilih satu dari sekian banyak tipe kelas data ketika
mendeklarasikann objek pada kelas yang mengandung tag generic.
• Perbedaan dari konsep sebelumnya adalah pada tipe dari atribut maupun method harus
disesuaikan dengan huruf yang diapit oleh kedua kurung siku tersebut.
• Contoh desain kelas dengan konsep tag generic :
E
10. • Pada kelas pertukaranNilai terdapat kotak putus-putus dengan hurup E didalmnya
• Simbol tersebut menunjukkan template parameter yang digunakan untuk
menggambarkan tag generic.
• Berikut adalah implementasi desain kelas tersebut kedalam coding
E
11. • Dari file Tester.Java tersebut dapat dilihat bahwa untuk setiap kelas tipe data terdapat satu
objek yang didedikasikan untuk mewakili kelas tipe data tersebut.
• Objek “tukarInteger” didedikasikan untuk mengurusi pertukaran nilai untuke kelas tipe data
“Integer”.
• Tag <T> ditimpa menjadi <Integer> sehingga kelas “PertukaranNilai” bisa digunakan untuk kelas
tipe data “Integer”
• Kedua konsep baik object maupun tag generic samasama bisa digunakan untuk memprogram
secara generic akan tetapi masing-masing mempunyai resiko tersendiri yang harus dipahami
ketika kita menggunakannnya.
• Penggunaan tag generic lebih disarankan karena pertukaran antar kelas tipe data dilakukan
secara eksplisit per objeknya
• Berikutnya dibahas salah satu contoh penerapan generic programming didalam library
Collection.
12. • Collection adalah sebuah ad hoc class yang disediakan oleh java (Java Collection)
• Tujuannya untuk membantu pengguna bahasa java dalam melakukan penyimpanan data
atau objek serta memanipulasinya.
• Kelas ini mempermudah kita dalam operasi struktur data seperti linked list, stack &
struktur data lain.
• Berikut struktur data sederhana yang dibahas pada bahasan kali ini adalah :
1. ArrayList
2. Linked List
3. Stack
4. Priority Queue
5. HashMap
• Ada konsep yang bisa mempermudah proses traversal pada kelas Collection yaitu Iterator
13. • Iterator memungkinkan kita untuk operasi traversal dalam sebuah elemen collection
• Sebagai contoh, kita ingin mengakses semua nilai yang disimpan pada suatu collection.
• Format perintah iterator di java adalah
• Ada 2 buah metode pada kelas ini yang sering digunakan, yaitu :
1. Method hasNext(), method ini digunakan untuk memeriksa apakah iterator masih
mempunyai elemen data berikutnya atau tidak. Method ini akan mengembalikan
nilai true apabla iterator masih mempunyai elemen data berikutnya yang akan di
proses dan mengembalikan nilai false apabila iterator sudah tidak mempunyai
elemen data berikutnya.
2. Method Next, method ini digunakan untuk mengambil elemen berikutnya di iterator
14. • Implementasi Iterator dalam coding
• Iterator dapat digunakan untuk proses traversal elemen-
elemen yang ada pada arraylist bilanganBulat. Method
hasNext() digunakan pada pengulangan while untuk
memeriksa apakah masih ada elemen yang terdapat pada
arraylist bilanganBulat.
• Method next() digunakan untuk mengambil elemen yang
sedang ditunuk oleh iterator kemudian menyimpannya
dalam variabel elemen
15. • Merupakan struktur data array yang bersifat dinamis.
• Kita tidak perlu menginisialisasi ukuran array di awal.
• Format dasar penggunaannya adalah :
• Operasi yang sering digunakan pada kelas ArrayList
No Method Tipe Method Kegunaan
1 add(Object o) boolean Menambahkan data yang sudah dispesifikasikan ke akhir dari
ArrayList
2 add(int indeks, Object
elements)
void Menambahkan data yang sudah dispesifikasikan ke posisi
tertentu di ArrayList
3 clear() Void Menghapus seluruh elemen dari ArrayList
4 get(int indeks) Object Mengembalikan nilai dari elemen arraylist pada posisi sesuai
indeks yang diinginkan
5 Remove(int indeks) Object Menghapus elemen Arraylist pada di posisi sesuai indeks yang
diinginkan
6 size Int Mengembalikan nilai berupa jumlah elemen yang ada pada
arraylist
18. • Linked list menggunakan pointer untuk mengakses data yang ada didalamnya.
• Berbeda dengan array list yang menekankan penggunaan indeks untuk mengakses datanya, linked list
menggunakan konsep penunjuk ke data setelahnya atau sebelumnya.
• Linked list menggunakan dua penunjuk yang wajib ada yaitu pointer first yang selalu menunjuk data yang ada di
posisi paling awal dan pointer last yang selalu menunjuk data yang ada di posisi terakhir.
• Format dasar penggunaannya adalah :
• Operasi yang sering digunakan pada kelas ArrayListNo Method Tipe Method Kegunaan
1 add(Object o) Boolean Menambahkan data yang sudah di spesifikasikan ke akhir
2 add(int indeks, Object
elements)
Void Menambahkan data yang sudah di spesifikasikan ke posisi
tertentu
3 addFirst(Object o) Void Menambahkan data di posisi paling awal
4 addLast(Object o) Void Menambahkan data di posisi paling akhir
5 removeFirst() Object Menghapus data paling awal
6 removeLast() Object Menghapus data paling akhir
7 getFirst() Object Mendapatkan data paling awal
8 getLast() Object Mendapatkan data paling akhir
20. • Cara kerjanya adalah seperti tumpukkan barang didunia nyata
• Konsep penyimpanan dan pengaksesan datanya menggunakan konsep LIFO (Last In First Out)
• Data yang dimasukkan terakhir akan diakses pertama kali ketika pada proses permintaan data.
• Format Dasar penggunaan :
• Implementasi coding
No Method Tipe Method Kegunaan
1 Push(Object o) Object Menambahkan data pada bagian atas stack
2 Pop() Object Mengambil data pada bagian atas stack
21. • PriorityQueue menggunakan konsep antrian didunia nyata
• Konsepnya adalah FIFO (First In First Out)
• Data yang disimpan pertama kali akan dikemablikan pertama apabila ada proses pengaksesan
No Method Tipe Method Kegunaan
1 Offer(Object o) Boolean Menyisipkan data ke dalam queue
2 Peek() Object Mengambil data dari bagian depan Queue tanpa menghapusnya
dari bagian depan antrian
3 Poll() Object Mengambil data dari bagian depan Queue dan menghapusnya
dari bagian depan antrian/Queue
23. • Hashmap menggunakan kunci untuk mengakses nilai yang disimpan didalamnya
• Setiap nilai yang akan disimpan akan dipetakan berdasarkan kuncinya masing-masing
• Kunci harus bersifat Unique.
• Format dasar hashmap:
No Method Tipe Method Kegunaan
1 put(Object K, Object V) Object Menambahkan pasangan key dan value ke dalam Hashmap
2 get(Object K) Object Mengambil value yang memiliki key seperti yang disebutkan
3 containsKey(Object K) Boolean Mengembalikan nilai true apabila didalam HashMap terdapat
key yang disebutkan
4 containValue(Object v) Boolean Mengembalikan nilai true apabila didalam HashMap terdapat
value yang disebutkan.