Sabtu, 16 Mei 2020

NOTASI DESAIN


Notasi-notasi khusus digunakan terutama dalam rancangan arsitektural perangkat lunak dan rancangan terinci yang dapat mendeskripsikan tujuan suatu perangkat lunak, dikategorikan ke dalam notasi Structural Descriptions (Statis) dan Behavioral Descriptions (Dinamis)

Kriteria notasi desain : 
  • Automatic processing : memungkinkan desainer untuk memverifikasi kebenaran dan kualitas desain
  • Modularity : notasi mendukung pengembangan perangkat lunak modular
  • Structure enforcement : memberlakukan penggunaan konstruksi pemrograman terstruktur
  • Ease of editing : mudah untuk melakukan modifikasi desain
  • Data representation : kemampuan untuk menggambarkan data local dan global secara langsung
  • Maintainability : pemeliharaan konfigurasi
  • Logic verification : mampu melakukan verifikasi logika untuk meningkatkan kecukupan pengujian
  • Overall simplicity : mudah untuk dipelajari, digunakan dan penulisannya Machine readability : notasi dapat menjadi masukan secara langsung ke dalam pembangunan sistem
  • Easily converted to program source code : memudahkan dan mempercepat dalam pembuatan kode program

Structural Descriptions (Statis).
Notasi-notasi berikut ini, sebagian besar grafis, menjelaskan dan merepresentasikan aspek struktural dari rancangan perangkat lunak
  • Entity Relatinship Diagram (ERD) : digunakan untuk merepresentasikan model konseptuan dari data yang tersimpan dalam sistem informasi.

  •  Diagram Objek dan Class : Digunakan untuk merepresentasikan sekumpulan class (dan objek) dan hubungan timbal-balik diantaranya.

  • Architecture Description Languages (ADLs) : Tekstual, terkadang formal, bahasa yang digunakan untuk menjelaskan arsitektur perangkat lunak dalam hal komponen dan konektor
  • Diagram Komponen : digunakan untuk merepresentasikan sekumpulan komponen dari sebuah sistem yang cocok dan menyediakan realisasi sekumpulan interface dan hubungannya.

  • Class Responsibility Collaborate Cards (CRCs) : digunakan untuk menunjukkan nama komponen (class), tanggung jawabnya, nama komponen yang berkolaborasi.

  • Deployment Diagrams : digunakan untuk merepresentasikan sekumpulan nodes (fisik) dan hubungannya, dan demikian juga pada aspek fisik sistem. Berikut contoh Deployment diagram sistem galeri VCD.

  • Interface Description Languages (IDLs) : bahasa programming-like digunakan untuk mendefinisikan interface dari komponen perangkat lunak.
  • Diagram Struktur Jackson : digunakan untuk menjelaskan struktur data dalam hal urutan, pemilihan, dan iterasi.

  • Diagram Struktur : digunakan untuk menjelaskan struktur pemanggilan program. Dipakai dalam analisis sistem terstruktur/desain terstruktur.

Kelakuan Dinamis.
Notasi dan bahasa, beberapa grafis dan tekstual berikut ini digunakan untuk menjelaskan kelakuan dinamis dari perangkat lunak dan komponen
  • Sequence Diagrams : digunakan untuk menunjukkan interaksi diantara sekelompok objek, dengan penekanan pada urutan waktu pesan. Sequence diagram adalah tabel yang menunjukan objek pesan di sepanjang sumbu X, dan time ordering-nya (waktu pemesanan) di sepanjang sumbu Y

  • Activity Diagrams : digunakan untuk menunjukkan kendali aliran dari aktifitas yang satu ke aktifitas yang lain. Sebenarnya merupakan flowchart, yang menunjukan aliran kontrol activity ke activity yang lain.

  •  Pseudocode dan Program Design Languages (PDLs) : bahasa structured-programming-like digunakan untuk menjelaskan, secara umum pada tahap rancangan terinci, kelakuan prosedur atau metode.

  •  Flowcharts dan Structured Flowcharts : digunakan untuk merepresentasikan aliran kendali dan tindakan yang berhubungan yang akan dilakukan. Berikut contoh diagram flowchart menentukan bilangan ganjil dan genap.

  • Collaboration Diagrams : digunakan untuk menunjukkan interaksi yang timbul diantara kelompok objek, dimana penekanannya pada objek dan link-nya. Urutan peristiwa ditandai oleh angka-angka urutan pesan terlebih dahulu.

  • Data Flow Diagrams (DFDs) : digunakan untuk menunjukkan aliran data diantara sekumpulan proses

  • Bahasa spesifikasi formal : bahasa tekstual yang menggunakan notasi dasar dari matematik (contoh : logic, set, sequence) untuk mendefinisikan kelakuan dan interface komponen perangkat lunak secara abstrak dan teliti. Dirancang untuk menetapkan apa yang akan dihitung dan bukan bagaimana perhitungan harus terpenuhi.

  • Diagram dan tabel keputusan : digunakan untuk merepresentasikan kombinasi komplek dari kondisi dan tindakan

  • State Transition dan statechart diagram : digunakan untuk menunjukkan aliran kendali dari state ke state dalam sebuah state machine



