Skip to content

Diagram

Chetabahana edited this page May 24, 2020 · 87 revisions

Diagram adalah suatu representasi simbolis informasi dalam bentuk geometri dua dimensi atau visualisasi tiga dimensi yang kemudian diproyeksikan ke permukaan dua dimensi.

Table of Contents

Struktur

Pada sesi ini kita akan bahas tentang latar belakang penggunaan, fungsi spesifik dan jenis dari diagram yang digunakan dalam project.


Berdasarkan spesifikasinya diagram memiliki banyak jenis.

Pada project ini akan diimplementasikan sejumlah diagram untuk merekonstruksi penelusuran. Diantaranya seperti yang terlihat dalam diagram sintaks di bawah ini.

Diagram ini adalah alat untuk menggambarkan sintaks, juga dikenal sebagai diagram rel, dibangun dari tata bahasa bebas konteks yang ditentukan dalam EBNF.

Fitur yang satu ini adalah

  1. penggunaan notasi EBNF W3C,
  2. web-memoing tata bahasa dari spesifikasi W3C,
  3. pengeditan tata bahasa secara online,
  4. presentasi diagram dalam SVG,
  5. sepenuhnya ditulis dalam bahasa web (XQuery, XHTML, CSS, JavaScript).
Diagram sintaks telah digunakan selama beberapa dekade sekarang, jadi konsepnya sudah terkenal, dan beberapa alat untuk pembuatan diagram sudah ada.

Model

Jadi setiap bagian dari suatu permasalahan adalah objek, nah objek itu sendiri merupakan gabungan dari beberapa objek yang lebih kecil lagi.


Saya ambil contoh Pesawat, Pesawat adalah sebuah objek. Pesawat itu sendiri terbentuk dari beberapa objek yang lebih kecil lagi seperti mesin, roda, baling-baling, kursi, dll.

Pesawat sebagai objek yang terbentuk dari objek-objek yang lebih kecil saling berhubungan, berinteraksi, berkomunikasi dan saling mengirim pesan kepada objek-objek yang lainnya.

Begitu juga dengan program, sebuah objek yang besar dibentuk dari beberapa objek yang lebih kecil, objek-objek itu saling berkomunikasi, dan saling berkirim pesan kepada objek yang lain.

OOP (Object Oriented Programming) adalah suatu metode pemrograman yang berorientasi objek.

Tujuan dari OOP diciptakan adalah untuk mempermudah dalam membangun konfigurasi dan pengembangan program dengan cara mengikuti model yang telah ada di kehidupan sehari-hari.

Berdasarkan Metode OOPs maka pola ini dapat disusun sesuai bagan berikut:

Object

Object merupakan perwujudan dari class, setiap object akan mempunyai attribute dan method yang dimiliki oleh class-nya, contohnya: amir, ahmad, yani merupakan object dari class manusia. Setiap object dapat berinteraksi dengan object lainnya meskipun berasal dari class yang berbeda.

Prosedur dalam pemrograman berorientasi objek dikenal sebagai metode; variabel juga dikenal sebagai bidang, anggota, atribut, atau properti. Ini mengarah pada ketentuan berikut:

  1. Variabel kelas - milik kelas secara keseluruhan; hanya ada satu salinan dari masing-masing
  2. Variabel instan atau atribut - data yang dimiliki oleh objek individu; setiap objek memiliki salinannya masing-masing
  3. Variabel anggota - merujuk pada variabel kelas dan contoh yang ditentukan oleh kelas tertentu
  4. Metode kelas - milik kelas secara keseluruhan dan hanya memiliki akses ke variabel kelas dan input dari pemanggilan prosedur
  5. Metode instance - milik objek individual, dan memiliki akses ke variabel instan untuk objek spesifik yang dipanggil, input, dan variabel kelas

Classes

Definisi untuk class adalah format data dan prosedur yang tersedia untuk jenis atau class objek tertentu; mungkin juga berisi data (property) dan prosedur (metode).

Misal class berisi data anggota dan fungsi anggota:

