Social Items

SPACE IKLAN ( ADS ) CLICK HERE

Koleksi Error Android Studio [SOLVED] - Collection of Android Studio Error Problem Solving


kapt error, usually ( biasanya ) pengguna OS Linux


## terminal
sudo mount -o remount, exec /tmp
sudo mount -o remount, noexec /tmp

Artikel ini akan selalu saya update , selama saya mendapatkan error atau bug, akan saya tulis di sini.

Koleksi Error Android Studio [SOLVED]

Material Design Google, Icon yang mempermudah Front End Developer dalam mengembangkan tampilan lebih User Interface  dan Lebih User Friendly. Icons Free ( Gratis ) alias Open Source.
Untuk Adobe XD, Sketch, After Effect, Photoshop dan Illustration
Buka site material.io → Klik icon hamburger → Pilih Resource → Pilih Sticker Sheet & Icons atau langsung ke situs nya , berikut :

Latest Update

https://material.io/archive/guidelines/resources/sticker-sheets-icons.html

Github

https://github.com/google/material-design-icons
Ikon sistem desain bahan digunakan di berbagai aplikasi, seperti ikon yang digunakan untuk pemutaran media, komunikasi, pengeditan konten, dan konektivitas.

Google Assets Icon 1000+++
Adobe XD,Already Tested By Me Banyak Sekali pokoknya : Simbol, Font, dll


Online Web Icons

https://www.google.com/design/icons/
Ikon Web Fonts

Pilih warna dan Opacity yang sesuai

https://material.io/tools/color/#!/?view.left=0&view.right=0


thansk for https://material.io

Google Assets Icon 1000+++

Begini Cara Membuat Aplikasi Android Mudah

Apakah anda seorang developer expert atau sedang belajar membuat aplikasi android ? tentu banyak cara-cara yang di kembangkan dari developer. Saya lebih prefer ke Android Studio ( Ini aplikasi membuat aplikasi android di laptop atau komputer ), oh iya kalau cara lain setahu saya , bisa membuat aplikasi android lewat hp ( handphone ), Bahkan ada yang membuat aplikasi android tanpa ngoding ( tools ini namanya appsgeyser )

Pada Android Studio 3.0 ( saya menggunakan 3.3.2 ) sudah sangat powerfull , lebih mudah dalam mengatasi ( handling anError ) oleh petunjuk atau hint , jadi hanya perlu mengikuti petunjuk.
Begini Cara Membuat Aplikasi Android Mudah
Hint atau Petunjuk

Dari berbagai Literatur yang pernah saya pelajari , Berikut merupakan cara yang mudah untuk langkah awal  , Tentu anda tidak menginginkan sebuah bug sehingga diperlukan meminimalisirannya, Jadi sebelum proses membuat aplikasi berdasarkan konsep ERD ( entity relationship diagram) dan Lifecycle android sendiri, Perlu menjalankan script dari New Project awal dan melakukan matching / checking terhadap file gradle android , plugin yang diperlukan dan component pendukung lainya. Ini hanyalah basic yang perlu dan ini bagaikan sebuah kerangka atau konstruksinya.

Begini Cara Membuat Aplikasi Android Mudah
Bingung Gradle Build Android ?


Gradle sangatlah penting , jika salah setting ( program atau aplikasi tidak dapat di build atau gradle atau compile oleh android studio ) biasanya android studio memberikan petunjuk yang benar-benar properly dan pop up petunjuk yang mudah di pahami, tetapi bagaimana dengan developer yang yantama kali menggunakan android studio ? baiklah saya akan tunjukan maksudnya mendeskripsikan beberapa petunjuk UX nya ( user interface nya ).

Kamu lebih tertarik tutorial versi teks atau versi video ? ( sebelumnya saya akan coba dengan teks yang kemudian dengan versi video ( praktek langsung ).

Saya akan mencoba menggunakan bahasa awam yang mudah di pahami semua kalangan , tetapi teks di atas mungkin masih ada yang asing mendengarkanya , ok kalau itu saya anggap kalian bisa browsing untuk reference tersebut . untuk detail nya kedepanya teks asing tersebut akan saya bahas di postingan selanjutnya.

Sebelum lanjut , dan ingin melihat apakah anda tertarik dengan artikel ini, silahkan berikan komentar atau upvote . maka saya akan sesegera menyelesaikan tutorial ini . karena saya ingin melihat ketertarikan dari anda terlebih dahulu.

Cara membuat aplikasi ini android ini sederhana dan Gratis . karena kali ini hanya akan membahas yang sedikit atau pembukaan terutama tentang build gradle yang di targetkan selesai kurung waktu hanya dalam 5 menit membuatnya.

Create New Project

1. Open android studio → Click + Start a new Android Studio project
2. Choose your project → Pilih tab Phone and Tablet → Pilih Empty Activity next
3. Configure your project
     → Name = My Application
     → Package Name = com.scodeid.myapplication
     → Save location = /root/AndroidStudioProjects/MyApplication2  ( lokasi project anda )
     → Language = Kotlin ( saya menggunakan kotlin, tetapi akan saya bahas keduanya java + kotlin)
     → Minimum API level = API 15: Android 4.0.3 ( IceCreamSandwich )
4. Click Finish
Untuk Pertama Kali New Project, usahakan laptop anda terkoneksi dengan jaringan internet karena akan mendownload gradle default yang diperlukan untuk mengkompilasi ( compile ) project anda. Jika tidak maka akan Error pada gradle .

Check SDK Manager

1. Click file → Setting →Search 'SDK' tanpa tanda petik ,
2. SDK Platforms ( saya menggunakan API Level 28 ) atau Android 9.0 ( Pie )
3. SDK Tools
       → Install Android SDK Build-Tools 29-rc3
       → Install Android SDK Platform-Tools
       → Install Android SDK Tools
       → Install Support Repository
4. Click ok jika sudah terinstall 
Di atas adalah SDK default yang diperlukan , kalian bisa install plugin WIFI ADB untuk compile lewat device handphone android kalian , atau menggunakan Android Emulator 
SDK Tools
       → Install Android Emulator

Check Gradle

Begini Cara Membuat Aplikasi Android Mudah

1. Click Project → Click Drop Down pada Android dan Pilih Android.
2. Buka Gradle Script
                               ↪ build.gradle ( Project:MyApplication)
                               ↪ build.gradle ( Project:app)

    /**
     * build.gradle (Module:app)
     */
apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "id.scode.myapplication"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    /**
     * D E F A U L T ----- D E P E N D E N C I E S ----- I NEED
     */
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:design:28.0.0'
    implementation 'com.android.support:support-v4:28.0.0'

    /**
     * __________________________________
     */
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation('com.android.support.test.espresso:espresso-core:3.0.2', {
        exclude group: 'com.android.support:27.1.1', module: 'support-annotations'
    })
}