Minggu, 19 April 2020

PERANCANGAN ARSITEKTUR


Perangkat lunak memiliki sistem-sistem besar dan diuraikan menjadi subsistem-subsistem untuk memberikan sekumpulan layanan yang berhubungan. Perancangan arsitektur adalah proses perancangan awal untuk mengidentifikasi subsistem tersebut dan menetapkan kerangka kerja untuk kontrol dan komunikasinya. Output proses perancangan ini disebut arsitektur perangkat lunak.

Perancangan arsitektur meliputi tahap penyusunan pemrograman dan perancangan. Penyusunan program adalah penyelusuran masalah (problem seeking), perancangan adalah pemecahan masalah (problem solving).

Proses perancangan meliputi dua tahap analisis dan sintesis. Penyusunan program adalah analisis, perancangan adalah sintesis.

Perancangan arsitektur adalah penggabungan berbagai unsur ruang untuk menampung suatu proses kegiatan sehingga menghasilkan suatu keseluruhan yang lebih kaya dan bermakna.

Proses perancangan arsitektur dimulai dari mengetahui jenis bangunan yang akan dirancang, pemakainya dan bagaimana keinginan pemakainya, kegiatannya, ruang-ruang yang dibutuhkan, bagaimana tapak dimana bangunan tersebut akan dibangun, bagaimana jenis konstruksi dan bahan yang akan digunakan, dilanjutkan dengan melakukan analisa mengenai sifat dan syarat setiap kebutuhan lalu dikelompokkan, dihubungkan, digabungan sehingga menghasilkan suatu rancangan arsitektur.

Proses perancangan arsitektur:
  • Penstrukturan Sistem yaitu saat sistem didekomposisi ke dalam beberapa sub-sistem dan komunikasi diantara subsistem yang harus dapat diidentifikasi.
  • Pemodelan Kontrol yaitu model umum hubungan kontrol antara bagian-bagian sistem yang ditetapkan. 
  • Dekomposisi Modular yaitu setiap sub-sistem yang teridentifikasi diuraikan menjadi modulmodul
Model arsitektur:
  • Model struktur statis menunjukkan subsistem-subsistem atau komponen-komponen yang akan dikembangkan sebagai unit-unit yang terpisah.
  • Model dinamis menunjukkan struktur proses dari sistem.
  • Model interface mendefinisikan layanan yang disediakan oleh setiap subsistem melalui interface umum perangkat tersebut.
  • Model hubungan menunjukkan hubungan seperti aliran data di antara subsistem-subsistem.
Keuntungan dari perancangan arsitektur:
  • Dapat digunakan sebagai fokus pembahasan oleh berbagai stakeholder.
  • Dapat menggabungkan kebutuhan fungsi dan non fungsi.
  • Mendukung pemakaian ulang berskala besar.

Perancangan arsitektur dapat didasarkan pada model atau gaya arsitektur tertentu. Pengetahuan akan gaya arsitektur ini akan menyederhanakan masalah-masalah yang berkaitan dengan pendefinisian arsitektur sistem tersebut. Oleh karena itu sistem yang besar dan heterogen tentu tidak dapat diselesaikan dengan gaya arsitektur tunggal.
Atribut arsitektur:
  • Kinerja

Arsitektur harus dirancang untuk melokalisasi operas-operasi kritis dalam sejumlah kecil subsistem dengan komunikasi sesedikit mungkin antara subsistem-subsistem.
  • Keamanan