Setiap objek dikatakan sebagai instance dari class tertentu (misalnya, objek dengan bidang namanya diatur ke "Mary" mungkin merupakan instance dari class Karyawan).

Hubungan antara Class, Method dan Attribute (property) bisa dijelaskan sbb:

  1. Method atau yang biasa juga disebut behaviour merupakan bagian yang dimiliki oleh sebuah class yang dapat melakukan operasi, bertindak atau mengerjakan sesuatu.
  2. Attribute atau yang biasa juga disebut state/properties/field merupakan bagian yang dimiliki oleh sebuah class yang tidak melakukan operasi tetapi kepadanya dilakukan operasi sehingga dapat merubah nilai dari attribute tersebut.

Hirarki

Dalam setiap penurunan dari Metoda OOP kita akan mendapatkan turunan² baru. Guna pewarisan dan perekaman interaksi kita perlu menetapkan identifikasi dari masing² turunan tersebut berdasarkan hirarki dan korelasi nya.

Warisan

Inheritance merupakan konsep mewariskan attribute dan method yang dimiliki oleh sebuah class kepada class turunannya.

Dengan konsep ini class yang dibuat cukup mendefinisikan attribute dan method yang spesifik didalamnya, sedangkan attribute dan method yang lebih umum akan didapatkan dari class yang menjadi induknya.

  1. Kita dapat mendefinisikan suatu kelas baru dengan mewarisi sifat dari kelas lain yang sudah ada.
  2. Penurunan sifat ini bisa dilakukan secara bertingkat-tingkat, sehingga semakin ke bawah kelas tersebut menjadi semakin spesifik.
  3. Sub kelas memungkinkan kita untuk melakukan spesifikasi detail dan perilaku khusus dari kelas supernya.
  4. Dengan konsep pewarisan, seorang programmer dapat menggunakan kode yang telah ditulisnya pada kelas super berulang kali pada kelas-kelas turunannya tanpa harus menulis ulang semua kodekode itu.

Beragam

Polymorphism merupakan konsep yang memungkinkan digunakannya suatu interface yang sama untuk memerintah suatu object agar melakukan suatu tindakan yang mungkin secara prinsip sama tetapi secara proses berbeda.

  1. Polymorphism merupakan kemampuan objek yang berbeda kelas namun terkait dalam pewarisan untuk merespon secara berbeda terhadap suatu pesan yang sama.
  2. Polymorphism juga dapat dikatakan kemampuan sebuah objek untuk memutuskan method mana yang akan diterapkan padanya, tergantung letak objek tersebut pada jenjang pewarisan.

Misalnya, objek bertipe Circle dan Square berasal dari kelas umum yang disebut Shape. Fungsi Draw untuk setiap jenis Shape mengimplementasikan apa yang diperlukan untuk menggambar dirinya sendiri sementara kode panggilan dapat tetap dengan tipe Shape tertentu yang sedang digambar.

Ini adalah jenis abstraksi lain yang menyederhanakan kode eksternal ke hierarki kelas dan memungkinkan pemisahan masalah secara lebih jelas.

Layout

Tujuan utama dari penelusuran yang akan dilakukan adalah mendapatkan data turunan yang dapat menunjang data yang sudah ada. Object, class dan metode yang sudah diuraikan di atas adalah hanya merupakan bagian dari perangkat berupa Skema yang digunakan untuk meraih tujuan ini.

Bahasa berorientasi objek menyediakan kerangka kerja dan motivasi untuk mengeksplorasi interaksi antara konsep tipe dengan abstraksi data dan polimorfism, karena mereka memperluas gagasan tipe ke abstraksi data dan karena pewarisan tipe merupakan bentuk penting polimorfism.

Abstraksi

Abstraction adalah suatu cara untuk melihat suatu object dalam bentuk yang lebih sederhana. Sebagai contoh kita tidak melihat sebuah mobil sebagai ribuan komponen elektronik, sistem mekanik dengan empat buah ban, jok, stir kemudi dan sebagainya.

Dengan Abstraction, suatu sistem yang kompleks dapat dipandang sebagai kumpulan subsistem-subsistem yang lebih sederhana, seperti halnya mobil merupakan suatu sistem yang terdiri atas berbagai subsistem, seperti subsistem kemudi, subsistem pengereman dan sebagainya.