repositories {
    mavenCentral()
}
Yang perlu anda check adalah versi dependencies haruslah sama antar dependecies, kenapa ? Jika anda tidak secara eksplisit menggunakan satu atau lebih library yang dipilih itu memberi anda kesalahan atau error compile, berarti library sedang dipakai oleh internal library lain, jadi compile harus secara eksplisit . Kok bisa ? beberapa antar library ada kombinasi jadi versi yang berbeda akan bermasalah atau crashes.

    /**
     * build.gradle (Project:myapplication)
     */
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlin_version = '1.3.21'
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://jitpack.io' }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Run App

1. ( Shift + F10 )
Begini Cara Membuat Aplikasi Android Mudah

Di atas ada saya singgung mengenai Lifecycle , bisa kalian lihat di sini

Begini Cara Membuat Aplikasi Android Mudah

Configure-IP-ACLs-to-Mitigate-Attacks-Packet-Tracer.JPG

Configure IP ACLs to Mitigate Attacks Packet Tracer - scodeid.
Addressing Table - Tabel Pengalamatan

Konfigurasi-IP-ACLs-Untuk-Mitigate-Attacks-Packet-Tracer

Objectives


  • Verify connectivity among devices before firewall configuration.
  • Use ACLs to ensure remote access to the routers is available only from management station PC-C.
  • Configure ACLs on R1 and R3 to mitigate attacks.
  • Verify ACL functionality.

Tujuan


  • Verifikasi konektivitas antar perangkat sebelum konfigurasi firewall.
  • Gunakan ACL untuk memastikan akses jarak jauh ke router hanya tersedia dari stasiun manajemen PC-C.
  • Konfigurasikan ACL pada R1 dan R3 untuk mengurangi serangan.
  • Verifikasi fungsionalitas ACL.

Background / Scenario

Access to routers R1, R2, and R3 should only be permitted from PC-C, the management station. PC-C is also used for connectivity testing to PC-A, a server providing DNS, SMTP, FTP, and HTTPS services.

Standard operating procedure is to apply ACLs on edge routers to mitigate common threats based on source and/or destination IP address. In this activity, you create ACLs on edge routers R1 and R3 to achieve this goal. You then verify ACL functionality from internal and external hosts.

The routers have been pre-configured with the following:

o    Enable password: ciscoenpa55
o    Password for console: ciscoconpa55
o    Username for VTY lines: SSHadmin
o    Password for VTY lines: ciscosshpa55
o    IP addressing
o    Static routing

Latar Belakang / Skenario

Akses ke router R1, R2, dan R3 hanya diizinkan dari PC-C, stasiun manajemen. PC-C juga digunakan untuk pengujian konektivitas ke PC-A, server yang menyediakan layanan DNS, SMTP, FTP, dan HTTPS.

Prosedur operasi standar adalah untuk menerapkan ACL pada router tepi untuk mengurangi ancaman umum berdasarkan pada sumber dan / atau alamat IP tujuan. Dalam aktivitas ini, Anda membuat ACL pada router tepi R1 dan R3 untuk mencapai tujuan ini. Anda kemudian memverifikasi fungsionalitas ACL dari host internal dan eksternal.

Router telah dipra-konfigurasi dengan yang berikut:

o Aktifkan kata sandi: ciscoenpa55
o Kata sandi untuk konsol: ciscoconpa55
o Nama pengguna untuk jalur VTY: SSHadmin
o Kata sandi untuk saluran VTY: ciscosshpa55
o Pengalamatan IP
o Routing statis


Part 1: Verify Basic Network Connectivity

Verify network connectivity prior to configuring the IP ACLs.

Step 1: From PC-A, verify connectivity to PC-C and R2.


a.From the command prompt, ping PC-C (192.168.3.3).

b.From the command prompt, establish a SSH session to R2 Lo0 interface (192.168.2.1) using username SSHadmin and password ciscosshpa55. When finished, exit the SSH session.

PC > ssh -l SSHadmin 192.168.2.1

Step 2:  From PC-C, verify connectivity to PC-A and R2.


a.From the command prompt, ping PC-A (192.168.1.3).

b.From the command prompt, establish a SSH session to R2 Lo0 interface (192.168.2.1) using username SSHadmin and password ciscosshpa55. Close the SSH session when finished.