Gunakan struktur berlapis untuk arsitekturnya, dengan aset yang paling penting terlindung pada bagian dalam.
  • Keselamatan

Operasi-operasi yang berhubungan dengan keselamatan sebaiknya berada dalam sejumlah kecil subsistem.
  • Ketersediaan

Sediakan komponen redundan dalam perancangan arsitektur.
  • Kemampuan Dipelihara

Arsitektur sistem harus dirancang dengan menggunakan komponen kecil dan berdiri sendiri, yang dapat diganti segera


Senin, 25 November 2019

KELEBIHAN DAN KELEMAHAN BAHASA PEMROGRAMAN




Bahasa C
Bahasa C merupakan perkembangan dari bahasa BCPL yang dikembangkan oleh Martin Richards pada tahun 1967. Selanjutnya bahasa ini memberikan ide kepada Ken Thompson yang kemudian mengembangkan bahasa yang disebut bahasa B pada tahun 1970. Perkembangan selanjutnya dari bahasa B adalah bahasa C yang diciptakan oleh Dennis Ricthie & W. Kerninghan tahun 1972 di Bell Telephone Laboratories Inc. (Sekarang adalah AT & T Bell Laboratories).
Bahasa C ini termasuk bahasa pemrograman tertua yang pernah ada. Bahasa C menjadi bahasa pemrograman yang populer di Indonesia karena hampir sebagian besar perguruan tinggi jurusan IT ataupun lembaga kursus pemrograman menggunakan bahasa ini untuk dipelajari pertama kali sebelum mempelajari bahasa pemrograman yang lain. Bukan tanpa sebab bahasa C ini menjadi dasar untuk mempelajari bahasa pemrograman yang lain, karena memang bahasa C ini merupakan "bapak" dari bahasa pemrograman lain seperi C#, Java, C++, dan lain sebagainya.
Fitur-fitur Bahasa Pemrograman C
  • Bahasa C pertama kali digunakan di Computer Digital Equipment Corporation PDP-11 yang menggunakan system operasi UNIX.
  • Bahasa C juga digunakan untuk menyusun operasi Linux.
  • Banyak bahasa pemrogaman popular seperti PHP dan Java menggunakan sintaks dasar mirip bahasa C.
Kelebihan dan Kekurangan Bahasa C
Kelebihan Bahasa C :
  • Bahasa C terdapat hampir di semua jenis komputer.
  • Bahasa C memiliki kemungkinan untuk memanipulasi data.
  • Bahasa C memiliki sifat portable dan fleksible untuk semua jenis computer.
  • Bahasa C hanya menyediakan sedikit kata-kata kunci, hanya terdapat 32 kata kunci.
  • Proses executable program bahasa C lebih cepat.
  • Bahasa C memiliki dukungan pustaka yang banyak.
  • Bahasa C dilengkapi dengan banyak sekali struktur data dan pengendalian proses.
  • Bahasa C termasuk bahasa tingkat menengah.
Kekurangan Bahasa C :
  • Banyaknya operator serta fleksibilitas penulisan program kadang-kadang membingungkan pemakai.
  • Bagi pemula pada umumnya akan kesulitan menggunakan pointer.

Bahasa C++
Bahasa C++ diciptakan oleh Bjarne Stroustrup tahun 1983 di Lab Bell. C++ merupakan bahasa pemrograman pengembangan dari bahasa C. C++ dan C memiliki sintaks penulisan yang hampir sama, Namun C++ lebih simple dari bahasa pemrograman C.
C++ ini menjadi bahasa pemrograman yang populer karena banyak juga perusahaan-perusahaan software besar yang menggunakan bahasa ini untuk membangun software nya seperti Adobe, Firefox, ataupun Winamp yang sekarang pengembanganya di hentikan.
Fitur-fitur Bahasa Pemrograman C++
  • Sebagai bahasa pemrograman di Windows, UNIX, Linux.
  • Visual C++ dapat dibuat aplikasi apa saja seperti database.
  • Bahasa untuk pembuatan system operasi, game, system kendali,pembuatan aplikasi.
  • Untuk membuat bahasa baru atau membuat compiler bahasa baru.
  • Untuk menulis komponen dan file-file pustaka bahasa lain.
