[{"content":"Hello👋, I am a {full-stack} developer, graduate, and {designer} who lives for enjoying a cup of tea 24/7 ☕️.\n","date":"22 June 2026","externalUrl":null,"permalink":"/","section":"","summary":"","title":"","type":"page"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"Computer programming is the process of writing, testing, and maintaining source code to create software or applications. Learning programming can open up many career opportunities in the technology field and provide useful skills in various industries.\n","date":"22 June 2026","externalUrl":null,"permalink":"/study/programming/","section":"Study","summary":"Learn programming for beginners, coding study guides, and programming learning resources.","title":"Computer Programming","type":"Study"},{"content":" Definition of Data Model # A set of concepts for describing data, the relationships between data, data meaning (semantics), and data constraints.\nTypes of Data Models # A. Object-Based Data Models\nB. Record-Based Data Models\nA. Object-Based Data Models # Object-based data models use the concepts of entities, attributes, and relationships between entities.\nThey include:\nEntity-Relationship Model Object-Oriented Model Semantic Data Model Functional Data Model The Entity-Relationship Model is the most popular model used in database design.\n1. Entity-Relationship Model # The model explains relationships between data in a database based on the perception that the real world consists of basic objects that have relationships among them.\nThe main components of the Entity-Relationship Model are: Entity, Relation. These components are further described by a number of Attributes/Properties.\nAttribute book code, title, stock Entity B01, B02, B03, Programming C++, etc. Relation the link between the book code in the book table and the book code in the loan table. The same applies to member codes. Entity-Relationship Diagram (E-R Diagram) # An Entity-Relationship model that contains sets of entities, relations, and attributes can be represented using an Entity-Relationship Diagram (E-R Diagram).\nBasic symbols used:\nflowchart LR %% Pengaturan gaya untuk node teks agar tidak terlihat seperti kotak %% Baris 1: Persegi Panjang (id=\"3\" \u0026 id=\"6\") Bentuk1[ ] ~~~ Teks1[\": Represents an entity set\"]:::teks %% Baris 2: Belah Ketupat (id=\"2\" \u0026 id=\"7\") Bentuk2{ } ~~~ Teks2[\": Represents a relationship set\"]:::teks %% Baris 3: Elips (id=\"4\" \u0026 id=\"8\") Bentuk3([ ]) ~~~ Teks3[\": Represents an attribute (key attributes are underlined)\"]:::teks %% Baris 4: Garis Lurus (id=\"5\" \u0026 id=\"9\") %% Garis dibuat dengan menghubungkan dua node kosong TitikA(( )) ~~~ TitikB(( )) TitikA --- TitikB TitikB ~~~ Teks4[\": Connector / Link\"]:::teks %% Styling tambahan untuk merapikan garis lurus dan menyembunyikan titik bantu style TitikA fill:none,stroke:none style TitikB fill:none,stroke:none In an E-R Diagram the most important rule is the relation cardinality / Mapping Cardinalities, which determines how many entities can be associated with other entities through a relationship set.\nTypes of Mapping Cardinalities:\nOne-to-one One-to-many Many-to-many Example: one-to-one relationship\nerDiagram %% Definisi Relasi BUKU ||--o{ MEMINJAM : \"1\" ANGGOTA ||--o{ MEMINJAM : \"1\" %% Entitas Buku BUKU { string Kode_buku PK string Judul int Stok } %% Entitas Anggota ANGGOTA { string Kode_anggota PK string nama } %% Entitas Relasi (Transaksi Meminjam) MEMINJAM { string Kode_buku FK string Kode_anggota FK } Example: one-to-many relationship\nerDiagram %% Definisi Relasi (Kardinalitas 1 ke N direpresentasikan melalui tabel transaksi) BUKU ||--o{ MEMINJAM : \"N\" ANGGOTA ||--o{ MEMINJAM : \"1\" %% Struktur Tabel BUKU BUKU { string Kode_buku PK string Judul int Stok } %% Struktur Tabel ANGGOTA ANGGOTA { string Kode_anggota PK string nama } %% Struktur Tabel MEMINJAM (Tabel Relasi/Transaksi) MEMINJAM { string Kode_buku FK string Kode_anggota FK date Tgl_pinjam int Jml string dst } Example: many-to-many relationship\nerDiagram %% Definisi Relasi (Penyelesaian Many-to-Many melalui tabel perantara) BUKU ||--o{ MEMINJAM : \"N\" ANGGOTA ||--o{ MEMINJAM : \"N\" %% Struktur Tabel BUKU BUKU { string Kode_buku PK string Judul int Stok } %% Struktur Tabel ANGGOTA ANGGOTA { string Kode_anggota PK string nama } %% Struktur Tabel MEMINJAM (Tabel Perantara / Transaksi) MEMINJAM { string Kode_buku FK string Kode_anggota FK date Tgl_pinjam int Jml string dst } 2. Object-Oriented Model # flowchart TD %% Alur Kiri (Database) L1[\"Database declarationsusing Java\"] L2[\"Object declarations usingJava\"] DB[(\"Database\")] L1 --\u003e L2 L2 --\u003e DB %% Alur Kanan (Application) R1[\"Application code writtenusing Java\"] R2[\"Java program compiler\"] R3[\"Application executablesgenerated\"] EU([\"End user\"]) R1 --\u003e R2 R2 --\u003e R3 R3 --\u003e EU %% Interaksi antara kedua alur DB \u003c--\u003e|interaction| R3 Object-based models are often represented using UML. UML diagrams are divided into two main types:\nStructural Diagrams Behavioral Diagrams Detailed coverage of UML is available in the Object Modeling course.\nStructural Diagrams # Structural diagrams include:\nClass Diagram Object Diagram Component Diagram Deployment Diagram Class Diagram\nA class diagram shows the structure of a system: classes, their attributes, and relationships between classes.\nClass Name Used to distinguish one class from another, e.g., Person, Student.\nAttribute Used to store state; in programming languages these are fields. Attributes describe what an object has, e.g., name, address, age, studentID.\nUsage format: modifier attribute_name : data_type\nExample:\nname : String — read as the attribute name has the modifier private and data type String.\nMethod\nUsed to store behavior. Methods may return values (non-void) or not return a value (void). Examples: getName, getAddress, getAge.\nUsage format:\nmodifier method_name([parameterName : parameterType]) : return_type\nExample: + getName() : String — read as method getName is public, has no parameters, and returns a String.\nsetName(name : String) : void — read as method setName is public, has one parameter name of type String, and returns no value. classDiagram %% Definisi Superclass \u0026 Subclass class Person { -lastname -firstname -address -phone -birthdate -/ age } class Employee { } class Patient { -amount -insurance carrier +make appointment() +calculate last visit() +change status() +provide medical history() } class Nurse { } class AdministrativeStaff[\"Administrative Staff\"] { } class Doctor { } %% Definisi Kelas Pendukung class MedicalHistory[\"Medical History\"] { -heart disease -high blood pressure -diabetes -allergies } class HealthTeam[\"Health Team\"] { } class Bill { -date -amount -purpose +generate cancellation fee() } class Appointment { -time -date -reason +cancel without notice() } class Symptom { -name } class Illness { -description } class Treatment { -medication -instructions -symptom severity } %% Pewarisan (Generalization) Person \u003c|-- Employee Person \u003c|-- Patient Employee \u003c|-- Nurse Employee \u003c|-- AdministrativeStaff Employee \u003c|-- Doctor %% Komposisi Patient \"1\" *-- \"0..1\" MedicalHistory : provides \u003e %% Asosiasi Biasa Patient \"1\" -- \"0..*\" Appointment : schedules \u003e Appointment \"1\" -- \"0..*\" Bill : leads to \u003e Patient \"1\" -- \"1..*\" Symptom : suffer \u003e Doctor \"1..*\" -- \"0..*\" Appointment : has scheduled \u003e %% Asosiasi Refleksif Patient \"1\" -- \"0..*\" Patient : +primary insurance carrier %% Relasi Many-to-Many \u0026 Association Class (Treatment) Symptom \"0..*\" -- \"0..*\" Illness Symptom .. Treatment : Association Class Illness .. Treatment : Association Class %% Agregasi (Health Team memiliki Nurse, Admin, Doctor) HealthTeam \"*\" o-- \"0..*\" Nurse HealthTeam \"*\" o-- \"0..1\" AdministrativeStaff HealthTeam \"*\" o-- \"1..*\" Doctor Object Diagram\nAn object diagram shows specific instances with attribute values and relationships at a certain point in time.\nclassDiagram class Patient { -amount -insurance carrier +make appointment() +calculate last visit() +change status() +provide medical history() } class Appointment { -time -date -reason +cancel without notice() } class Doctor { } class Symptom { -name } Patient \"1\" -- \"0..*\" Appointment : schedules Appointment \"0..*\" -- \"1..*\" Doctor : has scheduled Patient \"1\" -- \"1..*\" Symptom : suffer Patient \"0..*\" -- \"1\" Patient : +primary insurance carrier classDiagram %% Menampilkan instansiasi objek dengan nilai nyata class JohnDoePatient[\"John Doe: Patient\"] { lastname = \"Doe\" firstname = \"John\" address = \"1000 Main Street\" phone = \"555-555-5555\" birthdate = \"01/01/72\" age = 32 amount = \"$0.00\" insurance carrier = \"JD Health Insurance\" } class Appt1Appointment[\"Appt1: Appointment\"] { time = \"3:00\" date = \"7/7/2004\" reason = \"pain in neck\" } class DrSmithDoctor[\"Dr. Smith: Doctor\"] { lastname = \"Smith\" firstname = \"Jane\" address = \"Doctor's Clinic\" phone = \"999-555-5555\" birthdate = \"12/12/64\" age = 39 } class Symptom1Symptom[\"Symptom1: Symptom\"] { name = \"muscle pain\" } %% Relasi antar objek (instansiasi relasi) JohnDoePatient -- Appt1Appointment Appt1Appointment -- DrSmithDoctor JohnDoePatient -- Symptom1Symptom Component Diagram A component diagram illustrates the structure and relationships between software components, including dependencies. A software component can be a module containing source code or binary code, a library or an executable, and may appear at compile time, link time, or run time.\nDeployment Diagram A deployment diagram maps software to processing nodes. It shows the configuration of processing elements at run time and the software deployed on them. This diagram is important during implementation and can be created before coding to determine available resources and execution constraints of the hardware.\ngraph TD %% Definisi Node sebagai Deployment Nodes (menggunakan bentuk kotak 3D) DB[(\"Database Server\")] Reg[Registration] Dorm[Dorm] Main[Main Building] Lib[Library] %% Koneksi antar node Reg --- DB Dorm --- DB Main --- DB Lib --- DB Behavioral Diagrams # Behavioral diagrams include:\nUse Case Diagram Sequence Diagram Collaboration Diagram Statechart (State) Diagram Activity Diagram Use Case Diagram: explains how the system is used and is the starting point of UML modeling.\nUse Case Diagram consists of:\ngraph LR %% Pengaturan gaya agar label teks berada di sebelah kanan simbol classDef teks fill:none,stroke:none; %% Baris 1: Use Case UC((Use Case)) ~~~ K1[\": Use Case\"]:::teks %% Baris 2: Actor A([Actor]) ~~~ K2[\": Actors\"]:::teks %% Baris 3: Relationship --- K3[\": Relationship\"]:::teks %% Baris 4: System Boundary Box B[System Boundary Box] ~~~ K4[\": System Boundary Boxes\"]:::teks Sequence Diagram: shows interactions between objects inside and around the system (including users, displays/forms) as messages over time. Sequence diagrams have a vertical time axis and a horizontal object axis. They are commonly used to describe scenarios or the sequence of steps triggered by an event to produce a specific output.\nCollaboration Diagram: - An alternative way to describe a system scenario. - Also models interactions between objects like sequence diagrams, but emphasizes the roles of each object rather than the timing of messages. - Each message has a sequence number. - A Collaboration Diagram contains: - Objects, shown as rectangles - Links between objects, shown as connecting lines - Messages, shown as labeled arrows\nCollaboration vs Sequence Diagram\nCollaboration Diagram\nMain focus: shows relationships among objects alongside their interactions. Best for visualizing collaboration patterns. Useful during brainstorming or early design phases. Sequence Diagram\nMain focus: shows the explicit order of messages. Better for visualizing the overall flow. Useful for real-time or complex scenarios and analysis phases. Statechart (State) Diagram documents the various states a class can be in and the events that cause transitions between those states.\nFor example, a television can be in the On or Off state; pressing the power button toggles the state.\nStatechart Diagram\ngraph LR %% Notasi State S1[State1] --- Note1[State notation: depicts the condition of an entityusing a rectangle with rounded corners] %% Notasi Transition T1 -- \"trigger [guard] / activity\" --\u003e T2( ) T1 --- Note2[Transition: a change in an object's stateresulting from an event] %% Notasi Initial State I1(( )) --- Note3[Initial State: the object's initial conditionbefore any changes occur] %% Notasi Final State F1((( ))) --- Note4[Final State: the object stops responding to events.] %% Styling classDef note stroke-dasharray: 5 5,text-align:left; class Note1,Note2,Note3,Note4 note Activity Diagram - Describes business processes and the sequence of activities within a process. - Also used in business modeling to show the order of business activities. - Its structure is similar to a flowchart or Data Flow Diagram in structured design. - Useful for modeling a process in order to understand overall behavior. - Activity diagrams are often created from one or more use cases.\nActivity Diagram Symbols\nSymbol Description Start Point End Point Activities Fork Join Decision Swimlane A way to group activities by actor (grouping activities under the same actor) Example Activity Diagram\nWithdrawing Cash from a Bank Account via ATM\n3. Semantic Model # Similar to the Entity-Relationship model, semantic models express relationships between basic objects using words (semantics) rather than symbols. For example, using the Bank X relationship from earlier, the semantic model would be represented as shown in the diagram above.\nThe notations used in the semantic model include:\nindicate a relationship indicate an attribute Example Semantic Model\ngraph TD %% Definisi Node Utama Peminjaman((Peminjaman)) Anggota((Anggota)) Surya((Surya)) %% Atribut Jml((jml)) KodeAnggota1((\"Kode_anggota\")) KodeAnggota2((\"Kode_anggota\")) Nama((nama)) %% Relasi antar Entitas Anggota -- \"memiliki\" --\u003e Peminjaman Surya -- \"adalah\" --\u003e Anggota %% Menghubungkan Atribut Peminjaman --- Jml Peminjaman --- KodeAnggota1 Surya --- KodeAnggota2 Surya --- Nama B. Record-Based Data Models # These models are based on records and are used to describe the logical relationships among data in a database.\nDIFFERENCE FROM OBJECT-BASED MODELS\nIn record-based data models, besides describing the overall logical structure of a database, they are also used to describe implementation aspects of the database system (a higher-level description of implementation).\nRelational Model # There are three main models in the record-based category:\nRelational Model In the relational model, data and relationships are represented by a set of tables, where each table consists of uniquely named columns. This model is based on set theory (relations).\nExample: a seller database consisting of 3 tables:\nSupplier Spare_parts Shipment erDiagram %% Definisi Relasi antar Tabel SUPPLIER ||--o{ PENGIRIMAN : \"melakukan\" SUKU_CADANG ||--o{ PENGIRIMAN : \"terdapat pada\" %% Struktur Tabel SUPPLIER SUPPLIER { string No_supl PK string Nama_pen string Status string KOTA } %% Struktur Tabel PENGIRIMAN PENGIRIMAN { string NO_SUPL FK string NO_PART FK int JUML } %% Struktur Tabel SUKU CADANG SUKU_CADANG { string NO_PART PK string NAMA_PART string BAHAN_BAKU int BERAT string KOTA } erDiagram %% Definisi Relasi POLIKLINIK ||--o{ JADWAL_DOKTER_TUGAS : \"memiliki\" JADWAL ||--o{ JADWAL_DOKTER_TUGAS : \"memiliki\" DOKTER ||--o{ JADWAL_DOKTER_TUGAS : \"melakukan\" %% Struktur Tabel POLIKLINIK { string Kd_Poli PK string Nm_poli } JADWAL { string Kd_jwl PK string Jam string Hari } DOKTER { string Kd_dokter PK string Nm_dokter string Alamat string Spesialis } JADWAL_DOKTER_TUGAS { string Kd_poli FK string Kd_dokter FK string Kd_jwl FK string Status_Tugas } Hierarchical Model # Hierarchical Model In this model, data and relationships are represented using records and links (pointers). Records are organized in a tree structure, where each node is a record or group of data elements and relationships have cardinalities of 1:1 or 1:M.\ngraph TD %% Node Utama Dosen[LECTURERBAYA] %% Node Mata Kuliah MK1[DATABASE SYSTEM] MK2[SISFO ANALYSIS AND PLANNING] %% Node Mahasiswa NINA[NINA] LENA[LENA] HAFIDZ1[HAFIDZ] NOVI[NOVI] HAFIDZ2[HAFIDZ] NAYA[NAYA] RAFA[RAFA] %% Hubungan Hierarki Dosen --\u003e MK1 Dosen --\u003e MK2 MK1 --\u003e NINA MK1 --\u003e LENA MK1 --\u003e HAFIDZ1 MK1 --\u003e NOVI MK2 --\u003e HAFIDZ2 MK2 --\u003e NAYA MK2 --\u003e RAFA %% Penanda panah balik (untuk menunjukkan tanggung jawab/laporan) HAFIDZ1 -.-\u003e MK1 HAFIDZ2 -.-\u003e MK2 Network Model # Network Model Standardized in 1971 by the Database Task Group (DBTG), also called the CODASYL model (Conference on Data Systems Languages). It is similar to the hierarchical model in that data and relationships are represented with records and links. The difference is that the network model arranges records in a graph structure and supports cardinalities of 1:1, 1:M, and N:M.\ngraph TD %% Node Utama Dosen[LECTURERBAYA] %% Node Mata Kuliah MK1[DATABASE SYSTEM] MK2[SISFO ANALYSIS AND PLANNING] %% Hubungan Dosen ke Mata Kuliah Dosen --\u003e MK1 Dosen --\u003e MK2 %% Hubungan Mata Kuliah ke Mahasiswa MK1 --\u003e NINA[NINA] MK1 --\u003e LENA[LENA] MK1 --\u003e NOVI[NOVI] MK1 --\u003e HAFIDZ[HAFIDZ] MK2 --\u003e HAFIDZ MK2 --\u003e NAYA[NAYA] MK2 --\u003e RAFA[RAFA] ","date":"22 June 2026","externalUrl":null,"permalink":"/study/programming/database-system/chapter-03-data-model/","section":"Study","summary":"A set of concepts for describing data, relationships between data, data meaning (semantics), and data constraints.","title":"Data Model","type":"study"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/tags/data-model/","section":"Tags","summary":"","title":"Data Model","type":"tags"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/tags/database/","section":"Tags","summary":"","title":"Database","type":"tags"},{"content":"Database systems play a crucial role in the field of software engineering; databases serve as the underlying framework for information systems and have fundamentally transformed the way many organizations operate.\n","date":"22 June 2026","externalUrl":null,"permalink":"/study/programming/database-system/","section":"Study","summary":"Database systems play a crucial role in the field of software engineering; databases serve as the underlying framework for information systems and have fundamentally transformed the way many organizations operate.","title":"Database System","type":"programming"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/categories/database-systems/","section":"Categories","summary":"","title":"Database Systems","type":"categories"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/tags/database-systems/","section":"Tags","summary":"","title":"Database Systems","type":"tags"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/series/database-systems-chapters/","section":"Series","summary":"","title":"Database Systems Chapters","type":"series"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/tags/entity-relationship-model/","section":"Tags","summary":"","title":"Entity-Relationship Model","type":"tags"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/tags/er-diagram/","section":"Tags","summary":"","title":"ER Diagram","type":"tags"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/tags/hierarchical-model/","section":"Tags","summary":"","title":"Hierarchical Model","type":"tags"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/tags/learn-coding/","section":"Tags","summary":"","title":"Learn Coding","type":"tags"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/tags/learn-programming/","section":"Tags","summary":"","title":"Learn Programming","type":"tags"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/tags/network-model/","section":"Tags","summary":"","title":"Network Model","type":"tags"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/tags/object-oriented-model/","section":"Tags","summary":"","title":"Object-Oriented Model","type":"tags"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/tags/programming-for-beginners/","section":"Tags","summary":"","title":"Programming for Beginners","type":"tags"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/tags/relational-model/","section":"Tags","summary":"","title":"Relational Model","type":"tags"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/series/","section":"Series","summary":"","title":"Series","type":"series"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/tags/sql/","section":"Tags","summary":"","title":"SQL","type":"tags"},{"content":"Learning media for those of you who want to learn something new.\n","date":"22 June 2026","externalUrl":null,"permalink":"/study/","section":"Study","summary":"","title":"Study","type":"study"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"","date":"22 June 2026","externalUrl":null,"permalink":"/tags/uml/","section":"Tags","summary":"","title":"UML","type":"tags"},{"content":"","date":"21 June 2026","externalUrl":null,"permalink":"/tags/database-design/","section":"Tags","summary":"","title":"Database Design","type":"tags"},{"content":"","date":"21 June 2026","externalUrl":null,"permalink":"/tags/database-schema/","section":"Tags","summary":"","title":"Database Schema","type":"tags"},{"content":"","date":"21 June 2026","externalUrl":null,"permalink":"/tags/integrity-constraints/","section":"Tags","summary":"","title":"Integrity Constraints","type":"tags"},{"content":"","date":"21 June 2026","externalUrl":null,"permalink":"/tags/relational-databases/","section":"Tags","summary":"","title":"Relational Databases","type":"tags"},{"content":" Relational Database # A database that represents data in tables, where those tables are connected by the same/common values in related columns.\nDatabase components:\nTable Column/attribute Row/tuple Domain flowchart LR %% DBMS container holding tables subgraph DBMS [DBMS] direction TB T1[Book Table] T2[Member Table] T3[Loan Table] T4[Return Table] end %% Client PC entities PC1(Client PC 1) PC2(Client PC 2) PC3(Client PC 3) %% Connection lines between DBMS and PCs DBMS --- PC1 DBMS --- PC2 DBMS --- PC3 %% Styling for neatness style DBMS fill:none,stroke-width:2px Schema:\nBook Table: book code (3), book title (20) Member Table: member code (3), member name (25) Loan Table: loan code (5), loan date (date), member code (3) Return Table: return code (5), return date (date), member code (3) Member Table:\nMember Code Name A01 Surya A02 Fitri A03 Syahrur Book Table:\nBook Code Title Stock B01 C++ Programming 10 B02 Building an Application in 30 Minutes 15 B03 Cooking is Easy 15 Schema:\nBook Table: book code (3), book title (20) Member Table: member code (3), member name (25) Loan Table: loan code (5), loan date (date), member code (3) Return Table: return code (5), return date (date), member code (3) 1. Table # A table has a name and consists of rows and columns. Tables in a database must not have the same name (unique). A table is also called a Relation or File.\nIn the diagram there are 4 tables: member table, book table, loan table, and return table.\n2. Column/Attribute # A column has a name. Columns in a table must not have the same name. The order of names may be arbitrary and does not affect the meaning of the table.\nAnother name for a column is Field or Attribute.\nIn the table, columns are member name, book title, member code, book code, etc.\n3. Domain # A domain is a collection of values that can be stored in one or more columns. A domain may belong to one or more columns, but a column has only one domain. Because a domain restricts and controls the values that can be stored, it is called a domain constraint.\nIn the diagram, the member code column contains only 3 values, namely “A01”.\n4. Row # A row contains the data of an object. A row in a table must be unique, can be placed in any order, and does not affect the meaning of the table. A row is also called a Record or tuple.\nIn the member table it can store three objects (that is, three member records) in three tuples.\nRelational Keys # A relational key is the identification of one or more columns whose values can uniquely distinguish tuples.\nFive relational keys:\nSuperkey Candidate key Primary key Alternate key Foreign key Member Table\nMember Code Name A01 Surya A02 Fitri A03 Syahrur Return Table\nReturn Code Loan Code KM01 PJ01 KM02 PJ02 Book Table\nBook Code Title Stock B01 C++ Programming 10 B02 Building an Application in 30 Minutes 15 B03 Cooking is Easy 15 Loan Table\nLoan Code Loan Date Book Code Member Code Quantity Return Date PJ01 10-01-2019 B01 A01 1 13-01-2019 PJ01 10-01-2019 B02 A01 1 13-01-2019 PJ01 10-01-2019 B03 A01 1 13-01-2019 PJ02 12-01-2019 B02 A02 1 14-01-2019 PJ02 12-01-2019 B03 A02 1 14-01-2019 1. Superkey # A superkey is a single or group of columns whose values uniquely distinguish tuples in a table.\nEach table has more than one superkey, namely:\nMember table: member code, member name Book table: book code, title, stock Loan table: loan code, loan date, book code, member code, quantity, return date Return table: return code, loan code Member table:\nColumn member code, Column invoice number and column member name Book table:\nColumn book code Combination of book code, title, stock. 2. Candidate Key # A candidate key is a superkey such that no proper subset of it is also a superkey. Not all superkeys are candidate keys. A candidate key that consists of two or more columns is called a composite key.\nEach table has candidate keys and non-candidate keys, namely:\nMember table:\nColumn member code: candidate key Column invoice number and column member name: not a candidate key Book table:\nColumn book code: candidate key Combination of book code, title, stock: not a candidate key Loan table:\nColumns loan code, book code, member code: candidate key Combination of loan code, book code, member code, quantity, etc.: not a candidate key 3. Primary Key # A primary key is the selected candidate key (from among other candidate keys) that uniquely distinguishes tuples in a table. If a table has only one candidate key (for example, the member table and the book table), that key becomes the primary key. But if there is more than one candidate key (for example, the sales table and the return table), then one of those candidate keys may be chosen as the primary key.\n4. Alternate Key # An alternate key is a candidate key that is not chosen as the primary key. For example, in the return table, if we choose the return code as the primary key, then the loan code can be an alternate key.\n5. Foreign Key # A foreign key is one or more columns whose values are the same as or related to the candidate key in another table or the same table.\nFor example, in the loan table there is a member code column that connects to the member table, so member code is a foreign key. These related columns are very important in join operations.\nTable Schema (Relation Schema) # A table schema is the basic information describing a table, consisting of the table name and a set of column-domain pairs.\nExample: Member Table Schema\nMember Table (member code, name)\nDatabase Schema (Relational Database Schema) # A database schema is a collection of table schemas where each table has a different name.\nExample: Library Database Schema\nMember table (member code, name) Book table (book code, title, stock) Loan table (loan code, loan date, book code, etc.) Integrity Constraints # We have discussed domain constraints. There are four other constraints that maintain the integrity of data stored in a database:\nNull Entity integrity Referential integrity General constraints 1. Null # Null is a value in a column (tuple) that is still unknown. This can mean that the value cannot be applied to that column.\nHowever, null is not the same as the numeric value zero or the string \u0026ldquo;-\u0026rdquo;; zero and whitespace are values, while null indicates the absence of a value.\nFor example, if a table has data that is not yet known, it may be written as null, but this does not apply to the primary key. Because the primary key column must be unique, if the primary key stores null then the uniqueness property of that column is lost because multiple tuples could have null values.\n2. Entity Integrity # Entity integrity is the constraint or rule that primary key columns must not store null.\nAs explained earlier, the primary key is used to uniquely define a tuple.\n3. Referential Integrity # Referential integrity is the constraint that if a table has a foreign key column, then the value in that foreign key must match the value of the candidate key column, and if not, the foreign key may be written as null.\nThere are two cases where null is not allowed:\nWhen the column is constrained to not allow null. When the column is also part of the primary key. 4. General Constraints # General constraints are additional rules established by users or database administrators according to the policies and restrictions of an organization.\nExample:\nBook loans are not allowed if only one copy of the book is in stock. If a member still has a book that has not been returned, they are not allowed to borrow again. Database Design # The database creation process consists of two main stages:\nAnalysis and design stage Implementation stage 1. Analysis Stage # The analysis stage is the mapping or modeling of the real world using a specific database design notation, as well as creating an implementation description for the database.\nflowchart TD %% Style definitions for step boxes classDef langkah stroke-width:1px; %% Stage 1: Conceptual (Left to Right) subgraph Concept [Database Design Conceptually] direction LR L1[\"Step 1: Discovery andFact Analysis• Identify organizational units• Discover facts• Summarize discovered facts\"]:::langkah L2[\"Step 2: Create ERD• Determine entity types• Determine entity relationships• Determine multiplicity• Determine attributes• Draw the ERD• Refine the ERD structure\"]:::langkah L1 ==\u003e L2 end %% Stage 2: Logical (Top to Bottom) subgraph Logic [Database Design Logically] direction TB L3[\"Step 3: Map the ERD• Map entity types• Map entity relationships• Map multi-valued attributes\"]:::langkah L4[\"Step 4: NormalizeTable Structure• Check table normality• Normalize tables• Validate tables\"]:::langkah L3 ==\u003e L4 end %% Stage 3: Physical (Right to Left) subgraph Physical [Database Design Physically] direction RL L5[\"Step 5: CreateDatabase Schema Definition• Table encoding and compression• Choose DBMS• Define base tables• Handle derived data\"]:::langkah L6[\"Step 6: Design File andIndex Organization• Analyze user transactions• Determine indexes• Create index documentation and DDL\"]:::langkah L5 ==\u003e L6 end %% Stage 4: Implementation subgraph Implementation [Implementation Stage] L7[\"Step 7:Implement DDL• Use command line• Use graphical interface\"]:::langkah end %% Connecting the stages (Snake flow) L2 ==\u003e L3 L4 ==\u003e L5 L6 ==\u003e L7 %% Styling group borders for neatness The analysis and design stages are divided into three parts:\nConceptual database design\nThe process of creating a data model that does not depend on the physical aspects of the database. Logical database design\nThe process of creating a data model based on a specific data model, but not dependent on a particular DBMS or physical implementation. Physical database design\nThe process of creating an implementation description for the database on secondary storage (disk). This description explains the base tables, file organization, indexes for efficient data access, all integrity constraints, and security measures. 2. Implementation Stage # This stage implements the database design that has been created. The implementation uses client applications provided by the selected DBMS.\n","date":"21 June 2026","externalUrl":null,"permalink":"/study/programming/database-system/chapter-02-relational-databases-and-database-design/","section":"Study","summary":"A database that represents data in tables, where the tables are connected by the same/common values in related columns.","title":"Relational Databases \u0026 Database Design","type":"study"},{"content":"","date":"21 June 2026","externalUrl":null,"permalink":"/tags/relational-keys/","section":"Tags","summary":"","title":"Relational Keys","type":"tags"},{"content":" Introduction to Databases # Databases are currently having a major impact on economic and social development. Database systems are critically important in the development of software engineering, and databases serve as the foundation for information systems and fundamentally change how many organizations operate.\nExamples of Database Usage in applications: phone number management applications, company payroll applications, etc.\nDatabase Usage Examples # Library Borrowing When we borrow books from a library, it is very likely that a database is accessed. The staff will enter the book code or use a barcode reader, which is connected to a database application to retrieve the book\u0026rsquo;s data. The application will then reduce the stock quantity of the book and display the current stock level to the staff. If the stock of the book falls below the minimum threshold, the database system will automatically inform the staff that borrowing can no longer be processed. Alternatively, if a reader asks about the availability of a book, the staff can check the book\u0026rsquo;s stock and storage location by running an application that determines the book\u0026rsquo;s availability from the database.\nflowchart LR %% Database Entity DB[(Library Database)] %% Group containing tables (representing dashed ellipse) subgraph IsiDatabase [\"Contents of Library Database\"] direction TB B[Book Table] M[Member Table] R[Return Table] BW[Borrowing Table] end %% Dashed lines from Database to Group DB -.- IsiDatabase %% Styling to make group (subgraph) have dashed lines like ellipse style IsiDatabase fill:none,stroke-width:2px,stroke-dasharray: 8 8 Basic Database Concepts # BASIS can be interpreted as a base or warehouse, a place where things gather.\nDATA is a representation of real-world facts that represent an object such as people (employees, students, buyers, customers), goods, animals, events, concepts, conditions, and so on, expressed in the form of numbers, letters, symbols, text, images, sounds, or combinations thereof.\nDATABASE is a collection of groups of data/collection of data that are logically related and their descriptions, which are stored in such a way and designed together to meet the information needs of an organization.\nPrinciples and Objectives of Databases # The main principle is the organization of data/records. The main objective is ease and speed in data/record retrieval. What is particularly emphasized in databases is the organization, sorting, grouping, and organizing of data that we store according to its function/type. This data organization can be in the form of separate tables or in the form of defining columns (fields) of data in each table. Basic Database Operations # The basic operations that we can perform on a database are:\nCreate database Drop database Create table Drop table Insert Query Update Delete Database System # System is an arrangement consisting of a number of functional components that are interrelated and together aim to fulfill a specific process.\nExample:\nSystem = vehicle\nFunctional components = ignition/starter (to start ignition), ignition components (for fuel combustion that makes the piston work), etc.\nA database is merely a passive object. Software/applications/programs are the drivers or managers. A system is a combination of the two. Database System is a system consisting of a collection of related data tables and a set of programs (DBMS) that allow multiple users and/or other programs to access and manipulate those data tables.\nDatabase Management System (DBMS) # Database Management System (DBMS) # DBMS is software that allows users to define, manage, and control access to a database. A DBMS that manages relational databases is called a Relational DBMS (RDBMS)\nExamples of software that are included as DBMS: dBase, FoxBase, Rbase, Microsoft-Access, Borland Paradox / Borland Interbase, MS-SQL Server, Oracle, Informix, Sybase, MySQL, etc.\nflowchart LR %% Container for DBMS containing tables subgraph DBMS [DBMS] direction TB T1[Book Table] T2[Member Table] T3[Loan Table] T4[Return Table] end %% PC/Client Entities PC1(Client PC 1) PC2(Client PC 2) PC3(Client PC 3) %% Connection lines between DBMS and PC DBMS --- PC1 DBMS --- PC2 DBMS --- PC3 %% Style adjustments for neat appearance style DBMS fill:none,stroke-width:2px flowchart LR %% Style Definition (Light blue color like the image) %% Large outer box enclosing the backend system subgraph SistemUtama [ ] direction LR %% Database DB[(\"DatabaseMember Table, Book Table, Loan Table, Return Table + Tabledescriptions\")]:::kotakPutih %% DBMS DBMS[\"DBMS\"]:::kotakBiru %% Application Group subgraph GrupAplikasi [ ] direction TB A1[\"Input DataReportLoan Application\"]:::kotakBiru A2[\"Input DataReportReturn Application\"]:::kotakBiru end %% Internal system relationships DB \u003c--\u003e DBMS DBMS \u003c--\u003e A1 DBMS \u003c--\u003e A2 end %% User Entities (Client) User1[\"🖥️ Member\"]:::kotakPutih User2[\"🖥️ Staff\"]:::kotakPutih %% External relationships (Application to Users) A1 \u003c--\u003e User1 A2 \u003c--\u003e User2 %% Styling border for subgraph style SistemUtama fill:none,stroke-width:1px style GrupAplikasi fill:none,stroke-width:1px The above image explanation shows how a computer accesses a database:\nThe database stores all data, starting from members, book data to loan transaction data and returns, so that members can see the data of books available in the library, as well as members can see what books have been borrowed and their return dates. Likewise, staff can see the same functions.\nComponents of Database System # flowchart LR %% Style Definition (Color shades following blue in the image) %% Left Side: Machine (Hardware) subgraph Machine [Machine] direction LR H[Hardware]:::kotakBiasa --- S[Software]:::kotakBiasa end %% Middle: Data as Bridge D([\"DataBridge\"]):::kotakTengah %% Right Side: Human (People) subgraph Human [Human] direction LR Pr[Procedures]:::kotakBiasa --- Pe[People]:::kotakBiasa end %% Connection lines between groups Machine -.- D D -.- Human %% Remove group background to focus on components style Machine fill:none,stroke-width:1px style Human fill:none,stroke-width:1px Connolly, Thomas M \u0026amp; E Begg, Carolyn, Database System, A Practical Approach to Design, Implementation and Management, 2015, Pearson Education, United Kingdom\n1. Hardware # DBMS and applications require hardware to run. Hardware can range from a single personal computer to a single mainframe or a network of computers.\nThe specific hardware depends on the organization\u0026rsquo;s requirements and the DBMS used.\nSome DBMS only run on specific hardware or operating systems, while others run on various hardware and operating systems\n2. Software # The software component of a DBMS itself consists of DBMS software and application programs, along with the operating system, including network software if the DBMS is being used through a network.\nExamples of programming languages used: C, C++, C#, Java, Visual Basic, COBOL, Pascal, SQL.\n3. Data # Data is the most important component of the DBMS environment (certainly from the end user\u0026rsquo;s point of view). In the image above, data can act as a bridge between the machine component and the human component. The database contains operational data and metadata, \u0026ldquo;data about data\u0026rdquo;. The structure of a database is called a schema.\nflowchart LR %% Style Definition (Light blue color like the image) %% Large outer box enclosing the backend system subgraph SistemUtama [ ] direction LR %% Database DB[(\"DatabaseMember Table, Book Table, LoanTable, Return Table + Tabledescriptions\")]:::kotakPutih %% DBMS DBMS[\"DBMS\"]:::kotakBiru %% Application Group subgraph GrupAplikasi [ ] direction TB A1[\"Input DataReportLoan Application\"]:::kotakBiru A2[\"Input DataReportReturn Application\"]:::kotakBiru end %% Internal system relationships DB \u003c--\u003e DBMS DBMS \u003c--\u003e A1 DBMS \u003c--\u003e A2 end %% User Entities (Client) User1[\"🖥️ Member\"]:::kotakPutih User2[\"🖥️ Staff\"]:::kotakPutih %% External relationships (Application to Users) A1 \u003c--\u003e User1 A2 \u003c--\u003e User2 %% Styling border for subgraph style SistemUtama fill:none,stroke-width:1px style GrupAplikasi fill:none,stroke-width:1px Schema:\nBook Table (book code, book title, etc.) Member Table (member code, member name, etc.) Loan Table (loan code, loan date, etc.) Return Table (return code, return date, etc.) 4. Procedures # Procedures refer to the instructions and rules that govern the design and use of a database.\nSystem users and staff who manage the database need documented procedures on how to use or run the system.\nProcedures can consist of instructions on how to:\nLog in to DBMS. Use DBMS facilities or a specific application program. Start and stop DBMS. Create backup copies of the database. Handle hardware or software failures. Change table structure, reorganize database across multiple disks, improve performance, or archive data to secondary storage. 5. People # The last component is the people involved with the system\nRoles in Database Environment # Consists of:\nData and Database Administrator Database Designer Application Developers End-User 1. Data and Database Administrator # Data Administrator (DA) is responsible for data resources, including databases; development and management of standard maintenance planning, policies and procedures; and conceptual/logical database design.\nDA consults with and advises senior management, ensuring that the direction of database development will ultimately support the company\u0026rsquo;s objectives.\nDatabase Administrator (DBA) is responsible for the physical realization of the database, including physical database design and implementation, security and integrity control, operational maintenance, and ensuring that application system performance satisfies users. The DBA role is more technically oriented than the DA role, requiring detailed knowledge of the target DBMS and system environment\n2. Database Designer # In large database design projects, there are two types of database designers:\nPhysical database designer, concerned with identifying data (i.e., entities and attributes), relationships between data, and constraints on the data that must be stored in the database. Logical database designer must have thorough and complete understanding of the organization\u0026rsquo;s data and any constraints on this data (sometimes called business rules). 3. Application Developers # After the database is implemented, application programs for end users must also be implemented. This is the responsibility of application developers.\nTypically, application developers work from specifications generated by system analysts.\n4. End-User # End-users can be classified according to the way they use the system:\nCasual Users: They interact with the database by entering simple command operations or selecting options from a menu. Sophisticated Users: They can use high-level query languages such as SQL to perform even complex operations, and can write application programs for their own use. Database Languages # The way users interact with a database is governed by a language established by the DBMS manufacturer.\nTwo forms of Languages are:\nDDL (Data Definition Language) DML (Data Manipulation Language) Details will be discussed in lecture 10 Advantages of DBMS # Control data redundancy Data consistency More information from the same amount of data Data sharing Improved data integration Improved security Enforcement of service standards Disadvantages of DBMS # Complexity Size Cost of DBMS Cost of additional hardware Cost of technology conversion Performance Greater impact of failures ","date":"20 June 2026","externalUrl":null,"permalink":"/study/programming/database-system/chapter-01-basic-database-concepts/","section":"Study","summary":"Database systems are critically important in the development of software engineering, and databases serve as the foundation for information systems and fundamentally change how many organizations operate.","title":"Basic Database Concepts","type":"study"},{"content":"","date":"20 June 2026","externalUrl":null,"permalink":"/tags/dbms/","section":"Tags","summary":"","title":"DBMS","type":"tags"},{"content":"","date":"20 June 2026","externalUrl":null,"permalink":"/tags/ddl/","section":"Tags","summary":"","title":"DDL","type":"tags"},{"content":"","date":"20 June 2026","externalUrl":null,"permalink":"/tags/dml/","section":"Tags","summary":"","title":"DML","type":"tags"},{"content":"","date":"6 June 2026","externalUrl":null,"permalink":"/tags/anti-corruption/","section":"Tags","summary":"","title":"Anti-Corruption","type":"tags"},{"content":"","date":"6 June 2026","externalUrl":null,"permalink":"/categories/character-building/","section":"Categories","summary":"","title":"Character Building","type":"categories"},{"content":"","date":"6 June 2026","externalUrl":null,"permalink":"/series/character-building/","section":"Series","summary":"","title":"Character Building","type":"series"},{"content":" Definition of Corruption # “CORRUPTION” from the Latin “corruptio” or “corruptus” “corruptio” derived from the word “corrumpere”, -\u0026gt; “corruption, corrupt” (English), “corruption” (French) and “corruptie/korruptie” (Dutch).\nrottenness, badness, depravity, dishonesty, bribability, immorality, deviation from purity\nUnderstanding # Corrupt means rotten, likes to receive bribes/kickbacks, uses power for personal gain, and so on; Corruption means rotten acts such as embezzlement of money, receiving bribes, and so on; Corruptor means the person who commits corruption. Acts of corruption involve:\nSomething that is amoral, A rotten nature and state, Involving position in an agency or government apparatus, Abuse of power in office due to gifts, Involving economic and political factors and the placement of family or groups into service under the power of the office. Forms of Corruption # State Financial Loss Unlawfully committing acts to enrich oneself, others, or a corporation Abusing existing authority, opportunity, or means Bribery Giving or promising something to a Civil Servant or state apparatus\u0026hellip;.with the intention of making them do something or not do something in their position; Giving something to a Civil Servant or state apparatus\u0026hellip;.because of or in connection with obligations, done or not done in their position; Giving gifts or promises to Civil Servants keeping in mind the power or authority attached to the position or status, or considered by the giver of the gift/promise to be attached to said position or status; Embezzlement in Office Civil servants or persons other than civil servants assigned to carry out a public office continuously or temporarily, intentionally embezzling money or securities kept because of their position, or said money/securities taken or embezzled by others or assisting in committing the act; Civil servants or persons other than civil servants assigned to carry out a public office continuously or temporarily, intentionally falsifying books or lists specifically for administrative examination; Extortion Fraudulent Acts Civil servants or state apparatus who, while carrying out their duties, ask for or receive work or delivery of goods, as if it were a debt to themselves, even though it is known that it is not a debt; Civil servants or state apparatus who, while carrying out their duties, ask for, receive, or cut payments to other Civil servants or state apparatus or to the general treasury, as if the other Civil servants or state apparatus or the general treasury had a debt to them, even though it is known that it is not a debt; Conflict of Interest in Procurement Gratification Two Factors Causing Corruption # INTERNAL FACTORS Internal factors are causes of corruption that come from oneself EXTERNAL FACTORS factors causing corruption due to outside causes. Several Opinions on Factors Causing Corruption # When the materialistic and consumptive behavior of society as well as a political system that still \u0026ldquo;idolizes\u0026rdquo; material things can \u0026ldquo;force\u0026rdquo; the occurrence of money politics and corruption (Ansari Yamamah: 2009)\nCorruption will continue as long as there are still errors in how wealth is viewed.\nThe more people are wrong in viewing wealth, the greater the likelihood of people making mistakes in accessing wealth. What do you think of the behavior of people who view wealth and money as something that means everything? What is the right form of awareness?\nOpinions Pointing to External Factors # Lack of exemplary figures and leadership from the nation\u0026rsquo;s elite, Low salaries of Civil Servants, Weak commitment and consistency in law enforcement and legislation, Low integrity and professionalism, Internal oversight mechanisms in all banking, financial, and bureaucratic institutions are not yet established, Conditions of the work environment, job duties, and community environment, and Weak faith, honesty, sense of shame, morals, and ethics Political factors, Legal factors, Economic and bureaucratic factors Transnational factors. Indonesia Corruption Watch | ICW\nProblems # graph LR %% Pengaturan gaya kotak (warna disesuaikan dengan gambar) classDef merah fill:#ffffff,stroke:#d32f2f,stroke-width:3px,color:#000000; classDef oranye fill:#ffffff,stroke:#f57c00,stroke-width:3px,color:#000000; classDef biruMuda fill:#ffffff,stroke:#1976d2,stroke-width:3px,color:#000000; classDef biruTua fill:#ffffff,stroke:#283593,stroke-width:3px,color:#000000; %% Definisi Node beserta isinya A[\"SYSTEM• Rules/Legislation• Organization• Justice• Politics\"]:::merah B[\"LAW ENFORCEMENT• Law• Organization• Personnel• Competence\"]:::oranye C[\"SOCIAL COMMUNITY• Permissiveness• Behavior/Culture• Role Model• Integrity\"]:::biruMuda D[\"NATIONALITY• Nationalism• Personality• Identity\"]:::biruTua %% Alur Panah A ==\u003e B B ==\u003e C C ==\u003e D Honesty # The value of honesty on campus can be realized in the form of not committing academic fraud. For example, not cheating, not committing plagiarism, and not falsifying grades. The value of honesty can also be realized in student activities. For example, creating financial reports for committee activities honestly. Caring # A student\u0026rsquo;s sense of caring must begin to be cultivated while on campus. Students are required to care about the teaching and learning process on campus, the management of resources on campus, as well as various things that develop on campus. Students are also required to care about the environment outside the campus, the actions of alumni, and the quality of scientific products produced by their university. Independence # It is impossible for a person who cannot be independent to be able to manage the lives of others. Students are required to complete all responsibilities with their own efforts. Discipline # The benefit of a disciplined life is that students can achieve their life goals in a more efficient time. Discipline also makes other people believe in managing a trust. Discipline in studying needs to be possessed by students so that maximum learning outcomes are obtained. Responsibility # Students who can be given small responsibilities and successfully carry them out well will gain the trust of others. Students who have a high sense of responsibility are easy for others to trust. Hard Work # It is very important that a student\u0026rsquo;s will must develop to a higher level because they must fully master themselves first to be able to master others. Every time someone is full of hope and belief, they will become stronger in carrying out their work. Simplicity # By applying the principle of a simple life, students are trained to prioritize needs over their desires. The principle of a simple life can overcome the problems of social inequality, envy, jealousy, greed, selfishness, and other negative attitudes. The principle of a simple life also prevents someone from excessive desires. Courage # The value of courage can be developed by students in life on campus and outside campus. Among others, it can be realized in the form of daring to say and defend the truth, daring to admit mistakes, daring to be responsible, and so on. Justice # The value of justice can be developed by students in daily life, both on campus and outside campus. Among others, it can be realized in the form of always giving sincere praise to achieving friends, giving suggestions for improvement and encouragement to underachieving friends, not choosing friends based on social background, etc. Corruption Countermeasures # Establishment of Anti-Corruption Agencies Corruption Prevention in the Public Sector Social Prevention and Community Empowerment Development and creation of various Legal Instruments supporting the Prevention and Eradication of Corruption Monitoring and Evaluation International Cooperation ","date":"6 June 2026","externalUrl":null,"permalink":"/articles/2026-06-character-building-part-6-anti-corruption-education/","section":"Articles","summary":"rottenness, badness, depravity, dishonesty, bribability, immorality, deviation from purity","title":"Character Building: Anti-Corruption Education","type":"articles"},{"content":"","date":"6 June 2026","externalUrl":null,"permalink":"/tags/corruption/","section":"Tags","summary":"","title":"Corruption","type":"tags"},{"content":" Family Basis of family formation Forms of marriage Marriage in terms of the number of husbands/wives Marriage in terms of the origin of husband and wife: Exogamous marriage Endogamous marriage Homogamous marriage Heterogamous marriage Other forms: Lineage Residence In-group (close group) Family Basis of family formation Forms of marriage Marriage in terms of the number of husbands/wives\nMonogamy is a form of marriage where the husband does not marry another woman and the wife does not marry another man. In short, monogamy is a marriage between one man and one woman without any other marital ties. Polygamy is a form of marriage in which a man marries multiple women or a woman marries multiple men. Polygamy can be classified into two types:\nPolygyny: One man has many wives. It is called sororal polygyny if the wives are biological sisters and non-sororal if the wives are not sisters. Polyandry: One woman has many husbands. It is called fraternal polyandry if the husbands are brothers and non-fraternal if the husbands are not related as biological brothers. Viewed from the origin of the husband and wife:\nExogamous marriage is a marriage between different ethnicities, clans, tribes, or kinships. Exogamy can be divided into two types: Asymmetrical connubium exogamy occurs when two or more environments act as givers or receivers of brides, such as in the Batak and Ambon tribal marriages. Symmetrical connubium exogamy is when two or more environments exchange partners for their youths. Endogamous marriage\nEndogamy is a marriage within the same ethnicity, clan, tribe, or kinship environment. Homogamous marriage\nHomogamy is a marriage between the same social class groups, such as the child of a merchant marrying the child of another merchant. Heterogamous marriage\nHeterogamy is a marriage between different social classes, for example, a nobleman\u0026rsquo;s child marrying a farmer\u0026rsquo;s child. Other forms: Lineage Residence Cross Cousin\nCross Cousin is a form of marriage between the children of siblings of different sexes. Parallel Cousin\nParallel Cousin is a form of marriage between the children of siblings of the same sex. Elements of Culture # Kluckhohn argued there are 7 elements of culture:\nHuman life equipment and supplies Livelihood and economic systems Societal systems Language Arts Knowledge systems Religion Value Culture # Regarding the social environment, students need to be introduced to a value culture concerning social conditions that tend to lack respect for value culture, with the spread of violence in society and even in families. Displayed 12 living values. Personal Reflection Material # What cultures influence your life the most right now? Name exactly what they are, and why they have a significant impact on you. What personal habits do you want to cultivate in your life (which could also influence others, for example, your family), and what personal habits do you want to change or leave behind because they do not help improve your relationships with others? Social Interaction # Social Communication # Communication from the Latin word, communicatio, means the act of informing, notification, sharing, exchanging.\nSocial comes from the Latin word, socius, which means friend or companion.\nSocial communication can generally be defined as a form of interaction between individuals or groups carried out verbally or non-verbally with the intention of conveying a message, in a way that can be understood by both parties and is capable of producing a response that can be understood by both parties.\nA. Definition of Value # Explicitly, value can be understood as a conception internalized by an individual/group regarding what is important or less important, what is better or worse, what is more right or less right.\nB. Definition of Norm # Norm in general: a measuring tool made from various basic materials with different sizes and shapes. Norm as a rule of assessment consideration. Types of Behavioral Norms: # Specific norms General norms: Norms of politeness Legal norms Moral norms Connection between Values and Norms # Norm as a manifestation of value Norm as a protector of value Norm that has the potential to hide or blur the value Social conflict: opposition, bickering, disputes, or disagreement between groups in society.\nConflicts can occur between community groups or conflicts that arise in interpersonal relationships.\nConflicts between community groups occur due to:\nConflicts between religious groups Inter-ethnic conflicts How to manage conflict: Johnson in Supratiknya, (1999) and Hardjana, (2001)\nShark Style: likes to conquer opponents by forcing them to accept the conflict solution they propose. Owl Style: conflict is a problem that must be solved in a way that aligns with personal goals as well as the opponent\u0026rsquo;s. Fox Style: likes to seek compromise. Turtle Style: withdraws and hides behind its shell to avoid conflict. Teddy Bear Style: this style believes that conflict should be avoided for the sake of harmony. Guidelines for choosing conflict management methods:\nIf the goal is important, but a good relationship is not important, use the Shark Style. If the goal is very important and a good relationship is also very important, use the Owl Style. If the importance of the goal is moderate and the relationship is also moderately important, utilize the Fox Style. If the goal is not important and a good relationship is also not important, choose the Turtle Style. If the goal is not important, but a good relationship is important, implement the Teddy Bear Style. Developing a Positive Value Habitus # (Personal, Family, Environment, etc.)\nWhat is VALUE? # A good quality attached to a thing (object, activity). Something sought after, pursued, fought for. That which becomes a guideline, principle, life goal. Is the foundation and prerequisite for the realization of a harmonious, peaceful, and prosperous community. Life Values # What is the most fundamental value that makes humans live? Is there a universal life value? Meaning one that exists in every living creature? Can this value be experienced? Can it be explained? Roots of Life Values # Every creation has living values. In animals, these values are embedded in the life instincts they possess. In humans, the value is in the form of psychic abilities (thinking, feeling, and acting). These values can be transferred more effectively through direct experience.\nLife values are not enough to be explained with words. Instead, they are experienced directly. To experience them, we need to go inside ourselves. Absolute requirement: silence and at the same time earnestness. Value Activities # Value Awareness Value Exploration: Sharing Positive Values Sharing Value Experiences Positive Spiral # Positive Behavior\nthat is continuously repeated or a positive environmental condition forms a positive spiral.\nNegative Spiral # Negative Behavior\nthat is continuously repeated or habituated forms a negative spiral.\nHow to Develop a Positive Spiral # Create a safe and loving environment.\nProvide Models of value-laden behavior for children.\nChildren need adults (models) who can demonstrate these values.\nEncourage children to develop step by step.\nTechniques for adjusting the level of support \u0026amp; guidance to the child\u0026rsquo;s abilities.\nUpper Limit Level of responsibility that a child can handle with the teacher\u0026rsquo;s (facilitator\u0026rsquo;s) help Lower Limit Level of problem difficulty that a child can overcome with their own efforts Give Praise to Children when they perform valuable and expected behaviors.\nTrain children in social skills such as managing conflict and developing positive personal relationships.\nSkills on how to learn specific topics.\nEfforts to instill values, continuously without stopping in togetherness\u0026hellip; slowly will successfully be planted deeper and deeper, forming traits, habits, and personality.\n","date":"5 June 2026","externalUrl":null,"permalink":"/articles/2026-06-character-building-part-5-social-enviroment-and-social-interaction/","section":"Articles","summary":"The role of the social environment and social interaction in character building, covering the concept of family, values and norms, conflict management styles, and how to build a habitus of positive values.","title":"Character Building: Social Environment \u0026 Social Interaction","type":"articles"},{"content":"","date":"5 June 2026","externalUrl":null,"permalink":"/tags/conflict-management/","section":"Tags","summary":"","title":"Conflict Management","type":"tags"},{"content":"","date":"5 June 2026","externalUrl":null,"permalink":"/tags/family/","section":"Tags","summary":"","title":"Family","type":"tags"},{"content":"","date":"5 June 2026","externalUrl":null,"permalink":"/tags/habitus/","section":"Tags","summary":"","title":"Habitus","type":"tags"},{"content":"","date":"5 June 2026","externalUrl":null,"permalink":"/tags/social-environment/","section":"Tags","summary":"","title":"Social Environment","type":"tags"},{"content":"","date":"5 June 2026","externalUrl":null,"permalink":"/tags/social-interaction/","section":"Tags","summary":"","title":"Social Interaction","type":"tags"},{"content":"","date":"5 June 2026","externalUrl":null,"permalink":"/tags/values-and-norms/","section":"Tags","summary":"","title":"Values and Norms","type":"tags"},{"content":"","date":"4 June 2026","externalUrl":null,"permalink":"/tags/attitude/","section":"Tags","summary":"","title":"Attitude","type":"tags"},{"content":" Understanding Motivation # The strength or driving force that moves and directs a person\u0026rsquo;s will and behavior, along with all their power, to achieve their desired goals, which arises from the desire to fulfill their needs.\nMaslow\u0026rsquo;s Hierarchy of Needs: # Physiological needs Safety and security needs Love and belonging needs Esteem needs Self-actualization needs How to Motivate Yourself # Motivate yourself through self-confidence:\na. Avoid making excuses\nb. Use your imagination\nc. Don\u0026rsquo;t be afraid to fail\nd. Pay attention to your appearance Motivate yourself by setting goals Motivate yourself by compiling a record of past successes 5 Basic Human Psychological Needs # Secure Valuable Worthy Understood Loved These needs are required by everyone at all times and everywhere.\nWhat happens when\nA child feels secure A teenager feels secure An adult feels secure When Feeling Insecure # Age Category EFFECT CAUSE SOLUTION CHILD - Anxious \u0026amp; restless\n- Becomes fearful\n- Crying - Lack of parents\u0026rsquo; attention\n- Domestic conflict - Needs affection\n- Adequate attention TEENAGER - Becomes rebellious\n- Despair\n- Lacks self-confidence\n- Aloof, quiet\n- Falls into drugs\n- Aggressive, emotional - Lack of parents\u0026rsquo; attention\n- Negative environment\n- Parents showing favoritism - Needs affection\n- Attention\n- Needs appreciation ADULT - Becomes quick-tempered\n- Brutal, aggressive\n- Lack of self-control - Economic pressure\n- Lots of debt\n- Family conflict\n- Conflict with parents - Needs attention\n- Needs appreciation\n- Needs a religious attitude What happens when\nA child feels valuable A teenager feels valuable An adult feels valuable When Feeling Worthless # Age Category EFFECT CAUSE SOLUTION CHILD - Crying\n- Aloof - Lack of attention\n- Desires unmet - Needs affection\n- Adequate attention\n- Give praise TEENAGER - Aloof\n- Refuses to communicate\n- Runs away from home\n- Lacks self-confidence\n- Tends to act negatively - Desires unmet\n- Negative environment - Needs affection\n- Attention\n- Needs appreciation ADULT - Indifferent\n- Envious\n- Quick-tempered - Lack of appreciation\n- Family pressure\n- Inability to control oneself - Needs attention\n- Mutual respect What happens when\nA child feels appreciated A teenager feels appreciated An adult feels appreciated When Not Appreciated # Age Category EFFECT CAUSE SOLUTION CHILD - Disappointed\n- Shy, insecure, quiet\n- Disobedient, sad\n- Rebellious - Not listened to\n- Not praised\n- Ignored - Express opinions\n- Loving dialogue TEENAGER - Dissatisfied, indifferent\n- Passive and stressed\n- Seeking an escape\n- Running away from home - Not involved\n- Always scolded\n- Constantly nagged - Motivate\n- Praise\n- Communication ADULT - Getting drunk\n- Pessimistic\n- Quick-tempered - Lack of appreciation\n- Family pressure\n- Inability to control oneself - Needs attention\n- Mutual respect The Power of Feeling Worthy # VALUABLE, for who they are. They feel valuable because of their existence as a human being, not because of their LABEL.\nWORTHY, the feeling someone gets from receiving appreciation for what they have done (their work).\nDIFFERENCE: a person feels worthy because their work is accepted (appreciated) by others; whereas feeling VALUABLE is felt by a person because of their own intrinsic value, not because of what they do.\nJane encourages Forrest Gump through her greetings, her companionship, and her motivation\u0026hellip;\nWhat happens when\nA child feels understood A teenager feels understood An adult feels understood When Not Understood # Age Category EFFECT CAUSE SOLUTION CHILD - Disappointed\n- Crying\n- Lonely\n- Refusing to study - Lack of attention\n- Ignored - Listening\n- Communication TEENAGER - Dissatisfied, indifferent\n- Passive and stressed\n- Disappointed, rebellious\n- Smoking, getting drunk\n- Refusing to study - Excessive demands\n- Blamed\n- Constantly cornered - Listening\n- Fair\n- Open ADULT - Domestic quarrels\n- Lack of self-confidence\n- Emotional, indifferent\n- Cheating\n- Mutual suspicion - Large number of children\n- Customs \u0026amp; culture\n- Mutual suspicion - Mutual respect\n- Loving each other The Burnt Toast Case # A Reflection on Experience\nAn education expert asked three mothers chosen from the participants of a training session.\n\u0026ldquo;Suppose one morning you are preparing toast for your husband\u0026rsquo;s breakfast, suddenly the phone rings, your child cries, and the toast gets burnt. Then your husband comments: \u0026lsquo;When will you learn to toast bread without burning it?\u0026rsquo; : Education Expert (EE)\nHow do you think you would react?\u0026rdquo;\n\u0026ldquo;I would throw the bread right in his face!\u0026rdquo; : First Mother\n\u0026ldquo;I would tell him, \u0026lsquo;Get up and toast the bread yourself!\u0026rsquo;\u0026rdquo; : Second Mother\n\u0026ldquo;I think I would cry.\u0026rdquo; : Third Mother\n\u0026ldquo;Then how would you feel towards your husband?\u0026rdquo; : Education Expert (EE)\n\u0026ldquo;Angry, hateful, and feeling mistreated.\u0026rdquo; : All Mothers\n\u0026ldquo;And if your husband goes to work, would it be easy for you to tidy up the house and shop for daily necessities with an open heart?\u0026rdquo; : Education Expert (EE)\n\u0026ldquo;No. I would feel completely stifled all day.\u0026rdquo; : First Mother\n\u0026ldquo;I wouldn\u0026rsquo;t buy anything for the house that day.\u0026rdquo; : Second Mother\n\u0026ldquo;Let\u0026rsquo;s say the toast was indeed burnt. But your husband said to you, \u0026lsquo;You look tired this morning\u0026hellip; honey, the phone rang, our child cried, and now the toast is burnt.\u0026rsquo; What do you think your reaction would be?\u0026rdquo; : Education Expert (EE)\n\u0026ldquo;I wouldn\u0026rsquo;t believe it was my husband speaking.\u0026rdquo; : First Mother\n\u0026ldquo;I would feel happy.\u0026rdquo; : Second Mother\n\u0026ldquo;I would feel glad, and I think I would hug him.\u0026rdquo; : Third Mother\n\u0026ldquo;Why are you glad? Doesn\u0026rsquo;t the child still cry, the phone ring, and the toast is burnt\u0026hellip;?\u0026rdquo; : Education Expert (EE)\n”We wouldn\u0026rsquo;t care about any of that.\u0026quot; : All Mothers\n\u0026ldquo;So what is different this time?\u0026rdquo; : Education Expert (EE)\n\u0026ldquo;I feel my husband is very kind because he didn\u0026rsquo;t blame me, but instead understood my feelings. He is on my side, not against me.\u0026rdquo; : First Mother\n\u0026ldquo;If your husband goes to work, would it be easy for you to do household chores?\u0026rdquo; : Education Expert (EE)\n\u0026ldquo;I would carry out my chores happily.\u0026rdquo; : Second Mother\n\u0026ldquo;Now, let\u0026rsquo;s talk about the third type of husband. After the toast burnt, he looked at his wife and said, \u0026lsquo;Here, let me teach you how to toast bread!\u0026rsquo;\u0026rdquo; : Education Expert (EE)\n\u0026ldquo;No. That kind of husband is even worse than the first one because he thinks I\u0026rsquo;m stupid.\u0026rdquo; : All Mothers\nAt that moment, the education expert said:\n\u0026ldquo;What if what your husband did to you, you did to your children and your students?\u0026rdquo; : Education Expert (EE)\n\u0026ldquo;Now I understand your purpose for opening this dialogue. I do always criticize my children, my students, without realizing it. I always say, ”You\u0026rsquo;re grown up, you should know that what you did was wrong.” I now know why they get angry at my words.\u0026rdquo; : First Mother\n\u0026ldquo;I also always tell my children, my students \u0026lsquo;Let me show you how to do this and that.\u0026rsquo; And often they get angry when they hear it.\u0026rdquo; : Second Mother\n\u0026ldquo;I often criticize my children \u0026amp; my students. It has become normal for me. And I often repeat the sentences that my parents and teachers used to say to me. Back then, I also really disliked hearing them say it.\u0026rdquo; : Third Mother\n\u0026ldquo;If so, let\u0026rsquo;s find out what we can learn from this burnt toast case. What helped change your feelings from hate to gladness towards your husband?\u0026rdquo; : Education Expert (EE)\n\u0026ldquo;I believe the reason is that my husband DID NOT BLAME me, but he UNDERSTOOD my feelings.\u0026rdquo; : First Mother\nbasic human needs: Secure, valuable, understood, appreciated, and loved \u0026ldquo;Without criticizing me.\u0026rdquo; : Second Mother\nbasic human needs: Secure, valuable, understood, appreciated and loved \u0026ldquo;Without dictating me.\u0026rdquo; : Third Mother\nbasic human needs: Secure, valuable, understood, appreciated and loved \u0026ldquo;Now you all understand that what you want from your husbands is also what OUR CHILDREN, our students, our husbands, our wives, and our colleagues want from us, namely: understanding and empathy.\u0026rdquo; : Education Expert (EE)\nEmpathy # graph TD Root((EMPATHY)) Root --\u003e A[Secure] Root --\u003e B[Valuable] Root --\u003e C[Appreciated] Root --\u003e D[Understood] Root --\u003e E[Loved] Listening with the heart, looking with eyes of love. Purely accepting, trying to absorb and not analyzing with the mind.\nHere lies the difference between SMART AND WISE people\nSmart and Wise People # EMPATHY means listening with the heart, full of love. Until understanding others as they are: what they think, what they feel, and why they act that way.\nIt is different when listening with the mind: analyzing, looking for weaknesses, arguing, judging, and ultimately wanting to prove that the other is wrong, and their own opinion is right.\nSmartness and Wisdom. Like stones, crashing when put together, whereas water actually unites, mutually absorbing each other.\nLiving Above the Line\nSECURE, WORTHY, VALUABLE, UNDERSTOOD, LOVE\ngraph TD classDef pusat fill:#f9aa33,stroke:#333,stroke-width:3px,font-weight:bold,color:black; classDef atas fill:#d4edda,stroke:#28a745,stroke-width:2px,color:black; classDef bawah fill:#f8d7da,stroke:#dc3545,stroke-width:2px,color:black; %% Titik Tengah Center([R E S P O N S I B I L I T Y]):::pusat %% Elemen Atas (Positif) A1(Responsible):::atas A2(Choice):::atas A3(Freedom):::atas A4(Solution):::atas A5(Willingness):::atas A1 --- Center A2 --- Center A3 --- Center A4 --- Center A5 --- Center %% Elemen Bawah (Negatif) Center --- B1(Blaming):::bawah Center --- B2(Making Excuses):::bawah Center --- B3(Justifying):::bawah Center --- B4(Denying):::bawah Center --- B5(Giving Up):::bawah AFRAID, INCAPABLE, NOBODY, FEELING ALONE, HATE \u0026amp; REVENGE\nLiving Below the Line\n","date":"4 June 2026","externalUrl":null,"permalink":"/articles/2026-06-character-building-part-4-motivation-attitude-and-social-behavior/","section":"Articles","summary":"The strength or driving force that moves and directs a person’s will and behavior, along with all their power, to achieve their desired goals, which arises from the desire to fulfill their needs.","title":"Character Building: Motivation, Attitude, and Social Behavior","type":"articles"},{"content":"","date":"4 June 2026","externalUrl":null,"permalink":"/tags/motivation/","section":"Tags","summary":"","title":"Motivation","type":"tags"},{"content":"","date":"4 June 2026","externalUrl":null,"permalink":"/tags/social-behavior/","section":"Tags","summary":"","title":"Social Behavior","type":"tags"},{"content":" Self Development # Meaning and Goals of Self Development # The meaning of self-development is:\nA deliberate, continuous, and unceasing effort, carried out in various ways and forms, to enable the realization of one\u0026rsquo;s physical and spiritual potential in a good and optimal way, leading a person to true maturity. This great endeavor is a consequence of one\u0026rsquo;s position as a human being endowed with reason.\nThe goals to be achieved through this self-development effort are:\nThe optimal realization of one\u0026rsquo;s physical and spiritual potential towards the good, leading a person to a mature level, enabling them to build better relationships with themselves, the world, others, and God.\nThis effort involves the human being entirely and uses the available support systems.\nWays to Develop Oneself\nKnowing and accepting oneself Having a strong will to develop oneself Utilizing open possibilities Learning from mistakes Important aspects that need to be developed as concrete forms of self-development are:\nHealthy mental state Personal integrity Independent, creative, and innovative Self-motivation Mental Strength and Resilience # The following exposition is taken from the book Adversity Quotient, Turning Obstacles into Opportunities, written by Paul G. Stoltz, 2000.\nAdversity Quotient (AQ): The primary determinant for success Quitters, Campers, and Climbers Adversity Response Profile (ARP): The ability to face problems and respond to and deal with every issue. Definition of Adversity Quotient (AQ) # After 19 years of extensive research and reviewing over 500 references, Paul G. Stoltz proposed a new intelligence besides IQ, EQ, and SQ, namely AQ.\nAccording to him, AQ is the intelligence to overcome adversity. It\u0026rsquo;s about how to turn obstacles into opportunities. In other words, a person with a high AQ will be more capable of realizing their goals compared to someone with a low AQ.\nAs an illustration, Stoltz uses the terminology of mountain climbers. In this regard, Stoltz divides mountain climbers into three categories:\nQuitters (those who give up). Quitters are those who merely survive. They easily despair and give up halfway. Campers (camping halfway). They dare to take on jobs with risks, but the risks are safe and measurable. They are easily satisfied and stop halfway. Climbers (climbers who reach the top). They dare to face risks and complete their tasks. For the world of work and life, it is very clear. Many workers with low intellectual intelligence (IQ) can defeat those with high IQs who lack the spirit and courage to face problems and take action. With AQ, we can analyze how employees/workers are able to turn challenges into opportunities that will increase productivity and company profits.\nThat was a brief overview of the Adversity Quotient. What about you?\n“winner never quits and quitter never wins”\n“A winner never quits and a quitter never wins\u0026quot;\nDavid Campbell Ph.D states that creativity is an activity that produces results containing the characteristics of being:\ninnovative useful understandable Developing Oneself into a Resilient Person with the 7 Habits of Highly Effective People # Character is a Collection of Various Habits # What is an effective person? # flowchart LR %% Node Induk PRIBADI[\"PERSON\"] %% Node Watak (Kotak biru muda, teks list di bawahnya) WATAK[\"CHARACTER✓ Individual quality✓ Collection of habits✓ Long-term oriented\"] %% Node Penampilan (Kotak teal kehijauan, teks list di bawahnya) PENAMPILAN[\"APPEARANCE✓ Behavior : public image✓ Dress code✓ Socializing techniques✓ Short-term oriented\"] %% Hubungan Panah PRIBADI --\u003e WATAK PRIBADI --\u003e PENAMPILAN %% Styling: Menghilangkan kotak bawaan Mermaid supaya desain HTML-nya yang muncul classDef rootNode fill:none,stroke:none,font-size:28px,font-weight:bold; classDef clearNode fill:none,stroke:none; class PRIBADI rootNode; class WATAK,PENAMPILAN clearNode; Effectiveness (The Goose and the Golden Eggs) # Effective Person, If P/PC is Balanced P = Product (Golden Eggs) PC = Production Capability (The Goose) Effective # Achieving Results Growing and Developing What is developing? Our assets # Physical: house, vehicle, furniture, etc. Financial: money, savings, etc. Human: Body, mind, emotions How to do it? # Balancing between:\nProduction and Production Capacity\n(Aesop: The goose and the golden eggs)\nShifting Paradigms # Changing perspective from ordinary to more complete and useful Changing behavior and attitude in line with the new perspective Stopping old habits Aligning the map (value system) with the compass (correct principles) Salary Philosophy # Habit 1 - Be Proactive # Principles of Personal Vision\nReactive Model # Proactive Model # Being Proactive # Take initiative # be aggressive, don\u0026rsquo;t wait, do something Act, don\u0026rsquo;t wait to be told to act Be part of the solution, not part of the problem Don\u0026rsquo;t say: can\u0026rsquo;t, must, if only,\nbut say: I choose, prefer, will Proactive = Responsible # Not blaming circumstances Not blaming the environment Result of conscious choice Based on value systems (values) Circle of Influence # Circle of Influence Vs Circle of Concern\nPROACTIVE MODEL - REACTIVE MODEL Proactive Person # Actions are Controlled Responsible Focus on the “Circle Of Influence” Complete tasks thoroughly Not Defensive Habit 2 - Begin with the End in Mind # Principles of Personal Leadership\nPersonal Leadership # flowchart BT %% Node Bawah I[\"imagination\"] S[\"conscience\"] %% Node Atas T[\"All Thingsare Created Twice(Segala Sesuatu Diciptakan Dua Kali)\"] %% Alur Panah I --\u003e T S --\u003e T %% Styling Text Only (Tanpa Kotak) classDef textOnly fill:none,stroke:none,color:#fff; classDef topText fill:none,stroke:none,font-weight:bold,color:#fff; class I,S textOnly; class T topText; Results of Habit 2 # Having Direction in Life Planning Every Activity Maintaining Long-Term Focus Providing Direction for Work Groups Discovering Personal Mission # Personal Mission Statement:\nWhat is My Purpose in Life? What is Most Valuable in My Life? What Talents Do I Possess? What Do I Want to Achieve at the End of My Life? The Importance of Understanding Our Roles\nPMS is made by outlining Roles Roles are the key to creating a balanced life Within each Role, there are Goals Goals: Short-term, medium, long-term Goals must align with the PMS How to Create a Personal Mission Statement (PMS) # Determine who/what influences our lives Determine Your Life Roles (in family, school/office, society) Are you satisfied with these realities? Determine who you want to be? Write a PMS draft (then revise, evaluate) Habit 3 - Put First Things First # Principles of Personal Management\nblock-beta columns 7 %% Label Header Atas space:1 Col1[\"Urgent\"]:3 Col2[\"Not Urgent\"]:3 %% Baris Pertama (Penting) Row1[\"Important\"]:1 Q1[\"I. CRISISPressing problemsDeadline-driven projects\"]:3 Q2[\"II. PLANNING ACTIVITIESRelationship buildingPreparationCrisis prevention\"]:3 %% Baris Kedua (Tidak Penting) Row2[\"Not Important\"]:1 Q3[\"III.MeetingsUrgent mattersRegular activities\"]:3 Q4[\"IV. TIME WASTERSIrrelevant mail and phone callsWatching TV\"]:3 %% Styling classDef noBox fill:none,stroke:none,font-weight:bold,font-size:18px,color:#000; classDef gridBox fill:#e0f7fa,stroke:#000,stroke-width:2px,color:#000,font-weight:bold,font-size:16px,line-height:1.5; class Col1,Col2,Row1,Row2 noBox; class Q1,Q2,Q3,Q4 gridBox; block-beta columns 4 %% Baris Pertama Q1[\"I. Results♦ Stress♦ Burnout♦ Crisis♦ Easily angered\"]:3 Q2[\"II\"]:1 %% Baris Kedua Q3[\"III\"]:3 Q4[\"IV\"]:1 %% Styling classDef box fill:#ffffff,stroke:#000,stroke-width:2px,color:#000,font-size:18px; class Q1,Q2,Q3,Q4 box; block-beta columns 2 %% Baris Pertama Q1[\"I\"] Q2[\"II\"] %% Baris Kedua Q3[\"III. Results♦ Short-term focus♦ Crisis♦ Chameleon\"] Q4[\"IV\"] %% Styling classDef box fill:#ffffff,stroke:#000,stroke-width:2px,color:#000,font-size:18px; class Q1,Q2,Q3,Q4 box; block-beta columns 2 %% Baris Pertama Q1[\"I\"] Q2[\"II\"] %% Baris Kedua Q3[\"III\"] Q4[\"IVResults♦ Lack of responsibility♦ Fired from jobs♦ Highly dependent on others\u0026nbsp;\u0026nbsp;or institutions\"] %% Styling classDef box fill:#ffffff,stroke:#000,stroke-width:2px,color:#000,font-size:18px; class Q1,Q2,Q3,Q4 box; block-beta columns 2 %% Baris Pertama Q1[\"\"] Q2[\"II. Results♦ Vision perspective♦ Balance♦ Discipline\"] %% Baris Kedua Q3[\"\"] Q4[\"\"] %% Styling classDef box fill:#ffffff,stroke:#000,stroke-width:2px,font-size:18px; class Q1,Q2,Q3,Q4 box; Results of Habit 3 # Focus on priority issues Discipline Avoiding Crises Delegating Tasks Coordinating effort in task execution Summary of Habits 1, 2, 3 # To be Proactive, Values Need to be Clearly Defined Writing a PMS Focuses on Values Achieving P-M Depends on the Chosen Roles and Goals and the Effectiveness of their Achievement Evaluate Roles and Goals According to their Priorities Salary Philosophy # Emotional Bank Account (EBA) (Paradigm II) # As You Sow, So Shall You Reap Emotional Account With Oneself And Others Grows When There is \u0026ldquo;Trust\u0026rdquo;, Dies When Betrayed Must Be \u0026ldquo;Sincere\u0026rdquo; _ Genuine Expected to Always Sow Kindness – Charity – Love He Who Sows the Wind Will Reap the Whirlwind Emotional Bank Account # Deposits-debit vs Withdrawals-credit\nEBA is filled little by little every day\nLove vs jealousy, envy, spite Keeping promises vs breaking promises Meeting expectations vs disappointing Honest vs Lying Loyal vs Betrayal Apologizing vs Pride The law of love and the law of life: Unconditional love brings life\n6 Behaviors that Build EBA # Understanding Others Attending to the Little Things Keeping Commitments Clarifying Expectations Showing Personal Integrity Apologizing Sincerely Habit 4 - Think Win/Win # Principles of Personal Leadership\n6 Basic Paradigms of Human Interaction # W-W : Seeking mutually beneficial and satisfying agreements; not my way or your way but the best way W-L : Being a winner or star tends to be authoritarian, showing power. This is the most frequently used attitude L-W : Being a good child; saying yes but not executing, suffering inside L-L : Egoistic, conflict, divorce, the attitude of a dependent or quiet person Win : Self-centered, not caring about others, the important thing is to win No deal: agreeing to disagree, no expectations whatsoever 6 Paradigms of Interpersonal Interaction: # Paradigm Description Win-Win Mutual benefit cooperation Win-Lose Competition Lose-Win Competition Lose-Lose War Win Survival from disaster Lose Victim of disaster Win or No Deal Postponing transaction 5 Dimensions of Win-Win Interaction # CHARACTER (integrity, maturity, abundance mentality) RELATIONSHIPS AGREEMENTS SUPPORTIVE SYSTEMS PROCESSES block-beta columns 3 %% Header Kolom (Sumbu Keberanian) space:1 C1[\"Low Courage\"]:1 C2[\"High Courage\"]:1 %% Baris Pertama (Pertimbangan Tinggi) R1[\"High Consideration\"]:1 Q1[\"Lose / Win\"]:1 Q2[\"Win / Win\"]:1 %% Baris Kedua (Pertimbangan Rendah) R2[\"Low Consideration\"]:1 Q3[\"Lose / Lose\"]:1 Q4[\"Win / Lose\"]:1 %% Styling Matrix classDef labelBox fill:none,stroke:none,font-weight:bold,font-size:16px,color:#000; classDef gridBox fill:#ffffff,stroke:#000,stroke-width:2px,color:#000,font-weight:bold,font-size:18px; class C1,C2,R1,R2 labelBox; class Q1,Q2,Q3,Q4 gridBox; Think Win-Win # Have an abundance mentality Share credit for successes Balance courage with consideration Set up win-win agreements Habit 5 - Seek First to Understand, Then to be Understood # Principles of Emphatic Communication\nCommunication Process Model # flowchart LR Umpan[\"Feedback\"] Gangguan[\"Interference(Noise)\"] subgraph Pengirim[\" \"] direction LR Pikiran[\"Thought\"] --\u003e Encoding[\"Encoding\"] end Saluran[\"Channel\"] subgraph Penerima[\" \"] direction LR Pesan[\"Receiving message\"] --\u003e Decoding[\"Decoding\"] --\u003e Dipahami[\"Understood\"] end %% Alur Utama Encoding --\u003e Saluran --\u003e Pesan %% Alur Umpan Balik (Atas) Encoding --\u003e Umpan Decoding --\u003e Umpan %% Alur Gangguan (Bawah) Gangguan --\u003e Pengirim Gangguan --\u003e Saluran Gangguan --\u003e Penerima %% Styling Kotak Transparan \u0026 Putus-putus style Pengirim fill:none,stroke:#fff,stroke-width:1.5px,stroke-dasharray: 4 4 style Penerima fill:none,stroke:#fff,stroke-width:1.5px,stroke-dasharray: 4 4 %% Styling Node Warna Biru Muda Sesuai Gambar classDef boxStyle fill:#e0f7fa,stroke:#000,stroke-width:1px,color:#000,font-size:15px; class Umpan,Gangguan,Pikiran,Encoding,Saluran,Pesan,Decoding,Dipahami boxStyle; 4 Types of Communication # Reading Writing Speaking Listening 5 Levels of Listening # Ignoring Pretending Selective Attentive Empathic Autobiographical Responses # Evaluating Probing (Asking) Advising Interpreting Stages of Empathic Listening # Mimicking Content Rephrasing the Content Reflecting Feeling Rephrasing the Content and Reflecting the Feeling Seek First To Understand, Then To Be Understood # Do not interrupt others Be sensitive to others\u0026rsquo; feelings Seek to fully understand issues Understand work group concerns Communicate clearly Habit 6 - Synergize # Principles of Creative Cooperation\nSynergy? # The whole is greater than the sum of its parts\nSynergy Principles of Creative Cooperation # The Whole Is Greater Than The Sum Of Its Parts 1+1 = 14 Synergy Is The Process Of Seeking The Best Alternative Synergy Values Differences Creating Synergy = Creating Conditions That Support Towards It Namely W-W Attitude, Seeking\nTo Understand And Believing That Combined\nCapabilities Will Obtain The Best Alternative Essence of Synergy # Valuing differences (not protective, not selfish) Respecting differences (not defensive, not politicizing) Building strengths (Not judgmental, not dictating) Compensating for weaknesses (giving more, trusting more) Synergize # Support Responsible Risk Taking Use Other People’s Viewpoints Build Team Unity Search for Alternative Solutions Value other\u0026rsquo;s opinion Habit 7 - Sharpen the Saw # Principles of Balanced Self-Renewal\n4 Areas of Renewal # flowchart TD %% Node dengan teks terbungkus tanda kutip agar aman di versi 11.14.0 Physical[\"PhysicalExercise, nutrition,stress management\"] Social[\"Social / emotionalService, empathy, synergy,intrinsic security\"] Spiritual[\"SpiritualValue clarifications,commitment study \u0026 meditation\"] Mental[\"MentalReading, visualising,planning, writing\"] %% Alur siklus lingkaran Physical --- Social Social --- Spiritual Spiritual --- Mental Mental --- Physical %% Styling warna kotak (slate-purple) dan teks putih agar kontras classDef dimensi fill:#6b729c,stroke:#4b5177,stroke-width:1px,color:#ffffff,font-size:15px,padding:15px; class Physical,Social,Spiritual,Mental dimensi; Sharpening the Physical # Regular meals and balanced nutrition Adequate rest (6-8 hours a day) Sufficient exercise (endurance, flexibility, strength, skill) Routine health checks Sharpening the Spiritual # Learning from nature: observing, listening to nature Reading good spiritual books Praying, meditating Enjoying music and art Sharpening the Mental # Improving education quality: Watching quality TV programs Reading quality books Keeping a diary/journal Scientific writing/authoring Developing specific hobbies Sharpening the Social/Emotional Aspects # Making deposits into the emotional bank account Helping/serving others Giving attention Being friendly Going out together (having a picnic together) Sharing experiences with peers flowchart LR %% Komponen Bentuk (Kiri) S1[\" \"] S2{\" \"} S3{{ }} S4([ ]) %% Komponen Keterangan Teks (Kanan) T1[\"This person is intellectual, objective, rational,and a reliable decision-maker\"] T2[\"This person tends to be neat, dependent, conservative,and steadfast\"] T3[\"This person is not easily satisfied with their position, highly realistic,and a great risk-taker\"] T4[\"This person is intellectual, objective, rational,and a reliable decision-maker\"] %% Menghubungkan bentuk dengan teks secara horizontal S1 --\u003e T1 S2 --\u003e T2 S3 --\u003e T3 S4 --\u003e T4 %% Mengunci posisi vertikal agar tetap sejajar dan tidak berantakan S1 ~~~ S2 ~~~ S3 ~~~ S4 T1 ~~~ T2 ~~~ T3 ~~~ T4 %% Pengaturan gaya visual (Styling) classDef shapeStyle fill:#ccf2f4,stroke:#333,stroke-width:1.5px; classDef textStyle fill:none,stroke:none,font-size:16px,color:#fff; class S1,S2,S3,S4 shapeStyle; class T1,T2,T3,T4 textStyle; ","date":"3 June 2026","externalUrl":null,"permalink":"/articles/2026-06-character-building-part-3-self-development/","section":"Articles","summary":"A deliberate, continuous, and unceasing effort, carried out in various ways and forms, to enable the realization of one’s physical and spiritual potential in a good and optimal way, leading a person to true maturity.","title":"Character Building: Self Development","type":"articles"},{"content":"","date":"3 June 2026","externalUrl":null,"permalink":"/tags/self-development/","section":"Tags","summary":"","title":"Self Development","type":"tags"},{"content":"","date":"2 June 2026","externalUrl":null,"permalink":"/tags/accepting-yourself/","section":"Tags","summary":"","title":"Accepting Yourself","type":"tags"},{"content":" Accepting Yourself # Carl Gustav Jung (1875 – 1961) Wanted to know how to help humans to \u0026ldquo;know themselves\u0026rdquo; accurately, more objectively, and deeply.\nS. Freud (1856 - 1939) At that time, Jung already knew Sigmund Freud\u0026rsquo;s opinion, which stated that human behavior is caused by objects.\nAlfred Adler (1870 – 1937) Jung also already knew Alfred Adler\u0026rsquo;s opinion about human behavior which stated that \u0026ldquo;the determinant agent of human behavior is within the subject itself\u0026rdquo;.\nJung saw that what Freud and Adler proposed was actually the same, just one looking from the \u0026ldquo;extrovert\u0026rdquo; angle (Freud) and the other from the \u0026ldquo;introvert\u0026rdquo; angle (Adler).\nJung conducted research and observation on various human personality traits for more than 20 years, until finally, he proposed the classification of humans into personality types: Extrovert, Introvert, Thinking, Feeling.\nIsabel Myers (1897 – 1980) with her mother Katharyn Briggs (1875 – 1968) studied Jung\u0026rsquo;s theory and spent 40 years making observations on human personality types based on Jung\u0026rsquo;s theory.\nThey finally created a psychological test that can classify humans into personality types, according to Jung\u0026rsquo;s theory. Thus the test was born: Myers-Briggs Type Indicator (MBTI).\nMyers and Briggs strengthened and expanded Carl Gustav Jung\u0026rsquo;s findings regarding: extrovert-introvert, sensing-intuitive, thinking-feeling, and judging-perceiving.\nThe combination of the four preferences above produces 16 human personality types, which contain potential, aptitude, and talent, as well as the weaknesses contained within them.\nHave you ever compared yourself to others, for example, why am I not as pretty as my sister, or why am I not as smart as my friend, etc.\nHave you ever wished, for example, if only I were as pretty as her, if only I were as smart as him, how happy I would be.\nGenerally, people who compare themselves with others tend to see themselves as the unfortunate party, while the other person is seen as the lucky, fortunate, happy party, etc.\nDefinition of Accepting Yourself # Accepting Yourself is where we accept all our weaknesses and strengths or accept everything that is within us, accepting everything that has happened in our lives and to ourselves. So that our attitude is to see ourselves as we are and treat ourselves well accompanied by gratitude, joy, and pride while continuing to strive for progress.\nThe Danger of Rejecting Oneself # The result of comparing ourselves to others makes us forget to look at ourselves.\nDisappointed in oneself and hopeless.\nWe are as we are, but we don\u0026rsquo;t stay that way, we have to grow.\nWays to Accept Yourself # Use a new paradigm glasses Set realistic standards or targets Spend time with positive people Read self-development books Do something that makes you like yourself more. Use positive words to yourself. Be grateful for what you have. Benefits of Being Yourself # The mind becomes clear Enjoying life Knowing your potential easily Achieving success RAISING YOUR PERSONALITY QUOTIENT, INDIVIDUALS, TEAMS and ORGANIZATIONS\nHow to Understand Yourself # Preference Differences # flowchart LR %% Category 1: E vs I E([Extravert]) -.- I([Introvert]) %% Category 2: S vs N S([Sensing]) -.- N([iNtuition]) %% Category 3: T vs F T([Thinking]) -.- F([Feeling]) %% Category 4: J vs P J([Judging]) -.- P([Perceiving]) %% Styling Colors (matching image) classDef extra fill:#fbc02d,stroke:#f57f17,stroke-width:1px,color:black,font-size:18px; classDef intro fill:#f57c00,stroke:#e65100,stroke-width:1px,color:white,font-size:18px; classDef sens fill:#c8e6c9,stroke:#81c784,stroke-width:1px,color:black,font-size:24px,font-weight:bold; classDef intu fill:#00e676,stroke:#00c853,stroke-width:1px,color:black,font-size:24px,font-weight:bold; classDef thin fill:#90caf9,stroke:#42a5f5,stroke-width:1px,color:black,font-size:24px,font-weight:bold; classDef feel fill:#2979ff,stroke:#2962ff,stroke-width:1px,color:black,font-size:24px,font-weight:bold; classDef judg fill:#f48fb1,stroke:#d81b60,stroke-width:1px,color:black,font-size:18px; classDef perc fill:#880e4f,stroke:#4a148c,stroke-width:1px,color:white,font-size:24px,font-weight:bold; %% Applying Style class E extra; class I intro; class S sens; class N intu; class T thin; class F feel; class J judg; class P perc; 16 Type Descriptions # block-beta columns 4 %% Row 1 ISTJ ISFJ INFJ INTJ %% Row 2 ISTP ISFP INFP INTP %% Row 3 ESTP ESFP ENFP ENTP %% Row 4 ESTJ ESFJ ENFJ ENTJ %% Block color styling according to personality group %% SJ (Yellow) classDef sj fill:#d6d688,stroke:#f5f5f5,stroke-width:3px,color:black,font-size:20px,font-weight:bold; %% SP (Bronze/Light Brown) classDef sp fill:#c79a52,stroke:#f5f5f5,stroke-width:3px,color:black,font-size:20px,font-weight:bold; %% NF (Blue) classDef nf fill:#79a2db,stroke:#f5f5f5,stroke-width:3px,color:black,font-size:20px,font-weight:bold; %% NT (Mint Green) classDef nt fill:#9ad3a5,stroke:#f5f5f5,stroke-width:3px,color:black,font-size:20px,font-weight:bold; %% Apply style to each box class ISTJ,ISFJ,ESTJ,ESFJ sj; class ISTP,ISFP,ESTP,ESFP sp; class INFJ,INFP,ENFP,ENFJ nf; class INTJ,INTP,ENTP,ENTJ nt; Types do not rigidly box someone\u0026rsquo;s personality\nThings to Remember # Every type is unique and special; there is no right or wrong. Everyone uses all preferences to some degree. Type does not explain everything. MBTI does not measure skills or abilities. It should not limit you in considering a career, activities, or a relationship. Be aware of the bias of your type to avoid negative stereotyping. ISTJ # Introverted Sensing With Thinking As Auxiliary # Serious and quiet, likes quiet and secure situations. Very careful, systematic, responsible and reliable. Has high concentration, holds firmly to tradition. Organized, hard worker, focuses on the target to be achieved. If already prepared, can directly complete the task. ISTP # Introverted Thinking With Sensing As Auxiliary # Quiet, prefers to be alone, interested in \u0026lsquo;how\u0026rsquo; and \u0026lsquo;why\u0026rsquo; something can happen. Skilled at mechanical - practical things. Dares to take short-term risks. Usually likes sports that involve danger. Loyal to the group and the prevailing \u0026lsquo;value system\u0026rsquo;. Less concerned about rules in getting things done. Good at finding solutions to practical problems. ISFJ # Introverted Sensing With Feeling as Auxiliary # Kind-hearted, hard-working and reliable. Prioritizes the needs of others. Responsible, values tradition and stability. Likes practical and definite things. Aware of their position and role/function. Likes to observe others. Very sensitive to others\u0026rsquo; feelings and likes to serve. ISFP # Introverted Feeling With Sensing As Auxiliary # Quiet, serious, sensitive and kind. Dislikes conflict. Loyal, honest and realistic. Likes beauty and aesthetics. Not interested in playing a role as a leader/boss. Flexible and \u0026lsquo;open-minded\u0026rsquo;. Natural and creative. Enjoys the \u0026lsquo;present moment\u0026rsquo;. INFJ # Introverted Intuition With Feeling As Auxiliary # Thinker, full of ideas and dynamic. Tends to stick to one thing until it is completely finished. Very sensitive to others and cares about their feelings. Holds firmly to the \u0026lsquo;value system\u0026rsquo; they believe in. Always wants to do things right. Tends to work alone rather than taking the role of a leader or follower. INFP # Introverted Feeling With Intuition As Auxiliary # Quiet, thoughtful, and idealistic. Interested in humanitarian issues, always wants to help. Has a strong \u0026lsquo;value system\u0026rsquo;. Very loyal. Easily adaptable, unless it conflicts with their adopted \u0026lsquo;value system\u0026rsquo;. Usually has a talent for writing. Quick to see many possibilities. INTJ # Introverted Intuition With Thinking As Auxiliary # Independent, \u0026lsquo;original\u0026rsquo;, analytical and firm. Expert in translating a concept/theory into real action. Highly values knowledge, competence and structure. Thinks long-term. Sets high standards, both for oneself and others. Spontaneously appears as a leader, but will obey a leader they respect. INTP # Introverted Thinking With Intuition As Auxiliary # Logical, \u0026lsquo;original\u0026rsquo; and creative thinker. Can be very useful regarding theories and ideas. Expert in explaining a theory so it is easy to understand. Highly values knowledge, competence and logic. Tends to be quiet, prefers to be alone, rather difficult to get close to. Less interested in becoming a leader or follower. ESTP # Extraverted Sensing With Thinking As Auxiliary # Friendly, adaptable and quick to act. \u0026lsquo;Doer\u0026rsquo;, focuses on real results. Lives for the here and now, dares to take risks in a short time. Impatient with lengthy and theoretical explanations. Very loyal to their group, but doesn\u0026rsquo;t really care about rules if they want to do something. Good at getting along and socializing. ESTJ # Extraverted Thinking With Sensing As Auxiliary # Practical, organized, and values tradition. Not interested in theories or abstract things unless they can be applied. Has a clear picture of how to do things. Loyal and a hard worker. Responsible. Expert in organizing and running things. A good \u0026lsquo;citizen\u0026rsquo;, values a safe and quiet life. ESFP # Extraverted Sensing With Feeling As Auxiliary # People-oriented, enjoys life, makes everything more exciting and \u0026lsquo;alive\u0026rsquo;. Lives for the moment, likes new experiences. Dislikes impersonal theory and analysis. Likes to serve and help others. Likes to be the center of attention. Has good \u0026lsquo;common sense\u0026rsquo;. ESFJ # Extraverted Feeling With Sensing As Auxiliary # Warm, popular and careful. Prioritizes the needs of others. Has a great sense of responsibility. Values tradition. Likes to serve others. Needs positive support from others. Aware of their role and function. ENFP # Extraverted Intuition With Feeling As Auxiliary # Enthusiastic, idealistic and creative. Versatile. Good at getting along and socializing. Lives life according to the adopted \u0026lsquo;value system\u0026rsquo;. Very excited about new ideas, but gets easily bored with minor details. \u0026lsquo;Open-minded\u0026rsquo; and flexible with broad abilities and interests. ENFJ # Extraverted Feeling With Intuition As Auxiliary # Popular and sensitive, easy to get along with and socialize. Focuses on the external world, really cares about what others feel and think. Sees things from a human perspective, dislikes impersonal analysis. Effective in solving problems related to humans. Likes to serve others, and prioritizes the needs of others. ENTP # Extraverted Intuition With Thinking As Auxiliary # Creative, can think quickly, imaginative. Versatile. Likes to debate. Very excited about new ideas and projects, but tends to ignore routine matters. Honest, open and assertive. Expert in understanding concepts and applying logic in finding solutions. ENTJ # Extraverted Thinking With Intuition As Auxiliary # Assertive and honest, driven to lead. Expert in understanding difficult organizational problems, and providing solid solutions. \u0026lsquo;Smart\u0026rsquo; and has a lot of knowledge, usually good at public speaking. Highly values knowledge and competence, usually impatient with something inefficient or poorly organized. ISTJ/SYSTEMATIC # God, help me to begin to relax about the details of my work tomorrow at 11:41:32.\nISFJ/CAREFUL # God, help me to be calmer and more relaxed, and help me to be able to do it right.\nINFJ/PERFECTIONIST # God, help me not to be a perfectionist. Did I spell the \u0026ldquo;term\u0026rdquo; correctly?\nINTJ/INDEPENDENT # God, help me to be open to others\u0026rsquo; ideas, even though they might be wrong.\nISTP/Critical # God, help me to pay attention to others\u0026rsquo; feelings, even if their feelings are hyperactive.\nISFP/GENTLE # God, help me to stand up for my \u0026ldquo;rights\u0026rdquo;, if You don\u0026rsquo;t mind me asking for that.\nINFP/FLEXIBLE # God, help me to finish everything I have started.\nINTP/INDEPENDENT # God, help me to be a little less independent, but let me do it my own way.\nESTP/PRAGMATIC # God, help me to take responsibility for my actions even for things I didn\u0026rsquo;t mean to do.\nESFP/Friendly # God, help me to handle things more seriously, especially parties and celebrations.\nENFP/ENTHUSIASTIC # God, help me to keep my attention focused on one thing. Oh, but look, there\u0026rsquo;s a bird flying.\nENTP/INNOVATIVE # God, help me establish my work procedures today. But wait a minute, let me adjust it just for a few minutes.\nESTJ/ANALYTICAL # God, help me not to try to do everything. But, if You need my help, just ask, I\u0026rsquo;ll try to help.\nESFJ/HELPER # God, give me patience, and I really need it right now.\nENFJ/TOLERANT # God, help me do what I can, and entrust the rest to You. Would You mind putting this agreement in writing?\nENTJ/Organize # God, help me to be able to run things slowly, and not always rush and hurry. Amen.\n","date":"2 June 2026","externalUrl":null,"permalink":"/articles/2026-06-character-building-part-2-accepting-yourself/","section":"Articles","summary":"Accepting Yourself is where we accept all our weaknesses and strengths or accept everything that is within us, accepting everything that has happened in our lives and to ourselves.","title":"Character Building: Accepting Yourself","type":"articles"},{"content":"","date":"2 June 2026","externalUrl":null,"permalink":"/tags/mbti/","section":"Tags","summary":"","title":"MBTI","type":"tags"},{"content":" Knowing Yourself # Socrates (469-399) Knowing yourself is the beginning of knowing the truth. Socrates called it GNOTHI SEAUTON, (know yourself). A person needs to know who they truly are, so they can know the truth.\nThe truth is the glasses or frame that enables people to communicate with others authentically, without fakeness, without masks.\nA person who has known themselves will easily know others. Because they are able to understand others, they can adapt themselves to the various styles of different people. Thus becoming a personally intelligent person (PQ).\nKnowing yourself means: # Understanding well the fundamental and important things about yourself which include: physical characteristics, personality, character, temperament, and recognizing talents as well as a clear concept of yourself with all its strengths and weaknesses.\nBenefits and goals of knowing yourself: # A person can know their reality, and at the same time their possibilities, and is expected to know what role they must play to realize it. Conversely, a person who does not know themselves, does not know what they should do and develop. Not understanding one\u0026rsquo;s position will make it difficult to direct oneself to one\u0026rsquo;s life goals, thus failing in life\u0026rsquo;s struggles. Ways to Know Yourself: # Being open-minded towards criticism, suggestions from others, and willing to accept things as they are for one\u0026rsquo;s own development; not defensive. Through exploring talents and personality. Through everyday experiences. Through togetherness with others. Through personal reflection and contemplation to formulate one\u0026rsquo;s own portrait. Physically Disabled People Can Succeed # Some examples:\nNick Vujicic (see video clip) Forrest Gump (see video clip) Tony Melendez (see video clip) Forrest Gump, A Successful Disabled Person # Conclusion # Physical awareness makes one conscious to accept oneself as one is. With self-acceptance, one can succeed because they are willing to develop themselves starting from what they have, not blaming their physical condition. Becoming confident, able to make an effort, becoming a blessing to others. Understanding Temperament # There are 4 (four) types of temperaments:\nSanguine Choleric Melancholic Phlegmatic In reality, people do not only have one temperament, there is often a combination: san-chol, san-mel, san-phleg, chol-san, chol-mel, chol-phleg, mel-san, mel-phleg, phleg-san, phleg-chol, and phleg-mel. It could also be a combination of more than that. (Can be continued with MBTI-style personality type recognition exercises) Personality/Character/Temperament # Personality\nIs the dynamic organization within the individual of those psychophysical systems that determine their characteristic behavior and thought in adjusting to their environment (G. Allport).\nCharacter\nIs the totality of conditions and the soul\u0026rsquo;s ways of reacting to stimuli. (G. Ewald) Theoretically, character is divided into (G. Ewald):\na. Innate character\nb. Acquired character\nTemperament\nIs the characteristic phenomena of an individual\u0026rsquo;s emotional nature, including their susceptibility to emotional stimulation, their customary strength and speed of response, the quality of their prevailing mood, and all the peculiarities of fluctuation and intensity of mood. These phenomena are dependent on constitutional make-up, and are therefore largely hereditary in origin (Allport).\nKnowing Talents\nDefinition of Talent\nTalent is a potential possessed by a person as innate since birth. Talent is a special ability that enables a person to obtain benefits from the results of their training to a high degree. Talent still needs to be realized by how we explore and develop it. Talent is a unique characteristic of an individual. Things that affect talent\nGenetic factors Training Body structure Intelligence As Talent\nTypes of intelligence according to Howard Gardner:\nLinguistic intelligence Logical-mathematical intelligence Spatial intelligence Musical intelligence Bodily-kinesthetic intelligence Interpersonal intelligence Intrapersonal intelligence Naturalist intelligence Developing strengths and overcoming personal weaknesses:\nIntrospection Self-control Building self-confidence Knowing and taking inspiration from role models Thinking positively \u0026amp; optimistically about oneself ","date":"1 June 2026","externalUrl":null,"permalink":"/articles/2026-06-character-building-part-1-knowing-yourself/","section":"Articles","summary":"Knowing yourself is the beginning of knowing the truth. Socrates called it GNOTHI SEAUTON, (know yourself).","title":"Character Building: Knowing Yourself","type":"articles"},{"content":"","date":"1 June 2026","externalUrl":null,"permalink":"/tags/knowing-yourself/","section":"Tags","summary":"","title":"Knowing Yourself","type":"tags"},{"content":"","date":"1 June 2026","externalUrl":null,"permalink":"/tags/personal-development/","section":"Tags","summary":"","title":"Personal Development","type":"tags"},{"content":"","date":"1 June 2026","externalUrl":null,"permalink":"/tags/self-awareness/","section":"Tags","summary":"","title":"Self-Awareness","type":"tags"},{"content":"","date":"31 May 2026","externalUrl":null,"permalink":"/series/chapters-on-mikrotik/","section":"Series","summary":"","title":"Chapters on Mikrotik","type":"series"},{"content":"","date":"31 May 2026","externalUrl":null,"permalink":"/tags/computer-network/","section":"Tags","summary":"","title":"Computer Network","type":"tags"},{"content":"","date":"31 May 2026","externalUrl":null,"permalink":"/categories/mikrotik/","section":"Categories","summary":"","title":"Mikrotik","type":"categories"},{"content":"","date":"31 May 2026","externalUrl":null,"permalink":"/tags/mikrotik/","section":"Tags","summary":"","title":"Mikrotik","type":"tags"},{"content":"A router is the most important component in a computer network that aims to connect different networks.\n","date":"31 May 2026","externalUrl":null,"permalink":"/study/mikrotik/","section":"Study","summary":"Learn about Mikrotik, a network router and switch manufacturer.","title":"Mikrotik Fundamental","type":"Study"},{"content":" Mikrotik # Mikrotik OS is a specialized operating system used for network management. The word Mikrotik refers to the Latvian language where this OS originated, meaning small network. With the vision of facilitating networking management, Mikrotik Router OS offers ease of implementation, ease of configuration, and ease of integration with other devices.\nMikrotik comes in two types, namely Mikrotik Router OS (ROS) and Mikrotik RouterBoard. Mikrotik RouterBoard is specific hardware embedded with the Mikrotik operating system to function as a router. Meanwhile, Mikrotik RouterOS is a Mikrotik operating system that can be installed on a PC so it can function as a router. RouterOS is an Independent Operating System and software capable of making an Intel/AMD-based PC perform functions like routing, bridging, firewalling, bandwidth management, wireless AP or client, and many other functions.\nMikrotik provides tools to easily manage its devices or OS. The commonly used tool is Winbox. This is a GUI-based tool developed for the Windows operating system. Winbox provides shortcuts to help manage Mikrotik devices.\nStatic IP Address Configuration # To configure a Static IP Address method on Mikrotik, it is done by:\nOpen winbox.exe Figure 4 Winbox Tool After the initial winbox screen appears, please enter the MikroTik IP (the IP connected to the internet) in the Connect To column. Enter the username in the login column and enter the password in the password column according to the MikroTik\u0026rsquo;s username and password. Then, click Connect. Figure 5 Winbox Login After that, the main winbox view appears. On the Left Side Bar, there are menus for managing the Mikrotik device. To configure the IP address, click the IP menu. Inside the IP menu, there are many options for configuring IPv4. Select the Addresses section to create a Static IP Address. Figure 6 IP Addresses Menu Then the Address List box will appear. This box will display the list of IPs existing in MikroTik. To add one, click the button with the \u0026lsquo;+\u0026rsquo; sign and the New Address box will appear. In the New Address, there are 3 columns, namely Address, Network, and Interface. In the Address column, enter the Static IP and Netmask corresponding to the network to be created. Leave the Network column blank if the Address column already contains the netmask. In the Interface column, select the interface to be given the IP Address. Once everything is filled in, click the Apply button and OK. After that, the created IP will appear in the Address List box. DHCP IP Configuration # Mikrotik has a DHCP Server feature. A DHCP Server is a server that provides services or automatic IP Address allocation for Clients whose Addresses are set to Automatic. A DHCP Server provides Automatic IP configuration which includes: IP Address, IP Gateway, and IP DNS Server.\nTo configure Mikrotik as a DHCP Server, there are two main steps: creating an IP Pool to make the range of IPs that will be used, and then creating the DHCP Server. This DHCP Server configuration is done with the help of WinBox connected to a Mikrotik. The steps to create a Pool are as follows:\nConnect Winbox to mikrotik, then in Winbox click IP then click Pool so the IP Pool form appears. Figure 7 IP Pool The next step is adding the range of IPs to be used in the DHCP Server, so a new IP Pool must be added. To add an IP Pool, click the \u0026ldquo;+\u0026rdquo; button so the New IP Pool menu appears. What is configured in the New IP Pool Form is as follows:\nName: Contains the pool name, for example, the pool is named local.\nAddresses: Contains the IP Address range that will be used for clients, for example 172.16.162.30-172.16.162.40\nThen click Apply followed by clicking OK.\nFigure 8 New IP Pool If successful, a new pool named local containing the Address range for Local IPs will be added to the IP Pool page. Figure 9 Inserted IP Pool Once the IP Pool is configured, the next step is configuring the DHCP Server. To configure a DHCP Server on Mikrotik, the first thing to do is, in winbox click IP then click DHCP Server. Next, the DHCP Server page will appear. Figure 10 IP DHCP Server To add a DHCP Server, click the \u0026ldquo;+\u0026rdquo; button. This brings up the New DHCP Server page. What needs to be configured is as follows:\nName: Filled with the DHCP server name.\nInterface: Select the network interface that will be the DHCP Server (the one connected to local).\nAddress Pool: Filled with the pool that has been created previously.\nThen click apply, followed by clicking OK.\nFigure 11 New DHCP Server Once the DHCP Server is created, the next is to configure the network sent by the DHCP Server and used by the client. To configure the network, click the network tab on the DHCP Server page. Figure 12 IP DHCP Server \u0026gt; Networks To add a network, click the \u0026ldquo;+\u0026rdquo; button. This will display the DHCP Network page. What needs to be configured in DHCP Network is as follows:\nAddress: Filled with the network address that will be used by the client.\nGateway: Filled with the gateway that will be used by the client.\nNetmask: Filled with the netmask prefix used by the client.\nDNS Server: Filled with the DNS Server that will be used by the client.\nClick apply, then followed by clicking OK.\nFigure 13 New DHCP Network Up to this point, the configuration of the DHCP Server on mikrotik is complete. For testing, use a client computer to view the DHCP Server configuration. If an IP Address is successfully obtained according to the configuration, then the DHCP Server has been configured correctly. The next step is to check the connection from the client to the Mikrotik by pinging from the client to the Mikrotik IP. If the dynamic IP configuration is correct, then the Mikrotik will reply to the ping from the client. Figure 14 Testing DHCP Static Routing Configuration # Static routing is a router that has a static routing table manually set by network administrators. Static routing is the simplest routing arrangement that can be done on a computer network. The configuration stages are as follows:\nMikrotik Login Figure 15 Winbox login Next, look for the IP menu then the Routes submenu Figure 16 IP Routes The route list menu will appear, then click the \u0026lsquo;+\u0026rsquo; sign to add a new router configuration which will display the new route menu Figure 17 Route List In the new route menu, there are several fields that need to be filled, namely:\na. Dst. Address is filled with the destination network address. For default routing, enter 0.0.0.0/0 which aims to determine the route for all networks to be directed to a specific gateway\nb. Gateway is filled with the destination router address or neighboring router that will lead to the destination network. Generally, to connect to the Internet, the gateway IP is provided by the ISP.\nFigure 18 New Route Once finished configuring it, press the \u0026lsquo;OK\u0026rsquo; button\nTest the routing configuration by pinging the internet or by pinging the router gateway Figure 19 Ping test NAT Firewall Configuration # Mikrotik has a firewall menu, one of which is NAT. NAT stands for Network Address Translation, which can function to translate IP addresses. As is known, to connect to the internet, a Public IP is required. However, due to the limited availability of Public IPs, each host generally communicates using a Private IP. NAT is used to translate a Private IP into a Public IP so hosts can communicate via the internet. Here are the steps to use a NAT firewall on Mikrotik:\nLog into Mikrotik via the winbox application Find the firewall menu, which is IP → firewall Figure 20 IP \u0026gt; Firewall Winbox will display the firewall interface. Then select NAT and press the add icon on NAT which has the function to add a new rule. Figure 21 Firewall \u0026gt; NAT When the add icon is pressed, a form to create a new rule will appear. Figure 22 New NAT Rule Configurations in the general menu are:\na. Chain: srcnat\nb. Out. Interface: ether1, because on Mikrotik we set the ether1 interface as the public IP to access the internet\nc. Press the Action menu to determine the action to be used on this rule\nFigure 23 Action \u0026gt; Masquerade Select the masquerade action and press the Ok button to complete the NAT rule configuration.\nThe rule has been successfully created. Now ping 8.8.8.8 from the client, to ensure the NAT rule has been successful.\nFigure 24 NAT Ping Test If the ping is successful and the client has internet access, then the NAT firewall configuration with masquerade has been successfully performed. Hotspot Configuration # First, go to the IP \u0026gt; Hotspot \u0026gt; Hotspot Menu Figure 25 IP Hotspot A \u0026ldquo;Hotspot Menu\u0026rdquo; pop-up will appear that will guide you to select the interface to be used as a hotspot. In the example below, it\u0026rsquo;s ether1. If the interface we chose is correct, click the next button. Figure 26 Hostspot Interface Next, enter the IP address to be used as the hotspot login. In the example below, it is 192.168.100.1 with a netmask of 255.255.255.0 (/24) then click the next button. Figure 27 Hostspot gateway address Then set the pool address where this pool address is used as the DHCP IP that will be given to users who log in to the hotspot. In the example below, it is 192.168.100.2-192.168.100.254. Then click next. Figure 28 Hostpot DHCP Pool The next step is determining the SSL Certificate. If using HTTPS to log into the hotspot, select \u0026ldquo;import other certificate\u0026rdquo;. If not, select \u0026ldquo;none\u0026rdquo; then select next. Figure 29 Hotspot SSL The next step is determining the SMTP Server if required. If not, leave it default then click next. Figure 30 Hotspot SMTP Then determine the DNS Server. In the example below, using Google DNS which is 8.8.8.8. If you want to add another DNS, click the up/down button and enter another DNS then click next. Figure 31 Hotspot DNS Configuration Then enter the DNS Name that has been inputted. In the example below, it is hotspot.example.co.id then click next. Figure 32 Hotspot login domain The next step is determining the username and password that will be used to log in to the hotspot. In the example below, the username used is \u0026ldquo;hotspot\u0026rdquo; and the password is \u0026ldquo;hotspot\u0026rdquo; then click next. Figure 33 Hotspot user login The hotspot is ready to use. And to log in, use the username and password that were created previously. Figure 34 Mikrotik hotspot login screen Simple QoS # QoS stands for Quality Of Services. QoS aims to provide service according to the expected level. Without QoS, there will be a scramble for traffic resources. Generally, QoS is coupled with traffic limitation. However, QoS itself actually consists of many parts, including prioritize, traffic classification, traffic limitation, etc. On Mikrotik, there are several configurations to implement QoS. One of them is the Simple QoS feature.\nWith simple QoS on Mikrotik, QoS management is made easy for administrators. For example, below, a QoS in the form of traffic limitation for one Client IP will be created. Before being given a limitation, the client will get maximum traffic according to the available bandwidth.\nFigure 35 Unmanage Client Download Like the example above, before being limited, the client gets an average bandwidth of 3MB/Sec. This will certainly make the internet network slow for other clients if the available bandwidth is small. To overcome this, it is necessary to create a traffic limitation. On Mikrotik, to configure QoS traffic limitation, it can be applied by:\nIn winbox click the Queue menu, so the Queue List page will appear. To add a traffic limitation using Mikrotik simple QoS, click the Simple Queues tab on the Queue List page. Figure 36 Queue To add a new traffic limitation, click the \u0026ldquo;+\u0026rdquo; button on the simple queues tab. The New Simple Queue page will appear. The configurations that need to be made on this menu are:\nName: Fill in with the name of the limitation to be created, for example, client1 for limiting host client1\nTarget: Fill in with the IP of the host to be limited.\nMax Limit: Fill in with the max bandwidth that the client will get.\nThen click Apply followed by clicking OK\nFigure 37 New Simple Queue Next, the rule on Simple Queues will increase according to what was configured previously. Figure 38 Queue List To test the simple QoS configuration that has been created, perform a download to a certain site. If the configuration is correct, then the traffic limitation runs successfully. Like the example below, the client will get an average bandwidth of 128kbps ~ 16KBps. Figure 39 Queue testing Mikrotik Monitoring Tools # Open winbox.exe. On the Left Side Bar, there is a Tools option. Inside Tools, there is a Graphing option. Click Graphing to perform Monitoring on the specified network interface. Figure 40 Tools Graphing After that, the Graphing box will appear. Click Graphing Settings then Select 5 min and click Apply and OK. This aims to determine the data recording time to be displayed in the graph. Next, to add a network interface that we will monitor, click the \u0026lsquo;+\u0026rsquo; button. The New Interface Graphing Rule box will appear. In the Interface column, select the network interface to monitor. After that click Apply and OK. Figure 41 New Interface Graphing Rule To perform monitoring, it can be done by opening a browser. Type in the Address Bar: http://[MikroTik_IP]/graphs. Furthermore, you can see the link of the network interface you want to monitor. Click the link and then a graph of the monitored interface will appear. Figure 42 Mikrotik Web Monitoring ","date":"31 May 2026","externalUrl":null,"permalink":"/study/mikrotik/mikrotik-router-os-fundamental/","section":"Study","summary":"Mikrotik OS is a specialized operating system used for network management. The word Mikrotik refers to the Latvian language where this OS originated, meaning small network. With the vision of facilitating networking management, Mikrotik Router OS offers ease of implementation, ease of configuration, and ease of integration with other devices.","title":"Mikrotik Router-OS Fundamental","type":"study"},{"content":"","date":"31 May 2026","externalUrl":null,"permalink":"/tags/network-router/","section":"Tags","summary":"","title":"Network Router","type":"tags"},{"content":"","date":"31 May 2026","externalUrl":null,"permalink":"/tags/networking/","section":"Tags","summary":"","title":"Networking","type":"tags"},{"content":"","date":"31 May 2026","externalUrl":null,"permalink":"/tags/router-os/","section":"Tags","summary":"","title":"Router OS","type":"tags"},{"content":" IP Addressing # A computer network connects several computers so they can communicate with each other. The communication involves data exchange between the sender and the receiver. This message sending process requires an address, so that messages sent by the sender can be received by the appropriate receiver. This address used in computer networks is called an IP Address.\nThe commonly used addressing in computer networks today is IP Address version 4 or often called IPv4. IPv4 is an addressing method consisting of 4 bytes where each byte is separated by a dot, with 1 byte representing up to 255 in decimal. Thus, theoretically, the usable IPv4 addresses are 255 x 255 x 255 x 255.\nFigure 1 Illustration of IPv4 An IP Address consists of two parts: the network address and the host identifier. The network address defines the network address used. The host identifier is used to define the host that belongs to that network. Hosts located in the same network address can communicate directly, whereas hosts in different network addresses require a router to communicate.\nInitially, IPv4 implemented the concept of classful addressing. In this method, IP addresses were divided into classes based on the number of hosts that would communicate on that network. As networks and the internet grew, the use of classful addressing became irrelevant. Therefore, the method currently used for IP addressing generally employs CIDR (Classless Inter-Domain Routing), which is a development from the class-based method.\nIn the CIDR method, a / (slash) notation appears followed by a decimal number from 0 to 24 on an IPv4 address. This notation is used to define the length of the subnet mask, which then functions to separate the network address and the host identifier. For example, 192.168.100.14/24 is the IPv4 address 192.168.100.14 with a subnet mask of 255.255.255.0, where the CIDR notation 24 indicates the number of contiguous 1 bits in the subnet mask, so its network address is 192.168.100.0.\nFigure 2 IPv4 using CIDR Figure 2 illustrates the use of CIDR with 10.10.1.44/27 which falls into the 10.10.1.32/27 subnet, while 10.10.1.90 is not included in it.\nSubnetting # As previously explained, an IP Address consists of 2 parts: the network address and the host identifier. In certain cases, more than one network needs to be built from a single network address. The process of dividing or splitting a network into several smaller networks is called subnetting.\nThe main purposes of creating subnetting are generally:\nEfficiency of the IP Addresses to be used Reducing network traffic congestion Facilitating network management, etc. The method currently commonly used to create subnets is called VLSM (VARIABLE LENGTH SUBNET MASK). The process of creating subnets using the VLSM method begins by defining the number of hosts that will be included in the subnet. From this number of hosts, the subnet mask that will be used to form the new subnetwork address is then determined.\nRouting # Hosts connected within the same network address and subnet mask can communicate directly with each other. However, communicating with a different network requires defining a path for communication, which is often called routing. This routing process is performed on a device known as a router.\nA router is responsible for providing paths to communicate to other networks. A router utilizes the concept of a table to define the paths that can be traversed to reach a specific network. This table is also known as a routing table. In implementation, forming a routing table can be done manually (static) or dynamically using specific algorithms.\nTo populate a routing table, the following information is required:\nDestination network address Address of the router handling that network Address of the neighboring router that can be traversed to reach the destination network Figure 3 Illustration of Router \u0026amp; Routing Table Figure 3 illustrates routers being used to connect different networks by utilizing routing tables. Routing tables are created on each router to define the paths that can be used to communicate with other networks.\n","date":"30 May 2026","externalUrl":null,"permalink":"/study/mikrotik/mikrotik-fundamental/","section":"Study","summary":"A router is the most important component in a computer network that aims to connect different networks.","title":"Mikrotik Fundamental","type":"study"},{"content":"","date":"30 May 2026","externalUrl":null,"permalink":"/tags/router/","section":"Tags","summary":"","title":"Router","type":"tags"},{"content":"","date":"29 May 2026","externalUrl":null,"permalink":"/tags/html/","section":"Tags","summary":"","title":"HTML","type":"tags"},{"content":"","date":"29 May 2026","externalUrl":null,"permalink":"/tags/openoffice/","section":"Tags","summary":"","title":"Openoffice","type":"tags"},{"content":"","date":"29 May 2026","externalUrl":null,"permalink":"/tags/output/","section":"Tags","summary":"","title":"Output","type":"tags"},{"content":"","date":"29 May 2026","externalUrl":null,"permalink":"/categories/pandoc/","section":"Categories","summary":"","title":"Pandoc","type":"categories"},{"content":" Output # Markdown documents that we have written can be converted into various formats as needed. Among the frequently used formats are:\nPDF : for printing or sending via email HTML : for displaying on a website Presentation Slides : actually the generated presentation slide format is HTML. But because its format is specific and different, we had better separate it. Some conventions # Command execution location # The conversion process is done by typing the pandoc command at the command prompt. This command is executed in the folder location where the file to be processed is located. If the file to be processed is in another folder, I assume the reader already knows how to write paths, either absolute or relative.\nFile Extension # Even though a markdown file can be given a .txt extension, we will use the .md extension so that it can be displayed well in text editors like Gedit or Notepad++.\nPDF # Basic Commands # To generate a PDF file, the command is as follows:\npandoc -o output.pdf *.md We can add a Table of Contents with the --toc option. To number chapters and sub-chapters, include the -N option.\npandoc --toc -N -o output.pdf *.md Using \\LaTeX Templates # Specifically for ArtiVisi documents, I usually have included a separate \\LaTeX template. This template has options for changing fonts and placing a version number. We need the Xetex engine for this template to be used. Here is the command (run in one line):\npandoc \\ --template artivisi-template.tex \\ --variable mainfont=\u0026#34;Droid Serif\u0026#34; \\ --variable sansfont=\u0026#34;Droid Sans\u0026#34; \\ --variable fontsize=12pt \\ --variable version=1.0 \\ --latex-engine=xelatex --toc -N -o output.pdf *md Manual Page Break # For PDF specifically, we usually want a neat and nice printed display. The automatic layout provided by \\LaTeX is sometimes not good at adjusting image placement, so images often appear misaligned, not in accordance with the text sequence, which is caused by page break settings. For this reason, we need manual arrangement. The way to do this is to add a \\LaTeX command like this:\nFirst paragraph \\newpage This paragraph will be written on a new page This was explained by John MacFarlane via email\nThere’s no general way to force page breaks, by the way. If you just want page breaks in PDF (via latex), you can insert a raw latex command,\n\\newpage This should be ignored in HTML and ODT output, so it will only affect latex and PDF via latex.\nThis \\newpage command will be ignored if we produce HTML and ODT output.\nLinks and Footnotes # By default, all hyperlinks that we write will be made into clickable links in the resulting PDF document. This is good if we only read the PDF on a computer; if we want to open the link, we just click it and the browser will open.\nBut it\u0026rsquo;s another matter if we want to print the PDF document. All links will only become blue text. Therefore, we want to convert hyperlinks into footnotes. This can be done with the links-as-notes variable like this:\npandoc -V links-as-notes -o output.pdf *.md Without Color # Sometimes we want colorless PDF results so they can be printed without color ink. The use of color in a black-and-white printer will cause the letter colors to not be perfectly black, making the document difficult to photocopy. For this, we can add the --no-highlight option so that the program code is not colored. Besides program code, hyperlinks are also usually colored blue. We can change that blue color to black through the linkcolor and urlcolor variables. Here is the complete command:\npandoc \\ -V urlcolor=black \\ -V linkcolor=black \\ --no-highlight \\ -o markdown-and-pandoc-bw.pdf *md Presentation Slides # To generate presentation slides, the command is as follows:\npandoc -s --self-contained -t s5 -o slide.html using-pandoc.md The command above will produce ready-to-use presentation slides, complete with standard colors and font settings from S5.\nSometimes we want to use other themes like those available at S5 Reloaded. For this, we do not produce complete presentation slides, but only the HTML so that later the theme can be changed as desired.\nUse the following command:\npandoc -s -t s5 -o slide.html using-pandoc.md After that, the resulting slide.html file can be edited, the contents of the \u0026lt;head\u0026gt;\u0026lt;/head\u0026gt; tags are replaced with those in the custom theme from S5 Reloaded.\nSo that bullet points appear one by one, we need to provide the -i option, which is incremental.\npandoc -s --self-contained -i -t s5 -o slide.html using-pandoc.md Open Office # To generate an OpenOffice Writer file, the command is as follows:\npandoc -o output.odt *md If we want to customize the style, namely setting the font type, font size, spacing between paragraphs, etc., we can edit the output.odt file and make it a template.\nOnce we have a template, we give it to pandoc with the --reference-odt option as follows:\npandoc --reference-odt=template.odt -o output.odt *md HTML # To generate HTML output, the command is as follows:\npandoc -o output.html *md Like PDF, we can also create a table of contents:\npandoc --toc -N -o output.html *md To make the table of contents appear, we need to provide the -s option, which is standalone. This means generating complete output with a cover page.\npandoc -s --toc -N -o output.html *md ","date":"29 May 2026","externalUrl":null,"permalink":"/articles/2026-05-pandoc-output/","section":"Articles","summary":"Pandoc to convert Markdown documents into various output formats such as PDF, HTML Presentation Slides, OpenOffice Writer documents, and HTML.","title":"Pandoc #03: Output","type":"articles"},{"content":"","date":"29 May 2026","externalUrl":null,"permalink":"/series/pandoc-book/","section":"Series","summary":"","title":"Pandoc Book","type":"series"},{"content":"","date":"29 May 2026","externalUrl":null,"permalink":"/tags/pdf/","section":"Tags","summary":"","title":"Pdf","type":"tags"},{"content":"","date":"29 May 2026","externalUrl":null,"permalink":"/tags/presentation-slides/","section":"Tags","summary":"","title":"Presentation Slides","type":"tags"},{"content":"","date":"28 May 2026","externalUrl":null,"permalink":"/tags/documentation/","section":"Tags","summary":"","title":"Documentation","type":"tags"},{"content":"","date":"28 May 2026","externalUrl":null,"permalink":"/tags/markdown/","section":"Tags","summary":"","title":"Markdown","type":"tags"},{"content":" Markdown Syntax # To write a book, we use markdown syntax. Markdown was first created by John Gruber. The following is the philosophy of Markdown according to John Gruber.\nA Markdown-formatted document should be publishable as-is, as plain text, without looking like it\u0026rsquo;s been marked up with tags or formatting instructions. \u0026ndash; John Gruber\nLoosely translated as follows.\nA Markdown-formatted document should be publishable as-is in the form of plain text, without looking like it has been decorated with certain formatting commands.\nThe original Markdown version by John Gruber has several shortcomings, among them he did not explain how to create tables. Besides John Gruber\u0026rsquo;s version, there are also other versions like MultiMarkdown and Pandoc.\nWe will use the more complete Pandoc version, because it already supports:\ntables source code highlighting covers footnotes Next, we will discuss how to format text using Pandoc\u0026rsquo;s markdown syntax.\nParagraphs # A paragraph is one or more lines of text. One paragraph and another are separated by a blank line. Line breaks that we type do not determine the line breaks in the final result, so we can break lines as we please. If we want the final result to also have a line break, we can use double spaces at the end of the line, or a backslash (\\) followed by a new line.\nHeaders # There are two types of header writing, setext and atx. We will only discuss atx.\nAtx-headers start with one to six # characters. Here are examples:\n# Chapter 1 ## Subchapter 1.1 ### Sub-subchapter 1.1.1 We may add a trailing # or omit it. The following example:\n# Chapter 1 is the same as this:\n# Chapter 1 # Providing IDs for Headers # When converted to HTML, each header will be given an id so that it can be linked. Here are the rules for assigning an id:\nAll formatting, links, etc., are removed. All punctuation is removed except underscores, hyphens, and periods. Replace spaces and line breaks with hyphens. All letters are made lowercase. All strange characters are removed up to the first letter (an id cannot start with a number or punctuation). If nothing is left, use the id section. For example:\nHeader Identifier\nHeader identifiers in HTML header-identifiers-in-html Dogs?\u0026ndash;in my house? dogs--in-my-house [HTML], [S5], or [RTF]? html-s5-or-rtf 3. Applications applications 33 section\nIf an identical identifier is found during the process, a sequence number will be added, for example section-1, section-2, and so on.\nThis identifier can be used as a link within the document, like this:\nPlease see the [explanation about markdown syntax](#markdown-syntax). Additionally, this identifier is also used in creating a table of contents.\nBlockquotes # To display a quote, we use a syntax like when replying to an email, which is using the \u0026gt; marker. This marker can be written just at the beginning of the quote like this:\n\u0026gt; The difference between stupidity and genius is that genius has its limits. And it can also be on every line like this:\n\u0026gt; Have you ever noticed that \u0026gt; anybody driving slower than you is an idiot, \u0026gt; and anyone going faster than you is a maniac? Except at the beginning of a file, quotes must be preceded by a blank line.\nHere is an example of how a quote is displayed.\nWhen you borrow five thousand from a bank and you can’t pay back, you’ve got a problem. When you borrow five million from a bank and you can’t pay back, they’ve got a problem.\nProgram Code # To display program code, we use three backticks (`), like this:\n``` System.out.println(\u0026quot;Hello world\u0026quot;); ``` This will produce a display like this:\nSystem.out.println(\u0026#34;Hello world\u0026#34;); We can activate syntax highlighting by listing the type of programming language used.\n```java System.out.println(\u0026quot;Hello world\u0026quot;); ``` This will produce a display like this:\nSystem.out.println(\u0026#34;Hello world\u0026#34;); If we output to PDF, this second example will be colored according to the selected programming language keywords.\nLists and Numbers # Lists # Lists start with the *, +, or - sign. Here\u0026rsquo;s an example:\n* apple * mango * durian If it is too long, we are free to break lines, like this:\n* markdown. This is a format invented by John Gruber * docbook * latex We can also create a list within a list, like this:\n* fruits + apple + mango - indramayu - harum manis + durian * vegetables + water spinach + spinach The requirement is that the second level list must be indented by 4 spaces. The example above will produce a display like this:\nfruits apple mango indramayu harum manis durian vegetables water spinach spinach Numbers # Generally speaking, numbered lists are the same as bulleted lists. The difference is only in the marker characters. Numbers are indicated with digits like this:\n1. Adi 2. Awan 3. Ifnu The numbers don\u0026rsquo;t have to be sequential, this is also okay:\n1. Adi 3. Awan 1. Ifnu The starting number will follow the first number we use. If we write it like this:\n4. Adi 2. Awan 3. Ifnu then the result is\n4. Adi 5. Awan 6. Ifnu Besides using Arabic numerals, we can also use letters and Roman numerals. Moreover, there are still other features like example numbering, how to interrupt lists, and so on. Details can be seen in the Pandoc documentation.\nHorizontal Rules # A line consisting of three or more *, -, or _ characters consecutively (may be separated by spaces) will be converted into a horizontal line.\nHere is an example:\n*** hello - - - will produce an output like this:\nTables # Here are examples of how to write tables:\nRight Left Center Default ------- ------ ---------- ------- 12 12 12 12 123 123 123 123 1 1 1 1 Table: A simple table example. Which will produce a table like this:\nRight Left Center Default\n12 12 12 12 123 123 123 123 1 1 1 1 Table: A simple table example.\nFrom the example above, we can also understand how to make right-aligned, left-aligned, and centered. In addition, we can also provide a table title.\nIf one row consists of multiple lines, for example like this:\n------------------------------------------------------------- Centered Default Right Left Align Aligned Align Align ----------- ------- --------------- ------------------------- First hello 12.0 Example of a row with more than one line Second try 5.0 This is the second row. Rows are separated by a blank line. ------------------------------------------------------------- Table: This is the label. Labels can also be multi-line The result is like this:\nCentered Default Right Left Align Align Align Align\nFirst hello 12.0 Example of a row with more than one line\nSecond try 5.0 This is the second row. Rows are separated by a blank line.\nTable: This is the label. Labels can also be multi-line\nCover # To create a book cover, we must create a file containing a title block like this:\n% Using Pandoc and Markdown % Julius Ulee % 27 January 2024 The first line is the title, the second line is the author, and the third line is the date of writing. If there is more than one author, it is written like this:\n% Using Pandoc and Markdown % Julius Ulee Fona % 27 January 2024 Backslash # Except in code blocks or inline code, all punctuation and spaces preceded by a backslash will be written as they are, including formatting characters. Example:\n*\\*hello\\** will produce\n\u0026lt;em\u0026gt;*hello*\u0026lt;/em\u0026gt; instead of\n\u0026lt;strong\u0026gt;hello\u0026lt;/strong\u0026gt; Inline Formatting # Italics # To make italics, use the * or _ character. For example:\nWriting program code in Java is _case sensitive_. Unlike SQL which is *case insensitive*. The example above will produce a display like this:\nWriting program code in Java is case sensitive. Unlike SQL which is case insensitive.\nBold # Bold text is similar to italics, but uses two characters. For example:\nWriting program code in Java is __case sensitive__. Unlike SQL which is **case insensitive**. The example above will produce a display like this:\nWriting program code in Java is case sensitive. Unlike SQL which is case insensitive.\nStrikeout # To write a correction, use ~~ like this:\nThe weakness of the Spring Framework is ~~the necessity to write many xml files~~. Verbatim # Verbatim means as is, not converted into anything. To create verbatim, we use backticks like this:\nTo compare numbers, use the greater than sign `\u0026gt;` Links # Automatic Links # Markdown can automatically convert text into links, provided they are enclosed in angle brackets. Here\u0026rsquo;s an example:\n\u0026lt;http://azriel.id\u0026gt; \u0026lt;fidzlieazriel@gmail.com\u0026gt; Inline Links # Links and their destination URLs can be directly combined into one part.\nTo display a link to a specific website, the format is like this:\nPlease see [my website](http://azriel.id/about \u0026quot;Azriel's Website\u0026quot;) for more complete information. There are three parts to creating a link:\nThe text to be linked. Written in square brackets [] The URL for the link, written in parentheses () The link title, written in parentheses, after the URL, enclosed in double quotes. This link title is optional, it can be present or not. Reference Links # We can also separate the link and the destination URL with the following format:\n[link label][link id] With the method above, the destination URL is not directly written next to its label. We have to provide a reference to the destination URL in another part of the document (usually at the end) like this:\n[link id]: http://destination-url.com \u0026quot;Link Title\u0026quot; The link id can be omitted, so the link id is the same as its label, like this:\nPlease visit [my website] At the end of the document, include its reference:\n[my website]: http://azriel.id \u0026quot;Azriel's Website\u0026quot; Document Links # We can create links to other parts of the document, for example headings. As we discussed in the Providing IDs for Headers section, pandoc will create an id for every heading we define.\nHere is an example:\nPlease see the [Inline Formatting](#inline-formatting) section. Images # Displaying images is similar to links. The difference is, we put an exclamation mark in front of the square brackets. An example using a relative path is like this:\n![ArtiVisi Logo](resources/logo-artivisi.png) The example above will produce a display like this:\n\\begin{figure}[H] \\centering \\includegraphics{resources/logo-artivisi} \\caption{ArtiVisi Logo} \\end{figure}\nIf we notice, the ArtiVisi logo image above is slightly blurry. Unlike the ArtiVisi logo on the front page. The reason is because the resolution of the image above is only 90 dpi. For the image to be sharp, the ideal resolution is 300 dpi.\nThis needs to be considered when inserting screenshots. Generally, screenshot taking applications will produce images with a resolution of 72 dpi, so it will certainly look blurrier than the logo above. For the image to display well, we need to change its resolution to 300 dpi.\nThe image size also needs to be adjusted so that it is not too wide or too small when converted into a PDF document. For an A4-sized PDF with the default \\LaTeX book layout, namely \\documentclass[a4]{book}, an image size that fills one page is approximately 1200 pixels wide and 1500 pixels high.\nImage resolution and size can be edited using image processing applications like Gimp or Photoshop. But keep in mind that enlarging the resolution and size will make the image blurry. For that we need to take other actions such as sharpening, contrast adjustment, and others.\nHere is the display of a screenshot edited in Gimp.\n\\begin{figure}[H] \\centering \\includegraphics{resources/setting-image} \\caption{Setting Image in Gimp} \\end{figure}\nThe image above is 1200 pixels wide and 741 pixels high with a resolution of 300dpi.\nThe description above explains to us that the screenshots we take cannot simply be placed into a document just like that. We must do some editing first with an image processing application like Gimp or Photoshop.\nFootnotes # Footnotes are written like this:\nThis text has a footnote,[^1] and this one too.[^longnote] [^1]: Footnote number one. [^longnote]: A long multi-line footnote. The next paragraph is indented to show that it is part of the footnote above it. { program code example } Indentation can be just on the first line or the whole paragraph. This paragraph is not part of the footnote, because it is not indented. The example above will produce the following display:\nThis text has a footnote,1 and this one too.2\nThis paragraph is not part of the footnote, because it is not indented.\nFootnotes need an identifier, which is a label starting with ^ inside square brackets. This identifier must not contain spaces, tabs, or line breaks. The identifier is only used to connect the reference point with its footnote. While the numbering in the output will be calculated automatically.\nReferences and Bibliography # Pandoc also supports references (citations) to other people\u0026rsquo;s writings, such as those usually listed as a bibliography. This is usually used if we create scientific writings such as journals, theses, or dissertations.\nFor more details, you can refer to the pandoc documentation.\nFootnote number one.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nA long multi-line footnote.\nThe next paragraph is indented to show that it is part of the footnote above it.\n{ program code example } Indentation can be just on the first line or the whole paragraph.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n","date":"28 May 2026","externalUrl":null,"permalink":"/articles/2026-05-pandoc-markdown/","section":"Articles","summary":"A comprehensive guide to writing documents using Pandoc version Markdown syntax, covering text formatting, tables, program code, images, as well as footnotes and references.","title":"Pandoc #02: Markdown","type":"articles"},{"content":"","date":"28 May 2026","externalUrl":null,"permalink":"/tags/writing/","section":"Tags","summary":"","title":"Writing","type":"tags"},{"content":"","date":"27 May 2026","externalUrl":null,"permalink":"/tags/document-conversion/","section":"Tags","summary":"","title":"Document Conversion","type":"tags"},{"content":" Introduction # About Markdown # What is Markdown # Markdown is a document authoring format invented by John Gruber. Markdown was created with the following philosophy:\nThe idea is that a Markdown-formatted document should be publishable as-is, as plain text, without looking like it’s been marked up with tags or formatting instructions. - John Gruber\nMarkdown has several characteristics, including:\nplain text based easy to read as it is (without special applications) can be converted into other formats (e.g., PDF, HTML, etc.) Why choose Markdown # At ArtiVisi, we want to standardize document writing. The main criterion of the documentation format we want is text-based. Text-based formats have several advantages, including:\ncan fully utilize version control features such as diff, blame, branch, merge, and so on. easy to edit, even using notepad can be edited anywhere, for example on a tablet or mobile phone (for example, I typed this chapter on public transportation using the DroidEdit application on a mobile phone) small size easily stored on cloud-based services like Dropbox There are several formats that meet these criteria, including:\nhtml markdown docbook \\LaTeX Office applications, both Microsoft and Open, are immediately eliminated in this first round because their format is not text.\nNext, the second criterion is easy to understand. The job of creating documentation at ArtiVisi is usually handed over to interns. Therefore, we must be able to teach this documentation system quickly, because the turnover rate of interns is relatively short. We don\u0026rsquo;t want a situation where an internship lasts only 3 months, and 2 weeks are spent learning the documentation system.\nOf the four candidates above, \\LaTeX is eliminated because it is relatively difficult to learn. Only three contestants remain. Let\u0026rsquo;s move on to the next round.\nThe third criterion is the ability to convert into various other formats. We want to convert to PDF so it can be printed. We also want to be able to convert to HTML so it can be published on the internet. In modern times, the ability to convert to a digital book format (epub) is also needed. In addition, sometimes it is also necessary to convert to OpenOffice or MS Office formats.\nIn this third round, the HTML format is eliminated. Converting the HTML format to other formats requires a complex and long procedure. Thus, we have reached the final round, pitting Markdown vs Docbook.\nFrom here, both formats are actually viable to use. However, we will look at a few other criteria that are nice to have, good if present, no problem if not.\nThe first additional criterion is the availability of tools. Docbook can be converted into several formats with many tools, including:\nMaven (Java) Bookshop (Ruby) Pandoc (Haskell) Other tools (e.g. xsltproc, makefile, etc.) As for Markdown, most of its tools are for converting to HTML, such as:\nMarkdown.pl Pandoc Jekyll When it comes to tools, the score is a tie. Both formats can be easily converted to other formats. Let\u0026rsquo;s review from the user\u0026rsquo;s side.\nEventually, documentation matters will be handed over to the lowest caste of the programmer food chain, namely interns and new employees. The characteristic of these users is their minimal level of thoroughness, unlike senior programmers who can spot an extra space (remember, spaces are invisible to the naked eye) in thousands of lines of code.\nTherefore, the documentation format must be foolproof. It must be writable with a low level of meticulousness. Well, here we find the winner. Docbook is XML-based which is notoriously strict. Missing a single quotation mark, the document cannot be processed. This makes the format prone to errors. We don\u0026rsquo;t want senior programmers to be bothered later because documents can\u0026rsquo;t be converted properly.\nThis is different from Markdown. It is very permissive. Even if there is an error, it will mostly only affect the display format, not cause a processing error.\nThus, the format we will use is Markdown.\nAbout Pandoc # A document in text format alone is not enough. Often we want to send the document to someone else, who will then print it, or display it on a website. For that, we need other formats such as PDF and HTML.\nWe can convert Markdown into PDF and HTML using an application called Pandoc. Pandoc is an application created by John MacFarlane, a philosophy professor at the University of California, Berkeley. Pandoc is created in the Haskell programming language.\nAbout This Book # Why this book was written # At ArtiVisi, we write a lot of books, training modules, presentation slides, application user manuals, and various other documents. Rather than explaining over and over again every time a new employee or intern joins, it is better for me to invest the time and energy once to write this guide.\nWho should read this # This book can be useful for:\nEmployees / interns at ArtiVisi who are assigned to create books, training modules, presentation slides, user manuals, and so on. Teachers, lecturers, or students who want to create a thesis, dissertation, or other scientific writings. With Pandoc, Markdown documents can be converted into \\LaTeX, which is a document format commonly used to create scientific writings. The \\LaTeX format is far superior to word processors like MS Word or OpenOffice Writer. License # This book is licensed under Creative Commons Attribution Share Alike (CC-BY-SA). This means that everyone:\nis free to use this book without paying, both for non-profit and commercial purposes. You may open paid training using this book. is free to share this book with anyone. is free to make changes to the contents of this book. All the freedoms above only have a condition that they must still mention the original author\u0026rsquo;s name. This is called attribution. In short, it can be used and shared as long as it is not claimed as one\u0026rsquo;s own work. In addition, any changes made must also be licensed identically to this book. This is called Share-Alike. More about this license can be seen on the Creative Commons website\nTools # This book was created using helper tools:\nMarkdown : text format for writing the book Pandoc : application for converting markdown to PDF or HTML \\LaTeX : intermediary format from Markdown to PDF ","date":"27 May 2026","externalUrl":null,"permalink":"/articles/2026-05-pandoc-introduction/","section":"Articles","summary":"Pandoc is a universal document converter that can convert documents between various formats, such as Markdown, HTML, LaTeX, and many others.","title":"Pandoc #01: Introduction","type":"articles"},{"content":"","date":"27 May 2026","externalUrl":null,"permalink":"/tags/tech/","section":"Tags","summary":"","title":"Tech","type":"tags"},{"content":" BGP # (Border Gateaway Protocol) # Border Gateway Protocol (BGP) is the protocol that forms the internet network. BGP belongs to the Exterior Gateway Protocol (EGP) or can be said to be the only EGP protocol. EGP connects one Autonomous System (AS) with another. An Autonomous System itself is a collection of routers located under one administrative domain.\nBGP uses TCP port 179 for the transport protocol. In order for 2 BGP routers to peer with each other or become neighbors, a TCP connection must be established first, after which the exchange of BGP routing information between the 2 routers can take place.\nBGP determines routes based on the policies of the AS being passed through (Policy Based). This is different from IGP protocols which determine routes based on the shortest path.\nEach BGP router has a Router ID, the highest loopback IP will become the router ID, if there is no loopback then the highest interface IP will be chosen.\neBGP and iBGP # When BGP runs within routers in 1 AS, it is called iBGP. BGP that runs between AS is called eBGP. eBGP must be directly connected between 2 routers, but iBGP does not have to be directly connected as long as there is an IGP, be it EIGRP, OSPF, or static routing running and making the 2 BGP routers reachable to each other.\niBGP is also used when an AS becomes a transit AS to another AS. The question is, why not just use IGP? RIP, EIGRP or OSPF then redistribute? This is because iBGP is more efficient and flexible for exchanging routing information within an AS.\niBGP provides the freedom to determine the exit point of a route with the availability of many attributes. Another reason, many prefixes will fill the routing table if IGP and BGP are redistributed. Just imagine, how many thousands of prefixes are on the internet?\niBGP must be full mesh or route reflector.\nSource Update via Loopback # When the interface used as the source update goes down, the BGP adjacency will also go down. Because physical interfaces can go down at any time, a source update via loopback is used because loopback interfaces will not go down. This is commonly used in iBGP.\nRoute MAP # In BGP, a route map is used to control and modify routing information for incoming routes and outgoing routes.\nBGP Attributes # Attributes in BGP are also often called path attributes. There are several types of attributes in BGP:\nWELL KNOWN = present in every BGP\nMandatory = included in every BGP route, if this attribute is not present an error message will appear. Must be included in every update.\nAS Path Origin Next Hop Discretionary = present in every BGP \u0026hellip; but does not appear in every route entry.\nlocal preference Atomic Aggregate OPTIONAL\nTransitive\nCommunity Aggregator Non-Transitive\nMulti Exit Discriminator (MED) AS Path # When a route update packet is sent across an AS, that AS Number will be added to the update packet. So AS Path is the sequence of AS Numbers that a route passes through to get to the destination. Because of this, BGP is also called a path-vector protocol.\nAS Path is used for loop detection.\nOrigin # Origin defines the source of a path information. There are 3 values of the origin attribute.\nIGP (i) = comes from BGP, either iBGP or eBGP, with the network x.x.x.x mask x.x.x.x command EGP (e) = comes from the EGP protocol, currently no longer exists. INCOMPLETE (?) = comes from other protocols (RIP, EIGRP, OSPF, Static) that are redistributed into BGP. BGP Route Selection Process # Step 1: Prefer highest weight (local to router) Step 2: Prefer highest local preference (global within AS) Step 3: Prefer route originated by the local router Step 4: Prefer shortest AS path Step 5: Prefer lowest origin code (IGP \u0026lt; EGP \u0026lt; incomplete) Step 6: Prefer lowest MED (from other AS) Step 7: Prefer EBGP path over IBGP path Step 8: Prefer the path through the closest IGP neighbor Step 9: Prefer oldest route for EBGP paths Step 10: Prefer the path with the lowest neighbor BGP router ID BGP - iBGP Configuration # Type the following interface configurations.\nR1(config)#int fa0/0 R1(config-if)#ip add 12.12.12.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#router ospf 1 R1(config-router)#net 0.0.0.0 255.255.255.255 area 0 R2(config)#int fa0/0 R2(config-if)#ip add 12.12.12.2 255.255.255.0 R2(config-if)#no sh R2(config-if)#int f0/1 R2(config-if)#ip add 23.23.23.2 255.255.255.0 R2(config-if)#no sh R2(config-if)#router ospf 1 R2(config-router)#net 0.0.0.0 255.255.255.255 area 0 R3(config)#int fa0/1 R3(config-if)#ip add 23.23.23.3 255.255.255.0 R3(config-if)#no sh R3(config-if)#int fa0/0 R3(config-if)#ip add 34.34.34.3 255.255.255.0 R3(config-if)#no sh R3(config-if)#router ospf 1 R3(config-router)#net 0.0.0.0 255.255.255.255 area 0 R3(config-router)#passive-interface fa0/0 R4(config)#int fa0/0 R4(config-if)#ip add 34.34.34.4 255.255.255.0 R4(config-if)#no sh Okay, make sure R1 can ping R3.\nR1(config-router)#do ping 23.23.23.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 23.23.23.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 20/63/120 ms R1(config-router)# Configure iBGP between R1 and R3 first.\nR1(config)#router bgp 10 R1(config-router)#neighbor 23.23.23.3 remote-as 10 R3(config)#router bgp 10 R3(config-router)#neighbor 12.12.12.1 remote-as 10 Cek show ip bgp summary pastikan sudah neighbornya sudah ada. R1(config-router)#do sh ip bgp sum BGP router identifier 12.12.12.1, local AS number 10 BGP table version is 1, main routing table version 1 Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 23.23.23.3 4 10 6 6 1 0 0 00:03:24 0 R1(config-router)# R3(config-router)#do sh ip bgp sum BGP router identifier 34.34.34.3, local AS number 10 BGP table version is 1, main routing table version 1 Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 12.12.12.1 4 10 6 6 1 0 0 00:03:43 0 R3(config-router)# Okay, now create a loopback interface that will be advertised to iBGP.\nR1(config-router)#int lo11 R1(config-if)#ip add 11.11.11.11 255.255.255.255 R1(config-if)#router bgp 10 R1(config-router)#network 11.11.11.11 mask 255.255.255.255 Now check on R3, make sure State/PfxRcd is no longer 0.\nR3(config-router)#do sh ip bgp sum BGP router identifier 34.34.34.3, local AS number 10 BGP table version is 3, main routing table version 3 1 network entries using 120 bytes of memory 1 path entries using 52 bytes of memory 2/1 BGP path/bestpath attribute entries using 248 bytes of memory 0 BGP route-map cache entries using 0 bytes of memory 0 BGP filter-list cache entries using 0 bytes of memory BGP using 420 total bytes of memory BGP activity 1/0 prefixes, 1/0 paths, scan interval 60 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 12.12.12.1 4 10 10 9 3 0 0 00:06:07 1 Check the advertised network.\nR3(config-router)#do sh ip bgp BGP table version is 3, local router ID is 34.34.34.3 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path r\u0026gt;i11.11.11.11/32 12.12.12.1 0 100 0 i Check ping and success.\nR3(config-router)#do ping 11.11.11.11 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 11.11.11.11, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 56/72/96 ms R3(config-router)# BGP - iBGP Update via Loopback # Physical interfaces can go down at any time so BGP adjacency can also drop. Because of that, BGP adjacency is done through loopback.\nCreate the loopback interface first.\nR1(config)#int lo0 R1(config-if)#ip add 1.1.1.1 255.255.255.255 R3(config)#int lo0 R3(config-if)#ip add 3.3.3.3 255.255.255.255 Now configure the loopback as a neighbor.\nR1(config-if)#router bgp 10 R1(config-router)#neighbor 3.3.3.3 remote-as 10 R3(config-if)#router bgp 10 R3(config-router)#neighbor 1.1.1.1 remote-as 10 Okay, now check its BGP neighbors.\nR3(config-router)#do sh ip bgp sum BGP router identifier 34.34.34.3, local AS number 10 BGP table version is 3, main routing table version 3 1 network entries using 120 bytes of memory 1 path entries using 52 bytes of memory 2/1 BGP path/bestpath attribute entries using 248 bytes of memory 0 BGP route-map cache entries using 0 bytes of memory 0 BGP filter-list cache entries using 0 bytes of memory BGP using 420 total bytes of memory BGP activity 1/0 prefixes, 1/0 paths, scan interval 60 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 1.1.1.1 4 10 0 0 0 0 0 never Active 12.12.12.1 4 10 8 7 3 0 0 00:04:20 1 Oops\u0026hellip; it turns out the adjacency through loopback has not been successful, although the state is already active but PfxRcd is still not there. Add the following command.\nR3(config-router)#neighbor 1.1.1.1 update-source loopback0 *Mar 1 00:06:33.639: %BGP-5-ADJCHANGE: neighbor 1.1.1.1 Up R1(config-router)#neighbor 3.3.3.3 update-source loopback0 *Mar 1 00:06:20.067: %BGP-5-ADJCHANGE: neighbor 3.3.3.3 Up Okay, check again.\nR3(config-router)#do sh ip bgp sum BGP router identifier 34.34.34.3, local AS number 10 BGP table version is 3, main routing table version 3 1 network entries using 120 bytes of memory 2 path entries using 104 bytes of memory 2/1 BGP path/bestpath attribute entries using 248 bytes of memory 0 BGP route-map cache entries using 0 bytes of memory 0 BGP filter-list cache entries using 0 bytes of memory BGP using 472 total bytes of memory BGP activity 1/0 prefixes, 2/0 paths, scan interval 60 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 1.1.1.1 4 10 11 10 3 0 0 00:06:02 1 12.12.12.1 4 10 15 14 3 0 0 00:11:08 1 R3(config-router)# Sip\u0026hellip; it has changed. Remove the adjacency of 12.12.12.1 and 23.23.23.3 first.\nR3(config-router)#no neighbor 12.12.12.1 *Mar 1 00:14:47.347: %BGP-5-ADJCHANGE: neighbor 12.12.12.1 Down Neighbor deleted R1(config-router)# *Mar 1 00:14:33.951: %BGP-5-ADJCHANGE: neighbor 23.23.23.3 Down Peer closed the session R1(config-router)#no neighbor 23.23.23.3 Okay, check again and there is only 1 neighbor.\nR3(config-router)#do sh ip bgp sum BGP router identifier 34.34.34.3, local AS number 10 BGP table version is 4, main routing table version 4 1 network entries using 120 bytes of memory 1 path entries using 52 bytes of memory 2/1 BGP path/bestpath attribute entries using 248 bytes of memory 0 BGP route-map cache entries using 0 bytes of memory 0 BGP filter-list cache entries using 0 bytes of memory BGP using 420 total bytes of memory BGP activity 1/0 prefixes, 2/1 paths, scan interval 60 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 1.1.1.1 4 10 14 13 4 0 0 00:09:13 1 R3(config-router)# And finally, ping test.\nR3(config-router)#do ping 11.11.11.11 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 11.11.11.11, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 44/87/140 ms R3(config-router)# Siipp\u0026hellip; success.\nBGP – eBGP Configuration # Configure eBGP on R3 and R4.\nR3(config)#router bgp 10 R3(config-router)#neighbor 34.34.34.4 remote-as 20 *Mar 1 00:03:03.087: %BGP-5-ADJCHANGE: neighbor 34.34.34.4 Up R4(config)#router bgp 20 R4(config-router)#neighbor 34.34.34.3 remote-as 10 *Mar 1 00:02:03.487: %BGP-5-ADJCHANGE: neighbor 34.34.34.3 Up Check neighbors.\nR4(config-router)#do sh ip bgp sum Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 34.34.34.3 4 10 5 4 2 0 0 00:00:02 1 R4(config-router)# R3(config-router)#do sh ip bgp sum Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 1.1.1.1 4 10 7 6 3 0 0 00:03:49 1 34.34.34.4 4 20 6 7 3 0 0 00:02:06 0 Okay, now check the bgp table and ping test.\nR4#sh ip bgp BGP table version is 2, local router ID is 34.34.34.4 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt; 11.11.11.11/32 34.34.34.3 0 10 i R4(config-router)#do ping 11.11.11.11 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 11.11.11.11, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 68/94/148 ms R4(config-router)# Success. The path indicates that the 11.11.11.11 network is advertised into iBGP (marked with i) from AS 10.\nOkay, fixed.\nBGP – eBGP Configuration 2 # Okay, continuation of the previous lab. Create a loopback interface on R4 and advertise to BGP 20.\nR4(config)#int lo44 *Mar 1 00:18:42.419: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback44, changed state to up R4(config-if)#ip add 44.44.44.44 255.255.255.255 R4(config-if)#router bgp 20 R4(config-router)#network 44.44.44.44 mask 255.255.255.255 R4(config-router)#do sh ip bgp BGP table version is 3, local router ID is 34.34.34.4 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt; 11.11.11.11/32 34.34.34.3 0 10 i *\u0026gt; 44.44.44.44/32 0.0.0.0 0 32768 i R4(config-router)# Now try pinging from R3.\nR3#ping 44.44.44.44 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 44.44.44.44, timeout is 2 seconds: !!!!! Succes What about from R1?\nType escape sequence to abort. Sending 5, 100-byte ICMP Echos to 44.44.44.44, timeout is 2 seconds: UUUUU Success rate is 0 percent (0/5) R1#sh ip route Gateway of last resort is not set 34.0.0.0/24 is subnetted, 1 subnets O 34.34.34.0 [110/30] via 12.12.12.2, 00:23:17, FastEthernet0/0 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 3.0.0.0/32 is subnetted, 1 subnets O 3.3.3.3 [110/21] via 12.12.12.2, 00:23:17, FastEthernet0/0 23.0.0.0/24 is subnetted, 1 subnets O 23.23.23.0 [110/20] via 12.12.12.2, 00:23:17, FastEthernet0/0 11.0.0.0/32 is subnetted, 1 subnets C 11.11.11.11 is directly connected, Loopback11 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 44.0.0.0/32 is subnetted, 1 subnets B 44.44.44.44 [200/0] via 34.34.34.4, 00:04:24 R1# Oops\u0026hellip; unreachable. Even though the 44.44.44.44 network is already in the routing table. Let\u0026rsquo;s try traceroute first.\nR1#traceroute 44.44.44.44 Type escape sequence to abort. Tracing the route to 44.44.44.44 1 12.12.12.2 76 msec 80 msec 44 msec 2 12.12.12.2 !H !H !H R1# It turns out it stops at R2. Then what is the solution? Check the routing table on R4.\nR4#sh ip ro Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 34.0.0.0/24 is subnetted, 1 subnets C 34.34.34.0 is directly connected, FastEthernet0/0 23.0.0.0/24 is subnetted, 1 subnets B 23.23.23.0 [20/0] via 34.34.34.3, 00:01:22 11.0.0.0/32 is subnetted, 1 subnets B 11.11.11.11 [20/0] via 34.34.34.3, 00:02:38 44.0.0.0/32 is subnetted, 1 subnets C 44.44.44.44 is directly connected, Loopback44 R4# It turns out only IP 11.11.11.11 is recognized. Use that IP as the source.\nR1#ping Protocol [ip]: Target IP address: 44.44.44.44 Repeat count [5]: Datagram size [100]: Timeout in seconds [2]: Extended commands [n]: y Source address or interface: 11.11.11.11 Type of service [0]: Set DF bit in IP header? [no]: Validate reply data? [no]: Data pattern [0xABCD]: Loose, Strict, Record, Timestamp, Verbose[none]: Sweep range of sizes [n]: Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 44.44.44.44, timeout is 2 seconds: Packet sent with a source address of 11.11.11.11 UUUUU Success rate is 0 percent (0/5) R1# Oops\u0026hellip; it turns out it still can\u0026rsquo;t. That\u0026rsquo;s when I sometimes feel sad\u0026hellip;\nThe way\u0026hellip; elevate R2 to be iBGP as well. The requirement for iBGP is full mesh or it can also be route reflector. If full mesh, it means each router must have a link to every other router.\nR2(config)#int lo0 R2(config-if)#ip add 2.2.2.2 255.255.255.255 R2(config-if)#router bgp 10 R2(config-router)#neighbor 1.1.1.1 remote-as 10 R2(config-router)#neighbor 1.1.1.1 up lo0 R2(config-router)#neighbor 3.3.3.3 remote-as 10 R2(config-router)#neighbor 3.3.3.3 up lo0 R1(config)#router bgp 10 R1(config-router)#neighbor 2.2.2.2 remote-as 10 R1(config-router)#neighbor 2.2.2.2 up lo0 R3(config)#router bgp 10 R3(config-router)#neighbor 2.2.2.2 remot 10 R3(config-router)#neighbor 2.2.2.2 up lo0 Okay, check again.\nR1#ping Protocol [ip]: Target IP address: 44.44.44.44 Repeat count [5]: Datagram size [100]: Timeout in seconds [2]: Extended commands [n]: y Source address or interface: 11.11.11.11 Type of service [0]: Set DF bit in IP header? [no]: Validate reply data? [no]: Data pattern [0xABCD]: Loose, Strict, Record, Timestamp, Verbose[none]: Sweep range of sizes [n]: Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 44.44.44.44, timeout is 2 seconds: Packet sent with a source address of 11.11.11.11 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 144/196/264 ms R1# This is because by default the source used for ping is the physical interface. So just advertise the interface network into BGP.\nR1(config)#router bgp 10 R1(config-router)#network 12.12.12.0 mask 255.255.255.0 R1(config-router)#do ping 44.44.44.44 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 44.44.44.44, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 64/150/204 ms R1(config-router)# Okay, now try pinging 44.44.44.44 from R2.\nR2#ping 44.44.44.44 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 44.44.44.44, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) R2#tra R2#traceroute 44.44.44.44 Type escape sequence to abort. Tracing the route to 44.44.44.44 1 23.23.23.3 72 msec 72 msec 68 msec 2 * * * 3 R2# Failed, right? The trace ends at R3. In that case, advertise the 23.23.23.0 network on R3 to BGP.\nR3(config)#router bgp 10 R3(config-router)#net 23.23.23.0 mask 255.255.255.0 R2#ping 44.44.44.44 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 44.44.44.44, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 68/102/144 ms R2# Good Job\u0026hellip;\nBGP – eBGP Configuration 3 # Still using the previous topology, just add R5 on the left.\nR1(config)#int fa0/1 R1(config-if)#ip add 15.15.15.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#router bgp 10 R1(config-router)#nei 15.15.15.5 remot 5 R5(config)#int fa0/1 R5(config-if)#ip add 15.15.15.5 255.255.255.0 R5(config-if)#no sh R5(config-if)#router bgp 5 R5(config-router)#neighbor 15.15.15.1 remot 10 R5(config-router)#do sh ip bgp BGP table version is 4, local router ID is 15.15.15.5 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt; 11.11.11.11/32 15.15.15.1 0 0 10 i *\u0026gt; 12.12.12.0/24 15.15.15.1 0 0 10 i *\u0026gt; 44.44.44.44/32 15.15.15.1 0 10 20 i R5(config-router)# Now ping and trace to R4 in AS 20.\nR5#ping 44.44.44.44 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 44.44.44.44, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) R5#trac 44.44.44.44 Type escape sequence to abort. Tracing the route to 44.44.44.44 1 15.15.15.1 92 msec 76 msec 92 msec 2 12.12.12.2 [AS 10] 96 msec 60 msec 60 msec 3 23.23.23.3 152 msec 156 msec 88 msec 4 R5# Oops failed\u0026hellip; the solution is R5 must advertise its source network.\nR5(config)#router bgp 5 R5(config-router)#network 15.15.15.0 mask 255.255.255.0 R5#ping 44.44.44.44 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 44.44.44.44, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 188/251/304 ms R5# Now let\u0026rsquo;s do a little experiment. Delete bgp 10 on R2. Previously, copy the BGP configuration to notepad first.\nR2#sh run | s r b router bgp 10 no synchronization bgp log-neighbor-changes neighbor 1.1.1.1 remote-as 10 neighbor 1.1.1.1 update-source Loopback0 neighbor 3.3.3.3 remote-as 10 neighbor 3.3.3.3 update-source Loopback0 no auto-summary R2(config)#no router bgp 10 *Mar 1 00:10:49.335: %BGP-5-ADJCHANGE: neighbor 1.1.1.1 Down BGP protocol initialization *Mar 1 00:10:49.335: %BGP-5-ADJCHANGE: neighbor 3.3.3.3 Down BGP protocol initialization Check ping from R5 to R4.\nR5#ping 44.44.44.44 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 44.44.44.44, timeout is 2 seconds: UUUUU Success rate is 0 percent (0/5) R5# Now put the BGP 10 configuration back on R2 and check again.\nR5#ping 44.44.44.44 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 44.44.44.44, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 156/218/276 ms R5# Okay, sip. The conclusion? \u0026hellip; Write it yourself.\nBGP – Next Hop Self # Continuing lab 4 which is simpler and lighter.\nR2#sh ip route Gateway of last resort is not set 34.0.0.0/24 is subnetted, 1 subnets O 34.34.34.0 [110/20] via 23.23.23.3, 00:01:53, FastEthernet0/1 1.0.0.0/32 is subnetted, 1 subnets O 1.1.1.1 [110/11] via 12.12.12.1, 00:01:53, FastEthernet0/0 2.0.0.0/32 is subnetted, 1 subnets C 2.2.2.2 is directly connected, Loopback0 3.0.0.0/32 is subnetted, 1 subnets O 3.3.3.3 [110/11] via 23.23.23.3, 00:01:53, FastEthernet0/1 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, FastEthernet0/1 11.0.0.0/32 is subnetted, 1 subnets O 11.11.11.11 [110/11] via 12.12.12.1, 00:01:54, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 44.0.0.0/32 is subnetted, 1 subnets B 44.44.44.44 [200/0] via 34.34.34.4, 00:01:06 R2#sh ip bgp BGP table version is 8, local router ID is 2.2.2.2 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path r\u0026gt;i11.11.11.11/32 1.1.1.1 0 100 0 i r\u0026gt;i12.12.12.0/24 1.1.1.1 0 100 0 i r\u0026gt;i23.23.23.0/24 3.3.3.3 0 100 0 i *\u0026gt;i44.44.44.44/32 34.34.34.4 0 100 0 20 i R2# When the default ospf network of R3 is deleted, the route disappears.\nR3(config)#router ospf 1 R3(config-router)#no network 0.0.0.0 255.255.255.255 area 0 Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets O 1.1.1.1 [110/11] via 12.12.12.1, 00:05:18, FastEthernet0/0 2.0.0.0/32 is subnetted, 1 subnets C 2.2.2.2 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, FastEthernet0/1 11.0.0.0/32 is subnetted, 1 subnets O 11.11.11.11 [110/11] via 12.12.12.1, 00:05:18, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 R2#sh ip bgp BGP table version is 10, local router ID is 2.2.2.2 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path r\u0026gt;i11.11.11.11/32 1.1.1.1 0 100 0 i r\u0026gt;i12.12.12.0/24 1.1.1.1 0 100 0 i * i23.23.23.0/24 3.3.3.3 0 100 0 i * i44.44.44.44/32 34.34.34.4 0 100 0 20 i R2# iBGP does not choose its own next-hop, in this case it hitchhikes with OSPF. Because OSPF is removed, the BGP route does not appear in the routing table. However, we can configure the next-hop manually in iBGP.\nR2(config-router)#router bgp 10 R2(config-router)#neighbor 23.23.23.3 remot 10 R3(config-router)#router bgp 10 R3(config-router)#neighbor 23.23.23.2 remot 10 R3(config-router)#neighbor 23.23.23.2 next-hop-self Now check again.\nR2#sh ip bgp sum BGP router identifier 2.2.2.2, local AS number 10 BGP table version is 13, main routing table version 13 4 network entries using 480 bytes of memory 4 path entries using 208 bytes of memory 3/2 BGP path/bestpath attribute entries using 372 bytes of memory 1 BGP AS-PATH entries using 24 bytes of memory 0 BGP route-map cache entries using 0 bytes of memory 0 BGP filter-list cache entries using 0 bytes of memory BGP using 1084 total bytes of memory BGP activity 6/2 prefixes, 6/2 paths, scan interval 60 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 1.1.1.1 4 10 18 16 13 0 0 00:13:04 2 3.3.3.3 4 10 10 12 0 0 0 00:06:10 Active 23.23.23.3 4 10 8 6 13 0 0 00:02:33 2 R2#sh ip bgp BGP table version is 13, local router ID is 2.2.2.2 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path r\u0026gt;i11.11.11.11/32 1.1.1.1 0 100 0 i r\u0026gt;i12.12.12.0/24 1.1.1.1 0 100 0 i r\u0026gt;i23.23.23.0/24 23.23.23.3 0 100 0 i *\u0026gt;i44.44.44.44/32 23.23.23.3 0 100 0 20 i R2#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets O 1.1.1.1 [110/11] via 12.12.12.1, 00:13:39, FastEthernet0/0 2.0.0.0/32 is subnetted, 1 subnets C 2.2.2.2 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, FastEthernet0/1 11.0.0.0/32 is subnetted, 1 subnets O 11.11.11.11 [110/11] via 12.12.12.1, 00:13:39, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 44.0.0.0/32 is subnetted, 1 subnets B 44.44.44.44 [200/0] via 23.23.23.3, 00:02:49 R2#ping 44.44.44.44 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 44.44.44.44, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 48/78/112 ms R2# Sip then.\nBGP – Authentication # R2(config)#router bgp 10 R2(config-router)#neighbor 1.1.1.1 password ? \u0026lt;0-7\u0026gt; Encryption type (0 to disable encryption, 7 for proprietary) R2(config-router)#neighbor 1.1.1.1 password 0 HAHAHA R1(config)#router bgp 10 R1(config-router)#neighbor 2.2.2.2 password 0 HAHAHA *Mar 1 00:05:09.383: %BGP-3-NOTIFICATION: received from neighbor 2.2.2.2 4/0 (hold time expired) 0 bytes R1(config)# *Mar 1 00:05:09.383: %BGP-5-ADJCHANGE: neighbor 2.2.2.2 Down BGP Notification received *Mar 1 00:05:36.667: %BGP-5-ADJCHANGE: neighbor 2.2.2.2 Up Okay, done. Easy, right.\nBGP Route Reflector # Back to the lab 5 topology. In iBGP, the peers must be full mesh. Problems occur when there are new routers connected. It means the new peers must be configured one by one.\nThe solution is to make one of the routers a Route Reflector (RR) so that only the RR is full mesh to all routers while the other routers only need to peer to the RR.\nWhat we want to configure is iBGP AS 10. We will make R1 an RR.\nR1#sh run | s r b router bgp 10 no synchronization bgp log-neighbor-changes network 11.11.11.11 mask 255.255.255.255 network 12.12.12.0 mask 255.255.255.0 neighbor 2.2.2.2 remote-as 10 neighbor 2.2.2.2 update-source Loopback0 neighbor 3.3.3.3 remote-as 10 neighbor 3.3.3.3 update-source Loopback0 neighbor 15.15.15.5 remote-as 5 no auto-summary R1# Because it has been configured previously, just set the route-reflector-client.\nR1(config)#router bgp 10 R1(config-router)#neighbor 2.2.2.2 route-reflector-client R1(config-router)#neighbor 3.3.3.3 route-reflector-client *Mar 1 00:11:20.291: %BGP-5-ADJCHANGE: neighbor 2.2.2.2 Down RR client config change R1(config-router)#neighbor 2.2.2.2 route-reflector-client *Mar 1 00:11:22.543: %BGP-5-ADJCHANGE: neighbor 2.2.2.2 Up *Mar 1 00:11:30.891: %BGP-5-ADJCHANGE: neighbor 3.3.3.3 Down RR client config change *Mar 1 00:11:33.275: %BGP-5-ADJCHANGE: neighbor 3.3.3.3 Up Now remove peers on R2 and R3 that are not pointing to R1.\nR2(config-router)#no neighbor 3.3.3.3 remot 10 R3(config-router)#no neighbor 2.2.2.2 remot 10 For checking, create a loopback interface and advertise to iBGP.\nR2(config)#int lo22 R2(config-if)#ip add 22.22.22.22 255.255.255.255 R2(config-if)#router bgp 10 R2(config-router)#net 22.22.22.22 mask 255.255.255.255 Make sure R1 and R3 can ping.\nR1#ping 22.22.22.22 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 22.22.22.22, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 16/52/80 ms R1# R3#ping 22.22.22.22 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 22.22.22.22, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 20/53/88 ms R3# And when checked, there is only one peer or network.\nR2#sh ip bgp sum BGP router identifier 2.2.2.2, local AS number 10 BGP table version is 19, main routing table version 19 5 network entries using 600 bytes of memory 5 path entries using 260 bytes of memory 5/4 BGP path/bestpath attribute entries using 620 bytes of memory 1 BGP rrinfo entries using 24 bytes of memory 2 BGP AS-PATH entries using 48 bytes of memory 0 BGP route-map cache entries using 0 bytes of memory 0 BGP filter-list cache entries using 0 bytes of memory Bitfield cache entries: current 1 (at peak 1) using 32 bytes of memory BGP using 1584 total bytes of memory BGP activity 5/0 prefixes, 10/5 paths, scan interval 60 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 1.1.1.1 4 10 35 28 19 0 0 00:10:28 4 R2# Okay, fixed.\nBGP Attribute - Origin # Create a loopback interface to redistribute to BGP.\nR2(config)#int lo222 R2(config-if)#ip add 222.222.222.222 255.255.255.255 R2(config-if)#router rip R2(config-router)#net 222.222.222.0 R2(config-router)#router bgp 10 R2(config-router)#redistribute rip R5#sh ip bgp BGP table version is 8, local router ID is 15.15.15.5 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt; 11.11.11.11/32 1 5.15.15.1 0 0 10 i *\u0026gt; 12.12.12.0/24 15.15.15.1 0 0 10 i *\u0026gt; 15.15.15.0/24 0.0.0.0 0 32768 i *\u0026gt; 22.22.22.22/32 15.15.15.1 0 10 i *\u0026gt; 23.23.23.0/24 15.15.15.1 0 10 i *\u0026gt; 44.44.44.44/32 15.15.15.1 0 10 20 i *\u0026gt; 222.222.222.222/32 15.15.15.1 0 10 ? R5#ping 222.222.222.222 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 222.222.222.222, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 32/80/108 ms R5# In the path there are several origin code descriptions:\ni = comes from BGP, either iBGP or eBGP, with the network x.x.x.x mask x.x.x.x command\ne = comes from the EGP protocol, currently no longer exists.\n? = comes from other protocols (RIP, EIGRP, OSPF, Static) that are redistributed into BGP.\nR5 goes to 222.222.222.222/32 through 15.15.15.1 with path 10 ?. It means the Next AS Path is 200 with the origin code being ? meaning it occurs through redistributing another protocol to BGP.\nBGP Attribute - Community # R1(config)#int lo0 R1(config-if)#ip add 1.1.1.1 255.255.255.255 R1(config-if)#int lo11 R1(config-if)#ip add 11.11.11.11 255.255.255.255 R1(config-if)#int fa0/0 R1(config-if)#ip add 12.12.12.1 255.255.255.0 R1(config-if)#router ospf 1 R1(config-router)#net 1.1.1.1 0.0.0.0 area 0 R1(config-router)#net 12.12.12.0 0.0.0.255 area 0 R2(config)#int lo0 R2(config-if)#ip add 2.2.2.2 255.255.255.255 R2(config-if)#int lo22 R2(config-if)#ip add 22.22.22.22 255.255.255.255 R2(config-if)#int fa0/0 R2(config-if)#no sh R2(config-if)#ip add 12.12.12.2 255.255.255.0 R2(config-if)#int fa0/1 R2(config-if)#ip add 23.23.23.2 255.255.255.0 R2(config-if)#no sh R2(config-if)#int s1/1 R2(config-if)#ip add 24.24.24.2 255.255.255.0 R2(config-if)#no sh R2(config)#router ospf 1 R2(config-router)#net 2.2.2.2 0.0.0.0 area 0 R2(config-router)#net 12.12.12.0 0.0.0.255 area 0 R2(config-router)#net 24.24.24.0 0.0.0.255 area 0 R2(config-router)#net 23.23.23.0 0.0.0.255 area 0 R3(config)#int lo0 R3(config-if)#ip add 3.3.3.3 255.255.255.255 R3(config-if)#int lo33 R3(config-if)#ip add 33.33.33.33 255.255.255.255 R3(config-if)#int fa0/1 R3(config-if)#no sh R3(config-if)#ip add 23.23.23. R3(config-if)#ip add 23.23.23.3 255.255.255.0 R3(config-if)#router ospf 1 R3(config-router)#net 3.3.3.3 0.0.0.0 area 0 R3(config-router)#net 23.23.23.0 0.0.0.255 area 0 R4(config-if)#int lo0 R4(config-if)#ip add 4.4.4.4 255.255.255.255 R4(config-if)#int s1/1 R4(config-if)#ip add 24.24.24.24 255.255.255.0 R4(config-if)#no sh BGP Configuration. R1 as RR.\nR1(config-router)#router bgp 123 R1(config-router)#neighbor 2.2.2.2 remote-as 123 R1(config-router)#neighbor 2.2.2.2 update-source loopback0 R1(config-router)#network 11.11.11.11 mask 255.255.255.255 R2(config-router)#router bgp 123 R2(config-router)#neighbor 1.1.1.1 remote-as 123 R2(config-router)#neighbor 3.3.3.3 remote-as 123 R2(config-router)#neighbor 24.24.24.4 remote-as 4 R2(config-router)#neighbor 1.1.1.1 update-source loopback 0 R2(config-router)#neighbor 3.3.3.3 update-source loopback 0 R2(config-router)#neighbor 1.1.1.1 route-reflector-client R2(config-router)#neighbor 3.3.3.3 route-reflector-client R2(config-router)#network 22.22.22.22 mask 255.255.255.255 R3(config)#router bgp 123 R3(config-router)#neighbor 2.2.2.2 remote-as 123 R3(config-router)#neighbor 2.2.2.2 up lo0 R3(config-router)#network 33.33.33.33 mask 255.255.255.255 R4(config-if)#router bgp 4 R4(config-router)#neighbor 24.24.24.2 remot 123 R4(config-router)#network 4.4.4.4 mask 255.255.255.255 Now check the bgp routes on R1 and R4.\nR1#sh ip bgp BGP table version is 4, local router ID is 11.11.11.11 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path * i4.4.4.4/32 24.24.24.4 0 100 0 4 i *\u0026gt; 11.11.11.11/32 0.0.0.0 0 32768 i *\u0026gt;i22.22.22.22/32 2.2.2.2 0 100 0 i *\u0026gt;i33.33.33.33/32 3.3.3.3 0 100 0 i R1# R4#sh ip bgp BGP table version is 5, local router ID is 4.4.4.4 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt; 4.4.4.4/32 0.0.0.0 0 32768 i *\u0026gt; 11.11.11.11/32 24.24.24.2 0 123 i *\u0026gt; 22.22.22.22/32 24.24.24.2 0 0 123 i *\u0026gt; 33.33.33.33/32 24.24.24.2 0 123 i R4# There are several set-communities in BGP:\nno-export = network is not advertised to eBGP.\nno-advertise = network is not advertised to iBGP/eBGP.\nlocal-as = network is only advertised to iBGP Confederation (there is an AS inside the AS).\nSet community no-export on R1.\nR1(config)#access-list 10 permit host 11.11.11.11 R1(config)#route-map NO-EXPORT R1(config-route-map)#match ip address ? \u0026lt;1-199\u0026gt; IP access-list number \u0026lt;1300-2699\u0026gt; IP access-list number (expanded range) WORD IP access-list name prefix-list Match entries of prefix-lists \u0026lt;cr\u0026gt; R1(config-route-map)#match ip address 10 R1(config-route-map)#set community ? \u0026lt;1-4294967295\u0026gt; community number aa:nn community number in aa:nn format additive Add to the existing community internet Internet (well-known community) local-AS Do not send outside local AS (well-known community) no-advertise Do not advertise to any peer (well-known community) no-export Do not export to next AS (well-known community) none No community attribute \u0026lt;cr\u0026gt; R1(config-route-map)#set community no-export R1(config-route-map)#router bgp 123 R1(config-router)#neighbor 2.2.2.2 route-map NO-EXPORT out R1(config-router)#neighbor 2.2.2.2 send-community Check bgp on R4 to make sure the 11.11.11.11 network is not there.\nR4#sh ip bgp BGP table version is 6, local router ID is 4.4.4.4 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt; 4.4.4.4/32 0.0.0.0 0 32768 i *\u0026gt; 22.22.22.22/32 24.24.24.2 0 0 123 i *\u0026gt; 33.33.33.33/32 24.24.24.2 0 123 i R4# R2#sh ip bgp 11.11.11.11 BGP routing table entry for 11.11.11.11/32, version 3 Paths: (1 available, best #1, table Default-IP-Routing-Table, not advertised to EBGP peer) Flag: 0x820 Advertised to update-groups: 2 Local, (Received from a RR-client) 1.1.1.1 (metric 11) from 1.1.1.1 (11.11.11.11) Origin IGP, metric 0, localpref 100, valid, internal, best Community: no-export R2# Set community no-advertise on R3.\nR3(config)#access-list 10 permit host 33.33.33.33 R3(config)#route-map NO-ADVERTISE R3(config-route-map)#match ip address 10 R3(config-route-map)#set community no-advertise R3(config-route-map)#router bgp 123 R3(config-router)#neighbor 2.2.2.2 route-map NO-ADVERTISE out R3(config-router)#neighbor 2.2.2.2 send-community Check on R1 and R4, make sure the 33.33.33.33 network is no longer there.\nR1#sh ip bgp BGP table version is 5, local router ID is 11.11.11.11 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path * i4.4.4.4/32 24.24.24.4 0 100 0 4 i *\u0026gt; 11.11.11.11/32 0.0.0.0 0 32768 i *\u0026gt;i22.22.22.22/32 2.2.2.2 0 100 0 i R1# R4#sh ip bgp BGP table version is 7, local router ID is 4.4.4.4 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt; 4.4.4.4/32 0.0.0.0 0 32768 i *\u0026gt; 22.22.22.22/32 4.24.24.2 0 0 123 i R4# R2#sh ip bgp 33.33.33.33 BGP routing table entry for 33.33.33.33/32, version 5 Paths: (1 available, best #1, table Default-IP-Routing-Table, not advertised to any peer) Flag: 0x820 Not advertised to any peer Local, (Received from a RR-client) 3.3.3.3 (metric 11) from 3.3.3.3 (33.33.33.33) Origin IGP, metric 0, localpref 100, valid, internal, best Community: no-advertise R2# Okay, sip.\nBGP Attribute - Community Local-AS and Configuring Confederation # Okay, BGP Confederation configuration, beforehand, delete BGP 123 first.\nR1(config)#no router bgp 123 R1(config)#router bgp 1 R1(config-router)# bgp confederation identifier 123 R1(config-router)# bgp confederation peers 23 R1(config-router)# network 11.11.11.11 mask 255.255.255.255 R1(config-router)# neighbor 12.12.12.2 remote-as 23 R2(config)#no router bgp 123 R2(config)#router bgp 23 R2(config-router)# bgp confederation identifier 123 R2(config-router)# bgp confederation peers 1 R2(config-router)# network 22.22.22.22 mask 255.255.255.255 R2(config-router)# neighbor 12.12.12.1 remote-as 1 R2(config-router)# neighbor 12.12.12.1 next-hop-self R2(config-router)# neighbor 23.23.23.3 remote-as 23 R2(config-router)# neighbor 23.23.23.3 next-hop-self R2(config-router)# neighbor 24.24.24.4 remote-as 4 R3(config)#no router bgp 123 R3(config)#router bgp 23 R3(config-router)# bgp confederation identifier 123 R3(config-router)# network 33.33.33.33 mask 255.255.255.255 R3(config-router)# neighbor 23.23.23.2 remote-as 23 Okay, check first.\nR2(config-router)#do sh ip bgp sum BGP router identifier 22.22.22.22, local AS number 23 BGP table version is 5, main routing table version 5 4 network entries using 480 bytes of memory 4 path entries using 208 bytes of memory 5/4 BGP path/bestpath attribute entries using 620 bytes of memory 2 BGP AS-PATH entries using 48 bytes of memory 0 BGP route-map cache entries using 0 bytes of memory 0 BGP filter-list cache entries using 0 bytes of memory Bitfield cache entries: current 4 (at peak 4) using 128 bytes of memory BGP using 1484 total bytes of memory BGP activity 4/0 prefixes, 4/0 paths, scan interval 60 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 12.12.12.1 4 1 6 8 5 0 0 00:02:13 1 23.23.23.3 4 23 6 8 5 0 0 00:02:03 1 24.24.24.4 4 4 7 9 5 0 0 00:02:08 1 R2(config-router)#do sh ip bgp BGP table version is 5, local router ID is 22.22.22.22 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt; 4.4.4.4/32 24.24.24.4 0 0 4 i *\u0026gt; 11.11.11.11/32 12.12.12.1 0 100 0 (1) i *\u0026gt; 22.22.22.22/32 0.0.0.0 0 32768 i *\u0026gt;i33.33.33.33/32 23.23.23.3 0 100 0 i R2(config-router)# R1(config-router)#do sh ip bgp BGP table version is 5, local router ID is 11.11.11.11 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt; 4.4.4.4/32 12.12.12.2 0 100 0 (23) 4 i *\u0026gt; 11.11.11.11/32 0.0.0.0 0 32768 i *\u0026gt; 22.22.22.22/32 12.12.12.2 0 100 0 (23) i *\u0026gt; 33.33.33.33/32 12.12.12.2 0 100 0 (23) i R1(config-router)# Now set community local-as on R3.\nR3(config)#access-list 20 permit host 33.33.33.33 R3(config)#route-map LOCAL-AS R3(config-route-map)#match ip address 20 R3(config-route-map)#set community local-AS R3(config-route-map)#router bgp 23 R3(config-router)#neighbor 23.23.23.2 route-map LOCAL-AS out R3(config-router)#neighbor 23.23.23.2 send-community Check on R1 and R2. The 33.33.33.33 network should only be advertised to Confederation iBGP (R2).\nR1#sh ip bgp BGP table version is 4, local router ID is 11.11.11.11 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt; 4.4.4.4/32 12.12.12.2 0 100 0 (23) 4 i *\u0026gt; 11.11.11.11/32 0.0.0.0 0 32768 i *\u0026gt; 22.22.22.22/32 12.12.12.2 0 100 0 (23) i R1# R2#sh ip bgp BGP table version is 5, local router ID is 22.22.22.22 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt; 4.4.4.4/32 24.24.24.4 0 0 4 i *\u0026gt; 11.11.11.11/32 12.12.12.1 0 100 0 (1) i *\u0026gt; 22.22.22.22/32 0.0.0.0 0 32768 i *\u0026gt;i33.33.33.33/32 23.23.23.3 0 100 0 i R2#sh ip bgp 33.33.33.33 BGP routing table entry for 33.33.33.33/32, version 4 Paths: (1 available, best #1, table Default-IP-Routing-Table, not advertised outside local AS) Not advertised to any peer Local 23.23.23.3 from 23.23.23.3 (33.33.33.33) Origin IGP, metric 0, localpref 100, valid, confed-internal, best Community: local-AS R2# BGP Aggregator # This aggregator is the same as a summary.\nR4(config)#int lo1 R4(config-if)#ip add 44.1.1.1 255.255.255.255 R4(config-if)#int lo2 R4(config-if)#ip add 44.2.1.1 255.255.255.255 R4(config-if)#int lo3 R4(config-if)#ip add 44.3.1.1 255.255.255.255 R4(config-if)#int lo4 R4(config-if)#ip add 44.4.1.1 255.255.255.255 R4(config-if)#int lo5 R4(config-if)#ip add 44.5.1.1 255.255.255.255 R4(config-if)#int lo6 R4(config-if)#ip add 44.6.1.1 255.255.255.255 Advertise to BGP.\nR4(config-if)#router bgp 4 R4(config-router)#network 44.1.1.1 mask 255.255.255.255 R4(config-router)#network 44.2.1.1 mask 255.255.255.255 R4(config-router)#network 44.3.1.1 mask 255.255.255.255 R4(config-router)#network 44.4.1.1 mask 255.255.255.255 R4(config-router)#network 44.5.1.1 mask 255.255.255.255 R4(config-router)#network 44.6.1.1 mask 255.255.255.255 Check on R1.\nR1#sh ip bgp BGP table version is 10, local router ID is 11.11.11.11 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt; 4.4.4.4/32 12.12.12.2 0 100 0 (23) 4 i *\u0026gt; 11.11.11.11/32 0.0.0.0 0 32768 i *\u0026gt; 22.22.22.22/32 12.12.12.2 0 100 0 (23) i *\u0026gt; 44.1.1.1/32 12.12.12.2 0 100 0 (23) 4 i *\u0026gt; 44.2.1.1/32 12.12.12.2 0 100 0 (23) 4 i *\u0026gt; 44.3.1.1/32 12.12.12.2 0 100 0 (23) 4 i *\u0026gt; 44.4.1.1/32 12.12.12.2 0 100 0 (23) 4 i *\u0026gt; 44.5.1.1/32 12.12.12.2 0 100 0 (23) 4 i *\u0026gt; 44.6.1.1/32 12.12.12.2 0 100 0 (23) 4 i R1# Perform aggregate on R4 then check again on R1.\nR4(config-router)#aggregate-address 44.0.0.0 255.248.0.0 R1#sh ip bgp BGP table version is 11, local router ID is 11.11.11.11 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt; 4.4.4.4/32 12.12.12.2 0 100 0 (23) 4 i *\u0026gt; 11.11.11.11/32 0.0.0.0 0 32768 i *\u0026gt; 22.22.22.22/32 12.12.12.2 0 100 0 (23) i *\u0026gt; 44.0.0.0/13 12.12.12.2 0 100 0 (23) 4 i *\u0026gt; 44.1.1.1/32 12.12.12.2 0 100 0 (23) 4 i *\u0026gt; 44.2.1.1/32 12.12.12.2 0 100 0 (23) 4 i *\u0026gt; 44.3.1.1/32 12.12.12.2 0 100 0 (23) 4 i *\u0026gt; 44.4.1.1/32 12.12.12.2 0 100 0 (23) 4 i *\u0026gt; 44.5.1.1/32 12.12.12.2 0 100 0 (23) 4 i *\u0026gt; 44.6.1.1/32 12.12.12.2 0 100 0 (23) 4 i R1#sh ip bgp 44.0.0.0 BGP routing table entry for 44.0.0.0/13, version 11 Paths: (1 available, best #1, table Default-IP-Routing-Table) Flag: 0x820 Not advertised to any peer (23) 4, (aggregated by 4 4.4.4.4) 12.12.12.2 from 12.12.12.2 (22.22.22.22) Origin IGP, metric 0, localpref 100, valid, confed-external, atomicaggregate, best R1# Aggregate single route.\nR4(config-router)#aggregate-address 44.0.0.0 255.248.0.0 summary-only R1#sh ip bgp BGP table version is 17, local router ID is 11.11.11.11 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt; 4.4.4.4/32 12.12.12.2 0 100 0 (23) 4 i *\u0026gt; 11.11.11.11/32 0.0.0.0 0 32768 i *\u0026gt; 22.22.22.22/32 12.12.12.2 0 100 0 (23) i *\u0026gt; 44.0.0.0/13 12.12.12.2 0 100 0 (23) 4 i R1# Aggregate suppress map.\nR4(config)#access-list 1 permit host 44.1.1.1 R4(config)#access-list 1 permit host 44.2.1.1 R4(config)#access-list 1 permit host 44.3.1.1 R4(config)#access-list 1 deny any R4(config)#route-map BLOK R4(config-route-map)#match ip address 1 R4(config-route-map)#router bgp 4 R4(config-router)#aggregate-address 44.0.0.0 255.248.0.0 suppress-map BLOK R4(config-router)#do sh bgp BGP table version is 26, local router ID is 4.4.4.4 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt; 4.4.4.4/32 0.0.0.0 0 32768 i *\u0026gt; 11.11.11.11/32 24.24.24.2 0 123 i *\u0026gt; 22.22.22.22/32 24.24.24.2 0 0 123 i *\u0026gt; 44.0.0.0/13 0.0.0.0 32768 i s\u0026gt; 44.1.1.1/32 0.0.0.0 0 32768 i s\u0026gt; 44.2.1.1/32 0.0.0.0 0 32768 i s\u0026gt; 44.3.1.1/32 0.0.0.0 0 32768 i *\u0026gt; 44.4.1.1/32 0.0.0.0 0 32768 i *\u0026gt; 44.5.1.1/32 0.0.0.0 0 32768 i *\u0026gt; 44.6.1.1/32 0.0.0.0 0 32768 i R4(config-router)# Check on R1.\nR1#sh ip bgp BGP table version is 26, local router ID is 11.11.11.11 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt; 4.4.4.4/32 12.12.12.2 0 100 0 (23) 4 i *\u0026gt; 11.11.11.11/32 0.0.0.0 0 32768 i *\u0026gt; 22.22.22.22/32 12.12.12.2 0 100 0 (23) i *\u0026gt; 44.0.0.0/13 12.12.12.2 0 100 0 (23) 4 i *\u0026gt; 44.4.1.1/32 12.12.12.2 0 100 0 (23) 4 i *\u0026gt; 44.5.1.1/32 12.12.12.2 0 100 0 (23) 4 i *\u0026gt; 44.6.1.1/32 12.12.12.2 0 100 0 (23) 4 i R1# Okay, sip.\nBGP Attribute - Weight # R1(config)#int fa0/0 R1(config-if)#ip add 12.12.12.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#int fa0/1 R1(config-if)#ip add 15.15.15.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#int s1/1 R1(config-if)#ip add 13.13.13.1 255.255.255.0 R1(config-if)#no sh R2(config)#int fa0/0 R2(config-if)#ip add 12.12.12.2 255.255.255.0 R2(config-if)#no sh R2(config-if)#int s1/1 R2(config-if)#ip add 24.24.24.2 255.255.255.0 R2(config-if)#no sh R2(config-if)#int fa0/1 R2(config-if)#ip add 26.26.26.2 255.255.255.0 R2(config-if)#no sh R3(config)#int fa0/0 R3(config-if)#ip add 34.34.34.3 255.255.255.0 R3(config-if)#no sh R3(config-if)#int s1/1 R3(config-if)#ip add 13.13.13.3 255.255.255.0 R3(config-if)#no sh R4(config)#int fa0/0 R4(config-if)#ip add 34.34.34.4 255.255.255.0 R4(config-if)#no sh R4(config-if)#int s1/1 R4(config-if)#ip add 24.24.24.4 255.255.255.0 R4(config-if)#no sh R5(config)#int fa0/1 R5(config-if)#ip add 15.15.15.5 255.255.255.0 R5(config-if)#no sh R6(config)#int fa0/1 R6(config-if)#ip add 26.26.26.6 255.255.255.0 R6(config-if)#no sh BGP configuration.\nR1(config)#router bgp 13 R1(config-router)# neighbor 12.12.12.2 remote-as 24 R1(config-router)# neighbor 12.12.12.2 next-hop-self R1(config-router)# neighbor 13.13.13.3 remote-as 13 R1(config-router)# neighbor 13.13.13.3 next-hop-self R3(config-router)#router bgp 13 R3(config-router)# neighbor 13.13.13.1 remote-as 13 R3(config-router)# neighbor 13.13.13.1 next-hop-self R3(config-router)# neighbor 34.34.34.4 remote-as 24 R3(config-router)# neighbor 34.34.34.4 next-hop-self R2(config)#router bgp 24 R2(config-router)# neighbor 12.12.12.1 remote-as 13 R2(config-router)# neighbor 12.12.12.1 next-hop-self R2(config-router)# neighbor 24.24.24.4 remote-as 24 R2(config-router)# neighbor 24.24.24.4 next-hop-self R4(config-if)#router bgp 24 R4(config-router)# network 45.45.45.0 mask 255.255.255.0 R4(config-router)# neighbor 24.24.24.2 remote-as 24 R4(config-router)# neighbor 34.34.34.3 remote-as 13 R4(config-router)# neighbor 24.24.24.2 next-hop-self R4(config-router)# neighbor 34.34.34.3 next-hop-self Default route on R5 and R6. First advertise R2\u0026rsquo;s network to BGP.\nR1(config-router)#network 15.15.15.0 mask 255.255.255.0 R2(config-router)# network 26.26.26.0 mask 255.255.255.0 R1(config-router)#do sh ip bgp BGP table version is 8, local router ID is 15.15.15.1 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt; 15.15.15.0/24 0.0.0.0 0 32768 i * i26.26.26.0/24 13.13.13.3 0 100 0 24 i *\u0026gt; 12.12.12.2 0 100 24 i R1(config-router)#do sh ip bgp 26.26.26.0 BGP routing table entry for 26.26.26.0/24, version 2 Paths: (2 available, best #2, table Default-IP-Routing-Table) Advertised to update-groups: 2 24 12.12.12.2 from 12.12.12.2 (26.26.26.2) Origin IGP, metric 0, localpref 100, valid, external 24 13.13.13.3 from 13.13.13.3 (34.34.34.3) Origin IGP, metric 0, localpref 100, valid, internal, best R1(config-router)# It turns out there are 2 paths to the 26.26.26.0 network, but the one currently used is through 12.12.12.2. Now enter the default routing to R5 and R6.\nR5(config-if)#ip route 0.0.0.0 0.0.0.0 15.15.15.1 R6(config-if)#ip route 0.0.0.0 0.0.0.0 26.26.26.2 Trace from R5 to R6.\nR5#trace 26.26.26.6 Type escape sequence to abort. Tracing the route to 26.26.26.6 1 15.15.15.1 68 msec 96 msec 68 msec 2 12.12.12.2 88 msec 76 msec 80 msec 3 26.26.26.6 200 msec 148 msec 56 msec R5# Now we divert the path so it goes through 13.13.13.3 by configuring the weight attribute.\nR1(config)#route-map WEIGHT permit 10 R1(config-route-map)#set weight 100 R1(config-route-map)#router bgp 13 R1(config-router)#neighbor 13.13.13.3 route-map WEIGHT in R1(config-router)#do clear ip bgp * Now let\u0026rsquo;s check again.\nR1(config-router)#do sh ip bgp 26.26.26.0 BGP routing table entry for 26.26.26.0/24, version 2 Paths: (2 available, best #2, table Default-IP-Routing-Table) Advertised to update-groups: 2 24 12.12.12.2 from 12.12.12.2 (26.26.26.2) Origin IGP, metric 0, localpref 100, valid, external 24 13.13.13.3 from 13.13.13.3 (34.34.34.3) Origin IGP, metric 0, localpref 100, weight 100, valid, internal, best R1(config-router)# R5#trace 26.26.26.6 Type escape sequence to abort. Tracing the route to 26.26.26.6 1 15.15.15.1 112 msec 72 msec 60 msec 2 13.13.13.3 140 msec 112 msec 88 msec 3 34.34.34.4 232 msec 172 msec 88 msec 4 24.24.24.2 112 msec 140 msec 156 msec 5 26.26.26.6 220 msec 240 msec 152 msec R5# BGP Dualhoming – Load Balance # Interface configuration.\nR1(config)#int s1/1 R1(config-if)#ip add 12.12.12.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#int s1/0 R1(config-if)#ip add 13.13.13.1 255.255.255.0 R1(config-if)#no sh R2(config)#int s1/1 R2(config-if)#ip add 12.12.12.2 255.255.255.0 R2(config-if)#no sh R2(config-if)#int s1/0 R2(config-if)#ip add 24.24.24.2 255.255.255.0 R2(config-if)#no sh R2(config-if)#int fa0/0 R2(config-if)#ip add 23.23.23.2 255.255.255.0 R2(config-if)#no sh R3(config)#int s1/1 R3(config-if)#ip add 34.34.34.3 255.255.255.0 R3(config-if)#no sh R3(config-if)#int s1/0 R3(config-if)#ip add 13.13.13.3 255.255.255.0 R3(config-if)#no sh R3(config-if)#int fa0/0 R3(config-if)#ip add 23.23.23.3 255.255.255.0 R3(config-if)#no sh R4(config)#int s1/1 R4(config-if)#ip add 34.34.34.4 255.255.255.0 R4(config-if)#no sh R4(config-if)#int s1/0 R4(config-if)#ip add 24.24.24.4 255.255.255.0 R4(config-if)#no sh BGP configuration.\nR1(config)#router bgp 1 R1(config-router)#neighbor 12.12.12.2 remote-as 23 R1(config-router)#neighbor 13.13.13.3 remote-as 23 R2(config)#router bgp 23 R2(config-router)#neighbor 12.12.12.1 remote-as 1 R2(config-router)#neighbor 24.24.24.4 remote-as 4 R2(config-router)#neighbor 23.23.23.3 remote-as 23 R2(config-router)#neighbor 23.23.23.3 next-hop-self R3(config)#router bgp 23 R3(config-router)#neighbor 34.34.34.4 remote-as 4 R3(config-router)#neighbor 13.13.13.1 remote-as 1 R3(config-router)#neighbor 23.23.23.2 remote-as 23 R2(config-router)#neighbor 23.23.23.2 next-hop-self R4(config)#router bgp 4 R4(config-router)#neighbor 24.24.24.2 remote-as 23 R4(config-router)#neighbor 34.34.34.3 remote-as 23 Create loopbacks on R1 and R4 then advertise to BGP.\nR1(config)#int lo0 R1(config-if)#ip add 1.1.1.1 255.255.255.255 R1(config-if)#router bgp 1 R1(config-router)#network 1.1.1.1 mask 255.255.255.255 R4(config)#int lo0 R4(config-if)#ip add 4.4.4.4 255.255.255.255 R4(config-if)#router bgp 4 R4(config-router)#net 4.4.4.4 mask 255.255.255.255 R1(config-router)#do sh ip bgp BGP table version is 15, local router ID is 1.1.1.1 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt; 1.1.1.1/32 0.0.0.0 0 32768 i *\u0026gt; 4.4.4.4/32 12.12.12.2 100 23 4 i * 13.13.13.3 0 23 4 i Even though there are 2 links, only 1 is used, seen from the \u0026ldquo;\u0026gt;\u0026rdquo; sign there is only one. The information above shows that the one used as the next hop to 4.4.4.4 is 12.12.12.2.\nTry pinging from R1 to R4.\nR1(config-router)#do ping 4.4.4.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) R1(config-router)#do trace 4.4.4.4 Type escape sequence to abort. Tracing the route to 4.4.4.4 1 12.12.12.2 84 msec 60 msec 64 msec 2 * * * 3 * R1(config)# It turned out to be failed. This is because the network has not been advertised to BGP.\nR1(config-router)#network 12.12.12.0 mask 255.255.255.0 R1(config-router)#network 13.13.13.0 mask 255.255.255.0 R4(config-router)#network 24.24.24.0 mask 255.255.255.0 R4(config-router)#network 34.34.34.0 mask 255.255.255.0 Okay, check again.\nR1(config-router)#do ping 4.4.4.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 44/88/152 ms R1(config-router)#do trace 4.4.4.4 Type escape sequence to abort. Tracing the route to 4.4.4.4 1 12.12.12.2 52 msec 44 msec 32 msec 2 24.24.24.4 [AS 4] 96 msec 108 msec 64 msec R1(config-router)# Now configure to load-balance.\nR1(config-router)#maximum-paths 2 R1(config-router)#do sh ip bgp BGP table version is 21, local router ID is 1.1.1.1 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt; 1.1.1.1/32 0.0.0.0 0 32768 i *\u0026gt; 4.4.4.4/32 12.12.12.2 100 23 4 i * 13.13.13.3 0 23 4 i *\u0026gt; 12.12.12.0/24 0.0.0.0 0 32768 i *\u0026gt; 13.13.13.0/24 0.0.0.0 0 32768 i *\u0026gt; 24.24.24.0/24 12.12.12.2 100 23 4 i * 13.13.13.3 0 23 4 i *\u0026gt; 34.34.34.0/24 12.12.12.2 100 23 4 i * 13.13.13.3 0 23 4 i R1(config-router)#do trace 4.4.4.4 Type escape sequence to abort. Tracing the route to 4.4.4.4 1 13.13.13.3 80 msec 12.12.12.2 64 msec 13.13.13.3 60 msec 2 24.24.24.4 [AS 4] 188 msec 34.34.34.4 [AS 4] 152 msec 24.24.24.4 [AS 4] 168 msec R1(config-router)# Even though in show ip bgp there is only 1 \u0026ldquo;\u0026gt;\u0026rdquo; sign, but when checked it is already load balancing. Okay, sip.\nBGP Dualhoming – Set Weight # Okay, first delete the load balance configuration.\nR1(config)#router bgp 1 R1(config-router)#no maximum-paths 2 Now try pinging to 4.4.4.4.\nR1#sh ip bgp BGP table version is 8, local router ID is 1.1.1.1 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt; 1.1.1.1/32 0.0.0.0 0 32768 i *\u0026gt; 4.4.4.4/32 12.12.12.2 0 23 4 i * 13.13.13.3 0 23 4 i *\u0026gt; 12.12.12.0/24 0.0.0.0 0 32768 i *\u0026gt; 13.13.13.0/24 0.0.0.0 0 32768 i * 23.23.23.0/24 12.12.12.2 0 0 23 i *\u0026gt; 13.13.13.3 0 0 23 i * 24.24.24.0/24 12.12.12.2 0 23 4 i *\u0026gt; 13.13.13.3 0 23 4 i * 34.34.34.0/24 12.12.12.2 0 23 4 i *\u0026gt; 13.13.13.3 0 23 4 i R1#trace 4.4.4.4 Type escape sequence to abort. Tracing the route to 4.4.4.4 1 12.12.12.2 40 msec 108 msec 60 msec 2 24.24.24.4 [AS 4] 88 msec 100 msec 96 msec R1# To get to 4.4.4.4, it goes through 12.12.12.2. Now try turning off interface 12.12.12.1.\nR1(config-if)#int s1/1 R1(config-if)#shutdown *Mar 1 00:07:37.387: %BGP-5-ADJCHANGE: neighbor 12.12.12.2 Down Interface flap R1(config-if)#do sh ip bgp BGP table version is 23, local router ID is 1.1.1.1 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt; 1.1.1.1/32 0.0.0.0 0 32768 i *\u0026gt; 4.4.4.4/32 13.13.13.3 0 23 4 i *\u0026gt; 13.13.13.0/24 0.0.0.0 0 32768 i *\u0026gt; 23.23.23.0/24 13.13.13.3 0 0 23 i *\u0026gt; 24.24.24.0/24 13.13.13.3 0 23 4 i *\u0026gt; 34.34.34.0/24 13.13.13.3 0 23 4 i R1(config-if)# So now to get to 4.4.4.4 it will go through 13.13.13.3. Try turning the interface back on. It turns out that even though it has been turned on, the main link does not return to 12.12.12.2 but still uses 13.13.13.3.\nR1(config-if)#int s1/1 R1(config-if)#no sh R1(config-if)#do sh ip bgp BGP table version is 24, local router ID is 1.1.1.1 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt; 1.1.1.1/32 0.0.0.0 0 32768 i * 4.4.4.4/32 12.12.12.2 0 23 4 i *\u0026gt; 13.13.13.3 0 23 4 i *\u0026gt; 12.12.12.0/24 0.0.0.0 0 32768 i *\u0026gt; 13.13.13.0/24 0.0.0.0 0 32768 i * 23.23.23.0/24 12.12.12.2 0 0 23 i *\u0026gt; 13.13.13.3 0 0 23 i * 24.24.24.0/24 12.12.12.2 0 23 4 i *\u0026gt; 13.13.13.3 0 23 4 i * 34.34.34.0/24 12.12.12.2 0 23 4 i *\u0026gt; 13.13.13.3 0 23 4 i R1(config-if)# To overcome this, configure the weight attribute.\nR1(config)#route-map WEIGHT R1(config-route-map)#set ? as-path Prepend string for a BGP AS-path attribute automatic-tag Automatically compute TAG value clns OSI summary address comm-list set BGP community list (for deletion) community BGP community attribute dampening Set BGP route flap dampening parameters default Set default information extcommunity BGP extended community attribute interface Output interface ip IP specific information ipv6 IPv6 specific information level Where to import route local-preference BGP local preference path attribute metric Metric value for destination routing protocol metric-type Type of metric for destination routing protocol mpls-label Set MPLS label for prefix origin BGP origin code tag Tag value for destination routing protocol traffic-index BGP traffic classification number for accounting vrf Define VRF name weight BGP weight for routing table R1(config-route-map)#set weight 100 R1(config-route-map)#router bgp 1 R1(config-router)#nei R1(config-router)#neighbor 12.12.12.2 route-map WEIGHT in R1(config-router)#do clear ip bgp * R1(config-router)#do sh ip bgp BGP table version is 5, local router ID is 1.1.1.1 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path * 4.4.4.4/32 13.13.13.3 0 23 4 i *\u0026gt; 12.12.12.2 100 23 4 i * 23.23.23.0/24 13.13.13.3 0 0 23 i *\u0026gt; 12.12.12.2 0 100 23 i * 24.24.24.0/24 13.13.13.3 0 23 4 i *\u0026gt; 12.12.12.2 100 23 4 i * 34.34.34.0/24 13.13.13.3 0 23 4 i *\u0026gt; 12.12.12.2 100 23 4 i R1(config-router)# Now turn it back on. Wait a bit longer then check show ip bgp.\nR1(config-if)#no sh R1(config-if)# *Mar 1 00:15:52.047: %LINK-3-UPDOWN: Interface Serial1/1, changed state to up R1(config-if)# *Mar 1 00:15:53.051: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial1/1, changed state to up *Mar 1 00:16:19.355: %BGP-5-ADJCHANGE: neighbor 12.12.12.2 Up R1(config-if)#do sh ip bgp BGP table version is 18, local router ID is 1.1.1.1 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt; 1.1.1.1/32 0.0.0.0 0 32768 i *\u0026gt; 4.4.4.4/32 12.12.12.2 100 23 4 i * 13.13.13.3 0 23 4 i *\u0026gt; 12.12.12.0/24 0.0.0.0 0 32768 i *\u0026gt; 13.13.13.0/24 0.0.0.0 0 32768 i *\u0026gt; 23.23.23.0/24 12.12.12.2 0 100 23 i * 13.13.13.3 0 0 23 i *\u0026gt; 24.24.24.0/24 12.12.12.2 100 23 4 i * 13.13.13.3 0 23 4 i *\u0026gt; 34.34.34.0/24 12.12.12.2 100 23 4 i * 13.13.13.3 0 23 4 i R1(config-if)# Okay, sip.\nBGP Dualhoming – Set MED # Besides regulating traffic coming out of R1, we can also regulate traffic heading to R1, one of them is with MED or metric.\nR1(config)#ip access-list standard LAN R1(config-std-nacl)#permit 1.1.1.1 R1(config-std-nacl)#route-map R2MED permit 10 R1(config-route-map)#match ip address LAN R1(config-route-map)#set metric 110 R1(config-route-map)#route-map R3MED permit 10 R1(config-route-map)#match ip address LAN R1(config-route-map)#set metric 100 R1(config-route-map)# R1(config-route-map)#router bgp 1 R1(config-router)#neighbor 12.12.12.2 route-map R2MED out R1(config-router)#neighbor 13.13.13.3 route-map R3MED out R1(config-router)#do clear ip bgp * Check on R2. Now to get to 1.1.1.1, it will be routed through 23.23.23.3 then to 13.13.13.1 first.\nR2(config-router)#do sh ip bgp BGP table version is 23, local router ID is 24.24.24.2 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt;i1.1.1.1/32 23.23.23.3 100 100 0 1 i * 12.12.12.1 110 0 1 i * i4.4.4.4/32 23.23.23.3 0 100 0 4 i *\u0026gt; 24.24.24.4 0 0 4 i *\u0026gt; 23.23.23.0/24 0.0.0.0 0 32768 i * i 23.23.23.3 0 100 0 i r i24.24.24.0/24 23.23.23.3 0 100 0 4 i r\u0026gt; 24.24.24.4 0 0 4 i * i34.34.34.0/24 23.23.23.3 0 100 0 4 i *\u0026gt; 24.24.24.4 0 0 4 i R2(config-router)#do trace 1.1.1.1 Type escape sequence to abort. Tracing the route to 1.1.1.1 1 23.23.23.3 56 msec 100 msec 64 msec 2 13.13.13.1 112 msec 84 msec 72 msec R2(config-router)# BGP Dualhoming – Set AS Path # Regulating traffic heading to R1 besides using metric can also use AS Path. Delete the MED first.\nR1(config-router)#no neighbor 12.12.12.2 route-map R2MED out R1(config-router)#no neighbor 13.13.13.3 route-map R3MED out Now set as-path on route-map.\nR1(config)#route-map AS-PREPEND R1(config-route-map)#set as-path prepend 1 1 1 R1(config-route-map)#router bgp 1 R1(config-router)#neighbor 12.12.12.2 route-map AS-PREPEND out R1(config-router)#do clear ip bgp * Check.\nR2#traceroute 1.1.1.1 Type escape sequence to abort. Tracing the route to 1.1.1.1 1 23.23.23.3 60 msec 96 msec 44 msec 2 13.13.13.1 [AS 1] 80 msec 92 msec 80 msec R2# BGP Multihoming – Equal Load Balance # The goal is to be able to load balance through 2 AS or 2 ISPs. Delete AS 23 and change to AS 2 and AS 3 respectively. Also delete the previous routemap.\nR1(config)#router bgp 1 R1(config-router)#no neighbor 12.12.12.2 remote-as 23 R1(config-router)#neighbor 12.12.12.2 remote-as 2 R1(config-router)#no neighbor 12.12.12.2 route-map AS-PREPEND out R1(config-router)#no neighbor 13.13.13.3 remote-as 23 R1(config-router)#neighbor 13.13.13.3 remote-as 3 R2(config)#no router bgp 23 R2(config)#router bgp 2 R2(config-router)#neighbor 12.12.12.1 remote-as 1 R2(config-router)#neighbor 24.24.24.4 remote-as 4 R2(config-router)#neighbor 23.23.23.3 remote-as 3 R3(config)#no router bgp 23 R3(config)#router bgp 3 R3(config-router)#neighbor 34.34.34.4 remote-as 4 R3(config-router)#neighbor 13.13.13.1 remote-as 1 R3(config-router)#neighbor 23.23.23.2 remote-as 2 R4(config)#router bgp 4 R4(config-router)#no neighbor 24.24.24.2 remote-as 23 R4(config-router)#neighbor 24.24.24.2 remote-as 2 R4(config-router)#no neighbor 34.34.34.3 remote-as 23 R4(config-router)#neighbor 34.34.34.3 remote-as 3 Configure load balance on R1.\nR1(config)#router bgp 1 R1(config-router)#maximum-paths 2 R1#trace 4.4.4.4 Type escape sequence to abort. Tracing the route to 4.4.4.4 1 12.12.12.2 104 msec 72 msec 48 msec 2 24.24.24.4 [AS 4] 140 msec 92 msec 64 msec R1# It turns out that even though maximum-path has been configured, it is still not load balancing. Add the configuration below.\nR1(config)#router bgp 1 R1(config-router)#bgp bestpath as-path multipath-relax R1(config-router)#do clear ip bgp * Okay, wait a moment and now check again.\nR1(config-router)#do trace 4.4.4.4 Type escape sequence to abort. Tracing the route to 4.4.4.4 1 13.13.13.3 116 msec 12.12.12.2 108 msec 13.13.13.3 88 msec 2 24.24.24.4 [AS 4] 204 msec 34.34.34.4 [AS 4] 44 msec 24.24.24.4 [AS 4] 92 msec R1(config-router)# Sip, already load-balanced.\nR1(config)#router bgp 1 R1(config-router)#maximum-paths 2 R1#trace 4.4.4.4 Type escape sequence to abort. Tracing the route to 4.4.4.4 1 12.12.12.2 104 msec 72 msec 48 msec 2 24.24.24.4 [AS 4] 140 msec 92 msec 64 msec R1# BGP Multihoming – Unequal Load Balance # The problem occurs when the link to AS 4 through AS 2 and AS 3 have different bandwidths.\nR1(config)#int s1/0 R1(config-if)#bandwidth 100 R1(config-if)#int s1/1 R1(config-if)#bandwidth 200 R1(config-if)#do clear ip bgp * R1(config-if)#do sh ip bgp BGP table version is 7, local router ID is 1.1.1.1 Status codes: s suppressed, d damped, h history, * valid, \u0026gt; best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *\u0026gt; 1.1.1.1/32 0.0.0.0 0 32768 i * 4.4.4.4/32 13.13.13.3 0 3 4 i *\u0026gt; 12.12.12.2 0 2 4 i *\u0026gt; 12.12.12.0/24 0.0.0.0 0 32768 i *\u0026gt; 13.13.13.0/24 0.0.0.0 0 32768 i * 24.24.24.0/24 13.13.13.3 0 3 4 i *\u0026gt; 12.12.12.2 0 2 4 i * 34.34.34.0/24 13.13.13.3 0 3 4 i *\u0026gt; 12.12.12.2 0 2 4 i R1(config-if)#do sh ip route 4.4.4.4 Routing entry for 4.4.4.4/32 Known via \u0026#34;bgp 1\u0026#34;, distance 20, metric 0 Tag 2, type external Last update from 12.12.12.2 00:00:16 ago Routing Descriptor Blocks: * 13.13.13.3, from 13.13.13.3, 00:00:16 ago Route metric is 0, traffic share count is 1 AS Hops 2 Route tag 2 12.12.12.2, from 12.12.12.2, 00:00:16 ago Route metric is 0, traffic share count is 1 AS Hops 2 Route tag 2 R1(config-if)# Then we will find the bandwidth ratio is still 1:1. What if the bandwidth difference is huge?\nR1(config-if)#router bgp 1 R1(config-router)#bgp dmzlink-bw R1(config-router)#neighbor 12.12.12.2 dmzlink-bw R1(config-router)#neighbor 13.13.13.3 dmzlink-bw R1(config-router)#do clear ip bgp * Okay, check again.\nR1(config-router)#do sh ip route 4.4.4.4 Routing entry for 4.4.4.4/32 Known via \u0026#34;bgp 1\u0026#34;, distance 20, metric 0 Tag 2, type external Last update from 13.13.13.3 00:00:15 ago Routing Descriptor Blocks: 13.13.13.3, from 13.13.13.3, 00:00:15 ago Route metric is 0, traffic share count is 23 AS Hops 2 Route tag 2 * 12.12.12.2, from 12.12.12.2, 00:00:15 ago Route metric is 0, traffic share count is 48 AS Hops 2 Route tag 2 R1(config-router)# Okay, it is successful.\n","date":"21 May 2026","externalUrl":null,"permalink":"/study/cisco/bgp/","section":"Study","summary":"Border Gateway Protocol (BGP) is the protocol that forms the internet network. BGP belongs to the Exterior Gateway Protocol (EGP) or can be said to be the only EGP protocol.","title":"BGP","type":"study"},{"content":"","date":"21 May 2026","externalUrl":null,"permalink":"/tags/bgp/","section":"Tags","summary":"","title":"BGP","type":"tags"},{"content":"","date":"21 May 2026","externalUrl":null,"permalink":"/series/chapters-on-cisco/","section":"Series","summary":"","title":"Chapters on Cisco","type":"series"},{"content":"","date":"21 May 2026","externalUrl":null,"permalink":"/tags/cisco/","section":"Tags","summary":"","title":"Cisco","type":"tags"},{"content":"","date":"21 May 2026","externalUrl":null,"permalink":"/categories/cisco-packet-tracer/","section":"Categories","summary":"","title":"Cisco Packet Tracer","type":"categories"},{"content":"","date":"21 May 2026","externalUrl":null,"permalink":"/tags/cisco-packet-tracer/","section":"Tags","summary":"","title":"Cisco Packet Tracer","type":"tags"},{"content":"","date":"21 May 2026","externalUrl":null,"permalink":"/tags/network-simulation/","section":"Tags","summary":"","title":"Network Simulation","type":"tags"},{"content":"","date":"21 May 2026","externalUrl":null,"permalink":"/tags/networking-education/","section":"Tags","summary":"","title":"Networking Education","type":"tags"},{"content":"Cisco Packet Tracer is a network simulation tool that allows users to design, configure, and troubleshoot network topologies. It is widely used in networking education to provide a hands-on learning experience for students and professionals.\nBy: Muhammad Taufik\n","date":"21 May 2026","externalUrl":null,"permalink":"/study/cisco/","section":"Study","summary":"Learn about Cisco Packet Tracer, a network simulation tool for networking education.","title":"The Way To Be Cisco Warrior Teory \u0026 Practice","type":"Study"},{"content":" OSPF # (Open Shortest Path First) # Open Standard. Link-State routing protocol. Using SPF/Dijkstra Algorithm. Multicast for exchange information use port 89. Administrative distance 110. Classless routing protocol support VLSM/CIDR. Support IPv6. Metric using cost. Fast convergence. Equal load balancing only. Using areas (backbone area and non-backbone areas). Link-state knows the complete map (topology) of the network to determine the shortest path.\nLink = router interface.\nState = to which neighbor router the interface is connected.\nLink-state routers work by sending link-state advertisements (LSA) to other link-state routers, which are stored in the link-state database (LSDB). LSAs are like puzzle pieces that make up the LSDB. LSDB is a comprehensive overview of the network that we call the topology. Once the LSDB is complete, OSPF calculates the shortest path.\nOSPF works using the concept of areas. The area that must exist in OSPF is area 0 or the backbone area. Other areas (non-backbone areas) that want to connect must pass through the backbone area.\nThe purpose of dividing into areas is to manage traffic and reduce the resources used by the routers. There are several types of routers in OSPF:\nBackbone router = a router within the backbone area.\nArea Border Router (ABR) = a router located in 2 areas.\nAutonomous System Border Router (ASBR) = a router connected to another network running a different routing protocol.\nOSPF uses a metric called cost. Cost is calculated based on the bandwidth of an interface.\nCost = reference bandwidth / interface bandwidth\nThe default reference bandwidth is 100Mbit, but this can be changed because nowadays there are interfaces that reach gigabit speeds.\nEach LSA has an aging timer, which is its validity period. By default, an LSA is valid for 30 minutes. After that, it will expire and a new LSA with a higher sequence number will be sent.\nOSPF Basic Configuration # Type the following interface configurations.\nR1 interface Loopback0 ip address 1.1.1.1 255.255.255.255 ! interface FastEthernet0/0 ip address 12.12.12.1 255.255.255.0 ! router ospf 13 router-id 1.1.1.1 network 1.1.1.1 0.0.0.0 area 0 network 12.12.12.0 0.0.0.255 area 0 ! R2 interface Loopback0 ip address 2.2.2.2 255.255.255.255 ! interface FastEthernet0/0 ip address 12.12.12.2 255.255.255.0 ! interface Serial1/0 ip address 23.23.23.2 255.255.255.0 ! router ospf 13 router-id 2.2.2.2 network 2.2.2.2 0.0.0.0 area 10 network 12.12.12.0 0.0.0.255 area 0 network 23.23.23.0 0.0.0.255 area 10 ! R3 interface Loopback0 ip address 3.3.3.3 255.255.255.255 ! interface Serial1/0 ip address 23.23.23.3 255.255.255.0 ! router ospf 14 router-id 3.3.3.3 network 3.3.3.3 0.0.0.0 area 10 network 23.23.23.0 0.0.0.255 area 10 ! Check the routing table.\nR1#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets O IA 2.2.2.2 [110/11] via 12.12.12.2, 00:07:41, FastEthernet0/0 3.0.0.0/32 is subnetted, 1 subnets O IA 3.3.3.3 [110/75] via 12.12.12.2, 00:07:41, FastEthernet0/0 23.0.0.0/24 is subnetted, 1 subnets O IA 23.23.23.0 [110/74] via 12.12.12.2, 00:07:41, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 R1# R2#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets O 1.1.1.1 [110/11] via 12.12.12.1, 00:08:04, FastEthernet0/0 2.0.0.0/32 is subnetted, 1 subnets C 2.2.2.2 is directly connected, Loopback0 3.0.0.0/32 is subnetted, 1 subnets O 3.3.3.3 [110/65] via 23.23.23.3, 00:08:39, Serial1/0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial1/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 R2# R3#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets O IA 1.1.1.1 [110/75] via 23.23.23.2, 00:08:17, Serial1/0 2.0.0.0/32 is subnetted, 1 subnets O 2.2.2.2 [110/65] via 23.23.23.2, 00:08:52, Serial1/0 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial1/0 12.0.0.0/24 is subnetted, 1 subnets O IA 12.12.12.0 [110/74] via 23.23.23.2, 00:08:52, Serial1/0 R3# Test ping.\nR1#ping 2.2.2.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 8/75/144 ms R1#ping 3.3.3.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 12/128/288 ms R1# R2#sh ip ospf database OSPF Router with ID (2.2.2.2) (Process ID 13) Router Link States (Area 0) Link ID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 616 0x80000002 0x0015AB 2 2.2.2.2 2.2.2.2 615 0x80000002 0x00F9D1 1 Net Link States (Area 0) Link ID ADV Router Age Seq# Checksum 12.12.12.2 2.2.2.2 615 0x80000001 0x0014EB Summary Net Link States (Area 0) Link ID ADV Router Age Seq# Checksum 2.2.2.2 2.2.2.2 656 0x80000001 0x00FA31 3.3.3.3 2.2.2.2 646 0x80000001 0x004F98 23.23.23.0 2.2.2.2 656 0x80000001 0x00901F Router Link States (Area 10) Link ID ADV Router Age Seq# Checksum Link count 2.2.2.2 2.2.2.2 655 0x80000002 0x009C44 3 3.3.3.3 3.3.3.3 658 0x80000002 0x00BB1D 3 Summary Net Link States (Area 10) Link ID ADV Router Age Seq# Checksum 1.1.1.1 2.2.2.2 613 0x80000001 0x008D98 12.12.12.0 2.2.2.2 658 0x80000001 0x00FF07 R2# OSPF Virtual Link # R1 interface Loopback0 ip address 1.1.1.1 255.255.255.255 ! interface FastEthernet0/0 ip address 12.12.12.1 255.255.255.0 ! router ospf 13 router-id 1.1.1.1 network 1.1.1.1 0.0.0.0 area 0 network 12.12.12.0 0.0.0.255 area 1 ! R2 interface Loopback0 ip address 2.2.2.2 255.255.255.255 ! interface FastEthernet0/0 ip address 12.12.12.2 255.255.255.0 ! interface Serial1/0 ip address 23.23.23.2 255.255.255.0 ! router ospf 13 router-id 2.2.2.2 network 2.2.2.2 0.0.0.0 area 1 network 12.12.12.0 0.0.0.255 area 1 network 23.23.23.0 0.0.0.255 area 2 ! R3 interface Loopback0 ip address 3.3.3.3 255.255.255.255 ! interface Serial1/0 ip address 23.23.23.3 255.255.255.0 ! router ospf 14 router-id 3.3.3.3 network 3.3.3.3 0.0.0.0 area 2 network 23.23.23.0 0.0.0.255 area 2 ! Check the routing table.\nR1(config-router)#do sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets O 2.2.2.2 [110/11] via 12.12.12.2, 00:00:21, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 R1(config-router)# R2(config-router)#do sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets O IA 1.1.1.1 [110/11] via 12.12.12.1, 00:01:33, FastEthernet0/0 2.0.0.0/32 is subnetted, 1 subnets C 2.2.2.2 is directly connected, Loopback0 3.0.0.0/32 is subnetted, 1 subnets O 3.3.3.3 [110/65] via 23.23.23.3, 00:01:43, Serial1/0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial1/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 R2(config-router)# R3(config-router)#do sh ip route Gateway of last resort is not set 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial1/0 R3(config-router)# Check the OSPF database.\nR1#sh ip ospf database OSPF Router with ID (1.1.1.1) (Process ID 13) Router Link States (Area 0) Link ID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 261 0x80000001 0x00D351 1 Summary Net Link States (Area 0) Link ID ADV Router Age Seq# Checksum 2.2.2.2 1.1.1.1 189 0x80000001 0x007DA8 12.12.12.0 1.1.1.1 257 0x80000001 0x001EEC Router Link States (Area 1) Link ID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 193 0x80000002 0x00389C 1 2.2.2.2 2.2.2.2 195 0x80000002 0x00298A 2 Net Link States (Area 1) Link ID ADV Router Age Seq# Checksum 12.12.12.2 2.2.2.2 195 0x80000001 0x0014EB Summary Net Link States (Area 1) Link ID ADV Router Age Seq# Checksum 1.1.1.1 1.1.1.1 297 0x80000001 0x0047EC R1# R3#sh ip ospf database OSPF Router with ID (3.3.3.3) (Process ID 14) Router Link States (Area 2) Link ID ADV Router Age Seq# Checksum Link count 2.2.2.2 2.2.2.2 293 0x80000002 0x00D624 2 3.3.3.3 3.3.3.3 287 0x80000002 0x00BB1D 3 R3# Virtual link configuration: area area-id virtual-link router-id\nR1(config)#router ospf 13 R1(config-router)#area 1 virtual-link ? A.B.C.D ID (IP addr) associated with virtual link neighbor R1(config-router)#area 1 virtual-link 2.2.2.2 R2(config-router)#area 1 virtual-link 1.1.1.1 *Mar 1 00:09:45.563: %OSPF-5-ADJCHG: Process 13, Nbr 1.1.1.1 on OSPF_VL0 from LOADING to FULL, Loading Done R1#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets O 2.2.2.2 [110/11] via 12.12.12.2, 00:08:38, FastEthernet0/0 3.0.0.0/32 is subnetted, 1 subnets O IA 3.3.3.3 [110/75] via 12.12.12.2, 00:00:48, FastEthernet0/0 23.0.0.0/24 is subnetted, 1 subnets O IA 23.23.23.0 [110/74] via 12.12.12.2, 00:00:48, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 R1# Network 3.3.3.3 is not yet in the routing table.\nR2(config-router)#area 2 virtual-link 3.3.3.3 R3(config-router)#area 2 virtual-link 2.2.2.2 *Mar 1 00:12:26.355: %OSPF-5-ADJCHG: Process 14, Nbr 2.2.2.2 on OSPF_VL0 from LOADING to FULL, Loading Done Check again.\nR1#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets O 2.2.2.2 [110/11] via 12.12.12.2, 00:12:02, FastEthernet0/0 3.0.0.0/32 is subnetted, 1 subnets O IA 3.3.3.3 [110/75] via 12.12.12.2, 00:01:34, FastEthernet0/0 23.0.0.0/24 is subnetted, 1 subnets O IA 23.23.23.0 [110/74] via 12.12.12.2, 00:04:11, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 R1#ping 2.2.2.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 56/100/204 ms R1#ping 3.3.3.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 24/148/204 ms R1# Check the virtual link.\nR1#sh ip ospf virtual-links Virtual Link OSPF_VL0 to router 2.2.2.2 is up Run as demand circuit DoNotAge LSA allowed. Transit area 1, via interface FastEthernet0/0, Cost of using 10 Transmit Delay is 1 sec, State POINT_TO_POINT, Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Hello due in 00:00:09 Adjacency State FULL (Hello suppressed) Index 1/2, retransmission queue length 0, number of retransmission 0 First 0x0(0)/0x0(0) Next 0x0(0)/0x0(0) Last retransmission scan length is 0, maximum is 0 Last retransmission scan time is 0 msec, maximum is 0 msec R1# 2#sh ip ospf virtual-links Virtual Link OSPF_VL1 to router 3.3.3.3 is up Run as demand circuit DoNotAge LSA allowed. Transit area 2, via interface Serial1/0, Cost of using 64 Transmit Delay is 1 sec, State POINT_TO_POINT, Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Hello due in 00:00:07 Adjacency State FULL (Hello suppressed) Index 2/4, retransmission queue length 0, number of retransmission 0 First 0x0(0)/0x0(0) Next 0x0(0)/0x0(0) Last retransmission scan length is 0, maximum is 0 Last retransmission scan time is 0 msec, maximum is 0 msec Virtual Link OSPF_VL0 to router 1.1.1.1 is up Run as demand circuit DoNotAge LSA allowed. Transit area 1, via interface FastEthernet0/0, Cost of using 10 Transmit Delay is 1 sec, State POINT_TO_POINT, Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Hello due in 00:00:02 Adjacency State FULL (Hello suppressed) Index 1/3, retransmission queue length 0, number of retransmission 1 First 0x0(0)/0x0(0) Next 0x0(0)/0x0(0) Last retransmission scan length is 1, maximum is 1 Last retransmission scan time is 0 msec, maximum is 0 msec R2# R3#sh ip ospf virtual-links Virtual Link OSPF_VL0 to router 2.2.2.2 is up Run as demand circuit DoNotAge LSA allowed. Transit area 2, via interface Serial1/0, Cost of using 64 Transmit Delay is 1 sec, State POINT_TO_POINT, Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Hello due in 00:00:01 Adjacency State FULL (Hello suppressed) Index 1/2, retransmission queue length 0, number of retransmission 0 First 0x0(0)/0x0(0) Next 0x0(0)/0x0(0) Last retransmission scan length is 0, maximum is 0 Last retransmission scan time is 0 msec, maximum is 0 msec R3# OSPF GRE Tunnel # Delete the virtual link first.\nR1(config)#router ospf 13 R1(config-router)#no area 1 virtual-link 2.2.2.2 R2(config)#router ospf 13 R2(config-router)#no area 1 virtual-link 1.1.1.1 R2(config-router)#no area 2 virtual-link 3.3.3.3 R3(config)#router ospf 14 R3(config-router)#no area 2 virtual-link 2.2.2.2 GRE tunnel configuration.\nR1(config)#int tun1 R1(config-if)#ip add 102.102.102.1 255.255.255.0 R1(config-if)#tunnel source 12.12.12.1 R1(config-if)#tunnel destination 12.12.12.2 R1(config-if)#router ospf 13 R1(config-router)#net 102.102.102.1 0.0.0.0 area 0 R2(config)#int tun1 R2(config-if)#ip add 102.102.102.2 255.255.255.0 R2(config-if)#tunnel destination 12.12.12.1 R2(config-if)#tunnel source 12.12.12.2 R2(config-if)#router ospf 13 R2(config-router)#net 102.102.102.2 0.0.0.0 area 0 R1#sh ip route Gateway of last resort is not set 102.0.0.0/24 is subnetted, 1 subnets C 102.102.102.0 is directly connected, Tunnel1 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets O 2.2.2.2 [110/11] via 12.12.12.2, 00:11:26, FastEthernet0/0 3.0.0.0/32 is subnetted, 1 subnets O IA 3.3.3.3 [110/11176] via 102.102.102.2, 00:03:52, Tunnel1 23.0.0.0/24 is subnetted, 1 subnets O IA 23.23.23.0 [110/11175] via 102.102.102.2, 00:03:52, Tunnel1 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 R1#ping 2.2.2.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 32/96/284 ms R1#ping 3.3.3.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 92/200/312 ms R1# R1#sh ip int br Interface IP-Address OK? Method Status Protocol FastEthernet0/0 12.12.12.1 YES NVRAM up up FastEthernet0/1 unassigned YES NVRAM administratively down down Serial1/0 unassigned YES NVRAM administratively down down Serial1/1 unassigned YES NVRAM administratively down down Serial1/2 unassigned YES NVRAM administratively down down Serial1/3 unassigned YES NVRAM administratively down down Loopback0 1.1.1.1 YES NVRAM up up Tunnel1 102.102.102.1 YES manual up up R1# OSPF Standard Area # R1 interface Loopback0 ip address 1.1.1.1 255.255.255.255 ! interface FastEthernet0/0 ip address 12.12.12.1 255.255.255.0 ! router ospf 13 router-id 1.1.1.1 network 1.1.1.1 0.0.0.0 area 10 network 12.12.12.0 0.0.0.255 area 10 ! R2 interface Loopback0 ip address 2.2.2.2 255.255.255.255 ! interface FastEthernet0/0 ip address 12.12.12.2 255.255.255.0 ! interface Serial1/0 ip address 23.23.23.2 255.255.255.0 ! router ospf 13 router-id 2.2.2.2 network 2.2.2.2 0.0.0.0 area 0 network 12.12.12.0 0.0.0.255 area 10 network 23.23.23.0 0.0.0.255 area 0 ! R3 interface Loopback0 ip address 3.3.3.3 255.255.255.255 ! interface Serial1/0 ip address 23.23.23.3 255.255.255.0 ! router ospf 14 router-id 3.3.3.3 network 3.3.3.3 0.0.0.0 area 0 network 23.23.23.0 0.0.0.255 area 0 ! Create loopback interfaces on R3 and add some of its interfaces to EIGRP.\ninterface Loopback1 ip address 33.33.33.1 255.255.255.255 ! interface Loopback2 ip address 33.33.33.2 255.255.255.255 ! interface Loopback3 ip address 33.33.33.3 255.255.255.255 ! interface Loopback4 ip address 33.33.33.4 255.255.255.255 ! interface Loopback5 ip address 33.33.33.5 255.255.255.255 ! interface Loopback6 ip address 33.33.33.6 255.255.255.255 ! interface Loopback7 ip address 33.33.33.7 255.255.255.255 ! interface Loopback8 ip address 33.33.33.8 255.255.255.255 ! router eigrp 2 net 33.33.33.1 0.0.0.0 net 33.33.33.2 0.0.0.0 net 33.33.33.3 0.0.0.0 net 33.33.33.4 0.0.0.0 no auto-summary Add other interfaces to OSPF with area 100 and redistribute EIGRP into OSPF, then check the R1 routing table.\nrouter ospf 14 net 33.33.33.5 0.0.0.0 area 100 net 33.33.33.6 0.0.0.0 area 100 net 33.33.33.7 0.0.0.0 area 100 net 33.33.33.8 0.0.0.0 area 100 redistribute eigrp 2 subnets Cek R1. R1(config-router)#do sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets O IA 2.2.2.2 [110/11] via 12.12.12.2, 00:00:28, FastEthernet0/0 33.0.0.0/32 is subnetted, 8 subnets O E2 33.33.33.1 [110/20] via 12.12.12.2, 00:00:03, FastEthernet0/0 O E2 33.33.33.3 [110/20] via 12.12.12.2, 00:00:03, FastEthernet0/0 O E2 33.33.33.2 [110/20] via 12.12.12.2, 00:00:03, FastEthernet0/0 O IA 33.33.33.5 [110/75] via 12.12.12.2, 00:00:08, FastEthernet0/0 O E2 33.33.33.4 [110/20] via 12.12.12.2, 00:00:04, FastEthernet0/0 O IA 33.33.33.7 [110/75] via 12.12.12.2, 00:00:09, FastEthernet0/0 O IA 33.33.33.6 [110/75] via 12.12.12.2, 00:00:09, FastEthernet0/0 O IA 33.33.33.8 [110/75] via 12.12.12.2, 00:00:09, FastEthernet0/0 3.0.0.0/32 is subnetted, 1 subnets O IA 3.3.3.3 [110/75] via 12.12.12.2, 00:00:11, FastEthernet0/0 23.0.0.0/24 is subnetted, 1 subnets O IA 23.23.23.0 [110/74] via 12.12.12.2, 00:00:31, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 R1(config-router)# R1(config-router)#do sh ip ospf database OSPF Router with ID (1.1.1.1) (Process ID 13) Router Link States (Area 10) Link ID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 127 0x80000002 0x0015AB 2 2.2.2.2 2.2.2.2 127 0x80000002 0x00F9D1 1 Net Link States (Area 10) Link ID ADV Router Age Seq# Checksum 12.12.12.2 2.2.2.2 127 0x80000001 0x0014EB Summary Net Link States (Area 10) Link ID ADV Router Age Seq# Checksum 2.2.2.2 2.2.2.2 193 0x80000001 0x00FA31 3.3.3.3 2.2.2.2 103 0x80000001 0x004F98 23.23.23.0 2.2.2.2 193 0x80000001 0x00901F 33.33.33.5 2.2.2.2 103 0x80000001 0x00FE8C 33.33.33.6 2.2.2.2 103 0x80000001 0x00F495 33.33.33.7 2.2.2.2 103 0x80000001 0x00EA9E 33.33.33.8 2.2.2.2 103 0x80000001 0x00E0A7 Summary ASB Link States (Area 10) Link ID ADV Router Age Seq# Checksum 3.3.3.3 2.2.2.2 105 0x80000001 0x0037B0 Type-5 AS External Link States Link ID ADV Router Age Seq# Checksum Tag 33.33.33.1 3.3.3.3 433 0x80000001 0x00DA55 0 33.33.33.2 3.3.3.3 433 0x80000001 0x00D05E 0 33.33.33.3 3.3.3.3 433 0x80000001 0x00C667 0 33.33.33.4 3.3.3.3 433 0x80000001 0x00BC70 0 R1(config-router)# OSPF Stub Area # Check the R1 routing table.\nR1#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets O IA 2.2.2.2 [110/11] via 12.12.12.2, 00:00:04, FastEthernet0/0 33.0.0.0/32 is subnetted, 8 subnets O E2 33.33.33.1 [110/20] via 12.12.12.2, 00:00:04, FastEthernet0/0 O E2 33.33.33.3 [110/20] via 12.12.12.2, 00:00:04, FastEthernet0/0 O E2 33.33.33.2 [110/20] via 12.12.12.2, 00:00:04, FastEthernet0/0 O IA 33.33.33.5 [110/75] via 12.12.12.2, 00:00:04, FastEthernet0/0 O E2 33.33.33.4 [110/20] via 12.12.12.2, 00:00:05, FastEthernet0/0 O IA 33.33.33.7 [110/75] via 12.12.12.2, 00:00:05, FastEthernet0/0 O IA 33.33.33.6 [110/75] via 12.12.12.2, 00:00:05, FastEthernet0/0 O IA 33.33.33.8 [110/75] via 12.12.12.2, 00:00:05, FastEthernet0/0 3.0.0.0/32 is subnetted, 1 subnets O IA 3.3.3.3 [110/75] via 12.12.12.2, 00:00:07, FastEthernet0/0 23.0.0.0/24 is subnetted, 1 subnets O IA 23.23.23.0 [110/74] via 12.12.12.2, 00:00:07, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 Stub configuration.\nR1(config-router)#area 10 stub R2(config-router)#area 10 stub Now check the routing table again.\nR1(config-router)#do sh ip route Gateway of last resort is 12.12.12.2 to network 0.0.0.0 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets O IA 2.2.2.2 [110/11] via 12.12.12.2, 00:02:06, FastEthernet0/0 33.0.0.0/32 is subnetted, 4 subnets O IA 33.33.33.5 [110/75] via 12.12.12.2, 00:02:06, FastEthernet0/0 O IA 33.33.33.7 [110/75] via 12.12.12.2, 00:02:06, FastEthernet0/0 O IA 33.33.33.6 [110/75] via 12.12.12.2, 00:02:06, FastEthernet0/0 O IA 33.33.33.8 [110/75] via 12.12.12.2, 00:02:07, FastEthernet0/0 3.0.0.0/32 is subnetted, 1 subnets O IA 3.3.3.3 [110/75] via 12.12.12.2, 00:02:07, FastEthernet0/0 23.0.0.0/24 is subnetted, 1 subnets O IA 23.23.23.0 [110/74] via 12.12.12.2, 00:02:08, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 O*IA 0.0.0.0/0 [110/11] via 12.12.12.2, 00:02:09, FastEthernet0/0 E2 is removed and replaced by 0*. Check the OSPF database.\nR1#sh ip ospf database OSPF Router with ID (1.1.1.1) (Process ID 13) Router Link States (Area 10) Link ID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 339 0x80000005 0x00687D 2 2.2.2.2 2.2.2.2 499 0x80000005 0x0012B8 1 Net Link States (Area 10) Link ID ADV Router Age Seq# Checksum 12.12.12.2 2.2.2.2 495 0x80000003 0x002ED1 Summary Net Link States (Area 10) Link ID ADV Router Age Seq# Checksum 0.0.0.0 2.2.2.2 501 0x80000001 0x0075C0 2.2.2.2 2.2.2.2 501 0x80000002 0x001716 3.3.3.3 2.2.2.2 501 0x80000002 0x006B7D 23.23.23.0 2.2.2.2 501 0x80000002 0x00AC04 33.33.33.5 2.2.2.2 501 0x80000002 0x001B71 33.33.33.6 2.2.2.2 501 0x80000002 0x00117A 33.33.33.7 2.2.2.2 501 0x80000002 0x000783 33.33.33.8 2.2.2.2 503 0x80000002 0x00FC8C OSPF Totally Stub Area # Totally stub configuration.\nR2(config-router)#no area 10 stub R2(config-router)#area 10 stub no-summary Check the routing table and OSPF database.\nR1#sh ip route Gateway of last resort is 12.12.12.2 to network 0.0.0.0 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 O*IA 0.0.0.0/0 [110/11] via 12.12.12.2, 00:00:47, FastEthernet0/0 R1#sh ip ospf database OSPF Router with ID (1.1.1.1) (Process ID 13) Router Link States (Area 10) Link ID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 251 0x80000004 0x002F91 2 2.2.2.2 2.2.2.2 257 0x80000004 0x0014B7 1 Net Link States (Area 10) Link ID ADV Router Age Seq# Checksum 12.12.12.2 2.2.2.2 252 0x80000003 0x002ED1 Summary Net Link States (Area 10) Link ID ADV Router Age Seq# Checksum 0.0.0.0 2.2.2.2 625 0x80000001 0x0075C0 R1# OSPF Not So Stubby Area (NSSA) # Add loopback interfaces to R1 with RIP configuration.\nR1(config-if)#interface Loopback1 R1(config-if)# ip address 11.11.11.1 255.255.255.255 R1(config-if)#interface Loopback2 R1(config-if)# ip address 11.11.11.2 255.255.255.255 R1(config-if)#interface Loopback3 R1(config-if)# ip address 11.11.11.3 255.255.255.255 R1(config-if)#router rip R1(config-router)#ver 2 R1(config-router)#no auto-summary R1(config-router)#net 11.0.0.0 R1(config)#router ospf 13 R1(config-router)#redistribute rip subnets Remove the previous OSPF stub and replace it with nssa.\nR2(config-router)#no area 10 stub R2(config-router)#area 10 nssa *Mar 1 00:10:39.295: %OSPF-5-ADJCHG: Process 13, Nbr 2.2.2.2 on FastEthernet0/0 from DOWN to DOWN, Neighbor Down: Adjacency forced to reset Check the R1 routing table. Internal routes from ospf area 100 appear on the stub router R1.\nR1(config-router)#do sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets O IA 2.2.2.2 [110/11] via 12.12.12.2, 00:01:48, FastEthernet0/0 33.0.0.0/32 is subnetted, 4 subnets O IA 33.33.33.5 [110/75] via 12.12.12.2, 00:01:48, FastEthernet0/0 O IA 33.33.33.7 [110/75] via 12.12.12.2, 00:01:48, FastEthernet0/0 O IA 33.33.33.6 [110/75] via 12.12.12.2, 00:01:48, FastEthernet0/0 O IA 33.33.33.8 [110/75] via 12.12.12.2, 00:01:48, FastEthernet0/0 3.0.0.0/32 is subnetted, 1 subnets O IA 3.3.3.3 [110/75] via 12.12.12.2, 00:01:49, FastEthernet0/0 23.0.0.0/24 is subnetted, 1 subnets O IA 23.23.23.0 [110/74] via 12.12.12.2, 00:01:49, FastEthernet0/0 11.0.0.0/32 is subnetted, 3 subnets C 11.11.11.3 is directly connected, Loopback3 C 11.11.11.2 is directly connected, Loopback2 C 11.11.11.1 is directly connected, Loopback1 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 R1(config-router)# Check the R3 routing table. External routes from RIP and EIGRP have appeared on R1.\nR3#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets O IA 1.1.1.1 [110/75] via 23.23.23.2, 00:19:55, Serial1/0 2.0.0.0/32 is subnetted, 1 subnets O 2.2.2.2 [110/65] via 23.23.23.2, 00:27:47, Serial1/0 33.0.0.0/32 is subnetted, 8 subnets C 33.33.33.1 is directly connected, Loopback1 C 33.33.33.3 is directly connected, Loopback3 C 33.33.33.2 is directly connected, Loopback2 C 33.33.33.5 is directly connected, Loopback5 C 33.33.33.4 is directly connected, Loopback4 C 33.33.33.7 is directly connected, Loopback7 C 33.33.33.6 is directly connected, Loopback6 C 33.33.33.8 is directly connected, Loopback8 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial1/0 11.0.0.0/32 is subnetted, 3 subnets O E2 11.11.11.3 [110/20] via 23.23.23.2, 00:19:11, Serial1/0 O E2 11.11.11.2 [110/20] via 23.23.23.2, 00:19:11, Serial1/0 O E2 11.11.11.1 [110/20] via 23.23.23.2, 00:19:11, Serial1/0 12.0.0.0/24 is subnetted, 1 subnets O IA 12.12.12.0 [110/74] via 23.23.23.2, 00:27:49, Serial1/0 R3# On R1, there is no default route yet, so it cannot ping 33.33.33.1 - 33.33.33.4 on the EIGRP network on R3 which is redistributed to OSPF.\nR1#ping 33.33.33.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 33.33.33.1, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) R1# The way to do this is to add the configuration on the ABR router, which is R2.\nR2(config-router)#area 10 nssa default-information-originate R1#sh ip route Gateway of last resort is 12.12.12.2 to network 0.0.0.0 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets O IA 2.2.2.2 [110/11] via 12.12.12.2, 00:27:01, FastEthernet0/0 33.0.0.0/32 is subnetted, 4 subnets O IA 33.33.33.5 [110/75] via 12.12.12.2, 00:27:01, FastEthernet0/0 O IA 33.33.33.7 [110/75] via 12.12.12.2, 00:27:01, FastEthernet0/0 O IA 33.33.33.6 [110/75] via 12.12.12.2, 00:27:01, FastEthernet0/0 O IA 33.33.33.8 [110/75] via 12.12.12.2, 00:27:02, FastEthernet0/0 3.0.0.0/32 is subnetted, 1 subnets O IA 3.3.3.3 [110/75] via 12.12.12.2, 00:27:02, FastEthernet0/0 23.0.0.0/24 is subnetted, 1 subnets O IA 23.23.23.0 [110/74] via 12.12.12.2, 00:27:03, FastEthernet0/0 11.0.0.0/32 is subnetted, 3 subnets C 11.11.11.3 is directly connected, Loopback3 C 11.11.11.2 is directly connected, Loopback2 C 11.11.11.1 is directly connected, Loopback1 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 O*N2 0.0.0.0/0 [110/1] via 12.12.12.2, 00:00:18, FastEthernet0/0 R1#ping 33.33.33.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 33.33.33.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 20/64/124 ms R1# If you want internal OSPF routes from other areas not to be displayed in the database but still be able to send its RIP external routes, add no-summary on the ABR R2.\nR2(config-router)#area 10 nssa no-summary Cek tabel route R1. R1#sh ip route Gateway of last resort is 12.12.12.2 to network 0.0.0.0 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 11.0.0.0/32 is subnetted, 3 subnets C 11.11.11.3 is directly connected, Loopback3 C 11.11.11.2 is directly connected, Loopback2 C 11.11.11.1 is directly connected, Loopback1 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 O*IA 0.0.0.0/0 [110/11] via 12.12.12.2, 00:00:17, FastEthernet0/0 R1#ping 33.33.33.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 33.33.33.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 24/80/144 ms Make sure the external RIP route from R1 can still be received by R3.\nR3#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets O IA 1.1.1.1 [110/75] via 23.23.23.2, 00:32:10, Serial1/0 2.0.0.0/32 is subnetted, 1 subnets O 2.2.2.2 [110/65] via 23.23.23.2, 00:40:02, Serial1/0 33.0.0.0/32 is subnetted, 8 subnets C 33.33.33.1 is directly connected, Loopback1 C 33.33.33.3 is directly connected, Loopback3 C 33.33.33.2 is directly connected, Loopback2 C 33.33.33.5 is directly connected, Loopback5 C 33.33.33.4 is directly connected, Loopback4 C 33.33.33.7 is directly connected, Loopback7 C 33.33.33.6 is directly connected, Loopback6 C 33.33.33.8 is directly connected, Loopback8 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial1/0 11.0.0.0/32 is subnetted, 3 subnets O E2 11.11.11.3 [110/20] via 23.23.23.2, 00:31:28, Serial1/0 O E2 11.11.11.2 [110/20] via 23.23.23.2, 00:31:28, Serial1/0 O E2 11.11.11.1 [110/20] via 23.23.23.2, 00:31:28, Serial1/0 12.0.0.0/24 is subnetted, 1 subnets O IA 12.12.12.0 [110/74] via 23.23.23.2, 00:40:06, Serial1/0 R3#ping 11.11.11.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 11.11.11.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 20/65/104 ms R3# OSPF External Route Type 1 # R2#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets O 1.1.1.1 [110/11] via 12.12.12.1, 00:02:05, FastEthernet0/0 2.0.0.0/32 is subnetted, 1 subnets C 2.2.2.2 is directly connected, Loopback0 33.0.0.0/32 is subnetted, 8 subnets O E2 33.33.33.1 [110/20] via 23.23.23.3, 00:02:41, Serial1/0 O E2 33.33.33.3 [110/20] via 23.23.23.3, 00:02:41, Serial1/0 O E2 33.33.33.2 [110/20] via 23.23.23.3, 00:02:41, Serial1/0 O IA 33.33.33.5 [110/65] via 23.23.23.3, 00:02:41, Serial1/0 O E2 33.33.33.4 [110/20] via 23.23.23.3, 00:02:42, Serial1/0 O IA 33.33.33.7 [110/65] via 23.23.23.3, 00:02:42, Serial1/0 O IA 33.33.33.6 [110/65] via 23.23.23.3, 00:02:42, Serial1/0 O IA 33.33.33.8 [110/65] via 23.23.23.3, 00:02:42, Serial1/0 3.0.0.0/32 is subnetted, 1 subnets O 3.3.3.3 [110/65] via 23.23.23.3, 00:02:43, Serial1/0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial1/0 11.0.0.0/32 is subnetted, 3 subnets O N2 11.11.11.3 [110/20] via 12.12.12.1, 00:02:08, FastEthernet0/0 O N2 11.11.11.2 [110/20] via 12.12.12.1, 00:02:08, FastEthernet0/0 O N2 11.11.11.1 [110/20] via 12.12.12.1, 00:02:08, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 R2# R3#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets O IA 1.1.1.1 [110/75] via 23.23.23.2, 00:01:14, Serial1/0 2.0.0.0/32 is subnetted, 1 subnets O 2.2.2.2 [110/65] via 23.23.23.2, 00:01:47, Serial1/0 33.0.0.0/32 is subnetted, 8 subnets C 33.33.33.1 is directly connected, Loopback1 C 33.33.33.3 is directly connected, Loopback3 C 33.33.33.2 is directly connected, Loopback2 C 33.33.33.5 is directly connected, Loopback5 C 33.33.33.4 is directly connected, Loopback4 C 33.33.33.7 is directly connected, Loopback7 C 33.33.33.6 is directly connected, Loopback6 C 33.33.33.8 is directly connected, Loopback8 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial1/0 11.0.0.0/32 is subnetted, 3 subnets O E2 11.11.11.3 [110/20] via 23.23.23.2, 00:01:11, Serial1/0 O E2 11.11.11.2 [110/20] via 23.23.23.2, 00:01:11, Serial1/0 O E2 11.11.11.1 [110/20] via 23.23.23.2, 00:01:11, Serial1/0 12.0.0.0/24 is subnetted, 1 subnets O IA 12.12.12.0 [110/74] via 23.23.23.2, 00:01:49, Serial1/0 R3#sh ip route 11.11.11.1 Routing entry for 11.11.11.1/32 Known via \u0026#34;ospf 14\u0026#34;, distance 110, metric 20, type extern 2, forward metric 75 Last update from 23.23.23.2 on Serial1/0, 00:02:39 ago Routing Descriptor Blocks: * 23.23.23.2, from 2.2.2.2, 00:02:39 ago, via Serial1/0 Route metric is 20, traffic share count is 1 External route 1 configuration.\nR1(config)#route-map TIPE_SATU R1(config-route-map)#set metric-type type-1 R1(config-route-map)#router ospf 13 R1(config-router)#redistribute rip subnets route-map TIPE_SATU Check on R3.\nR3#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets O IA 1.1.1.1 [110/75] via 23.23.23.2, 00:01:01, Serial1/0 2.0.0.0/32 is subnetted, 1 subnets O 2.2.2.2 [110/65] via 23.23.23.2, 00:01:01, Serial1/0 33.0.0.0/32 is subnetted, 8 subnets C 33.33.33.1 is directly connected, Loopback1 C 33.33.33.3 is directly connected, Loopback3 C 33.33.33.2 is directly connected, Loopback2 C 33.33.33.5 is directly connected, Loopback5 C 33.33.33.4 is directly connected, Loopback4 C 33.33.33.7 is directly connected, Loopback7 C 33.33.33.6 is directly connected, Loopback6 C 33.33.33.8 is directly connected, Loopback8 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial1/0 11.0.0.0/32 is subnetted, 3 subnets O E1 11.11.11.3 [110/95] via 23.23.23.2, 00:00:53, Serial1/0 O E1 11.11.11.2 [110/95] via 23.23.23.2, 00:00:53, Serial1/0 O E1 11.11.11.1 [110/95] via 23.23.23.2, 00:00:53, Serial1/0 12.0.0.0/24 is subnetted, 1 subnets O IA 12.12.12.0 [110/74] via 23.23.23.2, 00:01:03, Serial1/0 R3# R2#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets O 1.1.1.1 [110/11] via 12.12.12.1, 00:02:42, FastEthernet0/0 2.0.0.0/32 is subnetted, 1 subnets C 2.2.2.2 is directly connected, Loopback0 33.0.0.0/32 is subnetted, 8 subnets O E2 33.33.33.1 [110/20] via 23.23.23.3, 00:02:42, Serial1/0 O E2 33.33.33.3 [110/20] via 23.23.23.3, 00:02:42, Serial1/0 O E2 33.33.33.2 [110/20] via 23.23.23.3, 00:02:42, Serial1/0 O IA 33.33.33.5 [110/65] via 23.23.23.3, 00:02:42, Serial1/0 O E2 33.33.33.4 [110/20] via 23.23.23.3, 00:02:44, Serial1/0 O IA 33.33.33.7 [110/65] via 23.23.23.3, 00:02:44, Serial1/0 O IA 33.33.33.6 [110/65] via 23.23.23.3, 00:02:44, Serial1/0 O IA 33.33.33.8 [110/65] via 23.23.23.3, 00:02:44, Serial1/0 3.0.0.0/32 is subnetted, 1 subnets O 3.3.3.3 [110/65] via 23.23.23.3, 00:02:46, Serial1/0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial1/0 11.0.0.0/32 is subnetted, 3 subnets O N1 11.11.11.3 [110/31] via 12.12.12.1, 00:02:46, FastEthernet0/0 O N1 11.11.11.2 [110/31] via 12.12.12.1, 00:02:46, FastEthernet0/0 O N1 11.11.11.1 [110/31] via 12.12.12.1, 00:02:46, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 R2# If previously the metrics were both 20 in the routing tables of R2 and R3, now they are different.\nOSPF Filtering Using Distribute List # R1 interface Loopback0 ip address 1.1.1.1 255.255.255.255 ! interface FastEthernet0/0 ip address 12.12.12.1 255.255.255.0 ! router ospf 1 router-id 1.1.1.1 network 0.0.0.0 255.255.255.255 area 0 ! R2 interface Loopback0 ip address 2.2.2.2 255.255.255.255 ! interface FastEthernet0/0 ip address 12.12.12.2 255.255.255.0 ! interface Serial1/0 ip address 23.23.23.2 255.255.255.0 ! router ospf 2 router-id 2.2.2.2 network 0.0.0.0 255.255.255.255 area 0 ! R3 interface Loopback0 ip address 3.3.3.3 255.255.255.255 ! interface Serial1/0 ip address 23.23.23.3 255.255.255.0 ! router ospf 3 router-id 3.3.3.3 network 0.0.0.0 255.255.255.255 area 0 ! Buat ip loopback yang bervariatif. R1(config)#int lo1 R1(config-if)#ip add 11.11.11.1 255.255.255.255 R1(config-if)#int lo2 R1(config-if)#ip add 11.11.11.2 255.255.255.255 R1(config-if)#int lo3 R1(config-if)#ip add 11.11.11.3 255.255.255.255 R1(config-if)#int lo4 R1(config-if)#ip add 11.11.11.4 255.255.255.255 R1(config-if)#int lo5 R1(config-if)#ip add 11.11.11.5 255.255.255.255 R1(config-if)#int lo6 R1(config-if)#ip add 11.11.11.6 255.255.255.255 Check the routing table.\nR2#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets O 1.1.1.1 [110/11] via 12.12.12.1, 00:05:05, FastEthernet0/0 2.0.0.0/32 is subnetted, 1 subnets C 2.2.2.2 is directly connected, Loopback0 3.0.0.0/32 is subnetted, 1 subnets O 3.3.3.3 [110/65] via 23.23.23.3, 00:04:12, Serial1/0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial1/0 11.0.0.0/32 is subnetted, 6 subnets O 11.11.11.3 [110/11] via 12.12.12.1, 00:00:47, FastEthernet0/0 O 11.11.11.2 [110/11] via 12.12.12.1, 00:00:49, FastEthernet0/0 O 11.11.11.1 [110/11] via 12.12.12.1, 00:00:49, FastEthernet0/0 O 11.11.11.6 [110/11] via 12.12.12.1, 00:00:49, FastEthernet0/0 O 11.11.11.5 [110/11] via 12.12.12.1, 00:00:49, FastEthernet0/0 O 11.11.11.4 [110/11] via 12.12.12.1, 00:00:49, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 R2# Filter only the odd ones using access-list and distribute-list configuration.\nR2(config)#access-list 10 permit 0.0.0.1 255.255.255.254 R2(config)#router ospf 2 R2(config-router)#distribute-list 10 in Check the routing table and see the result.\nR2(config-router)#do sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets O 1.1.1.1 [110/11] via 12.12.12.1, 00:00:15, FastEthernet0/0 2.0.0.0/32 is subnetted, 1 subnets C 2.2.2.2 is directly connected, Loopback0 3.0.0.0/32 is subnetted, 1 subnets O 3.3.3.3 [110/65] via 23.23.23.3, 00:00:15, Serial1/0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial1/0 11.0.0.0/32 is subnetted, 3 subnets O 11.11.11.3 [110/11] via 12.12.12.1, 00:00:15, FastEthernet0/0 O 11.11.11.1 [110/11] via 12.12.12.1, 00:00:16, FastEthernet0/0 O 11.11.11.5 [110/11] via 12.12.12.1, 00:00:16, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 R2(config-router)# Even though it does not appear in the ip route, it still appears in the ospf database because routers in the same area share the same database.\nR2#sh ip ospf database OSPF Router with ID (2.2.2.2) (Process ID 2) Router Link States (Area 0) Link ID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 401 0x80000007 0x003446 8 2.2.2.2 2.2.2.2 617 0x80000002 0x000875 4 3.3.3.3 3.3.3.3 613 0x80000002 0x007365 3 Net Link States (Area 0) Link ID ADV Router Age Seq# Checksum 12.12.12.1 1.1.1.1 662 0x80000001 0x004CB8 R2# R1#sh ip ospf database OSPF Router with ID (1.1.1.1) (Process ID 1) Router Link States (Area 0) Link ID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 430 0x80000007 0x003446 8 2.2.2.2 2.2.2.2 648 0x80000002 0x000875 4 3.3.3.3 3.3.3.3 643 0x80000002 0x007365 3 Net Link States (Area 0) Link ID ADV Router Age Seq# Checksum 12.12.12.1 1.1.1.1 690 0x80000001 0x004CB8 R1# OSPF Summarization – Area Range # R1 interface Loopback0 ip address 1.1.1.1 255.255.255.255 ! interface FastEthernet0/0 ip address 12.12.12.1 255.255.255.0 ! router ospf 1 router-id 1.1.1.1 network 0.0.0.0 255.255.255.255 area 0 ! R2 interface Loopback0 ip address 2.2.2.2 255.255.255.255 ! interface FastEthernet0/0 ip address 12.12.12.2 255.255.255.0 ! interface Serial1/0 ip address 23.23.23.2 255.255.255.0 ! router ospf 2 router-id 2.2.2.2 network 0.0.0.0 255.255.255.255 area 0 ! R3 interface Loopback0 ip address 3.3.3.3 255.255.255.255 ! interface Serial1/0 ip address 23.23.23.3 255.255.255.0 ! router ospf 3 router-id 3.3.3.3 network 0.0.0.0 255.255.255.255 area 0 ! Create loopback ips to be summarized later.\nR3(config)#int lo1 R3(config-if)#ip add 33.33.33.1 255.255.255.255 R3(config-if)#int lo2 R3(config-if)#ip add 33.33.33.2 255.255.255.255 R3(config-if)#int lo3 R3(config-if)#ip add 33.33.33.3 255.255.255.255 R3(config-if)#int lo4 R3(config-if)#ip add 33.33.33.4 255.255.255.255 R3(config-if)#int lo5 R3(config-if)#ip add 33.33.33.5 255.255.255.255 R3(config-if)#int lo6 R3(config-if)#ip add 33.33.33.6 255.255.255.255 R3(config)#router ospf 3 R3(config-router)#net 33.33.33.1 0.0.0.0 area 10 R3(config-router)#net 33.33.33.2 0.0.0.0 area 10 R3(config-router)#net 33.33.33.3 0.0.0.0 area 10 R3(config-router)#net 33.33.33.4 0.0.0.0 area 10 R3(config-router)#net 33.33.33.5 0.0.0.0 area 10 R3(config-router)#net 33.33.33.6 0.0.0.0 area 10 R1(config-router)#do sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets O 2.2.2.2 [110/11] via 12.12.12.2, 00:04:12, FastEthernet0/0 33.0.0.0/32 is subnetted, 6 subnets O IA 33.33.33.1 [110/75] via 12.12.12.2, 00:00:20, FastEthernet0/0 O IA 33.33.33.3 [110/75] via 12.12.12.2, 00:00:20, FastEthernet0/0 O IA 33.33.33.2 [110/75] via 12.12.12.2, 00:00:20, FastEthernet0/0 O IA 33.33.33.5 [110/75] via 12.12.12.2, 00:00:20, FastEthernet0/0 O IA 33.33.33.4 [110/75] via 12.12.12.2, 00:00:21, FastEthernet0/0 O IA 33.33.33.6 [110/75] via 12.12.12.2, 00:00:12, FastEthernet0/0 3.0.0.0/32 is subnetted, 1 subnets O 3.3.3.3 [110/75] via 12.12.12.2, 00:02:51, FastEthernet0/0 23.0.0.0/24 is subnetted, 1 subnets O 23.23.23.0 [110/74] via 12.12.12.2, 00:04:15, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 R1(config-router)# Summary configuration on R3.\nR3(config-router)#area 10 range 33.33.33.0 255.255.255.248 Cek tabel routing dan sudah tersummary. R1(config-router)#do sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets O 2.2.2.2 [110/11] via 12.12.12.2, 00:05:34, FastEthernet0/0 33.0.0.0/29 is subnetted, 1 subnets O IA 33.33.33.0 [110/75] via 12.12.12.2, 00:00:06, FastEthernet0/0 3.0.0.0/32 is subnetted, 1 subnets O 3.3.3.3 [110/75] via 12.12.12.2, 00:04:12, FastEthernet0/0 23.0.0.0/24 is subnetted, 1 subnets O 23.23.23.0 [110/74] via 12.12.12.2, 00:05:36, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 R1(config-router)# Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets O 1.1.1.1 [110/75] via 23.23.23.2, 00:02:04, Serial1/0 2.0.0.0/32 is subnetted, 1 subnets O 2.2.2.2 [110/65] via 23.23.23.2, 00:02:04, Serial1/0 33.0.0.0/8 is variably subnetted, 7 subnets, 2 masks C 33.33.33.1/32 is directly connected, Loopback1 O 33.33.33.0/29 is a summary, 00:02:04, Null0 C 33.33.33.3/32 is directly connected, Loopback3 C 33.33.33.2/32 is directly connected, Loopback2 C 33.33.33.5/32 is directly connected, Loopback5 C 33.33.33.4/32 is directly connected, Loopback4 C 33.33.33.6/32 is directly connected, Loopback6 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial1/0 12.0.0.0/24 is subnetted, 1 subnets O 12.12.12.0 [110/74] via 23.23.23.2, 00:02:06, Serial1/0 R3# If you want to remove Null0, use the command below.\nR3(config-router)#no discard-route internal R3(config-router)#do sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets O 1.1.1.1 [110/75] via 23.23.23.2, 00:00:09, Serial1/0 2.0.0.0/32 is subnetted, 1 subnets O 2.2.2.2 [110/65] via 23.23.23.2, 00:00:09, Serial1/0 33.0.0.0/32 is subnetted, 6 subnets C 33.33.33.1 is directly connected, Loopback1 C 33.33.33.3 is directly connected, Loopback3 C 33.33.33.2 is directly connected, Loopback2 C 33.33.33.5 is directly connected, Loopback5 C 33.33.33.4 is directly connected, Loopback4 C 33.33.33.6 is directly connected, Loopback6 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial1/0 12.0.0.0/24 is subnetted, 1 subnets O 12.12.12.0 [110/74] via 23.23.23.2, 00:00:11, Serial1/0 R3(config-router)# And Null0 is gone.\nOSPF Summarization – Summary Address # Still using the previous lab.\nR3(config)#router eigrp 3 R3(config-router)#net 33.33.33.1 0.0.0.0 R3(config-router)#net 33.33.33.2 0.0.0.0 R3(config-router)#net 33.33.33.3 0.0.0.0 R3(config-router)#net 33.33.33.4 0.0.0.0 R3(config-router)#net 33.33.33.5 0.0.0.0 R3(config-router)#net 33.33.33.6 0.0.0.0 R3(config-router)#no auto-summary R3(config)#no router ospf 3 *Mar 1 00:01:06.811: %OSPF-5-ADJCHG: Process 3, Nbr 2.2.2.2 on Serial1/0 from FULL to DOWN, Neighbor Down: Interface down or detached R3(config)#router ospf 3 R3(config-router)#router-id 3.3.3.3 R3(config-router)#network 3.3.3.3 0.0.0.0 area 0 R3(config-router)#network 23.23.23.3 0.0.0.0 area 0 e R3(config-router)#redistribute eigrp 3 subnets R1#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets O 2.2.2.2 [110/11] via 12.12.12.2, 00:04:26, FastEthernet0/0 33.0.0.0/32 is subnetted, 6 subnets O E2 33.33.33.1 [110/20] via 12.12.12.2, 00:01:08, FastEthernet0/0 O E2 33.33.33.3 [110/20] via 12.12.12.2, 00:01:08, FastEthernet0/0 O E2 33.33.33.2 [110/20] via 12.12.12.2, 00:01:08, FastEthernet0/0 O E2 33.33.33.5 [110/20] via 12.12.12.2, 00:01:08, FastEthernet0/0 O E2 33.33.33.4 [110/20] via 12.12.12.2, 00:01:09, FastEthernet0/0 O E2 33.33.33.6 [110/20] via 12.12.12.2, 00:01:09, FastEthernet0/0 3.0.0.0/32 is subnetted, 1 subnets O 3.3.3.3 [110/75] via 12.12.12.2, 00:03:15, FastEthernet0/0 23.0.0.0/24 is subnetted, 1 subnets O 23.23.23.0 [110/74] via 12.12.12.2, 00:04:36, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 R1# External route summary configuration on R3.\nR3(config-router)#summary-address 33.33.33.0 255.255.255.248 Check the R1 routing table again.\nR1#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets O 2.2.2.2 [110/11] via 12.12.12.2, 00:06:38, FastEthernet0/0 33.0.0.0/29 is subnetted, 1 subnets O E2 33.33.33.0 [110/20] via 12.12.12.2, 00:00:30, FastEthernet0/0 3.0.0.0/32 is subnetted, 1 subnets O 3.3.3.3 [110/75] via 12.12.12.2, 00:05:25, FastEthernet0/0 23.0.0.0/24 is subnetted, 1 subnets O 23.23.23.0 [110/74] via 12.12.12.2, 00:06:39, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 R1# OSPF Path Selection # Still using the previous lab. Create 1 loopback ip on R3 and do not advertise it.\nR3(config)#int lo11 R3(config-if)#ip add 113.113.113.113 255.255.255.255 To access loopback 113.113.113.113 which is not advertised, use a default route.\nR3(config)#router ospf 3 R3(config-router)#default-information originate always Check the R1 routing table.\nR1#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 12.12.12.2 to network 0.0.0.0 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets O 2.2.2.2 [110/11] via 12.12.12.2, 00:02:49, FastEthernet0/0 33.0.0.0/29 is subnetted, 1 subnets O E2 33.33.33.0 [110/20] via 12.12.12.2, 00:02:49, FastEthernet0/0 3.0.0.0/32 is subnetted, 1 subnets O 3.3.3.3 [110/75] via 12.12.12.2, 00:02:49, FastEthernet0/0 23.0.0.0/24 is subnetted, 1 subnets O 23.23.23.0 [110/74] via 12.12.12.2, 00:02:51, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 O*E2 0.0.0.0/0 [110/1] via 12.12.12.2, 00:00:09, FastEthernet0/0 R1#ping 113.113.113.113 R1#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 12.12.12.2 to network 0.0.0.0 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets O 2.2.2.2 [110/11] via 12.12.12.2, 00:02:49, FastEthernet0/0 33.0.0.0/29 is subnetted, 1 subnets O E2 33.33.33.0 [110/20] via 12.12.12.2, 00:02:49, FastEthernet0/0 3.0.0.0/32 is subnetted, 1 subnets O 3.3.3.3 [110/75] via 12.12.12.2, 00:02:49, FastEthernet0/0 23.0.0.0/24 is subnetted, 1 subnets O 23.23.23.0 [110/74] via 12.12.12.2, 00:02:51, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 O*E2 0.0.0.0/0 [110/1] via 12.12.12.2, 00:00:09, FastEthernet0/0 R1#ping 113.113.113.113 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 113.113.113.113, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 16/164/280 ms R1# Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 113.113.113.113, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 16/164/280 ms R1# The default route has appeared.\nOSPF Authentication # There are 2 authentications in ospf.\nClear Text Authentication MD5 Authentication Clear Text Authentication configuration between R1 and R2.\nR1(config)#int f0/0 R1(config-if)#ip ospf authentication R1(config-if)#ip ospf authentication-key CISCO123 R2(config)#int f0/0 R2(config-if)#ip ospf authentication R2(config-if)#ip ospf authentication-key CISCO123 R1(config-if)#do sh ip ospf int f0/0 FastEthernet0/0 is up, line protocol is up Internet Address 12.12.12.1/24, Area 0 Process ID 1, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 10 Transmit Delay is 1 sec, State BDR, Priority 1 Designated Router (ID) 2.2.2.2, Interface address 12.12.12.2 Backup Designated router (ID) 1.1.1.1, Interface address 12.12.12.1 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 oob-resync timeout 40 Hello due in 00:00:00 Supports Link-local Signaling (LLS) Cisco NSF helper support enabled IETF NSF helper support enabled Index 1/1, flood queue length 0 Next 0x0(0)/0x0(0) Last flood scan length is 1, maximum is 1 Last flood scan time is 0 msec, maximum is 0 msec Neighbor Count is 1, Adjacent neighbor count is 1 Adjacent with neighbor 2.2.2.2 (Designated Router) Suppress hello for 0 neighbor(s) Simple password authentication enabled R1(config-if)# MD5 Authentication configuration between R2 and R3.\nR2(config-if)#int s1/0 R2(config-if)#ip ospf authentication message-digest R2(config-if)#ip ospf message-digest-key 13 md5 CISCO123 R3(config)#int s1/0 R3(config-if)#ip ospf authentication message-digest R3(config-if)#ip ospf message-digest-key 13 md5 CISCO123 R3(config-if)#do sh ip ospf int s1/0 Serial1/0 is up, line protocol is up Internet Address 23.23.23.3/24, Area 0 Process ID 3, Router ID 3.3.3.3, Network Type POINT_TO_POINT, Cost: 64 Transmit Delay is 1 sec, State POINT_TO_POINT Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 oob-resync timeout 40 Hello due in 00:00:06 Supports Link-local Signaling (LLS) Cisco NSF helper support enabled IETF NSF helper support enabled Index 2/2, flood queue length 0 Next 0x0(0)/0x0(0) Last flood scan length is 1, maximum is 1 Last flood scan time is 0 msec, maximum is 0 msec Neighbor Count is 1, Adjacent neighbor count is 1 Adjacent with neighbor 2.2.2.2 Suppress hello for 0 neighbor(s) Message digest authentication enabled Youngest key id is 13 R3(config-if)# OSPF Path Selection # R1(config)#interface Loopback0 R1(config-if)#ip address 1.1.1.1 255.255.255.255 R1(config-if)#interface FastEthernet0/0 R1(config-if)#ip address 12.12.12.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#interface Serial1/0 R1(config-if)#ip address 13.13.13.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#router ospf 1 R1(config-router)#router-id 1.1.1.1 R1(config-router)#network 0.0.0.0 255.255.255.255 area 0 R2(config)#interface Loopback0 R2(config-if)#ip address 2.2.2.2 255.255.255.255 R2(config-if)#interface FastEthernet0/0 R2(config-if)#ip address 12.12.12.2 255.255.255.0 R2(config-if)#no sh R2(config-if)#interface FastEthernet0/1 R2(config-if)#ip address 23.23.23.2 255.255.255.0 R2(config-if)#no sh R2(config-if)#router ospf 2 R2(config-router)#router-id 2.2.2.2 R2(config-router)#network 0.0.0.0 255.255.255.255 area 0 R3(config)#interface Loopback0 R3(config-if)#ip address 3.3.3.3 255.255.255.255 R3(config-if)#interface FastEthernet0/1 R3(config-if)#ip address 23.23.23.3 255.255.255.0 R3(config-if)#no sh R3(config-if)#interface Serial1/0 R3(config-if)#ip address 13.13.13.3 255.255.255.0 R3(config-if)#no sh R3(config-if)#router ospf 3 R3(config-router)#router-id 3.3.3.3 R3(config-router)#network 0.0.0.0 255.255.255.255 area 0 Check the path, apparently it goes through R2.\nR1#traceroute 3.3.3.3 Type escape sequence to abort. Tracing the route to 3.3.3.3 1 12.12.12.2 208 msec 4 msec 8 msec 2 23.23.23.3 276 msec 80 msec 216 msec R1#sh ip route 3.3.3.3 Routing entry for 3.3.3.3/32 Known via \u0026#34;ospf 1\u0026#34;, distance 110, metric 21, type intra area Last update from 12.12.12.2 on FastEthernet0/0, 00:02:07 ago Routing Descriptor Blocks: * 12.12.12.2, from 3.3.3.3, 00:02:07 ago, via FastEthernet0/0 Route metric is 21, traffic share count is 1 R1# Because OSPF uses bandwidth, the path chosen is through FastEthernet. FastEthernet has a metric of 10 obtained from 100,000,000 / 10,000,000 (lowest bandwidth 10Mbps).\nThe metric is written as 21, obtained from the FastEthernet metrics of R1-R2 and R2-R3, each being 10, and loopback R3 being 1, so the total is 21.\nTry shutting down FastEthernet on R2.\nR2(config)#interface FastEthernet0/0 R2(config-if)#shutdown R1#sh ip route 3.3.3.3 Routing entry for 3.3.3.3/32 Known via \u0026#34;ospf 1\u0026#34;, distance 110, metric 65, type intra area Last update from 13.13.13.3 on Serial1/0, 00:00:18 ago Routing Descriptor Blocks: * 13.13.13.3, from 3.3.3.3, 00:00:18 ago, via Serial1/0 Route metric is 65, traffic share count is 1 R1# Then the path switches to serial. Serial has a metric of 64 obtained from 100,000,000 / 1,544,000 (rounding of serial bandwidth).\nThe metric of 65 is obtained from the R1-R3 serial link which is 64 and R3 loopback 1, totaling 65.\nTurn FastEthernet back on and make sure the path returns to normal.\nR2(config)#interface FastEthernet0/0 R2(config-if)#no shutdown R1#sh ip route 3.3.3.3 Routing entry for 3.3.3.3/32 Known via \u0026#34;ospf 1\u0026#34;, distance 110, metric 21, type intra area Last update from 12.12.12.2 on FastEthernet0/0, 00:00:55 ago Routing Descriptor Blocks: * 12.12.12.2, from 3.3.3.3, 00:00:55 ago, via FastEthernet0/0 Route metric is 21, traffic share count is 1 R1# To switch the path to Serial, change the FastEthernet bandwidth parameter.\nR1(config)#int fastEthernet0/0 R1(config-if)#bandwidth 100 R1#sh ip route 3.3.3.3 Routing entry for 3.3.3.3/32 Known via \u0026#34;ospf 1\u0026#34;, distance 110, metric 65, type intra area Last update from 13.13.13.3 on Serial1/0, 00:00:12 ago Routing Descriptor Blocks: * 13.13.13.3, from 3.3.3.3, 00:00:12 ago, via Serial1/0 Route metric is 65, traffic share count is 1 R1# Then the path switches to Serial.\n","date":"20 May 2026","externalUrl":null,"permalink":"/study/cisco/ospf/","section":"Study","summary":"OSPF is a dynamic routing protocol that automatically manages and finds the best path to route data across computer networks.","title":"OSPF","type":"study"},{"content":"","date":"20 May 2026","externalUrl":null,"permalink":"/tags/ospf/","section":"Tags","summary":"","title":"OSPF","type":"tags"},{"content":"EIGRP is a distance vector protocol and Cisco proprietary. It uses the DUAL (Diffusing Update Algorithm) algorithm.\nAdvanced distance vector/hybrid routing protocol Multicast or unicast for exchange information use port 88 Administrative distance 90 Classless routing protocol support VLSM/CIDR. Support IPv6 Rich metric (bandwidth, delay, load and reliability) Very fast convergence Equal and Unequal Load balancing 100% loop-free It is called an advanced distance vector or hybrid routing protocol because EIGRP is not like RIP which has:\nNo neighbor discovery Periodic updates Vulnerable to loops Simple metric (hop count) Cisco added link state features to EIGRP so that it can overcome the problems of RIP. A router running EIGRP will have 3 databases (tables):\nEIGRP neighbor table\nList of all directly connected neighbors Next-hop router Interface EIGRP topology table\nList of all routes learned from all EIGRP neighbors Destination Metric Routing table\nBest route from the EIGRP topology table Successor and Feasible Successor\nSuccessor = best path to destination Feasible Successor = backup link to destination EIGRP Packets\nHello Packet\nTo discover and recover neighbors and to form adjacencies. If the receiver replies with a hello packet, an adjacency occurs. If the receiver does not send a hello packet within X time (hold time), the adjacency will be dropped. After the adjacency is formed, it will exchange routing information which will be stored in the topology table. The best path from the topology table will be saved in the routing table. Reliable Update Packet\nContains routing information Can be sent via unicast or multicast Reliable Query Packet\nSent if an EIGRP router loses information about a network, then a query will be sent to the neighbor to get information about the lost network. Reply Packet\nResponse to a query packet ACK Packet\nSent as a notification that it has received an update packet. Sent via unicast. No Auto-Summary\nUsed to include the subnet mask in the advertised network.\nEIGRP Basic Configuration # Type the following interface configuration. Make sure you can ping between directly connected interfaces.\nR1 interface Loopback0 ip address 1.1.1.1 255.255.255.255 ! interface Serial0/0 ip address 12.12.12.1 255.255.255.0 ! R2 interface Loopback0 ip address 2.2.2.2 255.255.255.255 ! interface Serial0/0 ip address 12.12.12.2 255.255.255.0 ! interface Serial0/1 ip address 23.23.23.2 255.255.255.0 ! R3 interface Loopback0 ip address 3.3.3.3 255.255.255.255 ! interface Serial0/0 ip address 23.23.23.3 255.255.255.0 ! EIGRP configuration. Advertise the network into EIGRP routing. The Autonomous System Number (AS Number) must be the same on every router.\nR1 router eigrp 10 network 1.1.1.1 0.0.0.0 network 12.12.12.1 0.0.0.0 no auto-summary R2 router eigrp 10 network 2.2.2.2 0.0.0.0 network 12.12.12.2 0.0.0.0 network 23.23.23.2 0.0.0.0 no auto-summary R3 router eigrp 10 network 3.3.3.3 0.0.0.0 network 23.23.23.3 0.0.0.0 no auto-summary Check the routing table and test ping.\nR1#show ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets D 2.2.2.2 [90/2297856] via 12.12.12.2, 00:06:56, Serial0/0 3.0.0.0/32 is subnetted, 1 subnets D 3.3.3.3 [90/2809856] via 12.12.12.2, 00:06:56, Serial0/0 23.0.0.0/24 is subnetted, 1 subnets D 23.23.23.0 [90/2681856] via 12.12.12.2, 00:06:56, Serial0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, Serial0/0 R1#ping 2.2.2.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 60/75/128 ms R1#ping 3.3.3.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 60/88/116 ms EIGRP FIltering - Distribute List # Used to filter networks based on network routes entering and leaving the interface. In the topology below, the goal is that the loopback ip 2.2.2.2 does not exist in R1\u0026rsquo;s routing table.\nFirst method: filter the network using an access list on R1 with distribute IN.\nStill using the previous lab.\naccess-list 10 deny 2.2.2.2 access-list 10 permit any router eigrp 10 distribute-list 10 in Serial0/0 Check ip route.\nR1#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 3.0.0.0/32 is subnetted, 1 subnets D 3.3.3.3 [90/2809856] via 12.12.12.2, 00:00:39, Serial0/0 23.0.0.0/24 is subnetted, 1 subnets D 23.23.23.0 [90/2681856] via 12.12.12.2, 00:00:39, Serial0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, Serial0/0 R1# Second method: filter the network using an access list on R2 with distribute OUT. Ensure the loopback ip 2.2.2.2 is back in R1\u0026rsquo;s routing table, then on R2 type the command below.\nrouter eigrp 10 access-list 10 deny 2.2.2.2 access-list 10 permit any distribute-list 10 out Serial0/0 Check the routing table to ensure the loopback ip 2.2.2.2 is not there.\nEIGRP FIltering - Prefix List # Filter the network based on prefix. When a prefix list IN is entered on R2, the R3 network denied by R2 will not be advertised to R1.\nStill using the previous lab. The goal is to block networks on R3 with prefixes 24 to 28, while others are displayed.\nR1 interface Loopback0 ip address 1.1.1.1 255.255.255.255 ! interface Serial0/0 ip address 12.12.12.1 255.255.255.0 ! router eigrp 10 network 0.0.0.0 no auto-summary ! R2 interface Loopback0 ip address 2.2.2.2 255.255.255.255 ! interface Serial0/0 ip address 12.12.12.2 255.255.255.0 ! interface Serial0/1 ip address 23.23.23.2 255.255.255.0 ! router eigrp 10 network 0.0.0.0 no auto-summary ! R3 interface Loopback0 ip address 3.3.3.3 255.255.255.255 ! interface Serial0/0 ip address 23.23.23.3 255.255.255.0 ! router eigrp 10 network 0.0.0.0 no auto-summary ! On R1, create various loopback IPs to be filtered.\ninterface Loopback1 ip address 3.3.3.17 255.255.255.240 ! interface Loopback2 ip address 3.3.3.33 255.255.255.248 ! interface Loopback3 ip address 3.3.3.150 255.255.255.252 ! interface Loopback4 ip address 3.3.3.200 255.255.255.240 ! interface Loopback5 ip address 3.3.3.100 255.255.255.224 ! Check R1\u0026rsquo;s routing table.\nR1#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets D 2.2.2.2 [90/2297856] via 12.12.12.2, 00:04:45, Serial0/0 3.0.0.0/8 is variably subnetted, 6 subnets, 5 masks D 3.3.3.3/32 [90/2809856] via 12.12.12.2, 00:04:44, Serial0/0 D 3.3.3.16/28 [90/2809856] via 12.12.12.2, 00:00:02, Serial0/0 D 3.3.3.32/29 [90/2809856] via 12.12.12.2, 00:04:44, Serial0/0 D 3.3.3.96/27 [90/2809856] via 12.12.12.2, 00:00:05, Serial0/0 D 3.3.3.148/30 [90/2809856] via 12.12.12.2, 00:04:46, Serial0/0 D 3.3.3.192/28 [90/2809856] via 12.12.12.2, 00:00:05, Serial0/0 23.0.0.0/24 is subnetted, 1 subnets D 23.23.23.0 [90/2681856] via 12.12.12.2, 00:04:47, Serial0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, Serial0/0 R1# Configure prefix list filtering on R2 and check the routing table. Routes with prefixes between 24 to 28 are no longer there.\nR2(config-router)#ip prefix-list EIGRP_IN seq 5 deny 3.3.3.0/24 le 28 R2(config)#ip prefix-list EIGRP_IN seq 10 permit 0.0.0.0/0 le 32 R2(config)#router eigrp 10 R2(config-router)#distribute-list prefix EIGRP_IN in R2(config-router)# *Mar 1 00:07:32.647: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 10: Neighbor 12.12.12.1 (Serial0/0) is resync: route configuration changed *Mar 1 00:07:32.647: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 10: Neighbor 23.23.23.3 (Serial0/1) is resync: route configuration changed R2#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets D 1.1.1.1 [90/2297856] via 12.12.12.1, 00:10:55, Serial0/0 2.0.0.0/32 is subnetted, 1 subnets C 2.2.2.2 is directly connected, Loopback0 3.0.0.0/8 is variably subnetted, 3 subnets, 3 masks D 3.3.3.3/32 [90/2297856] via 23.23.23.3, 00:02:51, Serial0/1 D 3.3.3.32/29 [90/2297856] via 23.23.23.3, 00:02:51, Serial0/1 D 3.3.3.148/30 [90/2297856] via 23.23.23.3, 00:02:51, Serial0/1 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial0/1 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, Serial0/0 R2# Likewise on R1.\nR1#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets D 2.2.2.2 [90/2297856] via 12.12.12.2, 00:11:45, Serial0/0 3.0.0.0/8 is variably subnetted, 3 subnets, 3 masks D 3.3.3.3/32 [90/2809856] via 12.12.12.2, 00:03:22, Serial0/0 D 3.3.3.32/29 [90/2809856] via 12.12.12.2, 00:03:22, Serial0/0 D 3.3.3.148/30 [90/2809856] via 12.12.12.2, 00:03:22, Serial0/0 23.0.0.0/24 is subnetted, 1 subnets D 23.23.23.0 [90/2681856] via 12.12.12.2, 00:11:47, Serial0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, Serial0/0 R1# Still using the previous lab. The goal is to block networks on R3 with prefixes 24 to 28, while others are displayed.\nIf previously using prefix IN, now use OUT. The goal is to block networks on R3 with prefixes 28 to 30, while others are displayed. Remove the previous prefix list IN configuration.\nR2(config)#router eigrp 10 R2(config-router)#no distribute-list prefix EIGRP_IN in Make sure all networks appear in the routing table.\nR1#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets D 2.2.2.2 [90/2297856] via 12.12.12.2, 00:04:45, Serial0/0 3.0.0.0/8 is variably subnetted, 6 subnets, 5 masks D 3.3.3.3/32 [90/2809856] via 12.12.12.2, 00:04:44, Serial0/0 D 3.3.3.16/28 [90/2809856] via 12.12.12.2, 00:00:02, Serial0/0 D 3.3.3.32/29 [90/2809856] via 12.12.12.2, 00:04:44, Serial0/0 D 3.3.3.96/27 [90/2809856] via 12.12.12.2, 00:00:05, Serial0/0 D 3.3.3.148/30 [90/2809856] via 12.12.12.2, 00:04:46, Serial0/0 D 3.3.3.192/28 [90/2809856] via 12.12.12.2, 00:00:05, Serial0/0 23.0.0.0/24 is subnetted, 1 subnets D 23.23.23.0 [90/2681856] via 12.12.12.2, 00:04:47, Serial0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, Serial0/0 R1# Configure prefix list filtering OUT on R2.\nR2(config-router)# ip prefix-list EIGRP_OUT seq 5 deny 3.3.3.0/24 ge 28 le 30 R2(config)# ip prefix-list EIGRP_OUT seq 10 permit 0.0.0.0/0 ge 24 R2(config)#router eigrp 10 R2(config-router)#distribute-list prefix EIGRP_OUT out Check the routing table on R1 and R2.\nR2#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets D 1.1.1.1 [90/2297856] via 12.12.12.1, 00:10:55, Serial0/0 2.0.0.0/32 is subnetted, 1 subnets C 2.2.2.2 is directly connected, Loopback0 3.0.0.0/8 is variably subnetted, 3 subnets, 3 masks D 3.3.3.3/32 [90/2297856] via 23.23.23.3, 00:02:51, Serial0/1 D 3.3.3.32/29 [90/2297856] via 23.23.23.3, 00:02:51, Serial0/1 D 3.3.3.148/30 [90/2297856] via 23.23.23.3, 00:02:51, Serial0/1 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial0/1 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, Serial0/0 R2# R1#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets D 2.2.2.2 [90/2297856] via 12.12.12.2, 00:03:29, Serial0/0 3.0.0.0/8 is variably subnetted, 2 subnets, 2 masks D 3.3.3.3/32 [90/2809856] via 12.12.12.2, 00:03:28, Serial0/0 D 3.3.3.96/27 [90/2809856] via 12.12.12.2, 00:03:28, Serial0/0 23.0.0.0/24 is subnetted, 1 subnets D 23.23.23.0 [90/2681856] via 12.12.12.2, 00:03:29, Serial0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, Serial0/0 R1# R2#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets D 1.1.1.1 [90/2297856] via 12.12.12.1, 00:03:15, Serial0/0 2.0.0.0/32 is subnetted, 1 subnets C 2.2.2.2 is directly connected, Loopback0 3.0.0.0/8 is variably subnetted, 2 subnets, 2 masks D 3.3.3.3/32 [90/2297856] via 23.23.23.3, 00:03:15, Serial0/1 D 3.3.3.96/27 [90/2297856] via 23.23.23.3, 00:03:15, Serial0/1 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial0/1 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, Serial0/0 R2# EIGRP FIltering - Access List # Access lists can also be used for filtering. The goal of this lab is to filter even and odd routes in the routing table.\nCreate odd and even loopback IPs and advertise them to EIGRP.\nR1(config)#interface Loopback1 R1(config-if)# ip address 11.11.11.1 255.255.255.255 R1(config-if)#! R1(config-if)#interface Loopback2 R1(config-if)# ip address 11.11.11.2 255.255.255.255 R1(config-if)#! R1(config-if)#interface Loopback3 R1(config-if)# ip address 11.11.11.3 255.255.255.255 R1(config-if)#! R1(config-if)#interface Loopback4 R1(config-if)# ip address 11.11.11.4 255.255.255.255 R1(config-if)#! R1(config-if)#interface Loopback5 R1(config-if)# ip address 11.11.11.5 255.255.255.255 R1(config-if)#! R1(config-if)#interface Loopback6 R1(config-if)# ip address 11.11.11.6 255.255.255.255 R1(config-if)#! R1(config-if)#interface Loopback7 R1(config-if)# ip address 11.11.11.7 255.255.255.255 R1(config-if)#! R1(config-if)#interface Loopback8 R1(config-if)# ip address 11.11.11.8 255.255.255.255 R1(config-if)#! ***Advertise ke EIGRP*** R1(config)#router eigrp 10 R1(config-router)# network 11.11.11.1 0.0.0.0 R1(config-router)# network 11.11.11.2 0.0.0.0 R1(config-router)# network 11.11.11.3 0.0.0.0 R1(config-router)# network 11.11.11.4 0.0.0.0 R1(config-router)# network 11.11.11.5 0.0.0.0 R1(config-router)# network 11.11.11.6 0.0.0.0 R1(config-router)# network 11.11.11.7 0.0.0.0 R1(config-router)# network 11.11.11.8 0.0.0.0 ***Cek tabel routing*** R3(config)#do sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets D 1.1.1.1 [90/2809856] via 23.23.23.2, 00:05:40, Serial0/0 2.0.0.0/32 is subnetted, 1 subnets D 2.2.2.2 [90/2297856] via 23.23.23.2, 00:00:03, Serial0/0 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial0/0 11.0.0.0/32 is subnetted, 8 subnets D 11.11.11.8 [90/2809856] via 23.23.23.2, 00:00:03, Serial0/0 D 11.11.11.3 [90/2809856] via 23.23.23.2, 00:03:29, Serial0/0 D 11.11.11.2 [90/2809856] via 23.23.23.2, 00:00:04, Serial0/0 D 11.11.11.1 [90/2809856] via 23.23.23.2, 00:03:29, Serial0/0 D 11.11.11.7 [90/2809856] via 23.23.23.2, 00:03:29, Serial0/0 D 11.11.11.6 [90/2809856] via 23.23.23.2, 00:00:06, Serial0/0 D 11.11.11.5 [90/2809856] via 23.23.23.2, 00:03:30, Serial0/0 D 11.11.11.4 [90/2809856] via 23.23.23.2, 00:00:06, Serial0/0 12.0.0.0/24 is subnetted, 1 subnets D 12.12.12.0 [90/2681856] via 23.23.23.2, 00:00:06, Serial0/0 R3(config)# Filter only the odd routes.\nR3(config)#access-list 10 permit 0.0.0.1 255.255.255.254 R3(config)#router eigrp 10 R3(config-router)#distribute-list 10 in s0/0 Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets D 1.1.1.1 [90/2809856] via 23.23.23.2, 00:07:25, Serial0/0 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial0/0 11.0.0.0/32 is subnetted, 4 subnets D 11.11.11.3 [90/2809856] via 23.23.23.2, 00:05:12, Serial0/0 D 11.11.11.1 [90/2809856] via 23.23.23.2, 00:05:13, Serial0/0 D 11.11.11.7 [90/2809856] via 23.23.23.2, 00:05:14, Serial0/0 D 11.11.11.5 [90/2809856] via 23.23.23.2, 00:05:14, Serial0/0 R3(config)# Filter only the even routes.\nR3(config)#access-list 10 permit 0.0.0.0 255.255.255.254 R3(config)#router eigrp 10 R3(config-router)#distribute-list 10 in s0/0 R3(config)# *Mar 1 00:14:41.751: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 10: Neighbor 23.23.23.2 (Serial0/0) is resync: route configuration changed R3(config)#do sh ip route Gateway of last resort is not set 2.0.0.0/32 is subnetted, 1 subnets D 2.2.2.2 [90/2297856] via 23.23.23.2, 00:02:26, Serial0/0 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial0/0 11.0.0.0/32 is subnetted, 4 subnets D 11.11.11.8 [90/2809856] via 23.23.23.2, 00:02:26, Serial0/0 D 11.11.11.2 [90/2809856] via 23.23.23.2, 00:02:26, Serial0/0 D 11.11.11.6 [90/2809856] via 23.23.23.2, 00:02:28, Serial0/0 D 11.11.11.4 [90/2809856] via 23.23.23.2, 00:02:28, Serial0/0 12.0.0.0/24 is subnetted, 1 subnets D 12.12.12.0 [90/2681856] via 23.23.23.2, 00:02:28, Serial0/0 R3(config)# EIGRP FIltering - Administrative Distance # To filter routes by setting the Administrative Distance (AD) to 255. Then the route will not enter the routing table.\nCreate a loopback interface and advertise it to the network.\nR3(config)#int lo1 R3(config-if)#ip add 33.33.33.33 255.255.255.255 R3(config-if)#router eigrp 10 R3(config-router)#network 33.33.33.33 0.0.0.0 Ensure it has been advertised.\nR2#sh ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets D 1.1.1.1 [90/2297856] via 12.12.12.1, 00:04:36, Serial0/0 2.0.0.0/32 is subnetted, 1 subnets C 2.2.2.2 is directly connected, Loopback0 33.0.0.0/32 is subnetted, 1 subnets D 33.33.33.33 [90/2297856] via 23.23.23.3, 00:00:12, Serial0/1 3.0.0.0/32 is subnetted, 1 subnets D 3.3.3.3 [90/2297856] via 23.23.23.3, 00:00:12, Serial0/1 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial0/1 11.0.0.0/32 is subnetted, 8 subnets D 11.11.11.8 [90/2297856] via 12.12.12.1, 00:02:56, Serial0/0 D 11.11.11.3 [90/2297856] via 12.12.12.1, 00:02:56, Serial0/0 D 11.11.11.2 [90/2297856] via 12.12.12.1, 00:02:58, Serial0/0 D 11.11.11.1 [90/2297856] via 12.12.12.1, 00:02:58, Serial0/0 D 11.11.11.7 [90/2297856] via 12.12.12.1, 00:02:57, Serial0/0 D 11.11.11.6 [90/2297856] via 12.12.12.1, 00:02:58, Serial0/0 D 11.11.11.5 [90/2297856] via 12.12.12.1, 00:02:58, Serial0/0 D 11.11.11.4 [90/2297856] via 12.12.12.1, 00:02:58, Serial0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, Serial0/0 R2#ping 3.3.3.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 64/82/96 ms R2# By setting distance 255 on network 33.33.33.33 in R2, network 33.33.33.33 will not appear in R2\u0026rsquo;s routing table. When checked, network 33.33.33.33 is no longer there.\nR2(config)#access-list 33 permit 33.33.33.33 R2(config)#router eigrp 10 R2(config-router)#distance 255 0.0.0.0 255.255.255.255 33 R2(config-router)#do sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets D 1.1.1.1 [90/2297856] via 12.12.12.1, 00:00:13, Serial0/0 2.0.0.0/32 is subnetted, 1 subnets C 2.2.2.2 is directly connected, Loopback0 3.0.0.0/32 is subnetted, 1 subnets D 3.3.3.3 [90/2297856] via 23.23.23.3, 00:00:13, Serial0/1 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial0/1 11.0.0.0/32 is subnetted, 8 subnets D 11.11.11.8 [90/2297856] via 12.12.12.1, 00:00:13, Serial0/0 D 11.11.11.3 [90/2297856] via 12.12.12.1, 00:00:15, Serial0/0 D 11.11.11.2 [90/2297856] via 12.12.12.1, 00:00:15, Serial0/0 D 11.11.11.1 [90/2297856] via 12.12.12.1, 00:00:15, Serial0/0 D 11.11.11.7 [90/2297856] via 12.12.12.1, 00:00:18, Serial0/0 D 11.11.11.6 [90/2297856] via 12.12.12.1, 00:00:18, Serial0/0 D 11.11.11.5 [90/2297856] via 12.12.12.1, 00:00:18, Serial0/0 D 11.11.11.4 [90/2297856] via 12.12.12.1, 00:00:18, Serial0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, Serial0/0 R2(config-router)#do ping 33.33.33.33 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 33.33.33.33, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) R2(config-router)# EIGRP Authentication # To provide authentication in EIGRP by setting a password, Authentication will prevent the router from receiving update packets from just any EIGRP router.\nSet authentication on R1 and R2.\nR1(config)#key chain EIGRP R1(config-keychain)#key 1 R1(config-keychain-key)#key-string CISCO R1(config-keychain-key)#int s0/0 R1(config-if)#ip authentication mode eigrp 10 md5 R1(config-if)#ip authentication key-chain eigrp 10 EIGRP *Mar 1 00:00:31.507: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 10: Neighbor 12.12.12.2 (Serial0/0) is down: authentication mode changed R2(config)#key chain EIGRP R2(config-keychain)#key 1 R2(config-keychain-key)#key-string CISCO R2(config-keychain-key)#int s0/0 R2(config-if)#ip authentication mode eigrp 10 md5 R2(config-if)#ip authentication key-chain eigrp 10 EIGRP R2(config-if)# *Mar 1 00:00:31.911: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 10: Neighbor 12.12.12.1 (Serial0/0) is down: authentication mode changed Perform debug for checking.\nR1#debug eigrp packets EIGRP Packets debugging is on (UPDATE, REQUEST, QUERY, REPLY, HELLO, IPXSAP, PROBE, ACK, STUB, SIAQUERY, SIAREPLY) R1# *Mar 1 00:01:15.211: EIGRP: received packet with MD5 authentication, key id = 1 *Mar 1 00:01:15.215: EIGRP: Received HELLO on Serial0/0 nbr 12.12.12.2 *Mar 1 00:01:15.215: AS 10, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0 R1# *Mar 1 00:01:18.395: EIGRP: Sending HELLO on Serial0/0 *Mar 1 00:01:18.395: AS 10, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 *Mar 1 00:01:18.419: EIGRP: Sending HELLO on Loopback0 *Mar 1 00:01:18.419: AS 10, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 *Mar 1 00:01:18.423: EIGRP: Received HELLO on Loopback0 nbr 1.1.1.1 *Mar 1 00:01:18.423: AS 10, Flags 0x0, Seq 0/0 idbQ 0/0 *Mar 1 00:01:18.427: EIGRP: Packet from ourselves ignored R1# *Mar 1 00:01:27.315: EIGRP: Sending HELLO on Serial0/0 *Mar 1 00:01:27.315: AS 10, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 *Mar 1 00:01:27.655: EIGRP: Sending HELLO on Loopback0 *Mar 1 00:01:27.655: AS 10, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 *Mar 1 00:01:27.659: EIGRP: Received HELLO on Loopback0 nbr 1.1.1.1 *Mar 1 00:01:27.663: AS 10, Flags 0x0, Seq 0/0 idbQ 0/0 Turn off EIGRP debug.\nR1#undebug eigrp packets EIGRP Packets debugging is off Check EIGRP adjacency.\nR1#sh ip eigrp neighbors IP-EIGRP neighbors for process 10 H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 0 12.12.12.2 Se0/0 11 00:02:43 27 200 0 8 R1# EIGRP Summarization # Summarization is used to summarize multiple routes into one route. Its function is to reduce the size of the routing table and reduce routing updates.\nCreate a loopback interface on R2 to be advertised to EIGRP.\nR2(config)#interface Loopback1 R2(config-if)# ip address 22.22.22.1 255.255.255.255 R2(config-if)#! R2(config-if)#interface Loopback2 R2(config-if)# ip address 22.22.22.2 255.255.255.255 R2(config-if)#! R2(config-if)#interface Loopback3 R2(config-if)# ip address 22.22.22.3 255.255.255.255 R2(config-if)#! R2(config-if)#interface Loopback4 R2(config-if)# ip address 22.22.22.4 255.255.255.255 R2(config-if)#! R2(config-if)#interface Loopback5 R2(config-if)# ip address 22.22.22.5 255.255.255.255 R2(config-if)#! R2(config-if)#interface Loopback6 R2(config-if)# ip address 22.22.22.6 255.255.255.255 R2(config-if)#! R2(config-if)#interface Loopback7 R2(config-if)# ip address 22.22.22.7 255.255.255.255 R2(config-if)#! R2(config-if)#interface Loopback8 R2(config-if)# ip address 22.22.22.8 255.255.255.255 R2(config-if)#! R2(config-if)#router eigrp 10 R2(config-router)# network 22.22.22.1 0.0.0.0 R2(config-router)# network 22.22.22.2 0.0.0.0 R2(config-router)# network 22.22.22.3 0.0.0.0 R2(config-router)# network 22.22.22.4 0.0.0.0 R2(config-router)# network 22.22.22.5 0.0.0.0 R2(config-router)# network 22.22.22.6 0.0.0.0 R2(config-router)# network 22.22.22.7 0.0.0.0 R2(config-router)# network 22.22.22.8 0.0.0.0 Check on R1 and R3.\nR3#show ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets D 1.1.1.1 [90/2809856] via 23.23.23.2, 00:07:53, Serial0/0 2.0.0.0/32 is subnetted, 1 subnets D 2.2.2.2 [90/2297856] via 23.23.23.2, 00:07:53, Serial0/0 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial0/0 22.0.0.0/32 is subnetted, 8 subnets D 22.22.22.6 [90/2297856] via 23.23.23.2, 00:00:28, Serial0/0 D 22.22.22.7 [90/2297856] via 23.23.23.2, 00:00:31, Serial0/0 D 22.22.22.4 [90/2297856] via 23.23.23.2, 00:00:31, Serial0/0 D 22.22.22.5 [90/2297856] via 23.23.23.2, 00:00:31, Serial0/0 D 22.22.22.2 [90/2297856] via 23.23.23.2, 00:00:32, Serial0/0 D 22.22.22.3 [90/2297856] via 23.23.23.2, 00:00:32, Serial0/0 D 22.22.22.1 [90/2297856] via 23.23.23.2, 00:00:32, Serial0/0 D 22.22.22.8 [90/2297856] via 23.23.23.2, 00:00:31, Serial0/0 12.0.0.0/24 is subnetted, 1 subnets D 12.12.12.0 [90/2681856] via 23.23.23.2, 00:07:57, Serial0/0 R3# Configure summarization on interface s0/1 on R2.\nR2(config-router)# int s0/1 R2(config-if)#ip summary-address eigrp 10 22.22.22.0 255.255.255.248 R2(config-if)# *Mar 1 00:13:09.727: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 10: Neighbor 23.23.23.3 (Serial0/1) is resync: summary configured Check on R3.\nR3#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets D 1.1.1.1 [90/2809856] via 23.23.23.2, 00:13:36, Serial0/0 2.0.0.0/32 is subnetted, 1 subnets D 2.2.2.2 [90/2297856] via 23.23.23.2, 00:13:36, Serial0/0 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial0/0 22.0.0.0/8 is variably subnetted, 2 subnets, 2 masks D 22.22.22.0/29 [90/2297856] via 23.23.23.2, 00:00:38, Serial0/0 D 22.22.22.8/32 [90/2297856] via 23.23.23.2, 00:06:13, Serial0/0 12.0.0.0/24 is subnetted, 1 subnets D 12.12.12.0 [90/2681856] via 23.23.23.2, 00:13:39, Serial0/0 R3#ping 22.22.22.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 22.22.22.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 60/96/152 ms R3#ping 22.22.22.8 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 22.22.22.8, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 32/52/92 ms R3# EIGRP Unicast Update # By default EIGRP performs updates via multicast ip 224.0.0.10, unicast update changes the update from multicast to unicast for its neighbor.\nCheck that EIGRP sends updates via multicast. The multicast IP is 224.0.0.10\nR1#debug ip packet detail IP packet debugging is on (detailed) R1# *Mar 1 00:00:57.331: IP: s=12.12.12.2 (Serial0/0), d=224.0.0.10, len 60, rcvd 2, proto=88 *Mar 1 00:00:58.079: IP: s=1.1.1.1 (local), d=224.0.0.10 (Loopback0), len 60, sending broad/multicast, proto=88 *Mar 1 00:00:58.083: IP: s=1.1.1.1 (Loopback0), d=224.0.0.10, len 60, rcvd 2, proto=88 R1# *Mar 1 00:01:00.271: IP: s=12.12.12.1 (local), d=224.0.0.10 (Serial0/0), len 60, sending broad/multicast, proto=88 R1# *Mar 1 00:01:03.019: IP: s=1.1.1.1 (local), d=224.0.0.10 (Loopback0), len 60, sending broad/multicast, proto=88 *Mar 1 00:01:03.023: IP: s=1.1.1.1 (Loopback0), d=224.0.0.10, len 60, rcvd 2, proto=88 R1#undebug ip packet detail IP packet debugging is off (detailed) Configure the link from R1 to R2 to be unicast.\nR1(config)#router eigrp 10 R1(config-router)#neighbor 12.12.12.2 s0/0 R1(config-router)# *Mar 1 00:09:36.483: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 10: Neighbor 12.12.12.2 (Serial0/0) is down: Static peer configured R1(config-router)# R2(config)#router eigrp 10 R2(config-router)#neighbor 12.12.12.1 s0/0 Check debug again, it should have changed to unicast.\nR1#debug ip packet detail IP packet debugging is on (detailed) R1# *Mar 1 00:15:51.467: IP: tableid=0, s=12.12.12.2 (Serial0/0), d=12.12.12.1 (Serial0/0), routed via RIB *Mar 1 00:15:51.471: IP: s=12.12.12.2 (Serial0/0), d=12.12.12.1 (Serial0/0), len 60, rcvd 3, proto=88 R1# R1#undebug ip packet detail IP packet debugging is off (detailed) R1# EIGRP Default Route – Summary Address # So that every router does not need to manually create default route configurations one by one.\nR1(config)#int s0/0 R1(config-if)#ip sum R1(config-if)#ip summary-address eig R1(config-if)#ip summary-address eigrp 10 0.0.0.0 0.0.0.0 R1(config-if)# *Mar 1 00:01:20.419: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 10: Neighbor 12.12.12.2 (Serial0/0) is resync: summary configured Check on R1.\nR1(config-if)#do sh ip route Gateway of last resort is 0.0.0.0 to network 0.0.0.0 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets D 2.2.2.2 [90/2297856] via 12.12.12.2, 00:01:15, Serial0/0 3.0.0.0/32 is subnetted, 1 subnets D 3.3.3.3 [90/2809856] via 12.12.12.2, 00:01:14, Serial0/0 23.0.0.0/24 is subnetted, 1 subnets D 23.23.23.0 [90/2681856] via 12.12.12.2, 00:01:15, Serial0/0 22.0.0.0/32 is subnetted, 8 subnets D 22.22.22.6 [90/2297856] via 12.12.12.2, 00:01:17, Serial0/0 D 22.22.22.7 [90/2297856] via 12.12.12.2, 00:01:17, Serial0/0 D 22.22.22.4 [90/2297856] via 12.12.12.2, 00:01:17, Serial0/0 D 22.22.22.5 [90/2297856] via 12.12.12.2, 00:01:17, Serial0/0 D 22.22.22.2 [90/2297856] via 12.12.12.2, 00:01:18, Serial0/0 D 22.22.22.3 [90/2297856] via 12.12.12.2, 00:01:18, Serial0/0 D 22.22.22.1 [90/2297856] via 12.12.12.2, 00:01:18, Serial0/0 D 22.22.22.8 [90/2297856] via 12.12.12.2, 00:01:18, Serial0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, Serial0/0 D* 0.0.0.0/0 is a summary, 00:00:17, Null0 In the default route there will be a Null0. Null0 functions to drop packets whose destination is not found due to the default route.\nEIGRP Redistribution - RIP # To redistribute RIP into EIGRP.\nCreate a loopback interface on R1 and advertise it into RIP.\nR1(config-if)#int lo1 R1(config-if)#ip add 111.111.111.111 255.255.255.255 R1(config-if)#router rip R1(config-router)#version 2 R1(config-router)#network 111.111.111.0 R1(config-router)#no auto-summary Redistribute RIP to EIGRP.\nR2(config)#ipv6 unicast-routing R2(config)#int fa0/0 R2(config-if)#ipv6 rip 17 enable R2(config-if)#int fa0/1 R2(config-if)#ipv6 rip 17 enable Redistribute RIP to EIGRP.\nR1(config)#router eigrp 10 R1(config-router)#redistribute rip metric 1 1 1 1 1 Check the routing table and test ping.\nR1#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets D 2.2.2.2 [90/2297856] via 12.12.12.2, 00:25:20, Serial0/0 3.0.0.0/32 is subnetted, 1 subnets D 3.3.3.3 [90/2809856] via 12.12.12.2, 00:25:20, Serial0/0 23.0.0.0/24 is subnetted, 1 subnets D 23.23.23.0 [90/2681856] via 12.12.12.2, 00:25:20, Serial0/0 111.0.0.0/32 is subnetted, 1 subnets C 111.111.111.111 is directly connected, Loopback1 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, Serial0/0 R1# R3#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets D 1.1.1.1 [90/2809856] via 23.23.23.2, 00:13:37, Serial0/0 2.0.0.0/32 is subnetted, 1 subnets D 2.2.2.2 [90/2297856] via 23.23.23.2, 00:13:38, Serial0/0 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, Serial0/0 111.0.0.0/32 is subnetted, 1 subnets D EX 111.111.111.111 [170/2561024256] via 23.23.23.2, 00:00:06, Serial0/0 12.0.0.0/24 is subnetted, 1 subnets D 12.12.12.0 [90/2681856] via 23.23.23.2, 00:13:40, Serial0/0 R3#ping 111.111.111.111 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 111.111.111.111, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 52/98/248 ms R3# The EX sign indicates that the route is generated by a redistribute process.\nEIGRP Redistribution - OSPF # To redistribute OSPF into EIGRP.\nCreate a loopback interface on R2 and advertise it into OSPF.\nR2(config)#int lo1 R2(config-if)#ip add 22 R2(config-if)#ip add 222.222.222.222 255.255.255.255 R2(config-if)#router ospf 11 R2(config-router)#net 222.222.222.222 0.0.0.0 area 0 Redistribute OSPF to EIGRP.\nR2(config)#router eigrp 10 R2(config-router)#redistribute ospf 11 metric 1 1 1 1 1 Check the routing table and test ping.\nR1#sh ip route Gateway of last resort is not set 222.222.222.0/32 is subnetted, 1 subnets D EX 222.222.222.222 [170/2560512256] via 12.12.12.2, 00:00:52, Serial0/0 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets D 2.2.2.2 [90/2297856] via 12.12.12.2, 00:05:14, Serial0/0 3.0.0.0/32 is subnetted, 1 subnets D 3.3.3.3 [90/2809856] via 12.12.12.2, 00:05:14, Serial0/0 23.0.0.0/24 is subnetted, 1 subnets D 23.23.23.0 [90/2681856] via 12.12.12.2, 00:05:17, Serial0/0 111.0.0.0/32 is subnetted, 1 subnets C 111.111.111.111 is directly connected, Loopback1 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, Serial0/0 R1#ping 222.222.222.222 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 222.222.222.222, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 40/64/92 ms R1# EIGRP Path Selection - Delay # Create the topology as above and configure the interfaces and EIGRP.\nR1(config)#int lo0 R1(config-if)#ip add 1.1.1.1 255.255.255.255 R1(config-if)#int s1/0 R1(config-if)#ip add 13.13.13.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#int f0/0 R1(config-if)#ip add 12.12.12.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#router eigrp 13 R1(config-router)#net 1.1.1.1 0.0.0.0 R1(config-router)#net 13.13.13.1 0.0.0.0 R1(config-router)#net 12.12.12.1 0.0.0.0 R1(config-router)#no au R2(config)#int lo0 R2(config-if)#ip add 2.2.2.2 255.255.255.255 R2(config-if)#int f0/0 R2(config-if)#ip add 12.12.12.2 255.255.255.0 R2(config-if)#no sh R2(config-if)#int fa0/1 R2(config-if)#ip add 23.23.23.2 255.255.255.0 R2(config-if)#no sh R2(config-if)#router eigrp 13 R2(config-router)#net 2.2.2.2 0.0.0.0 R2(config-router)#net 12.12.12.2 0.0.0.0 R2(config-router)#net 23.23.23.2 0.0.0.0 R2(config-router)#no au R3(config)#int lo0 R3(config-if)#ip add 3.3.3.3 255.255.255.255 R3(config-if)#int s1/0 R3(config-if)#ip add 13.13.13.3 255.255.255.0 R3(config-if)#no sh R3(config-if)#int f0/1 R3(config-if)#ip add 23.23.23.3 255.255.255.0 R3(config-if)#router eigrp 13 R3(config-router)#net 3.3.3.3 0.0.0.0 R3(config-router)#net 13.13.13.3 0.0.0.0 R3(config-router)#net 23.23.23.3 0.0.0.0 R3(config-router)#no au R2(config)#ipv6 router eigrp 13 R2(config-rtr)#router-id 2.2.2.2 R2(config-rtr)#no shut *Mar 1 00:33:55.991: %DUAL-5-NBRCHANGE: IPv6-EIGRP(0) 13: Neighbor FE80::C203:3FF:FEA8:1 (FastEthernet0/1) is up: new adjacency *Mar 1 00:34:25.179: %DUAL-5-NBRCHANGE: IPv6-EIGRP(0) 13: Neighbor FE80::C201:9FF:FED0:0 (FastEthernet0/0) is up: new adjacency R2(config-rtr)#int lo0 R2(config-if)#ipv6 eigrp 13 R2(config-rtr)#int fa0/0 R2(config-if)#ipv6 eigrp 13 R2(config-rtr)#int fa0/1 R2(config-if)#ipv6 eigrp 13 Find out the route used to 3.3.3.3.\nR1# sh ip route 3.3.3.3 Routing entry for 3.3.3.3/32 Known via \u0026#34;eigrp 13\u0026#34;, distance 90, metric 435200, type internal Redistributing via eigrp 13 Last update from 12.12.12.2 on FastEthernet0/0, 00:04:36 ago Routing Descriptor Blocks: * 12.12.12.2, from 12.12.12.2, 00:04:36 ago, via FastEthernet0/0 Route metric is 435200, traffic share count is 1 Total delay is 7000 microseconds, minimum bandwidth is 10000 Kbit Reliability 255/255, minimum MTU 1500 bytes Loading 1/255, Hops 2 Find out all routes used to 3.3.3.3 with EIGRP.\nR1#sh ip eigrp top 3.3.3.3 255.255.255.255 IP-EIGRP (AS 13): Topology entry for 3.3.3.3/32 State is Passive, Query origin flag is 1, 1 Successor(s), FD is 435200 Routing Descriptor Blocks: 12.12.12.2 (FastEthernet0/0), from 12.12.12.2, Send flag is 0x0 Composite metric is (435200/409600), Route is Internal Vector metric: Minimum bandwidth is 10000 Kbit Total delay is 7000 microseconds Reliability is 255/255 Load is 1/255 Minimum MTU is 1500 Hop count is 2 13.13.13.3 (Serial1/0), from 13.13.13.3, Send flag is 0x0 Composite metric is (2297856/128256), Route is Internal Vector metric: Minimum bandwidth is 1544 Kbit Total delay is 25000 microseconds Reliability is 255/255 Load is 1/255 Minimum MTU is 1500 Hop count is 1 It turns out that EIGRP prefers FastEthernet over Serial. This is because the FastEthernet bandwidth is larger. To make Serial the primary link, it can be done by changing the delay.\nR1(config)#int fa0/0 R1(config-if)#delay 100000 R1(config-if)#do clear ip eigrp neighbor *Mar 1 00:22:45.311: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 13: Neighbor 13.13.13.3 (Serial1/0) is down: manually cleared *Mar 1 00:22:45.327: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 13: Neighbor 12.12.12.2 (FastEthernet0/0) is down: manually cleared *Mar 1 00:22:45.863: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 13: Neighbor 12.12.12.2 (FastEthernet0/0) is up: new adjacency *Mar 1 00:22:46.551: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 13: Neighbor 13.13.13.3 (Serial1/0) is up: new adjacency *Mar 1 00:23:01.507: %SYS-5-CONFIG_I: Configured from console by console Now check again and the path has moved through Serial1/0.\nR1#sh ip eigrp top 3.3.3.3 255.255.255.255 IP-EIGRP (AS 13): Topology entry for 3.3.3.3/32 State is Passive, Query origin flag is 1, 1 Successor(s), FD is 2297856 Routing Descriptor Blocks: 13.13.13.3 (Serial1/0), from 13.13.13.3, Send flag is 0x0 Composite metric is (2297856/128256), Route is Internal Vector metric: Minimum bandwidth is 1544 Kbit Total delay is 25000 microseconds Reliability is 255/255 Load is 1/255 Minimum MTU is 1500 Hop count is 1 12.12.12.2 (FastEthernet0/0), from 12.12.12.2, Send flag is 0x0 Composite metric is (26009600/409600), Route is Internal Vector metric: Minimum bandwidth is 10000 Kbit Total delay is 1006000 microseconds Reliability is 255/255 Load is 1/255 Minimum MTU is 1500 Hop count is 2 R1#sh ip route 3.3.3.3 Routing entry for 3.3.3.3/32 Known via \u0026#34;eigrp 13\u0026#34;, distance 90, metric 2297856, type internal Redistributing via eigrp 13 Last update from 13.13.13.3 on Serial1/0, 00:00:43 ago Routing Descriptor Blocks: * 13.13.13.3, from 13.13.13.3, 00:00:43 ago, via Serial1/0 Route metric is 2297856, traffic share count is 1 Total delay is 25000 microseconds, minimum bandwidth is 1544 Kbit Reliability 255/255, minimum MTU 1500 bytes Loading 1/255, Hops 1 R1#traceroute 3.3.3.3 Type escape sequence to abort. Tracing the route to 3.3.3.3 1 13.13.13.3 140 msec 4 msec 68 msec R1#traceroute 2.2.2.2 Type escape sequence to abort. Tracing the route to 2.2.2.2 1 13.13.13.3 172 msec 72 msec 72 msec 2 23.23.23.2 140 msec 144 msec 72 msec R1# EIGRP Path Selection - Bandwidth # Besides using delay, you can also use bandwidth. First, remove the previous delay configuration so the route changes back to normal.\nR1(config)#int f0/0 R1(config-if)#no delay 100000 R1(config-if)#do sh ip eigrp top 3.3.3.3 255.255.255.255 IP-EIGRP (AS 13): Topology entry for 3.3.3.3/32 State is Passive, Query origin flag is 1, 1 Successor(s), FD is 435200 Routing Descriptor Blocks: 12.12.12.2 (FastEthernet0/0), from 12.12.12.2, Send flag is 0x0 Composite metric is (435200/409600), Route is Internal Vector metric: Minimum bandwidth is 10000 Kbit Total delay is 7000 microseconds Reliability is 255/255 Load is 1/255 Minimum MTU is 1500 Hop count is 2 13.13.13.3 (Serial1/0), from 13.13.13.3, Send flag is 0x0 Composite metric is (2297856/128256), Route is Internal Vector metric: Minimum bandwidth is 1544 Kbit Total delay is 25000 microseconds Reliability is 255/255 Load is 1/255 Minimum MTU is 1500 Hop count is 1 Change bandwidth.\nR1(config-if)#bandwidth 1000 R1(config-if)#do clear ip eigrp neighbor Now check again.\nR1(config-if)#do sh ip eigrp top 3.3.3.3 255.255.255.255 IP-EIGRP (AS 13): Topology entry for 3.3.3.3/32 State is Passive, Query origin flag is 1, 1 Successor(s), FD is 2297856 Routing Descriptor Blocks: 13.13.13.3 (Serial1/0), from 13.13.13.3, Send flag is 0x0 Composite metric is (2297856/128256), Route is Internal Vector metric: Minimum bandwidth is 1544 Kbit Total delay is 25000 microseconds Reliability is 255/255 Load is 1/255 Minimum MTU is 1500 Hop count is 1 12.12.12.2 (FastEthernet0/0), from 12.12.12.2, Send flag is 0x0 Composite metric is (2739200/409600), Route is Internal Vector metric: Minimum bandwidth is 1000 Kbit Total delay is 7000 microseconds Reliability is 255/255 Load is 1/255 Minimum MTU is 1500 Hop count is 2 R1(config-if)# R1#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets D 2.2.2.2 [90/2323456] via 13.13.13.3, 00:00:27, Serial1/0 3.0.0.0/32 is subnetted, 1 subnets D 3.3.3.3 [90/2297856] via 13.13.13.3, 00:00:27, Serial1/0 23.0.0.0/24 is subnetted, 1 subnets D 23.23.23.0 [90/2195456] via 13.13.13.3, 00:00:27, Serial1/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 13.0.0.0/24 is subnetted, 1 subnets C 13.13.13.0 is directly connected, Serial1/0 R1#traceroute 3.3.3.3 Type escape sequence to abort. Tracing the route to 3.3.3.3 1 13.13.13.3 152 msec 140 msec 72 msec R1#traceroute 2.2.2.2 Type escape sequence to abort. Tracing the route to 2.2.2.2 1 13.13.13.3 184 msec 44 msec 16 msec 2 23.23.23.2 140 msec 96 msec 36 msec EIGRP Equal Load Balancing # By default, EIGRP will apply load balancing on equal links. In the topology below from R1 to R3, you can use 2 paths and both are FastEthernet.\nCreate the topology above and perform the following configuration.\nR1(config)#int lo0 R1(config-if)#ip add 1.1.1.1 255.255.255.255 R1(config-if)#int f0/0 R1(config-if)#ip add 12.12.12.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#int fa0/1 R1(config-if)#ip add 14.14.14.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#router eigrp 16 R1(config-router)#net 0.0.0.0 R1(config-router)#no au R2(config)#int lo0 R2(config-if)#ip add 2.2.2.2 255.255.255.255 R2(config-if)#int fa0/0 R2(config-if)#ip add 12.12.12.2 255.255.255.0 R2(config-if)#no sh R2(config-if)#int f0/1 R2(config-if)#ip add 23.23.23.2 255.255.255.0 R2(config-if)#no sh R2(config-if)#router eigrp 16 R2(config-router)#net 0.0.0.0 R2(config-router)#no au R3(config)#int lo0 R3(config-if)#ip add 3.3.3.3 255.255.255.255 R3(config-if)#int f0/1 R3(config-if)#ip add 23.23.23.3 255.255.255.0 R3(config-if)#no sh R3(config-if)#int fa0/0 R3(config-if)#ip add 34.34.34.3 255.255.255.0 R3(config-if)#no sh R3(config-if)#router eigrp 16 R3(config-router)#net 0.0.0.0 R3(config-router)#no au R4(config)#int lo0 R4(config-if)#ip add 4.4.4.4 255.255.255.255 R4(config-if)#int f0/1 R4(config-if)#ip add 14.14.14.4 255.255.255.0 R4(config-if)#no sh R4(config-if)#int fa0/0 R4(config-if)#ip add 34.34.34.4 255.255.255.0 R4(config-if)#no sh R4(config-if)#router eigrp 16 R4(config-router)#net 0.0.0.0 R4(config-router)#no au Check the routing table and the route to 3.3.3.3 from R1.\nR1#sh ip route Gateway of last resort is not set 34.0.0.0/24 is subnetted, 1 subnets D 34.34.34.0 [90/307200] via 14.14.14.4, 00:01:13, FastEthernet0/1 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets D 2.2.2.2 [90/409600] via 12.12.12.2, 00:01:17, FastEthernet0/0 3.0.0.0/32 is subnetted, 1 subnets D 3.3.3.3 [90/435200] via 14.14.14.4, 00:01:16, FastEthernet0/1 [90/435200] via 12.12.12.2, 00:01:16, FastEthernet0/0 4.0.0.0/32 is subnetted, 1 subnets D 4.4.4.4 [90/409600] via 14.14.14.4, 00:01:15, FastEthernet0/1 23.0.0.0/24 is subnetted, 1 subnets D 23.23.23.0 [90/307200] via 12.12.12.2, 00:01:18, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 14.0.0.0/24 is subnetted, 1 subnets C 14.14.14.0 is directly connected, FastEthernet0/1 R1#sh ip route 3.3.3.3 Routing entry for 3.3.3.3/32 Known via \u0026#34;eigrp 16\u0026#34;, distance 90, metric 435200, type internal Redistributing via eigrp 16 Last update from 12.12.12.2 on FastEthernet0/0, 00:01:42 ago Routing Descriptor Blocks: * 14.14.14.4, from 14.14.14.4, 00:01:42 ago, via FastEthernet0/1 Route metric is 435200, traffic share count is 1 Total delay is 7000 microseconds, minimum bandwidth is 10000 Kbit Reliability 255/255, minimum MTU 1500 bytes Loading 1/255, Hops 2 12.12.12.2, from 12.12.12.2, 00:01:42 ago, via FastEthernet0/0 Route metric is 435200, traffic share count is 1 Total delay is 7000 microseconds, minimum bandwidth is 10000 Kbit Reliability 255/255, minimum MTU 1500 bytes Loading 1/255, Hops 2 It was found that 2 paths are used simultaneously (load balancing) to 3.3.3.3. Now perform a traceroute to 3.3.3.3.\nR1#traceroute 3.3.3.3 Type escape sequence to abort. Tracing the route to 3.3.3.3 1 14.14.14.4 160 msec 12.12.12.2 172 msec 14.14.14.4 188 msec 2 23.23.23.3 312 msec 34.34.34.3 216 msec 23.23.23.3 188 msec R1# EIGRP Unequal Load Balancing # On unequal links, load balancing is not active and will only use one link.\nStill using the previous topology. Previously change the bandwidth of interface fa0/0 to 1000Kbit so it is not equal to fa0/1.\nR1(config)#int fa0/0 R1(config-if)#bandwidth 1000 Now check the route to 3.3.3.3 and it is only through one link.\nR1(config-if) R1(config-if)#do clear ip route * R1(config-if)#do sh ip route 3.3.3.3 Routing entry for 3.3.3.3/32 Known via \u0026#34;eigrp 16\u0026#34;, distance 90, metric 435200, type internal Redistributing via eigrp 16 Last update from 14.14.14.4 on FastEthernet0/1, 00:00:22 ago Routing Descriptor Blocks: * 14.14.14.4, from 14.14.14.4, 00:00:22 ago, via FastEthernet0/1 Route metric is 435200, traffic share count is 1 Total delay is 7000 microseconds, minimum bandwidth is 10000 Kbit Reliability 255/255, minimum MTU 1500 bytes Loading 1/255, Hops 2 R1(config-if)#do sh ip eigrp top 3.3.3.3/32 IP-EIGRP (AS 16): Topology entry for 3.3.3.3/32 State is Passive, Query origin flag is 1, 1 Successor(s), FD is 435200 Routing Descriptor Blocks: 14.14.14.4 (FastEthernet0/1), from 14.14.14.4, Send flag is 0x0 Composite metric is (435200/409600), Route is Internal Vector metric: Minimum bandwidth is 10000 Kbit Total delay is 7000 microseconds Reliability is 255/255 Load is 1/255 Minimum MTU is 1500 Hop count is 2 12.12.12.2 (FastEthernet0/0), from 12.12.12.2, Send flag is 0x0 Composite metric is (2739200/409600), Route is Internal Vector metric: Minimum bandwidth is 1000 Kbit Total delay is 7000 microseconds Reliability is 255/255 Load is 1/255 Minimum MTU is 1500 Hop count is 2 R1(config-if)# #do clear ip route To activate load balancing, the variance value must be found. The variance is 2739200 : 435200 = 6.29412, no matter the decimal, round it up to become 7.\nWith a variance value of 7, it means every 7 packets are sent through the first link and 1 packet through the second link.\nNow set its variance value.\nR1(config-if)#router eigrp 16 R1(config-router)#variance 7 Check if it is already load balancing.\nR1(config-router)#do sh ip route Gateway of last resort is not set 34.0.0.0/24 is subnetted, 1 subnets D 34.34.34.0 [90/307200] via 14.14.14.4, 00:00:17, FastEthernet0/1 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets D 2.2.2.2 [90/460800] via 14.14.14.4, 00:00:17, FastEthernet0/1 [90/2713600] via 12.12.12.2, 00:00:17, FastEthernet0/0 3.0.0.0/32 is subnetted, 1 subnets D 3.3.3.3 [90/435200] via 14.14.14.4, 00:00:17, FastEthernet0/1 [90/2739200] via 12.12.12.2, 00:00:19, FastEthernet0/0 4.0.0.0/32 is subnetted, 1 subnets D 4.4.4.4 [90/409600] via 14.14.14.4, 00:00:19, FastEthernet0/1 23.0.0.0/24 is subnetted, 1 subnets D 23.23.23.0 [90/332800] via 14.14.14.4, 00:00:20, FastEthernet0/1 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 14.0.0.0/24 is subnetted, 1 subnets C 14.14.14.0 is directly connected, FastEthernet0/1 R1(config-router)#do sh ip route 3.3.3.3 Routing entry for 3.3.3.3/32 Known via \u0026#34;eigrp 16\u0026#34;, distance 90, metric 435200, type internal Redistributing via eigrp 16 Last update from 12.12.12.2 on FastEthernet0/0, 00:00:42 ago Routing Descriptor Blocks: * 14.14.14.4, from 14.14.14.4, 00:00:42 ago, via FastEthernet0/1 Route metric is 435200, traffic share count is 120 Total delay is 7000 microseconds, minimum bandwidth is 10000 Kbit Reliability 255/255, minimum MTU 1500 bytes Loading 1/255, Hops 2 12.12.12.2, from 12.12.12.2, 00:00:42 ago, via FastEthernet0/0 Route metric is 2739200, traffic share count is 19 Total delay is 7000 microseconds, minimum bandwidth is 1000 Kbit Reliability 255/255, minimum MTU 1500 bytes Loading 1/255, Hops 2 R1(config-router)# EIGRP Stub – Connected + Summary # A stub router will advertise directly connected and summary routes.\nPerform the following configuration.\nR1 interface Loopback0 ip address 1.1.1.1 255.255.255.255 ! interface FastEthernet0/0 ip address 12.12.12.1 255.255.255.0 ! router eigrp 10 redistribute static network 12.12.12.1 0.0.0.0 no auto-summary ! R2 interface Loopback0 ip address 2.2.2.2 255.255.255.255 ! interface Loopback1 ip address 22.22.21.1 255.255.255.0 ! interface Loopback2 ip address 22.22.22.1 255.255.255.0 ! interface Loopback3 ip address 22.22.23.1 255.255.255.0 ! interface Loopback4 ip address 22.22.24.1 255.255.255.0 ! interface Loopback5 ip address 22.22.25.1 255.255.255.0 ! interface FastEthernet0/0 ip address 12.12.12.2 255.255.255.0 ! interface FastEthernet0/1 ip address 23.23.23.2 255.255.255.0 ip summary-address eigrp 10 22.22.0.0 255.255.0.0 5 ! router eigrp 10 redistribute static redistribute rip metric 1 1 1 1 1 network 2.2.2.2 0.0.0.0 network 12.12.12.2 0.0.0.0 network 22.22.0.0 0.0.0.0 network 23.23.23.2 0.0.0.0 no auto-summary ! router rip network 22.0.0.0 ! ip route 1.1.1.1 255.255.255.255 FastEthernet0/0 R3 interface Loopback0 ip address 3.3.3.3 255.255.255.255 ! interface FastEthernet0/1 ip address 23.23.23.3 255.255.255.0 ! router eigrp 10 network 3.3.3.3 0.0.0.0 network 23.23.23.3 0.0.0.0 no auto-summary ! Check the routing table on R3.\nR3#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets D EX 1.1.1.1 [170/307200] via 23.23.23.2, 00:00:01, FastEthernet0/1 2.0.0.0/32 is subnetted, 1 subnets D 2.2.2.2 [90/409600] via 23.23.23.2, 00:00:01, FastEthernet0/1 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, FastEthernet0/1 22.0.0.0/16 is subnetted, 1 subnets D 22.22.0.0 [90/2560025856] via 23.23.23.2, 00:00:04, FastEthernet0/1 12.0.0.0/24 is subnetted, 1 subnets D 12.12.12.0 [90/307200] via 23.23.23.2, 00:00:04, FastEthernet0/1 R3# Now test entering the eigrp stub command.\nR2(config-router)#eigrp stub Check ip route and compare with before. There are only connected and summary routes, while redistributed routes have been removed.\nR3#sh ip route Gateway of last resort is not set 2.0.0.0/32 is subnetted, 1 subnets D 2.2.2.2 [90/409600] via 23.23.23.2, 00:00:06, FastEthernet0/1 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, FastEthernet0/1 22.0.0.0/16 is subnetted, 1 subnets D 22.22.0.0 [90/2560025856] via 23.23.23.2, 00:00:06, FastEthernet0/1 12.0.0.0/24 is subnetted, 1 subnets D 12.12.12.0 [90/307200] via 23.23.23.2, 00:00:09, FastEthernet0/1 R3# EIGRP Stub – Connected # A stub router will only advertise directly connected routes.\nContinuation of the previous lab. First, remove the previous eigrp stub command.\nR2(config)#router eigrp 10 R2(config-router)#no eigrp stub Check ip route and the routing table has returned to normal. Enter eigrp stub connected.\nR3#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets D EX 1.1.1.1 [170/307200] via 23.23.23.2, 00:00:46, FastEthernet0/1 2.0.0.0/32 is subnetted, 1 subnets D 2.2.2.2 [90/409600] via 23.23.23.2, 00:00:46, FastEthernet0/1 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, FastEthernet0/1 22.0.0.0/16 is subnetted, 1 subnets D 22.22.0.0 [90/2560025856] via 23.23.23.2, 00:00:46, FastEthernet0/1 12.0.0.0/24 is subnetted, 1 subnets D 12.12.12.0 [90/307200] via 23.23.23.2, 00:00:48, FastEthernet0/1 R3# R2(config-router)# eigrp stub connected *Mar 1 00:06:02.587: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 10: Neighbor 12.12.12.1 (FastEthernet0/0) is down: peer info changed *Mar 1 00:06:02.599: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 10: Neighbor 23.23.23.3 (FastEthernet0/1) is down: peer info changed Check ip route again.\nR3#sh ip route Gateway of last resort is not set 2.0.0.0/32 is subnetted, 1 subnets D 2.2.2.2 [90/409600] via 23.23.23.2, 00:00:12, FastEthernet0/1 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, FastEthernet0/1 12.0.0.0/24 is subnetted, 1 subnets D 12.12.12.0 [90/307200] via 23.23.23.2, 00:00:12, FastEthernet0/1 R3# EIGRP Stub – Summary # A stub router will only advertise summary routes.\nR2(config)#router eigrp 10 R2(config-router)#no eigrp stub R2(config-router)# eigrp stub summary R3#sh ip route Gateway of last resort is not set 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, FastEthernet0/1 22.0.0.0/16 is subnetted, 1 subnets D 22.22.0.0 [90/2560025856] via 23.23.23.2, 00:00:27, FastEthernet0/1 R3# EIGRP Stub – Static # A stub router will advertise static routes.\nR2(config)#router eigrp 10 R2(config-router)#no eigrp stub R2(config-router)#eigrp stub static R3#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets D EX 1.1.1.1 [170/307200] via 23.23.23.2, 00:00:28, FastEthernet0/1 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, FastEthernet0/1 R3# EIGRP Stub – Redistributed # A stub router will advertise redistributed routes.\nR2(config)#router eigrp 10 R2(config-router)#no eigrp stub R2(config-router)#eigrp stub redistributed R3#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets D EX 1.1.1.1 [170/307200] via 23.23.23.2, 00:00:02, FastEthernet0/1 2.0.0.0/32 is subnetted, 1 subnets D 2.2.2.2 [90/409600] via 23.23.23.2, 00:00:02, FastEthernet0/1 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, FastEthernet0/1 22.0.0.0/16 is subnetted, 1 subnets D 22.22.0.0 [90/2560025856] via 23.23.23.2, 00:00:02, FastEthernet0/1 12.0.0.0/24 is subnetted, 1 subnets D 12.12.12.0 [90/307200] via 23.23.23.2, 00:00:05, FastEthernet0/1 R3# EIGRP Stub – Receive Only # Continuation of the previous lab. First, remove the previous eigrp stub command.\nR2(config)#router eigrp 10 R2(config-router)#no eigrp stub R2(config-router)#eigrp stub receive-only Gateway of last resort is not set 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, FastEthernet0/1 R3# R1#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 ","date":"19 May 2026","externalUrl":null,"permalink":"/study/cisco/eigrp/","section":"Study","summary":"EIGRP is a distance vector protocol and Cisco proprietary. It uses the DUAL (Diffusing Update Algorithm) algorithm.","title":"EIGRP","type":"study"},{"content":"","date":"19 May 2026","externalUrl":null,"permalink":"/tags/eigrp/","section":"Tags","summary":"","title":"EIGRP","type":"tags"},{"content":"IPv6 Overview\nInternet users are growing very rapidly so the available IPv4 space is also getting smaller. Moreover, with the number of devices such as phones and tablets that need internet connection also reduce IPv4 space. The solution is with IPv6 which has much more ip space.\nThe problem is that IPv4 is different from IPv6, so many protocols are not compatible with each other. Migration from IPv4 to IPv6 has been widely carried out.\nHere is a comparison of the number of IPv4 and IPv6.\nIPv4 32bit = 2^3 = 4.294.967.296\nIPv6 128bit = 2^128 = 340.282.366.920.938.463.463.374.607.431.768.211.456\nWith a lot of space provided by IPv6, there is no need to use Network Address Translation (NAT) and Port Address Translation (PAT). In terms of header size, IPv6 has a smaller header compared to IPv4. IPv6 consists of 16-bit hexadecimal and is case-insensitive, divided into 8 fields, unlike IPv4 which consists of 12-bit and is divided into 4 octets. If in IPv4 there is something called an octet, in IPv6 there is something called a field. In IPv6, the prefix is up to 128. For example: 0000:360B:0000:0000:0020:875B:131B/64. Summarizing IPv6\nOriginal : 2541:0000:360B:0000:0000:0020:875B:131B/64\nIf there are 0000s, whether contiguous or not, they can be represented by double colons (::). The condition is that all must be 0, there cannot be numbers other than 0.\nSummarized : 2541:0000:360B::0020:875B:131B/64\nIf there is already a :: then if there is 0000 it cannot be represented by :: again because there is only one :: in a single IPv6. 0000 can be represented simply with a 0.\nIn addition, if there is a field whose front (left side) is 0, then the 0 can be removed.\nSummarized again : 2541:0:360B::20:875B:131B/64\nIn IPv6 there is no broadcast. There are unicast, multicast and anycast.\nUnicast, unicast in IPv6 is the same as IPv4. The advantage is that IPv6 can assign more than 1 address to 1 interface. Cool, right?\nMulticast, in IPv6, broadcast is replaced by multicast because indeed there is no broadcast in IPv6.\nAnycast, in IPv6 several hosts and routers can be given the same ip. For example, we have several web servers with the same anycast ip. That way, we can direct the host accessing the web server to be routed to the nearest web server.\nTypes of IPv6 IPs\nUnique Local, same as private IP in IPv4. Private IP is used for local networks and not for the internet. The network IP used is FD00::/8.\nLink Local, used to send and receive IPv6 packets in a single subnet. Every device using IPv6 will automatically have a link local address on its interface and has a link local scope or link local range, meaning packets will not leave the link local. Packets sent to a certain destination will remain in the link local and will not be forwarded to another subnet by the router. Link Local uses network IP FE80::/10.\nLink Local is used as RS (Router Solicitation) and RA (Router Advertisement), for network discovery (same as ARP) and is used as next-hop for ip route.\nGlobal Unicast, just like a public ip for the internet. The network IP used is 2000::/3.\nUnspecified, this address is used when the host cannot use IPv6, using ::/128\nLoopback used for software testing like 127.0.0.1. Loopback uses ip ::1/128.\nSite Local. Site local used to be used as a private ip, now it is no longer used. Site local IP is FECO::/10.\nIPv6 Basic Link-Local # By default IPv6 is not active, to activate it type the unicastrouting command.\nR1(config)#ipv6 unicast-routing Every time you configure IPv6 on an interface, the link-local will automatically be created.\nR1(config-if)#do sh ipv6 int fa0/0 FastEthernet0/0 is administratively down, line protocol is down IPv6 is enabled, link-local address is FE80::C201:9FF:FED0:0 [TEN] No Virtual link-local address(es): No global unicast address is configured Joined group address(es): FF02::1 FF02::2 MTU is 1500 bytes ICMP error messages limited to one every 100 milliseconds ICMP redirects are enabled ICMP unreachables are sent ND DAD is enabled, number of DAD attempts: 1 ND reachable time is 30000 milliseconds ND advertised reachable time is 0 milliseconds ND advertised retransmit interval is 0 milliseconds ND router advertisements are sent every 200 seconds ND router advertisements live for 1800 seconds ND advertised default router preference is Medium Hosts use stateless autoconfig for addresses. R1(config-if)# You can also use the following command.\nR2(config)#int fa0/0 R2(config-if)#ipv6 address autoconfig R2(config)#do show ipv6 int fa0/0 FastEthernet0/0 is administratively down, line protocol is down IPv6 is enabled, link-local address is FE80::C202:CFF:FED8:0 [TEN] No Virtual link-local address(es): No global unicast address is configured Joined group address(es): FF02::1 FF02::2 MTU is 1500 bytes ICMP error messages limited to one every 100 milliseconds ICMP redirects are enabled ICMP unreachables are sent ND DAD is enabled, number of DAD attempts: 1 ND reachable time is 30000 milliseconds ND advertised reachable time is 0 milliseconds ND advertised retransmit interval is 0 milliseconds ND router advertisements are sent every 200 seconds ND router advertisements live for 1800 seconds ND advertised default router preference is Medium Hosts use stateless autoconfig for addresses. R2(config)# IPv6 Basic Global Unicast # R1(config)#int fa0/0 R1(config-if)#ipv6 address 12::1/126 RR1(config-if)#no sh *Mar 1 00:22:30.687: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up *Mar 1 00:22:31.687: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up R2(config)#int fa0/0 R2(config-if)#ipv6 add 12::2/126 R2(config-if)#no sh *Mar 1 00:21:23.063: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up *Mar 1 00:21:24.063: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up Check ping.\nR2(config-if)#do ping 12::1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 12::1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 32/54/104 ms R2(config-if)# IPv6 Basic EUI-64 # For automatic configuration.\nR2(config-if)#int fa0/1 R2(config-if)#ipv6 address 23::/64 eui-64 R2(config-if)#no sh *Mar 1 00:25:46.951: %LINK-3-UPDOWN: Interface FastEthernet0/1, changed state to up *Mar 1 00:25:47.951: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up R3(config)#int fa0/1 R3(config-if)#ipv6 address 23::/64 eui-64 R3(config-if)#no sh *Mar 1 00:24:13.739: %LINK-3-UPDOWN: Interface FastEthernet0/1, changed state to up *Mar 1 00:24:14.739: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up Check R2 and R3 interfaces.\nR2(config-if)#do sh ipv6 int br FastEthernet0/0 [up/up] FE80::C202:CFF:FED8:0 12::2 FastEthernet0/1 [up/up] FE80::C202:CFF:FED8:1 23::C202:CFF:FED8:1 Serial1/0 [administratively down/down] Serial1/1 [administratively down/down] Serial1/2 [administratively down/down] Serial1/3 [administratively down/down] R2(config-if)# R3(config-if)#do sh ipv6 int br FastEthernet0/0 [administratively down/down] FastEthernet0/1 [up/up] FE80::C203:3FF:FEA8:1 23::C203:3FF:FEA8:1 Serial1/0 [administratively down/down] Serial1/1 [administratively down/down] Serial1/2 [administratively down/down] Serial1/3 [administratively down/down] R3(config-if)# Check ping to R2.\nType escape sequence to abort. Sending 5, 100-byte ICMP Echos to 23::C202:CFF:FED8:1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 28/56/104 ms R3(config-if)# IPv6 Routing # flowchart TD %% Main Node IPv6[IPv6 Routing] %% Main Category IGP[IGP] EGP[EGP] IPv6 --- IGP IPv6 --- EGP %% IGP Sub-category RIPNG[RIPNG] EIGRP[EIGRP] OSPF[OSPFv3] IGP --- RIPNG IGP --- EIGRP IGP --- OSPF %% EGP Sub-category BGP[BGP] EGP --- BGP %% Teal Color Styling with slightly rounded corners classDef tealBox fill:#2ba3b8,stroke:#1d8294,stroke-width:1px,color:#ffffff,rx:5px,ry:5px; class IPv6,IGP,EGP,RIPNG,EIGRP,OSPF,BGP tealBox; IPv6 Static Routing # Use the previous topology. Check the router interfaces to determine destination and next-hop.\nR1#sh ipv6 int br FastEthernet0/0 [up/up] FE80::C201:9FF:FED0:0 12::1 FastEthernet0/1 [administratively down/down] Serial1/0 [administratively down/down] Serial1/1 [administratively down/down] Serial1/2 [administratively down/down] Serial1/3 [administratively down/down] R1# R2#sh ipv6 int br FastEthernet0/0 [up/up] FE80::C202:CFF:FED8:0 12::2 FastEthernet0/1 [up/up] FE80::C202:CFF:FED8:1 23::C202:CFF:FED8:1 Serial1/0 [administratively down/down] Serial1/1 [administratively down/down] Serial1/2 [administratively down/down] Serial1/3 [administratively down/down] R2# R3#sh ipv6 int br FastEthernet0/0 [administratively down/down] FastEthernet0/1 [up/up] FE80::C203:3FF:FEA8:1 23::C203:3FF:FEA8:1 Serial1/0 [administratively down/down] Serial1/1 [administratively down/down] Serial1/2 [administratively down/down] Serial1/3 [administratively down/down] R3# Static routing configuration on IPv6 is almost the same as IPv4.\nR1(config)# ipv6 route 23::/64 12::2 R3(config)#ipv6 route 12::/126 23::C202:CFF:FED8:1 Check the routing table and test ping.\nR1#sh ipv6 route IPv6 Routing Table - 4 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route, M - MIPv6 I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external C 12::/126 [0/0] via ::, FastEthernet0/0 L 12::1/128 [0/0] via ::, FastEthernet0/0 S 23::/64 [1/0] via 12::2 L FF00::/8 [0/0] via ::, Null0 R1#ping 23::C203:3FF:FEA8:1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 23::C203:3FF:FEA8:1, timeout is 2 seconds: !!!!! Succes R3(config)#do sho ipv6 route IPv6 Routing Table - 4 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route, M - MIPv6 I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external S 12::/126 [1/0] via 23::C202:CFF:FED8:1 C 23::/64 [0/0] via ::, FastEthernet0/1 L 23::C203:3FF:FEA8:1/128 [0/0] via ::, FastEthernet0/1 L FF00::/8 [0/0] via ::, Null0 R3(config)#do ping 12::1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 12::1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 64/74/84 ms R3(config)# Besides using the next-hop ip, static routing configuration can also use a next-hop interface. Especially for IPv6, its link local must be included. First, remove the previous static routing.\nR1(config)#no ipv6 route 23::/64 12::2 R3(config)#no ipv6 route 12::/126 23::C202:CFF:FED8:1 R1(config)#ipv6 route 23::/64 FastEthernet 0/0 R1(config)#do ping 23::C203:3FF:FEA8:1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 23::C203:3FF:FEA8:1, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) R1(config)# Ping failed because the link local has not been included.\nR1(config)#no ipv6 route 23::/64 FastEthernet 0/0 R1(config)#ipv6 route 23::/64 FastEthernet 0/0 FE80::C202:CFF:FED8:0 R1(config)#do ping 23::C203:3FF:FEA8:1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 23::C203:3FF:FEA8:1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 72/85/108 ms R1(config)# Now configure static routing on R3.\nR3(config)#ipv6 route 12::/126 FastEthernet 0/1 FE80::C202:CFF:FED8:1 R3(config)#do ping 12::1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 12::1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 56/68/92 ms R3(config)# IPv6 RIPnG # Still using the previous topology, delete the ipv6 route first. Enter the RIPnG configuration.\nR1(config)#ipv6 unicast-routing R1(config)#int fa0/0 R1(config-if)#ipv6 rip ? WORD User selected string identifying this RIP process R1(config-if)#ipv6 rip 17 ? default-information Configure handling of default route enable Enable/disable RIP routing metric-offset Adjust default metric increment summary-address Configure address summarization R1(config-if)#ipv6 rip 17 enable R2(config)#ipv6 unicast-routing R2(config)#int fa0/0 R2(config-if)#ipv6 rip 17 enable R2(config-if)#int fa0/1 R2(config-if)#ipv6 rip 17 enable R3(config)#ipv6 unicast-routing R3(config)#int fa0/1 R3(config-if)#ipv6 rip 17 enable Check the routing table and test ping.\nR3#sh ipv6 route IPv6 Routing Table - 4 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route, M - MIPv6 I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external R 12::/126 [120/2] via FE80::C202:CFF:FED8:1, FastEthernet0/1 C 23::/64 [0/0] via ::, FastEthernet0/1 L 23::C203:3FF:FEA8:1/128 [0/0] via ::, FastEthernet0/1 L FF00::/8 [0/0] via ::, Null0 R3#ping 12::1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 12::1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 52/92/160 ms R3# Check the working protocol.\nR1#sh ipv6 protocols IPv6 Routing Protocol is \u0026#34;connected\u0026#34; IPv6 Routing Protocol is \u0026#34;static\u0026#34; IPv6 Routing Protocol is \u0026#34;rip 17\u0026#34; Interfaces: FastEthernet0/0 Redistribution: None R1#sh ipv6 rip 17 RIP process \u0026#34;17\u0026#34;, port 521, multicast-group FF02::9, pid 238 Administrative distance is 120. Maximum paths is 16 Updates every 30 seconds, expire after 180 Holddown lasts 0 seconds, garbage collect after 120 Split horizon is on; poison reverse is off Default routes are not generated Periodic updates 34, trigger updates 0 Interfaces: FastEthernet0/0 Redistribution: None R1# IPv6 EIGRP # Delete its RIPnG first.\nR1(config)#no ipv6 router rip 17 R2(config)#no ipv6 router rip 17 R3(config)#no ipv6 router rip 17 Add loopback interfaces as identity and to make them easier to ping.\nR1(config-rtr)#int lo0 R1(config-if)#ipv6 address 1::1/128 R2(config-rtr)#int lo0 R2(config-if)#ipv6 address 2::2/128 R3(config-rtr)#int lo0 R3(config-if)#ipv6 address 3::3/128 Configure EIGRP on the three routers.\nR1(config)#ipv6 router eigrp 13 R1(config-rtr)#router-id 1.1.1.1 R1(config-rtr)#no shut *Mar 1 00:34:24.023: %DUAL-5-NBRCHANGE: IPv6-EIGRP(0) 13: Neighbor FE80::C201:9FF:FED0:0 (FastEthernet0/0) is up: new adjacency R2(config-rtr)#int lo0 R2(config-if)#ipv6 eigrp 13 R1(config-rtr)#int fa0/0 R1(config-if)#ipv6 eigrp 13 R2(config)#ipv6 router eigrp 13 R2(config-rtr)#router-id 2.2.2.2 R2(config-rtr)#no shut *Mar 1 00:33:55.991: %DUAL-5-NBRCHANGE: IPv6-EIGRP(0) 13: Neighbor FE80::C203:3FF:FEA8:1 (FastEthernet0/1) is up: new adjacency *Mar 1 00:34:25.179: %DUAL-5-NBRCHANGE: IPv6-EIGRP(0) 13: Neighbor FE80::C201:9FF:FED0:0 (FastEthernet0/0) is up: new adjacency R2(config-rtr)#int lo0 R2(config-if)#ipv6 eigrp 13 R2(config-rtr)#int fa0/0 R2(config-if)#ipv6 eigrp 13 R2(config-rtr)#int fa0/1 R2(config-if)#ipv6 eigrp 13 R3(config)#ipv6 router eigrp 13 R3(config-rtr)#router-id 3.3.3.3 R3(config-rtr)#no shut *Mar 1 00:33:56.287: %DUAL-5-NBRCHANGE: IPv6-EIGRP(0) 13: Neighbor FE80::C202:CFF:FED8:1 (FastEthernet0/1) is up: new adjacency R2(config-rtr)#int lo0 R2(config-if)#ipv6 eigrp 13 R3(config-rtr)#int fa0/1 R3(config-if)#ipv6 eigrp 13 Check the routing table and test ping.\nR1#sh ipv6 route IPv6 Routing Table - 7 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route, M - MIPv6 I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external LC 1::1/128 [0/0] via ::, Loopback0 D 2::2/128 [90/409600] via FE80::C202:CFF:FED8:0, FastEthernet0/0 D 3::3/128 [90/435200] via FE80::C202:CFF:FED8:0, FastEthernet0/0 C 12::/126 [0/0] via ::, FastEthernet0/0 L 12::1/128 [0/0] via ::, FastEthernet0/0 D 23::/64 [90/307200] via FE80::C202:CFF:FED8:0, FastEthernet0/0 L FF00::/8 [0/0] via ::, Null0 R1#ping 2::2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2::2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 16/44/92 ms R1#ping 3::3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 3::3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 32/57/92 ms R1# IPv6 OSPFv3 # Delete the previous EIGRP first.\nR1(config)##no ipv6 router eigrp 13 R2(config)##no ipv6 router eigrp 13 R3(config)##no ipv6 router eigrp 13 Now configure its OSPFv3.\nR1(config)#ipv6 router ospf 1 *Mar 1 00:21:43.595: %OSPFv3-4-NORTRID: OSPFv3 process 2 could not pick a router-id, R1(config-rtr)#router-id 1.1.1.1 R1(config-rtr)#int lo0 R1(config-if)#ipv6 ospf 1 area 0 R1(config-if)#int fa0/0 R1(config-if)#ipv6 ospf 1 area 0 R2(config)#ipv6 router ospf 2 *Mar 1 00:21:43.595: %OSPFv3-4-NORTRID: OSPFv3 process 2 could not pick a router-id, please configure manually R2(config-rtr)#router-id 2.2.2.2 R2(config-rtr)#int lo0 R2(config-if)#ipv6 ospf 2 area 0 R2(config-if)#int fa0/0 R2(config-if)#ipv6 ospf 2 area 0 *Mar 1 00:22:34.395: %OSPFv3-5-ADJCHG: Process 2, Nbr 1.1.1.1 on FastEthernet0/0 from LOADING to FULL, Loading Done R2(config-if)#int fa0/1 R2(config-if)#ipv6 ospf 2 area 0 R3(config)#ipv6 router ospf 3 *Mar 1 00:25:00.603: %OSPFv3-4-NORTRID: OSPFv3 process 3 could not pick a router-id, please configure manually R3(config-rtr)#router-id 3.3.3.3 R3(config-rtr)#int fa0/1 R3(config-if)#ipv6 ospf 3 area 0 *Mar 1 00:25:23.427: %OSPFv3-5-ADJCHG: Process 3, Nbr 2.2.2.2 on FastEthernet0/1 from LOADING to FULL, Loading Done R3(config-if)#int lo0 R3(config-if)#ipv6 ospf 3 area 0 Check neighbor.\nR2#sh ipv6 ospf neighbor Neighbor ID Pri State Dead Time Interface ID Interface 3.3.3.3 1 FULL/BDR 00:00:35 5 FastEthernet0/1 1.1.1.1 1 FULL/DR 00:00:27 4 FastEthernet0/0 R2# Check the routing table and test ping.\nR1#sh ipv6 route IPv6 Routing Table - 7 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route, M - MIPv6 I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external LC 1::1/128 [0/0] via ::, Loopback0 O 2::2/128 [110/10] via FE80::C202:CFF:FED8:0, FastEthernet0/0 O 3::3/128 [110/20] via FE80::C202:CFF:FED8:0, FastEthernet0/0 C 12::/126 [0/0] via ::, FastEthernet0/0 L 12::1/128 [0/0] via ::, FastEthernet0/0 O 23::/64 [110/20] via FE80::C202:CFF:FED8:0, FastEthernet0/0 L FF00::/8 [0/0] via ::, Null0 R1#ping 2::2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2::2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 24/48/80 ms R1#ping 3::3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 3::3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 36/70/144 ms R1# IPv6 Tunneling # Tunneling is encapsulating one data packet into another data packet. Here, the IPv6 packet is encapsulated into an IPv4 packet.\nStatic Point-to-Point Tunnel, used for point-to-point tunneling and supports IGP on IPv6. Static Point-to-Point Tunnel is divided into 2, namely:\nManual Tunnel GRE (Generic Routing Encapsulation) Tunnel Similarities:\nBoth forward multicast traffic.\nDifferences:\nFor manual tunnels, as the name implies, it requires manual configuration. GRE Tunnels are active by default so there is no need to configure them. GRE Tunnel has a larger MTU than manual tunnel. The link-local GRE Tunnel is automatically created with EUI-64 and taken from the lowest MAC Address Interface. While the link-local manual tunnel is FE80::/96 + 32 bit tunnel source IPv4. Dynamic Multipoint IPv6 Tunnel, called dynamic because there is no need to specify the IPv4 end-point manually, or it can be said there is no need to set the tunnel destination, used for point to multipoint tunneling. This Dynamic Multipoint IPv6 Tunnel does not support IGP and only supports static routing or BGP. This Dynamic Multipoint IPv6 Tunnel is divided into 3:\nAutomatic 6to4 ISATAP (Intra-site Automatic Tunneling Addressing Protocol) Automatic 6to4, using network 2002::/16. Network 2002::/16 is indeed provided specifically for tunneling and not for global unicast.\nISATAP, is almost the same as 6to4, but does not use network 2002::/16 for tunneling but uses global unicast. ISATAP automatically creates a tunnel ID using EUI-64.\nIPv6 IPv6IP Tunneling # R1(config)#ipv6 unicast-routing R1(config)#int lo0 R1(config-if)#ipv6 address 1::1/128 R1(config-if)#int fa0/0 R1(config-if)#ip address 12.12.12.1 255.255.255.0 R1(config-if)#no sh R2(config-if)#int fa0/0 R2(config-if)#ip add 12.12.12.2 255.255.255.0 R2(config-if)#no sh R2(config-if)#int s1/1 R2(config-if)#ip add 23.23.23.2 255.255.255.0 R2(config-if)#no sh R3(config)#ipv6 unicast-routing R3(config)#int lo0 R3(config-if)#ipv6 add 3::3/128 R3(config-if)#int se1/1 R3(config-if)#ip add 23.23.23.3 255.255.255.0 R3(config-if)#no sh Now configure its IPv4 routing, you can use static, EIGRP or OSPF.\nR1(config-if)#router ospf 1 R1(config-router)#net 12.12.12.0 0.0.0.255 area 0 R2(config-if)#router ospf 2 R2(config-router)#net 12.12.12.0 0.0.0.255 area 0 R2(config-router)#net 23.23.23.0 0.0.0.255 area 0 R3(config-if)#router ospf 3 R3(config-router)#net 23.23.23.0 0.0.0.255 area 0 Check ping first.\nR1#ping 23.23.23.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 23.23.23.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 84/99/116 ms R1#sh ip route Gateway of last resort is not set 23.0.0.0/24 is subnetted, 1 subnets O 23.23.23.0 [110/74] via 12.12.12.2, 00:02:39, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, FastEthernet0/0 R1# Configure the IPv6IP tunnel.\nR1(config)#int tun13 *Mar 1 00:21:38.631: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel13, changed state to down R1(config-if)#ipv6 address 13::1/64 R1(config-if)#tunnel source 12.12.12.1 R1(config-if)#tunnel destination 23.23.23.3 *Mar 1 00:22:26.331: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel13, changed state to up R1(config-if)#tunnel mode ? aurp AURP TunnelTalk AppleTalk encapsulation cayman Cayman TunnelTalk AppleTalk encapsulation dvmrp DVMRP multicast tunnel eon EON compatible CLNS tunnel gre generic route encapsulation protocol ipip IP over IP encapsulation ipsec IPSec tunnel encapsulation iptalk Apple IPTalk encapsulation ipv6 Generic packet tunneling in IPv6 ipv6ip IPv6 over IP encapsulation mpls MPLS encapsulations nos IP over IP encapsulation (KA9Q/NOS compatible) rbscp RBSCP in IP tunnel R1(config-if)#tunnel mode ipv6ip R3(config)#int tun31 R3(config-if)#ipv6 add 13::3/64 R3(config-if)#tunnel source 23.23.23.3 R3(config-if)#tunnel destination 12.12.12.1 R3(config-if)#tunnel mode ipv6ip R1#sh ipv6 int br FastEthernet0/0 [up/up] FastEthernet0/1 [administratively down/down] Serial1/0 [administratively down/down] Serial1/1 [administratively down/down] Serial1/2 [administratively down/down] Serial1/3 [administratively down/down] Loopback0 [up/up] FE80::C201:11FF:FE04:0 1::1 Tunnel13 [up/up] FE80::C0C:C01 13::1 R1#sh ipv6 int tun13 Tunnel13 is up, line protocol is up IPv6 is enabled, link-local address is FE80::C0C:C01 No Virtual link-local address(es): Global unicast address(es): 13::1, subnet is 13::/64 Joined group address(es): FF02::1 FF02::2 FF02::1:FF00:1 FF02::1:FF0C:C01 MTU is 1480 bytes ICMP error messages limited to one every 100 milliseconds ICMP redirects are enabled ICMP unreachables are sent ND DAD is enabled, number of DAD attempts: 1 ND reachable time is 30000 milliseconds Hosts use stateless autoconfig for addresses. R1#sh int tun13 Tunnel13 is up, line protocol is up Hardware is Tunnel MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation TUNNEL, loopback not set Keepalive not set Tunnel source 12.12.12.1, destination 23.23.23.3 Tunnel protocol/transport IPv6/IP Tunnel TTL 255 Fast tunneling enabled Tunnel transmit bandwidth 8000 (kbps) Tunnel receive bandwidth 8000 (kbps) Last input 00:02:22, output 00:07:11, output hang never Last clearing of \u0026#34;show interface\u0026#34; counters never Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: fifo Output queue: 0/0 (size/max) 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 9 packets input, 1008 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 23 packets output, 2152 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets 0 output buffer failures, 0 output buffers swapped out R1# Now test ping.\nR1#ping 3::3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 3::3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 92/157/240 ms R1#sh ipv6 ro R1#sh ipv6 route IPv6 Routing Table - 5 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route, M - MIPv6 I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external LC 1::1/128 [0/0] via ::, Loopback0 S 3::3/128 [1/0] via 13::3 C 13::/64 [0/0] via ::, Tunnel13 L 13::1/128 [0/0] via ::, Tunnel13 L FF00::/8 [0/0] via ::, Null0 R1# IPv6 GRE IP Tunneling # From the previous lab, you just have to change the tunnel mode or simply delete the previous tunnel mode because GRE IP Tunneling is active by default.\nPerform the following configuration.\nR1(config)#int tunnel 13 R1(config-if)#tunnel mode ipv6i R1(config-if)#no tunnel mode ipv6ip R3(config)#int tunnel 31 R3(config-if)#tunnel mode gre ip Check the interface.\nR3#show int tunnel31 Tunnel31 is up, line protocol is up Hardware is Tunnel MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation TUNNEL, loopback not set Keepalive not set Tunnel source 23.23.23.3, destination 12.12.12.1 Tunnel protocol/transport GRE/IP Key disabled, sequencing disabled Checksumming of packets disabled Tunnel TTL 255 Fast tunneling enabled Tunnel transmit bandwidth 8000 (kbps) Tunnel receive bandwidth 8000 (kbps) Last input 00:03:54, output 00:03:54, output hang never Last clearing of \u0026#34;show interface\u0026#34; counters never Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: fifo Output queue: 0/0 (size/max) 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 29 packets input, 3296 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 38 packets output, 3988 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets 0 output buffer failures, 0 output buffers swapped out R3# Tes ping. R3#ping 1::1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 1::1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 76/116/152 ms R3# IPv6 Tunnel 6to4 # Still using the previous topology. Delete the tunnel interface and its ipv6 route first.\nR1(config)#no int tun13 R1(config)#do sh run | s i ipv6 route ipv6 route 3::3/128 13::3 R1(config)#no ipv6 route 3::3/128 13::3 R3(config)#no int tun31 R3(config)#do sh run | s i ipv6 route ipv6 route 1::1/128 13::1 R3(config)#no ipv6 route 1::1/128 13::1 Configure 6to4 tunnel.\nR1(config)#int tunnel 103 R1(config-if)#ipv6 address 2002:0C0C:0C01::1/64 R1(config-if)#tunnel source 12.12.12.1 R1(config-if)#tunnel mode ipv6ip ? 6to4 IPv6 automatic tunnelling using 6to4 auto-tunnel IPv6 automatic tunnelling using IPv4 compatible addresses isatap IPv6 automatic tunnelling using ISATAP \u0026lt;cr\u0026gt; R1(config-if)#tunnel mode ipv6ip 6to4 R3(config)#int tunnel 301 Tunnel301, changed state to down R3(config-if)#tunnel source 23.23.23.3 R3(config-if)#ipv6 address 2002:1717:1703::3/64 R3(config-if)#tunnel mode ipv6ip 6to4 Verification.\nR3(config-if)#do ping 2002:0C0C:0C01::1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2002:C0C:C01::1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 120/147/196 ms R3(config-if)# R1(config-if)#do ping 2002:1717:1703::3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2002:1717:1703::3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 124/139/168 ms R1(config-if)# R1#sh int tun 103 Tunnel103 is up, line protocol is up Hardware is Tunnel MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation TUNNEL, loopback not set Keepalive not set Tunnel source 12.12.12.1, destination UNKNOWN Tunnel protocol/transport IPv6 6to4 Tunnel TTL 255 Fast tunneling enabled Tunnel transmit bandwidth 8000 (kbps) Tunnel receive bandwidth 8000 (kbps) Last input never, output 00:01:41, output hang never Last clearing of \u0026#34;show interface\u0026#34; counters never Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: fifo Output queue: 0/0 (size/max) 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 0 packets input, 0 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 6 packets output, 576 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets 0 output buffer failures, 0 output buffers swapped out The calculation of its tunnel IP is as follows:\n12.12.12.1 -\u0026gt; 01100.01100.01100.0001 -\u0026gt; 0C0C:0C01 -\u0026gt; 2002:0C0C:0C01::1\n23.23.23.3 -\u0026gt; 10111.10111.10111.0011 -\u0026gt; 1717:1703 -\u0026gt; 2002:1717:1703::3\nThe 6to4 tunnel IP uses network 2002::/64. To make it easier, the calculation above can use the calculator on Windows OS with programmer mode.\nIPv6 Tunnel ISATAP # Still using the previous topology. Delete the tunnel interface and its ipv6 route first.\nR1(config)#no int tun103 R3(config)#no int tun301 Configure ISATAP tunnel.\nR1(config)#int tun 1003 R1(config-if)#ipv6 address 13::/64 eui-64 *Mar 1 00:52:50.127: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel1003, changed state to down R1(config-if)#tunnel source 12.12.12.1 R1(config-if)#tunnel mode ipv6ip isatap R3(config)#int tun 3001 *Mar 1 00:54:17.359: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel3001, changed state to down R3(config-if)#tunnel source 23.23.23.3 R3(config-if)#ipv6 add 13::/64 eui-64 R3(config-if)#tunnel mode ipv6ip isatap Test ping.\nR1(config-if)#do sh ipv6 int br FastEthernet0/0 [up/up] FastEthernet0/1 [administratively down/down] Serial1/0 [administratively down/down] Serial1/1 [administratively down/down] Serial1/2 [administratively down/down] Serial1/3 [administratively down/down] Loopback0 [up/up] FE80::C201:11FF:FE04:0 1::1 Tunnel1003 [up/up] FE80::5EFE:C0C:C01 13::5EFE:C0C:C01 R1(config-if)# R3(config-if)#do ping Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 13::5EFE:C0C:C01, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 92/124/152 ms R3(config-if)# Enter static routing.\nR1(config)#ipv6 route 3::3/128 13::5EFE:1717:1703 R3(config)#ipv6 route 1::1/128 13::5EFE:C0C:C01 Verification.\nR1(config)#do ping 3::3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 3::3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 96/117/136 ms R1(config)# R3(config)#do ping 1::1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 1::1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 92/132/168 ms R3(config)# R1(config)#do sh int tun1003 Tunnel1003 is up, line protocol is up Hardware is Tunnel MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation TUNNEL, loopback not set Keepalive not set Tunnel source 12.12.12.1, destination UNKNOWN Tunnel protocol/transport IPv6 ISATAP Tunnel TTL 255 Fast tunneling enabled Tunnel transmit bandwidth 8000 (kbps) Tunnel receive bandwidth 8000 (kbps) Last input 00:00:53, output 00:00:53, output hang never Last clearing of \u0026#34;show interface\u0026#34; counters never Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: fifo Output queue: 0/0 (size/max) 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 15 packets input, 2100 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 19 packets output, 2184 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets 0 output buffer failures, 0 output buffers swapped out IPv6 Tunnel Auto-Tunnel # Still using the previous topology. Delete the tunnel interface and its ipv6 route first.\nR1(config)#no int tun1003 R3(config)#no int tun3001 Configure autotunnel tunnel.\nR1(config)#int tun10003 *Mar 1 00:03:09.163: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel10003, changed state to down R1(config-if)#tunnel source 12.12.12.1 R1(config-if)#tunnel mode ipv6ip auto-tunnel R3(config)#int tun30001 *Mar 1 00:04:15.243: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel30001, changed state to down R3(config-if)#tunnel source 23.23.23.3 R3(config-if)#tunnel mode ipv6ip au R3(config-if)#tunnel mode ipv6ip auto-tunnel Ping the tunnel.\nR3(config-if)#do ping ::12.12.12.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to ::12.12.12.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 104/136/184 ms R3(config-if)#do sh int tun30001 Tunnel30001 is up, line protocol is up Hardware is Tunnel MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation TUNNEL, loopback not set Keepalive not set Tunnel source 23.23.23.3, destination UNKNOWN Tunnel protocol/transport IPv6 auto-tunnel Tunnel TTL 255 Fast tunneling enabled Tunnel transmit bandwidth 8000 (kbps) Tunnel receive bandwidth 8000 (kbps) Last input 00:00:47, output 00:00:47, output hang never Last clearing of \u0026#34;show interface\u0026#34; counters never Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: fifo Output queue: 0/0 (size/max) 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 5 packets input, 700 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 9 packets output, 984 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets 0 output buffer failures, 0 output buffers swapped out R3(config-if)# Configure static routing.\nR1(config)#ipv6 route 3::3/128 ::23.23.23.3 R3(config)#ipv6 route 1::1/128 ::12.12.12.1 Verification.\nR1(config)#do ping 3::3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 3::3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 120/136/168 ms R1(config)# R3(config)#do ping 1::1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 1::1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 84/131/156 ms R3(config)# ","date":"18 May 2026","externalUrl":null,"permalink":"/study/cisco/ipv6/","section":"Study","summary":"Internet users are growing very rapidly so the available IPv4 space is also getting smaller. Moreover, with the number of devices such as phones and tablets that need internet connection also reduce IPv4 space. The solution is with IPv6 which has much more ip space.","title":"IPv6","type":"study"},{"content":"","date":"18 May 2026","externalUrl":null,"permalink":"/tags/ipv6/","section":"Tags","summary":"","title":"IPv6","type":"tags"},{"content":"Routing Overview flowchart TD %% Node Utama R[Routing] %% Sub-Node Jenis Routing SR[Static Routing] D_R[Default Routing] DY_R[Dynamic Routing] %% Jalur Hubungan Bercabang R --- SR R --- D_R R --- DY_R %% Styling untuk menyamakan warna teal/biru langit seperti gambar asli classDef tealBox fill:#90caf9,stroke:#0d47a1,stroke-width:1px,color:#1a237e; class R,SR,D_R,DY_R tealBox; Routing is sending packet data from one network to another network. The device used in routing is a router. A router is used for best path selection and packets forwarding.\nTo get to the destination, a router can be configured in 2 ways:\nManually, entering routes into the routing table manually (static routing). Dynamically, using routing protocols (dynamic routing). Dynamic Routing vs Static Routing\nDynamic Routing Static Routing Configuration Complexity Generally independent of the network size Increases with the network size Topology Changes Automatically adapts to topology changes Administrator intervention required Scaling Suitable for simple and complex topologies Suitable for simple topologies Security Less secure More secure Resource Usage Uses CPU, memory, link bandwidth No extra resources needed Predictability Route depends on the current topology Route to destination is always the same Static Routing # In static routing, the network administrator enters routes into the routing table manually to reach a specific network. The configuration must be updated manually every time there is a topology change.\nStatic Routing has an Administrative Distance (AD) of 1, so it will be preferred over dynamic routing. Better security, static routes are not advertised in the network. Uses less bandwidth than dynamic routing protocols, because it does not exchange routes. No CPU cycles are used to calculate and communicate routes. The path a static route uses to send data is known. Time-consuming configuration and maintenance. Not suitable for large-scale networks. For small networks where topology changes will not occur significantly. Routing to/from a stub network. A stub network is an accessed network that only has 1 exit path (because it only has one neighbor). For unknown networks using a default route. ip route (space) destination network (space) subnetmask (space) ip/interface next-hop\nCreate the topology below and configure the interfaces.\nRouter(config)#hostname SEMARANG SEMARANG(config)#interface s0/0/0 SEMARANG(config-if)#ip address 12.12.12.1 255.255.255.0 SEMARANG(config-if)#no shutdown Router(config)#hostname SOLO SOLO(config)#interface s0/0/0 SOLO(config-if)#ip address 12.12.12.2 255.255.255.0 SOLO(config-if)#no shutdown SOLO(config-if)#interface f0/0 SOLO(config-if)#ip address 23.23.23.2 255.255.255.0 SOLO(config-if)#no shutdown Router(config)#hostname JOGJA JOGJA(config)#interface f0/0 JOGJA(config-if)#ip address 23.23.23.3 255.255.255.0 JOGJA(config-if)#no shutdown Configure static routing on the Semarang and Jogja routers. The Solo router does not need to be configured with static routing because it is directly connected to the Semarang and Jogja routers.\nSEMARANG(config-if)#ip route 23.23.23.0 255.255.255.0 12.12.12.2 JOGJA(config-if)#ip route 12.12.12.0 255.255.255.0 23.23.23.2 Now check ping and look at the routing table.\nJOGJA#ping 12.12.12.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 12.12.12.1, timeout is 2 seconds: .!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 3/6/17 ms JOGJA#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - candidate default, U - per-user static route, o - ODR P - periodic downloaded static route Gateway of last resort is not set 12.0.0.0/24 is subnetted, 1 subnets S 12.12.12.0 [1/0] via 23.23.23.2 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, FastEthernet0/0 JOGJA# SEMARANG#ping 23.23.23.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 23.23.23.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/4/14 ms SEMARANG#sh ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - candidate default, U - per-user static route, o - ODR P - periodic downloaded static route Gateway of last resort is not set 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, Serial0/0/0 23.0.0.0/24 is subnetted, 1 subnets S 23.23.23.0 [1/0] via 12.12.12.2 SEMARANG# Static routing is indicated by the S mark. When tracerouted, it passes through 12.12.12.1 as the next-hop to the 23.23.23.0/24 network.\nSEMARANG#traceroute 23.23.23.3 Type escape sequence to abort. Tracing the route to 23.23.23.3 1 12.12.12.2 0 msec 0 msec 0 msec 2 23.23.23.3 1 msec 1 msec 4 msec SEMARANG# Default Routing # Default routing is actually included in static routing. Commonly used for routing to the internet. In the routing table, default routing is always at the bottom and is always the last preferred.\nip route (space) 0.0.0.0 (space) 0.0.0.0 (space) ip/interface next-hop\nContinuation of the previous lab. First, delete the static route that was previously created.\nSEMARANG(config)#no ip route 23.23.23.0 255.255.255.0 12.12.12.2 JOGJA(config)#no ip route 12.12.12.0 255.255.255.0 23.23.23.2 Now enter the default routing.\nSEMARANG(config)#ip route 0.0.0.0 0.0.0.0 12.12.12.2 JOGJA(config)#ip route 0.0.0.0 0.0.0.0 23.23.23.2 Now test ping and check the routing table.\nSEMARANG#ping 23.23.23.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 23.23.23.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms SEMARANG#sh ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - candidate default, U - per-user static route, o - ODR P - periodic downloaded static route Gateway of last resort is 12.12.12.2 to network 0.0.0.0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, Serial0/0/0 S* 0.0.0.0/0 [1/0] via 12.12.12.2 SEMARANG# Default routing is indicated by the S* mark and the destination 0.0.0.0/0 which means to all IPs.\nDynamic Routing Overview # flowchart TD %% Node Utama DRP[Dynamic Routing Protocol] %% Kategori Utama (IGP \u0026 EGP) IGP[\"Interior Gateway Protocol (IGP)\"] EGP[\"Exterior Gateway Protocol (EGP)\"] DRP --- IGP DRP --- EGP %% Klasifikasi IGP DV[Distance Vector] LS[Link State] IGP --- DV IGP --- LS %% Klasifikasi EGP PV[Path Vector] EGP --- PV %% Protokol Distance Vector RIP1[RIPv1] RIP2[RIPv2] IG[IGRP] EI[EIGRP] DV --- RIP1 RIP1 --- RIP2 DV --- IG IG --- EI %% Protokol Link State OSPF[OSPF] ISIS[IS-IS] LS --- OSPF LS --- ISIS %% Protokol Path Vector BGP[BGP] PV --- BGP %% Styling menyesuaikan warna biru muda dari diagram asli classDef blueBox fill:#d6eaf8,stroke:#5dade2,stroke-width:1.5px,color:#17202a; class DRP,IGP,EGP,DV,LS,PV,RIP1,RIP2,IG,EI,OSPF,ISIS,BGP blueBox; Dynamic routing uses routing protocols in forming the routing table. When the topology changes, the routing table will automatically change.\nUses more bandwidth than static routing, because of route exchanging. CPU cycles are used to calculate and communicate routes. Suitable for large-scale networks. ROUTING PROTOCOL COMPARISON # RIP v1 RIP v2 IGRP EIGRP OSPF IS-IS BGP Interior/Exterior? Interior Interior Interior Interior Interior Interior Exterior Type Distance Vector Distance Vector Distance Vector Hybrid Link-state Link-state Path Vector Default Metric Hopcount Hopcount Bandwidth/Delay Bandwidth/Delay Cost Cost Multiple Attributes Administrative Distance 120 120 100 90 (internal)\n170 (external) 110 115 20 (external)\n200 (internal) Hopcount Limit 15 15 255 (100 default) 224 (100 default) None None EBGP Neighbors: 1 (default)\nIBGP Neighbors: None Convergence Slow Slow Slow Very Fast Fast Fast Average Update timers 30 seconds 30 seconds 90 seconds Only when change occurs Only when changes occur;\n(LSA table is refreshed every 30 minutes, however) Only when changes occur Only when changes occur Updates Full table Full table Full table Only Changes Only Changes Only changes Only changes Classless No Yes No Yes Yes Yes Yes Supports VLSM No Yes No Yes Yes Yes Yes Algorithm Bellman-Ford Bellman-Ford Bellman-Ford DUAL Dijkstra Dijkstra Best Path Algorithm Update Address Broadcast 224.0.0.9 224.0.0.10 224.0.0.10 224.0.0.5 (All SPF Routers)\n224.0.0.6 (DR\u0026rsquo;s and BDR\u0026rsquo;s) Unicast Protocol and Port UDP port 520 IP Protocol 9 IP Protocol 88 IP Protocol 89 TCP port 179 IGP and EGP # The internet is composed of many AS. Imagine the internet is like a puzzle, then the AS are the puzzle pieces. And on the internet there are thousands of AS. AS or Autonomous System itself is a collection of routers within the same authority.\nInterior Gateway Protocol (IGP) is used for routing within an AS (IntraAS). IGP is used for internal networks within a company, organization, or service provider. IGP is also divided into 2 types:\nDistance Vector As the name implies, there are 2 main characteristics in determining its route.\nDistance = the distance of the source network to the destination based on the metric. The metric is calculated from hop count, cost, bandwidth, delay, etc.\nVector = the direction of the next hop router to reach the destination.\nDistance Vector type protocols only know the route and metric to reach a certain destination. These protocols do not have information about the network map or topology as a whole.\nThose included in the distance vector routing protocol: RIPv1, RIPv2, IGRP, and EIGRP.\nLink-State Link-state type protocols know the overall network topology by collecting information from each router. For large-scale networks, link-state is designed hierarchically or divided into areas. The area that must exist in link-state is area 0 or the backbone. The division into these areas aims to reduce router resources with each area having a different routing table from other areas.\nThose included in the link-state routing protocol: OSPF and IS-IS.\nExterior Gateway Protocol (EGP) is used for routing between AS (Inter AS). The only EGP protocol is BGP. BGP is a path-vector type protocol. The route generated from BGP contains the as-path attribute. AS Path is a sequence of AS Numbers passed by a route to reach the destination.\nEnhanced Interior Gateaway Protocol (EIGRP) # Cisco proprietary Advanced distance vector/hybrid routing protocol Using DUAL Algorithm. Multicast or unicast for exchange information use port 88 Administrative distance 90 Classless routing protocol support VLSM/CIDR. Support IPv6 Rich metric (bandwidth, delay, load and reliability) Very fast convergence Equal and Unequal Load balancing 100% loop-free Configure interfaces as in the static routing lab and add loopback interfaces on the three routers. The loopback interface can be used as an identity and as a logical IP.\nSEMARANG(config)#int lo0 SEMARANG(config-if)#ip address 1.1.1.1 255.255.255.255 SOLO(config)#int lo0 SOLO(config-if)#ip add 2.2.2.2 255.255.255.255 JOGJA(config)#int lo0 JOGJA(config-if)#ip add 3.3.3.3 255.255.255.255 Configure EIGRP on the routers. The AS Number in all EIGRP routers must be the same.\nSEMARANG(config)#router eigrp ? \u0026lt;1-65535\u0026gt; Autonomous system number SEMARANG(config)#router eigrp 10 SEMARANG(config-router)#network 12.12.12.0 ? A.B.C.D EIGRP wild card bits \u0026lt;cr\u0026gt; SEMARANG(config-router)#network 12.12.12.0 0.0.0.255 SEMARANG(config-router)#network 1.1.1.1 0.0.0.0 SEMARANG(config-router)#no auto-summary SEMARANG(config-router)#ex SOLO(config)#router eigrp 10 SOLO(config-router)#network 12.12.12.0 0.0.0.255 SOLO(config-router)#network 23.23.23.0 0.0.0.255 SOLO(config-router)#network 2.2.2.2 0.0.0.0 SOLO(config-router)#no auto-summary JOGJA(config)#router eigrp 10 JOGJA(config-router)#network 23.23.23.0 0.0.0.255 JOGJA(config-router)#network 3.3.3.3 0.0.0.0 JOGJA(config-router)#no auto-summary No-auto summary aims to include the subnet mask in EIGRP routing. Now perform a ping test and traceroute to the Jogja router.\nSEMARANG#ping 2.2.2.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/12 ms SEMARANG#ping 3.3.3.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/11 ms SEMARANG#traceroute 3.3.3.3 Type escape sequence to abort. Tracing the route to 3.3.3.3 1 12.12.12.2 0 msec 2 msec 2 msec 2 23.23.23.3 1 msec 0 msec 1 msec SEMARANG# Checking the routing table.\nSEMARANG#sh ip route Gateway of last resort is not set 1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks D 1.0.0.0/8 [90/2809856] via 12.12.12.2, 00:07:37, Serial0/0/0 C 1.1.1.1/32 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets D 2.2.2.2 [90/2297856] via 12.12.12.2, 00:07:37, Serial0/0/0 3.0.0.0/32 is subnetted, 1 subnets D 3.3.3.3 [90/2300416] via 12.12.12.2, 00:02:48, Serial0/0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, Serial0/0/0 23.0.0.0/24 is subnetted, 1 subnets D 23.23.23.0 [90/2172416] via 12.12.12.2, 00:02:49, Serial0/0/0 SEMARANG# SOLO#sh ip route Gateway of last resort is not set 1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks D 1.0.0.0/8 is a summary, 00:08:13, Null0 D 1.1.1.1/32 [90/2297856] via 12.12.12.1, 00:08:07, Serial0/0/0 2.0.0.0/32 is subnetted, 1 subnets C 2.2.2.2 is directly connected, Loopback0 3.0.0.0/32 is subnetted, 1 subnets D 3.3.3.3 [90/156160] via 23.23.23.3, 00:03:19, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, Serial0/0/0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, FastEthernet0/0 SOLO# JOGJA#sh ip route Gateway of last resort is not set 1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks D 1.0.0.0/8 [90/2300416] via 23.23.23.2, 00:03:39, FastEthernet0/0 D 1.1.1.1/32 [90/2300416] via 23.23.23.2, 00:03:39, FastEthernet0/0 2.0.0.0/32 is subnetted, 1 subnets D 2.2.2.2 [90/156160] via 23.23.23.2, 00:03:39, FastEthernet0/0 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 12.0.0.0/24 is subnetted, 1 subnets D 12.12.12.0 [90/2172416] via 23.23.23.2, 00:03:39, FastEthernet0/0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, FastEthernet0/0 JOGJA# The D mark indicates that the route is generated through the EIGRP protocol. The AD on EIGRP is 90 marked in yellow and the metric is marked in blue. Metric calculation uses its own formula.\nOpen Shortest Path First (OSPF) # Open Standard. Link-State routing protocol. Using SPF/Dijkstra Algorithm. Multicast for exchange information use port 89. Administrative distance 110. Classless routing protocol support VLSM/CIDR. Support IPv6. Metric using cost. Fast convergence. Equal load balancing only. Using areas (backbone area and non-backbone areas). Delete the previous EIGRP configuration.\nSEMARANG(config)# no router eigrp 10 SOLO(config)# no router eigrp 10 JOGJA(config-if)# no router eigrp 10 Configure OSPF on the router. OSPF uses a process ID. The process ID on each router does not have to be the same, the most important thing is the area. To connect between one area and another it must pass through area 0 or the backbone area.\nSEMARANG(config)#router ospf ? \u0026lt;1-65535\u0026gt; Process ID SEMARANG(config)#router ospf 1 SEMARANG(config-router)#net SEMARANG(config-router)#network 12.12.12.0 ? A.B.C.D OSPF wild card bits SEMARANG(config-router)#network 12.12.12.0 0.0.0.255 area 0 SEMARANG(config-router)#network 1.1.1.1 0.0.0.0 area 0 SOLO(config)#router ospf 2 SOLO(config-router)#network 12.12.12.0 0.0.0.255 area 0 SOLO(config-router)#network 23.23.23.0 0.0.0.255 area 1 SOLO(config-router)#network 2.2.2.2 0.0.0.0 area 0 JOGJA(config)#router ospf 3 JOGJA(config-router)#network 23.23.23.0 0.0.0.255 area 1 JOGJA(config-router)#network 3.3.3.3 0.0.0.0 area 1 Now do a ping test.\nSEMARANG#ping 2.2.2.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms SEMARANG#ping 3.3.3.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/7 ms SEMARANG# Check the routing table.\nSEMARANG#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets O 2.2.2.2 [110/65] via 12.12.12.2, 00:02:45, Serial0/0/0 3.0.0.0/32 is subnetted, 1 subnets O IA 3.3.3.3 [110/66] via 12.12.12.2, 00:01:21, Serial0/0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, Serial0/0/0 23.0.0.0/24 is subnetted, 1 subnets O IA 23.23.23.0 [110/65] via 12.12.12.2, 00:03:13, Serial0/0/0 SOLO#sh ip ro Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets O 1.1.1.1 [110/65] via 12.12.12.1, 00:05:40, Serial0/0/0 2.0.0.0/32 is subnetted, 1 subnets C 2.2.2.2 is directly connected, Loopback0 3.0.0.0/32 is subnetted, 1 subnets O 3.3.3.3 [110/2] via 23.23.23.3, 00:02:35, FastEthernet0/0 12.0.0.0/24 is subnetted, 1 subnets C 12.12.12.0 is directly connected, Serial0/0/0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, FastEthernet0/0 SOLO# JOGJA#sh ip route Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets O IA 1.1.1.1 [110/66] via 23.23.23.2, 00:02:03, FastEthernet0/0 2.0.0.0/32 is subnetted, 1 subnets O IA 2.2.2.2 [110/2] via 23.23.23.2, 00:02:03, FastEthernet0/0 3.0.0.0/32 is subnetted, 1 subnets C 3.3.3.3 is directly connected, Loopback0 12.0.0.0/24 is subnetted, 1 subnets O IA 12.12.12.0 [110/65] via 23.23.23.2, 00:02:03, FastEthernet0/0 23.0.0.0/24 is subnetted, 1 subnets C 23.23.23.0 is directly connected, FastEthernet0/0 JOGJA# The O mark indicates that the route is generated through the OSPF protocol. The IA mark indicates that the destination route is in a different area. The AD on OSPF is 110.\nAccess List (ACL)\nAccess List (ACL) is commonly used for filtering. There are 2 types of access lists, namely standard and extended.\nStandard ACL Extended ACL ACL Number range 1-99 ACL Number range 100-199 Can block a network, host and subnet Can allow or deny a network, host, subnet and service All service are blocked Select service can be blocked Implemented closest to the destination Implemented closest to the destination Filtering based on source IP address only Filtering based on source IP address, destination IP, protocol and port number Standard Access List # Perform configuration so that the LAN PC can ping the server.\nInterface and routing configuration on Router0.\nRouter(config)#int fa0/1 Router(config-if)#ip add 192.168.1.1 255.255.255.0 Router(config-if)#no sh Router(config-if)#int fa0/0 Router(config-if)#ip add 10.10.10.1 255.255.255.0 Router(config-if)#no sh Router(config-if)#ip route 20.20.20.0 255.255.255.0 10.10.10.2 Interface and routing configuration on Router1.\nRouter(config)#int fa0/0 Router(config-if)#ip add 10.10.10.2 255.255.255.0 Router(config-if)#no sh Router(config-if)#int fa0/1 Router(config-if)#ip add 20.20.20.1 255.255.255.0 Router(config-if)#no sh Router(config-if)#ip route 192.168.1.0 255.255.255.0 10.10.10.1 Provide an IP on the server and try checking the web server via browser on the LAN PC.\nCheck ping from the LAN PC to the web server.\nPC\u0026gt;ping 20.20.20.2 Pinging 20.20.20.2 with 32 bytes of data: Reply from 20.20.20.2: bytes=32 time=0ms TTL=126 Reply from 20.20.20.2: bytes=32 time=0ms TTL=126 Reply from 20.20.20.2: bytes=32 time=0ms TTL=126 Reply from 20.20.20.2: bytes=32 time=0ms TTL=126 Ping statistics for 20.20.20.2: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms PC\u0026gt; Now configure a standard access list so that the LAN PC cannot access the web server. Set the access list on the router and interface closest to the destination.\nRouter(config)#access-list 10 deny 192.168.10.0 ? A.B.C.D Wildcard bits \u0026lt;cr\u0026gt; Router(config)#access-list 10 deny 192.168.1.0 0.0.0.255 Router(config)#access-list 10 permit any Router(config)#int fa0/1 Router(config-if)#ip access-group 1 out Check ping and browser access from the LAN PC to the web server.\nPC\u0026gt;ping 20.20.20.2 Pinging 20.20.20.2 with 32 bytes of data: Reply from 10.10.10.2: Destination host unreachable. Reply from 10.10.10.2: Destination host unreachable. Reply from 10.10.10.2: Destination host unreachable. Reply from 10.10.10.2: Destination host unreachable. Ping statistics for 20.20.20.2: Packets: Sent = 4, Received = 0, Lost = 4 (100% loss), PC\u0026gt; Check the access list on Router1.\nRouter#show access-lists Standard IP access list 10 deny 192.168.1.0 0.0.0.255 (64 match(es)) permit any (5 match(es)) Router# In a standard access list, all services will be blocked, whether UDP for browser access or ICMP for ping. To select only specific services, use an extended access list.\nExtended Access List # An extended access list allows only specific services to be blocked. The image below shows the types of services and their applications.\nflowchart TD %% Node Utama IP[IP] %% Protokol Layer Transport/Network TCP[TCP] UDP[UDP] ICMP[ICMP] IP --- TCP IP --- UDP IP --- ICMP %% Aplikasi di bawah TCP HTTP[HTTP] TELNET[TELNET] FTP[FTP] SNTP[SNTP] TCP --- HTTP TCP --- TELNET TCP --- FTP TCP --- SNTP %% Aplikasi di bawah UDP DNS[DNS] TDTP[TDTP] DHCP[DHCP] NNTP[NNTP] UDP --- DNS UDP --- TDTP UDP --- DHCP UDP --- NNTP %% Aplikasi di bawah ICMP PING[PING] TRACE[TRACEROUTE] ICMP --- PING ICMP --- TRACE %% Styling Warna Biru classDef mainBox fill:#5b9bd5,stroke:#2e75b6,stroke-width:2px,color:#ffffff,font-weight:bold; classDef subBox fill:#ddebf7,stroke:#5b9bd5,stroke-width:1px,color:#000000; class IP,TCP,UDP,ICMP mainBox; class HTTP,TELNET,FTP,SNTP,DNS,TDTP,DHCP,NNTP,PING,TRACE subBox; Still using the topology from the previous lab. First, delete the standard access list that was created on Router1.\nRouter(config)#no access-list 10 Configure an extended access list on Router1 so that the LAN PC can access the web server but cannot ping.\nRouter(config)#access-list 100 deny icmp 192.168.1.0 0.0.0.255 host 20.20.20.2 echo Router(config)#access-list 100 permit ip any any Router(config)#int fa0/1 Router(config-if)#ip access-group 100 out Try checking the browser and test ping.\nPC\u0026gt;ping 20.20.20.2 Pinging 20.20.20.2 with 32 bytes of data: Reply from 10.10.10.2: Destination host unreachable. Reply from 10.10.10.2: Destination host unreachable. Reply from 10.10.10.2: Destination host unreachable. Reply from 10.10.10.2: Destination host unreachable. Ping statistics for 20.20.20.2: Packets: Sent = 4, Received = 0, Lost = 4 (100% loss), PC\u0026gt; Check the access list.\nRouter#show access-lists Standard IP access list 10 deny 192.168.1.0 0.0.0.255 (64 match(es)) permit any (5 match(es)) Router# Network Address Translation (NAT)\nNetwork Address Translation (NAT) is used to translate private IPs to public IPs or vice versa. Suppose there is a server in a company, besides being accessible locally, the company wants the server to be accessible via the internet. Then the server is given a public IP and configured with static NAT.\nIn NAT configuration, interfaces are set into 2 categories: inside and outside.\nInside = traffic entering the router interface from the local network. Outside = traffic leaving through the router interface to the destination/internet. There are several types of NAT.\nStatic NAT, one private IP is translated to one public IP (one to one mapping). Dynamic NAT, the number of public IPs provided must be equal to the number of private IPs translated. This type of NAT is rarely used. Overloading/Port Address Translation (PAT), internet access using 1 public IP. This is widely used today. Static NAT # In static NAT, only 1 private IP is translated to 1 public IP. This means only 1 LAN PC can access the internet.\nThe configuration is almost the same as the access list lab, but it does not need to be routed because it will later use NAT.\nInterface and routing configuration on Router1.\nRouter(config)#int fa0/1 Router(config-if)#ip add 192.168.1.1 255.255.255.0 Router(config-if)#no sh Router(config-if)#int fa0/0 Router(config-if)#ip add 10.10.10.1 255.255.255.0 Router(config-if)#no sh Interface and routing configuration on Router2.\nRouter(config)#int fa0/0 Router(config-if)#ip add 10.10.10.2 255.255.255.0 Router(config-if)#no sh Router(config-if)#int fa0/1 Router(config-if)#ip add 20.20.20.1 255.255.255.0 Router(config-if)#no sh Static NAT and default route configuration on R1. LAN PC 192.168.1.11 will be translated to public IP 10.10.10.10.\nRouter(config)#ip nat inside source ? list Specify access list describing local addresses static Specify static local-\u0026gt;global mapping Router(config)#ip nat inside source static 192.168.1.11 10.10.10.10 Router(config)#int fa0/1 Router(config-if)#ip nat inside Router(config-if)#int fa0/0 Router(config-if)#ip nat outside Router(config)#ip route 0.0.0.0 0.0.0.0 fa0/0 Ping static NAT through the server and vice versa. The LAN PC address can never be pinged from the internet.\nSERVER\u0026gt;ping 10.10.10.10 Pinging 10.10.10.10 with 32 bytes of data: Reply from 10.10.10.10: bytes=32 time=11ms TTL=126 Reply from 10.10.10.10: bytes=32 time=0ms TTL=126 Reply from 10.10.10.10: bytes=32 time=0ms TTL=126 Reply from 10.10.10.10: bytes=32 time=11ms TTL=126 Ping statistics for 10.10.10.10: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 11ms, Average = 5ms SERVER\u0026gt;ping 192.168.1.11 Pinging 192.168.1.11 with 32 bytes of data: Reply from 20.20.20.1: Destination host unreachable. Reply from 20.20.20.1: Destination host unreachable. Request timed out. Reply from 20.20.20.1: Destination host unreachable. Ping statistics for 192.168.1.11: Packets: Sent = 4, Received = 0, Lost = 4 (100% loss), SERVER\u0026gt; PC\u0026gt;ping 20.20.20.2 Pinging 20.20.20.2 with 32 bytes of data: Reply from 20.20.20.2: bytes=32 time=12ms TTL=126 Reply from 20.20.20.2: bytes=32 time=0ms TTL=126 Reply from 20.20.20.2: bytes=32 time=0ms TTL=126 Reply from 20.20.20.2: bytes=32 time=0ms TTL=126 Ping statistics for 20.20.20.2: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 12ms, Average = 3ms PC\u0026gt; Overloading/Port Address Translation (PAT) # PAT is used so that many local PCs can access the internet together by using only 1 public IP.\nContinuation of the previous lab. First, delete the static NAT configuration that was created.\nRouter(config)#no ip nat inside source static 192.168.1.11 10.10.10.10 Create an access list to define the network to be translated and configure dynamic NAT overload on R1.\nRouter(config)#access-list 1 permit 192.168.1.0 0.0.0.255 Router(config)#ip nat inside source list ? \u0026lt;1-199\u0026gt; Access list number for local addresses WORD Access list name for local addresses Router(config)#ip nat inside source list 1 interface fa0/0 overload Now ping the web server through PC0 and PC1, make sure there is a reply.\nPC\u0026gt;ping 20.20.20.2 Pinging 20.20.20.2 with 32 bytes of data: Reply from 20.20.20.2: bytes=32 time=12ms TTL=126 Reply from 20.20.20.2: bytes=32 time=0ms TTL=126 Reply from 20.20.20.2: bytes=32 time=0ms TTL=126 Reply from 20.20.20.2: bytes=32 time=0ms TTL=126 Ping statistics for 20.20.20.2: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 12ms, Average = 3ms PC\u0026gt; High Availability\nHigh Availability is used for the purpose of redundancy, namely using multiple routers, one becoming the main link and the other as a backup. A virtual gateway will be installed on the local PC so that when switching routers, there is no need to set the gateway again.\nHSRP # Configure routing as usual on the three routers.\nRouter(config)#hostname Router1 Router1(config)#int fa0/0 Router1(config-if)#ip add 13.13.13.1 255.255.255.0 Router1(config-if)#no sh Router1(config-if)#int fa0/1 Router1(config-if)#ip add 12.12.12.1 255.255.255.0 Router1(config-if)#no sh Router1(config-if)#router eigrp 10 Router1(config-router)#network 13.13.13.1 0.0.0.255 Router1(config-router)#network 12.12.12.1 0.0.0.255 Router1(config-router)#passive-interface fa0/1 Router1(config-router)#no auto-summary Router(config)#hostname Router2 Router2(config)#int fa0/1 Router2(config-if)#ip add 23.23.23.2 255.255.255.0 Router2(config-if)#no sh Router2(config-if)#int fa0/0 Router2(config-if)#ip add 12.12.12.2 255.255.255.0 Router2(config-if)#no sh Router2(config-if)#router eigrp 10 Router2(config-router)#network 23.23.23.2 0.0.0.255 Router2(config-router)#network 12.12.12.2 0.0.0.255 Router2(config-router)#passive-interface fa0/0 Router2(config-router)#no auto-summary Router(config)#hostname Router3 Router3(config)#int lo0 Router3(config-if)#ip add 3.3.3.3 255.255.255.255 Router3(config-if)#int fa0/1 Router3(config-if)#ip add 23.23.23.3 255.255.255.0 Router3(config-if)#no sh Router3(config-if)#int fa0/0 Router3(config-if)#ip add 13.13.13.3 255.255.255.0 Router3(config-if)#no sh Router3(config-if)#router eigrp 10 Router3(config-router)#network 23.23.23.3 0.0.0.255 Router3(config-router)#network 13.13.13.3 0.0.0.255 Router3(config-router)#network 3.3.3.3 0.0.0.0 Router3(config-router)#no auto-summary Make sure Router1 and Router2 can ping to 3.3.3.3 before configuring HSRP.\nRouter1(config)#int fa0/1 Router1(config-if)#standby ? \u0026lt;0-4095\u0026gt; group number ip Enable HSRP and set the virtual IP address ipv6 Enable HSRP IPv6 preempt Overthrow lower priority Active routers priority Priority level track Priority Tracking Router1(config-if)#standby 1 ip 12.12.12.12 Router1(config-if)#standby 1 preempt %HSRP-6-STATECHANGE: FastEthernet0/1 Grp 1 state Speak -\u0026gt; Standby %HSRP-6-STATECHANGE: FastEthernet0/1 Grp 1 state Standby -\u0026gt; Active Router1(config-if)#standby 1 priority 105 Router1(config-if)#standby 1 track fa0/0 Router2(config)#int fa0/0 Router2(config-if)#standby 1 ip 12.12.12.12 Router2(config-if)#standby preempt %HSRP-6-STATECHANGE: FastEthernet0/0 Grp 1 state Speak -\u0026gt; Standby Configuration on PC.\nPC0 IP:12.12.12.100/24 GATEWAY:12.12.12.12 PC1 IP:12.12.12.101/24 GATEWAY:12.12.12.12 Ping and trace from PC to 3.3.3.3.\nPC\u0026gt;ping 3.3.3.3 Pinging 3.3.3.3 with 32 bytes of data: Reply from 3.3.3.3: bytes=32 time=1ms TTL=254 Reply from 3.3.3.3: bytes=32 time=1ms TTL=254 Reply from 3.3.3.3: bytes=32 time=1ms TTL=254 Reply from 3.3.3.3: bytes=32 time=0ms TTL=254 Ping statistics for 3.3.3.3: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 1ms, Average = 0ms PC\u0026gt;tracert 3.3.3.3 Tracing route to 3.3.3.3 over a maximum of 30 hops: 1 1 ms 1 ms 0 ms 12.12.12.1 2 1 ms 1 ms 0 ms 3.3.3.3 Trace complete. PC\u0026gt; Check standby on Router1 and Router2.\nRouter1#show standby br P indicates configured to preempt. | Interface Grp Pri P State Active Standby Virtual IP Fa0/1 1 105 P Active local 12.12.12.2 12.12.12.12 Router1# Router2#show standby br P indicates configured to preempt. | Interface Grp Pri P State Active Standby Virtual IP Fa0/0 1 100 Standby 12.12.12.1 local 12.12.12.12 Router2# Router2(config)#int fa0/0 Router2(config-if)#standby 1 ip 12.12.12.12 Router2(config-if)#standby preempt %HSRP-6-STATECHANGE: FastEthernet0/0 Grp 1 state Speak -\u0026gt; Standby ","date":"17 May 2026","externalUrl":null,"permalink":"/study/cisco/routing/","section":"Study","summary":"Routing is sending packet data from one network to another network. The device used in routing is a router. A router is used for best path selection and packets forwarding.","title":"Routing","type":"study"},{"content":"","date":"17 May 2026","externalUrl":null,"permalink":"/tags/routing/","section":"Tags","summary":"","title":"Routing","type":"tags"},{"content":"Cisco Devices Overview\nSwitches in Cisco are usually called catalysts. The most prominent difference between a switch and a router is that a switch has many ports.\nCatalyst 1900 Series Cisco Catalyst 2690 Series Cisco Router 2900 series Basic Cisco Switch \u0026amp; Router Commands # There are some basic Cisco commands that are mandatory to know.\nRouter\u0026gt; Router\u0026gt;enable Router# Router#configure terminal Router(config)# There are several access privileges when logging into Cisco IOS:\nUser mode is indicated by a \u0026ldquo;\u0026gt;\u0026rdquo; sign. Privilege mode is indicated by a \u0026ldquo;#\u0026rdquo; sign. To enter privilege mode from user mode, type the enable command. Global configuration mode is used to configure devices. Changing the Hostname\nRouter(config)#hostname Semarang Semarang (config)# Saving Configuration\nConfiguring so that when the device reboots, the configuration is not lost.\nRouter(config)#write or\nRouter(config)#copy run start Resetting Cisco Devices\nTo restore the configuration to default.\nRouter(config)#write erase The show ip interface brief command is used to view interface information.\nR1#show ip interface brief Interface IP-Address OK? Method Status Protocol FastEthernet0/0 10.10.10.1 YES manual up up FastEthernet0/1 12.12.12.1 YES manual up up Loopback0 1.1.1.1 YES manual up up Vlan1 unassigned YES unset administratively down down R1# The show running-config command is used to view the running configuration.\nR1#show running-config Building configuration... Current configuration : 687 bytes ! version 12.4 no service timestamps log datetime msec no service timestamps debug datetime msec no service password-encryption ! hostname R1 ! spanning-tree mode pvst ! interface Loopback0 ip address 1.1.1.1 255.255.255.255 ! interface FastEthernet0/0 ip address 10.10.10.1 255.255.255.0 ip nat inside duplex auto speed auto ! interface FastEthernet0/1 ip address 12.12.12.1 255.255.255.0 ip nat outside duplex auto speed auto ! interface Vlan1 no ip address shutdown ! ip nat inside source static 10.10.10.2 12.12.12.12 ip classless ip route 0.0.0.0 0.0.0.0 12.12.12.2 ! line con 0 ! line aux 0 ! line vty 0 4 login ! + end Cisco Password Configuration # Security is an important matter in a network. Providing authentication in the form of a username and password in the device is done so that not just anyone can log into the device.\nSetting a Line Console Password means when configuring through the console port, you will be prompted to log in.\nRouter\u0026gt;enable Router#configure terminal Router(config)#line console 0 Router(config-line)#password 123 Router(config-line)#login When entering the device, the following display will appear.\nUser Access Verification Password: VTY (Virtual Terminal) configuration so that the device can be telnetted using a specific username and password.\nRouter(config)#username admin Router(config)#enable password coba1 Router(config)#enable secret coba2 When running show run.\nRouter#sh run Building configuration... Current configuration : 598 bytes ! version 12.4 no service timestamps log datetime msec no service timestamps debug datetime msec no service password-encryption ! hostname Router ! enable secret 5 $1$mERr$9SLtlDbYs.aoemVq5cCcc. enable password coba1 ! username admin enable secret = password is encrypted.\nenable password = password is not encrypted and can be seen with show run.\nIf we set enable secret and enable password, the one used is enable secret.\nVirtual LAN (VLAN) # Virtual LAN (VLAN) divides one broadcast domain into several broadcast domains, so that in one switch there can consist of several networks. Hosts from different VLANs will not be connected, thereby increasing network security.\nVLAN is a facility owned by manageable switches, for example Cisco. On unmanageable switches, the ports can only be used for connections to the same network (one network) so they do not support the VLAN facility.\nCreate the topology as shown in the picture above in packet tracer. Configure VLAN on the switch with VLAN10 named Marketing and VLAN20 named Sales.\nSwitch\u0026gt;enable Switch#conf t Switch(config)#vlan 10 Switch(config-vlan)#name Marketing Switch(config-vlan)#vlan 20 Switch(config-vlan)#name Sales Switch(config-vlan)#int f0/1 Switch(config-if)#switchport access vlan 10 Switch(config-if)#int f0/2 Switch(config-if)#switchport access vlan 10 Switch(config-if)#int f0/3 Switch(config-if)#switchport access vlan 20 Switch(config-if)#int f0/4 Switch(config-if)#switchport access vlan 20 To check, ping from one PC to another PC and type the show vlan command on the switch. PC cannot ping to a different VLAN.\nPC\u0026gt;ping 10.10.10.11 Pinging 10.10.10.11 with 32 bytes of data: Reply from 10.10.10.11: bytes=32 time=0ms TTL=128 Reply from 10.10.10.11: bytes=32 time=0ms TTL=128 Reply from 10.10.10.11: bytes=32 time=0ms TTL=128 Reply from 10.10.10.11: bytes=32 time=0ms TTL=128 Ping statistics for 10.10.10.11: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms PC\u0026gt;ping 20.20.20.21 Pinging 20.20.20.21 with 32 bytes of data: Request timed out. Request timed out. Request timed out. Request timed out. Ping statistics for 20.20.20.21: Packets: Sent = 4, Received = 0, Lost = 4 (100% loss), PC\u0026gt; Switch#show vlan VLAN Name Status Ports ---- -------------------------------- --------- ---------------------------- --- 1 default active Fa0/5, Fa0/6, Fa0/7, Fa0/8 Fa0/9, Fa0/10, Fa0/11, Fa0/12 Fa0/13, Fa0/14, Fa0/15, Fa0/16 Fa0/17, Fa0/18, Fa0/19, Fa0/20 Fa0/21, Fa0/22, Fa0/23, Fa0/24 10 VLAN0010 active Fa0/1, Fa0/2 20 VLAN0020 active Fa0/3, Fa0/4 1002 fddi-default act/unsup 1003 token-ring-default act/unsup 1004 fddinet-default act/unsup 1005 trnet-default act/unsup VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2 ---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ---- -- 1 enet 100001 1500 - - - - - 0 0 10 enet 100010 1500 - - - - - 0 0 20 enet 100020 1500 - - - - - 0 0 1002 fddi 101002 1500 - - - - - 0 0 1003 tr 101003 1500 - - - - - 0 0 1004 fdnet 101004 1500 - - - ieee - 0 0 1005 trnet 101005 1500 - - - ibm - 0 0 Remote SPAN VLANs ---------------------------------------------------------------------------- -- Primary Secondary Type Ports ------- --------- ----------------- ---------------------------------------- -- LAN Trunking # Trunking functions to pass VLAN traffic from different switches. Between the 1st floor and 2nd floor switches are connected. PC1, PC2, PC5 and PC6 enter VLAN 10 while PC3, PC4, PC5 and PC6 enter VLAN 20.\nConfigure VLANs as shown below. Creating vlan 10 and vlan 20.\n10.10.10.10/24 10.10.10.11/24 10.10.10.12/24 10.10.10.13/24 20.20.20.20/24 20.20.20.21/24 20.20.20.22/24 20.20.20.23/24 switch1(config)#vlan 10 switch1(config-vlan)#vlan 20 switch1(config-vlan)#int f0/1 switch1(config-if)#sw access vlan 10 switch1(config-if)#int f0/2 switch1(config-if)#sw access vlan 10 switch1(config-vlan)#int f0/3 switch1(config-if)#sw access vlan 10 switch1(config-vlan)#int f0/4 switch1(config-if)#sw access vlan 10 Switch0(config)#vlan 10 Switch0(config-vlan)#vlan 20 Switch0(config-vlan)#int f0/1 Switch0(config-if)#sw access vlan 10 Switch0(config-if)#int f0/2 Switch0(config-if)#sw access vlan 10 Switch0(config-vlan)#int f0/3 Switch0(config-if)#sw access vlan 10 Switch0(config-vlan)#int f0/4 Switch0(config-if)#sw access vlan 10 Configure the interface interconnected between switches to trunk mode.\nDo this on both switches.\nSwitch0(config)#int f0/10 Switch0(config-if)#switchport mode trunk Switch1(config)#int f0/10 Switch1(config-if)#switchport mode trunk Ping from one PC to another PC and type the show vlan command.\nPC\u0026gt;ping 10.10.10.11 Pinging 10.10.10.11 with 32 bytes of data: Reply from 10.10.10.11: bytes=32 time=17ms TTL=128 Reply from 10.10.10.11: bytes=32 time=0ms TTL=128 Reply from 10.10.10.11: bytes=32 time=0ms TTL=128 Reply from 10.10.10.11: bytes=32 time=0ms TTL=128 Ping statistics for 10.10.10.11: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 17ms, Average = 4ms PC\u0026gt;ping 10.10.10.13 Pinging 10.10.10.13 with 32 bytes of data: Reply from 10.10.10.13: bytes=32 time=11ms TTL=128 Reply from 10.10.10.13: bytes=32 time=0ms TTL=128 Reply from 10.10.10.13: bytes=32 time=0ms TTL=128 Reply from 10.10.10.13: bytes=32 time=1ms TTL=128 Ping statistics for 10.10.10.13: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 11ms, Average = 3ms PC\u0026gt;ping 20.20.20.20 Pinging 20.20.20.20 with 32 bytes of data: Request timed out. Request timed out. Request timed out. Request timed out. Ping statistics for 20.20.20.20: Packets: Sent = 4, Received = 0, Lost = 4 (100% loss), PC\u0026gt; PC can ping to fellow VLANs on different switches but cannot to different VLANs.\nSwitch1#sh int trunk Port Mode Encapsulation Status Native vlan Fa0/10 on 802.1q trunking 1 Port Vlans allowed on trunk Fa0/10 1-1005 Port Vlans allowed and active in management domain Fa0/10 1,10,20 Port Vlans in spanning tree forwarding state and not pruned Fa0/10 1,10,20 Inter-VLAN - Router on a Stick # To connect different VLANs, a layer 3 device is required, be it a router or a layer 3 switch. The first method is to use one router via a single interface. This technique is called router on a stick. The disadvantage of this technique is that a collision domain will occur because it only uses one interface.\nThere are 2 trunking protocols commonly used:\nISL = Cisco proprietary, works on Ethernet, Token Ring and FDDI, adding a 30-byte tag to the frame and all VLAN traffic is tagged. IEEE 802.1Q (dot1q) = open standard, only works on Ethernet, adding a 4-byte tag to the frame. Create the topology as above and configure VLAN10 and VLAN20 as in the previous lab. Add 1 router. Because it only uses 1 interface, a sub-interface must be created to serve as the VLAN gateway. The SW1 port connected to the router must be set to trunk mode.\nRouter(config)#interface FastEthernet0/0.10 Router(config-subif)#encapsulation dot1Q 10 Router(config-subif)#ip address 10.10.10.1 255.255.255.0 Router(config-subif)#interface FastEthernet0/0.20 Router(config-subif)#encapsulation dot1Q 20 Router(config-subif)#ip address 20.20.20.1 255.255.255.0 Check the interface with the show ip int brief command.\nRouter#sh ip int br Interface IP-Address OK? Method Status Protocol FastEthernet0/0 unassigned YES unset up up FastEthernet0/0.10 10.10.10.1 YES manual up up FastEthernet0/0.20 20.20.20.1 YES manual up up FastEthernet0/0.30 30.30.30.30 YES manual up up FastEthernet0/1 unassigned YES unset administratively down down Vlan1 unassigned YES unset administratively down down Router# Now ping between different VLANs.\nPC\u0026gt;ping 20.20.20.21 Pinging 20.20.20.21 with 32 bytes of data: Request timed out. Reply from 20.20.20.21: bytes=32 time=1ms TTL=127 Reply from 20.20.20.21: bytes=32 time=0ms TTL=127 Reply from 20.20.20.21: bytes=32 time=0ms TTL=127 Ping statistics for 20.20.20.21: Packets: Sent = 4, Received = 3, Lost = 1 (25% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 1ms, Average = 0ms PC\u0026gt;tracert 20.20.20.21 Tracing route to 20.20.20.21 over a maximum of 30 hops: 1 30 ms 0 ms 0 ms 10.10.10.1 2 0 ms 0 ms 0 ms 20.20.20.1 Trace complete. Router#sh ip arp Protocol Address Age (min) Hardware Addr Type Interface Internet 10.10.10.10 4 0000.0C1B.0D20 ARPA FastEthernet0/0.10 Internet 20.20.20.21 3 0060.7092.05A9 ARPA FastEthernet0/0.20 Internet 30.30.30.1 1 0001.C7AE.3D52 ARPA FastEthernet0/0.30 Router# Inter-VLAN - Layer 3 Switch # To connect between VLANs requires a layer 3 device be it a router or a layer 3 switch. If before using a router on a stick, this time we will use an L3 (layer 3) switch. This is the cool thing about Cisco, while other switches work at layer 2, Cisco switches can work at layer 3 and execute routing. However, even for more extensive routing it is recommended to use a router according to its function.\nConfigure the ports to their respective VLANs.\nSwitch(config)#interface FastEthernet0/1 Switch(config-if)#switchport access vlan 10 Switch(config-if)#switchport mode access Switch(config-if)# Switch(config-if)#interface FastEthernet0/2 Switch(config-if)#switchport access vlan 10 Switch(config-if)#switchport mode access Switch(config-if)# Switch(config-if)#interface FastEthernet0/3 Switch(config-if)#switchport access vlan 20 Switch(config-if)#switchport mode access Switch(config-if)#interface FastEthernet0/4 Switch(config-if)#switchport access vlan 20 Switch(config-if)#switchport mode access Create VLAN interfaces and provide ip addresses.\nSwitch(config)#int vlan 10 Switch(config-if)#ip add 10.10.10.1 255.255.255.0 Switch(config-if)#int vlan 20 Switch(config-if)#ip add 20.20.20.1 255.255.255.0 Type the ip routing command to route VLANs.\nSwitch(config)#ip routing Now test ping.\nPC\u0026gt;ping 20.20.20.21 Pinging 20.20.20.21 with 32 bytes of data: Request timed out. Reply from 20.20.20.21: bytes=32 time=0ms TTL=127 Reply from 20.20.20.21: bytes=32 time=0ms TTL=127 Reply from 20.20.20.21: bytes=32 time=0ms TTL=127 Ping statistics for 20.20.20.21: Packets: Sent = 4, Received = 3, Lost = 1 (25% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms PC\u0026gt; DHCP using a Switch # The function of DHCP is to provide an IP address automatically to the host.\nDHCP Configuration.\nSwitch(config)#ip dhcp pool vlan10 Switch(dhcp-config)#network 10.10.10.0 255.255.255.0 Switch(dhcp-config)#default-router 10.10.10.1 Switch(dhcp-config)#dns-server 8.8.8.8 Switch(dhcp-config)#ip dhcp pool vlan20 Switch(dhcp-config)#network 20.20.20.0 255.255.255.0 Switch(dhcp-config)#default-router 20.20.20.1 Switch(dhcp-config)#dns-server 8.8.8.8 if there is an ip that you do not want to use in DHCP, enter the ip dhcp excluded-address command.\nip dhcp excluded-address 10.10.10.2 10.10.10.10 The show ip dhcp binding command displays the client that gets a dhcp ip.\nSwitch#sh ip dhcp binding IP address Client-ID/ Lease expiration Type Hardware address 10.10.10.12 0003.E4A2.9D08 -- Automatic 10.10.10.11 0001.64C9.674C -- Automatic 20.20.20.11 0001.4266.50B0 -- Automatic 20.20.20.12 0002.1638.8C69 -- Automatic Switch# DHCP can also be set manually for clients with specific MAC Addresses.\nip dhcp pool PC_MANAGER host 20.20.20.100 default router 20.20.20.1 client-id 0102.c7f8.0004.22 client-name Komputer_IDN Port Security # Port Security is used so that the Cisco device interface port cannot be used except for PCs with specific MAC Addresses.\nint fa0/1 switchport mode access switchport port-security switchport port-security mac-address sticky switchport port-security violation shutdown int fa0/2 switchport mode access switchport port-security switchport port-security mac-address sticky switchport port-security violation restrict There are 3 violations:\nprotect = data sent through the port is left unsent restrict = like protect but sends a notification with snmp shutdown = the port will be shut down automatically, to restore it then it must be no shut with the console switch or telnet. Sticky means that the MAC address that first passes the switch is the one used. If it is not that MAC address that is connected to the port that is set for port-security, then it will be processed depending on the violation set.\nshow port-security Switch#show port-security Secure Port MaxSecureAddr CurrentAddr SecurityViolation Security Action (Count) (Count) (Count) -------------------------------------------------------------------- Fa0/1 1 1 1 Shutdown Fa0/2 1 1 1 Restrict ---------------------------------------------------------------------- Switch# Spanning Tree Protocol (STP) # Spanning Tree Protocol (STP) is a protocol that functions to prevent loops in switches when switches use more than 1 link with the intention of redundancy. STP by default is set active on Cisco Catalyst. STP is an open standard (IEEE 802.1D). STP can prevent:\nBroadcast Storms Multiple Frame Copies Database Instability There are several types of STP:\nOpen Standard: STP (802.1D), Rapid STP (802.1W), Multiple Spanning Tree MST (802.1S) Cisco Proprietary: PVST (Per Vlan Spanning Tree), PVST+, Rapid PVST. When Switch0 sends a packet of data with a destination that is not in its MAC address table, Switch0 will broadcast to all ports up to Switch1. If in the Switch1 MAC address table there is also no earlier destination then Switch1 will again broadcast to Switch0 and it will be like that so that the network goes down.\nThere are several ways to overcome this:\nOnly use 1 link (no redundancy) Shutdown one interface, do a manual shutdown on one interface or automatically using STP. STP will create blocking or shutdown on one of the ports to prevent loops. When the main link goes down, the port that was previously blocking will become forwarding. Port blocking is indicated in red.\nHow STP works:\nWhen STP is active, each switch will send a special frame to each other called a Bridge Protocol Data Unit (BPDU).\nDetermine Root Bridge\nThe switch with the lowest bridge id will be the root bridge. Bridge id = priority + MAC address. In one LAN there is only one switch as the root bridge, other switches become non-root bridges. The default priority is 32768 and can be changed.\nDetermine Root Port\nThe root port is the closest path to the root bridge. For each non-root bridge there is only 1 root port.\nDetermine designated port and non-designated port\nA designated port is a forwarding port and a non-designated port is a blocking port. For a root bridge all its ports are designated ports.\nThe switch with the lowest priority, one of its ports will be a nondesignated port or blocking port. If the priorities are the same, the lowest MAC address will be looked at.\nSTP will make a blocking or shutdown on one of the ports to prevent a loop from occurring. When the main link is down then the previously blocking port will become forward. The blocking port is indicated by a red color.\nSTP uses link cost calculations to determine the root port on a non-root switch.\n10 Gbps = Cost 2 1 Gbps = Cost 4 100 Mbps = Cost 19 10 Mbps = Cost 100 Spanning Tree Protocol (STP) # Create a topology as below.\nSwitch0#show spanning-tree VLAN0001 Spanning tree enabled protocol ieee Root ID Priority 32769 Address 000B.BE80.D273 Cost 19 Port 1(FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address 00D0.FFDA.ECBC Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 20 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- ------------------------------- - Fa0/2 Altn BLK 19 128.2 P2p Fa0/1 Root FWD 19 128.1 P2p Switch0# Switch1#sh spanning-tree VLAN0001 Spanning tree enabled protocol ieee Root ID Priority 32769 Address 000B.BE80.D273 This bridge is the root Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address 000B.BE80.D273 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 20 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- ------------------------------- - Fa0/1 Desg FWD 19 128.1 P2p Fa0/2 Desg FWD 19 128.2 P2p Switch1# Automatically, Switch0 becomes the root bridge seen from all its forwarding ports (colored green), so that Switch1 becomes the root bridge, change the priority on Switch1.\nSwitch1(config)#spanning-tree vlan 1 priority 0 Now Switch1 is the root bridge. To move the blocking port from fa0/2 to fa0/1 on Switch1, run the following command.\nSwitch1(config)#int f0/1 Switch1(config-if)#speed 10 Check the results. Port blocking moves to fa0/1.\nSwitch1(config-if)#do show spanning-tree VLAN0001 Spanning tree enabled protocol ieee Root ID Priority 1 Address 00D0.FFDA.ECBC Cost 19 Port 2(FastEthernet0/2) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address 000B.BE80.D273 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 20 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- ------------------------------- - Fa0/1 Altn BLK 100 128.1 P2p Fa0/2 Root FWD 19 128.2 P2p STP Portfast # Portfast is one of the features of STP. When plugging a cable into a switch for the first time, it takes a while for the blocking process, which is indicated by an orange indicator light, to become forwarding, which is indicated by a yellow color.\nSTP Port States:\nBlocking 20 seconds/no limits\nListening 15 seconds\nLearning 15 seconds\nForwarding no limits\nDisable no limits\nThis is caused by the switch performing listening and learning steps first before forwarding. From the blocking, listening and learning processes, it takes approximately 30 seconds. To directly go to forward without going through listening and learning then portfast is used. Portfast is suitable to be used for ports leading to end hosts. For ports pointing to switches, it is not recommended because it will turn off the STP function in preventing looping.\nFor example, ports 1 to 4 that want to be configured stp portfast then type the following command.\nint range fa0/1 - 4 spanning-tree portfast Then when plugging the cable into the switch it will immediately turn yellow.\nEtherchannel # Because of the STP feature, there will be blocking ports to prevent loops. Etherchannel is used to bundle several links as if they were one link logically, so that STP must be turned off and there are no blocking ports.\nWith etherchannel, data transfer is faster and does not depend only on 1 link. Etherchannel can be configured with several mechanisms:\nStatic Persistence, without using a negotiation protocol. By using a negotiation protocol: LACP (Link Aggregation Control Protocol) - open standard IEEE 802.1AD. PAgP (Port Aggregation Protocol) - Cisco proprietary. Create a topology as below.\nLaCP configuration on the left and middle switches.\nSwitch(config)#int range fa0/1-3 Switch(config-if-range)#channel-group 1 mode ? active Enable LACP unconditionally auto Enable PAgP only if a PAgP device is detected desirable Enable PAgP unconditionally on Enable Etherchannel only passive Enable LACP only if a LACP device is detected Switch(config-if-range)#channel-group 1 mode active Switch(config-if-range)#int port-channel 1 Switch(config-if)#switchport mode trunk The mode used in LaCP can be active-active or active-passive but cannot be passive-passive.\nSwitch#sh etherchannel summary Flags: D - down P - in port-channel I - stand-alone s - suspended H - Hot-standby (LACP only) R - Layer3 S - Layer2 U - in use f - failed to allocate aggregator u - unsuitable for bundling w - waiting to be aggregated d - default port Number of channel-groups in use: 1 Number of aggregators: 1 Group Port-channel Protocol Ports ------+-------------+-----------+------------------------------------------- --- 1 Po1(SU) LACP Fa0/1(P) Fa0/2(P) Fa0/3(P) Switch# PAgP configuration on the middle and right switches.\nSwitch(config)#int range fa0/4-6 Switch(config-if-range)#channel-group 2 mode desirable Switch(config-if-range)#int port-channel 2 Switch(config-if)#switchport mode trunk In PAgP you can use desirable-desirable or desirable-auto modes. Now check the middle switch.\nSwitch#sh etherchannel summary Flags: D - down P - in port-channel I - stand-alone s - suspended H - Hot-standby (LACP only) R - Layer3 S - Layer2 U - in use f - failed to allocate aggregator u - unsuitable for bundling w - waiting to be aggregated d - default port Number of channel-groups in use: 2 Number of aggregators: 2 Group Port-channel Protocol Ports ------+-------------+-----------+------------------------------------------- --- 1 Po1(SU) LACP Fa0/1(P) Fa0/2(P) Fa0/3(P) 2 Po2(SU) PAgP Fa0/4(P) Fa0/5(P) Fa0/6(P) Switch# Manual etherchannel configuration, without LACP or PAgP on the left and right switches.\nSwitch(config)#int range fa0/7-9 Switch(config-if-range)#channel-group 3 mode on Switch(config-if-range)#int port-channel 3 Switch(config-if)#switchport mode trunk Switch#sh etherchannel summary Flags: D - down P - in port-channel I - stand-alone s - suspended H - Hot-standby (LACP only) R - Layer3 S - Layer2 U - in use f - failed to allocate aggregator u - unsuitable for bundling w - waiting to be aggregated d - default port Number of channel-groups in use: 2 Number of aggregators: 2 Group Port-channel Protocol Ports ------+-------------+-----------+------------------------------------------- --- 1 Po1(SU) LACP Fa0/1(P) Fa0/2(P) Fa0/3(P) 3 Po3(SU) - Fa0/7(P) Fa0/8(P) Fa0/9(P) Switch# Vlan Trunking Protocol (VTP) # VLAN Trunking Protocol (VTP) is a protocol that manages VLANs on multiple switches at once within the same VTP domain. VTP can add, delete and rename VLANs at once on multiple switches. VTP lightens the work of administrators so they do not need to configure VLANs on switches one by one.\nVTP is a proprietary Cisco protocol. VLAN configurations are stored in the vlan.dat database file in flash memory.\nThere are 3 VTP modes:\nServer (default) Client Transparent VTP Server VTP Client VTP Transparent Create/Modify/Delete VLAN Yes No Only local Synchronizes itself Yes Yes No Forwards advertisements Yes Yes Yes In VTP there is something called a revision number. The revision number is the number of VTP updates that a switch has received.\nThe important thing regarding the revision number is that when a switch is in server or client mode with the same VTP domain and has a higher revision number, when placed in a network, it automatically sends a VLAN database update and replaces the previous switch database thereby bringing the network down. The server mode switch will still have its database replaced because the server mode is basically a client mode as well.\nThe solution is to reset it first.\nConfigure the command below on all switches.\nSwitch(config)#interface range fa0/1-2 Switch(config-if-range)#switchport mode trunk Server\nSwitch(config)#int vlan 1 Switch(config-if)#ip add 10.10.10.1 255.255.255.0 Switch(config-if)#no shut Switch(config-if)#vtp mode server Switch(config)#vtp domain belajar Switch(config)#vtp password rahasia Transparent\nSwitch(config)#int vlan 1 Switch(config-if)#ip add 10.10.10.2 255.255.255.0 Switch(config-if)#no shut Switch(config-if)#vtp mode transparent Switch(config)#vtp domain belajar Switch(config)#vtp password rahasia Client\nSwitch(config)#int vlan 1 Switch(config-if)#ip add 10.10.10.3 255.255.255.0 Switch(config-if)#no shut Switch(config-if)#vtp mode client Switch(config)#vtp domain belajar Switch(config)#vtp password rahasia Server2\nSwitch(config)#int vlan 1 Switch(config-if)#ip add 10.10.10.4 255.255.255.0 Switch(config-if)#no shut Switch(config-if)#vtp mode server Switch(config)#vtp domain belajar Switch(config)#vtp password rahasia Create VLANs on each switch.\nServer: VLAN10, VLAN20 Transparent: VLAN30, VLAN40 Client: VLAN50, VLAN60 Server2: VLAN70, VLAN80 The result is the Server has 4 VLANs.\nSwitch#show vlan VLAN Name Status Ports 10 VLAN0010 active 20 VLAN0020 active 70 VLAN0070 active 80 VLAN0080 active Transparent has 2 VLANs.\nSwitch#sh vlan VLAN Name Status Ports 30 VLAN0030 active 40 VLAN0040 active Client has 4 VLANs\nSwitch#SH VLAN VLAN Name Status Ports 10 VLAN0010 active 20 VLAN0020 active 70 VLAN0070 active 80 VLAN0080 active Server2 has 4 VLANs.\nSwitch#SH VLAN VLAN Name Status Ports 10 VLAN0010 active 20 VLAN0020 active 70 VLAN0070 active 80 VLAN0080 active ","date":"16 May 2026","externalUrl":null,"permalink":"/study/cisco/switching/","section":"Study","summary":"Switches in Cisco are usually called catalysts. The most prominent difference between a switch and a router is that a switch has many ports.","title":"Switching","type":"study"},{"content":"","date":"16 May 2026","externalUrl":null,"permalink":"/tags/switching/","section":"Tags","summary":"","title":"Switching","type":"tags"},{"content":" Definition of Network # A network is a collection of network devices and end devices connected to each other that can share information and resources.\nNetwork forming components:\nNetwork devices: hub, bridge, switch, and router. End devices: PC, laptop, mobile, etc. Interconnection: NIC, connectors, media (copper, fiber optic, wireless, etc.). Networks by Area # Network by area diagram Local Area Network (LAN) is a simple network within a building, office, home, or school. Usually uses UTP cables. Metropolitan Area Network (MAN) is a combination of many LANs in an area. Wide Area Network (WAN) is a network connecting many MANs across islands, countries, or continents. Media can be fiber optic and satellites. OSI Layer # It is a standard in networking devices that makes various devices compatible with each other. There are 7 layers in the OSI model, from the bottom layer 1 physical up to layer 7 application.\ngraph TD A[Application] ~~~ B[Presentation] B ~~~ C[Session] C ~~~ D[Transport] D ~~~ E[Network] E ~~~ F[Data Link] F ~~~ G[Physical] style A fill:#3b9cb8,stroke:#fff,stroke-width:2px,color:#fff style B fill:#3b9cb8,stroke:#fff,stroke-width:2px,color:#fff style C fill:#3b9cb8,stroke:#fff,stroke-width:2px,color:#fff style D fill:#3b9cb8,stroke:#fff,stroke-width:2px,color:#fff style E fill:#3b9cb8,stroke:#fff,stroke-width:2px,color:#fff style F fill:#3b9cb8,stroke:#fff,stroke-width:2px,color:#fff style G fill:#3b9cb8,stroke:#fff,stroke-width:2px,color:#fff An engineer must understand layers 1 to 4 to understand the functions and workings of network devices.\nNo Layer Device Data Unit Addressing 1 Physical Hub Bit Binary (1 or 0) 2 Data Link Bridge and Switch Frame MAC Address 3 Network Router Packet IP Address No Layer Device Connectivity Memory 1 Physical Hub Broadcast to all ports - 2 Data Link Bridge and Switch Broadcast based on MAC Address MAC Address Table 3 Network Router Based on destination IP Address Routing Table Network Devices and Symbols # A network engineer must know the various types of network devices and their symbols to be able to read a network topology.\nHub Straight Cable Switch Cross-Over Cable Router Serial Internet EtherChannel IP Address # IP address is used for addressing within a network.\nNetwork IP as a network identity. If there is an IP 192.168.1.0/24, it means representing a group of IPs (network) from 192.168.1.1 – 192.168.1.254. Broadcast IP is the last IP in a network used to broadcast broadcast packets. For example, 192.168.1.255/24. Host is the IP provided for hosts. For example: 192.168.1.111/24. There are several types of IP:\nPublic IP is used to access the internet. Private IP is used for local networks. Ethernet Cable # Subnetting so Easy # Subnetting is dividing a network into smaller subnetworks. This is what\u0026rsquo;s called a subnet. One aspect of a good network design is the optimization of IP addresses. Subnetting minimizes unused or wasted IP addresses.\nSubnetting also makes network management and performance easier. If subnetting is analogized to real life, it would look like the picture below. With subnetting arrangements, it will be formed like small alleys to each complex, making it easier to distinguish networks and send data to the destination.\nWithout Subnet With Subnet This subnetting is something that must be mastered by a network engineer. In the past, during subnet exams, we still playfully used online subnet calculators.\nHehehe\u0026hellip; Now you must truly understand. To understand this subnetting, you first need to understand decimal and binary numbers (zero or one).\nIn subnetting, there are a few things that are most often sought after.\nSubnetting # For example, if there is an IP 192.168.2.172/26, the subnet mask or netmask is /26 = 11111111.11111111.11111111.11000000. The prefix /26 indicates the binary 1 (Net ID) amounts to 26 and the rest, which is Host ID, amounts to 6.\nFrom this 11111111.11111111.11111111.11000000, when converted to decimal, the subnet mask obtained is 255.255.255.192.\nTotal IPs # This Total IP is calculated from the Host ID. From the example question, we get the Host ID is 6 bits. Since IPv4 is 32 bits, so 32 - 26 leaves 6. Therefore, the maximum IP obtained is 2^6 = 64.\nFormula to calculate the maximum IP: 2^Host ID\nNumber of Subnets # The number of subnets is calculated from the Net ID. Because the Net ID of subnet /26 is 26, the Subnet ID is 2. How is that possible? Because Net ID 26 minus 24 because it is Class C becomes 2. The point is if it\u0026rsquo;s Class C subtract 24, Class B subtract 16, Class A subtract 8. God willing, you will understand more in the discussion of the next questions, bro. It is obtained that the number of subnets is 2^2 = 4 subnets.\nFormula to calculate the number of subnets: 2^Subnet ID\nDetermining Network IP and Broadcast # Because the question is IP 192.168.2.172, it cannot possibly be included in the first subnet/network because 72 \u0026gt; 64. So which subnet does that IP go into? We just calculate the multiples of 64. The Network IP is definitely the very first and the broadcast is the very last. Simply put, the next network IP minus 1 is the broadcast.\nNo Network IP Broadcast 1 192.168.2.0 192.168.2.63 2 192.168.2.64 192.168.2.127 3 192.168.2.128 192.168.2.191 4 192.168.2.192 192.168.2.255 So IP 192.168.2.172 is in the 3rd subnet with network IP 192.168.2.128 and its broadcast is 192.168.2.191.\nClient IPs # And this is the easiest one, which is calculating the maximum IP that can be used by the host. The formula is total IP minus 2 because it is used for network ID and broadcast. So the Client IPs per subnet is 64 - 2 = 62.\nTo memorize subnets faster, we can utilize the subnet table below.\nSubnetting Table Subnetting Example Questions # In this discussion, we will learn to work on various subnetting problem variations. The subnetting questions are as follows guys.\nFind the total IPs, netmask, network IP, broadcast, and hosts for each of the IPs below:\n192.168.10.10/25 10.10.10.10/13 20.20.20.20/23 11.12.13.14/20 50.50.50.50./15 Okay, let\u0026rsquo;s discuss it together directly from the first question\u0026hellip;\nIP 192.168.10.10/25 is a Class C # a. Total IPs : 128\nDerived from 2^7 = 128, 7 is the Host ID of subnet /25.\nb. Netmask : 255.255.255.128\nDerived from 256 – Total IPs = 256 – 128 = 128 becoming 255.255.255.128.\nc. Network IP : 192.168.10.0\nThe number of subnets is 2^1, 1 is the Subnet ID. IP 192.168.10.10 goes into the 1st subnet because it is in the range 0-127 so the Network IP is 192.168.10.0.\nd. Broadcast : 192.168.10.127\nThe next Network IP minus 1 =\u0026gt; 192.168.10.128 – 1 = 192.168.10.127.\ne. Hosts : 192.168.10.1 – 192.168.10.126\nThe number of IPs that can be used is 126 derived from 128 – 2 because it is used for Network IP and broadcast.\nIP 10.10.10.10/13 is a Class A # a. Total IPs : 524288\nSubnet 13 is a Class A subnet so to make it easier, change it first to a Class C subnet by adding 8 twice to become 29. The total hosts of subnet 29 is 8. Then 8 x 256 x 256 becomes 524288. Multiplied by 256 twice because previously it was added by 8 twice to become a Class C subnet.\nb. Netmask : 255.248.0.0\nAs usual, 248 is derived from 256 – total IPs. Because Class A is added by 8 twice to become Class C, then the subnet is advanced 2 times from 255.255.255.248 to 255.248.0.0.\nc. Network IP : 10.8.0.0\nAfter being equated to Class C (13+8+8=29), then the number of subnets /29 is 2^5, 5 is the Subnet ID. Total IPs of subnet /29 is 8, so IP 10.10.10.10 enters its Network IP 10.8.0.0.\nd. Broadcast : 10.15.255.255\nThe next Network IP minus 1 =\u0026gt; 10.16.0.0 – 1 = 10.15.255.255.\ne. Hosts : 10.8.0.1 – 10.15.255.254\nThe number of IPs that can be used is 524286 derived from 524288 – 2 because it is used for Network IP and broadcast.\nIP 11.12.13.14/20 is a Class B # a. Total IPs : 4096\nSubnet 20 is a Class B subnet so to make it easier, change it first to a Class C subnet by adding 8 to become 28. The total hosts of subnet 28 is 16. Then 16 x 256 = 4096. Multiplied by 256 because previously it was added by 8 once to become a Class C subnet.\nb. Netmask : 255.255.252.0\n252 is derived from 256 – total IPs. Because Class B is added by 8 to become Class C, then the subnet is advanced 1 time from 255.255.255.252 to 255.255.252.0.\nc. Network IP : 11.12.0.0\nAfter being equated to Class C (20+8=28), then the number of subnets /28 is 2^4, 4 is the Subnet ID. Total IPs of subnet /28 is 16, so IP 11.12.13.14 enters its Network IP 11.12.0.0 because it is still in the range 11.12.0.0 – 11.15.255.255.\nd. Broadcast : 11.12.15.255\nThe next Network IP minus 1 =\u0026gt; 11.16.0.0 – 1 = 11.15.255.255.\ne. Hosts : 11.12.0.1 – 11.12.255.254\nThe number of IPs that can be used is 4096 derived from 4096 – 2 because it is used for Network IP and broadcast.\nSubnetting Challenge ^_^ # Find the total IPs, netmask, network IP, broadcast, and hosts for each of the IPs below:\n172.16.10.111/27 99.99.99.99/28 100.100.100.100/20 111.222.33.44/14 8.8.8.8/32 Broadcast Domain and Collision Domain # A collision domain is an area within a network where data packets can experience collisions because devices send them at the same time. On a Hub, its collision domain becomes 1 (large) and on Switches and Routers, collision domains only occur on each interface.\nA broadcast domain is an area within a network where broadcasts are forwarded in the first place. Hubs and Switches have the same broadcast domains because both pass broadcasts, whereas Routers do not pass broadcasts.\nDifferences between Hub, Bridge, Switch, and Router # A Hub is no more than a physical repeater that works at layer 1 and has no intelligence. The way a hub works is by receiving an electrical signal from one interface and sending it to all interfaces except the source interface, whether needed or not.\nBecause it works at the physical layer with half-duplex (one sends, the others wait), collisions can occur when packets are sent at the same time. The area where collisions can occur is called a collision domain.\nBoth topologies above are single collision domains. The larger a network like the one above, the larger the collision as well, and it degrades network performance (down).\nThen what\u0026rsquo;s the solution? # Replace it with a device that works at layer 2 (data link) and has intelligence, namely a bridge. Bridge characteristics:\nDecides where Ethernet frames are sent by looking at the MAC Address. Forwards Ethernet frames only to the ports that need them. Filters Ethernet frames (discard them). Floods Ethernet frames (send them everywhere). Only has a few ports. Slow. That way the collision domain is divided into 2 in the topology above. But now we don\u0026rsquo;t use hubs or bridges because there are already switches.\nBridges are twins with switches\u0026hellip; but not identical\u0026hellip;\nA switch is a bridge with several advantages.\nHas many ports. Has various ports like FastEthernet and Gigabit. Fast internet switching. Large buffers. How a Switch Works # A switch has a MAC Address table that stores the MAC Addresses of PCs connected to the ports on the switch. For example, when a PC is first connected to a switch, PC A wants to send data to C.\nPC A then creates an Ethernet frame containing the IP address, MAC address, and destination, and sends it to the switch. The switch then broadcasts it to all ports except the source. Up to here, the switch has stored A\u0026rsquo;s MAC address. After being broadcast, PC C will send a reply containing its MAC address and when it passes through the switch, the switch will store C\u0026rsquo;s MAC address. A broadcast is sent when there is a data packet whose destination MAC address does not exist in the switch\u0026rsquo;s MAC address table.\nOkay\u0026hellip; to the point\u0026hellip;\nHubs work at layer 1 – Physical\nBridges and switches work at layer 2 – Data Link\nWhat about routers? It\u0026rsquo;s different again,,, they work at layer 3 – Network\nHubs, Bridges, and Switches pass broadcasts\u0026hellip; Routers don\u0026rsquo;t\u0026hellip;\n","date":"15 May 2026","externalUrl":null,"permalink":"/study/cisco/network-fundamentals/","section":"Study","summary":"A network is a collection of network devices and end devices connected to each other that can share information and resources.","title":"Network Fundamentals","type":"study"},{"content":"","date":"15 May 2026","externalUrl":null,"permalink":"/tags/network-fundamentals/","section":"Tags","summary":"","title":"Network Fundamentals","type":"tags"},{"content":"","date":"9 May 2026","externalUrl":null,"permalink":"/tags/css/","section":"Tags","summary":"","title":"CSS","type":"tags"},{"content":"","date":"9 May 2026","externalUrl":null,"permalink":"/tags/javascript/","section":"Tags","summary":"","title":"JavaScript","type":"tags"},{"content":"","date":"9 May 2026","externalUrl":null,"permalink":"/tags/php/","section":"Tags","summary":"","title":"PHP","type":"tags"},{"content":"Introduction to HTML, CSS, PHP, Javascript, etc.\n","date":"9 May 2026","externalUrl":null,"permalink":"/study/programming/web/practicum-module-1/","section":"Study","summary":"Introduction to HTML, CSS, PHP, Javascript, etc.","title":"Practicum Module I","type":"pemrograman"},{"content":"By understanding the logic and program structure learned in this module, we can write logical, structured, and efficient web code.\n","date":"9 May 2026","externalUrl":null,"permalink":"/study/programming/web/","section":"Study","summary":"By understanding the logic and program structure learned in this module, we can write logical, structured, and efficient web code.","title":"Web","type":"pemrograman"},{"content":"","date":"9 May 2026","externalUrl":null,"permalink":"/categories/web-programming-i/","section":"Categories","summary":"","title":"Web Programming I","type":"categories"},{"content":"CSS is a language used to format the presentation of a document written in a markup language. When discussed in the context of the web, it can be interpreted as a language used to format the layout/design of an HTML page.\nUnderstanding CSS # CSS = Cascading Style Sheets. CSS is a language used to format the presentation of a document written in a markup language. If we speak in the context of the web, it can be loosely translated as: CSS is a language used to format the layout/design of an HTML page.\nSome things that can be done with CSS. # Designing text layout can be done by defining fonts, colors, margins, background, font sizes, and others. Elements such as colors, fonts, sizes, and spacing are also called \u0026ldquo;styles\u0026rdquo;. Cascading Style Sheets can also mean placing different styles on different layers. There are 3 ways to apply CSS to an HTML document, namely: # External Style Sheet\nCSS rules are saved in a file so they are separate from the HTML document. Then add the code to call the CSS file in the HTML document. The CSS file extension is .css The CSS file (for example style.css) contains:\np { text-align: justify; } The HTML document contains:\n\u0026lt;head\u0026gt; \u0026lt;title\u0026gt;External CSS\u0026lt;/title\u0026gt; \u0026lt;link rel=\u0026#34;stylesheet\u0026#34; type=\u0026#34;text/css\u0026#34; href=\u0026#34;style.css\u0026#34; /\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;p\u0026gt;This paragraph is styled externally with CSS\u0026lt;/p\u0026gt; \u0026lt;/body\u0026gt; Internal Style Sheet\nCSS rules are written in the HEAD section of the HTML document using the \u0026lt;style\u0026gt; tag \u0026lt;head\u0026gt; \u0026lt;title\u0026gt;Internal CSS\u0026lt;/title\u0026gt; \u0026lt;style type=\u0026#34;text/css\u0026#34;\u0026gt; P { text-align: justify; } \u0026lt;/style\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;p\u0026gt;This paragraph is styled internally with CSS\u0026lt;/p\u0026gt; \u0026lt;/body\u0026gt; Inline Style Sheet\nCSS rules are written directly on the HTML tag whose appearance is to be styled using the style attribute: \u0026lt;p style=\u0026#34;text-align:justify;\u0026#34;\u0026gt;This paragraph is styled inline with CSS\u0026lt;/p\u0026gt; Units in CSS # Static in \u0026ndash; inches cm \u0026ndash; centimeters mm \u0026ndash; millimeters pt \u0026ndash; points (1 point = 1/72 inch) pc \u0026ndash; picas (1 pica = 12 points) px \u0026ndash; pixels (the smallest picture dot on a monitor screen) Relative % \u0026ndash; percentage em \u0026ndash; or ems (1em = the font size currently in the element) ex \u0026ndash; 1ex = x-height of a font (x-height is usually half the font size) Writing CSS # The CSS writing syntax is as follows: # Explanation:\nCSS rules consist of 2 parts:\nSelector\nUsually in the form of an HTML tag, id, or class. ID uses a # sign in front of the selector name, class uses a dot in front of the selector name.\nexample : h1 { color : blue ; } ➔ HTML tag h1\n#text { color :green; } ➔ id\n.color { color : red; } ➔ class\nDeclaration\nContains css rules consisting of properties and their values separated by a colon. Every css rule must end with a semicolon.\nID and Class Selectors in CSS # For the id selector in css, it is marked with a # (hash) sign, an example of writing is as follows:\n#text { color: blue; font-family: Calibri; } Its usage in HTML script:\n\u0026lt;body\u0026gt; \u0026lt;p id=\u0026#34;text\u0026#34;\u0026gt;TEST\u0026lt;/p\u0026gt; \u0026lt;/body\u0026gt; Things to note when using the id selector:\nAn HTML element can only have 1 id Each page can only have 1 element with that id Can be used as a page marker for links Also used for javascript Should not be used for css (it\u0026rsquo;s better to use class) For the class selector in css, it is marked with a . (dot) sign, an example of writing is as follows:\n.color { background-color: lightgreen; } Its usage in HTML script:\n\u0026lt;body class=\u0026#34;color\u0026#34;\u0026gt;\u0026lt;/body\u0026gt; CSS Properties # There are very many CSS properties, here are a few of them:\nProperty Function Value Example color Sets text color Color name, hex color code (#ffffff:white, #000000:black, #ff0000:red), rgb(0,250,100) color:#ff5590; Background-color Sets background color Color name, hex color code, rgb(200,200,200) background-color:rgb(200,0,55); Background-image Sets background image Image file name background-image:url(banner.jpg); Text-align Sets text alignment Left, right, center, justify text-align:justify; Text-decoration Sets text decoration Underline, none text-decoration:underline; Line-height Sets line height Pixels, percentage, em line-height:120%; Font-family Sets font family \u0026ldquo;times new roman\u0026rdquo;, arial, georgia font-family:arial; Font-size Sets character size Pixels, percentage, em, pt font-size:12pt; Margin Padding Border-width Sets border width Pixels, percentage, thin, thick border-width:1px; Border-style Sets border style Solid, dotted, dashed, double, none border-style:solid; float Sets object to float Left, right, none float:left; clear Clears float Left, right, both, none clear:both; Pseudo-Class # It is a pseudo-class possessed by HTML elements, which allows us to define styles under certain conditions of the element. Pseudo-classes are divided into several types, as follows:\nRelated to links : link\nThe default style of a link (an \u0026lsquo;a\u0026rsquo; tag that has an href) : hover\nThe style when the mouse cursor is over a link / element : active\nThe style when a link is clicked (active state) : visited\nThe style when a link has been visited before (using the same browser) Related to element position (available in css 3) : first-child\nSelects the first element of a parent (its wrapper element) : last-child\nSelects the last element of a parent (its wrapper element) : nth-child(n)\nSelects the nth element of a parent (its wrapper element) n can mean the sequence 1,2,3,….. or pattern (2n),(3n+2), or odd and even, even \u0026amp; odd : first-of-type\nSelects the first element of a certain type / tag : last-of-type\nSelects the last element of a certain type / tag Padding, Margin, and Border # In CSS, there is a term called the \u0026lsquo;Box Model\u0026rsquo;. Look at the following image:\nPadding : Determines the distance of the body component to the border or the size of the inner spacing Border : Is the edge line of the component Margin : Is the size of the outer spacing or the size of the distance after the Border CSS uses this concept in styling HTML tags. In the image, imagine the \u0026lsquo;Content\u0026rsquo; area is, for example, a paragraph. This paragraph object will be considered by CSS to have padding, border, and margin areas around it.\nThe presence of these areas is useful for layout management. For example, if we want to arrange 2 images next to each other so they are not too close, we can increase the width of the margin area so that the distance between the images is wider.\nPadding # Written with CSS padding:5px 5px 5px 5px; the sequence of number values is top, right, bottom and left, or you can use\npadding-left:5px; ➔ this is to style the left padding padding-right:5px; ➔ this is to style the right padding padding-top:5px; ➔ for the top part and padding-bottom:5px; ➔ for the bottom part. Remember you can change the px (pixels) unit to other appropriate units. Border # Written with CSS border:1px dotted #000000; ➔ the order of use is border width, border style and border color, or you can use\nborder-width:1px; ➔ this is the border thickness border-style:dotted; ➔ this is the border style, you can change it to dashed, solid, double, groove, ridge, inset, outset and others border-color:#FFFFFF; ➔ this is the color of the border.. you can change the color code (www.colorschemer.com/online) Margin # Written with CSS margin:5px 5px 5px 5px; ➔ the sequence is top, right, bottom and left, or you can use it like padding above\nmargin-left:5px; margin-right:5px; margin-top:5px; margin-bottom:5px; ","date":"9 May 2026","externalUrl":null,"permalink":"/study/programming/web/practicum-module-1/chapter-09-css/","section":"Study","summary":"CSS is a language used to format the presentation of a document written in a markup language. When discussed in the context of the web, it can be interpreted as a language used to format the layout/design of an HTML page.","title":"Web Programming I #09: CSS","type":"study"},{"content":"","date":"9 May 2026","externalUrl":null,"permalink":"/series/web-programming-i-module/","section":"Series","summary":"","title":"Web Programming I Module","type":"series"},{"content":"Javascript is a scripting language that is popular on the internet and can work in most web browsers such as Internet Explorer (IE), Mozilla Firefox, Netscape, Opera and other web browsers. Javascript code is usually written in the form of a function (Function) which is placed inside the \u0026lt;head\u0026gt; tag which is opened with the \u0026lt;script language=\u0026quot;javascript\u0026quot;\u0026gt; tag.\nThe content of a Javascript script is the same as the concepts learned in the PHP material, namely there are variable declarations, use of operators, branching, looping, and functions. Inside javascript there is also an Alert component which is used to display a message box in the browser when the function is executed. To practice declaring scripts in javascript, copy the following examples into your editor. And run it in a browser, observe the appearance.\nJavascript Exercise : # 1. Writing text = contohjs1.html # \u0026lt;html\u0026gt; \u0026lt;body\u0026gt; \u0026lt;script type=\u0026#34;text/javascript\u0026#34;\u0026gt; document.write(\u0026#34;Hello World!\u0026#34;); \u0026lt;/script\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; 2. Formatting text with HTML tags = contohjs2.html # \u0026lt;html\u0026gt; \u0026lt;body\u0026gt; \u0026lt;script type=\u0026#34;text/javascript\u0026#34;\u0026gt; document.write(\u0026#34;\u0026lt;h1\u0026gt;Hello World!\u0026lt;/h1\u0026gt;\u0026#34;); \u0026lt;/script\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; 3. JavaScript placed in the HEAD section = contohjs3.html # \u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;script type=\u0026#34;text/javascript\u0026#34;\u0026gt; function message() { alert(\u0026#34;This alert box was called with the onload event\u0026#34;) } \u0026lt;/script\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body onload=\u0026#34;message()\u0026#34;\u0026gt;\u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; 4. JavaScript placed in the BODY section = contohjs4.html # \u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;script type=\u0026#34;text/javascript\u0026#34;\u0026gt; document.write(\u0026#34;This message is written when the page loads\u0026#34;) \u0026lt;/script\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; 5. Functions = contohjs5.html # \u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;script type=\u0026#34;text/javascript\u0026#34;\u0026gt; function myfunction() { alert(\u0026#34;HELLO\u0026#34;); } \u0026lt;/script\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;form\u0026gt; \u0026lt;input type=\u0026#34;button\u0026#34; onclick=\u0026#34;myfunction()\u0026#34; value=\u0026#34;Panggil MyFunction\u0026#34; /\u0026gt; \u0026lt;/form\u0026gt; \u0026lt;p\u0026gt;tekan tombol untuk memanggil fungsi myfunction di dalam javascript\u0026lt;/p\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; 6. Functions with arguments = contohjs6.html # \u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;script type=\u0026#34;text/javascript\u0026#34;\u0026gt; function myfunction(txt) { alert(txt); } \u0026lt;/script\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;form\u0026gt; \u0026lt;input type=\u0026#34;button\u0026#34; onclick=\u0026#34;myfunction(\u0026#39;Good Morning!\u0026#39;)\u0026#34; value=\u0026#34;Selamat Pagi\u0026#34; /\u0026gt; \u0026lt;input type=\u0026#34;button\u0026#34; onclick=\u0026#34;myfunction(\u0026#39;Good Evening!\u0026#39;)\u0026#34; value=\u0026#34;Selamat Malam\u0026#34; /\u0026gt; \u0026lt;/form\u0026gt; \u0026lt;p\u0026gt; ketika di tekan salah satu tombol maka fungsi akan di panggil dan pesan akan di tampilkan \u0026lt;/p\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; 7. Displaying full date = contohjs7.html # \u0026lt;html\u0026gt; \u0026lt;body\u0026gt; \u0026lt;script type=\u0026#34;text/javascript\u0026#34;\u0026gt; var d = new Date(); var weekday = new Array( \u0026#34;Sunday\u0026#34;, \u0026#34;Monday\u0026#34;, \u0026#34;Tuesday\u0026#34;, \u0026#34;Wednesday\u0026#34;, \u0026#34;Thursday\u0026#34;, \u0026#34;Friday\u0026#34;, \u0026#34;Saturday\u0026#34;, ); var monthname = new Array( \u0026#34;Jan\u0026#34;, \u0026#34;Feb\u0026#34;, \u0026#34;Mar\u0026#34;, \u0026#34;Apr\u0026#34;, \u0026#34;May\u0026#34;, \u0026#34;Jun\u0026#34;, \u0026#34;Jul\u0026#34;, \u0026#34;Aug\u0026#34;, \u0026#34;Sep\u0026#34;, \u0026#34;Oct\u0026#34;, \u0026#34;Nov\u0026#34;, \u0026#34;Dec\u0026#34;, ); document.write(weekday[d.getDay()] + \u0026#34; \u0026#34;); document.write(d.getDate() + \u0026#34;. \u0026#34;); document.write(monthname[d.getMonth()] + \u0026#34; \u0026#34;); document.write(d.getFullYear()); \u0026lt;/script\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; ","date":"8 May 2026","externalUrl":null,"permalink":"/study/programming/web/practicum-module-1/chapter-08-javascript/","section":"Study","summary":"Discusses the basic concepts and writing simple scripts using Javascript, discusses step-by-step how to create and save Javascript files.","title":"Web Programming I #08: JavaScript","type":"study"},{"content":"","date":"7 May 2026","externalUrl":null,"permalink":"/tags/looping/","section":"Tags","summary":"","title":"Looping","type":"tags"},{"content":"Discusses the basic concept of loop structure, also known as looping, and practicing how to use for, while, do while, and Foreach loops.\nLooping (sometimes also called iteration) is a program instruction that commands a task to be repeated based on certain conditions.\n1. FOR Loop # It is a very simple form of looping; by using this function, you can repeat data until it exceeds the desired limit.\nfor (init counter; test counter; increment counter) { code to be executed; } 2. WHILE Loop # In this form of looping, the statement will continue to be executed if it has not yet reached the loop limit.\nwhile (condition is true) { code to be executed; } 3. DO – WHILE Loop # The statement will be executed first before checking the loop limit. If it has not yet reached the loop limit, the repetition will continue.\ndo { code to be executed; } while (condition is true); 4. foreach Statement - # A loop executed for a block of code for each element present in an array.\nforeach ($array as $value) { code to be executed; } Example:\n1. FOR Loop = contohfor.php # \u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt; Perulangan FOR \u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; nilai awal angka = 1 \u0026lt;br\u0026gt;\u0026lt;br\u0026gt; \u0026lt;?php for ($angka = 1; $angka \u0026lt;= 10 ; $angka++) { echo \u0026#34;Angka :\u0026#34;.$angka.\u0026#34;\u0026lt;br\u0026gt;\u0026#34;; } ?\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; 2. FOR Loop in FORM = contohfor_form.php # \u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt; Perulangan FOR \u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; Penggunaan pada form : \u0026lt;br\u0026gt; \u0026lt;?php echo \u0026#34;\u0026lt;form name = form1 method=post\u0026gt;\u0026#34;; echo \u0026#34;Tanggal\u0026#34; ; echo \u0026#34;\u0026lt;select name = tanggal\u0026gt;\u0026#34;; for ($tanggal = 1 ;$tanggal \u0026lt;=31 ; $tanggal++) { echo \u0026#34;\u0026lt;option value=\u0026#34;.$tanggal.\u0026#34;\u0026gt;\u0026#34;.$tanggal.\u0026#34;\u0026lt;/option\u0026gt;\u0026#34;; } echo \u0026#34;\u0026lt;/select\u0026gt;\u0026#34;; echo \u0026#34;\u0026lt;/form\u0026gt;\u0026#34;; ?\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; 3. WHILE Loop = contohwhile.php # \u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt; Penggunaan WHILE \u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; Menggunakan WHILE \u0026lt;br\u0026gt; \u0026lt;?php $jumlah=1; while ($jumlah \u0026lt;=5) { echo $jumlah++; echo \u0026#34;\u0026lt;br\u0026gt;\u0026#34;; } ?\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; 4. DO - WHILE Loop = contohdowhile.php # \u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt; Penggunaan DO WHILE \u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; Menggunakan DO WHILE \u0026lt;br\u0026gt; \u0026lt;?php $jumlah=10; do { echo $jumlah++; echo \u0026#34;\u0026lt;br\u0026gt;\u0026#34;; } while ($jumlah \u0026lt;=1) ?\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; 5. Foreach Loop = contoforeach.php # \u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt; Penggunaan Foreach \u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; Menggunakan Foreach \u0026lt;br\u0026gt; \u0026lt;?php $warna = array(\u0026#34;merah\u0026#34;,\u0026#34;biru\u0026#34;,\u0026#34;hijau\u0026#34;,\u0026#34;kuning\u0026#34;); foreach ($warna as $nilai) { echo \u0026#34;$nilai \u0026lt;br\u0026gt;\u0026#34;; } ?\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; ","date":"7 May 2026","externalUrl":null,"permalink":"/study/programming/web/practicum-module-1/chapter-07-looping/","section":"Study","summary":"Discusses the basic concept of loop structure, also known as looping, and practicing how to use for, while, do while, and Foreach loops.","title":"Web Programming I #07: Looping","type":"study"},{"content":"","date":"6 May 2026","externalUrl":null,"permalink":"/tags/branching/","section":"Tags","summary":"","title":"Branching","type":"tags"},{"content":"Discusses the concept of branching in web programming languages\nSelection Statements # Most programming languages contain selection statements. Basically, a selection statement is a mechanism that explains whether a statement will be executed or not, depending on a formulated condition. In the PHP programming language, selection statements are applied using the IF and Switch Case statements.\n1. IF Statement # a. Single IF # The IF statement is an important statement that is definitely present in all programming languages. This statement is useful for creating branches based on certain conditions that must be met.\nThe general form of the IF Statement is as follows :\nif (kondisi) { statement; } else { statement; } The working principle is that the command above will be executed if the condition is TRUE or correct, whereas if the condition is wrong / FALSE then the statement above will not be executed.\nb. IF and Else Statements # The ELSE statement is a part of the if statement. Else is used to provide an alternative command if the condition is wrong / FALSE.\nGeneral form :\nif (kondisi) { statement_1; } else { statement_2; } Example: contohpercabanganifelse.php\n\u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt; Contoh IF ELSE\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;?php $nilai = 40; if ($nilai \u0026gt;= 60) { echo \u0026#34;Nilai Anda = $nilai. Selamat, Anda Lulus\u0026#34;; } else { echo \u0026#34;Nilai Anda = $nilai. Sorry, Anda Tidak Lulus\u0026#34;; } ?\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Result:\nc. Compound IF Statements # If the else statement provides a second alternative choice, then the ElseIf statement can be used to formulate multiple alternative choices (more than two choices).\nGeneral form :\nif ( kondisi_1 ) { Statement_1; } elseif ( kondis_2) { Statement_2; } elseif ( kondisi_3) { Statement_3; } else { Statement_n; } Example : contohpercabanganifmajemuk.php\n\u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt; Contoh IF Majemuk\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;?php $nilai = 90; if (($nilai \u0026gt;= 0)\u0026amp;\u0026amp;($nilai \u0026lt; 50)) { $grade =\u0026#34;E\u0026#34;;} elseif(($nilai \u0026gt;= 50)\u0026amp;\u0026amp;($nilai \u0026lt; 60)) { $grade =\u0026#34;D\u0026#34;;} elseif(($nilai \u0026gt;= 60)\u0026amp;\u0026amp;($nilai \u0026lt; 75)) { $grade =\u0026#34;C\u0026#34;;} elseif(($nilai \u0026gt;= 75)\u0026amp;\u0026amp;($nilai \u0026lt; 85)) { $grade =\u0026#34;B\u0026#34;;} elseif(($nilai \u0026gt;= 85)\u0026amp;\u0026amp;($nilai \u0026lt; 100)) { $grade =\u0026#34;A\u0026#34;;} else { $grade = \u0026#34;Nilai anda di luar jangkauan\u0026#34;; } echo \u0026#34;Nilai Anda : $nilai, dikonversi menjadi $grade\u0026#34;; ?\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Result:\nSwitch Statement # The next program flow control statement is switch. One of the advantages of switch is that you can immediately evaluate one statement and command actions in larger numbers.\nGeneral form :\nSwitch ( nilai_ekspresi ){ Case nilai_1 : statement_1; break; Case nilai_2 : statement_2; brea; Default: statement_n;} Example:\n\u0026lt;?php $angka = 6; switch ($angka){ case 0: $terbilang = \u0026#34;NOL\u0026#34;; break; case 1: $terbilang = \u0026#34;SATU\u0026#34;; break; case 2: $terbilang = \u0026#34;DUA\u0026#34;; break; case 3: $terbilang = \u0026#34;TIGA\u0026#34;; break; case 4: $terbilang = \u0026#34;EMPAT\u0026#34;; break; case 5: $terbilang = \u0026#34;LIMA\u0026#34;; break; case 6: $terbilang = \u0026#34;ENAM\u0026#34;; break; case 7: $terbilang = \u0026#34;TUJUH\u0026#34;; break; case 8: $terbilang = \u0026#34;DELAPAN\u0026#34;; break; case 9: $terbilang = \u0026#34;SEMBILAN\u0026#34;; break; default: $terbilang = \u0026#34;Nilai diluar jangkuan!!\u0026#34;; } echo \u0026#34;Bentuk terbilang dari angka $angka adalah $terbilang\u0026#34;; ?\u0026gt; Result:\n","date":"6 May 2026","externalUrl":null,"permalink":"/study/programming/web/practicum-module-1/chapter-06-branching/","section":"Study","summary":"Discusses the concept of branching in web programming languages","title":"Web Programming I #06: Branching","type":"study"},{"content":"","date":"5 May 2026","externalUrl":null,"permalink":"/tags/form/","section":"Tags","summary":"","title":"Form","type":"tags"},{"content":" Form Components # A dynamic website often requires interaction between the client browser and the server, which can be in the form of text input, numbers, or file uploads to be processed by the server. To accommodate data sent by a client browser, an HTML FORM is needed. Forms are used for membership registration, entering credit card codes, user login, shopping transactions, and file uploads.\nIn an HTML FORM there are several components that can be used, including:\na. Form # \u0026lt;FORM ACTION=action METHOD=method ENCTYPE=media type\u0026gt; \u0026lt;/FORM\u0026gt;\nb. Text Box # Text box: for inputting string data or numbers.\n\u0026lt;INPUT TYPE=TEXT NAME=”nama_variabel” VALUE=”value”\u0026gt;\nc. Text Area # Text area: for inputting strings or numbers consisting of multiple lines.\n\u0026lt;textarea rows=” ” cols=” ” name=”nama_variabel”\u0026gt; \u0026lt;/textarea\u0026gt;\nd. Radio Button # Laki-laki\nPerempuan\nRadio button: to choose one statement from several statements provided.\n\u0026lt;input type=”radio” name=”nama_variabel” value=” ”\u0026gt;Isi_Radio_Button\ne. Combo Box # Combo box to display a list of data.\n\u0026lt;select name=\u0026#34;”nama_variabel”\u0026#34; value=\u0026#34;”\u0026#34; “\u0026gt; \u0026lt;option\u0026gt;Combo1\u0026lt;/option\u0026gt; \u0026lt;option\u0026gt;Combo2\u0026lt;/option\u0026gt; \u0026lt;/select\u0026gt; f. Check Box # Check box to choose one or more statements from several statements provided.\n\u0026lt;input type=”checkbox” name=”nama_variabel” value=”ON” checked\u0026gt;\ng. Submit # Submit to send all variable data in the existing form components.\n\u0026lt;input type=”submit” name=”submit” value=”submit”\u0026gt;\nh. Reset # Reset to cancel all inputs that have been written.\n\u0026lt;input type=”reset” name=”reset” value=”reset”\u0026gt;\nProcessing Data From Forms # Forms in HTML are known by the tag \u0026lt;FORM\u0026gt; and closed with the tag \u0026lt;/FORM\u0026gt;. Inside the opening tag \u0026lt;FORM\u0026gt; it is followed by action and method attributes. Action describes the page used to process input, while method is used to manage how content is parsed.\nThe web receives input from a user or visitor using GET and POST methods. GET will send data together with the URL, while POST will send it separately. The user sends input data by filling in text or choices on the HTML form attributes.\nForm Processing using GET Method. File metodeget.php\n\u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt;FORM METODE GET\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;form action=\u0026#34;metodegetproses.php\u0026#34; method=\u0026#34;get\u0026#34;\u0026gt; Masukkan nama : \u0026lt;input type=\u0026#34;text\u0026#34; name=\u0026#34;nama\u0026#34; size=\u0026#34;25\u0026#34;\u0026gt; \u0026lt;input type=\u0026#34;submit\u0026#34; value=\u0026#34;Proses\u0026#34;\u0026gt; \u0026lt;/form\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Result: Create a file to process the variable given by the metodeget.php file, name the file: metodegetproses.php\n\u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt;Method Get Proses\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; Data Nama Yang Diinputkan Adalah : \u0026lt;?php echo $_GET[\u0026#34;nama\u0026#34;]; ?\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Result: Form Processing using method : POST\nTo create an input, and name the file: metodepost.php\n\u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt;FORM METODE POST\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;form action=\u0026#34;metodepostproses.php\u0026#34; method=\u0026#34;post\u0026#34;\u0026gt; Masukkan nama : \u0026lt;input type=\u0026#34;text\u0026#34; name=\u0026#34;nama\u0026#34; size=\u0026#34;25\u0026#34;\u0026gt; \u0026lt;input type=\u0026#34;submit\u0026#34; value=\u0026#34;Proses\u0026#34;\u0026gt; \u0026lt;/form\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Result: Create a file to process the variable given by the metodepost.php file, name the file: metodepostproses.php\n\u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt;Method Post Proses\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; Data Nama Yang Diinputkan Adalah : \u0026lt;?php echo $_POST[\u0026#34;nama\u0026#34;]; ?\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Result: ","date":"5 May 2026","externalUrl":null,"permalink":"/study/programming/web/practicum-module-1/chapter-05-form-introduction/","section":"Study","summary":"Discusses form components, data processing from forms available in web programming languages, practicing the use of HTTP SERVER with GET and POST methods.","title":"Web Programming I #05: Introduction to Forms","type":"study"},{"content":"","date":"4 May 2026","externalUrl":null,"permalink":"/tags/operator/","section":"Tags","summary":"","title":"Operator","type":"tags"},{"content":" Understanding Operators # A programming language is also required to be able to process operand values (variables or constants being operated on) using operators, such as adding, dividing, and so on.\nAn operator is a symbol that functions to perform a specific action / operation on an operand value, which generally produces a new value from the result of the operation. While an operand is a value involved in the operation by the operator.\nTypes of Operators # Arithmetic Operators These operators are used to perform mathematical calculations, as follows: Operator Name Example Result + Addition 1+4 5 - Subtraction 1-4 -3 / Division 1/4 0.25 * Multiplication 1*4 4 % Modulus 5%2 1 ++ Increment X=5; X++ X=6 - Decrement X=5; X- X=4 Script example:\nOperatoraritmatika.php\n\u0026lt;?php $bil1=200; $bil2=40; $hasil = $bil1+$bil2; echo \u0026#34;$bil1 + $bil2 = $hasil\u0026lt;br\u0026gt;\u0026#34;; $hasil = $bil1-$bil2; echo \u0026#34;$bil1 - $bil2 = $hasil\u0026lt;br\u0026gt;\u0026#34;; $hasil = $bil1*$bil2; echo \u0026#34;$bil1 * $bil2 = $hasil\u0026lt;br\u0026gt;\u0026#34;; $hasil = $bil1/$bil2; echo \u0026#34;$bil1 / $bil2 = $hasil\u0026lt;br\u0026gt;\u0026#34;; ?\u0026gt; Result:\nComparison Operators Comparison operators are used to produce 2 values whose final result is a Boolean value of true and false. These operators are very useful in programming because they can determine the direction of programming. Comparison operators in PHP are: Operator Name Example Result == Equal to 6 == 6 False != Not equal to 3!=3 False \u0026gt; Greater than 1\u0026gt;5 False \u0026gt;= Greater than or equal to 3\u0026gt;=4 False \u0026lt; Less than 2\u0026lt;4 True \u0026lt;= Less than or equal to 5\u0026lt;=4 False Opertorperbandingan.php\n\u0026lt;?php $bil1 = 200; $bil2 = 40; $teks1 = \u0026#34;PHP\u0026#34;; $teks2 = \u0026#34;php\u0026#34;; $hasil = $bil1 == $bil2; echo \u0026#34;$bil1 == $bil2 = $hasil\u0026lt;br\u0026gt;\u0026#34;; $hasil = $bil1 != $bil2; echo \u0026#34;$bil1 != $bil2 = $hasil\u0026lt;br\u0026gt;\u0026#34;; $hasil = $bil1 \u0026gt;= $bil2; echo \u0026#34;$bil1 \u0026gt;= $bil2 = $hasil\u0026lt;br\u0026gt;\u0026#34;; $hasil = $teks1 == $teks2; echo \u0026#34;$teks1 == $teks2 = $hasil\u0026lt;br\u0026gt;\u0026#34;; $hasil = $teks1 != $teks2; echo \u0026#34;$teks1 != $teks2 = $hasil\u0026lt;br\u0026gt;\u0026#34;; ?\u0026gt; Result: Logical Operators Operators for composing logical expression statements. The result of this operation will get a value of one if true and zero if false. Operator Function AND or \u0026amp;\u0026amp; AND logical operation OR or || OR logical operation XOR Exclusive OR logical operation ! Negation/NOT Operatorlogika.php\n\u0026lt;?php $bil1 = 100; $bil2 = 20; $teks1 = \u0026#34;PHP\u0026#34;; $teks2 = \u0026#34;php\u0026#34;; $hasil = ($bil1 \u0026lt;\u0026gt; $bil2) or ($teks1 == $teks2); echo \u0026#34;$bil1 \u0026lt;\u0026gt; $bil2 or $teks1==$teks2 adalah $hasil\u0026lt;br\u0026gt;\u0026#34;; $hasil = !($teks1 == $teks2); echo \u0026#34;!($teks1==$teks2) adalah $hasil\u0026#34;; ?\u0026gt; Result:\nString Operators In PHP there are also string operators, which are used for text concatenation operations. The symbol used is a dot (.) character. Operatorstring.php\n\u0026lt;?php $teks1 = \u0026#34;Aku Sedang belajar\u0026#34;; $teks2 = \u0026#34;Pemrograman Web\u0026#34;; $teks3 = \u0026#34;Menggunakan bahasa script PHP\u0026#34;; $hasil = $teks1 . $teks2 . $teks3; echo \u0026#34;$hasil \u0026#34;; ?\u0026gt; Result:\n","date":"4 May 2026","externalUrl":null,"permalink":"/study/programming/web/practicum-module-1/chapter-04-operator/","section":"Study","summary":"Discusses the use of various types of operators available in web programming languages and how to implement each of them","title":"Web Programming I #04: Operator","type":"study"},{"content":"","date":"3 May 2026","externalUrl":null,"permalink":"/tags/comments/","section":"Tags","summary":"","title":"Comments","type":"tags"},{"content":"","date":"3 May 2026","externalUrl":null,"permalink":"/tags/constants/","section":"Tags","summary":"","title":"Constants","type":"tags"},{"content":"","date":"3 May 2026","externalUrl":null,"permalink":"/tags/data-types/","section":"Tags","summary":"","title":"Data Types","type":"tags"},{"content":"","date":"3 May 2026","externalUrl":null,"permalink":"/tags/variables/","section":"Tags","summary":"","title":"Variables","type":"tags"},{"content":"Able to understand PHP language architecture, Variable Declaration, Constants, Data Types and comments in PHP\nUnderstanding PHP Hypertext Preprocessor (PHP) # PHP or PHP Hypertext Preprocessor is a server-side based scripting language capable of parsing php code from web code with a .php extension, resulting in a dynamic website display on the client side (browser). With PHP, you can make HTML pages more powerful and can be used as complete applications, for example for various cloud computing applications.\nPHP is a scripting language that is very well suited for web development and can be embedded into HTML. PHP was originally developed by a programmer named Rasmus Lerdorf in 1995, but since then it has always been developed by an independent group called the PHP Group and this Group also defines the de facto standard for PHP because there is no formal specification. Currently its development is led by the deadly duo, Andi Gutmans and Zeev Suraski.\nWhat causes PHP to be widely used by many people is because PHP is free software (Open Source) released under the PHP license. This means that using this programming language is free, liberated, and open.\nInserting PHP Code # Unlike regular HTML pages, PHP code will not be given by the server directly when there is a request from the client (browser), but through processing from the server side, which is why PHP is called a server-side script.\nPHP code is inserted into HTML code by slipping it inside the HTML code. To distinguish PHP code from HTML code, a opening tag is given in front of the PHP code and a closing tag is given at the end of the PHP code.\nWith PHP code, a web page can do many dynamic things, such as accessing a database, creating images, reading and writing files, and so on. The final result of PHP code processing will be returned again in the form of HTML code to be displayed in the browser. There are 4 types of tags that can be used to insert PHP code.\nTypes of PHP Tags\nTag Type Opening Tag Closing Tag Standard Tag \u0026lt;?php ?\u0026gt; Short Tag \u0026lt;? ?\u0026gt; ASP Tag \u0026lt;% %\u0026gt; Script Tag \u0026lt;script language=\u0026quot;php\u0026quot;\u0026gt; \u0026lt;/script\u0026gt; What can be directly applied on all platforms are standard tags and script tags. In this module the programming language used is PHP Version 5 so the type of tag that must be used is the standard tag. For other tags need setting on the server by the server administrator.\nPHP Script Example # Open a new file in Notepad. Then type the script as below:\n\u0026lt;?php echo \u0026#34;Ini adalah Script PHP Pertama Saya \u0026lt;br\u0026gt;\u0026#34;; echo \u0026#34;Saya sedang belajar PHP\u0026#34;; ?\u0026gt; Save the file with the name contoh04.php\nTo see the results, open the browser and go into localhost and the storage folder. Select the contoh04.php file and the result will appear:\nContoh04.php is an example of a standalone php script without any additional scripts. The echo command is a command used to print. PHP scripts can also be combined within HTML tags.\nDifferences between HTML and PHP # HTML can be accessed directly without going through server access when there is a request from the client (browser) PHP must be accessed through the server when there is a request from the client (browser) From the 2 pictures above can you see the difference, without looking at the file name extension?\nYes, for files with the html extension, we can see the results directly in the browser, without having to run server access. However, for files with the php extension, we have to run them through server access, namely localhost, and the file storage must also be saved in htdocs located in the xampp folder.\nVariables # A variable is a term that states a place that accommodates certain values where the value in it can be changed. Variables are important because without variables it is impossible to store certain values to be processed.\nVariables are characterized by the presence of a dollar sign ($) which can then be followed by numbers, letters, and underscores. However, variables cannot contain spaces. The following is an example of defining a variable. To define a variable, you only need to write it down, then the variable is automatically recognized by PHP.\n$nama\n$no_telp\n$_pekerjaan\nA variable is a place to store data in a certain type, a variable can be null (has no content yet), a number, string, object, array, Boolean, and its contents can be changed later.\nContoh05.php\n\u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt; Contoh Script PHP\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;?php $nim = \u0026#34;12170829\u0026#34;; $nama = \u0026#34;Bima Bintang Galaxy\u0026#34;; $kelas = \u0026#34;12.1A.01\u0026#34;; echo \u0026#34;Nim Saya = $nim\u0026lt;br\u0026gt;\u0026#34;; echo \u0026#34;Nama Saya = $nama\u0026lt;br\u0026gt;\u0026#34;; echo \u0026#34;Kelas Saya = $kelas\u0026lt;br\u0026gt;\u0026#34;; ?\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Result:\nData Types # Unlike other programming languages, variables in PHP are more flexible. We don\u0026rsquo;t need to define the type when defining it for the first time. There are 6 basic Data types that can be accommodated in PHP, as seen in the table.\nTypes of Data Types # Type Example Explanation Integer 134 All non-fractional numbers Double 5.1234 Fractional values String \u0026ldquo;asep\u0026rdquo; A collection of characters Boolean False One of the values True or False Object An instance of a class Array An array To find out the data type of a variable, we can use the gettype command, for example:\nprint gettype ($nama_variabel);\nYou can also change certain variable types with the command:\n(variable_type) $variable_name;\nFor example, to convert a variable into a string, we can use the command:\n$var_string = (string) $angka;\nContoh06.php\n\u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt;Contoh 06\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;?php $jumlah=5; $harga=20000; $total=$harga*$jumlah; echo \u0026#34;Jumlah Beli : $jumlah\u0026lt;br\u0026gt;\u0026#34;; echo \u0026#34;Harga Barang : $harga\u0026lt;br\u0026gt;\u0026#34;; echo \u0026#34;Total Bayar : $total\u0026lt;br\u0026gt;\u0026#34;; ?\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Result:\nConstants # In addition to variables, a program generally also allows for constants. Constants function the same as variables but their values are static/constant and cannot change. The way to define a constant is:\nDefine (\u0026quot;CONSTANT_NAME\u0026quot;, constant_value);\nOnce defined, we can use it immediately by typing the name of the constant. Constant names are generally typed using uppercase letters.\nComments # Programming is the activity of writing a language understood by machines. Although the language used is a high-level language, of course it is still not as easy to understand as plain language. For this reason we can use comments. The following is an example of making comments in php.\n//komentar satu baris #ini juga komentar satu baris /*komentar Banyak baris Kode di sini tidak Dieksekus oleh parser */ Example script for constants \u0026amp; comments.\nContoh07.php\n\u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt; Menghitung Luas Lingkaran\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;?php //konstanta untuk nilai judul define(\u0026#34;Judul\u0026#34;,\u0026#34;Hitung Luas Lingkaran\u0026#34;); //konstanta untuk nilai phi define(\u0026#34;PHI\u0026#34;,3.14); echo Judul; $r = 10; echo \u0026#34;\u0026lt;br\u0026gt; Jari-jari : $r \u0026lt;br\u0026gt;\u0026#34;; $luas = PHI*$r*$r; echo \u0026#34;Luas Lingkaran = $luas\u0026#34;; ?\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Result:\n","date":"3 May 2026","externalUrl":null,"permalink":"/study/programming/web/practicum-module-1/chapter-03-introduction-to-php/","section":"Study","summary":"Able to understand PHP language architecture, Variable Declaration, Constants, Data Types and comments in PHP","title":"Web Programming I #03: Introduction to PHP","type":"study"},{"content":"","date":"2 May 2026","externalUrl":null,"permalink":"/tags/coding/","section":"Tags","summary":"","title":"Coding","type":"tags"},{"content":"","date":"2 May 2026","externalUrl":null,"permalink":"/tags/learn/","section":"Tags","summary":"","title":"Learn","type":"tags"},{"content":"","date":"2 May 2026","externalUrl":null,"permalink":"/tags/programming/","section":"Tags","summary":"","title":"Programming","type":"tags"},{"content":"","date":"2 May 2026","externalUrl":null,"permalink":"/tags/web/","section":"Tags","summary":"","title":"Web","type":"tags"},{"content":"Able to recognize HTML scripts, use various tags and declare tables and their attributes, able to write scripts in HTML\nUnderstanding HTML (Hypertext Markup Language) # Hypertext Markup Language (HTML) is a language for displaying content on the web. HTML itself is a free programming language, meaning it is not owned by anyone, its development is carried out by many people in many countries and can be said to be a language that is developed jointly globally.\nAn HTML document itself is a text document that can be edited by any text editor. An HTML document has several elements surrounded by text tags that start with the \u0026lt; symbol and end with a \u0026gt; symbol.\nThe text editor used by the author is Notepad and XAMPP Version 1.8.1 for its web server with the PHP Version 5 programming language.\nBasic Structure of HTML # HTML elements start with a start tag, followed by the element content and an end tag. End tags include the / symbol followed by the element type, for example \u0026lt;/HEAD\u0026gt;. An HTML element can be nested inside other elements. A standard HTML document looks like this:\n\u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html lang=\u0026#34;en\u0026#34;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026#34;UTF-8\u0026#34; /\u0026gt; \u0026lt;meta name=\u0026#34;viewport\u0026#34; content=\u0026#34;width=device-width, initial-scale=1.0\u0026#34; /\u0026gt; \u0026lt;title\u0026gt;Web Page Title\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt;\u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Description :\nHTML tags by default start with \u0026lt;HTML\u0026gt; and end with \u0026lt;/HTML\u0026gt;.\nThe \u0026lt;HEAD\u0026gt;… \u0026lt;/HEAD\u0026gt; tag is the head tag before the body. This head tag will first be executed before the body tag. Inside this tag contains the \u0026lt;META\u0026gt; and \u0026lt;TITLE\u0026gt; tags. The \u0026lt;META\u0026gt; tag is information or a header of an HTML document. The attributes owned by this tag include:\na. HTTP_EQUIV, this attribute serves to display HTML documents automatically within a certain period of time.\nb. CONTENT, this attribute contains information about the contents of the HTML document to be called.\nc. NAME, this attribute is an identification of the meta itself. The \u0026lt;META\u0026gt; tag in an HTML document may or may not exist.\nThe \u0026lt;TITLE\u0026gt; … \u0026lt;/TITLE\u0026gt; tag is the title tag. Preferably every web page has a title, and the title is written in \u0026lt;TITLE\u0026gt; … \u0026lt;/TITLE\u0026gt;. This title will appear in the titlebar of the browser.\nThe \u0026lt;BODY\u0026gt; … \u0026lt;/BODY\u0026gt; tag is a tag containing the content of a web page. Example of HTML script usage Create a new sheet in Notepad, then type the command below. Save it with the name Contoh01.php\n\u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html lang=\u0026#34;en\u0026#34;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026#34;UTF-8\u0026#34; /\u0026gt; \u0026lt;meta name=\u0026#34;viewport\u0026#34; content=\u0026#34;width=device-width, initial-scale=1.0\u0026#34; /\u0026gt; \u0026lt;!-- Web Title --\u0026gt; \u0026lt;title\u0026gt;Example 01\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;!-- Commands created between --\u0026gt; \u0026lt;!-- \u0026lt;body\u0026gt; and \u0026lt;/body\u0026gt; --\u0026gt; Hello \u0026lt;br /\u0026gt; this is my first HTML script \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Then save the file above in the folder c:\\XAMPP\\htdocs\\ create a new folder to save the file inside the htdocs folder. Save the file with the name contoh01.html. Naming the file when saving must end with the extension \u0026ldquo;.html\u0026rdquo;\nHow to save with Notepad, pay attention to the following method:\nTo see the results of the file above, you can use the Mozilla browser, Google Chrome, Internet Explorer or other types of browsers. Type in the address bar \u0026ldquo;Localhost\\Storage Folder Name\u0026quot;, then select the file contoh01.html\nBefore typing the file address, make sure you have run the Apache Module on the Xampp Control Panel.\nSee the picture below:\nCodes in HTML are usually called TAGS. Tags are things used to mark elements in an HTML document. Tags in HTML consist of a less than sign ( \u0026lt; ), a greater than sign ( \u0026gt; ), and a slash ( / ). Usually, Tags are written in pairs, for example \u0026lt;h1\u0026gt; and \u0026lt;/h1\u0026gt;. Tags that do not use a slash ( / ) are the opening or starting tags of the element. While Tags containing a slash ( / ) are the closing elements or the end of the elements. However, there are also Tags that are not paired in their usage, including:\nTag to change paragraph, namely \u0026lt;p\u0026gt; Tag to change lines or line break, namely \u0026lt;br\u0026gt; Tag for horizontal line, namely \u0026lt;hr\u0026gt; Tag list item, namely \u0026lt;li\u0026gt; For the unpaired tags above, they should still be written using their pair. This is done to anticipate future HTML standard recommendations. Writing for all Tags is free, meaning we can use uppercase, lowercase, even mixed (not case sensitive). But to anticipate the standard writing of Tags, we should use all lowercase letters.\nTypes of tags in HTML :\nFormatting Tags # Start Tag Use \u0026lt;b\u0026gt; Definition of bolded text \u0026lt;big\u0026gt; Definition of large sized text \u0026lt;em\u0026gt; Definition of emphasized text \u0026lt;i\u0026gt; Definition of italicized text ( italic ) \u0026lt;small\u0026gt; Definition of small sized text \u0026lt;u\u0026gt; Definition of underlined text \u0026lt;sub\u0026gt; Definition of subscripted text \u0026lt;sup\u0026gt; Definition of superscripted text \u0026lt;ins\u0026gt; Definition of inserted text \u0026lt;del\u0026gt; Definition of deleted text Computer Output Tags # Start Tag Use \u0026lt;code\u0026gt; Definition of computer code text \u0026lt;kbd\u0026gt; Definition of keyboard text \u0026lt;samp\u0026gt; Definition of sample computer code \u0026lt;tt\u0026gt; Definition of teletype text \u0026lt;var\u0026gt; Definition of a variable \u0026lt;pre\u0026gt; Definition of preformatted text Citation, Quotation, Definition Tags # Start Tag Use \u0026lt;abbr\u0026gt; Definition of an abbreviation \u0026lt;acronym\u0026gt; Definition of an acronym \u0026lt;address\u0026gt; Definition of address writing \u0026lt;bdo\u0026gt; Definition of writing direction \u0026lt;blockquote\u0026gt; Definition of long quotation \u0026lt;q\u0026gt; Definition of short quotation \u0026lt;cite\u0026gt; Definition of a citation \u0026lt;dfn\u0026gt; Definition of a term Link Tags # Start Tag Use \u0026lt;a\u0026gt; Defines a link Image Tags # Start Tag Use \u0026lt;img\u0026gt; Definition of an image in a document \u0026lt;map\u0026gt; Definition of an image map \u0026lt;area\u0026gt; Definition of an area in an image map List Tags # Start Tag Use \u0026lt;ol\u0026gt; Defines an ordered list \u0026lt;ul\u0026gt; Defines an unordered list \u0026lt;li\u0026gt; Defines an item in a list \u0026lt;dl\u0026gt; Defines a definition list \u0026lt;dt\u0026gt; Defines a term in a definition list Example script of using HTML Tags\nCreate a new sheet in Notepad, then type the command below. Save it with the name Contoh02.html\n\u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html lang=\u0026#34;en\u0026#34;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026#34;UTF-8\u0026#34; /\u0026gt; \u0026lt;meta name=\u0026#34;viewport\u0026#34; content=\u0026#34;width=device-width, initial-scale=1.0\u0026#34; /\u0026gt; \u0026lt;title\u0026gt;Contoh 02\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body bgcolor=\u0026#34;#00CCFF\u0026#34; text=\u0026#34;#FF0000\u0026#34;\u0026gt; \u0026lt;p\u0026gt; ini adaalah contoh pengunaan formating TAG dalam HTML \u0026lt;br /\u0026gt; masing-masing TAG memiliki atribut masing-masing\u0026lt;br /\u0026gt; \u0026lt;/p\u0026gt; \u0026lt;font color=\u0026#34;#000000\u0026#34; \u0026gt;Ini juga termasuk contoh penggunaan formating TAG\u0026lt;br /\u0026gt;\u0026lt;/font\u0026gt; \u0026lt;h1\u0026gt; \u0026lt;marquee width=\u0026#34;50%\u0026#34; bgcolor=\u0026#34;#000099\u0026#34;\u0026gt; Ini uga salah satu penggunaan Tag \u0026lt;/marquee\u0026gt; \u0026lt;/h1\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Result Display\nCreating Tables Using HTML # Tables play an important role in Web pages, besides displaying text or images in rows and columns format, you can also use tables to help layout the page view\nA table is a box consisting of rows and columns. To create a table, you use the \u0026lt;table\u0026gt; tag and close it with the \u0026lt;/table\u0026gt; tag. You can also add other attributes in the opening \u0026lt;table\u0026gt; tag. For example, specifying color, border, and so on.\nInside the \u0026lt;table\u0026gt; tag, there are several other tags that need to be understood, namely:\n\u0026lt;tr\u0026gt; tag\nMeaning tag to write a regular row in the table. TR stands for Table Row.\n\u0026lt;td\u0026gt; tag\nMeaning tag to write a box inside a row, so the \u0026lt;td\u0026gt; tag is inside the \u0026lt;tr\u0026gt; tag. TD stands for Table Data.\n\u0026lt;th\u0026gt; tag\nMeaning tag to write a regular box like \u0026lt;td\u0026gt;, but for the table header. TH stands for Table Header.\nMerging cells # Table cells normally have the same width and height. If we want to make a cell have a different width or height from other cells, then the only way we can do it is by merging several cells into one. This method is called merging cells.\nTo merge table cells, we need the rowspan or colspan attributes. The rowspan attribute is used to merge table cells in the same column. The colspan attribute is to merge table cells in the same row.\nHere is an example of merging both types:\nVertically (Rowspan)\nIn the table with the HTML code below, the first column cells will be merged: \u0026lt;table\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;/table\u0026gt; ... ... ... ... ... ... After merging, the HTML code condition becomes as follows:\n\u0026lt;table\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td rowspan=\u0026#34;3\u0026#34;\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;/table\u0026gt; ... ... ... ... Horizontally (Colspan)\nIn the table with the HTML code below, the first row cells will be merged: \u0026lt;table\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;/table\u0026gt; ... ... ... ... ... ... After merging, the HTML code condition becomes as follows:\n\u0026lt;table\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td colspan=\u0026#34;2\u0026#34;\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;...\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;/table\u0026gt; ... ... ... ... ... Example of table creation script\nCreate a new sheet in Notepad, then type the command below. Save it with the name Contoh03.html\n\u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt;Contoh 03\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;h1\u0026gt;Tabel Data Siswa\u0026lt;/h1\u0026gt; \u0026lt;table border=\u0026#34;1\u0026#34; bgcolor=\u0026#34;black\u0026#34;\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;th\u0026gt;Nim\u0026lt;/th\u0026gt; \u0026lt;th\u0026gt;Nama\u0026lt;/th\u0026gt; \u0026lt;th\u0026gt;Alamat\u0026lt;/th\u0026gt; \u0026lt;th\u0026gt;Tempat, Tanggal Lahir\u0026lt;/th\u0026gt; \u0026lt;th\u0026gt;Jurusan\u0026lt;/th\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;12110001\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Anita\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Cengkareng\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Jakarta, 20 Agustus 1990\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Tehnik Informatika\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;12110002\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Aditya\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Tangerang\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Semarang, 01 Januari 1989\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Tehnik Informatika\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;12110003\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Firman\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Bogor\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Jakarta, 18 September 1988\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Tehnik Informatika\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;/table\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; If viewed in a browser, it looks like the following:\nUsing Cellpadding and cellspacing # Create a new sheet in Notepad, then type the command below. Save it with the name tabelcell.html\n\u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt;Penggunaan atribut Cellpadding dan cellspacing dalam Tabel\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;h3\u0026gt;Belajar atribut cellpadding \u0026amp; cellspacing dalam Tabel\u0026lt;/h3\u0026gt; \u0026lt;table border=\u0026#34;1\u0026#34; cellspacing=\u0026#34;0\u0026#34; cellpadding=\u0026#34;0\u0026#34;\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;Baris 1, Kolom 1\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 1, Kolom 2\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 1, Kolom 3\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;Baris 2, Kolom 1\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 2, Kolom 2\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 2, Kolom 3\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;/table\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;table border=\u0026#34;1\u0026#34; cellspacing=\u0026#34;3\u0026#34; cellpadding=\u0026#34;5\u0026#34;\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;Baris 1, Kolom 1\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 1, Kolom 2\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 1, Kolom 3\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;Baris 2, Kolom 1\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 2, Kolom 2\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 2, Kolom 3\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;/table\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Result Display:\nUsing Rowspan and colspan # Create a new sheet in Notepad, then type the command below. Save it with the name tabelspan.html\n\u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt;Contoh Penggunaan Atribut Colspan dan Rowspan Tag Tabel\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;h1\u0026gt;Contoh atribut colspan dan rowspan\u0026lt;/h1\u0026gt; \u0026lt;table border=\u0026#34;1\u0026#34;\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;Baris 1, Kolom 1\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 1, Kolom 2\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 1, Kolom 3\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;Baris 2, Kolom 1\u0026lt;/td\u0026gt; \u0026lt;td colspan=\u0026#34;2\u0026#34;\u0026gt;Baris 2, Kolom 2 \u0026amp; 3\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td rowspan=\u0026#34;2\u0026#34;\u0026gt;Baris 3 \u0026amp; 4, Kolom 1\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 3, Kolom 2\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 3, Kolom 3\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;tr\u0026gt; \u0026lt;td\u0026gt;Baris 4, Kolom 2\u0026lt;/td\u0026gt; \u0026lt;td\u0026gt;Baris 4, Kolom 3\u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; \u0026lt;/table\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Result Display:\n","date":"2 May 2026","externalUrl":null,"permalink":"/study/programming/web/practicum-module-1/chapter-02-introduction-to-html/","section":"Study","summary":"Able to recognize HTML scripts, use various tags and declare tables and their attributes, able to write scripts in HTML","title":"Web Programming I #02: Introduction to HTML","type":"study"},{"content":"Discusses the basic concepts of web programming, terms in web programming, using text editors, knowing and implementing navigation structures\nBasics of a Website # Internet # Internet is \u0026ldquo;short for the word \u0026lsquo;internetwork\u0026rsquo;, which means a series of computers connected into several network series\u0026rdquo;. Computer systems are connected globally and use TCP/IP as a protocol. In general, the internet can be interpreted as the exchange of information and communication. All information can be obtained easily and freely on the internet without any limits.\nThere are several terms that are often used when you work with the internet, including:\nWorld Wide Web (WWW)\nWWW is a collection of web servers worldwide that can provide data and information to be used massively. Website\nA website or web site is a specific address on the WWW that provides specific information. To open a website, you can use a browser. Web Pages (Halaman Web)\nWeb pages or web pages are part of a website. If a website is likened to a book, then web pages are the sheets of paper that make up the book. Home Page (Halaman Muka)\nA homepage is the front page of a website, or like the front cover of a book. The homepage is usually an outline of the content of the website concerned. Browser\nA browser is an application used to surf the internet world. A browser can guide internet users to move between websites easily. URL (Universal Resource Locator)\nURL is an address that points to a specific page on the internet. An example of a URL is: http://www.google.com HTTP (Hypertext Transfer Protocol)\nHTTP is part of a URL that identifies a web location, and is used in the HTML protocol. DNS (Domain Name System)\nDNS is a distributed database system that is not much affected by the addition of databases. DNS ensures the latest host information will be distributed to the network when needed. TCP/IP (Transmission Control Protocol / Internet Protocol)\nTCP/IP (Transmission Control Protocol/Internet Protocol) is the methods used to contact the server. TCP/IP is the standardization language for the internet. IP (Internet Protocol)\nIP (Internet Protocol) is a protocol used in the internet, technically meaning a form of filling and addressing data and information to be sent via the internet. Hyperlink\nHyperlink or simply link is a facility that plays a major role in popularizing internet users, because it is able to reference a text or image to another address on the internet. Web Browser\nUsing a web browser is easy, all you need is a web address to open. This address is commonly referred to as a Uniform Resource Locator (URL). In your Windows operating system, there is also a built-in web browser program, namely Internet Explorer. However, outside there are many alternative web browser programs, most of which are free, such as Netscape, Firefox, Opera, Avant Browser, and so on. Web Server Software # A Web Server is server software that functions to receive HTTP or HTTPS requests from Clients known as web browsers and sends back the results in the form of web pages which are generally in the form of HTML documents. Well-known web servers include:\na. Apache, a cross-platform web server\nXAMPP PHPTriad; discontinued Apache2Triad b. Internet Information Service (IIS), can only run on MS Windows operating systems\nNavigation Structure # Navigation Structure is \u0026ldquo;The arrangement of menus or hierarchy of a site that describes the content of each page and links or navigation of each page on a website\u0026rdquo;. Navigation Structure can be said to be an illustrator of the relationship or workflow of all elements that will be used in the application.\nNavigation Structure can be classified according to the need for objects, ease of use, interactivity, and ease of making it which affects the time of making a website. In its depiction, the Navigation Structure is divided into 4 different structures, namely: Linear, Non-Linear, Hierarchical (Hierarchy) and Composite (Mixed).\nThere are 4 basic forms of navigation maps commonly used in the process of creating web applications, namely:\nLinear Navigation Structure # A linear navigation structure only has one sequential storyline, which displays one by one screen displays sequentially according to their order. The display that can be shown in this type of structure is one page before or one page after, it cannot be two pages before or two pages after.\nflowchart LR %% Mendefinisikan kotak kosong dengan spasi agar lebarnya pas A[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] B[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] C[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] D[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] %% Alur panah dua arah A \u003c--\u003e B B \u003c--\u003e C C \u003c--\u003e D Example :\nflowchart TD %% Node Atas Login[\"Login User\"] %% Membuat blok khusus agar barisan bawah menyamping subgraph BarisHorizontal [\" \"] direction LR N1[\"Input Info\"] N2[\"Upload File\"] N3[\"Input Data Student\"] N4[\"Logout\"] N5[\"Input Data Teacher\"] N6[\"Upload gallery photo\"] N7[\"Upload banner\"] %% Alur panah dua arah menyamping N1 \u003c--\u003e N2 N2 \u003c--\u003e N3 N3 \u003c--\u003e N4 N4 \u003c--\u003e N5 N5 \u003c--\u003e N6 N6 \u003c--\u003e N7 %% Panah panjang yang kembali dari ujung kanan ke ujung kiri N7 --\u003e N1 end %% Hubungan bolak-balik vertikal dari Login ke Logout Login \u003c--\u003e N4 %% Menghilangkan kotak border dan background dari subgraph style BarisHorizontal fill:none,stroke:none Hierarchical Navigation Structure # Hierarchical navigation structure, commonly called branched structure, is a structure that relies on branching to display data based on certain criteria. The display on the first menu will be referred to as the Master Page (first main page), this main page has a branch page called the Slave Page (supporting page). If one of the supporting pages is selected or activated, then the display will be named Master Page (second main page), and so on. In this navigation structure, linear display is not allowed.\nflowchart TD %% Level 1 (Akar/Root) N1[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] %% Level 2 (Cabang) N2_1[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N2_2[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] %% Level 3 (Daun/Leaf) N3_1[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N3_2[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N3_3[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N3_4[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] %% --- Alur panah dua arah (bolak-balik) --- N1 \u003c--\u003e N2_1 N1 \u003c--\u003e N2_2 N2_1 \u003c--\u003e N3_1 N2_1 \u003c--\u003e N3_2 N2_2 \u003c--\u003e N3_3 N2_2 \u003c--\u003e N3_4 Example :\nflowchart TD %% Node Utama (Root) Menu[\"MENU\"] %% Node Cabang Utama Tentang[\"About\"] Mulai[\"START\"] Keluar[\"Exit\"] %% Node Sub-Menu Pilih[\"Choose Animal\"] Suara[\"Animal Sound\"] %% --- Alur Garis --- Menu --\u003e Tentang Menu --\u003e Mulai Menu --\u003e Keluar Mulai --\u003e Pilih Pilih --\u003e Suara %% Alur perulangan (kembali ke pilihan hewan) Suara --\u003e Pilih Non-Linear Navigation Structure # Non-linear navigation structure or unordered structure is a development of a linear navigation structure. In this structure, it is allowed to make branching navigation. The branching made in this non-linear structure is different from the branching in the hierarchical structure, because in this non-linear branching, even though there is branching, each display has the same position, which means there is no Master Page and Slave Page.\nExample :\nMixed Navigation Structure # A mixed navigation structure is a combination of the previous three structures, namely linear, non-linear, and hierarchical. This navigation structure is also commonly referred to as a free navigation structure. This navigation structure is widely used in creating websites because this structure can provide higher interactivity.\nflowchart TD %% Level 1 (Root) N1[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] %% Level 2 N2_1[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N2_2[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] %% Level 3 N3_1[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N3_2[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N3_3[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N3_4[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] %% Node tambahan di ujung kanan Level 3 N3_5[\"\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] %% --- Alur Pohon (Panah Bolak-balik) --- N1 \u003c--\u003e N2_1 N1 \u003c--\u003e N2_2 N2_1 \u003c--\u003e N3_1 N2_1 \u003c--\u003e N3_2 N2_2 \u003c--\u003e N3_3 N2_2 \u003c--\u003e N3_4 %% --- Alur Unik di Bagian Kanan Bawah --- %% Panah horizontal bolak-balik N3_4 \u003c--\u003e N3_5 %% Panah dari bawah yang melompati satu node N3_3 --\u003e N3_5 Example : ","date":"1 May 2026","externalUrl":null,"permalink":"/study/programming/web/practicum-module-1/chapter-01-basic-concept-of-web/","section":"Study","summary":"Discusses the basic concepts of web programming, terms in web programming, using text editors, knowing and implementing navigation structures","title":"Web Programming I #01: Basic Concepts of Web","type":"study"},{"content":"","date":"28 April 2026","externalUrl":null,"permalink":"/tags/algorithm/","section":"Tags","summary":"","title":"Algorithm","type":"tags"},{"content":"","date":"28 April 2026","externalUrl":null,"permalink":"/categories/algorithm-logic/","section":"Categories","summary":"","title":"Algorithm Logic","type":"categories"},{"content":"","date":"28 April 2026","externalUrl":null,"permalink":"/tags/algorithms/","section":"Tags","summary":"","title":"Algorithms","type":"tags"},{"content":"","date":"28 April 2026","externalUrl":null,"permalink":"/tags/beginners/","section":"Tags","summary":"","title":"Beginners","type":"tags"},{"content":"","date":"28 April 2026","externalUrl":null,"permalink":"/tags/graph/","section":"Tags","summary":"","title":"Graph","type":"tags"},{"content":"","date":"28 April 2026","externalUrl":null,"permalink":"/tags/greedy-algorithm/","section":"Tags","summary":"","title":"Greedy-Algorithm","type":"tags"},{"content":"","date":"28 April 2026","externalUrl":null,"permalink":"/tags/greedy-method/","section":"Tags","summary":"","title":"Greedy-Method","type":"tags"},{"content":"","date":"28 April 2026","externalUrl":null,"permalink":"/tags/logic/","section":"Tags","summary":"","title":"Logic","type":"tags"},{"content":"Graph is a branch of mathematics that can be applied in everyday life, graph theory can solve many existing problems (Ramadhan et al., 2018).\nGraph is used for various disciplines and daily life. Graph is used in various fields (chemistry, ecology, genetics, sports, transportation, cartography, and computer networks) to model problems (Didiharyono \u0026amp; Soraya, 2018) and (Rahadi, 2019).\nProblems that can be solved using graph data are:\nTravelling Salesman Minimum Spanning Tree Problem Shortest path problem Coloring 1. Travelling Salesman # To determine the minimum possible travel time for a salesman.\nProblem: # Every week once, a telephone office officer goes around to collect coins from public telephones installed in various places. Starting from his office, he visits one by one the public telephones and finally returns to the office again. The problem is he wants a travel route with minimal time.\nGraph Model # For example # The central office is node 1 and suppose there are 4 public telephones, which we denote as nodes 2, 3, 4 and 5 and the numbers on each edge indicate the travel time (in minutes) between 2 nodes.\nSolution steps: # Start from the node that is likened to the central office, namely node 1 From node 1 choose the edge that has the minimal time. Do it continuously on the other nodes exactly once which will form a closed graph because the journey will return to the central office. The above problem produces a minimum time of 45 minutes and the obtained journey is as follows: The above problem produces a minimum time of 45 minutes and the obtained journey is as follows:\n2. Minimum Spanning Tree # MST Problem Case # Finding the minimum cost spanning tree from each edge of the graph that forms a tree.\nSolution to this problem: # By selecting an edge of a graph that meets the criteria of optimization that produces minimum cost. Addition of each edge to all edges that form the graph will produce a small (minimum cost) value/cost. Criteria for Minimum Spanning Tree, namely: # Each edge in the graph must be connected Each edge in the graph must have a value (graph label) Each edge in the graph must not have direction (undirected graph) The process of total minimum cost forming the graph with the following stages: # From the formed graph, does it meet the MST criteria. Do it in order from the initial edge to the final edge At each edge node pay attention to the value/cost of each edge Take the smallest value (shortest distance of each edge). Continue until all edge nodes are depicted on the spanning tree Sum the selected value/cost. Criteria:\n√ connected graph\n√ undirected graph\n√ graph has label\nDetermine the MST value from the graph above and determine the edges that form the MST\nMINIMUM SPANNING TREE Solution Pay attention to MST criteria, namely: # The graph is already a connected graph The graph is an undirected graph Each edge has a label Calculate MST from each edge that forms the graph by: # a. Done in order from the first edge to the last edge.\nb. Each edge must be depicted on the spanning tree formed.\nStages of the Solution Process from edge, Cost and spanning tree # Edge Cost Spanning Tree (1,2) 10 (2,6) (25) (3,6) 15 (4,6) 20 (3,5) 35 Total Cost 105 3. Shortest Path Problem # Problem: Calculate the shortest path from a directed graph.\nCriteria for the Shortest Path problem: # Each edge in the graph must have a value (graph label) Each edge in the graph does not have to be connected (unconnected) Each edge in the graph must have direction (directed graph). Calculate the distance one by one according to the direction indicated by each edge. Calculation is done on the graph edges that have initial and final paths. Solution # First: Look at the process of nodes that have initial and final destinations from the graph, namely: A – B, A – C, A – D, A – E Second: Find the shortest path from each of the four paths by calculating the length of each path. Step 1 Solution Path A - B # A -B = 50 A -C - D- B = 10 + 15 + 20 = 45 A - E - D - B = 45 + 35 + 20 = 100 The shortest path for node A destination B is:\nA – C – D – B = 45\nStep 2 Solution Path A - C # A – C = 10 A – B – C = 50 + 15 = 65 A – B – E – D – B – C = 50 + 10 + 35 + 20 + 15 = 130 A – E – D – B – C = 45 +35 +20 + 15 = 115 The shortest path for node A destination C is:\nA – C = 10\nStep 3 Solution Path A - D # A – C – D = 10 + 15 = 25 A – B – E – D = 50 + 10 + 35 = 95 A – B – C – D = 50 + 15 + 15 = 80 A – E – D = 45 + 35 = 80 The shortest path for node A destination D is:\nA – C – D = 25\nStep 4 Solution Path A - E # A – E = 45 A – B – E = 50 + 10 = 60 A – C – D – B – E = 10 + 15 + 20 + 10 = 55 A – C – D – E = 10 + 15 + 30 = 55 The shortest path for node A destination E is\nA – E = 45\nSHORTEST PATH PROBLEM Table # Path Distance Length A – C 10 A – C – D 25 A – C – D – B 45 A – E 45 4. Coloring # Coloring Problem # The problem of giving color to all nodes, such that 2 (two) adjacent nodes (there is an edge connecting the two nodes) have different colors. The number of colors used is requested to be as minimal as possible Example 1: Traffic Light Pattern # Problem: # Determine the traffic light pattern with minimal number of phases, and in each phase there is no crossing travel. The allowed travels are:\nA to B, A to C, A to D, B to C, B to D, E to B, E to C and E to D\nProblem solving steps # Determine the nodes from the allowed travels (for placing nodes freely) Determine edges to connect 2 nodes that state 2 travels that cross each other Give color to each node with new colors. If nodes are adjacent then give different colors If nodes are not adjacent then give the same color We see that nodes AB, BC and ED are not connected by an edge so for those nodes never cross other travels and those nodes always have green lights Determine the division of each node that has been colored. White = ( AC, AD )\nBlack = ( BD, EB )\nRed = ( EC )\nNote: Division of nodes based on nodes that are not directly related as minimal as possible (CAN BE DONE WITH SEVERAL POSSIBILITIES)\nFrom step 5 obtained 3 phases, so we can conclude the overall situation and the results can be stated as: Phase 1\nLamp Status Path GREEN AC, AD, AB, BC, ED RED BD, EB, EC Phase 2\nLamp Status Path GREEN BD, EB, AB, BC, ED RED AC, AD, EC Phase 3\nLamp Status Path GREEN EC, AB, BC, ED RED AC, AD, BD, EB Example 2: Exam Scheduling Table # MHS A B C D E F 1 0 1 0 0 1 0 2 0 0 1 1 0 0 3 1 0 0 0 1 0 4 1 0 0 0 0 1 5 0 1 0 1 0 0 6 0 1 1 0 0 0 7 1 0 0 0 0 1 8 0 0 1 1 0 0 Exam Scheduling Table Explanation\n6 columns symbolized by letters indicate course names. 8 rows indicated by numbers are students. Number \u0026ldquo;1\u0026rdquo; in the table indicates the course taken. Number \u0026ldquo;0\u0026rdquo; in the table means the course not taken. Exam Scheduling Table Problem # There are students who take two courses at once. The schedule maker team must make a schedule that fits so that student exam schedules do not clash. Condition: no student may take two exams at the same time. Exam Scheduling Table Problem Solution # Depict nodes that indicate courses. Make edges or connecting lines stating there are students who choose both courses. Choose nodes with the same color, nodes with the same color indicate there are no students taking those courses simultaneously, meaning they can be scheduled at the same time. Exam Scheduling Table Node Image # Graph Explanation From Exam Scheduling Table # If there are two nodes connected by an edge, then the exams of the two courses cannot be made at the same time. Give color to each node, if different colors are given to nodes that indicate different exam times. The colors used must be as minimal as possible. Note: Adjacent nodes must not have the same color. Graph Result From Exam Scheduling Table with Color # Explanation:\nP -\u0026gt; White\nM -\u0026gt; Red\nH -\u0026gt; Green\nColored Graph Explanation # Red color: for nodes F, E, D White color: for nodes A, B, Green color: for node C (because adjacent) Node C neighbors with node B (white color), and node D (red color) so C must be given a different color. Colored Graph Explanation from Exam Scheduling Table # Group nodes with the same color, the same color means they can be scheduled for exams so the results are as follows:\nRed nodes = F, E, D White nodes = A, B Green node = C Note:\nFor node placement position, it can be free Initial color assignment can be free Colors used are free Initial color assignment affects the schedule arrangement ","date":"28 April 2026","externalUrl":null,"permalink":"/study/programming/algorithm-logic/12-problems-and-graph-models-in-greedy-method/","section":"Study","summary":"Graph is a branch of mathematics that can be applied in everyday life, graph theory can solve many existing problems (Ramadhan et al., 2018).","title":"Logic and Algorithm #12: Problems and Graph Models in Greedy Method","type":"study"},{"content":"Learn basic logic and algorithms from scratch. Understand the essential concepts that are frequently used. Then apply them to create solutions to problems. Happy Learning!\n","date":"28 April 2026","externalUrl":null,"permalink":"/study/programming/algorithm-logic/","section":"Study","summary":"Learn Logic and Algorithms for Beginners.","title":"Logic and Algorithms","type":"programming"},{"content":"","date":"28 April 2026","externalUrl":null,"permalink":"/series/logic-and-algorithms-chapters/","section":"Series","summary":"","title":"Logic and Algorithms Chapters","type":"series"},{"content":"","date":"27 April 2026","externalUrl":null,"permalink":"/tags/greedy/","section":"Tags","summary":"","title":"Greedy","type":"tags"},{"content":" Greedy is taken from English meaning greedy, avaricious, stingy, miserly. Greedy principle: \u0026ldquo;Take What You Can Get Now!\u0026rdquo;. Greedy algorithm forms a solution step by step. Greedy is a search strategy for optimization problems based on the principle: at each stage, choose the best solution. With the hope that all these stages will find the best solution for the problem. Greedy algorithms are simple and not complex (Santosa and Ai, 2017). To get the optimal solution from a problem that has two criteria:\nObjective Function/Main Constraint Value Greedy Method Working Process:\nTo solve a problem with n input data consisting of several constraint functions \u0026amp; 1 objective function solved by selecting several possible solutions (feasible solution/feasible sets), namely if it has met the objective function.\nExample Optimization Problem:\n(Coin Change Problem):\nGiven money worth A. Exchange A with existing coins. How many minimum coins are needed for the exchange?\nExample 1: available many coins 1, 5, 10, 25\nMoney worth A = 32 can be exchanged in many ways:\n32 = 1 + 1 + … + 1 (32 coins)\n32 = 5 + 5 + 5 + 5 + 10 + 1 + 1 (7 coins)\n32 = 10 + 10 + 10 + 1 + 1 (5 coins)\n… etc\nMinimum: 32 = 25 + 5 + 1 + 1 (4 coins) GREEDY method is used in solving problems:\nOptimal On Tape Storage Problem Knapsack Problem 1. Optimal On Tape Storage Problem # The problem of how to optimize storage/memory in a computer so that stored data can fit optimally.\nSuppose there are n programs to be stored on tape. The tape has a maximum length of L, each program to be stored has length L1, L2, L3\u0026hellip;, Ln. The storage method is sequential.\nApplication of Optimal On Tape Storage Problem is: # Found on Cassette Tape Storage media in the 19th century Before digitization in the 20th century Greedy Criteria in Optimal On Tape Storage Problem: # Objective Function: Optimal Storage = \\( \\displaystyle D(I) = \\sum*{j=1}^{n} \\sum*{k=1}^{j} l\\_{ik} \\)\nConstraint Function: Mean Retrieval Time (MRT) = \\( \\displaystyle \\sum\\_{j=1}^{n} t_j / n \\)\nExample problem:\nStorage on cassette tape has 3 song files with duration 5 minutes, 10 minutes, 3 minutes. Determine the order to save storage media?\nSolution:\nFind 2 greedy criteria\nObjective function: optimization of storage media Constraint function: file access time (Mean Retrieval Time)\nFind Feasible Solution\nAlternative solutions that can be used to obtain optimal solution\nNumber of Feasible Solutions for 3 input files is: N Factorial where N: Number of Files 3!=3x2x1=6\nCalculate Objective Function \u0026amp; Constraint Function\nOrdering Length D (I) MRT 1,2,3 5,10,3 5 + (5+10) + (5+10+3) = 38 38/3=12.66 1,3,2 5,3,10 5 + (5+3) + (5+3+10) = 31 31/3=10.33 2,1,3 10,5,3 10 + (10+5) + (10+5+3) = 43 43/3=14.33 2,3,1 10,3,5 10 + (10+3) + (10+3+5) = 41 41/3=13.66 3,1,2 3,5,10 3 + (3+5) + (3+5+10) = 29 29/3=9.66 3,2,1 3,10,5 3 + (3+10) + (3+10+5) = 34 34/3=11.33 (L1,L2,L3) = (5,10,3)\nFrom the table, the optimal order is obtained as follows:\nfirst arrangement for the third program second arrangement for the first program third arrangement for the second program The key to the Optimal On Tape Storage Problem is File Arrangement from Small to Large Size (Increasing)\n2. KNAPSACK Problem # Knapsack is a bag or sack Sack used to load objects, of course not all objects can be accommodated in the sack. The sack can only store some objects with total size (weight) less than or equal to the sack\u0026rsquo;s capacity size. Illustrative image there is a bag with capacity 15kg, there are 5 items with their respective weights and profits. The problem is which items should be put into the bag (Aristi, 2015)..\nCase:\nThere are n objects (Xi;i=1,2,3,\u0026hellip;.n) Each has weight (weight)/Wi Each has different value (profit)/Pi. KNAPSACK Problem Issue # How are these objects loaded/put into a knapsack that has maximum capacity=M.\nSo the following problems arise:\nHow to choose objects to be loaded from n existing objects so that the value of loaded objects is in accordance with capacity (≤ M) If all objects must be loaded into the knapsack then what portion of each existing object can be loaded into the knapsack so that the cumulative value is max \u0026amp; in accordance with the knapsack capacity? Knapsack Problem can be solved by: # Mathematically Greedy Criteria Greedy Programming Algorithm 1. Mathematical Knapsack Solution # Objective function = main/objective function\nFunction that solves the problem by obtaining the optimal solution.\nThe solution meant = finding the maximum value/profit for the number of objects loaded in the knapsack so that it matches the capacity.\nObjective Function Maximum: \\( \\displaystyle \\sum\\_{i=1}^{n} P_i X_i \\)\nConstraint function = subjective function\nFunction that aims to provide the maximum limit of each object to be loaded in the knapsack so that its capacity does not exceed the maximum carrying capacity of the knapsack.\nConstraint Function: \\( \\displaystyle \\sum\\_{i=1}^{n} W_i X_i \\le M \\)\nwhere: 0 \\(\\le\\) Xi \\(\\le\\) 1; Pi \u0026gt;0;Wi\u0026gt;0\nNote: because using Mathematics is very difficult and complicated, it is not discussed in depth.\n2. Solution With Greedy Criteria # The concept of the criteria offered by the Greedy method is:\nChoose object (item) with maximum Pi value or largest Choose object (item) with minimum Wi weight first. Choose object (item) with the largest value \u0026amp; weight comparison namely Pi/Wi. Example:\nKnown that capacity M = 20kg\nWith number of items n=3\nWeight Wi of each item\n(W1, W2, W3) = (18, 15, 10) Value Pi of each item\n(P1, P2, P3) = (25, 24, 15) Choose item with Maximum Profit Value\nP1 = 25 -\u0026gt; X1 = 1, assumed as upper value P2 = 24 -\u0026gt; X2 = 2/15, calculated with Constraint Function P3 = 15 -\u0026gt; X3 = 0, assumed as lower value Greedy Criteria Problem Solution\nSolution:\nThe item with the largest profit value is item 1, so the first chosen is item 1 as much as \\( X_1 = 1 \\) After item 1 is selected, the remaining knapsack capacity is 20 kg - 18 kg = 2 kg. Then choose item 2 as much as \\( X_2 \\) = remaining knapsack capacity / \\( W_2 \\) = 2/15 After item 2 is selected, remaining knapsack capacity = 0 Kg, so item 3 is not selected → \\( X_3 = 0 \\) \\( (X_1, X_2, X_3) = (1, 2/15, 0) \\) is feasible solution Choose item with Minimum Weight\nW1 = 18 -\u0026gt; X1 = 0, as lower limit W2 = 15 -\u0026gt; X2 = 2/3, calculated with Constraint Function W3 = 10 -\u0026gt; X3 = 1, as upper limit Solution:\nThe item with the smallest weight is item 3, so the selected one is item 3 as much as \\( X_3 = 1 \\) After item 3 is selected, the remaining knapsack capacity is 20kg - 10kg = 10kg Choose item 2 as much as \\( X_2 \\) = Remaining Knapsack Capacity / \\( W_2 \\) = 10/15 = 2/3 After item 2 is selected, remaining knapsack capacity is 0Kg, meaning item 1 is not selected → \\( X_1 = 0 \\) \\( (X_1, X_2, X_3) = (0, 2/3, 1) \\) is feasible solution Choose item by calculating the largest comparison of\nProfit divided by Weight (Pi/Wi) sorted in non-increasing order, namely:\nP1/W1 = 25/18 =1.38-\u0026gt; because smallest then X1 = 0 P2/W2 = 24/15 =1.6-\u0026gt; because largest then X2 = 1 P3/W3 = 15/10 =1.5-\u0026gt; with Constraint function X3 = 1/2 Solution:\nThe item with the largest \\( (P_i/W_i) \\) is item 2, so the first chosen is item 2 as much as \\( X_2 = 1 \\) After item 2 is selected, the remaining knapsack capacity is 20kg - 15kg = 5kg Then choose item 3 as much as \\( X_3 \\) = remaining knapsack capacity / \\( W_3 \\) = 5/10 = 1/2 After item 3 is selected, remaining knapsack capacity is 0kg, so item 1 is not selected → \\( X_1 = 0 \\) \\( (X_1, X_2, X_3) = (0, 1, 1/2) \\) is feasible solution Create a table based on the elements of the 3rd criteria of the Greedy method\nSolution \\( (X_1, X_2, X_3) \\) \\( \\sum W_i X_i \\) \\( \\sum P_i X_i \\) Pi Max ( 1, 2/15, 0 ) 20 (25.1) + (24.(2/15)) + (15.0) = 28.2 Wi Min ( 0, 2/3, 1 ) 20 (25.0) + (24.(2/3)) + (15.1) = 31 Pi/Wi max ( 0, 1, 1/2 ) 20 (25.0) + (24.1) + (15.(1/2)) = 31.5 Maximum profit value = 31.5 with the same composition\n3. Greedy Programming Algorithm Solution # GREEDY KNAPSACK Algorithm\nPROCEDURE GREEDY_KNAPSACK (P, W, X, n) REAL P(1:n), W(1:n), X(1:n), M, isi INTEGER i, n X(1:n) = 0 isi = M FOR i = 1 TO n DO IF W(i) \u0026gt; isi THEN EXIT ENDIF X(i) = 1 isi = isi - W(i) REPEAT IF i ≤ n THEN X(i) = isi / W(i) ENDIF END GREEDY_KNAPSACK Explanation:\nn = Number of objects\nWi = Weight of each object\nPi = Profit of each object\nXi = Probability of each object\nM = Storage media capacity\nEffective if data (Pi/Wi) is sorted in non-increasing order first.\nSolution:\nWith Greedy Programming Algorithm.\nKnown that capacity M = 20kg, with number of items n=3\nWeight Wi of each item = (W1, W2, W3) = (18, 15, 10)\nValue Pi of each item = (P1, P2, P3) = (25, 24, 15)\nSort in non-increasing order of Pi/Wi results, for example:\nP1/W1 -\u0026gt; 25/18 = 1.39 becomes order 3 P2/W2 -\u0026gt; 24/15 = 1.60 becomes order 1 P3/W3 -\u0026gt; 15/10 = 1.50 becomes order 2 Thus producing a new data order pattern, namely\nW1,W2,W3 -\u0026gt; 15, 10, 18 and\nP1,P2,P3 -\u0026gt; 24, 15, 25\nThen that data is inputted to Greedy Alg., the process occurs:\nInitial Initialization:\n\\( X(1:n) \\leftarrow 0 \\) ; isi \\( \\leftarrow 20 \\) ; \\( i = 1 \\) Looping Process:\nFor \\( i = 1 \\):\nCheck condition: \\( W(1) \u003e \\text{isi} \\) ? → \\( 15 \u003e 20 \\) ? → Condition FALSE Because false, then \\( X(1) = 1 \\) → Means that item can be loaded entirely. isi = 20 - 15 = 5 → Knapsack capacity decreases, remaining 5 kg. For \\( i = 2 \\):\nCheck condition: \\( W(2) \u003e \\text{isi} \\) ? → \\( 10 \u003e 5 \\) ? → Condition TRUE Because true, then \\( X(2) = 5 / 10 = 1/2 \\) → 10 kg item can only be loaded half (1/2) part, namely 5 kg. For \\( i = 3 \\):\nENDIF → Process ended because knapsack is full (maximum capacity 20 kg). Thus, \\( X(3) = 0 \\). Total Profit: The profit value obtained is the sum of \\( P_1 X_1 + P_2 X_2 + P_3 X_3 \\), namely: \\( (24 \\times 1) + (15 \\times 1/2) + (18 \\times 0) \\) \\( = 24 + 7.5 + 0 = \\mathbf{31.5} \\)\nSolution:\nx(1:n) \u0026lt;- 0 ; isi \u0026lt;- 20 ; i = 1\nFOR i \u0026lt;- 1 TO 3\nWhen \\( i=1 \\) Is \\( W[1] \u003e \\text{isi} \\)? → \\( 15 \u003e 20 \\)?\n\\( x[1] \\leftarrow 1 \\) → item can be loaded entirely \\( \\text{isi} = 20 - 15 = 5 \\) → remaining capacity 5kg When \\( i=2 \\) Is \\( W[2] \u003e \\text{isi} \\)? → \\( 10 \u003e 5 \\)? → exit\nIs \\( i \\le n \\)? → \\( 2 \\le 3 \\)? \\( x[2] = \\text{isi}/W[2] = 5/10 = 1/2 \\) → 10kg item loaded 1/2 part = 5 ENDIF → ended because knapsack is full (max = 20kg)\nProfit value: \\( P_1 + P_2 + P_3 \\) namely: \\( 24(1) + 15(1/2) + 18(0) = 24 + 7.5 = 31.5 \\)\nProgram Code\n# Greedy algorithm solution program for knapsack def fractional_knapsack(value, weight, capacity): # Store list of item indices (0, 1, 2, etc.) index = list(range(len(value))) # Calculate value/weight ratio for each item ratio = [v/w for v, w in zip(value, weight)] # Sort item indices based on ratio from largest to smallest (Descending) index.sort(key=lambda i: ratio[i], reverse=True) max_value = 0 fractions = [0] * len(value) for i in index: if weight[i] \u0026lt;= capacity: # If remaining capacity is still enough to accommodate the entire weight of this item fractions[i] = 1 max_value += value[i] capacity -= weight[i] else: # If remaining capacity is not enough, take only a portion (fraction) fractions[i] = capacity / weight[i] max_value += value[i] * (capacity / weight[i]) break # Stop the loop because the knapsack is definitely full return max_value, fractions # --- Main Program Execution Block --- n = int(input(\u0026#39;Enter number of items: \u0026#39;)) # Take input value (profit) and convert to integer list value = input(\u0026#39;Enter the values of the {} item(s) in order: \u0026#39;.format(n)).split() value = [int(v) for v in value] # Take input weight and convert to integer list weight = input(\u0026#39;Enter the positive weights of the {} item(s) in order: \u0026#39;.format(n)).split() weight = [int(w) for w in weight] capacity = int(input(\u0026#39;Enter maximum weight: \u0026#39;)) # Call the function and store the return results max_value, fractions = fractional_knapsack(value, weight, capacity) # Display final results print(\u0026#39;\\nThe maximum value of items that can be carried:\u0026#39;, max_value) print(\u0026#39;The fractions in which the items should be taken:\u0026#39;, fractions) Output:\nEnter number of items: 3 Enter the values of the 3 item(s) in order: 25 24 15 Enter the positive weights of the 3 item(s) in order: 18 15 10 Enter maximum weight: 20 The maximum value of items that can be carried: 31.5 The fractions in which the items should be taken: [0, 1, 0.5] ","date":"27 April 2026","externalUrl":null,"permalink":"/study/programming/algorithm-logic/11-greedy-method/","section":"Study","summary":"Greedy is taken from English meaning greedy, avaricious, stingy, miserly.","title":"Logic and Algorithm #11: Greedy Method","type":"study"},{"content":"","date":"26 April 2026","externalUrl":null,"permalink":"/tags/analysis/","section":"Tags","summary":"","title":"Analysis","type":"tags"},{"content":" 1. Definition of Searching Techniques # Techniques for picking and selecting an element from several existing elements.\n2. Searching Techniques # Linear/Sequential Search Technique StraitMAXMIN Technique Linear/Sequential Search Technique # a. Linear/Sequential Search (For unsorted or sorted data) # A search that starts from the 1st record and continues to the next records, namely the 2nd, 3rd,\u0026hellip;, until a record is found that matches the sought information (Value X).\nThe Search Time Speed depends on: The number of data elements and the position of the sought data\nAlgorithm: # Set I = 1 While Value (I) \u0026lt;\u0026gt; X, Then Add I = I + 1 Repeat step No. 2 until Value(I) = X or I \u0026gt; N If I = N+1 Then Print \u0026ldquo;Search Failed\u0026rdquo;, otherwise Print \u0026ldquo;Search Successful\u0026rdquo; Example 1:\nData A = { 10, 4, 9, 1, 15, 7 }\nSought 15\nSearch steps:\nStep 1: A[1] = 10 Step 2: 10 \u0026lt;\u0026gt; 15, then A[2] = 4 Step 3: repeat step 2 Step 2: 4 \u0026lt;\u0026gt; 15, then A[3] = 9 Step 2: 9 \u0026lt;\u0026gt; 15, then A[4] = 1 Step 2: 1 \u0026lt;\u0026gt; 15, then A[5] = 15 Step 2: 15 = 15 Step 4: \u0026ldquo;Search Successful\u0026rdquo; Example 2: If the condition Value(I) = N + 1 is found, it means the search was not found or failed. Because the number of elements is N, N + 1 means the sought data is not a data element of N.\nSequential/Linear Search Technique Program Coding\ndef seqSearch(data, key): i = 0 pos = i + 1 # Looping to check data one by one from the initial index while i \u0026lt; len(data): if data[i] == key: break # Stop searching if data is already found i += 1 pos = i + 1 # Checking if the final position is within the limits of the array\u0026#39;s number of elements if pos \u0026lt;= len(data): print(\u0026#39;data\u0026#39;, key, \u0026#39;found at position\u0026#39;, pos) else: print(\u0026#39;data not found\u0026#39;) return pos # --- Function call block --- data = [10, 4, 9, 1, 15, 7] print(\u0026#34;Array data:\u0026#34;, data) print(\u0026#34;Searching for number 15...\u0026#34;) seqSearch(data, 15) Program Result\ndata 15 found at position 5 MAXMIN Search Technique # b. STRAITMAXMIN Technique # Determine/find the max \u0026amp; min elements in a linear array set. Time complexity analysis used to complete the search to obtain complexity levels divided into best case, worst case, and average case. Algorithm to find MaxMin elements in Python programming:\ndef STRAITMAXMIN(A, n): # Initialize max and min values with the first element of the array max = A[0] min = A[0] # Looping starts from the second element (index 1) to the n-th element for i in range(1, n): # If the current element is greater than \u0026#39;max\u0026#39;, update \u0026#39;max\u0026#39; if A[i] \u0026gt; max: max = A[i] # If it is not greater, check if it is smaller than \u0026#39;min\u0026#39; elif A[i] \u0026lt; min: min = A[i] # Print the final result (outside the for block) print(\u0026#34;Max =\u0026#34;, max, \u0026#34;, Min =\u0026#34;, min) *Remarks:\nT = True\nF = False\nflowchart TD %% Node Awal Start([Start]) --\u003e Init{{\"max=A[0]\nmin=A[0]\"}} Init --\u003e SetI[\"i=1\"] %% Titik Pengecekan Looping (i \u003c n) SetI --\u003e CekLoop{\"i \u003c n\"} %% Alur jika Benar (B) masuk ke pengecekan max/min CekLoop -- T --\u003e CekMax{\"A[i] \u003e max\"} %% Alur jika Salah (S) dari pengecekan i \u003c n langsung ke Cetak CekLoop -- F --\u003e Cetak[/\"Print max \u0026 min\"/] %% Pengecekan Nilai Maximum CekMax -- T --\u003e SetMax[\"max=A[i]\"] CekMax -- F --\u003e CekMin{\"A[i] \u003c min\"} %% Pengecekan Nilai Minimum CekMin -- T --\u003e SetMin[\"min=A[i]\"] %% Semua alur proses bermuara ke increment i+=1 SetMax --\u003e Inc[\"i+=1\"] CekMin -- F --\u003e Inc SetMin --\u003e Inc %% Kembali ke pengecekan awal (Looping) Inc --\u003e CekLoop %% Node Akhir Cetak --\u003e Selesai([Finish]) Best Case # In this case, the condition is achieved if the elements in set A are arranged increasingly (ascending). With a time comparison of n - 1 unit operations. The fastest/best search condition. Example:\nThere is a set A containing 4 numbers arranged increasingly with A[0]=2, A[1]=4, A[2]=5, A[3]=10.\nDetermine/find the Max \u0026amp; Min numbers as well as the number of comparison operations performed.\n*Remarks\nT = True\nF = False\nC = Comparison\n2 4 5 10 Max 4 5 10 Min 2 2 2 C 1 1 1 Total Comparisons = 3\nflowchart TD %% Node Awal Start([Start]) --\u003e Init{{\"max=A[0]\nmin=A[0]\"}} Init --\u003e SetI[\"i=1\"] %% Titik Pengecekan Looping (i \u003c n) SetI --\u003e CekLoop{\"i \u003c n\"} %% Alur jika Benar (B) masuk ke pengecekan max/min CekLoop -- T --\u003e CekMax{\"A[i] \u003e max\"} %% Alur jika Salah (S) dari pengecekan i \u003c n langsung ke Cetak CekLoop -- F --\u003e Cetak[/\"Print max \u0026 min\"/] %% Pengecekan Nilai Maximum CekMax -- T --\u003e SetMax[\"max=A[i]\"] CekMax -- F --\u003e CekMin{\"A[i] \u003c min\"} %% Pengecekan Nilai Minimum CekMin -- T --\u003e SetMin[\"min=A[i]\"] %% Semua alur proses bermuara ke increment i+=1 SetMax --\u003e Inc[\"i+=1\"] CekMin -- F --\u003e Inc SetMin --\u003e Inc %% Kembali ke pengecekan awal (Looping) Inc --\u003e CekLoop %% Node Akhir Cetak --\u003e Selesai([Finish]) Best Case Resolution:\nFor this problem, the STRAITMAXMIN procedure can be used, which produces the number Min=2 \u0026amp; Max=10. The data comparison operation to find the MaxMin numbers from the set is (n-1)=3 comparison operations. Worst Case # This case occurs if the largest element value in the set is at the very front or arranged decreasingly (descending). With comparison operations of 2(n-1) unit operations. The Longest/Worst Search Condition. Example:\nFinding the MaxMin elements \u0026amp; the number of comparison operations performed on set A arranged decreasingly.\nA[0]=80, A[1]=21, A[2]=6, A[3]=-10\n*Remarks\nT = True\nF = False\nC = Comparison\n80 21 6 -10 Max 80 80 80 Min 21 6 -10 C 2 2 2 Total Comparisons = 6\nflowchart TD %% Node Awal Start([Start]) --\u003e Init{{\"max=A[0]\nmin=A[0]\"}} Init --\u003e SetI[\"i=1\"] %% Titik Pengecekan Looping (i \u003c n) SetI --\u003e CekLoop{\"i \u003c n\"} %% Alur jika Benar (B) masuk ke pengecekan max/min CekLoop -- T --\u003e CekMax{\"A[i] \u003e max\"} %% Alur jika Salah (S) dari pengecekan i \u003c n langsung ke Cetak CekLoop -- F --\u003e Cetak[/\"Print max \u0026 min\"/] %% Pengecekan Nilai Maximum CekMax -- T --\u003e SetMax[\"max=A[i]\"] CekMax -- F --\u003e CekMin{\"A[i] \u003c min\"} %% Pengecekan Nilai Minimum CekMin -- T --\u003e SetMin[\"min=A[i]\"] %% Semua alur proses bermuara ke increment i+=1 SetMax --\u003e Inc[\"i+=1\"] CekMin -- F --\u003e Inc SetMin --\u003e Inc %% Kembali ke pengecekan awal (Looping) Inc --\u003e CekLoop %% Node Akhir Cetak --\u003e Selesai([Finish]) Worst Case Resolution\nFor this problem with the STRAITMAXMIN process, the max element=80 \u0026amp; min element=-10. The comparison operation for the MaxMin elements is 2(4-1) = 6 unit operations. Average Case # Used to predict the number of steps/operations if the MaxMin element search is performed on elements in a randomly arranged set (not decreasing/not increasing). The predicted number of comparison operations performed is the average travel time of the best case \u0026amp; worst case, namely: $$ \\begin{aligned} \u0026\\frac{1}{2} [(n - 1) + 2(n - 1)] \\\\[8pt] \u0026= \\frac{1}{2} (n - 1 + 2n - 2) \\\\[8pt] \u0026= \\frac{1}{2} (3n - 3) = \\frac{3}{2}n - \\frac{3}{2} \\quad \\text{Times} \\end{aligned} $$ Random Search Condition Example:\nIn set A containing { 5, -4, 9, 7 }, a search for the max \u0026amp; min elements is performed using the STRAITMAXMIN process. How many maxmin elements are obtained \u0026amp; what is the number of comparison operations performed.\n*Remarks\nT = True\nF = False\nC = Comparison\n5 -4 9 7 Max 5 9 9 Min -4 -4 -4 C 1 2 1 Total Comparisons = 5\nflowchart TD %% Node Awal Start([Start]) --\u003e Init{{\"max=A[0]\nmin=A[0]\"}} Init --\u003e SetI[\"i=1\"] %% Titik Pengecekan Looping (i \u003c n) SetI --\u003e CekLoop{\"i \u003c n\"} %% Alur jika Benar (B) masuk ke pengecekan max/min CekLoop -- T --\u003e CekMax{\"A[i] \u003e max\"} %% Alur jika Salah (S) dari pengecekan i \u003c n langsung ke Cetak CekLoop -- F --\u003e Cetak[/\"Print max \u0026 min\"/] %% Pengecekan Nilai Maximum CekMax -- T --\u003e SetMax[\"max=A[i]\"] CekMax -- F --\u003e CekMin{\"A[i] \u003c min\"} %% Pengecekan Nilai Minimum CekMin -- T --\u003e SetMin[\"min=A[i]\"] %% Semua alur proses bermuara ke increment i+=1 SetMax --\u003e Inc[\"i+=1\"] CekMin -- F --\u003e Inc SetMin --\u003e Inc %% Kembali ke pengecekan awal (Looping) Inc --\u003e CekLoop %% Node Akhir Cetak --\u003e Selesai([Finish]) Random case resolution\nExample: A = { 5, -4, 9, 7 }\nComparison Operations: 5 *The random case resolution cannot use a formula because the comparison result will be between Best Case and Worst Case (Best Case \u0026lt; Average Case \u0026lt; Worst Case)\nWhile using the formula: 3/2 n - 3/2 = 3/2 * 4 - 3/2 = 4.5\nNote: The use of average case is used to compare algorithms where if there is a difference in better values between Best Case and Worst Case such as in merge sort and quick sort. Where the best case is better for quick sort but the worst case is better for merge sort, so to determine the best algorithm, an average case comparison is made (Not discussed because it is a more in-depth algorithm analysis).\nAlgorithm Analysis Conclusion # Every Algorithm can be analyzed for the operational steps performed to determine its complexity. To state an algorithm is better, it can be done by comprehensively comparing the complexity of that algorithm. If there is a difference in better values between Best Case and Worst Case, then to determine the best algorithm, an Average Case comparison can be made. ","date":"26 April 2026","externalUrl":null,"permalink":"/study/programming/algorithm-logic/10-searching-techniques-and-introduction-to-algorithm-analysis/","section":"Study","summary":"Techniques for picking and selecting an element from several existing elements.","title":"Logic and Algorithms #10: Searching Techniques and Introduction to Algorithm Analysis","type":"study"},{"content":"","date":"26 April 2026","externalUrl":null,"permalink":"/tags/searching/","section":"Tags","summary":"","title":"Searching","type":"tags"},{"content":" Sorting Methods # 1. Definition of Sorting # The process of arranging a series of data into a certain order or sequence. The sorted data can be numeric data, character data, or string data (Sitorus, 2015).\n2. Types of Sorting Methods: # Selection Sort Bubble Sort Insertion Sort Things that affect the Speed of a Sorting Algorithm: The Number of Comparison Operations \u0026amp; The Number of Data Movement Operations. Sorting techniques by selecting elements or working by selecting the smallest data element and then comparing \u0026amp; exchanging it with the initial data element, and so on until all elements produce a sorted data pattern.\nThe Working Principle of the Selection Sort Technique is: # Checking starts from the 1st data to the n-th data Determine the index of the number with the smallest value from the number data Swap the number at that index with the number at the initial position of the iteration (I = 0 for the first number) of the number data Repeat the above steps for the next number (I = I + 1) up to n-1 times Example: 22 10 15 3 8 2 Iteration 1 1 2 3 4 5 6 Step 1: 221015382 Step 2: 221015382 Step 3: 210153822 Step 4: Repeat steps 2 and 3 Iteration 2 Step 1: 210153822 Step 2: 210153822 Step 3: 231510822 Step 4: Repeat steps 2 and 3 Iteration 3 Step 1: 231510822 Step 2: 231510822 Step 3: 238101522 Step 4: Repeat steps 2 and 3 Iteration 4 Step 1: 238101522 Step 2: 238101522 Step 3: 238101522 Step 4: Repeat steps 2 and 3 Iteration 5 Step 1: 238101522 Step 2: 238101522 Step 3: 238101522 Step 4: Repeat steps 2 and 3 Iteration 6 Step 1: 238101522 Step 2: 238101522 Step 3: 238101522 Step 4: Repeat steps 2 and 3 illustration 221015382 221015382 210153822 231510822 238101522 238101522 Program Example # def SelectionSort(val): # Looping from the back index moving forward for i in range(len(val)-1, 0, -1): Max = 0 # Looping to find the largest value in the remaining unsorted array for l in range(1, i+1): if val[l] \u0026gt; val[Max]: Max = l # Process of swapping the largest value to the very back position temp = val[i] val[i] = val[Max] val[Max] = temp # --- Function call block --- Angka = [22, 10, 15, 3, 8, 2] print(\u0026#34;Array before sorting:\u0026#34;, Angka) SelectionSort(Angka) print(\u0026#34;Array after sorting: \u0026#34;, Angka) Program Result:\n[2, 3, 8, 10, 15, 22] Bubble Sorting # A sorting method by comparing the current element value data with the subsequent element value data. Element comparison can start from the beginning or start from the very end. If the current element is greater (for ascending sort) or smaller (for descending sort) than the next element, then their positions are swapped, but if not, their positions remain (Harumy et al., 2016). Bubble Sorting (From the Front) # The Working Principle of Bubble Sort is: Check starting from the 1st data to the n-th data Compare the 1st data with the data next to it (the 2nd) If it is greater, move the number with the number in front of it If it is smaller, no movement occurs Repeat steps 1 to 4 n-1 times with the number of data reduced by 1 every iteration Initial: [5, 7, 3, 2, 4]\nIteration 1: # Compare 5 and 7. (5 \u0026lt; 7) → Position is correct, no swap. [5, 7, 3, 2, 4] Compare 7 and 3. (7 \u0026gt; 3) → Swap! [5, 3, 7, 2, 4] Compare 7 and 2. (7 \u0026gt; 2) → Swap! [5, 3, 2, 7, 4] Compare 7 and 4. (7 \u0026gt; 4) → Swap! [5, 3, 2, 4, 7] Result: The largest number (7) is already in the rightmost position. Iteration 2: # Compare 5 and 3. (5 \u0026gt; 3) → Swap! [3, 5, 2, 4, 7] Compare 5 and 2. (5 \u0026gt; 2) → Swap! [3, 2, 5, 4, 7] Compare 5 and 4. (5 \u0026gt; 4) → Swap! [3, 2, 4, 5, 7] Result: The second largest number (5) occupies its correct position. (Number 7 does not need to be checked again). Iteration 3: # Compare 3 and 2. (3 \u0026gt; 2) → Swap! [2, 3, 4, 5, 7] Compare 3 and 4. (3 \u0026lt; 4) → Position is correct, no swap. [2, 3, 4, 5, 7] Result: The entire array is unknowingly sorted correctly. Iteration 4: # The system still performs one last check from the front (comparing 2 \u0026amp; 3, then 3 \u0026amp; 4) to ensure no more elements are swapped. Since there is no swap, the sorting process is officially stopped. BUBBLE SORT RESULT (From the Front) Initial 5 7 3 2 4 Iteration 1 5 3 2 4 7 Iteration 2 3 2 4 5 7 Iteration 3 2 3 4 5 7 Iteration 4 2 3 4 5 7 Bubble Sorting (From the Back) # The Working Principle of Bubble Sort is: Check starting from the n-th data to the 1st data Compare the n-th data with the data next to it ((n-1)-th) If it is smaller, move the number with the number in front of it If it is greater, no movement occurs Repeat steps 1 to 4 n-1 times with the number of data reduced by 1 every iteration Initial: [5, 7, 3, 2, 4]\nIteration 1: (Starts from the rightmost index) # Compare 2 and 4. (2 \u0026lt; 4) → Position is correct, no swap. [5, 7, 3, 2, 4] Compare 3 and 2. (3 \u0026gt; 2) → Swap! [5, 7, 2, 3, 4] Compare 7 and 2. (7 \u0026gt; 2) → Swap! [5, 2, 7, 3, 4] Compare 5 and 2. (5 \u0026gt; 2) → Swap! [2, 5, 7, 3, 4] Result: The smallest number (2) is already in the leftmost position (front). Iteration 2: (Ignore the first position which is sorted) # Compare 3 and 4. (3 \u0026lt; 4) → Position is correct, no swap. [2, 5, 7, 3, 4] Compare 7 and 3. (7 \u0026gt; 3) → Swap! [2, 5, 3, 7, 4] Compare 5 and 3. (5 \u0026gt; 3) → Swap! [2, 3, 5, 7, 4] Result: The second smallest number (3) is already in the correct position. Iteration 3: (Ignore the first and second positions) # Compare 7 and 4. (7 \u0026gt; 4) → Swap! [2, 3, 5, 4, 7] Compare 5 and 4. (5 \u0026gt; 4) → Swap! [2, 3, 4, 5, 7] Result: The third smallest number (4) is already in the correct position. Overall the arrangement is sorted. Iteration 4: # The system does one final round to make sure no more swaps occur (comparing 5 and 7). Because there are no swaps, the process is stopped. BUBBLE SORT (From the Back) Initial 5 7 3 2 4 Iteration 1 2 5 7 3 4 Iteration 2 2 3 5 7 4 Iteration 3 2 3 4 5 7 Iteration 4 2 3 4 5 7 Program Example # def BubbleSort(X): # This logic is actually Selection Sort for i in range(len(X)-1, 0, -1): Max = 0 for l in range(1, i+1): if X[l] \u0026gt; X[Max]: Max = l # Process of swapping temp = X[i] X[i] = X[Max] X[Max] = temp # --- Function call block --- Hasil = [22, 10, 15, 3, 8, 2] print(\u0026#34;Before:\u0026#34;, Hasil) BubbleSort(Hasil) print(\u0026#34;After: \u0026#34;, Hasil) [2, 3, 8, 10, 15, 22] Insertion Sort # Data sorting that compares data with the first two data elements, then compares the sorted data elements, then the comparison between the data will continue to be repeated until there are no remaining data elements (Rahayuningsih, 2016). Similar to how to sort cards, taken per sheet \u0026amp; inserted into the proper place. The Working Principle of Insertion Sort is:\nCheck starting from the 1st data to the n-th data The initial index is the 2nd data Check starting from the 1st data to the (index-1)-th data Compare the data at the index position with the checking data If the data at the index position is smaller, then the data can be inserted according to the position during checking, then shift the remaining data Repeat the above steps for the next index (I=I+1) up to n-1 times Initial: [5, 7, 3, 2, 4]\nThe first element (number 5) is considered as the already sorted part. We will start checking from the second element.\nIteration 1: # Take the second element, which is 7. Compare it with the element to its left (5). Because 7 is greater than 5 (7 \u0026gt; 5), its position is already correct. Result: [5, 7, 3, 2, 4] (Sorted part now: 5, 7) Iteration 2: # Take the third element, which is 3. Compare 3 with the elements to its left from right to left: 3 \u0026lt; 7 (Shift 7 to the right) 3 \u0026lt; 5 (Shift 5 to the right) Insert 3 at the very front position. Result: [3, 5, 7, 2, 4] (Sorted part now: 3, 5, 7) Iteration 3: # Take the fourth element, which is 2. Compare 2 with the elements to its left (7, 5, 3): 2 \u0026lt; 7 (Shift 7 to the right) 2 \u0026lt; 5 (Shift 5 to the right) 2 \u0026lt; 3 (Shift 3 to the right) Insert 2 at the very front position. Result: [2, 3, 5, 7, 4] (Sorted part now: 2, 3, 5, 7) Iteration 4: # Take the last element, which is 4. Compare 4 with the elements to its left: 4 \u0026lt; 7 (Shift 7 to the right) 4 \u0026lt; 5 (Shift 5 to the right) 4 \u0026gt; 3 (Stop shifting because 4 is greater than 3). Insert 4 right after number 3. Final Result: [2, 3, 4, 5, 7] (The entire array is sorted!). INSERTION SORT Initial 5 7 3 2 4 Iteration 1 5 7 3 2 4 Iteration 2 3 5 7 2 4 Iteration 3 2 3 5 7 4 Iteration 4 2 3 4 5 7 Program Example:\ndef InsertionSort(val): # Start from the second element (index 1) because the first element is considered already in position for index in range(1, len(val)): a = val[index] # \u0026#39;a\u0026#39; is the value we are holding/want to insert b = index # As long as there are still elements to the left (b\u0026gt;0) AND the element to the left is greater than \u0026#39;a\u0026#39; while b \u0026gt; 0 and val[b-1] \u0026gt; a: # Shift the larger element to the right val[b] = val[b-1] b = b - 1 # After finding the right position, insert \u0026#39;a\u0026#39; in that position val[b] = a # --- Function call block --- Angka = [22, 10, 15, 3, 8, 2] print(\u0026#34;Array before sorting:\u0026#34;, Angka) InsertionSort(Angka) print(\u0026#34;Array after sorting: \u0026#34;, Angka) [2, 3, 8, 10, 15, 22] Conclusion on Sorting Methods # Bubble sort requires the longest computing time. Insertion sort and Selection sort have the same complexity as Bubble sort, but their time is faster. ","date":"25 April 2026","externalUrl":null,"permalink":"/study/programming/algorithm-logic/09-sorting-methods/","section":"Study","summary":"The process of arranging a series of data into a certain order or arrangement. The sorted data can be numeric data, character data, or string data (Sitorus, 2015).","title":"Logic and Algorithms #09: Sorting Methods","type":"study"},{"content":"","date":"25 April 2026","externalUrl":null,"permalink":"/tags/sorting-methods/","section":"Tags","summary":"","title":"Sorting Methods","type":"tags"},{"content":"","date":"24 April 2026","externalUrl":null,"permalink":"/tags/divide-and-conquer/","section":"Tags","summary":"","title":"Divide and Conquer","type":"tags"},{"content":" D And C Method # Divide # Dividing the element values data from a data series into two parts and repeating the division until one element consists of a maximum of two values (Sonita \u0026amp; Nurtaneo, 2015).\nConquer # Sorting each element value data (Sonita \u0026amp; Nurtaneo, 2015).\nBasic Principles # Divide n inputs into k distinct input subsets (1 \u0026lt; k ≤ n). The k input subsets will result in k subproblems. Each subproblem has a solution forming k subsolutions. From the k subsolutions, an optimal solution will be obtained. If the subproblem is still large → D and C The General Form of the D And C Method Process can be seen as follows: # flowchart TD %% Top Node Top[\"n input\"] %% Level 1: Input Division In1[\"n input I\"] In2[\"n input II\"] In3[\"n input III\"] InK[\"n input K\"] %% Level 2: Subproblem Prob1[\"Subproblem I\"] Prob2[\"Subprob. II\"] Prob3[\"Subprob. III\"] ProbK[\"Subprob. K\"] %% Level 3: Subsolution Sol1[\"Subsolution I\"] Sol2[\"Subsolution II\"] Sol3[\"Subsolution III\"] SolK[\"Subsolution K\"] %% Bottom Node: Combined Solution Final[\"Optimal Solution\"] %% --- Arrow Flow --- %% From Top to Branch Inputs Top --\u003e In1 Top --\u003e In2 Top --\u003e In3 Top --\u003e InK %% From Branch Inputs to Subproblems In1 --\u003e Prob1 In2 --\u003e Prob2 In3 --\u003e Prob3 InK --\u003e ProbK %% From Subproblems to Subsolutions Prob1 --\u003e Sol1 Prob2 --\u003e Sol2 Prob3 --\u003e Sol3 ProbK --\u003e SolK %% From Subsolutions combined to Optimal Solution Sol1 --\u003e Final Sol2 --\u003e Final Sol3 --\u003e Final SolK --\u003e Final D AND C Method Uses a Recursive technique that divides a problem into two or more subproblems of the same size. Common problems for this technique are sorting, multiplication.\nD AND C Methods:\nMerge Sorting Quick Sorting Binary Search D and C Technique Merge Sort # Combines two sorted arrays (Utami, 2017) The merge sort method is a method that requires a recursive function for its completion. The Working Principle of Merge Sort is: # Group a series of numbers into 2 parts, 4 parts, 8 parts, \u0026hellip;\u0026hellip; etc. until they are left alone Perform sorting according to the previous group Perform sorting for the number of divisions Example 1:\nflowchart TD %% Level 1: Initial Array L1[\"22 | 10 | 15 | 3 | 8 | 2\"] %% Level 2: First Division L2_1[\"22 | 10 | 15\"] L2_2[\"3 | 8 | 2\"] %% Level 3: Second Division L3_1[\"22 | 10\"] L3_2[\"15\"] L3_3[\"3 | 8\"] L3_4[\"2\"] %% Level 4: Third Division (Single Units) L4_1[\"22\"] L4_2[\"10\"] L4_3[\"3\"] L4_4[\"8\"] %% Level 5: First Merge L5_1[\"10 | 22\"] L5_2[\"15\"] L5_3[\"3 | 8\"] L5_4[\"2\"] %% Level 6: Second Merge L6_1[\"10 | 15 | 22\"] L6_2[\"2 | 3 | 8\"] %% Level 7: Sorted Final Result L7[\"2 | 3 | 8 | 10 | 15 | 22\"] %% --- Divide Arrow Flow --- L1 --\u003e L2_1 L1 --\u003e L2_2 L2_1 --\u003e L3_1 L2_1 --\u003e L3_2 L2_2 --\u003e L3_3 L2_2 --\u003e L3_4 L3_1 --\u003e L4_1 L3_1 --\u003e L4_2 L3_3 --\u003e L4_3 L3_3 --\u003e L4_4 %% --- Conquer Arrow Flow (Merge) --- L4_1 --\u003e L5_1 L4_2 --\u003e L5_1 L3_2 --\u003e L5_2 L4_3 --\u003e L5_3 L4_4 --\u003e L5_3 L3_4 --\u003e L5_4 L5_1 --\u003e L6_1 L5_2 --\u003e L6_1 L5_3 --\u003e L6_2 L5_4 --\u003e L6_2 L6_1 --\u003e L7 L6_2 --\u003e L7 Example 2:\nInitial 5 7 3 2 4 Divide by 2 5 7 3 2 4 Divide by 4 5 7 3 2 4 Divide by 8 5 7 3 2 4 Sorting 1 5 7 3 2 4 Sorting 2 3 5 7 2 4 Sorting 3 2 3 4 5 7 def mergeSort(X): print(\u0026#34;Splitting array: \u0026#34;, X) if len(X) \u0026gt; 1: mid = len(X) // 2 lefthalf = X[:mid] righthalf = X[mid:] # Recursive to split array into smallest parts mergeSort(lefthalf) mergeSort(righthalf) i = j = k = 0 # Process of merging back in order while i \u0026lt; len(lefthalf) and j \u0026lt; len(righthalf): if lefthalf[i] \u0026lt; righthalf[j]: X[k] = lefthalf[i] i = i + 1 else: X[k] = righthalf[j] j = j + 1 k = k + 1 # Put remaining elements from lefthalf (if any) while i \u0026lt; len(lefthalf): X[k] = lefthalf[i] i = i + 1 k = k + 1 # Put remaining elements from righthalf (if any) while j \u0026lt; len(righthalf): X[k] = righthalf[j] j = j + 1 k = k + 1 print(\u0026#34;Merging: \u0026#34;, X) # --- Function call block --- X = [22, 10, 15, 3, 8, 2] print(\u0026#34;Initial array:\u0026#34;, X) print(\u0026#34;-\u0026#34; * 30) mergeSort(X) print(\u0026#34;-\u0026#34; * 30) print(\u0026#34;Final result:\u0026#34;, X) Program Output:\nInitial array: [22, 10, 15, 3, 8, 2] ------------------------------ Splitting array: [22, 10, 15, 3, 8, 2] Splitting array: [22, 10, 15] Splitting array: [22] Merging: [22] Splitting array: [10, 15] Splitting array: [10] Merging: [10] Splitting array: [15] Merging: [15] Merging: [10, 15] Merging: [10, 15, 22] Splitting array: [3, 8, 2] Splitting array: [3] Merging: [3] Splitting array: [8, 2] Splitting array: [8] Merging: [8] Splitting array: [2] Merging: [2] Merging: [2, 8] Merging: [2, 3, 8] Merging: [2, 3, 8, 10, 15, 22] ------------------------------ Final result: [2, 3, 8, 10, 15, 22] Quick Sorting # Is the fastest method Quicksort was introduced by C.A.R. Hoare. Quicksort partition exchange sort, because its concept makes parts, and sorting is done per part. In the quick sort algorithm, pivot selection is what determines whether the quicksort algorithm will provide the best or worst performance (Nugraheny, 2018). For example, there are N elements in descending order, it is possible to sort the N elements N/2 times, namely by first swapping the leftmost element with the rightmost element, then gradually towards the element in the middle. But this can only be done if you know for sure that the order is descending.\nBroadly speaking, this method is described as follows. For example: will sort a vector A that has N elements. Choose any from the vector, usually the first element, for example X. Then all these elements are arranged by placing X in position J such that the 1st to the j-1th elements have a value smaller than X and the J+1th to the Nth elements have a value greater than X.\nThus having two subvectors, the first subvector whose element values are smaller than X, the second subvector whose element values are greater than X.\nIn the next step, the above process is repeated on both subvectors, so it will have four subvectors. The above process is repeated on each subvector so that all elements of the entire vector become sorted.\nflowchart TD %% Level 1: Initial Array L1[\"23 | 45 | 12 | 24 | 56 | 34 | 27 | 23 | 16\"] %% Level 2: First Split (Pivot 23) L2_1[\"12 | 23 | 16\"] L2_2[\"23\"] L2_3[\"45 | 24 | 56 | 34 | 27\"] L1 -- \"Left Subvector\" --\u003e L2_1 L1 --\u003e L2_2 L1 -- \"Right Subvector\" --\u003e L2_3 %% Level 3 L3_1[\"12\"] L3_2[\"23 | 16\"] L3_3[\"23\"] L3_4[\"24 | 34 | 27\"] L3_5[\"45\"] L3_6[\"56\"] L2_1 --\u003e L3_1 L2_1 --\u003e L3_2 L2_2 --\u003e L3_3 L2_3 --\u003e L3_4 L2_3 --\u003e L3_5 L2_3 --\u003e L3_6 %% Level 4 L4_1[\"12\"] L4_2[\"16\"] L4_3[\"23\"] L4_4[\"23\"] L4_5[\"24\"] L4_6[\"34 | 27\"] L4_7[\"45\"] L4_8[\"56\"] L3_1 --\u003e L4_1 L3_2 --\u003e L4_2 L3_2 --\u003e L4_3 L3_3 --\u003e L4_4 L3_4 --\u003e L4_5 L3_4 --\u003e L4_6 L3_5 --\u003e L4_7 L3_6 --\u003e L4_8 %% Level 5: Final Result (Sorted Units) L5_1[\"12\"] L5_2[\"16\"] L5_3[\"23\"] L5_4[\"23\"] L5_5[\"24\"] L5_6[\"27\"] L5_7[\"34\"] L5_8[\"45\"] L5_9[\"56\"] L4_1 --\u003e L5_1 L4_2 --\u003e L5_2 L4_3 --\u003e L5_3 L4_4 --\u003e L5_4 L4_5 --\u003e L5_5 L4_6 --\u003e L5_6 L4_6 --\u003e L5_7 L4_7 --\u003e L5_8 L4_8 --\u003e L5_9 Example 2 Select vector X \u0026rarr; first element Iteration 1 22 10 15 3 8 2 22 10 15 3 8 2 22 Iteration 2 Select the next vector X 10 15 3 8 2 22 10 3 8 2 10 15 22 Iteration 3 Select the next vector X 3 8 2 10 15 22 3 2 3 8 10 15 22 Binary Search # Binary Search (For sorted data) Used to find an item of data in a set of data that is arranged in order, namely data that has been sorted from largest to smallest/vice versa. The process is carried out for the first time on the middle part of the elements of the set, if the data being searched for turns out to be \u0026lt; the elements above it, then the search is carried out from the middle to the bottom.\nBinary Search Algorithm\nLow = 1, High = N While Low \u0026lt;= High Then do step No. 3, Otherwise do step No. 7 Determine the Mid Value with the formula (Low + High) Div 2 If X \u0026lt; Mid Value, Then High = Mid – 1, Repeat step 1 If X \u0026gt; Mid Value, Then Low = Mid + 1, Repeat step 1 If X = Mid Value, Then Mid Value = Value sought If X \u0026gt; High Then Search FAILS Example:\nData A = { 1, 3, 9, 11, 15, 22, 29, 31, 48 } Sought 3\nSearch Steps:\nStep 1: Low = 1 and High = 9\nStep 2: Low \u0026lt;= High (if YES to L-3, if NO to L-7)\nStep 3: Mid = (1+9) div 2 = 5 which is 15\nStep 4: 3 \u0026lt; 15, then High = 5 – 1 = 4 which is 11\nStep 1: Low = 1 and High = 4\nStep 2: Low \u0026lt;= High\nStep 3: Mid = (1+4) div 2 = 2 which is 3\nStep 4: 3 \u0026lt; 3, to step 5\nStep 5: 3 \u0026gt; 3, to step 6\nStep 6: 3 = 3 (Search successful)\nBinary Search Program Coding # def BinSearch(data, key): awal = 0 akhir = len(data) - 1 ketemu = False while (awal \u0026lt;= akhir) and not ketemu: tengah = (awal + akhir) // 2 if key == data[tengah]: ketemu = True print(\u0026#39;data\u0026#39;, key, \u0026#39;found at position\u0026#39;, tengah + 1) elif key \u0026lt; data[tengah]: akhir = tengah - 1 else: awal = tengah + 1 if not ketemu: print(\u0026#39;data not found\u0026#39;) # --- Your test data --- data = [1, 3, 9, 11, 15, 22, 29, 31, 48] print(\u0026#34;Array data:\u0026#34;, data) print(\u0026#34;Searching for number: 3\u0026#34;) print(\u0026#34;-\u0026#34; * 30) BinSearch(data, 3) Program Result:\ndata 3 found at position 2 D AND C Technique # With the Basic Principle of the Divide \u0026amp; Conquer Method, a process problem of Searching for Max \u0026amp; Min elements can be solved with the D and C technique.\nProduces an optimal solution to find Maximum and Minimum values.\nExample:\nDetermine the MaxMin elements of an array A consisting of 9 numbers:\nA[1] = 22, A[4] = -8, A[7] = 17 A[2] = 13, A[5] = 15, A[8] = 31 A[3] = -5, A[6] = 60, A[9] = 47 Resolution D and C Technique\nA = {22,13, -5, -8, 15, 60, 17, 31, 47}\nflowchart TD %% Level 1 (Root) N1[\"1,9 | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] %% Level 2 N2_1[\"1,5 | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N2_2[\"6,9 | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] %% Level 3 N3_1[\"1,3 | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N3_2[\"4,5 | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N3_3[\"6,7 | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N3_4[\"8,9 | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] %% Level 4 N4_1[\"1,2 | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] N4_2[\"3,3 | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\"] %% --- Division Arrow Flow --- N1 --\u003e N2_1 N1 --\u003e N2_2 N2_1 --\u003e N3_1 N2_1 --\u003e N3_2 N2_2 --\u003e N3_3 N2_2 --\u003e N3_4 N3_1 --\u003e N4_1 N3_1 --\u003e N4_2 D AND C Technique Resolution # Then Process tree call from each element indicated in the tree chart above. By, first reversing the tree position from bottom to top. Then filling it with its elements according to the tree chart.\nPay attention to this tree call chart:\nA = { 22, 13, -5, -8, 15, 60, 17, 31, 47 }\nMerge position \u0026rarr; Max, Min flowchart TD %% Level 1 (Leaves/Initial Position at Top) N12[\"1,2 | 22,13\"] N33[\"3,3 | -5,-5\"] N45[\"4,5 | -8,15\"] N67[\"6,7 | 60,17\"] N89[\"8,9 | 31,47\"] %% Level 2 (Merge Stage 1) N13[\"1,3 | 22,-5\"] %% Level 3 (Merge Stage 2) N15[\"1,5 | 22,-8\"] N69[\"6,9 | 60,17\"] %% Level 4 (Root/Final Result at Bottom) N19[\"1,9 | 60,-8\"] %% --- Line Flow (Using --- for straight lines without arrows) --- N12 --- N13 N33 --- N13 N13 --- N15 N45 --- N15 N67 --- N69 N89 --- N69 N15 --- N19 N69 --- N19 ","date":"24 April 2026","externalUrl":null,"permalink":"/study/programming/algorithm-logic/08-divide-and-conquer-method/","section":"Study","summary":"The Divide and Conquer method is a problem-solving approach that divides a problem into smaller parts, solves each part, and then combines the results.","title":"Logic and Algorithms #08: Divide and Conquer Method","type":"study"},{"content":"","date":"23 April 2026","externalUrl":null,"permalink":"/tags/array/","section":"Tags","summary":"","title":"Array","type":"tags"},{"content":" Arrays # An array is a type of variable that can be used to store a set of data of the same type (Kadir, 2017). An array is also called a table, vector, or list. Purpose of using Arrays: # You can easily loop or iterate through elements in an array and retrieve the required value just by specifying the index number.\nEach element in an array is accessed by distinguishing its index/subscript.\nExample 1:\nA[1] = 3\nA[2] = 5\nA[3] = 10\nExample 2:\nArray of integers [1, 2, 3, 4, 5], the index starts from 0 to (n-1), where n is the length of the array.\nProgram code to create and display an array:\nimport numpy as np a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) print(a) # Output [[1 2 3 4] [5 6 7 8] [9 10 11 12]] Array Dimensions Consist of: # One-Dimensional Array Two-Dimensional Array 1. One-Dimensional Array # A variable that stores a set of data of the same type and elements are accessed through only 1 index or subscript.\nGeneral Form:\nArray_name[number_of_elements]\nExample:\n**Example of a 1-Dimensional Array Program:\nassignment_scores = [70, 80, 90, \u0026#34;Passed Remark\u0026#34;] print(\u0026#34;Assignment Scores:\u0026#34;) print(assignment_scores) # Output Assignment Scores: [70, 80, 90, \u0026#39;Passed Remark\u0026#39;] 2. Two-Dimensional Array # A two-dimensional array is also referred to as a nested array or nested list. A two-dimensional array consists of rows and columns. General Form:\narray_name[number_of_row_elements] [number_of_column_elements]\nExample:\nProgram Example:\narray=[[\u0026#34;Engineering\u0026#34;,\u0026#34;Medicine\u0026#34;,\u0026#34;Math \u0026amp; Science\u0026#34;],[1,2,3]] print(array) # Output [[\u0026#39;Engineering\u0026#39;, \u0026#39;Medicine\u0026#39;, \u0026#39;Math \u0026amp; Science\u0026#39;], [1, 2, 3]] The two-dimensional array example shows a two-dimensional array with a size of 2x3 containing the order of faculties based on their difficulty level. The first row represents the names of the faculties and the second row represents the difficulty level.\nMatrix # A matrix is a Data Presentation Matrix terms include: Order (Matrix dimensions containing rows and columns), elements, rows, and columns. Example: m = row, n = column\nm x n:\na11 a12 a13\u0026hellip;..a1n\na21 a22 \u0026hellip;\u0026hellip;a2n -\u0026gt; elements\nam1 am2 \u0026hellip;\u0026hellip;amn\n2 1 2\n3 0 1 -\u0026gt; Order 3x3\n2 0 0\nResult:\na11 = 2, a21 = 3, a31 = 2 a12 = 1, a22 = 0, a32 = 0 a13 = 2, a23 = 1, a33 = 0 Matrix in Python Programming # Created just like a 2-dimensional array. Usually accessed in the form A[i][j] where:\nA = matrix name I = row index J = column index\nThere are 3 main parts in a square matrix (same order), namely: Two-Dimensional Array # Given matrix A as follows:\n1 1 1 1\n0 1 1 1\n0 0 1 1\n0 0 0 1\nThe main command used to fill matrix A is:\nA[i,j] = 1, if i \u0026lt;= j, A[i,j] = 0, if i \u0026gt; j\nProgram:\n# 4x4 matrix declaration matriks = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]] # Fill 4x4 matrix for i in range(4): for j in range(4): if i == j: matriks[i][j] = 1 if i \u0026lt; j: matriks[i][j] = 1 if i \u0026gt; j: matriks[i][j] = 0 # Print matrix form for i in range(4): print(matriks[i]) Exercises # Given matrix A as follows:\n1 2 3 4\n0 2 3 4\n0 0 3 4\n0 0 0 4\nThe main command used to fill matrix A is:\nGiven the following algorithm:\nnilai = [1, 2, 3, 4] for i in range(len(nilai)): nilai[i] = 2 * i + 1 print(nilai[i]) The algorithm above will produce the value..\n","date":"23 April 2026","externalUrl":null,"permalink":"/study/programming/algorithm-logic/07-array/","section":"Study","summary":"An array is a data structure used to store multiple values in a single variable.","title":"Logic and Algorithms #07: Array","type":"study"},{"content":"Recursion is a process that can call itself.\nExample of Recursion Concept\nProblem : Slicing bread thinly until it runs out\nAlgorithm :\nIf the bread runs out or the slice is the thinnest possible, the bread slicing is complete. If the bread can still be sliced, cut a thin slice from the edge of the bread, then perform procedures 1 and 2 for the remaining part. Examples of Recursive Functions # Power function (Exponentiation) Factorial Fibonacci Tower of Hanoi Power Function # Calculating 10 to the power of n using the recursive concept.\nIn programming notation, it can be written as:\n100 = 1 \u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip; (1)\n10n = 10 * 10n-1 \u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip; (2)\nExample:\n103 = 10 _ 102\n102 = 10 _ 101\n101 = 10 * 100\n100 = 1\nPower Function Program # # Recursive Power Function def pangkat(x, y): if y == 0: return 1 else: return x * pangkat(x, y - 1) x = int(input(\u0026#34;Enter Value X: \u0026#34;)) y = int(input(\u0026#34;Enter Value Y: \u0026#34;)) print(\u0026#34;%d to the power of %d = %d\u0026#34; % (x, y, pangkat(x, y))) # Output Enter Value X: 10 Enter Value Y: 3 10 to the power of 3 = 1000 The power function will call itself; each inputted x and y value will be sent to the pangkat() function through the parameters x and y. As long as the value of y is not 0, the pangkat() function will continue calling itself, and the value of y will always decrease by 1 (y-1) until the condition is met and the repetition stops. Factorial # 0! = 1\nN! = N x (N-1)! For N \u0026gt; 0\nIn programming notation, it can be written as:\nFAKT(0) = 1 \u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;. (1)\nFAKT(N) = N * FAKT(N-1) \u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;. (2)\nExample:\nFAKT(5) = 5 _ FAKT(4)\nFAKT(4) = 4 _ FAKT(3)\nFAKT(3) = 3 _ FAKT(2)\nFAKT(2) = 2 _ FAKT(1)\nFAKT(1) = 1 * FAKT(0)\nRecursive Factorial Calculation # Calculate 5!, it can be done recursively as follows: 5! = 5 * 4!\nRecursively, the value of 4! can be recalculated as 4 _ 3!, so 5! becomes: 5! = 5 _ 4 * 3!\nRecursively, the value of 3! can be recalculated as 3 _ 2!, so 5! becomes: 5! = 5 _ 4 _ 3 _ 2!\nRecursively, the value of 2! can be recalculated as 2 _ 1, so 5! becomes: 5! = 5 _ 4 _ 3 _ 2 * 1 = 120.\nFactorial Program # # Recursive Factorial Function def faktorial(a): if a == 1: return a else: return a * faktorial(a - 1) bil = int(input(\u0026#34;Enter a Number: \u0026#34;)) print(\u0026#34;%d! = %d\u0026#34; % (bil, faktorial(bil))) # Output Enter a Number : 5 5! = 120 Enter a Number : 6 6! = 720 Factorial Function # The Factorial function is a recursive function because it calls itself. When executed, the program will prompt to \u0026ldquo;Enter a Number\u0026rdquo; into the variable bil, then the number will be sent to the faktorial() function via parameter a. As long as the value of a is not 1, the factorial function will continue calling itself. The repetition will stop when the value = 1. Fibonacci # Fibonacci Sequence : 0, 1, 1, 2, 3, 5, 8, 13, \u0026hellip;\u0026hellip;\u0026hellip;\nIn programming notation, it can be written as:\nFibo(1) = 0 \u0026amp; Fibo(2) = 1 \u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;. (1)\nFibo(N) = Fibo(N-1) + Fibo(N-2) \u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip;\u0026hellip; (2)\nExample:\nFibo(5) = Fibo(4) + Fibo(3)\nFibo(4) = Fibo(3) + Fibo(2)\nFibo(3) = Fibo(2) + Fibo(1)\nFibonacci Sequence Program # def fibonacci(n): if n == 0 or n == 1: return n else: return fibonacci(n - 1) + fibonacci(n - 2) x = int(input(\u0026#34;Enter Fibonacci Sequence Limit: \u0026#34;)) print(\u0026#34;Fibonacci Sequence:\u0026#34;) for i in range(x): print(fibonacci(i), end=\u0026#39; \u0026#39;) # Output Enter Fibonacci Sequence Limit: 5 Fibonacci Sequence 0 1 1 2 3 Enter Fibonacci Sequence Limit: 8 Fibonacci Sequence 0 1 1 2 3 5 8 13 Fibonacci Function # The Fibonacci function is a recursive function that calls itself. Fibonacci numbers are numbers that have initial terms of 0 and 1, and the next term is the sum of the previous two terms. The Fibonacci function will keep calling itself when (value n) is not 0 or 1 by performing an addition process (fibonacci(n-1) + fibonacci(n-2)). Tower of Hanoi Concept # If n=1, then simply move the disk from peg A to peg C \u0026amp; done. Move the top n-1 disks from peg A to peg B. Move the nth disk (last disk) from peg A to peg C. Move n-1 disks from peg B to peg C. The moving steps above can be changed into the following notation:\nTower(n, source, auxiliary, destination)\nFor a number of disks n \u0026gt; 1, it can be divided into 3 resolution notations: Tower(n-1, Source, Destination, Auxiliary); Tower(n, Source, Auxiliary, Destination); or Source -\u0026gt; Destination; Tower(n-1, Auxiliary, Source, Destination); Disk Moving Steps # TOWER(1, A, C, B)\nMove disk from peg A to peg B: A → B\nTOWER(2, A, B, C)\nMove two disks from peg A to peg C: A → C\nMove one disk from peg A to peg B: A → B\nTOWER(1, B, A, C)\nMove disk from peg B to peg C: B → C\nTOWER(3, A, C, B)\nMove three disks from peg A to peg B: A → B\nMove one disk from peg A to peg C: A → C\nMove two disks from peg A to peg B: A → B\nTOWER(1, C, B, A)\nMove disk from peg C to peg A: C → A\nTOWER(2, C, A, B)\nMove two disks from peg C to peg B: C → B\nMove one disk from peg C to peg A: C → A\nTOWER(1, A, C, B)\nMove disk from peg A to peg B: A → B\nTOWER(1, A, C, B)\nMove one disk from peg A to peg C: A → C\nTOWER(4, A, B, C)\nMove four disks from peg A to peg B: A → B\nMove one disk from peg B to peg C: B → C\nMove two disks from peg B to peg A: B → A\nMove one disk from peg C to peg B: C → B\nMove three disks from peg A to peg C: A → C\nMove one disk from peg A to peg B: A → B\nMove two disks from peg A to peg C: A → C\nMove one disk from peg B to peg A: B → A\nMove one disk from peg B to peg C: B → C\nMove one disk from peg A to peg B: A → B\nMove one disk from peg C to peg A: C → A\nTOWER(1, B, A, C)\nMove disk from peg B to peg C: B → C\nThe illustration above produces 15 completion steps from the Tower of Hanoi concept problem with 4 disks.\nFor a video of the Tower of Hanoi concept, it can be seen at:\nLink\nMoving Steps Formula:\n2N - 1\nN = Number of Disks\n","date":"22 April 2026","externalUrl":null,"permalink":"/study/programming/algorithm-logic/06-recursive-structures/","section":"Study","summary":"A recursive structure is a concept where a function calls itself to solve a problem.","title":"Logic and Algorithms #06: Recursive Structures","type":"study"},{"content":"","date":"22 April 2026","externalUrl":null,"permalink":"/tags/recursive-structures/","section":"Tags","summary":"","title":"Recursive Structures","type":"tags"},{"content":"A repetition (looping) instruction is an instruction that can repeat the execution of a series of other instructions repeatedly according to specified conditions. The structure of a looping instruction basically consists of:\nLoop condition. A condition that must be met for the loop to occur. Loop body. A series of instructions whose execution will be repeated. Loop counter. A variable whose value must change for the loop to occur and ultimately limit the number of loops that can be executed. Loop Forms in Python # For Loop. A loop that executes the \u0026ldquo;same statement block\u0026rdquo; repeatedly based on specified requirements or conditions. While Loop. A loop that executes commands as long as the condition evaluates to true. Nested Loop. A loop inside a loop. 1. For Loop # General Form\nFor variable in range: statements Flowchart - For\nDisplaying a Series of Numbers # Algorithm series Declaration n, i : integer Begin read(n) for i in range n write(i) End # Display Number Series n = int(input(\u0026#39;Amount of Data: \u0026#39;)) for i in range(n): print(i) # Output Amount of Data : 5 0 1 2 3 4 Note: In Python, looping with the Range function starts from 0 Algorithm explanation: First input the value n, for example: 5, then a loop occurs with i=0 up to n. The loop is executed as long as the condition is true. Then write (i) produces output 0 etc., the process is repeated again until i is less than the value of n.\nCommand n i=0..n i Output read(n) 5 i=0: write(i) true 0 0 i=1: write(i) true 1 1 i=2: write(i) true 2 2 i=3: write(i) true 3 3 i=4: write(i) true 4 4 i=5: write(i) false 2. While Loop # The loop will continue to be executed as long as the condition is True/correct.\nGeneral Form\nwhile condition: statement(s) While Loop Flowchart\nThere is an instruction related to the condition before entering the while so that this condition is true (met) and the repetition can be executed. There is an instruction among the repeated instructions that changes the value of the loop variable so that when the loop condition is not met, the loop stops. Displaying a Series of Even Numbers # Algorithm series Declaration n, x : integer Begin read(n) x \u0026lt;- 2 while x \u0026lt;= n do write(x) x \u0026lt;- x + 2 End # Display a Series of Even Numbers n = int(input(\u0026#39;Enter the Value of N: \u0026#39;)) x = 2 while x \u0026lt;= n: print(x, end=\u0026#34; \u0026#34;) x = x + 2 # Output Enter the Value of N : 8 2 4 6 8 First input the value n = 8, then x is given the value 2, after that x is compared with n. If (x\u0026lt;=n) is true then x is displayed then x is added by 2 and produces a new x value. After that the data goes back up and tests if (X\u0026lt;=N) is true, if yes the same process as before is done again. And so on until (x\u0026lt;=n) is false.\nSeries Storage Table # While algorithm to display numbers 1 to 15 # Algorithm While_Loop {printing numbers 1 to 15} Declaration number = 1 Description while number \u0026lt;= 15: print number number \u0026lt;- number + 1 Python Program to Print numbers 1 to 15 # # While Loop angka = 1 while angka \u0026lt;= 15: print (\u0026#34;Number: \u0026#34;, angka) angka = angka + 1 print (\u0026#34;Thank You\u0026#34;) # Output Running Result : Number: 1 Number: 2 Number: 3 Number: 4 Number: 5 Number: 6 Number: 7 Number: 8 Number: 9 Number: 10 Number: 11 Number: 12 Number: 13 Number: 14 Number: 15 Thank You Python Program to Print numbers Descending from 10 to 1 # # While Loop # Printing numbers 10 to 1 bil = 10 while bil \u0026gt; 0: print(bil) bil = bil - 1 print(\u0026#34;Result of Printing Numbers in Descending Order\u0026#34;) # Output 10 9 8 7 6 5 4 3 2 1 Result of Printing Numbers in Descending Order Python Program to Determine if a Number is Prime or Not # # Input number bilangan = int(input(\u0026#34;Enter Number: \u0026#34;)) # Prime numbers must be greater than 1 if bilangan \u0026gt; 1: for i in range(2, bilangan): if (bilangan % i) == 0: print(bilangan, \u0026#34;is not a prime number\u0026#34;) print(i, \u0026#34;times\u0026#34;, bilangan // i, \u0026#34;=\u0026#34;, bilangan) break else: print(bilangan, \u0026#34;is a prime number\u0026#34;) # If the number is less than or equal to one else: print(bilangan, \u0026#34;is not a prime number\u0026#34;) # Output Enter Number : 137 137 is a prime number Enter Number : 147 147 is not a prime number 3 times 49 = 147 BREAK Command; # Functions to exit a for or while loop, its general form is:\n... ... break ... ... Python Program Using the Break Command # # break command in a for loop # The program will exit after printing numbers up to 6 because of the break command bil = 6 for i in range(0, 10): print(i) if i == bil: break # Output 0 1 2 3 4 5 6 Note: Looping will continue to be executed until forced out by a break; instruction Continue Command: # The Continue function will perform the repetition starting from the beginning again.\n# Use of continue in while bil = 0 pilihan = \u0026#39;y\u0026#39; while (pilihan != \u0026#39;n\u0026#39;): bil = int(input(\u0026#34;Enter a number below 50: \u0026#34;)) if (bil \u0026gt; 50): print(\u0026#34;Number exceeds 50, Please try again.\u0026#34;) continue print(\u0026#34;The square of this number is: \u0026#34;, bil * bil) pilihan = input(\u0026#34;Do you want to try again (y/n)? \u0026#34;) # Output Enter a number below 50: 20 The square of this number is: 400 Do you want to try again (y/n)? y Enter a number below 50: 36 The square of this number is: 1296 Do you want to try again (y/n)? y Enter a number below 50: 70 Number exceeds 50, Please try again. Enter a number below 50: 25 The square of this number is: 625 Do you want to try again (y/n)? n 3. Nested Loop # General Form of Nested While:\nWhile condition: while condition: statement(s) statement(s) General Form of Nested For:\nfor variable in range: for variable in range: statement(s) statement(s) Python Program Using Nested While to Print Prime Numbers between 1 - 50 # # Program Using Nested While # To print prime numbers between 1 and 50 i = 2 while(i \u0026lt; 50): j = 2 while(j \u0026lt;= (i/j)): if not(i % j): break j = j + 1 if (j \u0026gt; i/j): print(i, \u0026#34;is a Prime Number\u0026#34;) i = i + 1 print(\u0026#34;Thank You\u0026#34;) # Output 2 is a Prime Number 3 is a Prime Number 5 is a Prime Number 7 is a Prime Number 11 is a Prime Number 13 is a Prime Number 17 is a Prime Number 19 is a Prime Number 23 is a Prime Number 29 is a Prime Number 31 is a Prime Number 37 is a Prime Number 41 is a Prime Number 43 is a Prime Number 47 is a Prime Number Thank You Python Program # Create a Program to print even numbers from 1 to 10: for i in range(2,12,2): print(i) # Output 2 4 6 8 10 Create a program to sum Numbers 1 to 10 jum = 0 for i in range(10): i = i + 1 print(i) jum = jum + i print(\u0026#34;The Sum of Numbers 1 - 10 is: \u0026#34;, jum) #Output 1 2 3 4 5 6 7 8 9 10 The Sum of Numbers 1 - 10 is: 55 Create a program to draw a right-angled triangle by inputting an integer. Input \u0026amp; output format:\nInput is an integer with the range: 1 ≤ 𝑁 ≤ 100.\nThe program output is the \u0026lsquo;*\u0026rsquo; character depicting a right-angled triangle pattern.\n# Ask the user for a positive integer input n = int(input(\u0026#34;Enter a Positive Integer: \u0026#34;)) # Input validation, ensure n is a positive integer if n \u0026lt;= 0: print(\u0026#34;Invalid input. Please enter a positive integer.\u0026#34;) else: # Perform a nested for loop to generate the right-angled pattern for i in range(0, n): for j in range(0, i + 1): print(\u0026#39;* \u0026#39;, end=\u0026#39;\u0026#39;) print(\u0026#39;\u0026#39;) # Move to the next line after each line of stars is complete # Output * * * * * * * * * * * * * * * ","date":"21 April 2026","externalUrl":null,"permalink":"/study/programming/algorithm-logic/05-looping/","section":"Study","summary":"Looping is a control structure that allows a program to repeat the execution of a block of code as long as a certain condition is met.","title":"Logic and Algorithms #05: Looping","type":"study"},{"content":"Branching structures in Python programming are:\nif Branching Structure if else Branching Structure if elif else Branching Structure nested if Branching Structure 1. if Branching Structure # The if branching structure is used for a single decision choice. If the condition is True, the statement is executed. If the condition is False, the statement is not executed.\nGeneral Form\nif condition: statement if flowchart:\nExample if condition # If the Exam Score \u0026gt;= 70, then print \u0026ldquo;Congratulations You Passed the Exam\u0026rdquo;. The Python program code is as follows:\n# if Branching structure Nilai = input(\u0026#39;Enter Your Score: \u0026#39;) if Nilai \u0026gt;= \u0026#39;70\u0026#39;: print(\u0026#39;Congratulations You Passed the Exam\u0026#39;) # Output 75 Congratulations You Passed the Exam 2. if else Branching Structure # The if ... else branching will evaluate a condition. If it evaluates to True, statement1 is executed; if the condition evaluates to False, statement2 is executed.\nGeneral Form:\nif condition: statement1 else: statement2 Determining Even or Odd Numbers # Problem: Create an algorithm to determine whether a given number is even or odd.\nProblem Identification:\nInput: Integer\nOutput: \u0026ldquo;Odd\u0026rdquo; or \u0026ldquo;Even\u0026rdquo; number.\nalgorithm even_odd_number Declaration Bil: integer Ket: string Begin Read (bil) If bil mod 2 = 0 then ket \u0026lt;- \u0026#39;even\u0026#39; Else ket \u0026lt;- \u0026#39;odd\u0026#39; Write (ket) end Initially, a variable (bil) is inputted, for example, 5. Because the condition (bil mod 2 = 0) is false, the ket variable becomes the one after else, which is \u0026lsquo;odd\u0026rsquo;, so the write (ket) command outputs \u0026lsquo;odd\u0026rsquo;.\nEven/Odd Number Flowchart # Example if else Program to Determine Odd or Even Numbers # # if ... else Branching structure bilangan = int(input(\u0026#39;Enter A Number: \u0026#39;)) if bilangan % 2 == 0: print(\u0026#34;Number {} is even.\u0026#34;.format(bilangan)) else: print(\u0026#34;Number {} is odd.\u0026#34;.format(bilangan)) Running Result: Enter A Number: 9 Number 9 is odd. Enter A Number: 6 Number 6 is even. 3. if elif else Branching Structure # Used to test more than 2 conditions. If condition1 is true, statement1 is executed. If false, it proceeds to condition2. If condition2 is true, statement2 is executed, and if false, statement3 is executed.\nGeneral form:\nif condition1: statement1 elif condition2: statement2 else: statement3 Example if elif else Program # # if ... elif ... else Branching Structure Nilai = input(\u0026#39;Enter Final Score: \u0026#39;) if Nilai \u0026gt;= 80: print(\u0026#39;Grade = A\u0026#39;) elif Nilai \u0026gt;= 70: print(\u0026#39;Grade = B\u0026#39;) elif Nilai \u0026gt;= 60: print(\u0026#39;Grade = C\u0026#39;) elif Nilai \u0026gt;= 40: print(Grade = D) else: printf(Grade = E) Running Result: Enter Final Score: 70 Grade = B \u0026gt;\u0026gt;\u0026gt; Enter Final Score: 90 Grade = A \u0026gt;\u0026gt;\u0026gt; Enter Final Score: 65 Grade = C \u0026gt;\u0026gt;\u0026gt; 4. Nested if Branching Structure # Nested if\nA nested if condition is an if condition inside another if condition.\nGeneral form:\nif condition1: if condition 1.1: statement 1.1 elif condition 1.2: statement 1.2 else: statement 1.3 elif condition2: if condition 2.1: statement 2.1 elif condition 2.2: statement 2.2 else: statement: 2.3 else: statement3 Example Nested if Program # # Nested If Branching Structure # Shirt Brand Polo/Alisan/StYess Merk = input(\u0026#39;Shirt Brand P/A/S: \u0026#39;) if Merk == \u0026#39;P\u0026#39;: print(\u0026#39;Brand Polo\u0026#39;) ukuran = input(\u0026#39;Size L/M/S: \u0026#39;) if ukuran == \u0026#39;L\u0026#39;: print(\u0026#39;Price = 300000\u0026#39;) elif ukuran == \u0026#39;M\u0026#39;: print(\u0026#39;Price = 225000\u0026#39;) else: print(\u0026#39;Price = 175000\u0026#39;) elif Merk == \u0026#39;A\u0026#39;: print(\u0026#39;Brand Alisan\u0026#39;) ukuran = input(\u0026#39;Size L/M/S: \u0026#39;) if ukuran == \u0026#39;L\u0026#39;: print(\u0026#39;Price = 275000\u0026#39;) elif ukuran == \u0026#39;M\u0026#39;: print(\u0026#39;Price = 200000\u0026#39;) else: print(\u0026#39;Price = 150000\u0026#39;) elif Merk == \u0026#39;S\u0026#39;: print(\u0026#39;Brand StYess\u0026#39;) ukuran = input(\u0026#39;Size L/M/S: \u0026#39;) if ukuran == \u0026#39;L\u0026#39;: print(\u0026#39;Price 250000\u0026#39;) elif ukuran == \u0026#39;M\u0026#39;: print(\u0026#39;Price = 175000\u0026#39;) else: print(\u0026#39;Price = 125000\u0026#39;) else: print(\u0026#39;Invalid Brand\u0026#39;) Running Result: Shirt Brand P/A/S: P Brand Polo Size L/M/S: L Price = 300000 Shirt Brand P/A/S: A Brand Alisan Size L/M/S: S Price = 150000 Note: Shirt Brand and Size are inputted with Uppercase Letters. ","date":"20 April 2026","externalUrl":null,"permalink":"/study/programming/algorithm-logic/04-branching/","section":"Study","summary":"Branching is a control structure that allows a program to make decisions based on certain conditions.","title":"Logic and Algorithms #04: Branching","type":"study"},{"content":"","date":"19 April 2026","externalUrl":null,"permalink":"/tags/flowchart/","section":"Tags","summary":"","title":"Flowchart","type":"tags"},{"content":"","date":"19 April 2026","externalUrl":null,"permalink":"/tags/learning/","section":"Tags","summary":"","title":"Learning","type":"tags"},{"content":"It is a diagram that describes the logical arrangement of a program. The symbols used are as follows:\nSymbol Symbol Name Description Terminal as the beginning (contains \u0026lsquo;Start\u0026rsquo;) and as the end (contains \u0026lsquo;End\u0026rsquo;/\u0026lsquo;Stop\u0026rsquo;). Input/Output Reads input or displays output. Process/Processing Processes data through arithmetic and logical operations. Decision/(decision box) Functions to decide the direction/branch taken according to the fulfilled condition, namely True/False. Subroutine/subprogram To execute the process of a part (subprogram) or procedure. On page Connector to connect a disconnected flowchart where the part is still on the same page. Flowline/Data flow The direction part of the executed instruction. Off page Connector Connects a connection from a disconnected flowchart part where the connection is on another page. Preparation Used for initial value assignment. Computer Program Flowchart # Basically a computer program generally consists of:\nReading / entering data into the computer Performing computation/calculation on the data Outputting / printing/ displaying the results. Flowchart consists of three structures # Sequence Structure / Simple Structure Used for programs whose instructions are sequential Example of Sequence Structure Flowchart Calculating Triangle Area # Using Storage Tables # Table 1. Sequence Storage Media 1\nCommand A B Output A \u0026lt;- 10 10 A \u0026lt;- 2*A 20 B \u0026lt;- A 20 Write(B) 20 Table 2. Sequence Storage Media 2\nCommand X Y Z Output X \u0026lt;- 100 100 Y \u0026lt;- X-25 75 Z \u0026lt;- Y/5 15 X \u0026lt;- X/(Z+5) 5 Write(X,Y,Z) Summing Two Positive Numbers # Create a flowchart to sum two positive integers and print the result. The algorithm:\nEnter number a Enter number b Sum numbers a and b Print the sum result Determining Even/Odd Numbers # Branching Structure Used for programs that use condition selection. (example determining even/odd numbers)\nThe algorithm:\nEnter a number Divide the number by 2 If the remainder of the division = 0 then the number is an even number If the remainder of the division = 1 then the number is an odd number Pseudocode:\nread number If number mod 2 = 0 then “Even Number” Else “Odd Number” Looping Flowchart # Looping Structure Used for programs whose instructions will be executed repeatedly.\n","date":"19 April 2026","externalUrl":null,"permalink":"/study/programming/algorithm-logic/03-flowchart/","section":"Study","summary":"A flowchart is a graphical representation of an algorithm that uses symbols to show the steps in problem-solving.","title":"Logic and Algorithm #03: Flowchart","type":"study"},{"content":"","date":"18 April 2026","externalUrl":null,"permalink":"/tags/algorithm-concept/","section":"Tags","summary":"","title":"Algorithm Concept","type":"tags"},{"content":"","date":"18 April 2026","externalUrl":null,"permalink":"/tags/data-concept/","section":"Tags","summary":"","title":"Data Concept","type":"tags"},{"content":" Algorithm Concepts # 1. Variable Algorithm # Is a Variable whose value is NOT a constant (always changing – according to the CURRENT Variable condition)\nSyntax : P = Q\nAlgorithm : P \u0026lt;- Q\nMeaning : That the Value of P is assigned the Value of Q, the Value of P will be EQUAL TO the value of Q, \u0026amp; the Value of Q REMAINS\n2. Exchange Algorithm # Serves to exchange the respective contents of Variables such that the Value of each Variable will change/exchange.\nExample of Algorithm Problem # Problem # Given P=10, Q=15 and R=5. Given Algorithm P=Q, Q=R, what are the Values of P, Q, R now?\nAnswer # P = Q: In this step, the value of Q (15) will be copied into the variable P. Thus, P is now 15.\nQ = R: In this step, the value of R (5) will be copied into the variable Q. Thus, Q is now 5.\nThe final result is:\nThe value of P is 15 The value of Q is 5 The value of R remains 5 (does not change in the given algorithm) Algorithm Analysis # A bunch of 12 matchsticks can form boxes as below. The question is, move two of these matchsticks to form four boxes. By moving the two matchsticks at the bottom, as below\nThere are three matchsticks below, how to form the number 6 without breaking them Answer: The three matchsticks will form the Roman numeral 6\nBudi never skips his class, but he never did any assignments for this past year. His only job is talking and Budi also never took the semester exam, Budi is also not an achieving student. Why does Budi never get a warning from the school? (what do you think is the answer)\nThe answer: Because Budi is a teacher.\nExplanation: Budi never did assignments but created assignments, his job is only talking to explain the lesson material in the class so Budi will never take the semester exam.\nWhat is the minimum number of lines to cover all the dots below with the condition that to make the lines they must not be broken:\nAlgorithm for Exchanging Container Contents For Trial Practice Student Exchange Bringing 2 Glasses of water of different colors and 1 Empty glass\nGiven two containers, A and B; container A contains a red solution, container B contains a blue solution\nWrite pseudocode to exchange the contents of the two containers such that container A contains a blue solution and container B contains a red solution.\nDESCRIPTION :\nPour the solution from container A into container C. Pour the solution from container B into container A. Pour the solution from container C into container B. Data Types in Python # Data Type Description Boolean Has two values, namely true has value 1 and false has value 0 String Consists of characters/sentences in the form of letters, numbers, etc. (enclosed by \u0026quot; or \u0026rsquo; signs) Integer Expresses integers Float Expresses numbers that have a comma Complex Expresses pairs of real and imaginary numbers List Sequence data that stores various data types, its contents can change Tuple Sequence data that stores various data types, but its contents cannot change Hexadecimal Expresses numbers in hexadecimal format Dictionary Sequence data that stores various data types in the form of pointer and value pairs Examples of data types in Python # #Boolean data type print(True) #String data type print(\u0026#34;Learning Python is fun...\u0026#34;) #Integer data type print(20) #Float data type print(3.14) #Complex data type print(5j) Running Result: True Learning Python is fun... 20 3.14 5j List Data Type # Is an array containing a collection of non-homogeneous types.\n#list data type words = [\u0026#34;Learning\u0026#34;, \u0026#34;Python\u0026#34;, \u0026#34;at\u0026#34;, \u0026#34;School Programs\u0026#34;] numbers = [10, 50, 100, 1000] mixed = [\u0026#34;Learning\u0026#34;, 100, 7.99, True] #print print(words) print(numbers) print(mixed) Running Result: [\u0026#39;Learning\u0026#39;, \u0026#39;Python\u0026#39;, \u0026#39;at\u0026#39;, \u0026#39;School Programs\u0026#39;] [10, 50, 100, 1000] [\u0026#39;Learning\u0026#39;, 100, 7.99, True] Tuple Data Type # The tuple data type is almost similar to list, the difference is its members cannot be changed after being declared. Tuple uses parentheses and members are separated by commas.\n#tuple data type words = (\u0026#34;Learning\u0026#34;, \u0026#34;Python\u0026#34;, \u0026#34;at\u0026#34;, \u0026#34;School Programs\u0026#34;) numbers = (10, 50, 100, 1000) mixed = (\u0026#34;Learning\u0026#34;, 100, 7.99, True) #print print(words) print(numbers) print(mixed) Running Result: (\u0026#39;Learning\u0026#39;, \u0026#39;Python\u0026#39;, \u0026#39;at\u0026#39;, \u0026#39;School Programs\u0026#39;) (10, 50, 100, 1000) (\u0026#39;Learning\u0026#39;, 100, 7.99, True) Dictionary Data Type # The general form of dictionary data type in Python programming: Variable_name = {\u0026ldquo;key1\u0026rdquo;: \u0026ldquo;value1\u0026rdquo;, \u0026ldquo;key2\u0026rdquo;: \u0026ldquo;value2\u0026rdquo;, \u0026ldquo;key3\u0026rdquo;: \u0026ldquo;value3\u0026rdquo;}\n#Dictionary data type data = {1:\u0026#34;Learning\u0026#34;, 2: [\u0026#34;C++\u0026#34;, \u0026#34;Python\u0026#34;], \u0026#34;At Campus\u0026#34;: \u0026#34;School Programs\u0026#34;, \u0026#34;give up\u0026#34; : False, \u0026#34;Year\u0026#34;: 2021} print(data) Running Result: {1: \u0026#39;Learning\u0026#39;, 2: [\u0026#39;C++\u0026#39;, \u0026#39;Python\u0026#39;], \u0026#39;At Campus\u0026#39;: \u0026#39;School Programs\u0026#39;, \u0026#39;give up\u0026#39;: False, \u0026#39;Year\u0026#39;: 2021} Arithmetic \u0026amp; Mathematical Operators # Operator Description + Addition - Subtraction * Multiplication / Division % Modulus (remainder) ** Exponentiation // Division where the result is an integer Examples of Arithmetic and Mathematical Operators # \u0026gt;\u0026gt;\u0026gt; 1+2 3 \u0026gt;\u0026gt;\u0026gt; 8-12 -4 \u0026gt;\u0026gt;\u0026gt; 4*5 20 \u0026gt;\u0026gt;\u0026gt; 42/7 6.0 \u0026gt;\u0026gt;\u0026gt; 9%2 1 \u0026gt;\u0026gt;\u0026gt; 5**2 25 \u0026gt;\u0026gt;\u0026gt; 10//3 3 Comparison Operators # Operator Description \u0026gt; Greater than \u0026lt; Less than == Equal to != Not equal to \u0026lt;= Less than or equal to \u0026gt;= Greater than or equal to Examples of Comparison Operators # \u0026gt;\u0026gt;\u0026gt; 10\u0026gt;5 True \u0026gt;\u0026gt;\u0026gt; 8\u0026lt;6 False \u0026gt;\u0026gt;\u0026gt; 10==10 True \u0026gt;\u0026gt;\u0026gt; 5!=6 True \u0026gt;\u0026gt;\u0026gt; 6\u0026lt;=6 True \u0026gt;\u0026gt;\u0026gt; 8\u0026gt;=3 True Bitwise Operators # Operator Description \u0026amp; AND l OR ~ NOT ^ XOR \u0026laquo; Shift bits left \u0026raquo; Shift bits right AND Operator # The AND operator will be false (0) if the value of all its operands or one of them is false (0), and will be true (1) if both operands are true (1).\nOperand 1 Operand 2 Output 0 0 0 0 1 0 1 0 0 1 1 1 OR Operator # The OR operator will produce output: If one operand or both operands are true (1) it will produce output true (1), if both operands are false (0) then it will produce output false (0).\nOperand 1 Operand 2 Output 0 0 0 0 1 1 1 0 1 1 1 1 XOR Operator # The operation result using the XOR operator, namely:\nIf the bits being compared have different values, for example 1 (true) and 0 (false) then the output is 1 (true). If the bits being compared have the same value, for example 1 (true) and 1 (true) or 0 (false) and 0 (false) then the output is 0 (false). Operand 1 Operand 2 Output 0 0 0 0 1 1 1 0 1 1 1 0 Concatenating String Values # In Python Programming to concatenate string values in a program is as follows:\n#Concatenation of two strings word1 = \u0026#34;Learning Python Programming Language \u0026#34; word2 = \u0026#34;Is Very Fun\u0026#34; # Display the values of word1 and word2 print(\u0026#34;Word1: \u0026#34;,word1) print(\u0026#34;Word2: \u0026#34;,word2) # Concatenate word1 and word2 combine = word1 + word2 print(\u0026#34;Result of Concatenating word1 and word2\u0026#34;) print(combine) Running Result: Learning Python Programming Language Is Very Fun Len Function # To count the number of characters use the len() function\n#Len Function #To Count Character Length word = \u0026#34;Learning Python Programming Language\u0026#34; number_of_characters=len(word) print(number_of_characters) Running Result: 36 index() Function # To find out the character position in a sentence.\n#index function word = \u0026#39;Aisyah Zahra\u0026#39; #where is the Z character position print (word.index(\u0026#39;Z\u0026#39;)) #where is the r character position print (word.index(\u0026#39;r\u0026#39;)) Running Result: 7 10 ","date":"18 April 2026","externalUrl":null,"permalink":"/study/programming/algorithm-logic/02-algorithm-concepts-and-data-concepts/","section":"Study","summary":"The Concept of Algorithm is an effort with a sequence of operations arranged logically and systematically to solve a problem to produce a specific output, while Data Type is an attribute related to data that will tell the computer system.","title":"Logic and Algorithm #02: Algorithm Concepts and Data Concepts","type":"study"},{"content":" Basic Concepts of Logic and Algorithms # Logic was first introduced by Aristotle (384-322 BC).\nAlgorithm was introduced by the Mathematician: Abu Ja’far Muhammad ibn Musa al-Khwarizmi. A Persian scientist who wrote the book al-jabr wa\u0026rsquo;l-muqabala (rules of restoration and reduction) around 825 AD.\nDefinitions of Logic and Algorithm # Definition of Logic # The science within the realm of philosophy that discusses the principles and laws of correct reasoning (Rakmat, 2013). The science that provides the principles that must be followed in order to think validly according to applicable rules (Mustofa, 2016). Definition of Algorithm # A sequence of steps to solve mathematical and logical problems (Zarman \u0026amp; Wicaksono, 2020). A clear series of instructions to solve a problem (Rinaldi Munir, 2016). A limited set of instructions which, when executed, will complete a specific task (Sjukani, 2013). Problem Solving Stages # Example of an Algorithm # How do you make Instant Noodles?\nExample 1 Start\nBoil water Put the noodles into the boiling water Pour the cooked noodles into a bowl Add the seasoning Stir evenly. End\nExample 2 Start\nBoil water Put the noodles into the boiling water Add the seasoning Stir evenly Pour the cooked noodles into a bowl End\nNote: algorithm examples 1 \u0026amp; 2 explain that a problem can be solved with various steps and sequences. Characteristics of an Algorithm # An algorithm must stop after executing a finite number of steps. Each step must be precisely defined and not ambiguous. An algorithm has zero or more inputs. An algorithm has zero or more outputs. An algorithm must be effective; every step must be simple enough that it can be done in a reasonable amount of time. Algorithm # How to write an Algorithm? There is no clear standard for writing algorithms; it depends on the problem and resources. Algorithms are not written to support a specific programming code. All programming languages share basic constructs. The basic constructs consist of:\nLoop / Repetition (for, while) Branching / Control Flow (if – else) Example: Algorithm to Add Two Numbers and Print the Result\nStart\nRead numbers a and b Calculate a plus b, store in c Write the value of c End\nWriting Algorithms in Pseudocode # Programming Languages # A Program is a collection of instructions given to a computer to perform a task or job. To create a program, a programming language is needed.\nA Programming language is a computer language used to write programs.\nExamples of programming languages are: Assembly language, Fortran, Cobol, Pascal, C, C++, Basic, Prolog, PHP, Java, Python.\nBased on their proximity (level), programming languages are grouped into 2 types, namely:\nLow-level language A language designed so that each instruction is executed directly by the computer, without having to go through a translator. Example: machine language (a set of binary codes (0 and 1)).\nHigh-level language This type of language makes programs easier to understand.\nExamples: Pascal, Cobol, Fortran, Basic, Prolog, C, C++, PHP, Java, Python.\nPython Programming Language # Python is a high-level programming language designed by Guido van Rossum. Python is a programming language that is easy to understand because its syntax structure is neat and easy to learn.\nPython is widely used to create application programs such as: GUI programs (desktop), Mobile Web Applications, Games, Hacking, and the Internet of Things (IoT).\nPython is recommended for beginners who have never coded before.\nC++, Java, and Python Programming Languages # Printing the Word \u0026ldquo;Logika Algoritma\u0026rdquo;\nSyntax in C++:\n#include \u0026lt;iostream.h\u0026gt; main() { cout\u0026lt;\u0026lt;\u0026#34;Logika Algoritma\u0026#34;; } return 0 Syntax in Java:\nClass LogicAlgorithmsApp { public static void main(String[] args) { System.out.println(\u0026#34;Logic Algorithms\u0026#34;); } } Syntax in Python:\nprint(\u0026#34;Logic Algorithms\u0026#34;) Algorithm Analysis Stages # 1. How to plan an algorithm. # By determining a model or design to solve a problem as a solution, so there will be many variations of models taken to find the best one.\n2. How to express an algorithm # Determining the algorithmic model used to create an ordered sequence to obtain a solution to the problem. The algorithmic model can be expressed in pseudocode or a flowchart.\na. Pseudocode # An informal way to describe an algorithm that follows the structure of a specific programming language.\nb. Flowchart # A diagrammatic representation of an algorithm that illustrates the logical flow of a problem.\nThe purpose of pseudocode is: Easier to be read by humans, easier to understand and easier to pour out ideas/thoughts.\nExample : To calculate the Area of a Triangle\nInput Base Value Input Height Value Calculate Area = ( Base * Height ) / 2 Print Area Advanced Algorithm Analysis Stages # 3. How to validate an algorithm. # The validity of an algorithm is achieved when a solution is obtained as the resolution of the problem.\n4. How to Analyze an Algorithm # Algorithm analysis by observing the execution time and the amount of memory used.\n5. How to Test a Program from an Algorithm # The algorithm is implemented into a programming language, for example: Python. The algorithm testing process involves two stages, namely: a. Debugging Phase and b. Profiling Phase\na. Debugging Phase # namely the phase of the program execution process that will make corrections to errors.\nb. Profiling Phase # namely the phase that will work if the program is correct (has passed the debugging phase).\n","date":"17 April 2026","externalUrl":null,"permalink":"/study/programming/algorithm-logic/01-basic-concepts/","section":"Study","summary":"A complete tutorial on logic and algorithms for beginners that will help you understand the basics of logic and algorithms as well as how to create problem solutions.","title":"Logic and Algorithms #01: Basic Concepts","type":"study"},{"content":"","date":"8 April 2026","externalUrl":null,"permalink":"/tags/business-management-system/","section":"Tags","summary":"","title":"Business Management System","type":"tags"},{"content":"","date":"8 April 2026","externalUrl":null,"permalink":"/tags/case-study/","section":"Tags","summary":"","title":"Case Study","type":"tags"},{"content":"","date":"8 April 2026","externalUrl":null,"permalink":"/series/chapters-on-erp/","section":"Series","summary":"","title":"Chapters on ERP","type":"series"},{"content":"","date":"8 April 2026","externalUrl":null,"permalink":"/categories/enterprise-resource-planning/","section":"Categories","summary":"","title":"Enterprise Resource Planning","type":"categories"},{"content":"","date":"8 April 2026","externalUrl":null,"permalink":"/tags/enterprise-resource-planning/","section":"Tags","summary":"","title":"Enterprise Resource Planning","type":"tags"},{"content":"Enterprise Resource Planning (ERP) is a business management system that integrates various functions and processes within an organization. ERP helps companies manage resources, improve operational efficiency, and provide accurate information for decision-making. With ERP, companies can automate business processes, enhance collaboration between departments, and increase overall productivity. Learning about ERP can open up career opportunities in the fields of information technology and business management. Happy Learning!\n","date":"8 April 2026","externalUrl":null,"permalink":"/study/erp/","section":"Study","summary":"Learn about Enterprise Resource Planning (ERP), a business management system that integrates various functions and processes within an organization.","title":"Enterprise Resource Planning (ERP)","type":"Study"},{"content":" OOAD Method # OOAD (Object-Oriented Analysis and Design) It is a method for analyzing information regarding the system context, capable of supporting the handling of large amounts of data that can be distributed to related departments, and with an object-oriented approach to analysis, design, user interface, and programming. Uses UML in the design of its information system. Case Study of ERP Implementation # Below, the implementation of ERP using the OOAD Method for the Sales \u0026amp; Distribution System will be described. The UML Diagrams depicted are: Use Case Diagram Activity Diagram Example of the Current Sales System Business Process Before Odoo Implementation # Example of Sales and Distribution Module Use Case # ","date":"8 April 2026","externalUrl":null,"permalink":"/study/erp/08-case-study-of-erp-implementation-using-the-ooad-method/","section":"Study","summary":"A case study on the implementation of an ERP system using the Object-Oriented Analysis and Design (OOAD) method.","title":"Enterprise Resource Planning #08: Case Study of ERP Implementation Using the OOAD Method","type":"study"},{"content":"","date":"8 April 2026","externalUrl":null,"permalink":"/tags/erp/","section":"Tags","summary":"","title":"ERP","type":"tags"},{"content":"","date":"8 April 2026","externalUrl":null,"permalink":"/tags/erp-implementation/","section":"Tags","summary":"","title":"ERP Implementation","type":"tags"},{"content":"","date":"8 April 2026","externalUrl":null,"permalink":"/tags/ooad/","section":"Tags","summary":"","title":"OOAD","type":"tags"},{"content":"","date":"8 April 2026","externalUrl":null,"permalink":"/id/tags/penerapan-erp/","section":"Tags","summary":"","title":"Penerapan ERP","type":"tags"},{"content":"","date":"8 April 2026","externalUrl":null,"permalink":"/id/tags/sistem-manajemen-bisnis/","section":"Tags","summary":"","title":"Sistem Manajemen Bisnis","type":"tags"},{"content":"","date":"8 April 2026","externalUrl":null,"permalink":"/id/tags/studi-kasus/","section":"Tags","summary":"","title":"Studi Kasus","type":"tags"},{"content":"Currently, there are various types of ERP software circulating with various features, versions, scales, and capabilities, providing ERP systems for various types of industries.\nSAP # SAP is one of the popular ERP systems in Indonesia. SAP was founded around 1975 in Germany by 5 former employees who worked at IBM. SAP actually comes from the German language, namely System Andwendungen Produkteinder Datenverarbeitung or in English, the abbreviation SAP stands for Systems Applications Product in Data Processing.\nSAP consists of integrated modules, including SAP ERP Enterprise Core, which is an ERP application solution, and SAP Business Suite, which is a business application package such as SAP Customer Relationship Management, SAP Supply Chain Management, SAP Supplier Relationship Management, SAP Product Lifecycle Management.\nUsers of ERP system applications are generally medium to large companies. SAP is a market leader worldwide with market dominance reaching 65%. SAP now provides ERP solution packages for small to medium enterprises, such as SAP Business One and SAP All In One. In Indonesia, currently, the SAP System is widely used in various combinations of modules, features, and facilities by large companies such as: Garuda Indonesia, Telkom, PLN, Pertamina, Astra International, Astra Honda Motor, Indofood, Aqua Danone, Bentoel Prima, Bank Mandiri, Ultra Jaya, Excelcomindo, Blue Bird, Nippon Indosari Corp, Jamu Puspo, Zyrex, etc.\nSAP System # The Main Functions in SAP ERP are:\nCost Accounting, Management Accounting, Sales, Distribution, Manufacturing, Production Planning, Procurement, HR, Payroll.\nFactors influencing SAP implementation # Timeframe People Hardware PeopleSoft Software # PeopleSoft is a software company that has been developing for quite a long time and its products have been widely used by various leading companies in the world. The acquisition of PeopleSoft by Oracle further added to the diversity of Oracle products and expanded Oracle\u0026rsquo;s support for all users of its products, both database products and program applications.\nPeopleSoft Software Products # HRMS (Human Resource Management System), consisting of: Payroll, Benefits, Human Resources, Pension Administration, Time \u0026amp; labor Accounting and Control consisting of: General Ledger, Payables, Receivables, Asset Managements, Projects, Budgets, Expenses, Cash management Treasury Management Material Management Supply Chain Planning Service Revenue Management Enterprise Performance Management Procurement Project Management Oracle # Oracle Corporation was founded in 1977 and is a software company that develops, builds, markets, distributes, and services database software and software infrastructure. The software marketed includes application servers, collaboration software, and development. Since 2004, the Oracle company acquired one of the leading ERP system development companies, namely PeopleSoft, so the Oracle company must be able to support various types of products and continue to develop its products and services.\nOracle e-business suite # Financials: # Planning (General Ledger, Analyzer) Analysis Consolidation Expenditure management Billing and Cash Collection Cash management Asset management Supply Chain Management: # Strategic Procurement Non-production Procurement Strategic sourcing Catalog Management Project: # Costing Billing Time and Expense Activity Management Gateway Human Resources Material Management: # Inventory Purchasing Manufacturing: # Factory and Item Definition Planning \u0026amp; simulation Materials Management Production Cost Management Integrated Technologies Application Modules System Oracles # Open Source ERP # Odoo is one of the ERP software service providers. Odoo has two types of versions, namely the first is the community version and the second is the enterprise version. The first version is open source and we can see it on the odoo.com website directly in the community section. And the second version is an exclusive version and can be seen on the Odoo website. This software provides software that is intuitive, complete, integrated, and definitely open source for its users in business activities.\nHere is an example of a trial for creating a Human Resource module in the online Recruitment section. Open the website https://www.odoo.com/trial select the Human Resource section and select recruitment. The display of the Human Resource dashboard in the recruitment section will look like the image below: The schedule display of the recruitment needs from Human Resource will appear like the image below: The display of data needs for the recruitment module is like the following image: ","date":"7 April 2026","externalUrl":null,"permalink":"/study/erp/07-program-applications/","section":"Study","summary":"ERP program applications are software used to manage and integrate various business processes within an organization. In this chapter, we will discuss various ERP program applications commonly used in various industries, as well as the benefits and features offered by each application.","title":"Enterprise Resource Planning #07: ERP Program Applications","type":"study"},{"content":"","date":"7 April 2026","externalUrl":null,"permalink":"/tags/erp-applications/","section":"Tags","summary":"","title":"ERP Applications","type":"tags"},{"content":"","date":"7 April 2026","externalUrl":null,"permalink":"/tags/erp-programs/","section":"Tags","summary":"","title":"ERP Programs","type":"tags"},{"content":" Introduction # Not all information technology projects in companies run smoothly. The readiness factor of human resources (HR) in the company and the quality of consultants as working partners do not necessarily guarantee the successful implementation of an information system project.\nIt is a reality that not every human resource, both from the company and the consultant\u0026rsquo;s side, necessarily has the same enthusiasm when working on an Information System project.\nConsideration is needed when selecting the right human resources to handle an information system project. It is management\u0026rsquo;s duty to select the right staff or employees as project leaders to be actively involved and handle information system projects, where the person is truly enthusiastic about following the information system project through to completion.\nAccording to Richardus Eko Indrajit, the relationship between the value for company HR and consultants regarding the potential success of an Information System project can be seen in the following matrix:\nHuman Resources Value Relationship # quadrantChart x-axis \"Value for IT Konsultants: LOW\" --\u003e \"HIGH\" y-axis \"Value for Corporate People: LOW\" --\u003e \"HIGH\" quadrant-1 \"1 Win-win Project\" quadrant-2 \"2 Knowledge Transfer\" quadrant-3 \"4 Just for Fun\" quadrant-4 \"3 Free R\u0026D\" Quadrant One # This features an environment where HR from both parties feel they benefit from the project being worked on. In this situation, the project will usually run quite smoothly, because all parties cooperate well with each other. There are no feelings of suspicion or a desire to take advantage of the IT project\u0026rsquo;s success. Viewed from the financial side of the project, the principle of \u0026ldquo;value for money\u0026rdquo; is usually the main consideration. Thus, a \u0026ldquo;win-win\u0026rdquo; atmosphere will be created, which is an ideal state for a project, minimizing the risk of IT project implementation failure.\nQuadrant Two # Represents a situation where only the company (client) feels they gain many benefits from HR involvement in handling IT projects. Meanwhile, the consultant feels they do not obtain significant benefits from the existence of the IT project, so the consultant tends not to be intensely involved in the IT project. This phenomenon sometimes makes the company demand more than they should (over-demanding). Although initially, the risk of IT project failure is quite small, a prolonged atmosphere (if the IT project is relatively long-term) can increase the risk of IT project failure. This is because the consultant will take on other work outside the project, which will reduce the quality of the consultant\u0026rsquo;s services.\nQuadrant Three # This is the reverse situation of quadrant two, where the consultant feels they benefit from the IT project. Meanwhile, for the company, HR feels it tends to be a burden, so the company will leave it to the consultant to work on the IT project. This situation will lead the company\u0026rsquo;s HR to offer various criticisms as a manifestation of disagreement with the various work results carried out by the consultant. This situation will create a high risk of project failure, regardless of whether the output produced from the IT project is of high quality or not. It is not uncommon for a situation to occur where the company becomes indifferent to the work carried out by the consultant.\nIn this situation, the consultant will benefit because, besides earning consulting fees, the project can also be used as a means of IT training, research, and development for the consultant.\nQuadrant Four # Both parties, for various reasons and conditions, do not obtain any benefits from the IT project, so both parties usually mutually want the project to be completed quickly and with minimum quality. It is not uncommon for business ethics violations to occur by one or both parties, which can certainly cause risks in the future.\nNew System Evaluation # The objectives of the new system evaluation review activity are:\nDetermine whether the system\u0026rsquo;s goals and objectives are achieved Determine whether operational procedures, operating activities, and controls have been perfected Determine whether user needs have been met Determine whether system limitations need to be considered System Evaluation Stages # flowchart TD N1[\"1. Identify what will be evaluated\"] N2[\"2. Determine Evaluation Criteria\"] N3[\"3. Organize evaluation activities\"] N4[\"4. Data collection(including measurement)\"] N5[\"5. Maintain record history\"] N6[\"6. Performance data analysis\"] N7[\"7. Formulate recommendations\"] N8[\"8. Take corrective action\"] N9[\"9. Evaluate results process\"] %% Main downward flow N1 --\u003e N2 N2 --\u003e N3 N3 --\u003e N4 N4 --\u003e N5 N5 --\u003e N6 N6 --\u003e N7 N7 --\u003e N8 N8 --\u003e N9 %% Feedback flow (lines returning upwards) N8 --\u003e N3 N9 --\u003e N1 ERP System Maintenance # Maintenance activities include corrective actions against encountered problems, and adapting procedures for new features or required needs. Perfective ERP system maintenance activities act as responses to program application upgrades, while preventive maintenance activities are for routine administrative tasks.\nBroadly speaking, the classification of ERP system maintenance activities can be seen in the following table:\nType Task Description corrective additional program application there is an additional program application from the vendor troubleshooting resolving problems based on user reports adaptive transfer implementation of new features testing testing after changes occur modification internal customization interface adjustment implementation of interfaces with other programs version upgrade adjustment, planning with applications Administration monitoring response time, file size, backups, error logs workflow monitoring tracking the flow of maintenance activities ERP System Development # The development of business patterns and advancements in information and communication technology can influence the pattern of ERP system implementation in the future, including:\nUse of web-based applications, especially to facilitate coordination with working partners in the supply chain Increasing systems that use artificial intelligence to support the planning process Increasing the use of ERP systems in medium-sized enterprises, with more stable technology, relatively faster implementation times, and easier installation costs Systems tend to be flexible and modular (supporting a best-of-breed implementation approach) Increasing third-party support (bolt-ons) as application providers accessed by intermediate systems (middleware) ","date":"6 April 2026","externalUrl":null,"permalink":"/study/erp/06-evaluation-and-performance-measurement/","section":"Study","summary":"ERP evaluation and performance measurement is a crucial step to ensure that the implemented ERP system provides the expected benefits. In this chapter, we will discuss various metrics and approaches for evaluating ERP performance.","title":"Enterprise Resource Planning #06: ERP Evaluation and Performance Measurement","type":"study"},{"content":"","date":"6 April 2026","externalUrl":null,"permalink":"/tags/erp-evaluation/","section":"Tags","summary":"","title":"ERP Evaluation","type":"tags"},{"content":"","date":"6 April 2026","externalUrl":null,"permalink":"/tags/erp-evaluation-metrics/","section":"Tags","summary":"","title":"ERP Evaluation Metrics","type":"tags"},{"content":"","date":"6 April 2026","externalUrl":null,"permalink":"/tags/erp-performance-measurement/","section":"Tags","summary":"","title":"ERP Performance Measurement","type":"tags"},{"content":" Topics of Discussion # System Conversion ERP Implementation Success ERP Implementation Failure System Conversion # The goal of system conversion is to replace the old system with a new system, where the new system must be better, more user-friendly, and operate more efficiently compared to the old system.\nCommon methods for converting from an old system to a new system are:\nParallel System Direct Cutover System Pilot Approach System Phase-In Method System Parallel System # This involves operating the new system and the old system simultaneously (at a specified time). Every process result is evaluated and compared. If the new system is proven to be better than the old system, then the replacement with the new system is finalized.\nAdvantages of a parallel system: # Allows data checking on the old system. Adds a sense of security for users. Disadvantages of a parallel system: # Relatively high cost issues. Double labor utilization for both the old and new systems. It is not easy to compare the quality of the output results of the new system against the old system. The new system directly replaces the old system at a predetermined time or period. Direct Cutover System # This conversion system can be carried out if the following requirements are met:\nThe system has been tested extensively. There is a tolerance for waiting time (time delay). Users are forced to use the new system. Risks that will arise due to the implementation of this system:\nLong delays resulting in more errors. Users are using an unfamiliar system. Users do not have the opportunity to compare the old system with the new system. Pilot Approach System (Distributed Approach) # This conversion strategy is carried out when dealing with multiple locations or sites, such as in banking systems, franchises, restaurants, supermarkets, and others. Testing and operations are carried out at a selected site, and if the results are satisfactory, the conversion is then carried out at the other sites.\nPhase-In Method System (Prototype Approach / Gradual Approach) # This conversion strategy combines the first two types of approaches by mitigating as much risk as possible. This means that initially, a parallel run is conducted, and then in the middle of the period, the old system is gradually replaced by the new system.\nAdvantages: # Users are involved in this conversion. Can easily detect if there is a system or data error. Disadvantages: # Requires a longer time. If the system is large, this strategy will be difficult to implement. ERP Implementation Success # Several factors that can affect the success of an ERP implementation in a company include:\nUser Focus and Technology Focus Governance and HR Allocation Vendor and Consultant Support Training 1. User Focus Vs Technology Focus # User focus: Implementing an ERP system to support user business processes. Technology focus: Implementing ERP with the latest technology or more complex processes, thus allowing changes in user business processes. Ideally, the ERP system should focus on user needs; technological focus can be considered after the user focus is fulfilled. 2. Governance and HR Allocation # Effective ERP implementation requires support and commitment from top management. The team involved in the ERP implementation must be people who are experienced in their respective fields and have influence. An ideal team involves users, company IT specialists, people who can work across departments, and people who understand business processes well. 3. Vendor and Consultant Support # Ideally, the company has primary control over vendor support and ERP consulting services. The comprehensive use of consultants needs to be avoided, as it means consultants will delve too deep into the company\u0026rsquo;s business. 4. Training # Poor training is one of the biggest factors in implementation failure.\nSeveral training-related failures include: a. Providing employee training on specific software without paying attention to the business processes. b. Focusing instructions on the execution sequence without explaining why that sequence exists. c. Shortening training time. d. Solving problems using the old system\u0026rsquo;s way without seeking a solution using the new system\u0026rsquo;s way.\nSeveral other problems include: user diversity, system complexity, and diversity of training methods. Some vendors anticipate this by providing flexible training using various media: a. Web-based virtual learning b. Computer-based training c. Video course d. Self-study books e. Pop-up help screens Anticipating Failure # ERP failures are usually caused by:\nSystem integration Mismatch between personnel, processes, and technology Potential Failures to Anticipate # Users are inadequately trained. Not understanding how enterprise applications change the business and not being ready to follow a new discipline. Users are not fully aware that every action they take on the system affects company operations. Inadequate training results leading to a gap between training and implementation. Several vendors have provided anticipation strategies to achieve the ideal ERP goal (improving internal integration processes to external connectivity). These vendors make their products more flexible and easier to implement, for example: a. Component-based strategy b. Web-based ERP c. Modular ERP, which can be used on a per-module basis Implementation time and costs exceed the budget. Pre-implementation is not done properly. Operational strategy is not aligned with business process design and its development. People are not prepared to accept and operate with the new system. Lack of education during the implementation stage will cause difficulties for users, which will ultimately slow down business processes. ","date":"5 April 2026","externalUrl":null,"permalink":"/study/erp/05-implementation/","section":"Study","summary":"ERP implementation is a critical stage in a company’s digital transformation journey. In this chapter, we will discuss the benefits of implementing ERP, the obstacles that might be faced during implementation, and the process of selecting the right ERP system for your business needs.","title":"Enterprise Resource Planning #05: Implementation","type":"study"},{"content":"","date":"5 April 2026","externalUrl":null,"permalink":"/tags/erp-benefits/","section":"Tags","summary":"","title":"ERP Benefits","type":"tags"},{"content":"","date":"5 April 2026","externalUrl":null,"permalink":"/tags/erp-implementation-obstacles/","section":"Tags","summary":"","title":"ERP Implementation Obstacles","type":"tags"},{"content":"","date":"5 April 2026","externalUrl":null,"permalink":"/tags/erp-implementation-stages/","section":"Tags","summary":"","title":"ERP Implementation Stages","type":"tags"},{"content":"","date":"5 April 2026","externalUrl":null,"permalink":"/tags/erp-system-selection/","section":"Tags","summary":"","title":"ERP System Selection","type":"tags"},{"content":" Topics of Discussion # Benefits of ERP Implementation ERP Implementation Constraints ERP System Selection Benefits of ERP Implementation # The benefits of a good ERP system implementation are not limited to the company\u0026rsquo;s internal environment but can also be expanded vertically and horizontally.\nThe implementation of this system requires the integration of existing data, so that the data is not just stored in the system without providing any benefits.\nERP system implementation depends on the size of the business, the scope of changes, and the role and participation of the customers.\nMost ERP systems are offered in the form of COTS (Commercial Off The Shelf), which are business solutions in the form of integrated application packages grouped based on specific business process specializations, functions, and industries.\nCOTS packages generally contain three elements, namely: a. Data, which is an integrated resource for the entire company; data entry is only done once. b. Integration, which is processing, storing, and transferring data using a single software package. c. Module functionality, which is the process of determining the program\u0026rsquo;s interaction with the database.\nData Migration # Data migration strategy steps that can determine the success of an ERP implementation: a. Identifying the data to be migrated b. Determining the timing of data migration c. Creating data templates d. Determining the tools for data migration e. Deciding on migration-related preparations f. Determining data archiving ERP Implementation Constraints # Technical Language issues and the shift from a hard copy model to a display model. a. Terminology for the same terms; terms in production, sales, etc., used must be changed to match the terms in the ERP. b. In traditional management, a Manager signs stacks of paper as a sign of approval, whereas Approval in ERP is done through that media (display model). Cultural Technology-based ERP implementation requires changes that employees must make, including being aware of the software\u0026rsquo;s usage (e.g., always updating data). Political Constraints originating from inside / outside the IT department. IT employees feel their jobs will be lost. Employees outside the IT department feel threatened because some work will be done by ERP software. Reluctance of users from other departments due to an element of \u0026ldquo;distrust\u0026rdquo; towards the IT department. Distrust arises due to the fear that confidential data or reports will be known by the IT department as the administrator. ERP System Selection # The ERP software selection process should be carried out through several stages of analysis as follows:\nBusiness strategy analysis Human resources analysis Infrastructure analysis Software analysis 1. Business Strategy Analysis # What is the level of competition in the market \u0026amp; what are customer expectations? Is there a competitive advantage to be achieved? What are the company\u0026rsquo;s business strategies and objectives to be achieved? How is the current business process running \u0026amp; what is the desired business process? Are there business processes that need to be improved? What and how are the existing business priorities, and is there a work plan to achieve these objectives and priorities? What business targets must be achieved and when? 2. Human Resources Analysis # How is top management\u0026rsquo;s commitment to the effort for ERP implementation? Who will implement the ERP and who will use it? How is the commitment of the implementation team? What do prospective users expect from ERP? Are there external consultants prepared to help with the preparation process? 3. Infrastructure Analysis # How complete is the existing infrastructure (overall networks, permanent office systems, communication systems, and auxiliary systems)? How big is the budget for infrastructure? What infrastructure must be prepared? 4. Software Analysis # Is the software flexible enough and easily adapted to the company\u0026rsquo;s conditions? Is there service support from the provider, not only technically but also for future system development needs? How much implementation time is available? Does the software have functions that can improve the company\u0026rsquo;s business processes? ERP Implementation # The application of ERP in a company will support the achievement of corporate success. The application is supported by four technology components: humanware, technoware, organware, and infoware. Broadly speaking, there are three general approaches: Using a complete single software package (full vendor). A combination of several software packages (various vendors, best of breed). Customization or building your own ERP software package. Stages of ERP System Implementation # In general, the stages of ERP system implementation include:\nPlanning Stage Analysis Stage Design Stage Technical Support Stage Implementation Stage Planning Stage # The initial step of implementation is forming a steering committee, tasked with identifying the main objectives and scope of the ERP system project to determine the Project Leader and team members in building the system.\nProject Team Tasks: # Define the problems to be solved by the ERP system and determine the project scope in more detail. Evaluate alternative approaches to ERP, such as: customization solutions, a single unified package, integration of several software packages, or a combination of several alternatives and choose one solution. Create a project schedule and budget taking into account feasibility studies and report any significant findings to the steering committee in writing or verbally. Analysis Stage # The steering committee has agreed to run the ERP system implementation project and has determined the approach to be taken. The team begins forming working groups and defining user requirements. External consultants can be involved only to assist the working group in carrying out this analysis activity.\nProject Team Tasks # Evaluate vendors that can meet the requirements and make recommendations to the steering committee, who will select the vendor, and then the team will conduct a more detailed evaluation of the selected vendor. Identify business process reengineering initiatives that might be needed based on the ERP system approach and the selected package. Although not always a good alternative, the company can consider a solution to customize the package. After that, vendor representatives and consultants can be involved in the analysis process, where the steering committee and project team will be given intensive training on the concept and operational aspects of the system by the consultants.\nThe final stage is that an ERP system prototype will be produced in various organizational functions to simulate and demonstrate integration between user modules and identify according to needs.\nFinally, the project team will make a recommendation report to the steering committee for the approval process and verification of project continuation.\nDesign Stage # Begins after the company decides on the vendor or consultant that has been selected. The level of design depends on the ERP system approach; if choosing a unified package, the interface is mostly predetermined, and customization is usually done only on minor parts.\nTechnical Support Stage # To guarantee short-term and long-term system success, technical support from users is highly necessary. Although all users have received intensive training, technical support staff are still needed, especially for drastic and comprehensive system changes, for example, fixing program errors discovered by users when running the new system. If a program error occurs, a quick response from the consultant or project leader is needed to maintain user trust in the new system and to support work smoothness and effectiveness.\nFor this reason, system maintenance is required to keep system performance optimal. Similarly, system audits can be carried out periodically to find out whether the ERP system\u0026rsquo;s objectives have been achieved as expected.\nImplementation Stage # After the company determines the selected software package to be used and customization is carried out, the next stage is construction. For the unified package approach, the program has been designed and implemented per module. For example: purchasing, inventory, payment functions.\nIn the implementation stage, all business process reengineering plans are applied, because all hardware, software, data, and networks have been implemented, so only two things need to be reviewed: people and procedures.\nAfter the modules have been configured and integrated with other components and programs, the next stages are:\nCreating a system prototype, followed by validation through several iterations and revisions until the system is finally ready to run. Verification and testing of the entire system and performing several reconfigurations to improve system performance. Creating documentation for the entire system and providing training to all system users. Creating a system \u0026ldquo;roll out\u0026rdquo; conversion plan, which includes the system installation schedule throughout the organization with the selected conversion strategy approach. Anticipating Failure # ERP failure is usually caused by:\nSystem integration Mismatch between personnel, processes, and technology ","date":"4 April 2026","externalUrl":null,"permalink":"/study/erp/04-implementation/","section":"Study","summary":"ERP implementation is a critical stage in a company’s digital transformation journey. In this chapter, we will discuss the benefits of implementing ERP, the obstacles that might be faced during implementation, and the process of selecting the right ERP system for your business needs.","title":"Enterprise Resource Planning #04: Implementation","type":"study"},{"content":"","date":"3 April 2026","externalUrl":null,"permalink":"/tags/business-management/","section":"Tags","summary":"","title":"Business Management","type":"tags"},{"content":"","date":"3 April 2026","externalUrl":null,"permalink":"/tags/crm/","section":"Tags","summary":"","title":"CRM","type":"tags"},{"content":"","date":"3 April 2026","externalUrl":null,"permalink":"/tags/customer-relationship-management/","section":"Tags","summary":"","title":"Customer Relationship Management","type":"tags"},{"content":" Production and Operations # The core aspects of production and operations are production planning, accurate forecasting of material requirements from received sales orders, and the comparison of standard costing with actual costs (accounting).\nFor the production planning approach to be accurate, it must be based on sales forecasting for a specific period and inventory positions. Then, demand management can be carried out, which consists of: calculating material requirements (material requirement planning) which is forwarded to the purchasing process, and detailing the schedule of the production process.\nProduction Planning Approach in ERP Systems # graph TD A([Sales Planning]) --\u003e C[Sales and Operations Planning] B([Inventory Balance]) --\u003e C C --\u003e D[Demand Management] D --\u003e E[Detail Schedule] D --\u003e F[MRP] E --\u003e G([Production]) F --\u003e H([Purchasing]) Uses of the Production Module # Arranging production schedules quickly in accordance with the delivery schedule from sales orders and sales plans by considering material availability and production capacity.\nImproving the control of material usage per work order to achieve the efficiency level of production activities.\nCharacteristics of the Production Module # Facility for inputting Direct Labor and FOH Standard Rates per Machine Facility for calculating Bill of Materials (BOM) per Production Work Order Facility for Pre-Calculation Standard calculation per Production Work Order Facility for inputting Production Work Orders and Goods Requests per Production Work Order Facility for inputting Receipts of Finished Goods and Details of Material Usage per Work Order Facility for inputting Returns of Finished Goods Receipts for production reprocessing Facility for inputting Work In Process (WIP) Corrections General Business Process Cycle of Product and Service Companies # Generated Reports # Pre-Calculation Standard Cost Report for Production Work Orders Profit/Loss Report by Production Work Order (Detail and Summary) Finished Goods Receipt Report (per period, per Production Work Order) Raw Material Variance Analysis Report per Production Work Order Direct Labor and FOH Loading Variance Analysis Report per Production Work Order Production Process Report - Capacity Utilization and Machine Efficiency (Detail and Summary) WIP Status and WIP Summary Report Outstanding Report per Production Work Order Cost of Goods Sold Summary Report per Production Work Order Production Waste Report Material Usage Report per Production Work Order BOM Variance Report (Volume Variance, Price Variance, Usage Variance) Customer Relationship Management # It is a strategy used to study customer needs and behavior to build strong relationships with customers. CRM is an approach to understanding and influencing customer behavior, which can be done through the ability to communicate to improve customer order request services.\nA CRM program is a process of customer interaction with the system, where customers can obtain useful information such as: order status, person in charge contact, and sales functions, which ultimately aim to foster good relationships with customers.\nCRM solutions provide the information needed to support sales, service, and marketing programs. The benefits of CRM can include simplifying business processes, improving data quality and accuracy, and providing access for users or business units to the same resources.\nBenefits of CRM # Providing better customer service Making call centers more efficient Simplifying marketing and sales processes Acquiring new customers Knowing customers and ideal customers in detail Knowing the products customers need and products they do not need Knowing when and how customers buy Knowing customer characteristics Identifying and classifying customer levels Knowing how to estimate the products customers will buy Knowing how to build good relationships with customers for the future Advantages of CRM according to Efraim Turban # Relatively low cost in recruiting prospective customers Does not require many customers to maintain continuous business processes (steady business volume) Increasing the expansion of segmentation and sales and service targets, thereby gaining profits with a large number of customers Increasing the level of customer loyalty Improving service to customers Evaluating customer purchases and determining how to create new products Shifting from a product focus to a customer focus Efforts for CRM in IT Development # Preparation requirements including the allocation of time and money, establishing realistic goals, and obtaining commitment from top management Adjustment of current business processes Training and active involvement of each user Ensuring the level of system integration Measures of CRM Success # Reducing report generation Reducing costs in conducting business processes Increasing external customer satisfaction levels Increasing work productivity Increasing sales Generated Reports # Customer service and support Customer Interaction Report Customer Self Service online inquiry report Lead and Activity tracking Sales Report Sales Support Report Sales Qualification Report Human Resources # The HR management function involves the recruitment, placement, evaluation, compensation, and development of an organization\u0026rsquo;s employees.\nThe goal of HR management is the effective and efficient handling of HR within the company.\nThe HR system is designed to support planning to meet the company\u0026rsquo;s personnel needs, develop employee potential, and control all personnel policies and programs.\nHuman Resource Information System (HRIS) # HRIS can support the strategic, tactical, and operational use of HR in an organization, which includes:\na. Recruitment, selection, and job assignment b. Job placement c. Performance appraisal d. Employee benefits analysis e. Employee training and development f. Employee health, safety, and security\nHR Information System # flowchart TD %% --- Header Columns --- H0[\" \"] ~~~ H1[\"EMPLOYMENT\"] H1 ~~~ H2[\"DEVELOPMENT\"] H2 ~~~ H3[\"COMPENSATION\"] %% Align Headers with Row 1 H1 ~~~ K1 H2 ~~~ P1 H3 ~~~ C1 %% --- Row 1: Strategic Systems --- L1[\"STRATEGIC\nSYSTEM\"] ~~~ K1[\"• HR Planning\n• Workforce tracking\"] K1 ~~~ P1[\"• Succession planning\n• Performance\nAppraisal Planning\"] P1 ~~~ C1[\"• Contract Costs\n• Salary forecast\"] %% --- Row 2: Tactical Systems --- L2[\"TACTICAL\nSYSTEM\"] ~~~ K2[\"• Labor cost analysis\n• Turnover analysis\"] K2 ~~~ P2[\"• Training effectiveness\n• Career matching\"] P2 ~~~ C2[\"• Contract effectiveness \u0026\nequity analysis\n• Benefits trend\nanalysis\"] %% --- Row 3: Operational Systems --- L3[\"OPERATIONAL\nSYSTEM\"] ~~~ K3[\"• Recruitment\n• Workforce\nscheduling\"] K3 ~~~ P3[\"• Skills assessment\n• Performance Evaluation\"] P3 ~~~ C3[\"• Payroll\ncontrol\n• Benefits administration\"] %% --- Vertical Relationship Arrows (Two-way) --- K1 \u003c--\u003e K2 \u003c--\u003e K3 P1 \u003c--\u003e P2 \u003c--\u003e P3 C1 \u003c--\u003e C2 \u003c--\u003e C3 %% --- Visual Styling (Removing boxes on text labels) --- style H0 fill:none,stroke:none style H1 fill:none,stroke:none,font-weight:bold,font-size:16px style H2 fill:none,stroke:none,font-weight:bold,font-size:16px style H3 fill:none,stroke:none,font-weight:bold,font-size:16px style L1 fill:none,stroke:none,font-weight:bold,font-size:14px style L2 fill:none,stroke:none,font-weight:bold,font-size:14px style L3 fill:none,stroke:none,font-weight:bold,font-size:14px Factors in HR Assessment # Competence Commitment Compatibility Cost Effectiveness Generated Reports # Employee Scheduling Report Training Employment Development Payroll, benefits, bonuses, overtime Job Description Report Organizational structure and Work Flow Analysis ","date":"3 April 2026","externalUrl":null,"permalink":"/study/erp/03-systems-applications/","section":"Study","summary":"An ERP (Enterprise Resource Planning) system is an integrated information system used to manage various operational aspects of a business, including production, operations, customer relationship management (CRM), and human resources (HR). In the context of production and operations, an ERP system helps companies plan, control, and optimize production processes and daily operations. Meanwhile, in customer relationship management (CRM), the ERP system allows companies to manage interactions with customers, improve customer service, and increase sales. On the human resources (HR) side, the ERP system assists in managing employee data, payroll, recruitment, and employee development. With strong integration across these various modules, an ERP system provides better visibility, operational efficiency, and the ability to make better business decisions.","title":"Enterprise Resource Planning #03: ERP System Applications (Production and Operations, Customer Relationship Management, Human Resources)","type":"study"},{"content":"","date":"3 April 2026","externalUrl":null,"permalink":"/tags/erp-system/","section":"Tags","summary":"","title":"ERP System","type":"tags"},{"content":"","date":"3 April 2026","externalUrl":null,"permalink":"/tags/hr/","section":"Tags","summary":"","title":"HR","type":"tags"},{"content":"","date":"3 April 2026","externalUrl":null,"permalink":"/tags/human-resources/","section":"Tags","summary":"","title":"Human Resources","type":"tags"},{"content":"","date":"3 April 2026","externalUrl":null,"permalink":"/tags/information-systems/","section":"Tags","summary":"","title":"Information Systems","type":"tags"},{"content":"","date":"3 April 2026","externalUrl":null,"permalink":"/tags/information-technology/","section":"Tags","summary":"","title":"Information Technology","type":"tags"},{"content":"","date":"3 April 2026","externalUrl":null,"permalink":"/tags/operations/","section":"Tags","summary":"","title":"Operations","type":"tags"},{"content":"","date":"3 April 2026","externalUrl":null,"permalink":"/tags/production/","section":"Tags","summary":"","title":"Production","type":"tags"},{"content":" Procurement # The procurement system cycle begins with the creation of a purchase requisition from a department. Once the request form is approved by the relevant department head and submitted to the purchasing department, the purchasing officer will select suppliers, negotiate prices, and then issue a purchase order (PO) as evidence that the company has approved the purchase process with the supplier. This is followed by the goods receipt process by the warehouse based on that purchase order. Based on the agreement, the supplier then performs billing accompanied by an invoice and tax invoice for the payment process. The invoice verification process is then handled by the finance department. Finally, the payment process to the supplier is carried out as proof of settlement for the purchased goods.\nProcurement System Cycle # Procurement Reports # Purchase requisition status report Purchase order status report Purchase report Purchase return report Purchase control report Sales and Distribution # The sales management cycle begins with pre-sales activities (sales contract), which involve price negotiations with customers followed by the creation of a quotation. This is continued by processing the sales order. Currently, the implementation of this ERP system can be done using web-based platforms. After that, sales administration checks the stock availability in the warehouse to provide the goods needed to fulfill the sales order. This is known as Inventory Sourcing.\nOnce the goods are available, the shipping process is carried out, which involves sending the goods to the customer\u0026rsquo;s location with the creation of a packing list (Surat Jalan/SJ) and a Delivery Order (DO). This is followed by billing activities, which is the process of creating commercial invoices, tax invoices, and receipts submitted to the customer for collection. Based on that bill, the customer makes a payment; from the company\u0026rsquo;s perspective, the process of receiving the customer\u0026rsquo;s receivable value (receipt account receivable) will be performed.\nSales and Distribution Cycle # Benefits of Sales and Distribution # Enhances customer satisfaction by accelerating the process from order receipt to timely delivery. Provides sales information and sales analysis required by the customer. Creates sales planning for calculating material requirements, purchase planning, and future product production. Characteristics of the Sales and Distribution Module # Facilities for managing and inputting sales contracts and sales orders. Overdue credit limit facilities to restrict sales orders against accounts receivable balances that are past due but have not been paid by the customer. Facilities for inputting sales transactions in multi-currency. Delivery schedule facilities to create delivery orders based on sales orders that must be sent immediately by considering the stock balance in the warehouse. Delivery order facilities for timely shipping transactions. Automatic sales invoice facilities (commercial invoice, tax invoice, receipt) for the customer billing process. Sales return facilities for goods return transactions from customers for specific reasons. In sales and distribution activities, information systems are required to be increasingly flexible, sophisticated, and user-friendly to handle various changes and specific conditions accurately and quickly, such as: price change processes, stock allocation, flexible use of barcode systems, supporting promotional activities, delivery timing accuracy, and credit limit checks.\nSales and Distribution Reports # Sales Contract and Outstanding Sales Contract Report Sales Order and Outstanding Sales Order Report Sales Report Sales Analysis Report Sales Return Report Delivery Update Report Salesperson Commission Report Customer Credit Report Gross Profit Report Finance and Accounting # In an ERP system, the preparation of financial reports is carried out through the General Ledger application. All transaction data is obtained from other transaction processing systems, such as:\nSales transaction processing system: sales order processing, billing, sales analysis. Purchases transaction processing system: purchases, inventory processing. Cash receipt and Disbursement transaction processing system: accounts receivable, cash receipts, accounts payable, cash disbursements. Payroll transaction processing system: payroll, timekeeping. flowchart LR %% ====================== %% SALES SYSTEM (LEFT) %% ====================== subgraph S1[Sales Transaction Processing System] SOP[Sales Order Processing] BILL[Billing] SA[Sales Analysis] SOP --\u003e BILL SOP --\u003e SA end %% ====================== %% CASH SYSTEM (CENTER TOP) %% ====================== subgraph S2[Cash Receipts and Disbursements Transaction Processing System] AR[Accounts Receivable] CR[Cash Receipts] AP[Accounts Payable] CD[Cash Disbursements] CR --\u003e AR CD --\u003e AP end %% ====================== %% GENERAL LEDGER (RIGHT TOP) %% ====================== subgraph S3[General Ledger Processing and Reporting System] GL[General Ledger] FR[Financial Reporting] GL --\u003e FR end %% ====================== %% PURCHASES SYSTEM (CENTER BOTTOM) %% ====================== subgraph S4[Purchases Transaction Processing System] PUR[Purchases] INV[Inventory Processing] PUR --\u003e INV end %% ====================== %% PAYROLL SYSTEM (RIGHT BOTTOM) %% ====================== subgraph S5[Payroll Transaction Processing System] TK[Timekeeping] PAY[Payroll] TK --\u003e PAY end %% ====================== %% CONNECTIONS %% ====================== BILL --\u003e AR CR --\u003e GL CD --\u003e GL PUR --\u003e AP INV --\u003e GL PAY --\u003e GL BILL --\u003e GL SOP --\u003e INV General Ledger # The General Ledger is the heart of the accounting information system because it generates financial reporting to determine a company\u0026rsquo;s financial condition, such as balance sheets, profit and loss statements, financial ratio analysis reports, and other financial reports. The benefits of the General Ledger include:\nMulti-currency facilities for account codes that have foreign currency equivalence. Recurring journal facilities to simplify and speed up transaction entry for repetitive transactions. Budget facilities that can be quickly and easily compared with actuals. Automatic financial statement presentation (automatic reporting). Multi-level and informative reporting systems. Ability to store data for unlimited periods, restricted only by the hard disk capacity used. Designed with a built-in early warning system during transaction input and storage. Posting and unposting facilities per period, making it easier to correct data errors from previous periods. Generated reports include:\nBalance Sheet and Profit and Loss Report Detail and Highlight Financial Reports Expense details per cost center report Account balance detail report General Ledger card report Trial Balance report Transaction journal list report Inventory # Through the inventory module, a company\u0026rsquo;s stock can be controlled to minimize inventory levels. This impacts working capital by reducing the amount of tied-up stock without disrupting production flow. It also reduces losses from obsolete, damaged, or expired inventory.\nReasons for Inventory # Meeting customer needs at specific times. Taking advantage of price discounts from suppliers. Avoiding fluctuations from rising prices. Providing buffer stock for uncertain demand conditions. Maintaining the continuity of the production process. Inventory Classification # Raw material Work in process Finished goods Raw Material # The basic material used in an industry to produce goods ready for sale to customers. This depends on the type of company; raw materials in one company might be the finished goods of another.\nWork in Process (WIP) # Inventory that has been processed but is not yet a finished good (semi-finished). In manufacturing industries, WIP requires machine processing costs, auxiliary materials, and labor.\nFinished Goods # Goods ready to be shipped or sold to customers. In manufacturing, finished goods are the products from the final process stored in the warehouse ready for sale.\nJust In Time (JIT) # Inventory is identical to tying up a sum of money or investment that can disrupt a company\u0026rsquo;s cash flow, especially if the inventory is non-moving. Just in Time is a method used to handle inventory systems, with benefits such as:\nReduced inventory, thus reducing investment in inventory, which ultimately affects the company\u0026rsquo;s financial performance. Less obsolete inventory. Improved inventory quality. Reduced inspection and rework processes. Quick detection if defects occur due to the production process. Decreased inventory handling costs, such as handling and carrying costs. Reduced space or warehouse requirements, minimizing warehouse investment. Shorter lead times. Increased productivity. Greater flexibility. Better relationships with suppliers. Simpler scheduling and control activities. Increased capacity. More efficient use of human resources. Greater product variety. Increased customer satisfaction. Faster response to customer orders. Characteristics of the Inventory Module # Inventory Adjustment facilities, to correct inventory due to damage, stock discrepancies, shrinkage, evaporation, etc. Inventory Transfer facilities, to record stock movement/mutation between warehouses, changes in product types, and inventory analysis reports for easier control. Stock validation facilities, for managing negative stock, where inventory transactions are validated so they do not exceed available stock. Inventory turnover calculation facilities per inventory item. Average usage calculation facilities per inventory item used in company operations. Minimum inventory quantity facilities for inventory items calculated based on Average Usage, Lead Time, and days to be fulfilled. Grouping level facilities for inventory movement (slow-moving, middle-moving, fast-moving). Multi-warehouse facilities, to record inventory across many different warehouse locations. Posting and unposting facilities per period, allowing for correction of previous data errors through inventory unposting with specific authorization. Implementation of the Just In Time method works best when supported by an ERP system integrated with the Master Production Schedule (MPS) and Material Requirement Planning (MRP) in planning production needs for creating material purchase requisitions followed by PO creation. This process is inherently linked to the Bill of Materials (BOM).\nGenerated Reports # Inventory history data report Inventory purchase price and selling price information Inventory receipt report Inventory issuance report Inventory cards Stock and inventory mutation report Inventory status report Product type change, inventory correction, and inventory issuance return reports ","date":"2 April 2026","externalUrl":null,"permalink":"/study/erp/02-systems-applications/","section":"Study","summary":"Learn about ERP system applications, including core modules such as Procurement, Sales and Distribution, Finance and Accounting, and Inventory. Discover how ERP can enhance your business efficiency.","title":"Enterprise Resource Planning #02: ERP System Applications (Procurement, Sales and Distribution, Finance and Accounting, Inventory)","type":"study"},{"content":"","date":"2 April 2026","externalUrl":null,"permalink":"/tags/finance-and-accounting/","section":"Tags","summary":"","title":"Finance and Accounting","type":"tags"},{"content":"","date":"2 April 2026","externalUrl":null,"permalink":"/tags/inventory/","section":"Tags","summary":"","title":"Inventory","type":"tags"},{"content":"","date":"2 April 2026","externalUrl":null,"permalink":"/tags/procurement/","section":"Tags","summary":"","title":"Procurement","type":"tags"},{"content":"","date":"2 April 2026","externalUrl":null,"permalink":"/tags/sales-and-distribution/","section":"Tags","summary":"","title":"Sales and Distribution","type":"tags"},{"content":" History of ERP Systems # Year Event 1960s Manufacturing systems focused on Inventory Control. 1970s Focus shifted to MRP (Material Requirement Planning) which translates a product\u0026rsquo;s Master schedule into time-phased net requirements, for the planning and procurement of sub-assemblies, components, and raw materials. 1980s MRP-II (Manufacturing Resource Planning) expanded to include shop floor operations and distribution management activities. 1990s MRP-II was further developed to include engineering, finance, human resources, and project management activities covering almost all business enterprise system activities, which later became known as Enterprise Resource Planning (ERP). 2000-present Extended ERP became ERP II. Evolution Stages of ERP Systems # Material Requirement Planning # MRP is used to simulate manufacturing industry equations, using a master schedule to answer what products will be produced, a bill of materials to answer what materials are needed to make the product, and an inventory balance list to answer what materials are already owned and what materials must be purchased.\nClosed Loop MRP # A tool in the form of a system to support planning up to sales and production (Sales and Distributor Planning), product manufacturing schedules (Master Scheduling), sales planning forecasting, and consumer order planning (Demand Management), as well as resource analysis.\nScope of Closed Loop MRP # graph TD A[Demand Management] B[Production Planning] C[Master Scheduling] D[Material Requirements] E[Plant \u0026 Supplier Scheduling] F[Execution] G[Capacity Planning] %% Main flow A \u003c--\u003e B A \u003c--\u003e C A \u003c--\u003e E B \u003c--\u003e G C \u003c--\u003e G D \u003c--\u003e G E \u003c--\u003e G C \u003c--\u003e D D \u003c--\u003e E C \u003c--\u003e E E \u003c--\u003e F Manufacturing Resource Planning (MRP II) # Similar to the previous stage, there are only additional elements as follows:\nSales and operations planning, a process used to balance demand and supply, allowing management to control operational and business aspects. Financial interface, the ability to translate operational plans (units like pieces, kg, gallons, and other units) into cost units (in a specific currency). Simulation capability to conduct \u0026ldquo;what if\u0026rdquo; analysis to find possible answers to be applied, both in units and in monetary amounts. Enterprise Resource Planning (ERP) # The foundation of ERP is derived from MRP II, but its business processes are expanded and more suitably applied to the conditions of companies that have several business units. With an ERP system, financial integration is more emphasized, supply chain tools, support for business across organizational functional boundaries, and even across companies can be done easily. The main goal of implementing ERP is to enable companies to run businesses in rapidly changing and highly competitive conditions, and much better than before.\nExtended ERP II # An extension of the existing functions in the ERP system, which includes functions that can bridge communication with suppliers and consumers. This system not only focuses on consumers, production processes, real-time transactions, and company asset management, but also focuses on optimizing the entire business network, including integration with suppliers.\nComparison of ERP and ERP II # Aspect ERP ERP II Role Enterprise Optimization Element participation in the company\u0026rsquo;s business process chain, full e-commerce support Domain Manufacturing and Distribution All segments and sectors within the company Function Production, Sales, Distribution, and Financial Processes Cross-Industry, specific sectors, specific industrial processes Process Handles internal processes, closed to external processes Connected with business partners Architecture Web support, closed, monolithic architecture Web-based, open, flexible for integration with other component-based systems Data Generated and consumed internally by the company Generated and consumed by internal and external parties of the company, and the results are published to all interested stakeholders ERP System Infrastructure # Characteristics of ERP Systems # According to Daniel O\u0026rsquo;Leary, they are as follows:\nSoftware packages designed for a client-server environment, whether traditional or network-based. Integrates most of the business processes. Processes a vast majority of company transactions. Uses a corporate database that typically stores each piece of data only once. Allows real-time data access. Allows integration of transaction processes and planning activities. Supports multi-currency and language systems, which are essential for multinational companies. Allows customization for specific company needs without requiring reprogramming. According to Daniel O’Leary:\nSoftware packages designed for a client-server environment, whether traditional or network-based Integrates most of the business processes Processes a vast majority of company transactions Uses a corporate database that typically stores each piece of data only once Allows real-time data access Allows integration of transaction processes and planning activities Supports multi-currency and language systems, which are essential for multinational companies Allows customization for specific company needs without requiring reprogramming Benefits of ERP Systems # According to James A. O\u0026rsquo;Brien, they are as follows:\nQuality and Efficiency. Cost Reduction. Decision Support. Enterprise Agility. Integrated Systems. ERP systems not only integrate data and people. ERP systems allow management to manage operations. ERP systems facilitate information extraction. ERP systems generate information. ERP systems create organizational structures. ERP systems guarantee all activities. ERP systems control all business processes. ERP Concept # Enterprise Resource Planning (ERP) is an abbreviation of three elements: Enterprise (Company/Organization), Resource, and Planning. So, Enterprise Resource Planning (ERP) is a concept for planning and managing corporate resources, in the form of an integrated and multi-module software application package designed to serve and support various functions within the company (to serve and support multi-business functions), making work more efficient and providing better service to consumers, which ultimately can generate added value and provide maximum benefits for all stakeholders of the company.\nERP consists of commercial software packages that ensure seamless integration of all information flows within the company, which includes finance, accounting, human resources, supply chain, and consumer information. An ERP system is a configurable information system package that integrates information and information-based processes within and across functional areas in an organization. ERP is a single database, a single application, and a unified interface across the entire enterprise. flowchart TB ES([ENTERPRISE SYSTEM]) FA[Financial \u0026 Accounting] CRM[Customer Relationship Management] HR[Human Resource] INV[Inventory] SD[Sales \u0026 Distributor] BI[Business Intelligence] MFG[Manufacturing] PROC[Procurement] PM[Plant Maintenance] %% Relation from center ES --\u003e FA ES --\u003e CRM ES --\u003e HR ES --\u003e INV ES --\u003e SD ES --\u003e BI ES --\u003e MFG ES --\u003e PROC ES --\u003e PM Scope of Financial and Accounting # Cost Center and Profit Center Account Payable Account Receivable Cash/Bank Management (Cash Flow Management) Treasury Management General Ledger (Income Statement \u0026amp; Balance Sheet) Sales Quotation Sales Order Shipping Goods Issue Invoicing Credit Control Commission, Discount, Credit Notes Scope of Manufacturing # Order Production Bill of Material Production Planning Control – Order Production Master Planning Scheduling MRP (Material Requirement Planning) Product Costing Scope of Inventory # Inventory Movement (transfer) Inventory Management Multiple Warehouse Locations Product Category Product Items Physical and Valuation Inventory Procurement # Purchase Requisition and Approval Purchase Order and Approval Goods Receipt Invoice Verification Purchase Return Scope of Human Resource # Employee Scheduling Training Employment Development Payroll, Benefit, Bonus, Overtime Job Description HR Self Service Organizational Structure and Workflow analysis Scope of Plant # Reduce operational budget on production Increase Efficiency (work clearance management, maintenance execution, service part, document management, maintenance budgeting, and integration with accounting assets) Scope of Customer Relationship Management # Customer Campaign Customer Interaction Center Customer Self Service Online Inquiry Lead and Activity Tracking (Information, Service, Charge, Account, Warranty, help) Knowledge base, Sales Report, Sales Support, Sales Qualification Consistent user experience Personalization of Service Real-time access enterprise info Scope of Business Intelligence # Information systems for management decision-making, such as a Decision Support System (DSS), featuring an Innovative and Intuitive Interface for analyzing transaction data to acquire business performance insights. It is an interactive process for the exploration and analysis of structured information and in a specific domain (data warehouse) to discover certain business patterns, thereby assisting in decision-making. ","date":"1 April 2026","externalUrl":null,"permalink":"/study/erp/01-introduction-and-benefits/","section":"Study","summary":"Learn what ERP is, its benefits for businesses, and how this system helps integrate various functions within a company to improve efficiency and productivity.","title":"Enterprise Resource Planning #01: Introduction and Benefits","type":"study"},{"content":"","date":"25 December 2025","externalUrl":null,"permalink":"/tags/codeigniter/","section":"Tags","summary":"","title":"Codeigniter","type":"tags"},{"content":"","date":"25 December 2025","externalUrl":null,"permalink":"/tags/e-learning/","section":"Tags","summary":"","title":"E-Learning","type":"tags"},{"content":"SMKN 34 Jakarta, located on Jl. Kramat Raya No. 93, Central Jakarta, is an A-accredited vocational high school (SMK) in engineering. Established in 1972, this school has produced many experts and has a strong track record of placing its graduates in leading manufacturing and engineering industries.\nProject Summary # This project is the development of a web-based online examination application (Computer-Based Test) for SMK Negeri 34 Jakarta. The goal is to replace the conventional platform to present an evaluation system that is more secure, integrated, and free from academic cheating.\nProblem Statement # Previously, we visited the school to analyze the examination activities, which were still using Google Docs at that time. As we know, using Google Docs for exams is quite vulnerable to cheating. Therefore, we had further discussions with the school and proposed the creation of a web-based application (CBT). The goal was to replace the conventional platform with a more secure, integrated evaluation system that prevents cheating.\nDevelopment # In this project, our team consisted of three people:\nAzriel Fidzlie (Developer and Writer) Fatya Restu Pertiwi (Writer and UI/UX) Muhammad Daffa Rakan (Writer and Diagram Creator) We started this project very enthusiastically because, besides being a graduation requirement for the undergraduate (S1) program, we also had the opportunity to contribute directly to our partner in developing a website.\nWe were given only 3 months to create a ready-to-use application that the school could immediately utilize. Therefore, we decided to use CodeIgniter 4 (CI4). In our opinion, CI4 is the right choice for the school scale and greatly simplifies the code development process. As a result, the web-based SMKN 34 Jakarta Online Examination application was successfully completed on time.\nInitial Display Admin Manage Exam Display Of course, this phase was crucial. Feedback and input from stakeholders were an integral part of the development process. We constantly strived every day to accommodate features that were not yet in the application.\nRevision after revision, adding features, and fixing bugs were continuously carried out until this system became a complete application ready for use.\nApplication Handover # Certificate of Appreciation This certificate of appreciation is proof that we have successfully completed and handed over the project we developed. Below is some documentation of the SMKN 34 Jakarta Online Examination project handover.\nelearningsmkn34jkt.sch.id (Active)\nFinal Thoughts # Developing the Online Examination System for SMKN 34 Jakarta has been an invaluable experience for us. Not only did we successfully complete this project to fulfill our undergraduate degree requirements, but we are also immensely proud to implement the knowledge we have acquired into a tangible and beneficial technological solution for our partner.\nWe hope that this Computer-Based Test (CBT) evaluation system will provide a sustainable positive impact, streamline the teachers\u0026rsquo; workflow, and create a more secure, practical, and high-integrity testing ecosystem for the students.\nOur deepest gratitude goes to everyone at SMKN 34 Jakarta for their trust, support, and outstanding collaboration throughout the three months of this project. We hope this system can be further developed and serve as a solid first step toward academic digitalization in the future.\n","date":"25 December 2025","externalUrl":null,"permalink":"/portfolio/implementation-of-smkn-34-jakarta-online-examination-system/","section":"Portfolio","summary":"SMKN 34 Jakarta, which is located at Jl. Kramat Raya No. 93, Central Jakarta, is a vocational high school (SMK) with an A accreditation in engineering. Established in 1972, this school has graduated many skilled professionals and has a strong track record of channeling its graduates into leading manufacturing and engineering industries.","title":"Implementation of SMKN 34 Jakarta Online Examination System","type":"portfolio"},{"content":"","date":"25 December 2025","externalUrl":null,"permalink":"/tags/online-exam/","section":"Tags","summary":"","title":"Online Exam","type":"tags"},{"content":"","date":"25 December 2025","externalUrl":null,"permalink":"/categories/portfolio/","section":"Categories","summary":"","title":"Portfolio","type":"categories"},{"content":"","date":"25 December 2025","externalUrl":null,"permalink":"/tags/web-development/","section":"Tags","summary":"","title":"Web Development","type":"tags"},{"content":"","date":"10 November 2025","externalUrl":null,"permalink":"/tags/environment/","section":"Tags","summary":"","title":"Environment","type":"tags"},{"content":"","date":"10 November 2025","externalUrl":null,"permalink":"/tags/health/","section":"Tags","summary":"","title":"Health","type":"tags"},{"content":"","date":"10 November 2025","externalUrl":null,"permalink":"/tags/k3lh/","section":"Tags","summary":"","title":"K3lh","type":"tags"},{"content":"","date":"10 November 2025","externalUrl":null,"permalink":"/tags/safety/","section":"Tags","summary":"","title":"Safety","type":"tags"},{"content":" The Meaning of K3LH # K3LH (Health, Safety, Work, and Environment) is an Occupational Health and Safety and Environmental Program in a company or other institutions that have many workers or employees. Or another definition of K3LH is an effort to protect employees/worker from harm while performing their duties at the workplace, including other people who enter the workplace and the production process can be done safely.\nK3LH is important in building industries. Industrial growth and development often cause problems for people in every country. For example, workplace accidents, various diseases caused by work, and environmental impacts from the existence of industries.\nBenefits and Goals of K3LH # With the K3LH program, workers and companies can enjoy its benefits. Companies will become more quality-oriented and systematic for faster growth, and workers will become safer, healthier, and more comfortable. If workplace comfort can be achieved, a more harmonious relationship will be created between workers and their companies, resulting in maximum output according to the company\u0026rsquo;s mission.\nGoals of K3LH # Protecting workers/employees from harm while performing their duties for the sake of their well-being and to enhance production and national productivity. Maintaining production resources so they can be used safely and efficiently. Ensuring the safety of everyone else present in the workplace. For industries to grow and develop quickly and effectively, work systems in every industry must be regulated and designed with consideration for K3LH and the workers. Since every worker or employee has the right to protection regarding workplace safety and health, morality, and dignity as well as treatment that aligns with human dignity and religious values.\n3 Reasons Why a Company Should Implement K3LH # Legal Obligation to Comply with Labor Laws Fulfilling Fundamental Human Rights Reducing the Economic Burden on Workers The benefits of implementing K3LH are the creation of optimal work results, as a comfortable work environment will lead to increased production and better quality. Therefore, this K3LH program can influence both the quantity and quality of production output. Companies that implement the K3LH program usually apply it within the company environment.\nHow to Implement K3LH # Provide work uniforms and safety shoes (safety shoes) and make them mandatory for all workers involved in production, workshops and fields. Install K3LH attributes such as signs that remind workers to always be aware of safety, health and cleanliness in the company environment. The purpose of these K3LH attributes is to avoid dangers or errors that could have fatal consequences. Another purpose is to pay attention to cleanliness in the company environment, creating a more comfortable and clean atmosphere. Separate organic waste (example: waste from plants and paper) and non-organic waste (example: waste from plastic). Apply K3LH in procedures and work systems. Company management endeavors to provide guidance about K3LH to their employees so that workers understand the concept of K3LH and apply it. ","date":"10 November 2025","externalUrl":null,"permalink":"/articles/2025-11-the-importence-of-implementing-k3lh/","section":"Articles","summary":"K3LH (Health, Safety, Work, and Environment) is an Occupational Health and Safety and Environmental Program in a company or other institutions that have many workers or employees.","title":"The Importance of Implementing K3LH","type":"articles"},{"content":"","date":"10 November 2025","externalUrl":null,"permalink":"/tags/workplace/","section":"Tags","summary":"","title":"Workplace","type":"tags"},{"content":" Profile I was born and raised in Jakarta, Indonesia. Jakarta is located in the province of DKI Jakarta, Indonesia, and is famous for its rich history, including being the capital of Sunda Kelapa and the central port of the Padjadjaran kingdom. I hope to meet you in my hometown.\nCurrently, I work as a freelancer in web development, focusing on front-end and back-end development using HTML, PHP, CSS, and JavaScript.\nI am one of two siblings. I used to think that I liked sports, but now I realize that I only like the idea of working out. However, I really like music, and playing games is one of my biggest interests.\nRandom Thoughts \u0026ldquo;I was in Depok, heading home into the night, when I spotted a figure of a man dressed in white. I asked the figure, \u0026lsquo;Are you the caretaker here?\u0026rsquo; He uttered not a single word. Awkwarded out, I excused myself and walked away. But when I glanced back, the man in white was gone. Creepy.\u0026rdquo; Azriel Fidzlie\nContact For business inquiries, please contact me on LinkedIn or send me a message on Instagram. You can also find me on various major social media platforms.\n","date":"28 April 2025","externalUrl":null,"permalink":"/about/","section":"","summary":"","title":"About","type":"page"},{"content":"Passionate about the world of technology and software development. Experienced in programming, web development, and hold relevant certifications. Good communication skills, experienced in small businesses.\nSkills Microsoft Office (word, excel \u0026amp; point), Google Workspace (document, spreadsheet, slides, calendar), Editing Apps (Canva, Figma, Photoshop), Data Analysis, Python, HTML, CSS, JavaScript, PHP, Node.js, MySQL, Vue.js, Networking. Curriculum Vitae Experience Project Education TVRI Nasional April 2025 - July 2025 IT Broadcasting internship Assisted in displaying materials for broadcast programs, monitoring during pre-production and post-production, operating VMix, and assisting with coverage. www.tvri.go.id\nKorps Brimob Polri February 2020 - March 2020 Administration Staff internship Performed hardware maintenance, created letter numbering, drafted zebra operation task letters, and Sending assignment letters. korbrimob.polri.go.id\nDestiny.Industries July 2024 - August 2024 Website E-commerce Preparing a Project Charter, Planned Value (PV) or Budgeted Cost of Work Scheduled (BCWS), Actual Cost and Earned Value (EV), Project Performance Metrics, Designing a Website, and Building a Website. Universitas Bina Sarana Informatika February 2022 - March 2026 Information Systems Relevant courses in Project Management and Web Programming. Thesis on “Implementation of the SMKN 34 Jakarta Online Examination System”.\nSMKN Harapan Bangsa May 2017 - July 2020 Computer Network Engineering Mastering Cisco Packet Tracer and Mikrotik. Internship Certificate (Field Work Practice as Administration Staff at Korps Brimob Regiment III).\nCertificates Certificate of Completion on programiz.com Badges Training certificate organized by Programiz titled Certificate of Completion consisting of materials “Java Interview Questions”, “Learn Java Basics”, “Learn Python Basics”, and “Python Beyond Basics Challenges”\nEnterprise Resource Planning Competency Certificate Workshop certificate and successfully completed the ERP Competency Test organized by PT. Sumihai Teknologi Indonesia. Software Development and Program Analysis Competency Certificate Competency certificate as a Program Analyst from the National Professional Certification Board (BNSP) in the field of Software Development. Database System Knowledge Proficiency Certificate Certificate of Knowledge Proficiency in Database Systems from the Indonesian Informatics Experts Association (IAII) with a Proficient rating. Industrial Work Practice Certificate (PRAKERIN) Dual System Education (PSG) Industrial Work Practice Certificate (PRAKERIN) Dual System Education (PSG) obtained during industrial work practice at Korps Brimob Regiment III from February 2020 to March 2020. Languages Indonesian (Native), English (Beginner)\nDownload You can view my resume on FlowCV or directly download the PDF file.\nFlow CV Download ","date":"28 April 2025","externalUrl":null,"permalink":"/resume/","section":"","summary":"","title":"Resume","type":"page"},{"content":"","date":"1 March 2025","externalUrl":null,"permalink":"/tags/laptop/","section":"Tags","summary":"","title":"Laptop","type":"tags"},{"content":"Laptops utilize power from a battery. And to charge the battery, an A/C adapter is used. Laptops usually have a battery life of around 1-6 hours depending on how they are used, the battery size, and also the specifications of the laptop itself. Notebook or notebook computer is another term for a laptop.\nLaptops and desktop computers generally have the same functions. Because the constituent components inside them are the same, the only difference is in their size. In laptops, the size of the components is reduced so they are lighter, do not heat up easily, and are power-efficient.\nThe Initial Idea of the Laptop # Alan Kay is an American computer scientist who had the idea to create the first laptop. He was later assisted by Adam Osborne, a software publisher who also worked in book publishing in America.\nAs a technological device, the laptop also started from simple things and developed into the laptops we have today, which are advanced and multifunctional. For more clarity regarding the development of laptops, it will be summarized briefly below.\n1. IBM Portable PC 5100 (1975) # The IBM Portable PC 5100 is the first microcomputer. Its function was specifically used for engineering and mathematical needs (mathematicians). The IBM 5100 has a reasonably small size because it could fit into a bag and could be carried or moved to another place easily.\n2. Rockwell AIM 65 (1977) # After the IBM Portable, it was developed into the Rockwell AIM 65 (which is the second microcomputer) but more complete than the previous one because it had a screen, keyboard, and a hard copy printer.\n3. IBM Portable PC 5110 (1978) # This type of computer is a business computer version developed from the IBM 5100 (the previous 1975 version).\n4. Heathkit H89 (1979) # The Heathkit H89 all-in-one was released by Heathkit at the end of 1979.\n5. Osborne 1 (1981) # Osborne Computer Corporation created the first portable computer version device, namely the Osborne 1, in 1981. Although it was the first version, this type of computer had many flaws and limitations and still needed further improvement and development.\nIts limitations were that it could only display 51 characters/line of text, had a screen size of only 5 diagonal inches, and had a carrying box case. The Osborne 1 had 2 disk drives for floppy disks, weighed approximately 10 kg, and had an 8 CPU machine. In the 1981 era, the Osborne 1 was widely accepted, so its production volume increased.\n6. Gavilans (1983) # The Gavilans Mobile Computer was released in 1983, weighing 4 kg (which is quite heavy compared to modern laptops), used a Nickel-Cadmium battery that could last up to 9 hours, 64K RAM that could be upgraded to 128K, had a mouse/touchpad located at the top front of the keyboard, had an Intel 8088 5MHz processor, and a floppy disk drive.\nThe battery used made this device superior, along with its combination of design and performance in that year. Another advantage is that it was the first mobile PC device marketed under the laptop brand.\nAfter the emergence of the Osborne 1, Bill Gates introduced his idea regarding a portable computer with an LCD screen. Someone who worked at Microsoft named Kazuhiko Nishi implemented that idea, producing the Radio Shack prototype. The weight of this device was 2 kg, the Radio Shack TRS-80 Model 100 mobile PC version featured a modem, text editor, telecommunications program, and a program designed by Microsoft.\nIn 1984, IBM developed the Portable PC 5155 into a device weighing 13.6 kg with a 9-inch screen.\n7. Compact SLT 289 (1984-1988) # Compact also didn\u0026rsquo;t want to lose competitiveness in laptop development. Compaq released a product called Compaq SLT 286 with VGA revolution, and equipped with a 12MHz processor, 20MB hard disk drive, 1.44 floppy disk, weighed 6.3 kg, and the keyboard could be separated from the laptop body. It was the first portable computer that could be carried on a flight.\n8. Minisport (1990s) # Laptop development in the 1990s was the period of the biggest revolution, starting with the emergence of the Minisport released by Zenith Data Systems with features of a 1.44-inch floppy disk, 640 Kb RAM, 20 MB ESDI hard drive, and a 2400 baud modem.\nIn the 1990s era, the Macintosh and Macintosh Portable factories made a huge breakthrough by creating a laptop weighing 8 kg, with an active-matrix version 9.8-inch screen, a screen resolution of 640×400 pixels, a strong and sturdy design, and an innovatively created trackball to complement it.\nA 256-color screen was the primary choice for laptops in 1993, for example, the PowerBook 165.\n9. Toughbooks (1996-2003) # Panasonic and Intel also participated in making their own laptops by focusing on the robust mobile PC segment, namely the Toughbook (CF-25), their flagship laptop at the time. The design of this Toughbook was built with the advantage of \u0026ldquo;surviving\u0026rdquo; even if dropped from a height of 70 centimeters. Additionally, this laptop was resistant to humid air and dust.\n10. Modern Laptops (2003-present) # After many years, modern laptops have finally developed well and become sophisticated. This is due to advancements in science and technology, which are increasingly sophisticated, thereby supporting their development.\nLaptops today have provided many benefits for their users; in fact, laptop usage is already the majority around the world. This is because they are easy, fast, and practical to use. The shapes of laptops today vary with attractive designs, and on average, all laptops currently on the market are light and slim.\nThe features offered on laptops today also attract a lot of attention, and some laptops even have touch screens and better software and hardware compared to the past. Perhaps the future will offer even more features because science in the field of technology is developing very rapidly, and many scientists continue to develop it.\n","date":"1 March 2025","externalUrl":null,"permalink":"/articles/2025-03-the-history-and-development-of-laptops-over-time/","section":"Articles","summary":"The history of laptops initially began with the emergence of the IBM Portable PC 5100 in 1975. This was the first microcomputer created specifically for math and engineering needs. After that, products with more complete features emerged, such as the Rockwell AIM 5, IBM Portable PC 5110, and Heathkit H9.","title":"The History and Development of Laptops Over Time","type":"articles"},{"content":"","date":"25 January 2025","externalUrl":null,"permalink":"/tags/internet/","section":"Tags","summary":"","title":"Internet","type":"tags"},{"content":"","date":"25 January 2025","externalUrl":null,"permalink":"/id/tags/satelit/","section":"Tags","summary":"","title":"Satelit","type":"tags"},{"content":"","date":"25 January 2025","externalUrl":null,"permalink":"/tags/satellite/","section":"Tags","summary":"","title":"Satellite","type":"tags"},{"content":"","date":"25 January 2025","externalUrl":null,"permalink":"/tags/starlink/","section":"Tags","summary":"","title":"Starlink","type":"tags"},{"content":" What is Starlink? # Starlink is a satellite-based internet service developed by SpaceX, Elon Musk\u0026rsquo;s space technology company. This project aims to provide high-speed, low-latency internet access worldwide, including remote areas that are difficult to reach by traditional internet infrastructure.\nHow Starlink WiFi Works # Starlink works by using a constellation of thousands of small satellites orbiting in Low Earth Orbit (LEO) at an altitude of about 550 km. Compared to geostationary satellites located at an altitude of about 35,000 km, LEO satellites have much lower latency, enabling a faster and more stable internet connection.\nMain Components of Starlink # Starlink Satellites – Send and receive data from users via phased-array antennas. User Terminal (Dish Antenna) – A receiving device installed at the user\u0026rsquo;s home or vehicle to communicate with the satellites. Gateway Station – Earth stations that connect the satellite network to the global internet infrastructure. Advantages of Starlink WiFi # High Speed – Starlink can provide internet speeds up to 250 Mbps or more, depending on weather conditions and user location. Low Latency – With a latency of around 20-40 ms, Starlink is more responsive than conventional satellite internet services. Global Coverage – Able to reach remote areas, such as rural regions, mountains, and oceans. Easy to Install – Starlink installation is quite simple, only requiring a parabolic antenna and an automatically configured modem. High Mobility – With the Starlink Roam (formerly Starlink RV) service, users can bring and use Starlink in various locations. Disadvantages of Starlink WiFi # High Cost – Starlink device prices range from $599 - $2,500, with monthly subscription fees starting from $99 - $150 depending on the service plan. Weather Dependent – Heavy rain, snow, or storms can disrupt the signal and reduce connection speed. Requires Open Space – For optimal performance, the Starlink antenna must be installed in an area with a clear view of the sky without obstructions like trees or tall buildings. Not Fully Stable Yet – Because it is still in development, Starlink services sometimes experience disruptions or downtime. Starlink vs Traditional Internet # Aspect Starlink WiFi Fiber Optic Cellular Internet Speed 50-250 Mbps 100-1000 Mbps 10-200 Mbps Latency 20-40 ms 5-10 ms 30-100 ms Coverage Global Limited to urban areas Depends on carrier signal Monthly Cost $99-$150 $30-$100 $10-$50 How to Subscribe and Use Starlink # Check Availability – Visit the official Starlink website and enter your location to see if the service is available. Order the Device – Choose the appropriate plan and place an order. Install the Antenna – Once the device arrives, install the antenna in an open area and connect it to the modem. Activation and Use – Use the Starlink app to configure and connect the device to the network. The Future of Starlink # Starlink continues to grow with the addition of more satellites and technological improvements to enhance service speed and stability. Furthermore, SpaceX also plans to provide Starlink for Aviation services for airplanes and Starlink for Maritime for ships.\nConclusion # Starlink WiFi is a revolutionary innovation that brings fast and stable internet to areas that are difficult to reach by conventional services. Although it still has some drawbacks, Starlink is a potential solution to bridge the digital divide worldwide.\n","date":"25 January 2025","externalUrl":null,"permalink":"/articles/2025-01-starlink-wifi-the-global-satelite-internet-revolution/","section":"Articles","summary":"Starlink is a satellite-based internet service developed by SpaceX, Elon Musk’s space technology company. This project aims to provide high-speed, low-latency internet access worldwide, including remote areas that are difficult to reach by traditional internet infrastructure.","title":"Starlink WiFi: The Global Satellite Internet Revolution","type":"articles"},{"content":"","date":"11 January 2025","externalUrl":null,"permalink":"/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":" Always Learning New Things ","date":"11 January 2025","externalUrl":null,"permalink":"/authors/azrielfidzlie/","section":"Authors","summary":"","title":"Azriel Fidzlie, S.Kom","type":"authors"},{"content":"","date":"11 January 2025","externalUrl":null,"permalink":"/tags/lan/","section":"Tags","summary":"","title":"LAN","type":"tags"},{"content":"","date":"11 January 2025","externalUrl":null,"permalink":"/tags/man/","section":"Tags","summary":"","title":"MAN","type":"tags"},{"content":"","date":"11 January 2025","externalUrl":null,"permalink":"/categories/networking/","section":"Categories","summary":"","title":"Networking","type":"categories"},{"content":"","date":"11 January 2025","externalUrl":null,"permalink":"/tags/pan/","section":"Tags","summary":"","title":"PAN","type":"tags"},{"content":" Full Stack Web Developer ","date":"11 January 2025","externalUrl":null,"permalink":"/authors/sulivansukri/","section":"Authors","summary":"","title":"Sulivan Sukri","type":"authors"},{"content":"Computer networks are groups of hardware and software devices that are connected to share data, resources, and information. The main purpose of computer networks is to enable communication and collaboration between various devices, both locally (within a single physical location) and globally (over the Internet). Computer networks allow users to access data and services from other devices on the network, such as computers, servers, printers, and other devices.\nPAN ( Personal Area Network ) # A Personal Area Network (PAN) is a computer network used for communication between computing devices (including phones and digital personal assistants) that are near one person. The devices may or may not belong to that person. The range of a PAN is usually a few tens of meters. A PAN can be used for communication between a person\u0026rsquo;s own devices (intrapersonal communication), or to connect to a higher-level network and the Internet (an uplink).\nAdvantages of PAN networks:\nNetwork maintenance is relatively easy. Various errors and faults in the network can be detected easily and quickly. It does not require many additional costs. It supports various smart devices today, such as smartphones, headsets, and so on. Disadvantages of PAN networks:\nIt cannot be applied to large-scale networks. It can only connect a few devices and cannot support many devices at once. Its coverage area is quite limited, only able to reach a few meters. Uses of a Personal Area Network\nConnecting computer devices. Serving as a communication medium between one’s own devices (personal communication). Examples of PAN usage\nConnecting a phone with a laptop using Bluetooth. Connecting a mouse with a laptop using Bluetooth. Connecting a printer with a laptop using Bluetooth. How it works: by linking local computers / sharing data or information over a shorter distance compared to LAN.\nLAN (Local Area Network) # LAN, which stands for Local Area Network, is a computer network with a small coverage area such as a network within a building, campus, office, school, home, or single room. Most LANs today are based on IEEE 802.3 technology, Ethernet, and use switches with data transfer speeds of 10, 100, or 1000 Mbit/s. Today the technology also uses 802.11b or WiFi to create LANs. Usually, places that provide LAN via WiFi are often called hotspots.\nIn a LAN, each computer or node has its own computing power. This is not the same as the dumb terminal concept. Each computer can also access LAN resources according to configured access rights. These resources can include devices or data such as printers. On a LAN, users can also communicate with other users using suitable applications.\nUnlike WAN or Wide Area Networks, LANs have characteristics such as high data centralization, narrow geographic coverage, and no need for leased telecommunications lines from telecom operators. One computer in the network is usually used as a server that manages the entire system on that network.\nLAN has the following characteristics:\nIt has higher data speed. It covers a narrower geographic area. It does not require leased telecommunications lines from telecom operators. Equipment to build a LAN network\nRouter. Switch. Ethernet card. Ethernet cable. Modem. Equipment. Crimping tool. LAN tester. Scissors. Multimeter. Advantages of LAN:\nFile transfer through a server that manages incoming and outgoing information is possible. Resources can be used together. Using a LAN can make work more effective and efficient. Data confidentiality and investment security are assured because LANs have password management systems. They do not require a lot of cable usage. The user interface used is standardized. They can create network connections between systems and various brands. More systems can be connected to terminals. A LAN makes copying data between computers faster, saving time. Disadvantages of LAN:\nIf many PCs are connected, the LAN will slow down. Software must be designed for multi-user use. LAN is very slow at modem speeds. Because all computers/PCs are connected in one network or topology, when one is infected by a virus, other computers can also become infected. The system uses one network, so there is still a possibility the network can be hacked. In terms of location, LAN can only connect computers within one building, for example within a campus or in one room by connecting minicomputers. Actually, a LAN can span more than one building, but the network connection is usually not adequate. MAN (Metropolitan Area Network) # MAN, which stands for Metropolitan Area Network, is a network within a city that transmits high-speed data connecting several locations such as offices, campuses, government institutions, and others. A MAN is a combination of several LANs. The range of a MAN is between 10 and 50 km. MAN is a network suitable for building connections between offices within one city, between institutions/factories and the headquarters that remain within its coverage.\nAdvantages of MAN:\nThe headquarters server can function as the data center for branch offices. Real-time transactions (data on the central server is updated immediately, for example bank ATMs for a national area). Communication between offices can use email and chat. And video conferencing (ViCon). Disadvantages of MAN:\nOperational costs are high. Infrastructure installation is not easy. Network troubleshooting is complicated. How it works: by connecting more than one gateway over a distance of 10 km or more, usually used in cities/offices.\nHere are the characteristics of MAN:\nIt covers an area of between 5 and 50 km. A MAN (like a WAN) is generally not owned by a single organization. MAN often acts as a high-speed network to enable local resource sharing. MAN is larger and usually uses the same technology as LAN. It has only one or two cables and does not have switching elements that route packets through multiple cable outputs. WAN (Wide Area Network) # WAN, which stands for Wide Area Network, is a computer network that covers a wider area, such as networks between regions, cities, or countries. So WAN is a computer network that requires public communication lines and routers. WAN is used to connect local networks to one another so that users in one location can communicate with users in other locations.\nAdvantages of WAN:\nEveryone on this network can use the same data. It can share software and resources with workstation connections. Updating or collecting data can be done at any time. A WAN can connect computers over a wider geographic area. It can send messages in the form of images, recordings, and attached data to others quickly. It has a large coverage network. Disadvantages of WAN:\nOperational costs are certainly high due to the very far and wide distances. Network installation is complicated. It requires a good firewall/protection. With long distances, not all protections on a WAN network are effective against hacker attacks. It requires high costs to build a WAN network. Network maintenance is full time. These networks have a very wide range because they use many servers and can be accessed through other countries around the world. Another name for WAN is the Internet.\n","date":"11 January 2025","externalUrl":null,"permalink":"/articles/2025-01-summary-of-pan-lan-man-and-wan-networks/","section":"Articles","summary":"An overview of different types of computer networks and their characteristics.","title":"Summary of PAN, LAN, MAN, and WAN Networks","type":"articles"},{"content":"","date":"11 January 2025","externalUrl":null,"permalink":"/tags/wan/","section":"Tags","summary":"","title":"WAN","type":"tags"},{"content":"","date":"19 December 2023","externalUrl":null,"permalink":"/tags/clothing/","section":"Tags","summary":"","title":"Clothing","type":"tags"},{"content":"","date":"19 December 2023","externalUrl":null,"permalink":"/tags/e-commerce/","section":"Tags","summary":"","title":"E-Commerce","type":"tags"},{"content":"After conducting research on the clothing sales information system at Destiny.Industries, an application was developed as an improvement to the previous manual information system, transitioning it into a computer-based system.\nDestiny.Industries is an e-commerce website that provides various clothing products, such as shirts, pants, jackets, and more.\nThis website was built with the aim of providing an easy and enjoyable online shopping experience for customers.\nThis website was built using:\nCodeIgniter 3 Bootstrap 4 MySQL PHP Project Management Planning # This website project was developed to meet the public\u0026rsquo;s need for online shopping, especially for clothing products. With this website, customers can easily search for and purchase the products they want without having to visit a physical store.\nThe project began with the creation of a Project Charter, which includes objectives, project goals, deliverables, scope definition, project milestones, assumptions, constraints \u0026amp; dependencies, related documents, project organizational structure, and project authorization.\nThe initial step involved creating an Earned Value Analysis Report, which contains:\nPlanned Value (PV) or Budgeted Cost of Work Scheduled (BCWS)\nWork Breakdown Structure (WBS) Cumulative Planned Value (PV) Actual Cost and Earned Value (EV)\nCumulative Actual Cost (AC) Cumulative Earned Value (EV) Project Performance Metrics\nCost Variance (CV = EV - AC) Schedule Variance (SV = EV - PV) Cost Performance Index (CPI = EV / AC) Schedule Performance Index (SPI = EV / PV) Estimated Cost at Completion (EAC) The final stage of this planning was the creation of a Project Management Plan.\nDevelopment # Home # Below is the Home page of the Destiny.Industries e-commerce website, which displays the various clothing products available. This page is designed with an attractive and easily navigable interface, allowing customers to quickly and easily find the products they are looking for.\nAdmin # The Admin page is used to manage products, categories, and incoming orders. Admins can add, edit, or delete product data, as well as monitor orders that are being processed. This page is designed with a simple and intuitive interface to facilitate the admin\u0026rsquo;s tasks in managing the online store.\nThis website is open-source, meaning anyone can access its source code. As such, contributions from other developers are welcomed to help improve the website\u0026rsquo;s features and functionality, and to provide a better online shopping experience for customers.\n0zunu/Destiny.Industries 👔 The Destiny.Industries application is created in accordance with the policies and requests from Destiny to manage the sales information system for the clothing it sells. PHP 5 0 Give it a star if you like this project ⭐\n","date":"19 December 2023","externalUrl":null,"permalink":"/portfolio/destiny-industries/","section":"Portfolio","summary":"Destiny.Industries is an e-commerce website that provides various clothing products such as shirts, pants, jackets, and more. This website is built using modern web technologies.","title":"E-Commerce Destiny.Industries","type":"portfolio"},{"content":"Articles are intended to provide useful information to readers. This information can include the latest news, knowledge about a particular topic, guides, or analyses.\n","date":"16 May 2023","externalUrl":null,"permalink":"/articles/","section":"Articles","summary":"","title":"Articles","type":"articles"},{"content":"Displaying the works that have been created.\n","date":"16 May 2023","externalUrl":null,"permalink":"/portfolio/","section":"Portfolio","summary":"","title":"Portfolio","type":"portfolio"},{"content":"A collection of photos taken randomly, as a medium for channeling a photography hobby.\nCoffee Tower Building Moon ","externalUrl":null,"permalink":"/others/gallery/","section":"Others","summary":"","title":"Gallery","type":"others"},{"content":"","externalUrl":null,"permalink":"/others/","section":"Others","summary":"","title":"Others","type":"others"}]