c.Open a web browser to the PC-A server (192.168.1.3) to display the web page. Close the browser when done.

Bagian 1: Verifikasi Konektivitas Jaringan Dasar

Verifikasi konektivitas jaringan sebelum mengonfigurasi IP ACL.

Langkah 1: Dari PC-A, verifikasi konektivitas ke PC-C dan R2.


Sebuah. Dari command prompt, ping PC-C (192.168.3.3).

b. Dari prompt perintah, buat sesi SSH ke antarmuka R2 Lo0 (192.168.2.1) menggunakan nama pengguna SSHadmin dan kata sandi ciscosshpa55. Setelah selesai, keluar dari sesi SSH.

PC > ssh -l SSHadmin 192.168.2.1

Langkah 2: Dari PC-C, verifikasi konektivitas ke PC-A dan R2.


Sebuah. Dari command prompt, ping PC-A (192.168.1.3).

b. Dari prompt perintah, buat sesi SSH ke antarmuka R2 Lo0 (192.168.2.1) menggunakan nama pengguna SSHadmin dan kata sandi ciscosshpa55. Tutup sesi SSH saat selesai.

c. Buka browser web ke server PC-A (192.168.1.3) untuk menampilkan halaman web. Tutup browser setelah selesai.

Part 2: Secure Access to Routers


Step 1:Configure ACL 10 to block all remote access to the routers except from PC-C.


Use the access-list command to create a numbered IP ACL on R1, R2, and R3.

R1(config)#access-list 10 permit 192.168.3.3
R2(config)#access-list 10 permit 192.168.3.3
R3(config)#access-list 10 permit 192.168.3.3

Step 2: Apply ACL 10 to ingress traffic on the VTY lines.


Use the access-class command to apply the access list to incoming traffic on the VTY lines.


R1(config)#line vty 0 4
R1(config-line)#access-class 10 in
R1(config-line)#exit


R2(config)#line vty 0 4
R2(config-line)#access-class 10 in


R3(config)#line vty 0 4
R3(config-line)#access-class 10 in

Step 3: Verify exclusive access from management station PC-C.


a.     Establish a SSH session to 192.168.2.1 from PC-C (should be successful).

b.    Establish a SSH session to 192.168.2.1 from PC-A (should fail).


Bagian 2: Mengamankan Akses ke Router


Langkah 1: Konfigurasikan ACL 10 untuk memblokir semua akses jarak jauh ke router kecuali dari PC-C.


Gunakan perintah akses-daftar untuk membuat IP ACL bernomor pada R1, R2, dan R3.

R1(config)#access-list 10 permit 192.168.3.3
R2(config)#access-list 10 permit 192.168.3.3
R3(config)#access-list 10 permit 192.168.3.3

Langkah 2: Terapkan ACL 10 ke masuknya lalu lintas di jalur VTY.


Gunakan perintah kelas akses untuk menerapkan daftar akses ke lalu lintas masuk pada jalur VTY.


R1(config)#line vty 0 4
R1(config-line)#access-class 10 in
R1(config-line)#exit


R2(config)#line vty 0 4
R2(config-line)#access-class 10 in


R3(config)#line vty 0 4
R3(config-line)#access-class 10 in
69% Completed

Langkah 3: Verifikasi akses eksklusif dari stasiun manajemen PC-C.


Sebuah. Buat sesi SSH ke 192.168.2.1 dari PC-C (harus berhasil).

b. Buat sesi SSH ke 192.168.2.1 dari PC-A (harus gagal).

Part 3: Create a Numbered IP ACL 120 on R1

Permit any outside host to access DNS, SMTP, and FTP services on server PC-A, deny any outside host access to HTTPS services on PC-A, and permit PC-C to access R1 via SSH.

Step 1:Verify that PC-C can access the PC-A via HTTPS using the web browser.


Be sure to disable HTTP and enable HTTPS on server PC-A.

Step 2: Configure ACL 120 to specifically permit and deny the specified traffic.


Use the access-list command to create a numbered IP ACL.

R1(config)#access-list 120 permit udp any host 192.168.1.3 eq domain
R1(config)#access-list 120 permit tcp any host 192.168.1.3 eq smtp
R1(config)#access-list 120 permit tcp any host 192.168.1.3 eq ftp
R1(config)#access-list 120 deny tcp any host 192.168.1.3 eq 443
R1(config)#access-list 120 permit tcp host 192.168.3.3 host 10.1.1.1 eq 22

Step 3:Apply the ACL to interface S0/0/0.


Use the ip access-group command to apply the access list to incoming traffic on interface S0/0/0.

R1(config)#interface s0/0/0
R1(config-if)#ip access-group 120 in
R1(config-if)#exit

Step 4:Verify that PC-C cannot access PC-A via HTTPS using the web browser.


Bagian 3: Buat IP ACL 120 Bernomor pada R1

Mengizinkan semua host luar untuk mengakses layanan DNS, SMTP, dan FTP pada server PC-A, menolak akses host luar apa pun ke layanan HTTPS pada PC-A, dan mengizinkan PC-C untuk mengakses R1 melalui SSH.

Langkah 1: Pastikan PC-C dapat mengakses PC-A melalui HTTPS menggunakan browser web.


Pastikan untuk menonaktifkan HTTP dan mengaktifkan HTTPS di server PC-A.

Langkah 2: Konfigurasikan ACL 120 untuk secara khusus mengizinkan dan menolak lalu lintas yang ditentukan.


Gunakan perintah daftar akses untuk membuat ACL IP bernomor.