Kapsulisasi

Encapsulation merupakan suatu mekanisme untuk menyembunyikan atau memproteksi suatu proses dari kemungkinan interferensi atau penyalahgunaan dari luar sistem dan sekaligus menyederhanakan penggunaan sistem tersebut.

  1. Istilah enkapsulasi sebenarnya adalah kombinasi data dan fungsionalitas dalam sebuah unit tunggal sebagai bentuk untuk menyembunyikan detail informasi.
  2. Proses enkapsulasi memudahkan kita untuk menggunakan sebuah objek dari suatu kelas karena kita tidak perlu mengetahui segala hal secara rinci.
  3. Enkapsulasi menekankan pada antarmuka suatu kelas, atau dengan kata lain bagaimana menggunakan objek kelas tertentu.
Contoh: kelas mobil menyediakan antarmuka fungsi untuk menjalankan mobil tersebut, tanpa kita perlu tahu komposisi bahan bakar, udara dan kalor yang diperlukan untuk proses tersebut.

Susunan

Pada bagian ini kita akan bahas konfigurasi berdasarkan Metode OOPs.


Prinsip yang disarankan Metode OOPs sesuai paradigma pemrograman adalah sbb:

  1. Perluas fungsionalitas kelas setiap kali Anda mendapatkan kesempatan untuk menyelesaikan analisis kompleks menggunakan pewarisan. Ubah mereka menjadi skrip yang dapat dieksekusi dan letakkan di dalam modul kecil.
  2. Bangun kebiasaan memodulasi pekerjaan Anda sehingga dapat dengan mudah digunakan kembali dan diperluas oleh siapa saja, di mana saja.

Modul

Sesuai dengan tujuan yang ingin dicapai maka cara identifikasi ini dapat Anda lakukan dengan berbagai macam pola dan style. Berikut ini cara identifikasi yang dilakukan dalam projek ini.



Pengertian dari modul:

  • standar atau satuan pengukur
  • unit kecil dari satu sistem yang dapat beroperasi sendiri
  • satuan bebas yang merupakan bagian dari struktur keseluruhan
  • satuan standar yang bersama-sama dengan yang lain digunakan secara bersama
  • komponen dari suatu sistem yang berdiri sendiri, tetapi menunjang program dari sistem itu
### module
const privateHello = 'hello' // <- module code (private)
export const publicHello = 'hello'; // <- module code (public)


### class
export class Classes { // <- module AND class code (public)
    private privateHello = 'hello'; // <- class code (private)
    public publicHello = 'hello'; // <- class code (public)
} // <- class code (public)
const anotherPrivateHello = 'hello'; // <- module code (private)
export const anotherPublicHello = 'hello'; // <- module code (public)


### prototype
export function Prototypes() { // <- module AND prototype code (public)
    const privateHello = 'hello'; // <- prototype code (private)
    this.publicHello = 'hello'; // <- prototype code (public)
} // <- prototype code (public)
const anotherPrivateHello = 'hello'; // <- module code (private)
export const anotherPublicHello = 'hello'; // <- module code (public)

Scope

Node.js adalah salah satu bahasa pemrograman yang memungkinkan pembuatan Web Server dan alat jaringan menggunakan JavaScript dan kumpulan "modul" yang menangani berbagai fungsi inti.

Modul disediakan untuk sistem file I/O, jaringan (DNS, HTTP, TCP, TLS/SSL, atau UDP), data biner (buffer), fungsi kriptografi, aliran data, dan fungsi inti lainnya yang semuanya dapat difungsikan via API. Selain Javascript, Modul Node.js juga support CoffeeScript, Dart, TypeScript, ClojureScript dll.

Node.js terutama digunakan untuk membangun program jaringan Web server seperti halnya PHP. Perbedaan paling signifikan antara Node.js dan PHP adalah bahwa sebagian besar fungsi dalam blok PHP hingga selesai (perintah hanya dijalankan setelah perintah sebelumnya selesai).