Kelebihan dan Kekurangan
Kelebihan :
  • Merupakan induk dari bahasa pemrograman Perl, PHP, Phyton, Visual Basic, Gambas, Java, C#.
·         Dukungan library yang lengkap.
  • Compiler bahasa C++ terdapat di semua platform.
  • Lebih simple dari generasi sebelumnya atau bahasa pemrograman C.
  • Jenis bahasa pemrograman ini berorientasi pada objek.
Kekurangan :
  • Bahasa ini cukup sulit untuk dipelajari dan dipahami.
  • Bagi pemula pada umumnya akan kesulitan menggunakan pointer.
  • Terdapatnya banyak operator serta fleksibilitas sehingga dalam penulisan program dapat membingungkan pemakai.

Bahasa Phyton
Bahasa pemrograman ini dibuat oleh Guido van Rossum dari Amsterdam, Belanda. Pada awalnya, motivasi pembuatan bahasa pemrograman ini adalah untuk bahasa skrip tingkat tinggi pada sistem operasi terdistribusi Amoeba. Bahasa pemrograman ini menjadi umum digunakan untuk kalangan engineer seluruh dunia dalam pembuatan perangkat lunaknya, bahkan beberapa perusahaan menggunakan python sebagai pembuat perangkat lunak komersial.
Python banyak digunakan untuk membuat berbagai macam program, seperti: program CLI, Program GUI (desktop), Aplikasi Mobile, Web, IoT, Game, Program untuk Hacking, dan sebagainya.
Fitur-fitur Bahasa Pemrograman Phyton
  • Perangkat bantu shell. Tugas-tugas sistem administrator, program baris perintah.
  • Kerja bahasa ekstensi. Antarmuka untuk pustaka C/C++, kustomisasi.
  • Pembuatan prototipe secara cepat/pembuatan sistem aplikasi. Prototipe yang dapat dibuang atau sesuai dengan permintaan.
  • Modul berdasarkan bahasa pemrograman. Pengganti dari penulisan parser khusus.
  • Antarmuka pengguna grafis. Penggunaan GUI API sederhana dan canggih.
  • Pengaksesan basisdata. Penyimpanan objek tetap, antarmuka sistem SQL.
  • Pemrograman terdistribusi. Penggunaan API mekanisme client/server terintegrasi.
  • Skrip internet. Skrip CGI, antarmuka HTTP, Aplet WWW, dan lainnya.
Kelebihan dan Kekurangan
Kelebihan :
  • Python memiliki library luas dengan beragam modul.
  • Bahasa yang sederhana serta library yang luas dapat membuat developer menjadi lebih produktif.
  • Tipe data dan operasi tingkat tinggi yaitu kecepatan pembuatan system aplikasi menggunakan tipe objek yang telah ada.
  • Sejumlah besar library atau pustaka tersedia untuk Python.
  • Manajemen memori otomatis yaitu kumpulan sampah memori sehingga dapat menghindari pencatatan kode.
  • Python mendukung Internet of Things (IoT) dengan sangat baik.
  • Konstruksi pada saat aplikasi berjalan.
  • Pyhton dapat ditanam atau disematkan.
  • Interaktif, dinamis, dan alamiah.
  • Model objek universal kelas Satu.
Kekurangan :
  • Eksekusi yang lambat tergantung dari besar atau kecilnya program yang akan dibuat.
  • Terlalu Lambat
  • Python terbilang buruk dalam pengembangan platform mobile (Android/IOS)
  • Python bukanlah menjadi pilihan yang baik untuk tugas-tugas intensif memori.
  • Hampir mustahil untuk membuat game 3 dimensi grafis tinggi menggunakan Python.
  • Mempunyai keterbatasan dengan akses basis data.
  • Python tidak baik jika diperuntukan dalam pekerjaan multi-prosesor / multi-core.