R1(config)#access-list 120 permit udp any host 192.168.1.3 eq domain
R1(config)#access-list 120 permit tcp any host 192.168.1.3 eq smtp
R1(config)#access-list 120 permit tcp any host 192.168.1.3 eq ftp
R1(config)#access-list 120 deny tcp any host 192.168.1.3 eq 443
R1(config)#access-list 120 permit tcp host 192.168.3.3 host 10.1.1.1 eq 22

Langkah 3: Terapkan ACL ke antarmuka S0 / 0/0.


Gunakan perintah ip access-group untuk menerapkan daftar akses ke lalu lintas masuk pada antarmuka S0 / 0/0.

R1(config)#interface s0/0/0
R1(config-if)#ip access-group 120 in
R1(config-if)#exit

Langkah 4: Pastikan PC-C tidak dapat mengakses PC-A melalui HTTPS menggunakan browser web.

Part 4: Modify An Existing ACL on R1

Permit ICMP echo replies and destination unreachable messages from the outside network (relative to R1); deny all other incoming ICMP packets.

Step 1:Verify that PC-A cannot successfully ping the loopback interface on R2.


Step 2: Make any necessary changes to ACL 120 to permit and deny the specified traffic.


Use the access-list command to create a numbered IP ACL.

R1(config)#access-list 120 permit icmp any any echo-reply
R1(config)#access-list 120 permit icmp any any unreachable
R1(config)#access-list 120 deny icmp any any
R1(config)#access-list 120 permit ip any any

Step 3:Verify that PC-A can successfully ping the loopback interface on R2.


Bagian 4: Memodifikasi ACL yang Ada pada R1

Izinkan balasan gema ICMP dan pesan tujuan yang tak terjangkau dari jaringan luar (relatif terhadap R1); menolak semua paket ICMP masuk lainnya.

Langkah 1: Verifikasi bahwa PC-A tidak dapat berhasil melakukan ping antarmuka loopback pada R2.


Langkah 2: Buat perubahan yang diperlukan untuk ACL 120 untuk mengizinkan dan menolak lalu lintas yang ditentukan.


Gunakan perintah daftar akses untuk membuat ACL IP bernomor.

R1(config)#access-list 120 permit icmp any any echo-reply
R1(config)#access-list 120 permit icmp any any unreachable
R1(config)#access-list 120 deny icmp any any
R1(config)#access-list 120 permit ip any any

Langkah 3: Pastikan PC-A berhasil ping antarmuka loopback pada R2.

Part 5: Create a Numbered IP ACL 110 on R3

Deny all outbound packets with source address outside the range of internal IP addresses on R3.

Step 1:Configure ACL 110 to permit only traffic from the inside network.


Use the access-list command to create a numbered IP ACL.

R3(config)#access-list 110 permit ip 192.168.3.0 0.0.0.255 any

Step 2:Apply the ACL to interface F0/1.


Use the ip access-group command to apply the access list to incoming traffic on interface F0/1.

R3(config)#interface fa0/1
R3(config-if)#ip access-group 110 in
R3(config-if)#exit

Bagian 5: Buat IP bernomor ACL 110 pada R3

Tolak semua paket keluar dengan alamat sumber di luar kisaran alamat IP internal pada R3.

Langkah 1: Konfigurasikan ACL 110 untuk mengizinkan hanya lalu lintas dari jaringan di dalam.


Gunakan perintah daftar akses untuk membuat ACL IP bernomor.

R3(config)#access-list 110 permit ip 192.168.3.0 0.0.0.255 any

Langkah 2: Terapkan ACL ke antarmuka F0 / 1.


Gunakan perintah ip access-group untuk menerapkan daftar akses ke lalu lintas masuk pada antarmuka F0 / 1.

R3(config)#interface fa0/1
R3(config-if)#ip access-group 110 in
R3(config-if)#exit

Part 6: Create a Numbered IP ACL 100 on R3

On R3, block all packets containing the source IP address from the following pool of addresses: 127.0.0.0/8, any RFC 1918 private addresses, and any IP multicast address.

Step 1:Configure ACL 100 to block all specified traffic from the outside network.


You should also block traffic sourced from your own internal address space if it is not an RFC 1918 address (in this activity, your internal address space is part of the private address space specified in RFC 1918).

Use the access-list command to create a numbered IP ACL.

Step 2:Apply the ACL to interface Serial 0/0/1.


Use the ip access-group command to apply the access list to incoming traffic on interface Serial 0/0/1.

Step 3:Confirm that the specified traffic entering interface Serial 0/0/1 is dropped.


From the PC-C command prompt, ping the PC-A server. The ICMP echo replies are blocked by the ACL since they are sourced from the 192.168.0.0/16 address space.

Step 4:Check results.


Your completion percentage should be 100%. Click Check Results to see feedback and verification of which required components have been completed.

Bagian 6: Buat IP bernomor ACL 100 pada R3

Pada R3, blok semua paket yang berisi alamat IP sumber dari kumpulan alamat berikut: 127.0.0.0/8, alamat pribadi RFC 1918, dan alamat IP multicast.

Langkah 1: Konfigurasikan ACL 100 untuk memblokir semua lalu lintas yang ditentukan dari jaringan luar.


Anda juga harus memblokir lalu lintas yang bersumber dari ruang alamat internal Anda sendiri jika itu bukan alamat RFC 1918 (dalam aktivitas ini, ruang alamat internal Anda adalah bagian dari ruang alamat pribadi yang ditentukan dalam RFC 1918).

Gunakan perintah daftar akses untuk membuat ACL IP bernomor.