Dari sejumlah bahasa pemrograman yang tersedia, Node.js ini masih tergolong baru. Node.js lahir ketika penulisnya mengkritisi pengelolaan di banyak server dimana umum terjadi kode memblok keseluruhan proses dalam kasus koneksi simultan atau menyisakan banyak tumpukan eksekusi.

Fungsi Node.js adalah non-pemblokiran, perintah dijalankan secara bersamaan atau bahkan paralel dengan menggunakan panggilan balik (Callback) untuk menandakan penyelesaian atau kegagalan.

Instalasi node_modules dilakukan via package.json. Jika Anda temukan SyntaxError:'sourceType: module', salah satu solusinya gunakan setup Babel Loader untuk Webpack.

Extend

NPM adalah salah satu pengelola paket yang berbasis modul. Ini adalah manajer paket default untuk lingkungan runtime JavaScript Node.js.


Untuk step berikut npm mendukung properti "scripts" dari file package.json:

  • prepublish: Jalankan SEBELUM paket ini dikemas dan dipublikasikan, serta pada instalasi npm lokal tanpa argumen. (Lihat di bawah)
  • prepare: Jalankan keduanya SEBELUM paket dikemas dan dipublikasikan, pada npm lokal instal tanpa argumen apa pun, dan ketika menginstal dependensi git (Lihat di bawah). Ini dijalankan SETELAH pra-publikasi, tetapi SEBELUM pra-publikasi Hanya.
  • prepublishOnly: Jalankan SEBELUM paket disiapkan dan dikemas, HANYA pada npm publish. (Lihat di bawah.)
  • prepack: jalankan SEBELUM tarball dikemas (pada paket npm, npm publish, dan ketika menginstal dependensi git)
  • postpack: Jalankan SETELAH tarball telah dihasilkan dan dipindahkan ke tujuan akhirnya.
  • publish, postpublish: Jalankan SETELAH paket diterbitkan.
  • prepublishOnly: Jalankan SEBELUM paket diinstal
  • instal, postinstall: Jalankan SETELAH paket diinstal.
  • preuninstall, uninstall: Jalankan SEBELUM paket dihapus.
  • postuninstall: Jalankan SETELAH paket itu dihapus.
  • preversion: Jalankan SEBELUM menabrak versi paket.
  • version: Jalankan SETELAH membenturkan versi paket, tetapi SEBELUM komit.
  • postversion: Jalankan SETELAH menabrak versi paket, dan SETELAH komit.
  • pretest, test, posttest: Dijalankan oleh perintah tes npm.
  • prestop, stop, poststop: Dijalankan oleh perintah npm stop.
  • prestart, start, poststart: Dijalankan oleh perintah start npm.
  • prerestart, restart, postrestart: Dijalankan oleh perintah restart npm. Catatan: npm restart akan menjalankan skrip berhenti dan mulai jika tidak ada skrip restart yang disediakan.
  • preshrinkwrap, shrinkwrap, postshrinkwrap: Dijalankan oleh perintah npm shrinkwrap.

Proses

Situs GitHub memungkinkan Anda untuk mengatur proses penampilan konten html di internet dalam satu waktu yang bersamaan walaupun file² atau modul² yang Anda gunakan berada di banyak repository yang berlainan.

Hal ini tentu saja akan sangat membantu kita menampilkan halaman atau data yang dihasilkan oleh project yang berbeda namun dapat diintegrasikan sehingga dapat berkomunikasi satu sama lain.

Jadi dalam menentukan identifikasi yang penting adalah mengatur tata letak Hirarki nya saja.

Sebagai analogi, pikirkan boneka Rusia yang cocok satu sama lain. Setiap tata letak cocok dengan tata letak lain yang ditentukan.

Ketika tata letak menentukan tata letak lain, itu berarti konten tata letak pertama akan dimasukkan ke dalam tag {{content}} tata letak kedua.

Sinergi

├── index.html
├── js/
   ├── main.js
   ├── models/
   ├── views/
   ├── collections/
   ├── templates/
   └── libs/
       ├── backbone/
       ├── underscore/
       └── ...
