243 Matching Annotations
  1. Last 7 days
    1. Zone yang dibebaskan berada di tengah list, di antara elemen KIRI dan KANAN:KIRI dan KANAN digabung → salah satu di-delete, lainnya di-updateDi tengah KIRI dan KANAN, tapi tidak bersambung → insert elemen baru di antara KIRIdan KANANTerletak sesudah elemen KIRI → update KIRITerletak sebelum elemen KANAN → update KANAN

      apa ini lek

    2. mengubah

      apa

    3. mengubah

      maksud mengubah apa?

    4. input X:

      banyak blok yang di kosongkan

    5. input IAw: integer

      indeks awal yang akan dijadikan kosong

    6. Best Fit

      beda sama FF di case C yaitu yang di dealokasi yang <17,3> karena better (Sama dengan)

    7. else Set IAw = 0

      ini kalo ga nemu samsek

    8. a. jika jumlah blok kontigu sama dengan X, hapus elemen listkosong tersebut,b. jika jumlah blok kontigu lebih besar dari X, update elemenlist kosong tersebut.

      intinya bedanya FF dan BF itu kalo FF lgsg stop pas nemu yang fit kalo BF dibandingin dulu lalu dipilih yang terbaik untuk fit

    9. Best Fit

      cari sluruh elemen kosong di block apakah ada yang memenuhi syarat >= x, kalo gaada yg mendekati x aja

    10. Alokasi
      • Awalnya kosong smua Nb = 20 lalu dialkoasi 3 jadi 17 (kasus 1)
      • Kasus kedua ada yg exact sama, jadi <5,10> di dealokasi sehingga list zone kosong berubah
      • Hanya ada yang lebih besar, jadi dikurang di bagian <5,10>
    11. IAw dengan Aw(P)

      Akses isian alamat Aw(P) (harusnya index)

    12. lse { lebih besar: update zone kosong }Update Nb(P) dan Aw(P)

      Nb(P) = Nb(P) - x * Aw(P) di set karena ketemu* *

    13. update elemen list kosong tersebut

      update ukuran tsb - x

    14. 1 NB

      bentuk utama list berkait (satu kesatuan dianggap zone). ketika diawal karena semua kosong jadi <1,NB> (nb semua blok kosong) <blok ke berapa, jmlh blok kosong>

    15. Nb

      banyak blok dalam zone kosong

    16. Aw

      indeks awal

    17. ZB

      tipe block untuk sebuah zone

    18. List zone kosong

      ISINYA LIST ZONE KOSONG AJA, tiap zone akan jadi elemen list

    19. Rep. Berkait – Blok Kosong

      BEDANYA YANG DISIMPAN ITU HANYA BLOK KOSONG NYA

    Annotators

    1. Traversal untuk mengelompokkan KOSONG di kiri dan ISI di kanan denganmenukarkan dua elemen

      jadi kaya swap, kosong bakal dituker ke kiri, yang true otomatis ke kumpul ke kanan

    2. Traversal untuk mencacah banyaknya blok kosong, misalnya NKosong

      cari dulu berapa banyak NKosong

    3. if blok pertama zone kosong thenHitung banyaknya blok dlm zone kosong tsb.

      hitung banyak block kosong per zona kosong

    4. semua blok diperiksa atau blok berukuran = X

      beneran cari traversal ke seluruh blok sampe ada yg sama atau mendekati ke X

    5. NKosong  X

      intinya kalo dah ketemu yg cukup lgsg gas

    6. Alokasi dilakukan pada zone yang memenuhi syarat yang pertama kali ditemukan

      begitu ketemu sama zone yang sesuai dengan yang diharapkan (ada aja yg kosong, misal X 5 dan zonenya tersedia), langsung pake zone tersbut untuk di alokasikan. tanpa ada pengecekan mana yg paling ok (efisien)

    7. output IAw: integer

      IAw (indeks awaL) merupakan alamat indeks awal dari memori yg berhasil di alokasikan

    8. input X: integer

      menyatakan banyaknya blok yang akan di alokasikan

    9. NB: integer = 100

      banyak blok memori

    10. InitMem

      blok kosong yg false smua (kondisi awal)

    11. Alokasi dan dealokasi memori menyebabkan perubahan terhadap zone bebas

      Alokasi: mengurangi zone bebas Dealokasi: menambah zone bebas

    12. Memori
      • F: memori kosong/blok kosong
      • T : terisi
      • NB Blok: banyak blok yg dikelola

      jadi kalo ada request 2 blok bakal cari emang exact 2 blok (kalo 4 blok diambil 2 doang gaakan mau karena bakal ga efisien dan ngerusak selanjutnya) jadi dicari yang eksak sama. (ini bestfit)

      yg langsung ketemu di awal (firstfit)

      best bakal iterasi sampe ujung kalo first yaudah sampe yang ada fit doang

    Annotators

    1. ama dengan untuk representasi kontigu

      isinya loop yg berisi pilihan dan user milih mau make operasi yang mana

    2. populatePol

      mengisi dengan 0

    3. insertLast

      buat sisip elemen

    4. function newSuku () → Address { Alokasi sebuah suku }procedure deallocSuku (input/output pt: Address) { Dealokasi sebuah suku }

      Alokasi dan dealokasi

    5. Polinom: Address

      menunjuk ke suku pertama

    6. FIRST(p)NEXT(pt)DEGREE(pt)COEF(pt)

      TANYAIN DAH KAPAN BISA PAKE MAKRO GINI KAPAN HARUS ->

    7. pt↑.nextpt↑.degreept↑.coef

      GOBLOK WKWK TERNYATA PANAH KE ATAS KHUSUS TIPE DATA ADDRESS

    8. Tabel

      kontigu/array

    9. list P1 dibentuk dengan penyisipan elemen terakhir,

      insertLast

    10. ⟨ 3,−2 ⟩ InsertLast(P3,P2), Next(P2)⟨ 2,−1 ⟩ InsertLast(P3,P2), Next(P2)⟨ 1,−2 ⟩ InsertLast(P3,P2), Next(P2)⟨ 0,−10 ⟩ InsertLast(P3,P2), Next(P2)

      koefisien jadi minus karena P2 dikurang basically 0-P2 jadi mines (-)

    11. ⟨ 3,2 ⟩ InsertLast (P3,P1), Next(P1)⟨ 2,1 ⟩ InsertLast (P3,P1), Next(P1)⟨ 1,2 ⟩ InsertLast (P3,P2), Next(P2)⟨ 0,10 ⟩ InsertLast (P3,P1), Next(P1)

      Bergantian sesuai urutan

    12. Next(P1)

      P2 ga next karena degree ga sama

    13. InsertLast (P3,P1+P2)

      Operasi penjumlahan kalau degree sama

    14. Next(P1), Next(P2)

      bergerak ke elemen selanjutnya masing masing (P1 dan P2)

    15. penyisipan

      PENYISIPAN SESUAI URUTAN MENURUN

    16. ⟨ 2,5 ⟩

      menempati posisi pertama karna SELALU TERURUT MENURUN

    17. ⟨ −999, 0 ⟩

      MARK

    18. polinom kosong menjadi sangat “natural

      kita punya list yang beneran kosong, kalo array kan di declare dulu semuanya tapi gaada isinya aje/0

    19. Kalau banyak yang muncul?

      Maka gaakan efisien dengan berkait karena tiap degree yang sama jika muncul kembali akan disimpan di tempat terpisah.

    Annotators

    1. populatePol(p1); populatePol(p2)

      kenapa P3 gaperlu di populate?

    2. P1 = P'

      ini emang jadi array baru (yang berbeda)

    3. 9

      degree terbesar bisa berubah kalo derajat 9 jadi 0/habis (berubah jadi 8)

    4. berderajat 9

      karena derajat paling tinggi

    5. degree

      index sekalian derajat pollinom

    6. arrSuku

      koefisien polinom

    7. nMax

      menyatakan pangkat tertinggi yang dapat disimpan dalam polinom ini

    8. 4x5 + 2x4 +7x2 + 10

      x^3 sebenernya ada tapi 0, tapi mending ga ditulis biar kalo pangkat nya gede banget ga ribet nulisnya

    Annotators

    1. menghapus elemen dengan prioritas tertinggi (yaitu di Head)

      dequeue bakal sama aja intinya

    2. p = newNode(x);if (p != NIL)

      SELALU INGET KALO BIKIN NEWNODE BIKIN CASE KALO ALOKASI GAGAL (p == NIL)

    Annotators

    1. List linier “biasa”

      list biasa yang cocok, first menunjuk ke elemen pertama list, first nil kalau kosong, first berubah menjadi top dan top menunjuk ke top stack, top bernilai nil kalau stack kosong

    Annotators

    1. precLast

      selalu ada di satu elemen di belakang last

    2. while (NEXT(last) != FIRST(*l)) {last = NEXT(last);

      mencari first beneran

    3. (NEXT(last) != FIRST(*l)

      bukan elemen terakhir

    4. (NEXT(last) != FIRST(*l)

      selama last bukan Last beneran (karna di traversal sampe last beneran dari awal/first)

    5. NEXT(p) = p;

      hanya satu elemen, next ke diri dia sendiri

    6. (NEXT(pt) != FIRST(l)

      LAST

    7. List Sirkuler

      Elemen pertamanya dikenali oleh First(L) sedangkan elemen terakhir memiliki next ke elemen pertama (First(L))

    Annotators

    1. NEXT(PREV(LAST(*l))) = NIL;

      NEXT ELEMEN SBLM LAST

    2. PREV(NEXT(FIRST(*l))) = NIL;

      PREV ELEMEN KEDUA

    3. LAST(*l) = NIL

      list kosong

    4. List *l, ElType *x

      menghapus elemen dari list L, baru nilai yang di hapus di assign ke X

    5. List dengan tiga elemen

      prev dari elemen pertama dan next dari elemen terakhir selalu NIL

    6. List dengan satu elemen

      First L dan Last L bernilai sama

    Annotators

    1. NEXT(precLast) = LAST(*l);

      kasus biasa

    2. if (precLast == NIL) { /* kasus satu elemen */FIRST(*l) = LAST(*l);

      satu-satunya adalah elemen last jadi cuman satu elemen dan dihapus jadi LIST KOSONG.

    3. while (NEXT(last) != LAST(*l)) {precLast = last; last = NEXT(last);}

      maju dulu

    4. precLast = NIL

      akan selalu mengikuti last, satu langkah di belakang last

    5. p = newNode(x); /* dummy baru */

      elemen dummy akan berganti menjadi elemen dummy yang lain

      tanpa while loop HARUSNYA LEBIH EFISIEN. Jadi elemen baru akan dicopy ke dummy yang sudah ada dan akan dibuat node baru untuk dummy yang ditunjuk oleh dummy yang menjadi elemen

    6. newNode

      alokasi

    7. INFO(p) != x

      jadi x itu udah pasti ditemukan, baik ditemukan di elemen (berarti ketemu) atau ketemu di dummy (ga ketemu).

    8. INFO(LAST(l)) = x

      x jadi elemen dummy dan berfungsi sebagai sentinel

    9. 0

      tidak penting angkanya berapapun karena info dummy ga penting

    10. /* Selektor */#define INFO(P) (P)->info#define NEXT(P) (P)->next#define FIRST(L) ((L).first)#define LAST(L) ((L).last)

      ini namanya MAKRO selector

    11. typedef struct node* Address;typedef struct node { ElType info; Address next; } Node;

      Oke, kita sederhanakan ya! 😊

      Kenapa ADT List Linear Pakai Tag (tNode):

      • Karena ada pointer ke dirinya sendiri!
      • Di list linear, next itu adalah pointer yang menunjuk ke struct yang sama (struct tNode).
      • Compiler butuh nama/tag (tNode) untuk ngerti kalau next menunjuk ke dirinya sendiri.

      Contoh: c typedef struct tNode { ElType info; // Data di node Address next; // Pointer ke struct tNode lain } Node; Kalau tanpa tag, compiler bingung karena belum selesai baca tipe struct-nya.


      Kenapa ADT Stack Nggak Butuh Tag:

      • Karena nggak ada pointer ke dirinya sendiri.
      • Stack cuma punya array (buffer) dan variabel biasa (idxTop), nggak ada elemen yang menunjuk ke struct Stack.
      • Jadi, tag nggak diperlukan.

      Contoh: c typedef struct { ElType buffer[CAPACITY]; // Array penyimpan elemen int idxTop; // Penunjuk elemen teratas } Stack;


      Perbedaannya:

      • List Linear: Pakai pointer ke struct yang sama → butuh tag.
      • Stack: Nggak pakai pointer ke dirinya sendiri → nggak butuh tag.

      Udah lebih jelas, kan? 😄

    Annotators

    1. Sirkuler Ganda
      • Elemen pertama prev nya adalah elemen terakhir
      • Next dari elemen terakhir adalah elemen pertama.
    2. ist dengan satu eleme

      Kalo NIL gaakan punya panah next/prev

    3. Pointer

      selain ada pointer next, ada previous untuk nunjuk ke elemen sebelumnya

      bisa maju mundur semuanya karena kalo yg biasa ga bisa mundur

      tapi ini harus dibayar cukup mahal karena butuh memory yang lebih besar

    4. Sirkuler

      kalo ini sbnenrnya kita gapunya FIRST karena list selalu muter.

      Keunggulan: Bisa melakukan instruksi secara terus menerus

    5. Elemen terakhir

      Next dari elemen terakhir == address dari First(L)

    6. Elemen pertama

      Akses elemen pertama cukup First(L)

    7. Elemen terakhir

      Elemen terakhir berarti memiliki next address diri dia sendiri

    8. Elemen terakhir ???

      Elemen yang menunjuk dummy terakhir

    9. Elemen pertama ????

      Elemen yang sebelumnya next dari dummy pertama

    10. Last

      lebih berguna ini karna kalo yang naro dummy di akhir doang tetep harus di traversal dari awal sampe akhir (next elemen p == address dummy)

    11. “Dummy Element”

      sama kaya tadi cuman ditaruh diakhir.

      dummy disini berlaku seperti sentinel. (mark)

      Elemen terakhir adalah elemen sebelum dummy (jika next elemen p merupakan address dari dummy)

    12. List dengan dua elemen

      Tentu! Berikut penjelasan dengan bahasa simpel dan poin-poin:

      Apa itu Dummy Element?

      • Elemen kosong di awal list.
      • Tidak menyimpan data penting.
      • first selalu menunjuk ke dummy element (tidak pernah berubah).

      Kenapa Dummy Element Ada?

      • Sederhanakan Algoritma:
      • Kalau ada insert di awal (insert first), kita nggak perlu ubah pointer first. Fokusnya hanya pada elemen setelah dummy.
      • List Kosong Tetap Punya Dummy:
      • Dummy element bikin list kosong tetap terstruktur (nggak perlu bikin kondisi khusus).
      • Konsistensi:
      • Operasi seperti insert/delete lebih seragam karena selalu mulai dari dummy.

      Cara Kerja Dummy Element:

      • Elemen pertama yang "asli" adalah di first.next, bukan di first.
      • Kalau list kosong, first.next = null (dummy tetap ada).

      Keuntungan:

      • Nggak Perlu Banyak Kondisi:
      • Misal, kalau list kosong, tetap ada dummy, jadi kode lebih simpel.
      • Kurangi Kesalahan:
      • Pointer first nggak pernah berubah, jadi aman.
      • Operasi Insert/Delete Lebih Mudah:
      • Fokus langsung ke elemen setelah dummy tanpa repot atur pointer first.

      Contoh Insert First:

      • Tanpa Dummy:
      • Harus ubah first ke elemen baru.
      • Periksa kalau list kosong dulu.
      • Dengan Dummy:
      • Tinggal atur first.next ke elemen baru.
      • Pointer first nggak usah diubah.

      Dummy element itu intinya biar kode lebih simpel, aman, dan seragam. Udah lebih jelas? 😊

    13. Dummy Element”

      DUMMY ELEMENT: bukan elemen sesungguhnya, tidak menyimpan informasi yang akan kita gunakan.

      biasanya hanya untuk kajian ilmiah. Elemen pertama bukan yang ditunjuk first, tapi yang ditunjuk NEXT DARI FIRST

      muncul karena ketika insert first/last atau at akan berbeda algoritmanya.

      kalau insertfirst akan memengaruhi first dan kasus lainnya.

      pake dummy element di awal ini, maka first ini gapernah berubah dan selalu nunjuk ke dummy element

    14. List yang Elemen Terakhir Menunjuk pada Diri Sendiri

      ini misalkan buat bahasa pemrograman yang ga punya NIL, jadi nodenya nunjuk ke diri sendiri (kalo di akhir)

      Biasanya hanya untuk kajian ilmiah saja

    15. Elemen pertama ???Elemen terakhir ???List kosong ???

      biasanya macam-macam list linier itu faktor pembedanya ada di 3 faktor ini

    Annotators

    1. lustrasi: pemakaian memori list

      Kondisi awal, FirstAvail menunjuk ke nol. FirstList = NIL

      Saat InsertFirst: FirstList nunjuk ke 0 dan nextnya NIL FirstAvail nunjuk ke 1 (nunjuk ke elemen yg available berikutnya)

      InsertFirst lagi FirstList pindah ke 1, next nunjuk ke 0 FirstAvail nunjuk ke elemen yang kedua.

      DeleteLast Node yang terakhir dimasukkan dikembalikan ke FirstAvail (iya emg jadi kaya stack) FirstList menjadi 1

    Annotators

    1. p merupakan Address, tidak bisa di-passke isEmpty yang menerima sebuah List

      IS EMPTY CUMAN BISA UNTUK LIST BUKAN ADDRESS

    2. PROBLEMS:l tidak memiliki info.l tidak memiliki next.

      pada dasarnya L gapunya info dan next, cuman FIRST

    3. PrintList(l↑.next)

      rekureens

    4. Basis 0

      tidak melakukan proses rekursif lagi,

    5. List tidak kosong terdiri atas sebuah elemen yang diikuti list

      basically kaya rekursif

    Annotators

    1. p ← newNode(val)

      kalo mau insert di linkedlist SELALU PAKE NEWNODE karena itu udah auto alokasi dan assign val ke address baru

    Annotators

    1. Pencarian elemen yang memenuhi kondisi

      dengan menggunakan satu kondisi tertentu yang dinyatakan oleh predikat P

    2. hile (p↑.next ≠ NIL) and (p↑.info ≠ x) do

      TANPA BOOLEAN: tidak ada boolean dalam while loop

      kondisi setelah keluar dari loop: apakah P^.Next = Nil (sampe ujung) ata P^.info = X (Ditemukan)

    3. if p = NIL then { List kosong }found ← false

      ada handling list kosong

    4. found: boolean

      DENGAN BOOLEAN, kalau not found -> P = NIL

    5. iterateproses(p)stop (p↑.next = NIL)

      perbedaan dengan skema 2, disini P saat keluar dari loop ini akan menunjuk ke elemen terakhir.

      di skema 2: P saat keluar loop akan bernilai NIL.

    6. epeatproses(p)p ← p↑.nextuntil (p = NIL)

      REPEAT UNTIL, karena jika sudah sampai titik ini list sudah pasti TIDAK KOSONG, sudah di handle di atas

    7. penanganan list kosong

      bedanya di awal ada PERLAKUAN KHUSUS UNTUK LIST KOSONG

    Annotators

  2. Nov 2024
    1. InitMemK

      peak

    2. GarbageCollection

      pengelompokkan yang isi dan kosong

    3. AlokBlok

      tadikan ini mem bikin semua blok <1,25> sekarang alokasi emg butuhnya berapa

    4. Zone Bebas:

      list zona yang kosong

    Annotators

    1. Degree setiap suku harus disimpan secara eksplisit

      gabisa cuman ngandelin indexnya

    2. x1000

      kenapa perlu representasi berkait karna kalo x^1000, harus bikin array sepanjang itu jadi agar lebih efisien

    Annotators

    1. populatePol

      buat input

    2. CreatePolinom

      bikin polinom isinya 0 semua

    3. polinom kosong

      polinom sukunya kosong,

      misal x^5 dijumlahkan dengan -x^5 jadi polinom kosong

    4. ⟨ 0,10 ⟩, ⟨ 4,−9 ⟩, ⟨ 5,5 ⟩, ⟨ 8,9 ⟩, ⟨ 2,1 ⟩, ⟨ 3,2 ⟩, ⟨ 9,4 ⟩, ⟨ 7,4 ⟩,⟨ −999,0 ⟩

      BOLEH GA NGURUT

    5. ⟨ −999, 0 ⟩

      sampai MARK

    6. KONTIGU

      array

    7. (1) ⟨ −999, 0 ⟩

      ini adalah MARK

    8. degree: integer, coefficient: integer

      pasangan harga

    9. P(x)

      lebih enak di tulis kebalik biar pemrosesannya lebih mudah

    10. Polinom

      bisa pake array dan list berkait

      ini kontigu (berarti array)

    Annotators

    1. List linier “biasa” ~ priority queue

      karna tail gaada gunanya mending pake list linear biasa (next) kalo mau hapus elemen ga masalah selalu dari depan dan insert pun bakal search dulu dari depan sampe posisi yang tepat untuk elemen tersebut

    2. List Linier yang dicatat first dan last ≍ queue “biasa

      untuk insert element (enqueue), harus insert sesuai prioritas, kalau mulai dari tail gapunya pointer ke depan, jadi selalu mulai dari depan dan melihat posisi yang pas dimana.

    3. List Linier yang dicatat first dan last

      first jadi head dan last jadi tail. head mencatat elemen pertama dari queue last mencatat elemen terakhir dari queue

    Annotators

    1. DDR_TOP(*s) = NEXT(ADDR_TOP(*s

      menunjuk ke elemen ke 2 (next dari p)

    2. (p != NIL

      node gagal dibuat karna bernilai nil (karna memori penuh)

    3. node* Address;

      untuk mengisi address dari struct node

    Annotators

    1. CF

      overflow pada unsigned

    2. CF

      flag untuk bilangan unsigned. kalo operasi ada carrynya, misal : 14+3 = 17 tp pada 4 bit jadi 1 dan ada carry 1.

      kalo ini terjadi, carry flag nyala (overflow pada bilangan unsigned)

    3. signed

      jika operasi hasilnya negatif, maka sign flag (SF) akan diset

      overflow ini kaya kalo penjumlahan 4 bit 6+4 = 10 kan harusnya tp karna 4 bit jadi -6, nah ini ga sesuai sama "keinginan manusia" lah jadi ini overflow dan OF akan di set

    4. OF se

      OF di set ketka terjadi overflow

    5. 1xxxxxxxxxxxx

      ciri2 bilangan negatif MSB nya 1

    1. Lossless Decomposition

      asumsi gw adalah kalo lossless ini emg ada kondisi khusus (liat next) berarti ga semua data itu lossless, kalo emg udh lossy dari awal gabisa di ubah jadi lossless.

    2. holds on

      udah pakem ini fix bgt

    3. satisfies

      kebetulan (ga applied globally), karna asumsi juga bisa

    4. B → C

      F

    5. A → B

      F

    6. A → C

      F^+

    7. A functional dependency is a generalization of the notion of a key

      emg FD ini generalisasi dari konsep key jadi emg mirip, menghubungkan suatu atribut unik untuk identifikasi atribut lain

    8. Lossless Decomposition

      jika tidak ada informasi yang hilang.

      cara memenuhi lossless adalah jika setelah dipecah dan digabgung lg dengan natural join akan sama hasilnya dengan relasi awal

      ini emg masih perkenalan apa itu lossy dan lossless

    9. Decomposition

      untuk mengatasi repetisi, dekomposisi jadi 2 skema. ex jadi instructor dan department.

      masalahnya kalo ada kasus misal nama nya sama, jadi ada kelebihan informasi

    10. A Combined SchemaWithout Repetition

      misal dibuat tabel nih. kenapa bakal beda sama yang sblumnya? karna akan dilakukan dekomposisi

    11. here is repetition of information

      masalah dari hasil join ini ada repetisi misal di yang kerja di physics ada Einstein dan Gold,

      informasi building dan budgetnya jadi berulang

    1. last = FIRST(*l);while (NEXT(last) != LAST(*l)) {

      naro elemen di sebelum dummy

    2. Alamat elemen dummy tidak berubah

      berarti dummy akan selalu di akhir

    3. List gagal terbentuk

      gagal terbentuk kalo memorinya habis

    4. sentinel

      sentinel ini kaya MARK

    Annotators

    1. Ganda

      lebih fleksibel yang ini karena ada LAST JUGA sblm nya cmn first jadi cuman bisa mulai dari kiri

      kalo ini bisa dari kanan juga

    2. List dengan Dummy Element di Akhirdan Pencatatan Alamat Elemen Akhir

      ini lebih praktis dari dummy last yang gapake "LAST" karena kalo yg sblmnya tetep harus looping dari awal

    3. List Linier yang dicatat alamat elemen pertama dan terakhir

      BISA SAMA KAYA SBELUMNYA ATAU NGEBANDINGIN NEXT DI TERAKHIR SAMA DENGAN ADDRESS DI LAST ATAU NGGAK

    4. List Linier

      kalo ini node terakhir ditandain nextnya NIL

    5. Last

      variasi dari list biasa, ada last jadi bisa implementasi queue pake ini

    Annotators

    1. Euler path:

      dilihat edge nya

    2. Hamilton path

      dilihat titiknya tepat sekali

    3. erhubung lemah

      ga semua terhuubung, b->d gaada

    4. Terhubung kuat

      semua bakal terhubung

    5. sederhana

      simple circuit kalo ga lewat ke garis yang sama lebih dari sekali

    6. path

      path jalur, kalo balik ke titik awal circuit

    7. isomorfis

      karena sama persis

      diliat derajatnya (sama) misal b sama kaya x d kaya z

    8. Solusi

      diagonal pasti 0

    9. bipartite

      graph bisa dibagi 2, titik atas dan bawah tidak terhubung secara lgsg

    10. Kubus-n (n-cube)

      perbedaan antara gambar 1,2,3 (garis,kotak,kubus) tiap titik beda sat 0->1 10->11

    11. Wheel

      ada titik tengahnya

    12. Cycle

      minimal titik nya 3

    13. complete graph

      SETIAP TITIK TERHUBUNG SATU SAMA LAIN

    14. Degree

      kalo directed ada dua, deg+ (berarti keluar) deg- (berarti masuk)

      GAADA DI SLIDE

    15. Adjacent

      adjacent berdekatan azza

    16. Derajat

      ada brpa garis ke titik tsb

    17. incident

      garis menyentuh suatu titik

    18. Simple directed graph

      karena searah jadi masih simple

    19. gelang

      berbentuk gelang,mis V2 kembali ke V2 secara melingkar

    20. Graph

      kumpulan titik garis

    Annotators

    1. insertFirst

      pake newnode karena build from groundzero

      algoritma ini berlaku untuk list kosong attau tidak kosong, why? pikirin ae

    2. 0..length(l)

      harusnya 0..(length(l)-1)

    3. getElmt, setElmt

      bedakan set dan insert kalo get/set node sudah ada kalo insert from ground zero

    4. indexOf

      index disini lebih "posisi ke berapa" bukan index spt di array karena ya linked list kan info sama next, sbnrnya gaaada index tapi dibuat2 aja

    5. indexOf

      sbnrnya di linked list gaada index. tp kalo kita "buat" index virtual bisa memudahkan kita

    Annotators

    1. Alternative ER NotationsChen, IDE1FX, ...©2024 - Tim Pengajar IF2040 Pemodelan Basis Data23

      TRIVIAL, GAMUNGKIN ADA DIUAS HARUSNYA YG BIASA

    2. Binary Vs. Non-Binary Relationships

      Binary vs. Non-Binary Relationships:

      Binary Relationships: Melibatkan dua entities. Beberapa hubungan non-binary dapat dipecah menjadi beberapa binary relationships untuk menangani kasus tertentu. Misalnya, hubungan ternary parents dapat dipecah menjadi father dan mother untuk memungkinkan informasi parsial. Non-Binary Relationships: Melibatkan lebih dari dua entities (n-ary, untuk n > 2) dan digunakan saat hubungan lebih jelas jika beberapa entities berpartisipasi bersama dalam satu hubungan. Contoh: proj_guide.

    3. Aggregation

      aggregasi disini beda dengan di aljabar relasional dan sql.

      jadinya, instructor ini kalo ga pake aggregasi bakal terhubung ke semua relasi di atas, biar ga terlalu banyak panah, dibuat kotak besar satu relasi DAN entity ini di hubungkan ke kotaknya aja. contoh bener di slide bwah

    4. condition-defined

      berdasarkan kondisi

      ook jadi bedanya coondition defined dan user defined, kalo di sql condition defined itu udah di auto assign relasi2nya kalo user defined harus diinput satu2

    5. type=“employee

      ini condition defined karna ada type lalaili, yg gaada user defined

    6. partial

      Entity tidak wajib menjadi anggota salah satu lower-level entity sets.

    7. total

      Entity harus menjadi anggota salah satu lower-level entity sets.

    8. Completeness constraint:specifies whether or not anentity in the higher-level entityset must belong to at leastone of the lower-level entitysets within a generalization

      Completeness constraint menentukan apakah sebuah entity di higher-level entity set harus menjadi anggota dari salah satu lower-level entity sets.

    9. Overlapping

      bisa lebih dari satu anggota lowe level entity set

    10. Disjoint

      hanya bisa menjadi anggota satu lower level entity set

    11. onstraint on whether or notentities may belong to morethan one lower-level entity setwithin a single generalizatio

      Menentukan apakah entities bisa termasuk dalam lebih dari satu lower-level entity set.

    12. ser-define

      ditentukan pengguna

    13. Constraint on which entities canbe members of a given lower-level entity se

      Kendala dalam menentukan apakah entity dapat menjadi anggota lower level entity set (Membership constraint)

    14. Generalization

      mulainya dari bawah, misal ada attribut permanent pengen dibuat higher levelnya employee

      Generalization adalah proses desain bottom-up, di mana kita menggabungkan beberapa entitas dengan fitur yang sama ke dalam entitas tingkat lebih tinggi. Specialization dan generalization adalah kebalikan satu sama lain dan digambarkan dengan simbol yang sama dalam diagram E-R. Hubungan ISA menunjukkan pewarisan dari superclass ke subclass. Contoh: "Employee" dapat memiliki subclass seperti "Permanent" dan "Temporary," serta "Officer," "Teller," atau "Secretary."

      jjadi dia mulainya dari sub class dulu instead of higher levelnya?

      Betul! Generalization dimulai dari subclass (entitas tingkat lebih rendah) dan menggabungkannya menjadi superclass (entitas tingkat lebih tinggi). Jadi, kita mengidentifikasi fitur yang sama di beberapa subclass dan menyatukannya ke dalam satu entitas umum yang disebut superclass.