Langkah 2: Terapkan ACL ke antarmuka Serial 0/0/1.


Gunakan perintah ip access-group untuk menerapkan daftar akses ke lalu lintas masuk pada antarmuka Serial 0/0/1.

Langkah 3: Konfirmasikan bahwa lalu lintas yang masuk ke antarmuka Serial 0/0/1 dijatuhkan.


Dari prompt perintah PC-C, ping server PC-A. Balasan gema ICMP diblokir oleh ACL karena bersumber dari ruang alamat 192.168.0.0/16.

Langkah 4: Periksa hasil.


Persentase penyelesaian Anda harus 100%. Klik Periksa Hasil untuk melihat umpan balik dan verifikasi komponen mana yang diperlukan telah selesai.

Configure IP ACLs to Mitigate Attacks Packet Tracer

Complex Number C++ - Source Code - Implementasi Menggunakan Array, Pointer, Struct Data dan Function.
GITHUB


source code link : https://github.com/yogithesymbian/c-/blob/master/implementation%20struc%20data%20pointer%20array/function/complexNumberYogi.cpp




source code link : https://github.com/yogithesymbian/c-/blob/master/implementation%20struc%20data%20pointer%20array/function/complexNumberYogi.cpp




document study case / studi kasus : Document. html

 Kesimpulan 

 1. Struktur data adalah sebuah skema organisasi yang diterapkan pada data sehingga data dapat diinterprestasikan dan sehingga operasi-operasi spesifik dapat dilaksanakan pada data tersebut 

2. Apabila kita membuat program dengan data yang sudah kita ketahui batasnya, maka kita bisa menggunakan array (tipe data statis), namun apabila data kita belum kita ketahui batasnya, kita bisa menggunakan pointer (tipe data dinamis) 

3. Untuk sekumpulan data dengan tipe data yang berlainan, namun merupakan satu-kesatuan, kita dapat menggunakan struktur untuk merepresentasikannya  


Latihan  

1. Masalah aritmatika polinom adalah membuat sekumpulan subrutin manipulasi terhadap polinom simbolis (symbolic Polynomial).  Terdapat empat operasi aritmatika polinom dasar antara lain: a. Penambahan b. Pengurangan c. Perkalian d. Turunan Representasikan bilangan polinom dengan array dan buatlah prosedur-prosedur yang melakukan kelima operasi aritmatika di atas. 

2. Representasikan soal di atas dengan menggunakan pointer 

3. Bilangan kompleks berbentuk a + bi, dimana a dan b adalah bilangan nyata dan i2 = -1. Terdapat empat operasi aritmatika dasar untuk bilangan kompleks, yaitu: 

• Penambahan : (a+bi) + (c+di) = (a+c) + (b+d)i 
• Pengurangan : (a+bi) - (c+di) = (a-c) + (b-d)i 
• Perkalian : (a+bi) * (c+di) = (ac-bd) + (ad+bc)i 
• Pembagian : (a+bi) / (c+di) = [(ac+bd) / (a2+b2)] + [(bc-ad)/(c2+d2)]i 

Tulis program yang membaca dua bilangan kompleks dan simbol operasi yang perlu dilakukan, kemudian lakukan operasi yang diminta. Gunakan struktur untuk merepresentasikan bilangan kompleks dan gunakan prosedur untuk implementasi tiap operasi. 

Complex Number C++ - Source Code

Gaussian Elimination C++ Program

Gaussian Elimination C++ Program


berikut source code yang sudah saya jelaskan dalam listing code nya juga

Library yang di butuhkan C++



#include <iostream>
#include <math.h>
#include <cmath>

Source Code nya


/*
* Gauss Method
* NIM : 17615006
* Yogi Arif Widodo
*/

#define MAX 15

using namespace std;

