How can I access more than 15 addresses of data from my 8 bit incomplete computer?
the half of the byte in memory is the opcode and other half is the address

Well, that's one way of doing it, but there are lots of ways of doing it.
Instructions don't have to contain the address. Instructions containing the address or operand is usually known as &quot;immediate&quot; mode, but there are various other addressing modes. You could have those four bits tell you which register contains the address to use, and the registers can be longer.
The 6502 has a number of different addressing modes that use its 8-bit registers, its 16-bit program counter, and immediate addresses.
Instructions don't have to be one byte (or word) long. It's certainly easier to do it this way, but you can have multi-byte instructions. X86 is notorious for this; instructions can be anything from one byte long to fifteen if you add enough prefixes and modifiers.
As you can see from the 6502 modes page, there is a &quot;load immediate&quot; mode which has a one byte instruction followed by two bytes defining the address to load from.
(I strongly suggest finding some good non-video sources to learn from, such as &quot;NAND to Tetris&quot;)