LDPC for channel coding
According to my reading, LDPC is almost the best channel coding we can use for channel coding, but I have a question regarding that kind of coding.

Mentally, something being &quot;the best&quot; should always instantly raise a mental flag for you, saying &quot;under which conditions, according to which measure&quot;.
It is right that iterative LDPC decoders can achieve maximum likelihood performance (i.e. being the best possible decoder), but only when

The code is large and
there's an infinite number of iterations.

While 2. is never fulfilled, there's often a number of iterations after which gains are small enough for people to simply stop and limit complexity.
The first condition, however, is often a pretty complicated to fulfill one:

will the LPDC will take the whole 2048 (bits) together?

That is a small LDPC code (128 bits would really be tiny, and I don't think I've seen any sensible OFDM application do that; least-rate IoT modes might be interested in doing that on the uplink, but that doesn't match the OFDM approach).
At a small size like 2048 bits, less complex codes and decoders might be comparable or even better suited for your use case and error model.  (PS: Have an error model before deciding on the code you use! There's an awesome website, http://pretty-good-codes.org/ , which is sadly offline now, which compares many codes with metrics.)
Try to put more bits into a single codeword if you want to harness the powers of LDPC codes. For example, in DVB-T2 (which is an OFDM system), the short codewords are 16000 bits long, the normal ones are 64800 bits long.

I mean it will take bits from the whole bits for coding and the rest for data OR it will take group by group, which means for example group of bits, and then code them for data and for parity or coding.

Neither. You take blocksize · rate (so, in your proposed system, 2048·1/2=1024, but really, use larger blocks and established LDPC codes) information bits and encode them as one. These are not systematic, usually, so you don't get separate redundancy bit. You get a code word that is blocksize bits long, and doesn't contain the original bits in any structured way, usually. (Systematic LDPCs are usually undesirable.)
You will need to use a decoder to get the original bits from the codeword.