void lineYogi()
{
  cout <>n;
    system("cls");
    lineYogi();
    //==========================
    cin.ignore();  //for clear of line by cin
    ordoMatrik = atoi(n);  //because here line converting have linespace

    hrLine();
    cout <<"TIP :\tJika ordo matrix (n) = 2, maka masukan matrix 4x\n\tcontoh Input Untuk Matrik A = 1 2 3 4 (gunakan spasi)\n";
    cout <<"     \tLalu masukan Vektor 2x \n";
    cout <<"     \tContoh Input Untuk vector = 1 2 (gunakan spasi) ";

    hrLine();
    cout <<"ordo matrix yang digunakan : " <>elemen;
        cin.ignore();//for clear of line by cin
        A[i][j] = atof(elemen);//because here line converting have linespace
      }

    cout <<"\n\t\tInput untuk Vektor B = ";
    for(i = 0; i < ordoMatrik; i++)
    {
       // printf("\nElemen baris ke-%d ", i+1);
       // cout <<"\nElemen baris ke-" <>elemen;
       cin.ignore();//for clear of line by cin
       B[i] = atof(elemen);//because here line converting have linespace
    }
    //
    // getch();
    hrLine();

    cout<<"\tAugmenting matrik A dan B: ";
    hrLine();
    for(s = 0; s < ordoMatrik; s++)
    {
        for(t=0; t <= ordoMatrik; t++)
        {
           if(t != ordoMatrik)
             AugA[s][t] = A[s][t];
           else
             AugA[s][t] = B[s];
        }
    }

    cout<<"\n\tMatrik Augmented A\n";
    designFormView(); //designYogi
    for(i = 0; i < ordoMatrik; i++)
    {
      for (j = 0; j < ordoMatrik+1; j++)
      {
        // printf("%f ",AugA[i][j]);
        cout <<"\t"<>backOrExit;
    if (backOrExit == 'y' || backOrExit =='Y')
    {
        system("cls");
        goto HOMEYOGI;
    }
    else
    {
      system("EXIT");
    }
}



Jika code di atas ada yang error karena block code bertabrakan dengan format posting blogger , silahkan lihat versi github di bawah ini :

Github Code Version

https://github.com/yogithesymbian/c-/blob/master/linearSimultan/gaussYogiMethod.cpp



Berikut Penjelasan format c language yang jika di c++ tinggal panggil saja dengan library iostream.

example :

di C language

printf("X%d: %.2f\n", i+1, X[i]);
di C++ language

  cout <<"\tX" <<i+1 <<":" <<X[i] <<endl;



Kode Format Kegunaan
%c Membaca sebuah karakter
%d Membaca sebuah nilai integer decimal

Untuk Code Format Scanf Selengkpanya ada di : SCANF FORMAT WIKIPEDIA


C Language Code Version

Library yang di butuhkan C Lanugage



#include <stdio.h>
#include <conio.h>
#include <stdlib.h>


C Language Code




int main(void)
{
    int ordoMatrik, i, j, s, t, nx, k;
    float A[MAX][MAX], B[MAX], AugA[MAX][MAX], X[MAX], C, sum, 
                       temp;
    char n[MAX], elemen[MAX];
    
    printf("Masukkan ordo matrik (n): ");
    gets(n);
    ordoMatrik = atoi(n);
    
    printf("\nInput untuk Matrik A\n");
    for(i = 0; i < ordoMatrik; i++)
      for (j = 0; j < ordoMatrik; j++)      
      {
        printf("Elemen %d%d: ", i+1, j+1);
        gets(elemen);
        A[i][j] = atof(elemen);
      }
      
    printf("\nInput untuk Vektor B");
    for(i = 0; i < ordoMatrik; i++)
    {
       printf("\nElemen baris ke-%d ", i+1);
       gets(elemen);
       B[i] = atof(elemen);
    }
    
    getch();
    printf("Augmenting matrik A dan B: ");
    for(s = 0; s < ordoMatrik; s++)
    {
        for(t=0; t <= ordoMatrik; t++)
        {
           if(t != ordoMatrik)
             AugA[s][t] = A[s][t];
           else
             AugA[s][t] = B[s];
        }      
    }
      
    printf("\nMatrik Augmented A\n");
    for(i = 0; i < ordoMatrik; i++)
    {
      for (j = 0; j < ordoMatrik+1; j++)      
        printf("%f ",AugA[i][j]);  
      printf("\n");
    }
   
    //Proses pertukaran baris, Jika nilai aii bernilai nol
    for(i = 0;i < ordoMatrik; i++){
          if (AugA[i][i] == 0)
          {
             for(j = 0; j < ordoMatrik; ++j){
                 if(j == i) continue;             
                 if(AugA[j][i] != 0) {
                   //tukar baris matrik            
                   for(s = 0; s <= ordoMatrik; s++){
                      temp = AugA[i][s]; 
                      AugA[i][s] = AugA[j][s]; 
                      AugA[j][s] = temp;
                   }break;
                 }
                 else
                     continue;                
             }break;
          }
          else
             continue;
      }
     
    printf("\nMatrik A (Setelah Pertukaran) \n");
    for(i = 0; i < ordoMatrik; i++)
    {
      for (j = 0; j < ordoMatrik+1; j++)      
        printf("%f ",AugA[i][j]);  
      printf("\n");
    } 
      
    //Proses Operasi Baris Elementer  
    for(i=0; i < ordoMatrik; i++)
      for(j = i+1; j < ordoMatrik; j++)
      {
            C = AugA[j][i] / AugA[i][i];
            for(k = 0; k <= ordoMatrik; k++)
               AugA[j][k] = AugA[j][k] - C*AugA[i][k];
            //AugA[j][k]=0;
      }
      
    printf("\nMatrik A (Setelah OBE) \n");
    for(i = 0; i < ordoMatrik; i++)
    {
      for (j = 0; j < ordoMatrik+1; j++)      
        printf("%f ",AugA[i][j]);  
      printf("\n");
    }

    //Mencari nilai variabel Xi
    X[ordoMatrik-1]=AugA[ordoMatrik-1][ordoMatrik]/AugA[ordoMatrik-1][ordoMatrik-1];
    for(nx=0; nx < ordoMatrik;nx++)
    {
        sum = 0;
        i = ordoMatrik-1-nx;
        for(j = i+1; j < ordoMatrik; j++)
           sum = sum + AugA[i][j] * X[j];
        X[i] = (AugA[i][ordoMatrik]-sum)/AugA[i][i];
        
    }
    
    //Menampilkan nilai variabel xi
    printf("\n");
    for(i = 0; i < ordoMatrik; i++)
          printf("X%d: %.2f\n", i+1, X[i]);
          
    getch();
}




Gaussian Elimination C++ Program

program-iterasi-sederhana-c-mencari-akar-persamaan

Program Iterasi Sederhana C++ Mencari Akar Persamaan - Metode Numerik adalah teknik-teknik yang digunakan untuk memformulasikan masalah matematis agar dapat dipecahkan dengan operasi perhitungan. Sedangkan masalah real yang kompleks dan nonlinier tidak dapat diselesaikan.

program-iterasi-sederhana-c-mencari-akar-persamaan
Dengan Tambahan Input Batas Iterasi

ADA 2 JENIS PROGRAM : 1. Menggunakan Input-an X0 awal , Error(Galat/Epsiolon) , Batas Iterasi dan 2. Menggunakan Input-an X0 awal dan Error(Galat/Epsilon) saja

program-iterasi-sederhana-c-mencari-akar-persamaan
Percobaan pada Excel

Study Case | Studi Kasus

Carilah akar persamaan dari persaman berikut:

f(x) = e^-x - x  

Definisikan fungsi f(x) dan g(x)

f(x) = e^-x - x        g(x) = e^-x 

ket ^ adalah pangkat.

Toleransi error (ɛ) = 0.1; jumlah iterasi N = 5

Pendekatan awal x0 = 0.0

Iterasi i = 1
x1 = g(xi-1) = g(x0) = g(0.0) = 1.0
f(x1) = f(1.0) = -0.632121 
i < N? ya atau |f(xi)| > ɛ? ya


Algoritma Program Iterasi

1. Definisikan Fungsi f(x)
2. Masukan Pilihan Program 
    (1) dengan Input-an x0 , galat , dan batas iterasi
    (2) dengan Input-an x0 dan galat.  
NB : Saya Menggunakan For Loop                                             
3. jika pilihan 1 maka tentukan Input-an sesuai program tersebut
    Iterasi i = 1
    i = 1 ; i <= iterasi ; i++
x1 = g(xi-1) = g(x0) = g(0.0) = 1.0
f(x1) = f(1.0) = -0.632121 
        xi = i
4. jika pilihan 2 maka tentukan Input-an sesuai program tersebut
Iterasi i = 1
tentukan batas = 2
i = 1; i <= batas ;i++
x1 = g(xi-1) = g(x0) = g(0.0) = 1.0
f(x1) = f(1.0) = -0.632121 
i < N? ya atau |f(xi)| > ɛ? ya
        xi = i
        batas++
        i++

5. Program Selesai , Ulangi (Y/y) atau (!Y/!y) untuk exit


Berikut Program Mencari Akar Persamaan Pada Method Numeric

Iterasi Sederhana.cpp | Source Code By Me , Untuk Link Source Code Github ada di paling bawah.

Tidak diperkenankan CTRL  + A , CTRL + C , CTRL V, disarankan write/tulis code dari awal , supaya paham , dan silahkan bertanya jika ada yang ingin di tanyakan .

Berikut Library Yang di Butuhkan
#include <iostream>
#include <stdio.h>
#include <conio.h> 
#include <math.h>
#include <cmath>
#include <iomanip>
#include <windows.h>


using namespace std;

float xiyogi(float yogi) //g(x-i) and xi
{
 float inYogi;
 inYogi = exp(-yogi);
 return inYogi;
}

float fxiyogi(float arif) //f(xi)
{
 float theYogi;
 theYogi = exp(-arif)-arif;
 return theYogi;
}

void yogi()
{
 cout<<" Created On Thursday 09.30am - 09/20/2018  | MTK DISKRIT \n";
 cout<<"___________________________________________| 17615006 [NIM]";
 
 puts("\n\n\tMETHOD - ITERESI SEDERHANA [ Numeric ]");
 
 for (int yogis=0 ; yogis <66 0a="" 2.="" 66="" :="" awal="" cin="" cout.precision="" cout="" dante="" e="" endl="" epilson="" fasilitas="" fixed="" float="" for="" fungsi="" g="" galat="" i="" input="" int="" iterasi="" jikafabs="" jumlah="" n="" nilai="" nol="" olor="" program="" sediakan="" system="" t:="" t="F(x)=exp(-x)-x" tdiketahui="" tmasukan="" x0="" x="" xi="" xnol="" yogi="" yogiprogram:="" yogis="">>xNol;
 
 float tetapOk;
 tetapOk = xNol; //penetapan x awal val perm
 
 cout <<"\tMasukan Nilai epilson(Galat) \t: " ;
 cin >>epilson;
// cout <<"\tMasukan Nilai Iterasi \t\t: " ;
// cin >>iterasi;
//============================ DI Soal menggunakan input tetapi kita tidak tahu berapa iterasi hingga ia stop
//============================ algoritma jika abs xi maka loop
//============================ program ini bisa menggunakan input iterasi dan tanpa iterasi
 cout < epilson) //karena iterasi inputan sebetulnya 
  {        //kondisi if Fabs tidak di butuhkan
   xNol = dante;              //langsung panggil xNol = dante program akan loop
   duno++;                   //buat nambah looping
   it++;                   //penyesuaian nilai berikutnya
   goto YOGI;             //ke dalam if
  }
  cout <>ulangi;
  if(ulangi == 'Y' || ulangi == 'y')
  {
   system("cls");
   program();
  }
  if(!ulangi == 'Y' || !ulangi == 'y')
  {
   system("exit");
  }
}

int programSatu() //program
{
 
 system("Color 0A");
 
 cout << fixed;
 cout.precision(6);
 yogi();
 float jikaFabs;
 
 float xNol;
 float epilson;
 float iterasi;
 float dante; //for xi
 
 
 cout <>xNol;
 
 float tetapOk;
 tetapOk = xNol; //penetapan x awal val perm
 
 cout <<"\tMasukan Nilai epilson(Galat) \t: " ;
 cin >>epilson;
 cout <<"\tMasukan Nilai Iterasi \t\t: " ;
 cin >>iterasi;
//============================ DI Soal menggunakan input tetapi kita tidak tahu berapa iterasi hingga ia stop
//============================ algoritma jika abs xi maka loop
//============================ program ini bisa menggunakan input iterasi dan tanpa iterasi
 cout < epilson) //karena iterasi inputan sebetulnya 
  {        //kondisi if Fabs tidak di butuhkan
   xNol = dante;              //langsung panggil xNol = dante program akan loop
//   duno++;                   //buat nambah looping
////   it++;                   //penyesuaian nilai berikutnya
//   goto YOGI;             //ke dalam if
  }
  cout <>ulangi;
  if(ulangi == 'Y' || ulangi == 'y')
  {
   system("cls");
   programSatu();
  }
  if(!ulangi == 'Y' || !ulangi == 'y')
  {
   system("exit");
  }
}