Bahasa Java
Java merupakan bahasa pemrograman yang dapat dijalankan di berbagai platform, dari mulai PC sampai perangkat mobile. Bahasa pemrograman ini awalnya dikembangkan pada The Green Project pada tahun 1991 oleh Sun Microsystem yang kemudian dilepas pada Oracle. Nama Java sendiri dipilih karena salah seorang pendiri Java, James Gosling, sangat menyukai kopi murni yang langsung digiling dari mesin giling (kopi tubruk) dimana kopi jenis ini berasal dari pulau Jawa di Indonesia.
Java adalah bahasa pemrograman untuk berbagai tujuan (general purpose), bahasa pemrogramn yang concurrent, berbasis kelas, dan berorientasi objek, yang dirancang secara khusus untuk memiliki sesedikit mungkin ketergantungan dalam penerapannya. Hal ini dimaksudkan untuk memungkinkan pengembang aplikasi “write once, run anywhere” (WORA), yang berarti bahwa kode yang dijalankan pada satu platform tidak perlu dikompilasi ulang untuk di tempat lain. Java saat ini menjadi salah satu bahasa pemrograman yang paling populer digunakan, terutama untuk aplikasi web client-server, dengan 10 juta pengguna.
Fitur-fitur Bahasa Pemrograman Java
  • Pemrograman jaringan
  • Pembuatan aplikasi berbasis windows
  • Program untuk membuat web
Kelebihan dan Kekurangan
Kelebihan Bahasa Java :
  • Sederhana dan ampuh, java menyediakan sarana untuk membuat program (applet) yang berjalan pada web browser. Programmer dapat menggunakan applet kecil yang aman, dinamik, lintas platform, aktif dan siap dijalankan di jaringan.
  • Aman, java dirancang dengan konsep keamanan internet.
  • Bahasa pemrograman yang berorientasi terhadap objek.
  • Kokoh, java membatasi programmer dengan memberi kunci supaya progamer dapat menemukan kesalahan lebih cepat saat mengembangkan program.
  • Interaktif, java dirancang untuk menciptakan program jaringan yang interaktif.
  • Memiliki kemudahan dalam menyusun suatu script.
  • Netral terhadap berbagai arsitektur, java mampu berjalan dalam platform apapun seperti PC, UNIX, Macintosh, dll.
  • Terinterpretasi dan berkinerja tinggi, java melengkapi keajaiban lintas platform yang luar biasa dengan kompilasi ke dalam representasi langsung yang disebut java code byte yang dapat diterjemahkan oleh system apapun yang memiliki java interpreter dan java virtual machine.
  • Memiliki fasilitas pengaturan penggunaan memori sehingga programmer tidak perlu melakukan pengaturan memori secara langsung
  • Struktur kodenya bisa dengan mudah dimodifikasi dan dikembangkan sesuai dengan kebutuhan dari user.
  • Mendukung koneksi ke database.
Kekurangan bahasa Java :
  • Java memiliki kecepatan yang kurang dari bahasa C ++.
  • Penggunaan memori yang cukup tinggi.
  • Souce code dan juga script yang dibuat dengan bahasa pemrograman Java dapat dengan mudah diambil dan juga dibajak oleh orang lain
  • Program yang dibuat oleh bahasa ini lebih lambat disbanding program yang dibuat dengan bahasa lain seperti C atau C++.
  • Java adalah bahasa pemrograman yang kompleks.


REFRENSI
https://dosenit.com/kuliah-it/pemrograman/kelebihan-dan-kekurangan-java

Senin, 07 Oktober 2019

ANALISIS PROSEDUR MANUAL

Prosedur Manual

          Prosedur Manual adalah urutan langkah-langkah yang menjelaskan secara rinci mengenai prosedur yang belum terkomputerisasi. Berikut ini merupakan salah satu kasus prosedur pembayaran di Rumah Makan :
     1)    Pembeli memberikan data pesanan ke bagian kasir.
     2)    Petugas kasir menginputkan pesanan.
     3)    Petugas kasir menghitung total pembayaran pesanan.
     4)    Petugas kasir memberikan rincian total pembayaran dari pemesanan kepada pembeli.  
     5)    Pembeli melakukan pembayaran barang kepada kasir.
     6)    Petugas kasir menginputkan data pembayaran.  
     7)    Petugas kasir melakukan pencetakan bon. 
     8)    Pembeli menerima bon pemesanan dari petugas kasir. 

Flowmap







Senin, 23 September 2019

ANALISIS REKAYASA KEBUTUHAN

1.   Instagram



Instagram adalah sebuah aplikasi berbagi foto dan video yang memungkinkan pengguna mengambil foto, mengambil video, menerapkan filter digital, dan membagikannya ke berbagai layanan jejaring sosial, termasuk milik Instagram sendiri.