├── css/
└── 

Diagram berikut menunjukkan cara kerja tata letak di Jekyll/Liquid via file Collections:

Dalam contoh ini didapatkan keteraturan tata letak seperti ini:

  1. Konten dari dokumen Markdown dokumen.md yang menentukan layout: docs didorong ke tag {{content}} file tata letak docs.html.
  2. Karena tata letak dokumen itu sendiri menentukan tata letak: halaman, konten dari docs.html didorong ke tag {{content}} di file tata letak page.html.
  3. Akhirnya karena tata letak halaman menentukan layout: default, konten dari page.html dimasukkan ke tag {{content}} file tata letak default.html.

Simetri

Dimungkinkan juga untuk menentukan identifikasi secara global menggunakan pola glob (berlaku terbatas pada pola yang mengandung *) saat mencocokkan default.

Sebagai contoh, dimungkinkan untuk mengatur tata letak khusus untuk setiap special-page.html dalam subfolder dari folder section bagian mana saja:

Dengan menerapkan Jekyll/Liquid pada project, maka Anda akan dapat setel semua pengaturan Korelasi secara global sesuai yang Anda inginkan di bagian default file _config.yml.

Anda pun dapat memilih untuk mengabaikan pengaturan dari pasangan lingkup / nilai lain dengan menentukan Korelasi yang lebih spesifik untuk lingkup tersebut.

Identifikasi ini perlu diatur sedemikian rupa sehingga terindikasi unik pada setiap jenjang penurunan sehingga memudahkan dalam konstruksi data yang dialirkan maupun rekonstruki pewarisan.

Matriks


Dimensi

Piramida

Berdasarkan Konsep di atas, Object akan dikembangkan sebagai pengejawantahan dari etimologi, sedangkan untuk terminologi maka kita akan terapkan metode Encapsulation sampai ke Inheritance dimana pada proses pembentukan Class akan ditelusuri akurasinya terhadap kaidah kognitif.

Pola penelusuran ini akan dilakukan berdasarkan piramida dari setiap pola dengan menggunakan jenis diagram yang dapat mendukung interaksi dalam proses pewarisan. Berikut ini tabulasi antara pola penelusuran dan jenis diagram yang digunakan.

No. Metode Penelusuran Implementasi Diagram
1. Object (parent) - Attribute (parent) Flowchart
2. Encapsulation Pola Artifacts Sequence
3. Abstraction Hirarki Method Grammar
4. Polymorphism Korelasi Model Channel
5. Inheritance Repository Track Route
6. Class Workflows Trace Tree
7. Object (child) Kaidah Kognitif Attribute (child) Flowchart

Catatan:

  1. Dalam project ini proses penelusuran akan disetel secara berulang dimana targetnya adalah produk turunan (child) dari object yang diuraikan pada Konsep Kerja.
  2. Diagram Sequence seperti terlihat di bawah ini disetel sebagai titik awal yang diasumsikan sebagai hasil proses penelusuran dari object sebelumnya (parent).
Hasil yang diharapkan akan berupa piramida data dengan formasi akurasi pewarisan yang memadai untuk diimplementasikan kedalam tujuan yang lebih spesifik.


Realisasi

Internal


Proporsi

Interface

Standard

Optimasi

Dengan memodelkan tipe dan struktur modul bahasa pemrograman ke model berbasis-kalkulus memungkinkan untuk mengeksplorasi tentang sifat-sifat abstrak object secara sederhana.

Secara matematis metode ini dapat berfungsi sebagai dasar desain dengan fasilitas yang lebih ekspresif dan tidak tergantung pada bahasa pemrograman dimana modul tersebut disematkan.

Pemodelan ini menjadi dasar untuk diterapkan secara monomorfik dimana selanjutnya mekanisme polimorfik seperti overloading, koersi, subtyping, dan parameterisasi dapat ditinjau.

Eksternal

Implementasi

Untuk project ini tujuan akhir dari penelusuran adalah menentukan metoda CI/CD yang paling efisien dalam melaksanakan Optimasi.

Referensi

Clone this wiki locally