void pilihanMenu()
{
 int pil;
 cout <>pil;
 if(pil ==2)
 {
  system("cls");
  program();
  
  
 }
 else if(pil == 1)
 {
  system("cls");
  programSatu();
 }
 else
 {
  cerr<<"Pilihan Tidak ada";
  goto TIDAK;
 }
}

int main()
{
 system("Color 0A");
 
 yogi();
 pilihanMenu();
}


GOTO SOURCE CODE
Thanks to Stackoverflow
Thanks to Google
Thanks to Internet Protocol
Thanks to scodeid

Program Iterasi Sederhana C++ Mencari Akar Persamaan

mengurangi-pengulangan-code-menggunakan-method-java


Example


Before Code


if(brtBrg > maxBrt)
                {
                   Double hitBrg;
                   hitBrg = brtBrg - 15;
                   totaLebih = (jmlOrg * ekTicket) + (biayaTmbh * hitBrg);
                 infoYogi = "\n Jurusan : " +jurS
                        + "\n Kelas : " +klsEk
                        + "\n Berat Barang Bawaan : " +brtBrg
                        + "\n Berat Barang MAX : " +maxBrt +" Kg"
                        + "\n Denda Barang Rp." +biayaTmbh
                        + "\n Jumlah Orang : " +jmlOrg
                        + "\n Total Biaya Rp." +totaLebih;
                JOptionPane.showMessageDialog(null, infoYogi,"Program Penjualan Ticket", JOptionPane.INFORMATION_MESSAGE);
                
                }
                else
                {
                    total = (jmlOrg * ekTicket) + (biayaTmbh * brtBrg);
                    infoYogi = "\n Jurusan : " +jurB
                        + "\n Kelas : " +klsEk
                        + "\n Berat Barang Bawaan : " +brtBrg
                        + "\n Berat Barang MAX : " +maxBrt +" Kg"
                        + "\n Denda Barang Rp." +biayaTmbh
                        + "\n Jumlah Orang : " +jmlOrg
                        + "\n Total Biaya Rp." +total;
                JOptionPane.showMessageDialog(null, infoYogi,"Program Penjualan Ticket", JOptionPane.INFORMATION_MESSAGE);
                }