A.    Kebutuhan Fungsional
1)       Adanya fitur pembuatan story atau cerita Instagram.
2)       Dapat mengirim foto dan video ke akun lain.
3)       Adanya fitur mengirim pesan kepada sesama pemilik akun instagram.
4)       Adanya fitur siaran langsung.
5)       User dapat mengunggah status dengan foto.
6)       Menyediakan pencarian untuk menemukan akun orang lain.

              B.   Kebutuhan Non-Fungsional :
1)       Memiliki sistem keamanan yang tidak dapat diakses oleh orang lain.
2)       Memiliki tampilan sistem yang mudah untuk dipahami user.
3)       Pengguna dapat menambah dan juga membuat akun baru.
4)       Instagram dapat diakses melalui web browser.
5)       Sudah tersedia di IOS Apple dan juga OS Android.
6)       Dapat tersambung dengan akun facebook.


2.   Youtube



YouTube adalah sebuah situs web berbagi video. Situs web ini memungkinkan pengguna mengunggah, menonton, dan berbagi video.
A.   Kebutuhan Fungsional :
1)       Adanya fitur mengunggah video.
2)       Adanya fitur untuk mengunduh.
3)       Adanya fitur menonton video.
4)       Adanya fitur subscribe (berlangganan), like (suka) dan komentar kepada sebuah video.

             B.   Kebutuhan Non-Fungsional :
1)       Adanya batasan durasi untuk mengunggah video yaitu berdurasi 15 menit.
2)       Adanya batasan waktu untuk unduhan video yang dapat diperpanjang dengan update.
3)       Batasan ukuran berkas videonya yaitu 2 GB sampai 20 GB.


3.   Tokopedia




Tokopedia merupakan perusahaan teknologi Indonesia dengan misi mencapai pemerataan ekonomi secara digital dan berbasis online. Tokopedia merupakan pasar online dimana penjual menjual barang-barang secara online dalam aplikasi.

A.   Kebutuhan Fungsional :
1)       Memiliki banyak fitur pembayaran.
2)       Adanya fitur pencarian barang untuk mencari barang yang dicari.
3)       Pengguna dapat memesan dan membeli barang yang dipilih dan memilih fitur pembayarannya.
4)       Adanya fitur chat dengan penjual.
5)       Adanya fitur keranjang untuk daftar barang yang akan dibeli.
6)       Pengguna dapat membeli pulsa.
.
B.   Kebutuhan Non-Fungsional :
1)       Pengguna dapat membuat akun Tokopedia.
2)       Pembeli harus mengisi alamatnya, jika membeli sesuatu barang.
3)       Tampilan yang mudah dipahami dan sederhana.


4.   SIAK UPI


Portal SIAKKu merupakan satu-satunya layanan akademik untuk mahasiswa UPI yang terdiri dari seluruh kegiatan utama mahasiswa dan administrasi akademik.

A.   Kebutuhan Fungsional :
1)       Layanan perwalian online, berisi perubahan rencana studi, kontrak mata kuliah online, dan mengatur jadwal mata kuliah.
2)       Memiliki layanan pemberitahuan mengenai Uang Kuliah Tunggal (UKT).
3)       Layanan pemberitahuan tentang berita akademik UPI.
4)       Memiliki layanan berisi jadwal-jadwal penting seputar perkuliahan di UPI.
5)       Layanan menampilkan progress mahasiswa selama perkuliahan, berisi nilai IP dan IPK dan juga jumlah absen selama perkuliahan.
6)       Berisi Data Induk Mahasiswa UPI.
7)       Terdapat layanan pengiriman pesan ke Dosen Wali.

B.   Kebutuhan Non-Fungsional :
1)       Layanan hanya untuk mahasiswa UPI yang terdaftar.
2)       Memiliki batasan waktu yang telah ditentukan dalam pengontrakan mata kuliah.
3)       Jika ingin mengubah data diri, harus menginformasikan langsung ke akademik kampus


Referensi :

UPI, Direktorat TIK. 2019. SIAKKu, Portal SIAK Mahasiswa UPI Terintegrasi [Online]. Tersedia di https://student.upi.edu/ (2019)
https://id.wikipedia.org/wiki/YouTube
https://www.tokopedia.com/about/
https://plus.kapanlagi.com/ramai-dibicarakan-apa-sih-instagram-stories-itu-557c97.html