After Using Method


if(yogi.brtBrg > yogi.maxBrt)
                {
                   Double hitBrg;
                   hitBrg = yogi.brtBrg - 15;
                   yogi.totaLebih = (yogi.jmlOrg * yogi.ekTicket) + (yogi.biayaTmbh * hitBrg);

                yogi.infoReport(); //memanggil method report
                yogi.infoYogi = "\n Total Biaya Rp." +yogi.totaLebih;
                JOptionPane.showMessageDialog(null, yogi.infoYogi,"Program Penjualan Ticket", JOptionPane.INFORMATION_MESSAGE);
                
                }
                else
                {
                   yogi.total = (yogi.jmlOrg * yogi.ekTicket) + (yogi.biayaTmbh * yogi.brtBrg);
                   yogi.infoReport();
                   yogi.infoYogi = "\n Total Biaya Rp." +yogi.total;
                JOptionPane.showMessageDialog(null, yogi.infoYogi,"Program Penjualan Ticket", JOptionPane.INFORMATION_MESSAGE);
                }

Sebelumnya buatlah variable nya menjadi public

Example


Before


public static void main(String[] args) {
        // menu for jenis tiket dan kelas tiket
        String jnsTicketnKls = "";
        String infoYogi = "";
        String brtBr;
        String jmlOrgY;
//......
}

After



public class BusTicket 
{
    public String infoYogi = "";
    public String brtBr;
    public String jmlOrgY;

 public static void main(String[] args) {
//        menu for jenis tiket dan kelas tiket
//        String jnsTicketnKls = "";
//        String infoYogi = "";
//        String brtBr;
//        String jmlOrgY;

Buat Methodnya



public class BusTicket 
{
    public String infoYogi = "";
    public String brtBr;
    public String jmlOrgY;

 public static void main(String[] args) 
{
   //code here
}
 public void infoReport()
       {
           infoYogi = "\n Jurusan : " +jurB
                        + "\n Kelas : " +klsEk
                        + "\n Berat Barang Bawaan : " +brtBrg
                        + "\n Berat Barang MAX : " +maxBrt +" Kg"
                        + "\n Denda Barang Rp." +biayaTmbh
                        + "\n Jumlah Orang : " +jmlOrg;
           JOptionPane.showMessageDialog(null, infoYogi,"Program Penjualan Ticket", JOptionPane.INFORMATION_MESSAGE);
       }

Untuk pemanggilan atau menggunaan variable public di dalam main , harus menggunakan object , like as yogi.namavariable ( nama_method.nama_variable) else other method


//buat object untuk class nya
        BusTicket yogi; //BusTicket adalah class name
        yogi = new BusTicket(); // this for method

Berikut Source Code
jam 12 siang akan saya update;

Mengurangi Pengulangan Code Menggunakan Method Java

Subscribe Our Newsletter